[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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

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

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.


    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:


        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

    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:


    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


    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


    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
    which I did later for compiling my own kernel


    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

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.


    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.


    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 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

    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 \

    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

Reply to: