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