Every year I hear freetards proclaiming that year is the year of linux on desktop, when Windows' reign will be overturned. Every year another distribution is "the one" to have, going from RedHat to Suse to Debian to Fedora to Ubuntu to etc, etc...
So I thought I should take a closer look at this much praised Ubuntu.
Back in college days I used to play a lot with Slakware and RedHat, so I'm not entirely a newbie to linux. However, since I got a real job the free time became scarce. I stopped using linux about 5 years ago, when I realized I was spending more time fixing things than doing something productive with it.
I decided to install Ubuntu 8.04 "Hardy Heron" (latest available) on my laptop, a HP Pavilion tx1320Us.
Someone deciding to download a distribution should do it from multiple places, otherwise he might miss important notices. For instance, Hardy is plagued with a critical bug in SSL handling. Only some of the download sites warned me about this, and advised to check immediately for updates and patch the install (-)
From the beginning I liked the idea of the "Live CD". It allowed me to get a feeling of what the final experience will be (+).
Selecting the partition to install was confusing (-). I had no free space on the drive, and I had no idea what changes was the installer going to make if I were to select an existing Windows partition. Eventually I booted Vista, resized the partition from there, then restarted the Linux install on the free space. I considered using the manual partitioning, but eventually I decided to let Ubuntu installer do the partitioning. Again I would have liked more information what the automated partitioning was about to do to the drive...
The rest of the install process was easy and with no further problems (+).
Selecting the computer time is incorrect and confusing (-). For some reason, the automated install picked a wrong time for the machine, a couple of hours shifted from the reality. I have no idea why that happened, the time in BIOS was correct... Anyway, I chose to set the time manually. Selecting a timezone is done by selecting a city. The list of available options is limited (e.g. Seattle is not listed, the closer on US Pacific coast are Vancouver and L.A., so I chose the former). The timezone was shown as PDT=GMT-7, when in reality it should have been PDT=GMT-8 and using DST. There was no option for daylight saving time.
Anyway, I was amazed to see things working. A couple of years ago I wouldn't even have dream about installing linux on a laptop for lack of drivers. Now, almost everything was working out of the box: bluetooth, touchpad, sound keys, etc. (+). Only the WiFi was not working (but more on that later)
First thing I updated the computer. It downloaded "only" 125MB of updates. (Windows bashers compain about the size of initial updates; I guess linux is no different; anyway, that's ok, the security of the system is more important)
I found out that Vista bashers that complain about UAC are idiots that only used antiquated systems or that live in the Mac fantasy world. Linux is no different than Vista - for almost everything I had to deal with "Cancel or Allow" prompts (editing configuration files in /etc, changing system time, launching administrative programs, etc). In fact, here the prompts are for the user's password - much like in Vista if you're logged on with a user that's not admin.
Where Linux lacks is usability (-) and in hardware support (-). If you get lucky and all works out of the box then you have a system that's quite good. Otherwise, you're screwed. My wife or an average Joe installing Ubuntu will not be able to deal with the problems I've encountered.
Here are some usability examples:
- in Display properties, the VisualEffects were set to None, and I cound not enable them (not even Normal). Eventually by running application I stumbled upon System/HardWareDrivers and there was an accelerated NVidia driver was available and installing it allowed enabling these effects. The driver is unsupported and required restart. Why DisplayProperties doesn't ask to install the appropriate driver I don't know...
- some menu items (like the Synaptic Update Manager) were not doing anything when invoked. There was no message to tell me what's wrong. ("sudo synaptic" from command line worked)
- setting up the printer was hard. I tried to connect to a printer shared by my domain controller. The printer dialog has an option to Browse network printers, but that was only listing the computers, not the shares; my guess is that Windows domain denied enumerating printers and shares from a computer not in a domain, and there was no option to specify domain user/password(-). I had to go to the Window machine, figure out the exact share name, type the share name manually in linux using smb://computer/printer_share and the domain user and password, after that all worked fine. I finally got my printer working, but I can't see my wife or my father doing the same thing...
- if you're using TsClient to connect to a Windows machine in full screen you'll find there is no obvious way to return to the linux desktop. It can only be done with a series of key combinations, and figuring that out is not easy (more on that on another post)
The Update Manager worked the first time. After a while it discovered new packages requiring updates, and it was prompting to download and install them. I agreed with the prompts, but the result was that UpdateManager was hanging (-).
Out of the box, Media Player does not play mp3, wma, mpg, files (-). It pointed me to download a codec (with an unintelligible copyright warning message), but when I agreed to download it, it hanged, too (-).
When these application hung, I could try to close them from the system menu using the Close command, or I could click the X button in the title bar, but the applications refused to close. (-). They had to be killed from Task Manager.
After a while, I noticed I had accumulated a number of "gsu" processes running. I suspected them to be related with the hangs, and I searched the Internet. It turns out the hangs were due to a known bug. Somehow, the Ubuntu configuration tools saved in the /etc/hosts file the computer name with a domain attached (Mars.Constantin.comcast.net) instead of the computer name (Mars). This caused "sudo" in command line to display an error "Mars not found" and it was preventing applications to display automatically the window where I was supposed to enter credentials to allow those applications to perform maintenance tasks (installing new software). As soon as I modified manually the /etc/hosts file, things got back to normal...
Linux was using APM for power saving, but waking the computer after 40 minutes was not working. The screen remained black no matter whether I was typing something on keyboard or using the mouse (-). I remembered back in the days I was using Ctrl-Alt-Backspace to restart X: it worked as workaround, but I wonder how many newbies are going to figure it out...
The wireless network was not working(-): the wireless card was not detected and not present in Network Manager. The help pages were useless. (-)
HP Pavilion tx1000 has a Broadcom 4321AG wireless card. On a Vista machine I turned to the community to find the solution... I already had a bcm43xx driver installed but not working (I found later it didn't supported my network card anyway). This driver was retired being replaced by b43 driver; I had this one, too, but this failed to load with missing dependencies. The solution described in
http://aphesz.org/?p=87 was to use a Windows driver :-) from Dell support (I have HP!). You have to install ndiswrapper, run a couple of commands you have no idea what they are doing (and hope they do the right thing). After all this, the wireless interface showed in NetworkManager. You're not done yet... There you have to configure the WiFi access point (name, WAP password, etc). All in all, you get familiar with commands like ifup, ifdown, ndiswrapper, ifconfig, iwconfig, iwscan, etc. Too many things I didn't care about... I just wanted my wifi to work...
So, I got it to work, but on next reboot it stopped working (-). The WiFi was working, but failed to get an IP address from the DHCP server. To make things confusing, a new interface "wlan0:avahi" was present, that I didn't have before. After more hours of searching the net, it turned out this is a known issue that's been there for at least 2 versions of Ubuntu; other distributions are affected, too. I was not able to find a good solution (what I found was not working for me, or were recommending to modify files that I didn't have - they were for other linux distributions). I gave up eventually and I'll keep doing "sudo ifdown wlan0", "sudo ifup wlan0" whenever I'll need WiFi...
Btw, if you're like me and thought the WiFi configuration tool in Windows sucks, wait until you see the one in linux. It looks like evertytime one switch the wifi network he's connecting to, he will need to mess up with the access point settings. Using the laptop at home and at work with Wifi will be a pain. (Yeah, yeah, I can write my own scripts that switches configurations, restart the network, etc, but why does it have to be this way?)
Conclusions:
All in all, this was an interesting experience. Linux has definitely advances since last time I looked at it, and is definitely usable on desktop if you find it pre-configured with everything already working and you only do basic tasks (browsing, editing, etc.). However, I wouldn't recommend using it if you're not a computer geek. There are still a lot of usability problems, and bugs that will make you spend hours searching the net for a solution. Sooner or later you'll try to connect a new device, printer, etc and will run into more problems - be prepared to deal with them. Wifi is the biggest offender for configuration and usability.
This is not the year of the linux on desktop, and by the looks of it, it won't be very soon either.
Until everything will "just work" without quirks and usability problems, I'm staying with Windows.