05 May 2011 17:45
TAGS: dev linux ubuntu
A few weeks after testing Ubuntu 11.04 beta 1 which brought me a bit of disappointment, I decided to test the recently released final version of this most popular Linux distribution.
As I had no more CDs or DVDs, I decided to try booting the distribution from USB drive that I assembled from microSDHC card reader and a microSD 4GB card that I got with my Android phone using standard Ubuntu tool called "Boot disk assistant", which burns CD ISO file onto a USB drive in a way that it becomes bootable equivalent of the CD with additional option to save the modifications you make to the Live system on the disk itself, so that it becomes more or less persistent.
First I decided to use that option and let the program use about 3 GB for the overlay file. This made the program busy for about a half an hour, the card reader (actually writer) got warm, and the result was the USB was not that bootable.
A day after that attempt I decided to give it a try without the persistence and it worked this time. The problem came when I tried to "Try Ubuntu" (in opposite to "Install Ubuntu"). The graphic mode quited and I got nothing in return. I tried multiple things to do in text mode, rebooted a few times and after that it appeared that the graphic mode re-run after about a minute. The CPU was completely idle in this time as was the disk, so this wasn't reasonable thing.
Anyways it appeared the release was much more stable than the beta version I tested and it kind of even worked. I found a few concepts useful and cool, so I decided to put the system on my disk to give it a serious try.
Having it on disk
Automatically detecting an external monitor was the biggest positive surprise for me. This never worked in Ubuntu till now. The downside is the graphics got crazy and displayed desktop in not really usable chunks, but I moved some windows around and it got fixed.
Then I tried booting with nVidia graphics card enabled (I have a dual-graphics Sony Vaio laptop) to see if the drivers would automatically install. Ubuntu first booted into classic Ubuntu mode (no fancy Unity desktop shell) but it was usable. I navigated to System » Administration » Additional Drivers and chose the recommended proprietary nVidia drivers to install. They got installed and I was asked to reboot the computer so I did.
After the reboot graphic mode was not working and so didn't the text mode. I rebooted with Intel graphics card to discover that installing the nVidia drivers broke Intel drivers which made me without Unity desktop shell even on previously working Intel card. Since I knew what to do to "fix" nVidia I did this — I blacklisted the nouveau module and also a bunch of tpm modules that prevented from proper resume after suspend in previous version of Ubuntu. And rebooted with nVidia card chosen.
This time Xorg went up, the Unity showed up and everything was more or less OK. After removing nVidia drivers (apt-get remove nvidia-current) Intel got working Unity back. But I wanted to have Unity working on both graphics card without constant installing and uninstalling nVidia drivers and I figured out how to do it.
Automating Intel/nVidia boots
In /etc/rc.local before exit 0 I entered something like this:
if ls -l /etc/alternatives/gl_conf | grep nvidia; then link=nvidia else link=mesa fi if lspci | grep 'VGA compatible controller: nVidia Corporation'; then hw=nvidia else hw=intel fi if [ "$link" = "nvidia" -a "$hw" = "intel" ]; then update-alternatives --set gl_conf /usr/lib/mesa/ld.so.conf ldconfig killall Xorg fi if [ "$link" = "mesa" -a "$hw" = "nvidia" ]; then update-alternatives --set gl_conf /usr/lib/nvidia-current/ld.so.conf ldconfig killall Xorg fi
This code checks whether current GL implementation is nVidia (valid for nVidia card) or Mesa (valid for Intel card), then checks current card by examining the output of lspci command and uses certain update-alternatives lines followed by ldconfig to update the GL implementations. killall Xorg kills the X server which is brought back by login manager with GL library updated.
This is a dirty hack but it works just well for me and made both graphic cards working with no additional work.
Ubuntu seems very stable now, but X server crashed a few times (especially loading Flash videos from Vimeo in Firefox). There are some problems in multi-monitor configurations, like no way to move the window to bottom monitor (if they are aligned vertically) by dragging its top bar (moving with Alt works). The windows on bottom monitor are not maximized properly (they are maximized on the top monitor instead) and they can't be resized by dragging the resize handles (but resizing with Alt+middle mouse button works).
There were some other small random issues, either not really relevant or easily fixable, but overall it seems a very good beta release. But wait. This is no beta, but final release. In this case it's not good. It's OK for a Linux user like me, but it definitely should not be released for regular users. Shame on you Canonical. They promised they release in April, but they should have release another beta release, do a serious testing (what I did was anything but unusual), fix the remaining bugs and then release the final version.