CRUX : Home

Home :: Documentation :: Download :: Development :: Community :: Wiki :: Ports :: Bugs :: Links :: About

Back to wiki start page

CRUX on a Thinkpad T43p

Author

Richard Pöttler, richard dot poettler at gmail dot com

Description

This are my steps to install CRUX 2.4 on a Lenovo Thinkpad T43p with a minimal kernel. I did everything according to the handbook, but if something differs from it or needs special caution, it will be mentioned here.

Instructions

Kernel configuration

At the time of this writing the actual kernel version was 2.6.25.2, so only the kernel configuration for this release will be described (but might work for others, too). I was starting with a plain 2.6.25.2 kernel configuration. The points listed below are only the points I explicitly checked (all other points checked automatically by the menuconfig are left out).

My decision was to compile as much as possible as modules, which then means, that only things needed to boot the machine will be compiled into the kernel.

HDD

lspci lists the SATA controller as:

IDE interface: Intel Corporation 82801FBM (ICH6M) SATA Controller (rev 03)

In order to select this driver, you need to enable PCI and PCIe:

Bus options (PCI etc.)
    [*] PCI support
    [*] PCI Express support

Then we need to enable SCSI disk support:

Device Drivers
    SCSI device support
        -*- SCSI device support
        [*] SCSI disk support

Now check your SATA driver:

Device Drivers
    [*] Serial ATA (prod) and Parallel ATA (experimental) drivers
        [*] Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support

Your hdd will now be recognized as /dev/sda.

Needed file systems

Because the /dev file system in CRUX is mounted into a tmpfs you got to enable it, too (see /sbin/start_udev).

File systems
    Pseudo filesystems
        [*] Virtual memory file system support (former shm fs)

Of course you got to compile the driver for your root file system into your kernel, too.

Additionally needed for udev to come up

Since udev is communicating over ports, it needs UNIX sockets enabled:

Networking
    [*] Networking support
    Networking options
        [*] Unix domain sockets

Additional stuff

Now we should be able to boot the kernel. The following is a list additional parts of the kernel you might want to enable. Most of the things here aren't needed during boot time, so they will be compiled as modules.

To enable module support (and some minor module loading additions) enable the following:

[*] Enable loadable module support
    [*] Module unloading
    [*] Automatic kernel module loading

Networking

General

In order to use TCP/IP you need to enable:

Networking
    [*] Networking support
    Networking options
        [*] TCP/IP networking

To use DHCP, you need packet support:

Networking
    [*] Networking support
    Networking options
        <*> Packet socket

WLAN

lspci lists the WLAN card as follows:

Network controller: Intel Corporation PRO/Wireless 2915ABG Network Connection (rev 05)

To use WLAN, you need:

Device Drivers
    [*] Network device support
        Wireless LAN
            [*] Wireless LAN (IEEE 802.11)
            <M> Intel PRO/Wireless 2200BG and 2915ABG Network Connection

The needed Networking/Wireless modules will be selected automatically by menuconfig.

First I tried to compile the ipw2200 driver into the kernel, which failed with the following output:

ipw2200: Detected Intel PRO/Wireless 2915ABG Network Connection
ipw2200: ipw2200-bss.fw request_firmware failed: Reason -2
ipw2200: Unable to load firmware: -2
ipw2200: failed to register network device
ipw2200: probe of 0000:0b:02.0 failed with error -5

To workaround this problem I compiled it as module, which solved the problem for me. If you still got problems, try adding the following to your /etc/rc.modules:

echo 100 > /sys/class/firmware/timeout
/sbin/modprobe ipw2200

To be able to connect to WEP encrypted wireless networks, you need following modules:

Networking
    Wireless
        {M} Generic IEEE 802.11 Networking Stack (DEPRECATED)
        <M> IEEE 802.11 WEP encryption (802.1x)

The needed cryptographic modules will be selected automatically by menuconfig.

USB

The Thinkpad got the following USB controllers:

USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)
USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03)
USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03)
USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03)
USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)

You can enable them with:

Device Drivers
    USB support
        <M> Support for Host-side USB
        <M> EHCI HCD (USB 2.0) support
        <M> UHCI HCD (most Intel and VIA) support

Sound

The sound card is listed as:

Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 03)

The driver can be found at:

Device Drivers
    Sound
        <M> Sound card support
        Advanced Linux Sound Architecture
            <M> Advanced Linux Sound Architecture
            PCI devices
                <M> Intel/SiS/nVidia/AMD/ALi AC97 Controller

Add yourself to the audio group and then you should be able to listen music via mocp.

Power Management

If you want the computer to poweroff on a shutdown on itself you should enable:

Power management options
    [*] Power Management support

If you want additional CPU frequency scaling you should enable:

Power management options
    CPU Frequency scaling
        [*] CPU Frequency scaling
            Default CPUFreq governor (conservative)
            <*>   ACPI Processor P-States driver

Additional configuration

IPC

fakeroot e.g. needs the System V IPC library. It can be found at:

General setup
    [*] System V IPC

Xorg

As graphics driver I am using Xorg's ati driver. The port is called xorg-xf86-video-ati. lspci lists the graphics card as:

VGA compatible controller: ATI Technologies Inc M24GL [Mobility FireGL V3200] (rev 80)

These days configuring Xorg is pretty simple, because it does the hard part on it's own. Most of the cases you don't need a configuration file, but if you got a German keyboard layout, you got to create one:

X -configure

Simply copy the resulting file to /etc/X11/xorg.conf and add the following lines:

Option "XkbLayout" "de"
Option "XkbVariant" "nodeadkeys"

to the keyboard input device section.

Missing

PCIMCA, Console Framebuffer, Xinerama

Additional information

The CRUX handbook: http://crux.nu/Main/Handbook2-4

General Thinkpad T43p documentation: http://www.thinkwiki.org/wiki/Category:T43p

The ALSA documentation for intel8x0: http://www.alsa-project.org/main/index.php/Matrix:Module-intel8x0