splitbrain.org

electronic brain surgery since 2001

Customizing the toofishes EeePC Arch Kernel

I'm running Arch on my EeePC. To have the somewhat exotic hardware1) running well, I'm using a custom Kernel, created by the forum user “toofishes”.

Unfortunately this Kernel only includes what is needed to run the hardware built directly into the EeePC. But today I had the need to get the pl2303 USB serial driver working on my Eee. Since it isn't included in the toofishes build I had to rebuild the package myself. For your education and my memory, I'll list the steps needed here.


I did all this on my desktop system running Arch, it might be a bit easier doing it directly on the Eee, but I don't wat to compile a Kernel on that little machine. I also worked as root, that's bad - I know. But I wasn't in the mood to figure out how to use fakeroot correctly.

First you need a working copy of the twofishes package sources. They are maintained with git.

#> pacman -Sy git
#> git clone http://code.toofishes.net/gitprojects/eee.git

You now have an eee directory containing multiple package sources. We start with the Kernel in eee/kernel-eee. To modify the configuration, it is easiest to add a make menuconfig in the build process of the PKGBUILD. Find the line make || return 1 and add it right before. Should look like this:

  # load configuration
  cp ../kernelconfig ./.config
  make silentoldconfig
  make menuconfig    # <- my addition
  make || return 1

Now start the build process:

#> makepkg --asroot

It will run the usual Kernel configuration utility. Modify what you need, then exit and the Kernel package will be built (kernel-eee-2.6.27.1-1-i686.pkg.tar.gz).

Next is the ACPI stuff in eee/acpi-eee. Nothing complicated here, just change into the directory and create the package (acpi-eee-3-1-i686.pkg.tar.gz).

#> makepkg --asroot

We skip the eeepc-linux directory because it seems to be outdated.

Last one is madwifi-eee-svn. This one has the eee-kernel as dependency listed. But I don't have that package installed on my desktop machine of course, so I removed it from the dependency line in the PKGBUILD:

depends=('madwifi-utils')

When I tried to run the build process it failed with the following error:

Location: http://snapshots.madwifi-project.orgmadwifi-hal-testing/madwifi-hal-testing-r3866-20080915.tar.gz [following]
--2008-11-04 23:38:48--  http://snapshots.madwifi-project.orgmadwifi-hal-testing/madwifi-hal-testing-r3866-20080915.tar.gz
Resolving snapshots.madwifi-project.orgmadwifi-hal-testing... failed: Name or service not known.
wget: unable to resolve host address `snapshots.madwifi-project.orgmadwifi-hal-testing'

The problem was a incorrect redirect at the madwifi site. So I “guessed” the correct locaction and hardcoded it into the PKGBUILD file:

source=(http://snapshots.madwifi-project.org/madwifi-hal-testing/madwifi-hal-testing-r3866-20080915.tar.gz)

Then the build ran correct, creating the package (madwifi-eee-svn-3866-1-i686.pkg.tar.gz):

#> makepkg --asroot

I finally copied the packages over to my Eee and installed them with

#> pacman -Up kernel-eee-2.6.27.1-1-i686.pkg.tar.gz \
   acpi-eee-3-1-i686.pkg.tar.gz \
   madwifi-eee-svn-3866-1-i686.pkg.tar.gz
1)
mostly network, wireless and ACPI related