Dieser Artikel soll eine Hilfe für Leute darstellen, die noch an ihrem TravelMate hängen und es auch unter Linux benützen wollen. Beginnen wir einmal mit einem Blick unter die Haube des Notebooks wie es ursprünglich gehandelt wurde:
CPU | Intel Pentium-M 1400 MHz |
RAM | 256 MB DDR-RAM |
Graphics | ATI Radeon 9000 Mobility (64 MB) with VGA-Out / S-Video-Out |
Harddrive | 30 GB |
Optisches Laufwerk | DVD/CD-RW-Combo (6x-24x/10x/24x) (MediaBay) |
Soundcard | Intel AC'97 Sound-on-Board |
PCMCIA | Standard (i82365) |
Smartcardreader | O2Micro Smartcardreader |
Netzwerk | Broadcom Corporation BCM4401 10/100Base-T |
Wireless-LAN | Intel Corp. PRO/Wireless LAN 2100 3B Mini PCI Adapter |
Modem | Intel AC97 Modem-on-Board |
Anschlüsse: |
|
Zu der Konfiguration muss gesagt werden, dass ich das Notebook vor 3 Jahren erworben hatte und es schon folgende Änderungen über sich ergehen lassen musste:
Wer die Spezifikationen des Notebooks auf der Homepage beachtet wird feststellen, dass ein maximales RAM Upgrade auf 768 MB vorgesehen ist. Da das Notebook ohnehin keine Garantie mehr hatte konnte ich diesen Eingriff ohne Gewissensbisse durchführen:
Unter der Tastatur, welche bei mir inzwischen schon nicht mehr leserlich ist, befindet sich ein versteckter RAM Baustein, welcher wie auch der leicht Zugängliche in einer Halterung klemmt. Ihn gegen einen Baustein mit 512 MB auszutauschen stellt weniger Problem dar, als das Ausbauen der Tastatur.
Schreiten wir zur Installation:
Ich beginne mit der Aufteilung der Festplatte und der Installation von Windows XP Professional, da ich auch ab und an LAN Parties besuche und die Portierung von Windows Spielen mieserabel ist. Windows bekommt von mir 41 GB Platz zugesprochen, ein durchaus vernünftiger Wert um es ordentlich einrichten zu können, da viele Programme etwas Platzhungrig sind. Das Dateisystem wird - aufgrund der Berechtigungen NTFS.
Die 'Eigenen Dateien' kommen auf eine eigene Partition. 5,5 GB sollten dafür mit einem FAT32 Dateisystem ausreichen. Da ich ohnehin keine wichtigen Daten dort ablege bzw unter Windows nur Viren analysiere bzw spiele. Desweiteren ist FAT32 mit allen Betriebssystemen zugänglich, was im Falle einer mittleren Katastrophe die dort ansaessigen Dateien zu retten erleichtert.
Unter Linux wird es schon etwas pikanter: Das Root-Filesystem - meine Wahl fiel auf XFS - bekam 28 GB zugesprochen. Da ich Gentoo Linux nütze und der Portage ein haufen kleiner Files ist, die sehr oft neu geschrieben werden bekommt Portage eine eigene Partition in der Grösse von 1,9 GB - ReiserFS zeigt sich aufgrund der Filegrösse als beste Wahl.
Die /home-Verzeichnisse haben sich ebenfalls auf einer eigenen Partition zu befinden. Grund dafür ist die Verschlüsselung und die Problemlosere Neuinstallation da ich in diesem Fall - sofern ich nicht umpartitionieren muss einfach bestehen lassen kann.
Bei der Swap-Partition gehe ich nach der alten Regel Swap = Hauptspeicher * 2, was in meinem Falle 2 GB ergibt. Der Rest der Platte bleibt frei um in Zukunft Solaris oder BSD zu betreiben (oder was sich mir sonst in die Finger traut)
Die Partitionierung erfolgt über eine Gentoo-LiveCD mit dem Befehl fdisk /dev/hda. Hier nocheinmal mein Partition-Table:
Disk /dev/hda: 100.0 GB, 100030242816 bytes
16 heads, 63 sectors/track, 193821 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 83226 41945683+ 7 HPFS/NTFS
/dev/hda2 83226 170452 43961872+ f W95 Ext'd (LBA)
/dev/hda3 170452 193816 11775645 a5 FreeBSD
/dev/hda5 * 83226 83433 104391 83 Linux
/dev/hda6 83433 87322 1959898+ 82 Linux swap / Solaris
/dev/hda7 87322 145462 29302528+ 83 Linux
/dev/hda8 145462 149351 1959898+ 83 Linux
/dev/hda9 149351 160746 5743206 b W95 FAT32
/dev/hda10 160746 170452 4891761 83 Linux
Nachdem das geschafft ist, ist es Zeit dem Gentoo Handbuch zu folgen und zu chrooten und bis zur Anpassung der make.conf zu arbeiten. Die /home-Partition bleibt einstweilen unangetastet!
Um die CFLAGS zu bestimmen gibt es ein nettes Tool, genannt Avocea. Es ist ein Benchmark welcher den GCC und seine Flags gegen bestimmte Algorithmen testet. So bin ich zu folgendem Ergebnis gekommen, welches (in der Theorie) auf einem Pentium M die schnellsten Binaries erstellen müsste:
CFLAGS="-march=pentium-m -pipe -fno-delayed-branch -fcaller-saves -freorder-blocks -freorder-functions -falign-jumps -finline-functions -frename-registers -fweb -fomit-frame-pointer -fno-trapping-math -falign-functions=64"
Mancher Leser wird an dieser Stelle fragen, wo ich -funroll-loops gelassen hätte. Es ist nicht in meinen CFLAGS spezifiziert. Warum? -funroll-loops ist das 'auspacken' von Schleifen wenn sich deren Dauer vorherberechnen lässt, was die Binary nicht unbedingt schneller machen muss. Im schlimmsten Fall bremst es sogar die Ausführung der einzelnen Binary.
Meine aktuelle make.conf:
# Build-time functionality
# ========================
USE="x86 X acl acpi alsa adns apm arts avi berkdb bitmap-fonts bluetooth \
caps crypt cups dbus directfb fbcon encode ethereal \
foomaticdb fortran gdbm gif -gnome gpm gtk gtk2 hal imlib ithreads \
jpeg kde ldap libg++ libwww mad mikmod mbrola motif mp3 mmx mpeg \
ncurses nptl oggvorbis opengl oss pam pcsc-lite pdflib perl \
pic pie png python qt stencil-buffer session readline sdl \
spell sse ssl svga tcpd truetype truetype-fonts type1-fonts \
userlocales xml2 xv zlib apache2 memlimit new-login mbox \
xscreensaver -emboss -ipv6 nptlonly -quicktime -xmms bash-completion \
udev usb bzip2 curl -nls -esd idn offensive -nowebdav \
nsplugin fam threads dri dlloader"
# Host Settings
# =============
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=pentium-m -pipe -Os -fno-delayed-branch -fcaller-saves -freorder-blocks -freorder-functions -falign-jumps -finline-functions -frename-registers -fweb -fomit-frame-pointer -fno-trapping-math -falign-functions=64"
CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden"
# Advanced Masking
# ================
ACCEPT_KEYWORDS="x86"
#ACCEPT_KEYWORDS="~x86"
# Portage Directories
# ===================
PORTAGE_TMPDIR=/var/tmp
PORTDIR=/usr/portage
DISTDIR=/usr/local/portage/distfiles
PKGDIR=/usr/local/portage/packages
PORT_LOGDIR=/var/log/portage
PORTDIR_OVERLAY="/usr/local/portage"
PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/local/portage-gentoo-de"
PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/local/gentoo-webapps-overlay/experimental"
PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/local/gentoo-webapps-overlay/production-ready"
# Synchronizing Portage
# =====================
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
PORTAGE_RSYNC_RETRIES="3"
# Advanced Features
# =================
EMERGE_DEFAULT_OPTS=""
MAKEOPTS="-j3"
PORTAGE_NICENESS=10
AUTOCLEAN="yes"
PORTAGE_TMPFS="/dev/shm"
FEATURES="autoconfig buildpkg ccache confcache digest distlocks fixpackages sandbox sfperms strict usersandbox"
CCACHE_SIZE="2G"
DISTCC_DIR="${PORTAGE_TMPDIR}/.distcc"
DISTCC_HOSTS="10.10.10.111 10.10.10.20 10.10.12.1"
PORTAGE_ELOG_CLASSES="info warn error log"
PORTAGE_ELOG_SYSTEM="save mail"
PORTAGE_ELOG_MAILURI="acer@stargazer.at mail.stargazer.at:25"
# UNSERMAKE="/usr/bin/unsermake"
# Hardware specific
# =================
ALSA_CARDS="intel8x0 emu10k1"
VIDEO_CARDS="fglrx ati vesa fbdev"
INPUT_DEVICES="keyboard mouse synaptics"
Achtung: Diese make.conf ist an meine Bedürfnisse angepasst! Einfach kopieren kann nicht gewünschte Nebeneffekte bringen! Aus Erfahrung lief das Notebook besser auf 'unstable', was durch das Setzen von ACCEPT_KEYWORDS="~x86" erreicht wird. Theoretisch könnte man diese Einstellung gleich beim Bootstrap setzen, jedoch zeigt die Erfahrung dass es besser ist stable zu bootstrappen und danach upzudaten.
Nachdem der Bootstrap abgelaufen ist gibt es einen Weg um das Bauen zu beschleunigen:
emerge --nodeps --oneshot ccache
Ccache ist ein Cache um den Compiler zu entlasten. Wie schon manche von euch bemerkt haben, ist das zugehörige Flag bereits in den Features aktiviert.
Nun geht es mit emerge -e system weiter und ich beende diesen Teil meiner Ausführung um mit dem neuen System weiterzubauen und schliesslich später davon zu berichten.