In the final weeks of November last year I decided to once again re-join AskUbuntu as part of an attempt to "give back" for all the good that Ubuntu Linux has brought me over the years. 150 questions were answered over a period of five weeks, resulting in 2,100+ points, a slew of badges, and a couple of seasonal hats. The majority of the interactions were productive and people would sometimes build on my answers, allowing me an opportunity to learn more about the platform that has played an important part of my digital toolkit since 2005. Being the sort of person who tends to look for patterns, a couple of things stood out that seem to be incomplete with the popular distribution.
Linux has often been portrayed as a niche operating system that caters towards the technologically interested, but there are an increasing number of "normal people" who see the value in having something that does not come from Apple or Microsoft on their computers. What this means is that people from all over the globe are installing Linux on machines that were generally designed to be platform-specific devices; running MacOS if it were an Apple, or Windows if it were anything else1. While the various Linux distributions have made great strides in ensuring hardware compatibility, certain gaps continue to be a problem.
The first is networking. On any given day, there will be several people asking their very first question on AskUbuntu saying something along the lines of:
I just installed Ubuntu on my computer and the WiFi doesn't work. Help!
I plugged a USB WiFi dongle into my computer, and Ubuntu doesn't see it. Help!
After a bit of back and forth, the community can generally work out what a person needs to do to get their machine up and running on a wireless network. The steps can sometimes be incredibly easy, consisting of changing a setting in the BIOS or editing a file, or ridiculously complicated, requiring a person clone a Git repository and compile a driver from source before installing it manually. These are hardly great experiences for anyone, including the development teams that have invested thousands of hours to get device compatibility to where it is today. Believe me when I say that setting up a fresh Linux installation used to require an entire long weekend!
However, this shows that there is still a bit of work that can go into this one area, most likely via an application written by someone outside the main distributions. The required functionality would be pretty basic:
- scan the machine for network devices that are using the wrong driver or have no driver at all
- suggest the best drivers based on the device chipsets
- do the necessary work to get the drivers installed
This application would need to allow a person to also download all the necessary driver files alongside the main app so that a person with no network connection at all could get online in short order. The "problem" would be keeping up with all the various unofficial driver resources that have sprung up on GitHub, BitBucket, and other places to service devices that use RealTek and some less-common Broadcom chipsets.
Does something like this already exist? It's certainly a possibility. I have not seen it, though.
Another common issue seems to involve video drivers, with Nvidia hardware being the most-common devices cited. People report all sorts of issues and often receive suggestions that involve changing kernel settings, updating the bootloader to include various modes, switching drivers from community to proprietary or vice versa, and the like. Just like the WiFi issue, this isn't something that people should have to think about. There must be a way to automate the fixes to a certain degree as there are a limited number of video cards available2. Could an auto-detection & configuration tool be built that would work alongside the device discovery code that exists in the operating systems? Most likely, and it would be well-received if it could alleviate the stress a lot of people who are new to Linux feel when technical problems like these inevitably arise.
The third most common issue that I've seen is with people messing around with Grub, the bootloader, and losing the ability to load Windows or some other operating system that is also installed on their computer. This could be solved by making an image of the bootloader and writing it to a USB stick, ideally the same one that has the Ubuntu installation files. Then, when someone messes something up so badly they need to fix it, they can restore from backup. The Ubuntu Live environment does have a bootloader repair tool, but it does not always restore a bootloader to what it was, instead repairing it based on information it finds scattered across the system. The most common complaint is when the bootloader repair tool only restores access to one operating system because the other resides on a separate storage device.
Ubuntu, and most other popular distributions, have done a remarkable amount of work to make Linux a better, more polished system today than at any point in the past, but there's still a good deal of work to be done. It will be interesting to see if any of the issues outlined above are tacked in the near future … and that first one seems like a nice little challenge for me to pick up in the spring if it hasn't been solved by then.