handcode.de Logo

FreeBSD 5.2 auf einem IBM T21 Laptop

Hinweis: Es gibt inzwischen eine intern neuere Version dieser Install-Anleitung
Wenn Sie nicht explizit Infos zur Installation von FreeBSD 5.2 suchen, sollten Sie sich diese anschauen.

Erst mal die gute Nachricht: 
FreeBSD 5.2 läuft gut auf meinem IBM T21.

Aber es gibt ein paar Sachen die dabei zu beachten sind.

TOP

Technische Ausstattung

  • Modell: 2647
  • Prozessor: P III Speed Step 800 MHz
  • Speicher [MByte]: 256
  • Festplatte [GByte]: 20
  • Diskettenlaufwerk: Einschub
  • DVD-ROM: Hitachi 8x Einschub
  • Display: TFT 14,1
  • Maus: Trackpoint 3 Tasten
  • Akku: LiIo 10.8V 3600 mAh
  • Grafik: S3 Savage MX 8MB VideoRAM
  • Sound: Crystal Clear CL 4614
  • IRDA-Chipsatz: NSC PC87338
  • Breite/Tiefe/Höhe [cm]: 30,4/24,9/3,6
  • Gewicht [kg]: 2,35
  • Interfaces: Ethernet, modem, PS/2, PCMCIA, USB, infrared, serial, parallel, S-Video-Out

Was beim T21 schon mal sehr bequem ist, ist die Tatsache, dass einige der FN-Tasten, wie Sound /laut/leise/aus, Bildschirm-Helligkeit, Bildschirm an/aus und die schicke Tastarturbeleuchtung direkt auf Bios/Hardware Ebene arbeiten und man daher mit diesen keinerlei Probleme hat. Die funktionieren einfach!

TOP

BIOS

Auf den Info und Support Seiten des extern T21 bei IBM finden sich die techn. Beschreibungen und die BIOS/Treiber Downloads.

Die älternen BIOS Versionen des T21 kommen nicht mit den extern FreeBSD-Slices (Slice ist der Begriff, den FreeBSD für MS-DOS-Partitionen verwendet) zurecht, was den Effekt hat, das nach der Installation der Boot-Sektor nicht gefunden wird, FreeBSD nach der Installation also einfach nicht bootet. Daher muss man gegebenenfalls das BIOS vor der Installation aktualisieren.

Soweit ich es verstanden habe, war das Problem, das ältere IBM-BIOSe Partitionen des Typs n * 16 + 5 als DOS hibernation partitions angenommen haben; FreeBSD slices haben den Typ 165...

Bei den neueren BIOS Versionen die man von der extern IBM Support Seite herunterladen kann besteht dieses Problem nicht mehr.

Ich habe auf meinem T21 ein BIOS mit der Kennung KZET34WW vom 28 May 2004.

Um das BIOS Update mit Hilfe des mitgelieferten IBM Tools durchführen zu können, benötigt man aber leider eine Windows Installation auf dem T21, damit klappt das Update dann aber problemlos und sehr einfach.

TOP

Installation

Booten und installieren von CD klappt problemlos wenn man ein BIOS hat. 
Wenn man FreeBSd das erste mal installiert, sollte man sich vorher die extern Installations Anleitung durchlesen.

TOP

APM - ACPI

ACPI funktioniert nicht, zumindest nicht sauber, daher habe ich ACPI abgestellt und verwende APM.

Da FreeBSD 5* per Default einen Kernel mit ACPI lädt, muss man ihm das erst mal abgewöhnen, denn ACPI und APM zusammen vertragen sich nicht.

Für die entspr. Devices in /boot/device.hints folgende Einträge ändern/einfügen:

hint.acpi.0.disabled="1"
hint.apm.0.disabled="0"
hint.apm.0.flags="0x20"

Um ein Laden des ACPI Kernel Modul abzustellen und das APM Kernel Modul zu laden in /boot/loader.conf folgende Einträge einfügen:

acpi_load="NO"
apm_load="YES"

In /etc/rc.conf folgende Zeilen einfügen um den apm-deamon beim booten automatisch zu starten:

apm_enable="YES"
apmd_enable="YES"

Damit beim "Aufwachen" aus dem Suspend-Mode die Systemzeit korrekt gesetzt wird, muss der Kernel mit der Option gebaut sein. In den 5.* Versionen ist diese Eintrag auch schon in der GENERIC Conf enthalten.

  • device pmtimer

Ein suspend sowohl mit apm -z als auch über die FN-Tasten lässt das X einfrieren und es hilft nur noch ein Reboot -> Ugly

Abhilfe schafft folgende Änderung in /etc/apmd.conf

apm_event SUSPENDREQ {
        exec "vidcontrol -s 1 > /dev/console";
        exec "sleep 1";
        exec "/etc/rc.suspend";
}

apm_event USERSUSPENDREQ {
        exec "vidcontrol -s 1 > /dev/console";
        exec "sleep 1";
        exec "sync && sync && sync";
        exec "sleep 1";
        exec "apm -z";
}

apm_event NORMRESUME, STANDBYRESUME {
        exec "/etc/rc.resume";
        exec "vidcontrol -s 9 > /dev/console";
}

Mit exec "vidcontrol -s 1 > /dev/console"; wird vor dem Suspend von dem TTY auf dem der X-Server läuft zu einem Text-TTY gewechselt. Jetzt klappen die FN-Tasten (standby, Suspend) einwandfrei. Auch ein "Deckel zu" bringt das T21 sauber in den Suspend Mode.

Ein exec "vidcontrol -s 9 > /dev/console"; wechselt nach dem wake-up wieder zurück auf das X-TTY.

Was auch damit immer noch nicht klappt, ist ein apm -z aus dem X, aber das ist aus o.g. Grund ja klar, denn hier wird dann ja kein Wechsel des TTYs gemacht. Damit kann ich aber sehr gut leben.

Ein weiteres Problem im Bereich APM das ich noch nicht im Griff habe, ist der Sound, der nach einem Suspend einfach nicht mehr richtig funktionieren will. Hier muss ich noch nach einer Lösung suchen und bin für Hinweise dankbar

TOP

XFree86

Der Savage Chipsatz wird von FreeBSD problemlos erkannt und unterstützt.

Wie meist, war die XF86Config ein wenig ein Gefrickel bis es sauber lief. Hier gibt's meine new-window XF86Config zum Download.

TOP

Ethernet

Die integrierte Intel Ethernet-Card wird als fxp0 erkannt und arbeitet problemlos.

Ich habe in /etc/rc.conf als Default Einstellungen die ifconfig-Parameter für mein lokales Netz.

defaultrouter="192.168.10.1"
hostname="schleppy.handcode.de"
ifconfig_fxp0="inet 192.168.10.20  netmask 255.255.255.0"

Um ein schnell auf DHCP umstellen zu können, habe ich mir dafür ein kleines Script geschrieben.

#!/bin/sh

INTERFACE="fxp0";

echo "shutting down interface $INTERFACE";

/sbin/ifconfig $INTERFACE down;

sleep 3;

/sbin/dhclient $INTERFACE;

DHPID=`cat /var/run/dhclient.pid`; 

echo "startet dhclient for Interface: $INTERFACE with PID: $DHPID";

TOP

Sound

Der Chipsatz Crystal Clear CL 4614 wird an sich problemlos unterstützt.

Als Treiber lade ich das entsprechende Modul über die Datei /boot/loader.conf

snd_csa_load="YES"

Das Default Soundmodul snd_pcm.ko wird als Abhängigkeit automatisch mit dazu geladen.

Der Befehl kldstat zeigt einem an, ob die gewünschten Module auch wirklich geladen wurden, die Ausgabe sollte so in de Art aussehen:

jg$ kldstat
Id Refs Address    Size     Name
 1    8 0xc0400000 374968   kernel
 2    2 0xc0775000 86b0     snd_csa.ko
 3    3 0xc077e000 1e58c    snd_pcm.ko
 4    1 0xc079d000 5944     apm.ko
 5    1 0xc2ade000 19000    linux.ko

Wie oben im Abschnitt zu APM auch schon angesprochen, habe ich noch das Problem, dass das Sound nach dem Aufwachen aus dem Suspend-Mode nicht mehr sauber funktioniert. Da ich im Moment noch keine befriedigenden Lösung für das Problem habe, bin ich hier für Anregungen dankbar :-)

TOP

Kommunikation

PCMCIA, USB, infrared, serial, parallel, S-Video-Out

Da ich bisher nichts davon benötigt habe, kann ich zu diesen Schnittstellen auch nichts weiter sagen, ausser, dass sie laut dmesg_output wohl erkannt werden.

$Id: t21.xml,v 1.7 2005/06/13 19:41:04 jg Exp $