|SSH and DNS
|Docbook and XHTML
In this journal entry, I intended to document the trials of upgrading the backup web server on chrome from Debian woody to sarge. The upgrade was required as sarge was the new stable release (Debian 3.1). To my great astonishment, and entirely to the Debian release team's credit, the upgrade was a hassle-free experience.
All I had to do was to follow the instructions in the Debian Upgrading notes. For my installation, the instructions in the release notes are boiled down to this:
etc, /var/lib/dpkg and the
dpkg --get-selections "*".
/etc/apt/sources.list related to
sources other than stable (A couple of the packages on chrome were
from testing i.e. emacs and python, which was no longer
necessary). See the previous journal entry.
aptitude, which is the preferred way of
apt-get install aptitude.
aptitude to upgrade:
And that was it. Everything worked perfectly.
Once it was obvious that the system upgrade had worked, I then decided to upgrade to the latest 2.6 kernel from Debian. This was only slightly more troublesome. Advice on this process is documented in the release notes.
Upgrading the kernel was achieved by
kernel-image-2.6.8-2-386. Before I could boot the new kernel,
/etc/lilo.conf file had to be modified to add
initrd=/initrd.img to the
The installation process will remind you to do this, unless you add
do_initrd=Yes to the file
After rebooting, there were two small issues to deal with. The
first was that I had to add the following module names to
/etc/modules to ensure that the mouse worked under X:
The other area that needed attention related to CD burning. I had
cdrecord as the cd burning tool, which required SCSI
emulation under 2.4. This is specified via the
argument, given by an
append directive in the
image stanza in the
/etc/lilo.conf file. The
ide-scsi option must be removed from
/etc/lilo.conf (as well as the
ide-scsi entry in
/etc/modules). In 2.6,
ide-scsi is replaced by
the ide_cd module, which must be added to
cdrecord with the following command (
is the CD-RW device):
cdrecord -v dev=/dev/hdd speed=24 -data data.img
You can ignore all the rantings from
cdrecord. I also
/dev/hdd, and changed the
/dev/cdrom /cdrom iso9660 ro,user,noauto 0 0
Following chrome's kernel upgrade, I decided to do the same on gold,
my desktop development machine. gold runs the Debian testing
distribution. I chose to build from source, rather than using a
supplied Debian kernel-image. This meant using
kernel-source-2.6.8-2-i386 to acquire the source code. So that
I could base the new 2.6 config on my old 2.4 version, I copied the
.config file to the new kernel source directory and ran
make oldconfig, which just asks questions related to new
options. Be warned, there are still an awful lot of questions.
Once that was complete, I wanted to finalise the configuration using
the menu capability. However, in 2.6,
make xconfig needs
the QT libraries, so I had to
apt-get install libqt3-dev
before I could run the X-based menu configurator.
The 2.6 kernel includes support for the ALSA drivers, which meant that I no longer had to build them separately for the Hoontech DSP24 sound card. One step less required for a new kernel build.
The Debian documentation warns you to install
module-init-tools if you compile the kernel from source.
However, this was already present on my machine. Note that on gold,
I don't bother with ram disks, so the
initrd stuff is not
I built the kernel using the Debian
method. I ran
/sbin/lilo and re-booted. First problem
was that my graphic boot screen was incorrect (see below). However,
the new kernel came up fine. The slight problems I encountered with
the new kernel version are documented below.
Linux 2.6 has renamed some of the modules; this affected me in
relation to the USB mouse and sound, which needed the following new
uhci_hcd usbhid usbmouse snd_ice1712
Once I no longer need a 2.4 kernel as backup, I must remember to
remove the unneeded 2.4 modules from
The startup script
/dev/ttyS0 did not exist:
/dev/ttyS0: No such device or address
This was because I had omitted to include serial support in the new 2.6 kernel. Once I'd added the right option (Device Drivers+Character Devices+Serial Drivers+8250/16550 and compatible serial support) to my kernel configuration and booted a new kernel, the saved state of the tty devices was loaded OK.
I'd noticed the boot-time message:
nfs warning: mount version older than kernel
for a while, but kind of expected that an upgrade would eliminate
these messages. I was wrong, as the message was still emitted under
2.6. After a little digging around in the source code, it seems
that the Linux 2.6 kernel is running at an
NFS_MOUNT_VERSION version of 6, while the latest source
code for the mount program I could find on the web (via searching
for the Linux mount source code on Simple LSM Search) was in
util-linux-2.12a.tar.gz, with an NFS_MOUNT_VERSION of 4.
Hence the error message is issued by the kernel when mounting
exports from crimson (a FreeBSD box).
The other NFS related error message:
NFS: NFSv3 not supported.
was issued because I had not compiled support for NFS V3 into the kernel (FreeBSD NFS is at V3).
A problem I only noticed a little later was that the keyboard, when
in console mode, was not working as a UK keyboard. This was
rectified by running
dpkg-reconfigure console-data and
setting the keyboard to the standard UK layout. However, this did
not cure the problem with Shift 3 (British pound key), which just
emitted a # character and seemed to kill any input. This can be
worked around as described in this
article, which involves adding the line:
~/.inputrc (or to the global
It occurred to me later that this might have something to do with the locale I have set (POSIX). I'll have to try some experiments later.
Investigation took some time. It wasn't until after I installed
Lenny, that I looked at this again. This real issue, I think, was
rxvt was not unicode-aware. However, there is an
rxvt-unicode that, as it's name
suggests, is very capable of handling non-POSIX locales. After
installing this version and removing the original
could delete the
~/.inputrc file and still get GBP
Now to fix up the lilo graphical boot screen. It had been so long
since I had last done this that I could only vaguely remember what
to do. I was using the
sarge.bmp file as the graphical
background. I remembered editing the locations of the text menus
/sbin/lilo -B sarge.bmp, a painful exercise. It was
this text menu position information that seemed to be forgotten. I
recalled that last time, I squirrelled away a copy of
/boot/sarge.dat (which contains the menu position settings)
in my home directory, for just this eventuality.
I tried copying the locations defined in
sarge.bmp using the
/sbin/lilo -E sarge.dat
lilo complained that the
contained an invalid value. However, it gave me a clue that a
valid value was between 2 and 20 inclusive. Since this used to
work, I can only assume a new version of
lilo had been installed
that had changed the permitted values. The
sarge.dat specified 25 as the length of the
text menu, so I changed it to 20. Now
sarge.dat worked. And on reboot the menu and timer were
This is such a pain to remember that I am going to put the bmp
settings in the
Following a couple of
apt-get upgrades, I attempted to change some kernel configuration parameters via
make xconfig. This caused a compilation error:
scripts/kconfig/mconf.c:91: error: static declaration of 'current_menu' follows non-static declaration scripts/kconfig/lkc.h:63: error: previous declaration of 'current_menu' was here make: *** [scripts/kconfig/mconf.o] Error 1 make: *** [xconfig] Error 2
This turned out to be caused by the new gcc 4.0 compiler. By linking
gcc-3.3 the problem went away.
You can also tell make which compiler to use via the command line:
make HOSTCXX=/usr/bin/gcc-3.3 xconfig
|SSH and DNS
|Docbook and XHTML