I started using Unix V7 on a PDP-11/70 back in 1983, even modifying some existing kernel drivers for the Cambridge Ring local area network. After that I dabbled in system administration of various Sun and Apollo systems until 1991, and HP boxes up until 2000, but my main task has always been application software development, nothing on the hardware or kernel side. Since 2000 we've had dedicated system administrators at work. We had switched from NCD X-terminals over to Linux desktops (first RedHat, but then Lunar) and I realized that what little I knew had become well out of date. I installed RedHat on an old 90MHz PC at home more than five years ago, but without a LAN or modem connection it was too difficult to keep up to date, I lost interest, and that died. Since then I've had an itch to develop a spiffy FLTK user interace for some old command line tools using Cygwin/Mingw on a WinXP laptop (with modem) but the machine is (a) painfully slow, and (b) painfully Windows. The time had come to get some new hardware, install an operating system that doesn't thwart you at every turn, and set up a programming environment of my own choice.
Well, my desktop at work is running Lunar - and it has been very stable - and so I could always ask the sysadmin if I got really stuck. Sofar I've been trying to work it out for myself.
Basic Installation for Newbies
Well, believe it or not, the Installation guide is actually pretty good! However, while waiting for the connection to the ISP to be set up, I downloded the Lunar ISO at work and burned it onto CD. I installed Lunar 1.5.0, 1.5.1rc1 and 1.5.1, each one a bit better than the last, and the guide made more sense to me every time. So, if you are new to Lunar, just give it a try, make the mistakes, reformat the partitions and try again! There are a couple of points that might help other people:
- I used the partitions mentioned in the guide, albeit bigger, which are really intended for server systems, whereas desktop systems could use a simpler system as described in the FAQ. Make a note of the partitions and sizes so that you can enter the info quickly when you re-install.
- Unless you are really sure that you want to override the default values, don't. Play with the simplest system you can to start with - you can always configure something extra later.
- The 'Install a pre-compiled kernel' step happens so quickly, and without any real feedback, that I didn't believe that it had actually done anything. I then made the mistake of compiling the kernel(s) again myself, and it's completely unnecessary and wastes time.
- Install the 'normal' and 'safe' pre-compiled kernels - they are packed with more basic drivers than most people will need, so you have a good chance of getting a basic system up and running.
- Accept the default, and let the installation set up Lilo for you.
- Set up the simplest networking that you can. Luckily I had already been able to set up the ISP to ethernet router, and the ethernet to wifi router, by using the web browser on the WinXP laptop. YMMV, but the driver for the standard wired network card (3Com) was already included in the pre-compiled kernels and worked as soon as I rebooted, but the additional wifi network card (Atheros-based) took me a lot more work, but more on that later.
- Set a root password! You are just about to go live on the Internet and you have no idea what is and isn't set up yet!
- Reboot, and good luck.
lfirsttime for Newbies
If everything has gone according to plan and your system has rebooted successfully, when you login as root you will be advised to run 'man lfirsttime' for more information. This manual page describes the next steps you will need to help turn your newly hatched system into a fully feathered juvenile. Again, 'man lfirsttime' is fairly good, but there are a couple of extra points that might help other people:
- If you haven't already got your networking up and running, you can still poke around on the file system and see where the basic things live, but there won't be much else you can do. Run 'lnet' again. If still no joy, then I'm afraid I'm not knowledgable enough to help you. Try asking on the Installing Lunar forum.
- Check out the manual pages for 'lin', 'lvu', 'lrm' and 'lunar'
- Check out the manual pages for 'lin', 'lvu', 'lrm' and 'lunar' again. This is not a typo!
- If you are like me, you will still not have picked up on the '-r' or '--reconfigure' options to 'lin' and it turns out that this is a bit of a crucial option. If you are like me, you will be cautious, and will run 'lin --deps' on every module to see what else needs to be built. This will ask about installing optional modules, and even though this is just a 'dummy run' this configuration information is saved away and you won't be asked again when you come to do the real installation. Unless you use 'lin -r' that is...
- Again, unless you are really sure you want to override the default configuration settings, don't! Get the system working first, and then add in the bells and whistles. I was bitten by selecting the optional 'lunaric-sound' module, but for some unknown reason I was temporarily blocked from downloading it, but as I hadn't remembered about 'lin -r' I was stuck for quite a while.
- Once you've reached the bottom of 'man lfirsttime', you should have updated the moonbase, downloaded the basic tools, and run 'lunar update'. You will have updated quite a few files.
- You should have updated 'wget' as this is used to download modules. Unfortunately, it doesn't really know how to download module sources from CVS repositories, and if the module doesn't have CVS as one of its dependencies, the download will fail. (I had problems with the 'madwifi-cvs' module for this very reason). Run 'lin cvs' now, and save yourself potential grief later.
Get into good habits now
As noted above, every time you install a new module you are adding new commands and dozens, if not hundreds, of files to your system. Therefore, until the point where you set up 'cron' to do it for you, you will also need to:
- Run 'updatedb' so that you can use 'locate' to find configuration files easily.
- Run 'makewhatis' so that you can run 'apropos' or 'man -k' to find the commands that you want
Setting up X
I've been using window-based user interfaces since the ICL Perq in 1983 and it was obvious that the next stage meant setting up a windowing system so that I could (a) make use of more than just the basic 80x25 console terminal, and (b) have access to manual pages, etc. while building or configuring additional modules. Therefore use 'lin' to install 'XOrg', 'XOrg-basic-fonts' and 'XOrg-extra-fonts'. Note that not all documentation available at http://xorg.freedesktop.org is available in these downloads.
- However, to make life easier when using the Lunar tools, you might also want to edit your .Xdefaults file or the global /etc/X11/app-defaults/XTerm to set:
- XTerm*loginShell: true (to allow tab-completion of command and module names)
- XTerm*reverseVideo: true (to allow the Lunar tools menus to be more readable)
- XTerm*scrollBar: true
- Login and run 'startx'. This should bring up a basic window manager 'twm' that will at least allow you to do things in parallel.
xfce and firefox
At this point I wanted something a bit more up to date. Why 'xfce'? Well, we have 'kde' on the boxes at work, mainly so that the non-computer people at least have a chance of finding a command to do what they want somewhere in the menu hierarchy. But I wanted something a bit more minimalist. After all, I have complete control of what I'm installing on this box, and part of the reason for doing it is to learn more about the tools in the process. The other thing that was becoming more important, was access to the various READMEs, HOWTOs and project home pages so that I could learn what I needed next. I had been using the browser on the WinXP laptop, but wasn't exactly convenient, and it wasn't possible to cut and paste between machines. Hence 'firefox'. As far as I remember, a simple 'lin xfce' and 'lin firefox' installed everything without any problem at all, and I'm now using 'firefox' to edit this page. In order to read the tech specs of my wifi card I also downloaded the Adobe Acrobat reader. It installed OK, but in an out-of-the-$PATH directory. I still haven't configured 'firefox' so that it automatically uses 'acroread' when I open a PDF link, so at the moment I have to save the link to disk and then call 'acroread' manually. But not a big deal for now.
Newbie's guide to installing the 2.6 kernel
The boot sequence of the pre-compiled 2.4.31-normal kernel had already identified my wifi card as using the Atheros chipset, and this was confirmed by running 'lspci', but obviously, try as I might, I couldn't get 'lnet' to do anything with it. After searching Google and asking in the Lunar forum it was clear that I would need to install the 'madwifi-cvs' module, but before I could do that I would need to install the 2.6 kernel. There is an Installing 2.6 HOWTO but this skimmed over the important part as far as I was concerned. After a bit more time on Google I came across a reasonable 2.4 kernel tutorial on the LinuxChix web site - but of course I can't find the exact link now - and also the draft of the update of the Linux-Kernel-HOWTO which is now called the Kernel Rebuild Guide. This guide tells you that you will need certain modules already installed in order to build a 2.6 kernel. Most of these were already installed, and more recent than the version required. However there were a few which were missing, and they have quite a few dependencies on other modules that you therefore have to install as well. I had errors when I tried to install them:
- module-init-tools failed to install the modprobe.conf(5) manual page that I would need later.
- docbook* modules wouldn't install when I used the obvious leaf-first reported dependency order, but in fact, if you install 'docbook-profile' first then everything is supposed to work properly. I don't know how someone new to 'docbook' is supposed to guess this though.
- isdn4k-utils failed to install properly because of a missing dependency on 'linuxdoc-tools' and then a problem with a Makefile.am.
- pcmcia-cs may have failed to install everything, but I don't remember now.
I spent a while trying to work out what the problems actually were, but in the end I couldn't resolve all of them. Therefore I decided to proceed with the 2.6 kernel build anyway to see how far I would get. YMMV, but the installation errors above didn't stop me from building the 2.6 kernel, although it took me some trial and error before I finally got there:
- a lot of the documentation talks about 'oldconfig', 'menuconfig' and 'xconfig' as though they are separate modules that you need to install before you can configure your new kernel. It took me a while to realize that they are 'make' targets and are handled within the kernel build process. Doh!
- 'lin linux-2.6' downloaded the sources and then called 'make oldconfig' during the build process. This is a clever script that extracts details of your current kernel configuration. Unfortunately there are one or two places where it needs user input, but the automated build process couldn't get that user input and started to loop. I had to interrupt it.
- luckily the 2.6 kernel sources had been unpacked in /usr/src/linux-126.96.36.199 - YMMV - so I attempted to run 'make oldconfig' manually. I obviously answered something incorrectly, because after running the full make, and then the following:
- cp arch/i386/boot/bzImage /boot/188.8.131.52-mine
- cp .config /boot/config-184.108.40.206-mine
- cp System.map /boot/System.map-220.127.116.11-mine
- adding the 18.104.22.168-mine entry to /etc/lilo.conf
- /sbin/lilo -V
- shutdown -r now
The new kernel failed to boot at all, never mind start and then crash. So, what to do now? Eventually, after much experimentation, I extracted the current kernel configuration from /boot/config-2.4.31-normal.gz and ran 'lin -r linux-2.6' but this time saying that I did want to reconfigure the kernel, and that I wanted to use 'menuconfig'. The build process started and up came the 'menuconfig' screen. I selected the 'Load alternative configuration' option at the bottom of the first menu, and loaded the existing 2.4 configuration. The first time I did this I got some errors about missing options, but after saving the new configuration file and repeating a couple of times it all worked. I was able to reboot with the 2.6 kernel!
Getting the wifi card up and running
Finally I had reached the point where I could start to look at intalling the drivers for the wifi card. The 'hostap' module installed smoothly. Downloading the 'madwifi-cvs' module failed repeatedly until I realized that I needed to download CVS first in order extract the sources from the remote repository. Then, as far as I remember, it installed relatively smoothly, except that I was rather confused by the Building Madwifi FAQ until I realized that it was a bit out of date and related to an older experimental kernel configuration and could safely ignore it. The next phase was re-building the 2.6 kernel again, and this time working through the menus: Device Drivers, Networking Support, Wireless LAN, and then enabling it and all of the ISA/PCI 802.11 modules below it. After a rebuild and a reboot I was able to use 'modprobe' to load the 'ath_pci', 'wlan' and 'wlan_wep' modules. Almost there, I thought, but I was wrong!
After hearing the statistic that a vanilla Windows PC could have its ports scanned and be broken into within 17 minutes of being attached to the Internet, I had already set up the ethernet to wifi router to use strong encryption with a WPA passphrase, and I knew that it was working because the WinXP laptop was already using its wifi pcmcia card without problem. For the Linux box I had been intending to use hostap/wpa_supplicant but this simply proved to be beyond me. Again there was mention of building within the kernel source tree, and this didn't appear necessary, nor did the '-Dmadwifi' switch. In the end what stopped me was the fact that all of the other tools I had dealt with so far such as 'lnet' and 'iwconfig' described the use of an 's:' prefix when specifying an ascii encryption key, and this was not mentioned anywhere for the wpa_supplicant configuration. After an evening of frustration, and a throwaway comment by a colleague about using WEP encryption, I decided to go back to first principles. I removed all encryption from the wifi router configuration. Shortly after verifying that it was working using the WinXP laptop, I had got it working under Lunar:
- modprobe ath_pci
- modprobe wlan
- modprobe wlan_wep
- ifconfig ath0 up
- iwlist ath0 scan
- iwconfig ath0 ap xx:xx:xx:xx:xx [MAC address of wifi router]
- iwconfig ath0 otherParameters
It was interesting to see that the scan showed not only my network, but also those of my neighbours, and not all of them were protected! As far as I could see, once I had configured the access point using the MAC address of the wifi router, I could repeat the rest of the configuration parameters using 'lnet'. The first time through I gave the interface a fixed IP address on my private class C network, and I could verify the connection using the wired network connection and browsing the wifi router's web interface. I could also see that reconfiguring with 'lnet' to use a dynamic IP address and 'dhcpcd' also worked.
OK, so back to reconfiguring the wifi router to use encryption. This time I chose WEP rather than the more secure WPA so that I could concentrate on one thing at a time and not have to configure 'wpa_supplicant' as well. Again I verified that it was all working using the WinXP laptop, and then ran 'lnet' to delete and then reconfigure the ath0 interface. The wifi router web interface showed the new connection. From there it only needed a couple of extra steps:
- route add bbc.co.uk gw ath0 [and watch the led on the wifi router flicker]
- route add default gw ath0
- unplug the wired interface...
But this was not quite the end of the story. When I rebooted the system, the wifi interface was gone, and I had to run the modprobe steps and reconfigure ath0 by hand before I could continue. The installation of 'module-init-tools' had failed to install the 'modprobe.conf(5)' manual page, so I was a bit in the dark about what needed to go in there. The header comment for /etc/modules implied that all I needed to do was to add a single line containing 'ath_pci' so I took a gamble and it has paid off.
Installing the sound card
Apart from the aborted attempt to install 'lunaric-sound', I hadn't given the sound card much thought at all. I'm not someone who appreciates the machine beeping, or playing chords and fanfares just because I succeeded in logging in or failed to type a sentence without a speeling mistake. I hit Google again, and came up with the Linux Sound HOWTO but this was already four years old. I ran 'lvu search' looking for both 'sound' and 'audio' and hit Google again. I came across the Linux Audio Users Guide and this mentioned the Advanced Linux Sound Architecture. The fact that it had the word 'advanced' in the title and the copyright was 2005 hinted that this was probably the way to go. I entered the results of 'lspci' into the search menu on the page, and it came up with what I needed on how to install and configure the card if I were running one of the other Linux distributions. No matter, I simple used 'lin' to download and install all of the 'alsa' related modules. Everything went fine, but I couldn't get any sound out of card at all. I downloaded 'lunaric-sound' and 'audiofile' while looking for inspiration. Eventually it struck me that I needed to rebuild the kernel. Doh! Back in 'make menuconfig' again, and this time, once I had selected the appropriate options under the Device Drivers, Sound, Advanced Linux Sound Architecture, PCI Drivers menu we were in business. After rebooting, the crucial thing to know is that the sound card is muted by default, so you will need to run 'alsaconf' to detect it and write an entry in the mysterious /etc/modprobe.conf file. You will also need to run 'alsactl store' to create the /etc/asound.state file.
Strictly speaking, it's the other way round. I have a Logitech MX310 7-button mouse and I wasn't getting any joy out of the scroll wheel in the default configuration. It took me a while in Google to find an article that gave me the bones of what I wanted. So I added this single InputDevice section to an otherwise empty /etc/X11/xorg.conf file, and restarted X. No joy! X needs a complete file, not just the one section. So, how to fill in all of the other parts. Apart from the mouse buttons, X was working satisfactorily with the rest of my hardware, so the default values it was choosing must be OK. The question was how to get at these defaults. Initially I tried to use 'Xorg -configure' but when I re-ran X using the new configuration file, I got an 'Out of range' message on display and then the screen went black. Ctrl-Alt-Backspace to get back to the console, and this time I dug out the hardware manuals and fed the appropriate values into 'xorgconfig'. I had to re-run to set up the desired screen resolution, because the existing xfce panel was partly off the screen. Finally I added the InputDevice section for the mouse, and the scroll wheel was recognised, but not as the correct button(s). Doing the appropriate xmodmap by hand worked, but unfortunately the configuration I'd added to /etc/X11/xinit/.Xmodmap wasn't recognised.
While looking at Xfce4 documentation to find out how to change the mouse settings, it became clear that I was running an old version. So I've just downloaded and installed all of the xfce4 modules. I still haven't found where to set the mouse button mappings, but I'm still exploring...
In fact, in the two months since I wrote the previous section, I still haven't managed to get the correct incantation to be able to get the mouse buttons mapped correctly at the system level. In the process I've updated various of the X startup files, but don't ask me which ones, and in the end I had to create a .Xmodmap file in my $HOME directory. As I'm the only user it's not such a hardship, but I feel cheated that I couldn't do it properly.
The first 'lunar update' and fallout
An article on the Lunar mailing list prompted me to consider updating all of the software on my machine. Why now? Well, the system was still relatively bare, so I had nothing to lose, and I would have to do it sometime anyway. But where to start? For want of any other strategy I went back to 'man lfirsttime' to follow the instructions there. Moonbase? Lunar? No problem. Then the core of the compiler toolset. No problem? Well, they compiled without error, but then I noticed that man/groff didn't work. Mismatched library. OK, it was after midnight, so I decided to go the whole hog and let 'lunar update' sort out the mismatch. The next morning I found that ncurses had failed to build/install, as had oprofile, and Python (twice). But what was worse was that when I rebooted, I found that I had lost my wifi connection!
The following evening I examined the system. Running 'dmesg' showed that various drivers hadn't loaded due to a 'version error' - the drivers had been built with gcc version a.b.c but the kernel was expecting version 'i.j.k'. Don't ask me the exact message because I didn't note it down. This suggested a kernel rebuild, and as the version of the 2.6 kernel in the moonbase was newer than the running kernel, I hit 'lin linux-2.6' and let it run. Remembered to 'lin kernel-includes-2.6' as seen on the mailing list. Reconfigured again based on the last working kernel config in /boot, but still no joy. But at least I had got rid of the 'version error' messages. Turned to the Wizards on #lunar. As soon as I told Moe that I had a wifi card based on the Atheros chipset, he told me to rebuild the madwifi module. Another reboot, and the network was back.
The next problem was that I couldn't start X in any shape or form. The famous 7-button mouse was not recognised. I rebuilt XOrg and xfce4 from scratch, removed the xorg.conf and the .Xmodmap, but still no joy. Moe on #lunar to the rescue again and we diagnosed no /dev/input/mouse0 as the cause. Why? Mismatch between the new 2.6 kernel and devfs. Discussions between Moe, Florin and Nestu on #lunar about how to proceed, but Moe won in the end. Downloaded e2fsprogs, removed devfsd and downloaded udev. A reboot and we were back in business, on the network, and a more useful environment to work in than a 80x25 console window.
Moe argued with Nestu that the average user would not be able to work this out alone. I needed help, but that help will also guide me to being an above-average user on the path to being a Wizard. And that's my goal, even if at the moment I feel like Mickey Mouse as the Sorceror's Apprentice carrying all of those buckets of water. Or rather, one of his brooms. <insert big smiley here!>
On the mailing list, Sofar recommended using 'lunar nofix' and fixing any reported problems before running a full update. Rebuilt ncurses without problem (there's always a glitch in the first attempt apparently), and Python rebuilt once I'd corrected a broken URL in the moonbase. oprofile is a 2.4 application and refused to build under a 2.6 kernel, but as I had no recollection of installing it in the first place, and 'lvu eert oprofile' didn't reveal any dependencies, 'lrm oprofile' sent it to the bit-bucket.
So, into the home straight now to correct the remaining problems shown in the 'dmesg' log. Before I knew that I had lost the mouse, Florin on #lunar had recommended to configure the ALSA driver in the kernel rather than install 'alsa-driver' permanently. Hence I had run 'lrm alsa-driver' before the kernel rebuild. After the reboot I could not get a peep out of the sound card. /etc/modules.conf still included 'snd-atiixp' from the previous working configuration. Florin to the rescue again: I'd removed the driver from the kernel, but hadn't loaded the replacement module. Modprobe snd-atiixp and we were back in business. And by adding it to /etc/modprobe.conf (confusingly similar name, don't you think?) it's now loaded at boot time. I can now play music CDs using alsaplayer, and even see the tracklisting after downloading libcddb and rebuilding. Unfortunately clicking on the music icon on the xfce4 toolbar brings up xmms, and I still haven't managed to get that to work yet.
The final challenge of the weekend has been trying to figure out how to download and enable the MacroMediaFlash and RealPlayer plugins for firefox, as described on the firefox help pages, so that they will run with the sound card. Previously I could play videos, but had no sound. Now I can't even find the plugins correctly. Something's just a little bit off somewhere, otherwise the Installation HOWTOs and FAQs would have mentioned it. My search phrases in Google haven't thrown up the answer yet, but I'll get there.
DistroWatch and LinuxFromScratch
While browsing on DistroWatch -- you do register your use of Lunar by accessing the Lunar pages via the DistroWatch:Lunar link, don't you? -- I came across a link to the wonderful Linux from Scratch. Apart from describing how to build your own Linux from the ground up, it also provides a lot of additional pointers and links to useful documentation. It draws a lot of widely-spread information into a single place, and more importantly, you know that this information is still relevant. The section entitled Device and Module Handling on and LFS System helped to make sense of the devfs/udev problems that I described above. I will be checking out the Beyond Linux from Scratch pages over the next few days too, to see what else I can learn.
Clean out log errors and fsck
I've been browsing through 'Beyond Linux from Scratch' and it struck me that I haven't really been paying attention to the logfiles. Straightaway /var/log/dmesg revealed problems loading the ipv6 module, which I don't need, so I've just rebuilt the kernel to correct that. Then there were messages that my ext3 filesystems had exceeded the number of reboots without being fsck'd. Ratler on #lunar recommended creating /forcefsck and rebooting. I did. The boot messages stalled while my disk light flickered for a few minutes, and then I was told to to run fsck manually. I did. The filesystems were clean. I exited the maintenance shell and the system rebooted, and it told me to run fsck manually again. Not surprisingly, the filesystems were clean. I tried to remove /forcefsck - no dice - the / filesystem is mounted readonly at this point. After a moment of panic and a bit of lateral thinking I booted from my 1.5.1 installation ISO, dropped into the recovery shell, mounted /dev/hdb2 on /tmp/d and was able to remove /tmp/d/forcefsck. Removed the ISO and rebooted the system. No more messages about ipv6 and no messages about needing to fsck the disks. Another problem solved and further on the road to wizardhood :-)
The /forcefsck problem described above has been resolved by the installation of a new /etc/init.d/mount from 'e2fsprogs' version 1.38. My thanks to the Lunar team for such a speedy patch.
Connecting the Digital Camera to the USB
I really wanted to enable the USB port so that I could hotplug memory sticks, an external hard disk for backup and transer, and a CD- or DVD-writer, but I haven't bought any of them yet. But then I saw the USB_camera_howto and thought that I could test the setup using my camera. modprobe does show a usb-storage module, and as I'm on a 2.6 kernel, my /proc/devices contained sd entries for the SCSI devices. However, connecting the camera didn't produce a dmesg entry, and trying to mount /dev/sda1 threw up a 'no such device' error. The wizards on #lunar soon came up with ideas. I was pointed at a useful Canon Digital IXUS 400 page. I was missing the relevant UHCI-HCD module! Somewhere in the evolution of my box from the 1.5.x ISO to its current 22.214.171.124 kernel incarnation, I'd lost, or more likely screwed up, some of the relevant kernel config. Firstly, the usbdevfs entry in /etc/fstab needed to be changed to usbfs, and then I needed to configure the additional USB entries (CONFIG_USB_DEVICEFS=y and CONFIG_USB_UHCI_HCD=y). Twenty minutes later, I made sure that I had already lin'd libusb and usbutils, and rebooted the new kernel. Yes, lsusb showed me a nice USB device.
I had tried fiddling with an old web-cam (Logitech QuickCam) before Christmas, and I downloaded various drivers for that, but couldn't get it working. Now I know that it was down to the mismatch of 2.6 kernel and usbdevfs.
It turns out that this particular camera doesn't work as a generic USB storage device, so it is still not mounted automatically. I'm now downloading gphoto2, which is reported to recognise this particular camera directly. It's built, but not yet configured correctly, so I still can't access it. I will look at this tomorrow...
...it's tomorrow, and I've just bought myself a 512Mb USB memory stick on the way home from work. I plug it in, and dmesg | tail shows that it's been detected. I create a file in /mnt/usbflash/ and remove the memory stick, only to find that the file still exists. I remove the file, read a bit more, and then mount /mnt/usbflash after I've inserted the memory stick. This time I create the file, umount /mnt/usbflash and Lo! and Behold! - the file is gone. Whoopee! Now all I have to do is work out how to get the file system on the memory stick to be mounted automatically, but that's a job for another day.
Hardware Rendering on my ATI Radeon 9100 Graphics Card
I don't remember the exact details because it's been a couple of months since my last major installation effort: enabling the direct rendering on my ATI Radeon 9100 graphics card. I don't play games on the machine, so graphics performance was perfectly good enough as it was, but I was struck by the difference between my ASUS Pundit at work, and the one at home. If I've left the machine at work on overnight, it's completely silent when I arrive in the morning, but the one at home is always 'busy' doing something, or at least, that's the impression I have from the fan noise. I assumed that the CPU was busy doing all of the screen saver graphics in software.
I almost bit off more than I could chew in getting the various parts of the system configured correctly. I ended up with some hybrid system that worked, but apparently shouldn't have, and it was a major effort to correct it. Rather than repeating everything here, full details of the process can be found in the ATI Radeon 9100: XOrg-drm or fglrx? thread in the Lunar Linux Forums.
Now that hardware rendering is enabled, the system still sounds 'busy', even when it's not doing anything. I've reduced the screen saver to a plain blank screen. I wonder whether having a wireless lan means that the system is actively monitoring, whereas a wired connection wakes up with an interrupt when there is network activity...
The second "lunar update" and fallout
I've been watching #lunar, the mailing lists, and the Updated Modules section on the Lunar Linux home page. I saw the 1.6.0 ISO being released, and wondered about re-installing from scratch, but decided against it. The only reason would be to start again with a clean system, and clear out the remnants of the [now unused] 2.4 kernel drivers and associated cruft. I would need to relocate the box downstairs to connect to the wired network until I'd managed to reinstall wifi. More hassle than it was worth. In any case, once I realise something isn't needed any more, I check with 'lvu tree' and 'lvu eert' and then remove it. If I'm not sure, I ask on #lunar. 'lrm devfsd' removed the irritating shutdown warning that I'd had since I moved from 2.4 to 2.6.
So, after a hiatus of a couple of months, I downloaded a new moonbase. 'lvu expired' showed quite a few things to be rebuilt, the most important of which were linux-2.4, linux-2.6 and madwifi-cvs. Surely if I am now running a 2.6 kernel I didn't need to update 2.4? No indeed, I could safely 'lrm linux-2.4', and lunar is clever enough not to zap the 2.4 kernels and kernel modules that I still have in the boot area. I'm not short of disk space, so I'll clean them out manually later. I'd forgotten about installing some of the other package modules, such as rp-pppoe and kismet, but as I wasn't using using them anyway, they bit the dust too.
I worked through the userspace modules shown my 'lvu expired' first, using plain old 'lin', and most things went smoothly. It's helpful to do a 'tail -f /var/log/lunar/activity' in another window while installing just in case some of the dependent modules fail and the build messages scroll off the screen. libpng failed to download. 'lvu website libpng' gave me the URL of its homepage and I downloaded from one of the mirrors into /tmp. Then I ran 'lin -f /tmp libpng' and it installed quite happily. I had the same problem and workaround for tcl and tk.
After I'd filed bug reports, I was told that I had the default Sourceforge mirror set to an OSDN machine that was problematic: it is overworked and mirrors only the most recently released packages, not the most recent version of all Sourceforge packages. How is Joe User supposed to know it's a problematic machine? For some reason, 'lunar' has this OSDN machine set as the default SourceForge mirror. I subsequently ran 'lunar' and chose a Sourceforge mirror that is a little bit closer to me. You can see the various mirrors in one of the 'lunar' menus, or you can look at the files in /etc/lunar/mirrors.
Finally down to the two biggies: linux-2.6 and madwifi-cvs. No doubt there's some logical order in which these need to be rebuilt, but just like my previous kernel upgrades, I obviously got it wrong. I launched 'lin linux-2.6' and it looped while waiting for configuration input, so ^C to interrupt. I copied the .config file from the most recent working /usr/src/linux-2.6.*.* directory, and tried again. I worked through the configuration stage, just to make sure. At one point during the compilation process it asked whether I should delete a whole series of 802.11 related object file, default y, but I said n instead. Whether this is what scuppered my network on reboot, I don't know, but I was obliged to go through the 'lin linux-2.6' and 'lin madwifi-cvs' several times before I could reboot with the network.
So my system is now completely up-to-date again and back on the network after two evenings of work, and most of that was compiling firefox and some of the framework libraries like kdelibs3. Next time I don't think I'll leave it as long before I update.
Oh, how I wish I'd chosen a wifi card with a driver that was integrated in the main kernel download! If I get another tower or desktop next time, rather than a laptop, I think I'll be tempted to buy a separate wifi hub, chain it to the hub downstairs, and just have good old network cables between the new box and the hub.
To be continued...