2.6.5 Upgrade Notes
It's reasonably easy to find 2.6 upgrade notes, but as I spent quite a
few hours in the process I'll post my notes. Hopefully it will save
someone some time.
I do have one question, though. I built my own kernel in the end the
.deb was about 25MB. The Debian kernel-image-2.6.5-1-686 .deb is only
15MB. I only included the parts I need in my kernel so I expected the
.deb to be a lot smaller that the stock kitchen-sink kernel-image from
Debian. Any idea why?
There may be mistakes below -- I'm new to 2.6. If so, let me know.
Upgrade to 2.6.5 April 18, 2004 (from 2.4.21)
=============================================
This is a few year old Toshiba laptop 2805-S302 running Debian Sid
The goal was to move to using the kernel-image packages to make
upgrading faster in the future.
I use two wireless cards with this laptop, a SMC3632W Prism card and
a Cisco Aironet 352, otherwise, a rather boring setup. I was using the
linux-wlan-ng drivers for the Prism card, but now would like to use the
kernel (orinoco) drivers.
The kernel-image install went fine, but the wireless kept failing. I then
built from kernel-source-2.6.5 and wireless works. May or may not be
related.
One other show stopper was ACPI caused the startup of PCMCIA (loading of the yenta
CardBus driver) to hang the machine. So I disabled ACPI and use APM
instead.
I don't use USB, so didn't test.
Part 1 -- Using kernel-image-2.6.5-1-686
----------------------------------------
First did a dist-upgrade to make sure I was up to date.
Install Kernel:
# apt-get install kernel-image-2.6.5-686
That also installed the required module-init-tools and initrd-tools.
Lilo:
That's an initrd kernel so need to add initrd=/initrd.img to lilo.
(the install will warn about this)
Make sure there's a symlink to the real initrd.img file in /boot.
So adjusted my /etc/lilo.conf:
default=Linux
image=/vmlinuz
label=Linux
read-only
initrd=/initrd.img <<--- added
As noted, PCMCIA loading of my yenta CardBus driver for PCMCIA hung.
Google searches showed that this was a ACPI conflict, and indeed booting
with:
boot: Linux pci=noacpi
solved the problem. That doesn't completely disable ACPI so, for example,
my battery monitor in IceWM didn't work (it's APM based, I guess), so in
lilo.conf I completely disabled ACPI:
image=/vmlinuz
label=Linux
read-only
initrd=/initrd.img
append="acpi=off"
Note: For a major update I tend to copy my existing kernel
and create a new lilo.conf entry. The installation will move
the good kernel to a backup, but I like to have another backup.
Then rerun lilo as root:
# lilo
Modules:
The new kernel needs additional modules loaded. My previous
kernel was self compile with most things compiled in.
Here's my additions to /etc/modules
eepro100 # internal ethernet
ymfpci # sound card
psmouse # for /dev/input/mice
mousedev # for /dev/input/mice
pcspkr # for "beep" to work
ide-cd # for access to cdrom
X11:
The mouse is now /dev/input/mice, so I edited /etc/X11/XF86Config-4
and changed /dev/psaux to /dev/input/mice
I think I read that the default Debian XF86Config-4 file has both
so it should work without editing, but I use a custom XF86Config-4
file, so this was needed.
Note: There's also a setting in the kernel to enable psaux
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_PSAUX_ENABLE=y
which I did later for compiling my own kernel
Wireless:
I was using the linux-wlan-ng drivers for my SMC prism2 wireless
card, but now wanted to try the kernel orinoco drivers. So,
I had to move the linux-wlan-ng setup out of the way.
# mv /etc/pcmcia/wlan-ng.conf /etc/pcmcia/wlan-ng.conf.save
That file matches the SMC card and maps it to the wlan-ng driver.
/etc/init.d/pcmcia starts the cardmgr program which reads the config
files in /etc/pcmcia. So moving it out of the way lets the SMC card
match using the default config which maps my card to the orinoco
driver.
Now, reboot:
I commented above about my first problems on booting, namely PCMCIA and
X11 (xdm failed to start because of /dev/input/mice). For testing I disabled
both PCMCIA (in /etc/default/pcmcia) and xdm (in /etc/init.d/xdm). But,
after including the changes indicated above (ACPI and psmouse, mousedev)
it all worked.
Sound:
I tested sound and it worked without any problem, but I was using OSS
programs (I didn't have ALSA before). I assume the OSS emulation layer
was at work. I tried mpg123. I didn't try any alsa* programs.
CD-ROM/DVD
I tried cdplay and mplayer dvd:// and both worked without any problem.
I was able to mount a dvd and mount a data cd.
Wireless:
Wireless works with the SMC card, but seem to hang after a few minutes
of use. I spent a few hours on-line trying to resolve this issue without
any luck.
The Cisco Aironet 352 card works after adjusting /etc/network/interfaces
to set the ESSID for "any".
iface eth1 inet dhcp
wireless_essid any
up /usr/sbin/ipmasq
down /usr/sbin/ipmasq
Part 2 - Compile Kernel from Source
-----------------------------------
I decided to build the kernel from source to see if that made any
difference with my SMC wireless card. So far, the answer is yes it fixed
the problem. But I have not used the wireless for more than a few hours so
far and not much in the way of file transfers.
I also have a lot fewer modules installed, and ALSA seems to work.
I built the kernel on an Athlon XP 1800+, which is a bit faster than the PIII
laptop.
It's the same old story:
# apt-get install kernel-source-2.6.5
$ cd /usr/src
$ rm linux
$ tar jxf kernel-source-2.6.5.tar.bz2
$ ln -s kernel-source-2.6.5 linux
$ cd linux
$ make xconfig (nice new QT interface! -- I normally like menuconfig)
Config Notes:
Note: if there's not an existing .config file then xconfig attempts to load
config info from the existing kernel. I like to start clean so I normally
just do a "touch .config" to create an empty file. Depends if you are
comfortable with selecting everything that is needed.
I start with an empty config and add in what I (think I) need. I use lspci -vv
output to know my IDE, Sound, Serial, USB and other hardware.
I make sure I select my PCI IDE card and enable DMA (it's in more than one place)
I also disabled ACPI and enabled APM. I enabled ALSA for my Yamaha YMF754
audio controller.
I compile in XFS file system and other common files systems as modules.
I add in quite a bit of the netfilter, as I use the laptop for network
debugging and want both a firewall and NAT abilities.
Now, Build the kernel:
$ make-kpkg --rootcmd fakeroot clean
$ make-kpkg --rootcmd fakeroot \
--revision custom.1.3 \
--append-to-version -xfs-toshiba \
kernel_image
scp it to the laptop and install with:
# dpkg -i kernel-image-2.6.5-xfs-toshiba_custom.1.3_i386.deb
(Weird, the kernel-image .deb from debian is 15MB, and my built
kernels are 25 to 30MB)
And reboot:
Here's lsmod:
moseley@laptop:~$ lsmod
Module Size Used by
ds 18084 4
yenta_socket 17440 0
pcmcia_core 64388 2 ds,yenta_socket
usbcore 103132 0
parport_pc 38880 1
lp 11108 0
parport 40296 2 parport_pc,lp
That's it.
--
Bill Moseley
moseley@hank.org
Reply to: