Ubuntu Linux
I thought I’d forgo the idea of posting several separate posts and make just one long page to talk about the various Ubuntu installs that I have. I hope the details may be useful to anyone installing on similar hardware or with a similar setup.
In the last week I’ve upgraded or installed Ubuntu 8.04 on 4 machines and wanted to give some overall impressions, success and frustrations. I will likely install 8.04 Hardy Heron on a few other machines before long and may update this to reflect their progress.
First off, I’ve installed various flavors of Windows over the years with varying levels of frustration and …. occasional anguish. Likewise, I’ve installed (or tried to install) various flavors of linux over the years on a number of years going back to my first successful linux install which was caldera linux (2.2?)
Anyway…
The first system up was my desktop machine. Originally this was a Windows 98 machine before my switch to Mandrake Linux 8.0. When I got linux up and running I left windows behind on this system. I’ve upgraded the hardware two or three times since then and kept the data migrating forward and had moved up to Mandriva 2007 as the main operating system. One of the things I’ve loved about linux is it’s ability to adapt. My hardware upgrades were typically…. buy new barebones case. Shut down old machine, plug in hard drive to new, boot up new system. Sometimes I’d have to try and figure out why networking hadn’t come up and modprobe the driver for it, but usually it “just worked.” (Try that with windows and check back with me in a couple weeks when you get it stabilized.)
Anyway, the new desktop motherboard had built in SATA (which does not read 3.0Gb/s sata drives – only 1.5Gb/s ) and I have a SATA addon pci card (Rosewill – 4 port + 2 external – it seems as though the external is an either or proposition with one of the internal pairs – but it’s still a good controller card). I’d really been wanting to try software raid on the desktop (my server has been running software raid for a couple years.) This seemed like the perfect time. So, with 2 400GB sata drives and the 8.04 alternative install cd off I go. I configured the software raid array with little trouble, but the second of the two drives seemed to cause the system to freeze for a few minutes. I rebooted and tried the installer again. Same freeze when trying to add the second drive to the raid array. So, I pulled the drive out and tested with another machine. The SMART test I started failed partway through so I tried a disc wipe (which also failed partway through.) I had ordered 3 identical drives and unfortunately one of them was bad from the start. So, returned to the ubuntu install. I decided to proceed with the software raid (RAID1 (mirroring)) on just one disc and add in the second when I get the RMA replacement drive. All went fantastically well. I was notified when I logged in that some of my hardware could perform better with proprietary drivers (my NVIDIA card) it downloaded and installed those with just a few clicks. Really a smooth install. The Compiz 3d “eye candy” is really nice on this machine. (Even some of the touches that aren’t really 3d accelerated are nice for the overall look and feel.)
So now all that’s left on this one is the continued migration of data from the old hard drive. I had ~10 years of collected (and scattered) data accumulated there. Not everything was needly cordoned off in the /home/user tree. Also, I’m saving the old drive for the many configuration files that were there. (Openvpn settings for instance, etc.) Those I’m moving over “on demand.”
Some other notes on the desktop. It’s running VMWare server for a few desktop operating system testboxes. (Windows XP/98 as well as a bsd or linux or two. I think I’ve got a few DOS VM’s there as well.) Vmware server had one issue after reinstalling from VMWare’s distribution package. There were errors trying to launch the vmware console. It wasn’t able to find a couple of files. Symbolic links solved the problem…
sudo ln -sf /lib/libgcc_s.so.1 /usr/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1
sudo ln -sf /usr/lib/libpng12.so.0 /usr/lib/vmware/lib/libpng12.so.0/libpng12.so.0
Next up is the Server. The server was my first Ubuntu install in the house and has been running Dapper Drake 6.06 (with upgrades) since then. It is running VMWare server and has a guest system that’s a time server and another guest that’s my mailserver. This Ubuntu machine has software raid (RAID1) in two arrays. The first array deals with the filesystem it’self and the virtual machines and the second array is for file shares on the local network (audio/video/boot cd’s/etc./etc.) This one I was going to be ambitious and try the upgrade through the update-manager.
As far as upgrades of an operating system go… I’ve had some fair and worse experiences. It seems there are always some problems post install to work out. All in all, this upgrade could have been disastrous – booting from the software raid device could have failed. It didn’t…. in fact everything went very smoothly with the exception of Video acceleration. On this one I have an Nvidia 6400 card that apparently is not their top of the line card, but had previously been using NVidia’s distributable driver (because the precompiled one from Ubuntu for 6.06 had strange artifacts.) Before I go on, YES it is a server, but I have the gui on it for occasional administration and to serve up the uber cool NOC look with Google Earth on one screen, (with a weather radar overlay), Etherape on another, security web page on another….
So… the restricted drivers manager made no mention of the NVIDIA card, I tried various iterations of installing ubuntu nvidia packages/the nvidia driver/etc. Finally I removed everything and installed from NVidia’s driver and things worked. So… it wasn’t a perfect install, but considering all the hair pulling moments I’ve had in windows installs hunting for drivers for EVERY LAST piece of hardware to get it working…. this is not too bad at all. (I’ll note that video was working prior to the driver install, just not 3d accelerated video.) On this machine I had to also do a manual edit of the /etc/X11/xorg.conf because it detected the correct resolutions for the card and monitor, but something in the config made a “virtual display” larger than the chosen actual display size… so the login box was not centered and I couldn’t see the options box. (This was after installing the NVidia driver – things seemed okay if I recall before I did that install.) But the quick edit of the file fixed the resolution/screen space issue and it was on to the VMWare install.
Just as on the desktop, the VMware install went without a real hitch until trying to start the vmware client application, but the aforementioned soft links solved the issue and vmware was up and running. (The virtual machines were up and running through the entier upgrade process by the way.)
It’s funny, these two upgrades took place on days that I also had appointments out. So, one evening I finished up the desktop install, the next day I REMOTELY kick started the server upgrade via VNC, checking in from time to time to answer questions. That evening I finished up the details with the video card. I remember Windows upgrades/installs/rebuilds taking the better part of a weekend… certainly not a full weekend of constant attention, but lots of waiting, answering a question here and there and then lots of hunting for drivers.
Anyway, next up was the laptop. This one I saved for the weekend because this is the machine I use the most during the week. This machine had been running Gutsy 7.10 from Ubuntu (has a Windows XP partition as well.) The laptop in question is an IBM Thinkpad T23 and I’m using a Belkin Wireless card. ( F5D7010 ) The upgrade took place wired for speed. Most of the day was spent downloading packages, the install was an in place update-manager upgrade and went all right. Post upgrade there was a bit of a problem with the wireless. Again the restricted manager failed to recognize the possibility of helping this device out. (Strangely enough it seemed to on the original 7.10 install.) I installed fwcutter and was able to get the firmware for the card downloaded and installed the firmware to make the broadcom card work. (b43 driver).
Next up is a small Sony Vaio pcg-sr17k – It’s a neat lightweight notebook P3 700ish with about 256mb of memory – that was running gutsy (7.10) last. (That was an update-manager upgrade from feisty 7.04). This machine has no cdrom. The pc-card slot works for about 30 seconds at a time (overheating issue(?)) and it has usb 1 which I use for a wireless usb stick network adapter. The original install of fiesty I used a usb adapter for the notebook hard drive and had the drive attached to another machine. (Because it seems to lack the BIOS ability to boot from USB.) For these reasons I was compelled again to follow the upgrade-manager route and instead of the wireless usb network adapter I opted for a usb wired adapter (which gave impressive speeds btw.)
I don’t recall if it was the sony vaio or the IBM thinkpad that the gui crashed during the upgrade process. I was able to log back in and restart the upgrade-manager though so that was really a non-event. (It could have been frightening for a new user though.) This little laptop has never shutdown properly (I’ve always been obligated to slide the power button to make it shutdown, but I discovered that it may yet be possible to have shutdown and suspend/hibernate work. It appeared as though the kernel option acpi=off was being passed (maybe as a side effect of the way I originally installed to this hard drive?) I did a test boot with acpi=force and indeed I was able to hibernate/standby and even have it shut down properly. Now, it might be able to work without the acpi=force, but I got tired of testing boot options. The only real problem I have with this device is the wireless usb stick that I use doesn’t seem to be able to scan wireless networks until it first is told to connect to one. For example there are three networks that typically show at one location I visit. When I browse networks with this device, nothing shows. I can tell it to “connect to other wireless network” and it will (but I have to enter the essid and the passphrase each time.) After it connects, then I can see all three wireless networks that I normally would. This card is based on the prism chipset if I recall. (Netgear MA111) It’s not a great usb stick (just 802.11b) , but it works. I sometimes use a different wireless stick on this one, based on the rt2500 chipset but I’ve seemed to have trouble getting it to connect (with or without encryption) to access points running dd-wrt.
Here are some other notes:
WOL (wake on lan) I wanted to do some power saving on the desktop, so I’ve set it to go to sleep after a certain period of time. I do want to be able to access it from the network still, so I wanted to be able to do wake on lan. I enabled it in BIOS (I seem to recall it being called wake on PME in my BIOS – unfortunately the terminology varies and so does the implementation – it seems some believe in just allowing wake from standby/etc.). So…. I did that and then tested suspending and waking up from another machine. Here’s what’s needed on the other machine: wakeonlan or etherwake (might install both just in case… apt-get install wakeonlan etherwake)
etherwake requires root privileges, but wakeonlan doesn’t. The simplest usage of wakeonlan is “wakeonlan TH:IS:IS:TH:MC” replace TH:IS:IS:TH:MC with the mac address of the machine you’re trying to wake up. The only problem is by default this didn’t wake up the machine out of sleep or standby (suspend) mode OR out of hibernate. I was able to wake it from a full shutdown state (I still wanted resume from suspend though.)
To get to this point I had installed ethtool which let’s you set (in software) the wake on lan status of a network card. I followed instructions found at the ubuntu forums to create a file in /etc/init.d/ called wakeonlanconfig. It includes:
#!/bin/bash
ethtool -s eth0 wol g
exit
A very simple setup.
I also edited /etc/init.d/halt and towards the end find the following line:
halt -d -f -i $poweroff $hddown
I removed the -i which supposedly leaves the internet interfaces up and running after a system halt (a must to make WOL work from a system shutdown.)
So now it reads
halt -d -f $poweroff $hddown
Okay. So after that I was able to wake on LAN after a true shutdown, but not sleep or hibernate.
Here are the changes I made to make WOL from standby (S3) and Hibernate work.
I edited one of the hibernate/sleep scripts:
sudo pico /usr/lib/pm-utils/sleep.d/50modules
and commented out (*put a # in front of the lines) that say unload_network and invoke-rc.d networking restart (This prevents networking from being shut down at suspend/standby/sleep or hibernate and if we keep them from being shutdown, we shouldn’t need to restart them.)
I also took a look at /proc/acpi/wakeup
Device S-state Status Sysfs node
PS2K S4 disabled pnp:00:08
PS2M S4 disabled pnp:00:09
USB0 S4 disabled pci:0000:00:02.0
MAC S5 disabled pci:0000:00:05.0
USB1 S4 disabled pci:0000:00:02.1
USB2 S4 disabled pci:0000:00:02.2
P0P1 S4 disabled pci:0000:00:0e.0
It turns out that MAC is the identifier for my network card (I used lspci and matched the PCI id)…. so now I sudo su and…
echo MAC > /proc/acpi/wakeup
which makes the file look like this…
Device S-state Status Sysfs node
PS2K S4 disabled pnp:00:08
PS2M S4 disabled pnp:00:09
USB0 S4 disabled pci:0000:00:02.0
MAC S5 enabled pci:0000:00:05.0
USB1 S4 disabled pci:0000:00:02.1
USB2 S4 disabled pci:0000:00:02.2
P0P1 S4 disabled pci:0000:00:0e.0
So…. I put the system into suspend and once again try…
wakeonlan my:mc:ad:rs and voila…. it wakes up. I tested hibernate as well and that works too. The only change left is to add the magic enabling into the wakeonlanconfig script that runs at startup.
(Not as easy as it could have been, but it is now working.)
Standby/suspend/sleep/hibernate I’ve never really thought about the power saving modes that much before. I always remember treating standby or hibernate as if they didn’t exist and insisted on shutdown if I was getting the laptop ready to move. (Yes I know, welcome to the 21st century, the dark ages must have been fascinating!) I’ve seen so many screwy problems from resuming from sleep or hibernation that I had long ago written them off as unreliable. (And I have tested them a few times since I moved to linux.) This time around though. Sleep and hibernate work. They work quite well too. I don’t know if it’s some of the extra work that Canonical has put into ubuntu 8.04 or if I should be thanking the kernel developers or who…. but power saving modes and resumes now seem VERY reliable. The only unusual thing I’ve seen is some green artifact on the screen WHILE it’s resuming and when it starts to shutdown. (Like the video adapter needs to be re-initialized.) I’ve seen this now on two machines from hibernate (both with the savage video driver.))
Gnome – I’ve been a LONGtime user of KDE. In fact I toyed with gnome when I first switched to linux, but I’ve used KDE since then. Again I don’t know if it’s the team at canonical or if it’s Gnome’s developers that should get the credit, but it’s so well polished and integrated…. I’ve been using gnome now for ALL of the machines. I still have KDE installed (and may take a look at KDE4.) I also have XFCE installed for when I want something with a bit leaner footprint running.
Power Management With ACPI now – I was surprised to see this kind of detail from my battery(!)
$ cat /proc/acpi/battery/BAT0/info
present: yes
design capacity: 48000 mWh
last full capacity: 37640 mWh
battery technology: rechargeable
design voltage: 10800 mV
design capacity warning: 2400 mWh
design capacity low: 480 mWh
capacity granularity 1: 1 mWh
capacity granularity 2: 1 mWh
model number: IBM-02K7028
serial number: 170
battery type: LION
OEM info: LG
as well as ….
$ cat /proc/acpi/battery/BAT0/state
present: yes
capacity state: ok
charging state: charging
present rate: 14716 mW
remaining capacity: 23250 mWh
present voltage: 12122 mV
Now where it says last full capacity: 37640 mWh – it was actually lower at first, but I did an (almost) full drain cycle and then recharged and I got about 10000 mWh back – so it led me to some good battery maintenance research. (I LOVE the level of detailed information there though.)
senao wireless card I’ve had a senao wireless card that is a longer range card for b/g wireless (prism54 chipset (?) – I think I recall it loading the prism54 driver.) ( SL-3054CB Plus ) The only problem I had was that I couldn’t access WPA networks. Today I successfully connected to a WPA network (but failed at a WPA2 network.) I may research this and try again, but it may just be a limitation of this card. (I’ll try to remember to update model numbers.)
drivers in general The biggest problem I hear people talk about with linux is that it’s hard to find drivers for hardware. The only problems I’ve run into have typically been with NVIDIA video cards. I haven’t attempted to get fakeraid running (you know those system boards that claim they have raid, but it turns out to be driver assisted raid as opposed to true hardware raid.) All of the devices on my system boards always seem to be detected just fine. I notice I usually have bluetooth “stuff” loaded by default even on systems that don’t have the built in hardware. I have tested some of that with a bluetooth usb adapter I have though and it seems to work. Wireless cards I have (for one) needed to download the firware using a utility made for it. Comparing this to the driver experience of a windows install is vastly different though. Recently I had a pair of windows laptops that someone wanted me to look at. They had a handful of dell disks and didn’t know which disk had come with which laptop. One laptop had received the typical windows flush and reinstall and needed drivers for EVERYTHING. It took some educated guessing going through the discs, but I finally found the right one. Going online to get drivers wasn’t an option because even the onboard lan hadn’t been detected and used by some sort of driver…. so… that was my first priority and I managed to get the LAN working and then work through the other devices. It’s funny though because there were three devices that were mysteries. They were just unrecognized devices according to windows. I found a “ricoh driver” on the disk which turned out to be the driver for all three. They were some sort of media card reader. She told me the reason she had the system wiped and reinstalled was because there were those three “unrecognized devices” to begin with. BTW, we also spent time trying to UPDATE the wireless driver due to unreliable behaviour from the wireless. (It would work one boot, but not after a reboot. It might work for a few minutes and then show no signal/etc.) That was a whopping 20MB download that was projected to take about a half hour…. which she was comfortable with completing the install when the download was finished. I told her what her options were if that didn’t solve the problem with the built in wireless (add on card) and she was content to proceed on her own.
I just LOVE the fact that with linux, when I install/reinstall I don’t have to go hunting for 20 drivers here and there online, or scratch for an old driver disk to get the process started. I also love the fact that I don’t then have to dig out all my software reinstall disks, but that’s another story altogether.
Updates In the windows world it sometimes drives me up the wall trying to keep up with software updates for people. I’ve hoped for YEARS for some sort of open source windows workalike to aptitude to come along. It shouldn’t be that hard a concept to create an rss feed of the “latest release” tag it as a security fix if that’s the case, or a new software version, include the download link. Then have one application that acts as the aggregator and can manage the download links. Google updater is the closest FREE (as in cost) application that does some of this with a limited number of applications. I’ve heard of others that are pay applications. See… that’s one thing about windows that will ALWAYS make it a challange – installing software can be tedious – installing software updates can be tedious. Under linux – I have an icon that pops up in the system tray that notifies me when there are updates, I click on it and it lists both the system security updates and the software application updates. Depending on my defined “sources” for software I may get notification of feature upgrades as well. (And it notifies me when a new release of ubuntu comes out so IF I want to I could upgrade to it.) Then I type in my password and off it goes. Unless there are configuration file changes with the new version of software I don’t even have to click again. Oh and YES, there are other ways to install updates in ubuntu – command line/scripted/automatic – but… don’t let that scare the beginner away – because there are nice gui ways to do it too.
Software Raid vs. Hardware Raid
I’ve always been a fan of things that are easy to replace in order to get back up and running. I hate tape drives for a number of reasons – one of which is if the tape hardware is gone on an old one you are hard pressed to find compatible replacements. That’s why for backups I prefer CD/DVD or removable USB drives of some sort… any sort as long as it’s not tape drives. I remember scsi hard drive controller cards – there were several different flavors and if your card died finding something that would just work was a challenge. You couldn’t go out to the nearest big box store and get a replacement you had to look online and wait several days.
Hardware raid – to me is too fragile a situation for me to use it. Let me put it this way – how compatible is one hardware raid approach to another. If the raid controller fails will I be able to get my data off the disks. Your answer may be “it depends” – it probably depends on the brand controller – the way THEY implemented raid – the newness of the controller (to get an exact match.) I just see too many ways that can go wrong. Yes, the controller should last for years, but it’s inevitable that will fail.
Software raid – the linux kernel does very good software raid. The devices can be SATA/IDE/USB it doesn’t matter – (for RAID1 you just need your partition sizes to be equal.) So…. what are the risks? Data corruption I think may be the biggest risk and that’s a possibility with a hardware controller as well. System board fails – move them to another machine and boot – the boot order may have changed, but that’s fixable – your data is still readable…. It just seems to me like I have more options in the case of a failure. So – for me (and RAID1) software raid seems like the best option. And, by the way, the thing that interests me most about raid is the potential for redundancy. (As opposed to large storage/speed improvements/etc.)
T23 No Sound after Suspend – I just discovered that sound didn’t work on the IBM Thinkpad T23 after resume. According to this thread the problem is that when the thinkpad suspends to ram it mutes all the sound levels (the sound mixer doesn’t seem to reflect this when it powers back up though.) A fix… is found here in the form of a script that can be placed in your resume scripts directory and solved the issue for me.
Netgear MA111 – revisited I had the opportunity to test this stick out on a fresh install of Hardy… it didn’t auto detect the internet – I did a search to find a suggestion for setup. I added the following to /etc/modprobe.d/aliases
alias wlan0 prism2_usb
on the next boot it came up just fine and was able to scan for access points. (I didn’t have to manually enter an ssid…) So, on my usual laptop for this memory stick I looked and found no such entry in modprobe.d/aliases and I also found that I had installed linux-wlan-ng at some point. I uninstalled that, added the alias, rebooted and all is browsing wireless as it should. I wonder if it would have just worked if I had kept the stick in during a fresh install….
command line distribution update
I have a few virtual machine images that are running Ubuntu 6.06 with updates (so really 6.06.2 now)… and many of htese are without a gui, cli only. I was pleased to see that there are fairly easy instructions. (I know it’s possible to change the apt/sources.list but…. ) Anyway… according to the Ubuntu wiki:
If you run an Ubuntu server, you should use the new server upgrade system.
1.
enable the “dapper-updates” repository
2.install the new “update-manager-core” package – dependencies include python-apt, python-gnupginterface and python2.4-apt.
3.run “sudo do-release-upgrade -p” in a terminal window
*
The -p flag is needed because hardy is not being offered as a lts-upgrade until 8.04.1.
Nice…. it took about an hour or so all told (discounting the time it was sitting waiting for me to answer a question – 2 hours if you count that.)