Richard Pöttler, richard dot poettler at gmail dot com
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.
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.
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
.
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.
Since udev
is communicating over ports, it needs UNIX sockets enabled:
Networking [*] Networking support Networking options [*] Unix domain sockets
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
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
.
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
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
.
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
IPC
fakeroot
e.g. needs the System V IPC library. It can be found at:
General setup [*] System V IPC
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.
PCIMCA, Console Framebuffer, Xinerama
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