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:

CPUIntel Pentium‑M 1400 MHz
RAM256 MB DDR‐RAM
GraphicsATI Radeon 9000 Mobility (64 MB) with VGA‐Out / S‑Video‐Out
Harddrive30 GB
Optisches LaufwerkDVD/CD‐RW‐Combo (6x‐24x/10x/24x) (MediaBay)
SoundcardIntel AC’97 Sound‐on‐Board
PCMCIAStandard (i82365)
SmartcardreaderO2Micro Smartcardreader
NetzwerkBroadcom Corporation BCM4401 10/100Base‑T
Wireless‐LANIntel Corp. PRO/Wireless LAN 2100 3B Mini PCI Adapter
ModemIntel AC97 Modem‐on‐Board
Anschlüsse:
  • Parallel Port (Standard)
  • FastInfraRed (F‑IR)
  • 4x USB2.0 / EHCI / OHCI / UHCI
  • Texas Instruments TSB43AB21 (iLink/IEEE1394)

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:

  1. RAM Upgrade nach dem Kauf auf 512 MB
  2. HDD Upgrade auf 60 GB
  3. HDD Upgrade auf 100 GB
  4. RAM Upgrade auf 1 GB

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.

Vorheriger Beitrag Nächster Beitrag