Taking advantage of the the holiday spirit and the free time that comes with the package I could not resist the urge to update my 3 years gentoo linux system. It seems like an invisible bad force which pushes people to update things which work good such that they don’t work at all after. So, pushed by this force started a emerge -u world which I usually do twice a year. This time however I was not armed with the necessary amount of patience so after 3 hours of failed recompilations of gcc and glibc followed by a reboot which leaved my system only accessible through ssh I decided: I will switch to ubuntu.
I am running gentoo on several machines since a lot of time but since 2 years I started investigating easier and faster ways to install linux. I do not consider this a proof of laziness but instead a proof of efficiency. So, in this spirit, instead of preparing myself for 2-3 days of compiles and fixes I decided to try to install everything in a few hours. And here it starts.
3 years old, DELL Inspiron 8600 with Nvidia graphic card, 1G ram and 1600 wide display.
00:00.0 Host bridge: Intel Corporation 82855PM Processor to I/O Controller (rev 03)
00:01.0 PCI bridge: Intel Corporation 82855PM Processor to AGP Controller (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)
00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)
00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)
00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)
01:00.0 VGA compatible controller: nVidia Corporation NV34M [GeForce FX Go5200] (rev a1)
02:00.0 Ethernet controller: Broadcom Corporation BCM4401 100Base-T (rev 01)
02:01.0 CardBus bridge: Texas Instruments PCI4510 PC card Cardbus Controller (rev 02)
02:01.1 FireWire (IEEE 1394): Texas Instruments PCI4510 IEEE-1394 Controller
02:03.0 Network controller: Intel Corporation PRO/Wireless LAN 2100 3B Mini PCI Adapter (rev 04)
Originally I was running Gentoo linux, the first OS I installed on this laptop and runned succesfully for almost 3 years.
Now I installed Ubuntu 6.10 Edgy.
Installation, initial configuration
Base installation worked very easy and took only about 20 mins.
Get to the root
As ubuntu has a sudo based mechanism of getting to the root which I am not used to, the first thing is to just get a root password:
... (first it's the "admin" password asked)
... then the root password is set
$ su -
Set the sources, update
Now it’s time to set your debian sources. As I am a long time debian user everything is quite natural:
#cat /etc/apt/sources.list | egrep "^deb"
deb http://ro.archive.ubuntu.com/ubuntu/ edgy main restricted
deb-src http://ro.archive.ubuntu.com/ubuntu/ edgy main restricted
deb http://ro.archive.ubuntu.com/ubuntu/ edgy-updates main restricted
deb-src http://ro.archive.ubuntu.com/ubuntu/ edgy-updates main restricted
deb http://ro.archive.ubuntu.com/ubuntu/ edgy universe multiverse
deb-src http://ro.archive.ubuntu.com/ubuntu/ edgy universe multiverse
deb http://ro.archive.ubuntu.com/ubuntu/ edgy-backports main restricted universe multiverse
deb-src http://ro.archive.ubuntu.com/ubuntu/ edgy-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu edgy-security main restricted
deb-src http://security.ubuntu.com/ubuntu edgy-security main restricted
deb http://security.ubuntu.com/ubuntu edgy-security universe multiverse
deb-src http://security.ubuntu.com/ubuntu edgy-security universe multiverse
Now you are set, you have an up-to-date Ubuntu Edgy system.
As I am not a GUI fan and I used Window Maker for ever I should not come as a shock that I am not using a gui tool but installing everything from a root command line with the apt-get install command.
Mounting the external USB storage on which I made a backup of a system was very simple, just plug-it in the usb port and it pop’s on the desktop. In reality the files are mounted in /media/usbdisk.
Migrating all your data is just a question of copying the .mozilla/firefox directory to the new home. Alternatively one can only migrate the bookmarks using the export/import function but it seems rather a shame to loose all those saved passwords. I had no trouble in using the data from Firefox 1.5 to the 2.0 version which comes with Edgy. I am rather disappointed in this new Firefox version but that’s it for now.
Gaim migration is equally simple as it requires just the .gaim directory to be saved. I think my years old .gaim directory affects negatively the 2.0beta configurations as it looks exactly the same as the 1.5 I used to have. The only change is that you can now set your status message in the a combo at the bottom. Nothing extraordinary GUI change for this some much waited 2.0 version.
Migrating the evolution data is a bit more complicated. You need to copy the .evolution, .gnome2_private/Evolution (where your passwords are stored) and .gconf/apps/evolution. One very important aspect is that gconf caches your settings so just copying might not show the results and you might have to restart gconf (or everything if it’s simpler for you) after copying the .gconf directory.
Skype (188.8.131.52) can be installed using the deb provided on their site and it requires only for the .Skype directory to be copied in order to preserve all the history and password information. I had no problems using the sound configuration as it worked from the start using the alsa settings.
Of course it will be a shame to loose all those crafted commands so you can set your $HISTSIZE variable to something reasonable in /etc/profile and you can copy your saved ~/.bash_history. You must then kill the bash in which you did the copy to avoid overwritting the just copied history.
The graphical card
As everything is now running it’s a good moment to start some less pleasant configurations. The Nvidia card always qualifies for this but for Ubuntu the configuration was rather easy.
# apt-get install nvidia-glx
Surely this was easy for now, but as you will see later it will come and bite you back.
The wireless connection was detected from the install process but there is still no simple way to switch the used connection. Fortunately
apt-get install network-manager-gnome
does the trick and you will have a nice selection option which allows you to switch from wireless to wired connection in a blink:
Hardware I do not use
I never used the pcmcia or firewire devices so I did not gave any thought on how to make them work.
As I work on various J2EE projects I need of course a Java. And I do not expect much from the packaging system and I usually manage several java’s and I hated the way Gentoo wanted to manage my java’s for me. All I want is to be able to remove the java which comes by default. This is done by removing the gij and libgij packages.
apt-get remove gij libgij7
When you do this it looks like apt is trying to uninstall openoffice-org but it does not do that actually. Now I am free to install java as I want. I even installed the sun-jdk 184.108.40.206 with apt for now. I will install the other versions by hand later.
Installing mplayer is also an apt-get install away but the codecs are not due to various format restrictions. You have to manually download the essential package from the mplayer site and extract it in the /usr/lib/win32 directory. After that mplayer works as expected.
I used this with lots of success on gentoo and it is a mandatory requirement for me as it allows to work efficiently on my laptop without loosing too much time with reboots. This however was the most complicated task and found little documentation on this. In fact Ubuntu does not use the suspend2 mechanism and the default mechanism crashes (obviously because of the nvidia driver) at restart. After some googling and searching the forums I found out the following solution:
- add the trevino’s sources for patched suspend2 sources and install suspend2
add to /etc/apt/sources.list
deb http://download.tuxfamily.org/3v1deb edgy suspend2
deb-src http://download.tuxfamily.org/3v1deb edgy suspend2
register the public key
# wget http://download.tuxfamily.org/3v1deb/DD800CD9.gpg -O- | sudo apt-key add -
# apt-get update
# apt-get install suspend2
- comment nvidia in /etc/hibernate/blacklisted-modules
- edit your /boot/grub/menu.lst and add the swap partition to save your memory to:
kernel /boot/vmlinuz-2.6.17-10-386 root=/dev/hda6 ro quiet splash resume2=swap:/dev/hda7
- everything should work now but it does not. Upon reboot the screen freezed but I can connect by ssh. This is nvidia proprietary driver doing.
- after some digging and remembering of the gentoo installation I remember the problem was caused by the agpgart in the kernel. The solution comes by adding the NvAgp “1” option to /etc/X11/xorg.conf
Identifier "NVIDIA Corporation NV34M [GeForce FX Go5200]"
Option "NvAgp" "1"
These are the meanings of this option values:
Option "NvAgp" "0" ... disables AGP support
Option "NvAgp" "1" ... use NVAGP, if possible
Option "NvAgp" "2" ... use AGPGART, if possible
Option "NvAGP" "3" ... try AGPGART; if that fails, try NVAGP
Now the hibernate works ok, and I can easy hibernate with the hibernate command. I have no idea however how to replace the hibernate call from the shutdown menu.
Thank you for those who made this possible:
Overall it was a painless install and I am quite happy with the results. I cannot say that I enjoy for my desktop to eat up to a few 100M of memory and it’s quite possible I will switch back to wmaker in a while but for the moment I really like to play with all these gadgets. Anyway, seems a good choice instead of spending all this time compiling gcc and glibc.