Schöfegger Stefan

Laptop Samsung R50 2000

Im November habe ich mir einen Samsung R50 2000 zugelegt. Da ich mich bisher schon recht viel mit Linux beschäftigt habe war es natürlich keine Frage dass auch auf dem Laptop Debian eingerichtet wurde.

Die Konfiguration ist sicher noch nicht 100%ig, wenn Ihr Verbesserungsvorschläge habt, oder noch Fehler findet würde ich mich über eine Email freuen. (Email-Adresse siehe ganz unten). Wenn Ihr mit meinen Einstellungen Probleme habt helfe ich auch gerne weiter.

System:

Genaue Typenbezeichnung: NP-R50CV05/SEG
Pentium M Prozessor 2000 MHz
1024 MB Ram (2*512MB)
100 GB Festplatte
15,4" WXGA 1280 * 800
ATI Raedon X700 Mobility Grafikkarte
WLAN, 10/100 Mbit
Modem
TV-Out
4*USB
Firewire

Ausstattung / Zubehör

Für Leute die es ganz genau wissen möchten habe ich eine Auflistung mit lshw erstellt.

samlap:/mnt# lspci
0000:00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03)
0000:00:01.0 PCI bridge: Intel Corporation Mobile 915GM/PM Express PCI Express Root Port (rev 03)
0000:00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 03)
0000:00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)
0000:00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03)
0000:00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03)
0000:00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03)
0000:00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)
0000:00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d3)
0000:00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 03)
0000:00:1e.3 Modem: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (rev 03)
0000:00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03)
0000:00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 03)
0000:00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03)
0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility X700 (PCIE)
0000:06:05.0 Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX (rev 02)
0000:06:07.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)
0000:06:09.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b3)
0000:06:09.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C552 IEEE 1394 Controller (rev 08)
0000:06:09.2 0805: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 17)
0000:06:09.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 08)
0000:06:09.4 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 03)
				

Kernel 2.6.17.7

Alle Angaben auf dieser Seite beziehen sich auf die Kernel-Version 2.6.17.7 von www.kernel.org . Meine .config könnt ihr euch gerne anschauen oder verwenden wenn ihr den selben Kernel einsetzt. ACHTUNG: Ich habe die swap-Partition als Option swap:/dev/hda6 fix in den Kernel eingebaut. Dies sollte vor dem Neukompilieren auf Euer System angepasst werden. (Suspend HowTo, Link weiter unten).

Festplatte:

Bei der Festplatte handelt es sich um eine 100GB FUJITSU MHV2100AT. (Real gesamt ca. 92GB). Von Werk aus war die Platte in einer NTFS Partition mit Windows XP mit 86GB und einer versteckten Partition mit ca. 6GB (für eine Systemwiederherstellung auf Knopfdruck) unterteilt. Dazu ist das Programm Recover Pro beigelegt mit dem man sich erstmal einen Wiederherstellungspunkt machen kann (wenn man auch noch Windows benützen möchte). Ich habe die Recovery-Partition behalten und die Windowspartition verkleinert sodass ich Platz für Linux geschaffen habe. Es gibt eine gute Anleitung (Englisch) wie man die NTFS Partition verkleinern kann im Netz.

samlap:/home/steve/laptop/homepage# fdisk -l /dev/hda

Disk /dev/hda: 92.2 GB, 92253871104 bytes
255 heads, 63 sectors/track, 11215 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        1842    14795833+   7  HPFS/NTFS
/dev/hda2           10401       11215     6546487+  77  Unknown
/dev/hda3            1843        4274    19535040    b  W95 FAT32
/dev/hda4            4275       10400    49207095    5  Extended
/dev/hda5            4275        4278       32098+  83  Linux
/dev/hda6            4279        4424     1172713+  82  Linux swap / Solaris
/dev/hda7            4425        5275     6835626   83  Linux
/dev/hda8            5276        8679    27342598+  83  Linux
/dev/hda9            8680       10259    12691318+  83  Linux
/dev/hda10          10260       10400     1132551   83  Linux
			

Nachdem ich mir meinen Kernel neu aufgesetzt hatte lief der Laptop ungewöhnlich langsam. Der Start von Programmen dauerte immer ewig. CPU und Ram-Auslastung waren allerdings OK, die Rechenleistung ebenfalls (glxgears schafft 3200FPS). Der Grund war dass DMA (direct memory access) für die Festplatte abgeschalten war, daher blockierten Festplattenzugriffe die CPU für zu lange Zeit, was sich in einem sehr trägen System bemerkbar macht. Mir ist es leider nicht gelungen in meinem neu aufgesetzten Kernel die benötigten Optionen einzuschalten. Ich musste mir den Kernel erneut von Null an bauen dann gings erst. In Verdacht habe ich make xconfig. Seit dem verwende ich nur noch make menuconfig. Da die DMA Unterstützung eigentlich von haus aus funktionieren sollte, und es genug Anleitungen im Netz gibt, schreibe ich hier nicht die genaue Einrichtung. Ob DMA bei Euch aktiviert ist könnt ihr leicht überprüfen mit hdparm.

samlap:/home/steve/laptop/homepage# hdparm /dev/hda

/dev/hda:
 multcount    = 16 (on)
 IO_support   =  3 (32-bit w/sync)
 unmaskirq    =  1 (on)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 readonly     =  0 (off)
 readahead    = 256 (on)
 geometry     = 65535/16/63, sectors = 180183342, start = 0
			

using_dma = 1 (on) verrät uns dass DMA für die Festplatte eingeschalten ist.

Es empfihlt sich beim Systemsart hdparm für die Festplatte zu konfigurieren. Dazu in der Datei /etc/hdparm.conf folgende Zeilen hinzufügen:

command_line {
       hdparm -q -m16 -q -W0 -q -d1 -u1 -c3 /dev/hda
}
			

Ich weiss, es ist die alte Notation allerdings habe ich das so vom Desktop PC übernommen.

Touchpad:

Für das Synaptics existieren gut funktionierende Treiber für Xorg und XFree. Der Treiber kann. hier heruntergeladen werden. In dem Paket ist eine Installationsanleitung nach der man den Treiber problemlos installieren können sollte.

Device Drivers / Input device support
          [X] Provide legacy /dev/psaux device
          [X] Event interface
          [X] Mouse --->
              [X] PS/2 mouse
				

In der /etc/X11/XF86Config-4 muss man noch ein paar Einstellungen vornehmen:

Section "InputDevice"
    Identifier  "Mouse1"
    Driver      "synaptics"
    Option      "Protocol"      "auto-dev"
    Option      "Device"        "/dev/psaux"
    Option      "LeftEdge"      "1700"
    Option      "RightEdge"     "5300"
    Option      "TopEdge"       "1700"
    Option      "BottomEdge"    "4600" #"4200"
    Option      "FingerLow"     "35"
    Option      "FingerHigh"    "40"
    Option      "MaxTapTime"    "180"
    Option      "MaxTapMove"    "180"
    Option      "VertScrollDelta" "200"
    Option      "HorizScrollDelta" "0" #"200"
    Option      "MinSpeed"      "0.10"
    Option      "MaxSpeed"      "0.30"
    Option      "AccelFactor"   "0.0020"
    Option      "SHMConfig"     "on"
    Option      "RBCornerButton" "2"
    Option      "LockedDrags"    "1"
    Option      "LTcornerButton" "3"
    Option      "PalmMinWith"    "6"
EndSection
			

Ich habe mir die Maus sehr schnell eingestellt, das behagt mir bei dem Touchpad besser. Mit diesen Einstellungen hat man am rechten Rand ein Art Mausrad um vertikal zu scrollen. Wer auch gerne am unteren Rand eine Scrollfunktion hätte muss HorizScrollDelta auf 200 und BottomEdge etwas noch oben (z.B 4200) setzen. Da ich mit dem Horizontalen Mausrad immer wieder unerwünschte Effekte ausgelöst habe und ich diese Scrollfunktion nicht benötige habe ich sie abgeschaltet. Ein Druch auf den ganz linken oberen Rand erzeugt einen Rechtsklick. Um Fenstergrössen zu ändern / Zeilen markieren kann man einen Doppelklick machen und nach dem 2 Klick länger am Touchpad bleiben. Wenn man sich das Touchpad genau auf seine eigenen Bedürfnisse eingestellt hat kann man auf eine eigene Maus verzichten (zumindest gehts mir so).
man synaptics hilft weiter.

Netzwerk 10/100MBit (LAN)

Device Drivers / Network device support / Ethernet (10 or 100Mbit)
          [X] EISA, VLB, PCI and on board controllers
          [X] Broadcom 4400 ethernet support (EXPERIMENTAL)
				

Wireless (WLAN)

Bei dem WLAN-Chip handelt es sich um den für Centrino-Laptops üblichen Intel 2200BG. Mittlerweile wird dieser Chip vom Kernel unterstützt, es wird allerdings empfohlen, die Module selbst aus neueren Quellen zu bauen. Die Kernel-Treiber verwenden eine ältere Version der Firmware wo noch kein Monitor-Mode zur Verfügung steht. Die Treiber sollten also nicht im Kernel eingebaut werden. Um die Module selber zu kompilieren braucht man ieee80211 und ipw2200 sowie die Firmware. Die Installation ist auf den angegeben Seiten sehr gut beschrieben, bei Problemen lohnt es sich sicher auch dort mal vorbeizusehen.

EDIT 30. Juli 2006: Mittlerweile wird die WLAN-Karte auch mit dem Monitor Mode unterstützt und desshalb verwende ich jetzt auch IEEE und IPW aus dem Kernel!

Device Drivers / Network device support / Wireless LAN(non-hamradio)
          [X] Wireless LAN drivers (non-hamradio) & Wireless Extensions 
               [M] Intel PRO/Wireless 2200BG and 2915ABG Network Connection
               [X] Enable promiscuous mode 
          [ ] IEEE 802.11 Networking Stack
				
Device Drivers / Networking
          [X] Generic IEEE 802.11 Networking Stack 
               [M] IEEE 802.11 WEP encryption (802.1x)
               [M] IEEE 802.11i CCMP support 
               [M] IEEE 802.11i TKIP encryption
				
Device Drivers / Generic Driver Options
          [X] Hotplug firmware loading support
				
Cryptographic options
          [M] ARC4 cipher algorithm
          [M] Michael MIC keyed digest algorithm
          [M] AES cipher algorithms (i586)
				
Libary routines
          [M] CRC32 functions
				

Kopieren der IPW2200 Firmware. Version: 2.3:
Die Firmware muss nach /usr/lib/hotplug/firmware kopiert werden. Sie wird dann von dort automatisch vom Kernel aufgerufen wenn der Treiber geladen wird.

	tar xzvf ipw2200-fw-2.3.tgz
	cd ipw2200-fw-2.3/
	cp * /usr/lib/hotplug/firmware/
		

Für den Betrieb sind die Programme iwlist und iwconfig aus dem Paket wireless-tools nötig. Für eine sichere verschlüsselte Verbindung (WPA) noch das Paket wpasupplicant. Schaut Euch dazu auch mal die man-Pages an.

Eine Beschreibung zur Verwendung von WPA findet ihr auf der Linux - Allgemein Seite.

Display / Grafikkarte

Bei mir ist eine X700 Radeon Mobility Grafikkarte mit 128 MB Ram von ATI eingebaut. Der Hersteller stellt freundlicherweise auch Treiber für Linux zur Verfügung nur leider hat das bei mir nicht so unkompliziert geklappt wie ich mir das vorgestellt habe. Insgesamt habe ich die meiste Zeit gebraucht um die Grafikkarte richtig zum Laufen zu bringen.

Auf der ATI Linux driver package site for Debian gibt es die benötigten Driver und eine genaue Beschreibung (Englisch). Ich habe den kompletten Treiber downgelaoden (>60MB), die kleineren .rpm Dateien haben bei mir nicht funktioniert.
Loadable module support
          [X] Enable loadable module support
          [X] Module unloading# CONFIG_SMP is not set
          [X] Module versionin support (EXPERIMENTAL)
          [X] Automatic kernel module loading
			
Processor type and features/Firmware Drivers
          [X] MTRR (Memory Range Register) support
   ... restliche Module sind hier nicht aufgelistet.
			
...
     CONFIG_AGP=m
     CONFIG_AGP_CHIPSET=??
     [ ] CONFIG_DRM
     [ ] CCONFIG_DRM_RADEAON
     [X] CONFIG_TMPFS
			

Zum installieren des Treibers mit chmod u+x ati-driver-installer-8.20.8-i386.run das File ausführbar machen und mit ./ati-driver-installer-8.20.8-i386.run die Installation starten. Anschliessend noch fglrxconfig (XF86Config-4 wird neu erstellt, also eine Sicherungskopie machen und eventuell nach der Installation das neu erstellte File ändern). Nach einem Neustart des X-Servers sollt fgl_glxgears den Würfel mit 600-700fps herumwirbeln lassen. Die Treiberinstallation muss nach jedem Kernel-neu-kompilieren wiederholt werden.

Die Auflösung des Displays beträgt 1280x800. Diese Auflösung wird leider nicht standartmässig vom ATI-Treiber in die xorg.conf geschrieben. Man muss die Zeile Modes "1024x768" "800x600" "640x480" unter Subsection Display händisch auf Modes "1280x800" "1024x768" "800x600" "640x480" ändern. Der erste Eintrag ist immer der Defaulteintrag.

Der VGA-Ausgang funktioniert bei mir, man kann ihn grafisch über das ATI-Control-Center konfigurieren. Starten man den XServer mit eingestecktem Monitor so verbreitert sich der Desktop und man kann bequem mit 2 Monitoren arbeiten.
Obwohl man den TV-OUT ebenfalls über das ATI-Control-Center einstellen kann belieb der Fernseher dunkel. Da ich den TV-Out allerdings auch im Windows nicht zum laufen gebracht habe liegt das Problem vielleicht auch nur bei meinem Kabel / Fernseher.
Es hat mir mittlerweile jemand bestätigt dass der TV-Out bei seinem Laptop problemlos funktionert.

Die X700 Grafikkarte unterstützt auch eine Stromsparfunktion bei der nicht benötigte Geräte abgeschalten werden können. Ein mal aktiviert kann man sie bis zum nächsten Systemstart allerdings nicht mehr ändern. Wer das Notebook hauptsächlich ohne 3D-Unterstützung braucht sollte trotzdem den Takt der Grafikkarte drosseln. Ich erreichte dadurch einen Stromsenkung von über 5% vom Gesamtleistungsbedarf was sich natürlich in der Akkulaufleistung bemerkbar macht. (Strom von 1346 mA auf 1277mA gesenkt). Aktivieren kann man die Energeisparfunktion über aticonfig --set-powerstate=1. aticonfig kann den Eintrag dauerhaft in der XF86-Config speichern nur funktionert dies leider nicht, man muss es nach dem Starten des X-Server ausführen lassen.

Die ansonsten gängige Option Option "DynamicClocks" "on" zum Stromsparen bei diverser Grafikkarte wird von diesem Modell leider nicht unterstützt.

Meine xorg.conf könnt ihr Euch auch gerne herunterladen.

Ich hatte lange Zeit das Problem dass sich der Rechner nach einen X-Server Shutdown aufhängt. Meine Vermutung hat sich, dass es sich um den ATI Treiber handelt, hat sich mittlerweile teilweise besätigt. Eigentlich liegt es an einem unsauber konfiguriertem Logininmanager.
Zitat von www.linux-development.org:

Bekannte Probleme bei Xorg 

Seit der Treiberversion 8.19.10 kommt es bei vielen unter den neueren Xorg Versionen ( ab 6.9 ) zu einem Systemfreeze, sobald man
X restarted oder sich ausloggen will. Das ist das Ergebnis eines unsauber konfiguriertem Loginmanager, wie kdm oder gdm. Fügt 
einfach folgenden Eintrag zur kdm Configdatei, in der Sektion [X-:*-Core], hinzu (/etc/kde3/kdm/kdmrc): 

TerminateServer=true 

Danach dürfte das Problem mit dem X restart behoben sein.
		

Grub Splashscreen:

Folgende Zeile in die menu.lst eintragen. Da ich eine eigene Boot-Partition erstellt habe darf ich den Pfad nicht mit /boot/ beginnen da es ein solches Verzeichnis auf dieser Partition nicht gibt. Wenn ihr keine eigene Boot-Partition habt müsst ihr den Pfad mit /boot/ beginnen.
splashimage /grub/images/bike_gua.xpm.gz
		

Soundkarte

Die Soundkarte wird vom Kernel unterstützt.

Device Drivers / Sound
          [X] Sound card support
              [X] Advanced Linux Sound Architecture
              [M] Sequencer support
              [M] OSS Mixer API
              [M] OSS PCM (digital audio) API
                   PCI devices
                   [X] Intel/SiS/nVidea/AMD/ALi AC97 Controller
                   [X] Intel/SiS/nVidia/AMD MC97 Modem (EXPERIMENTAL)
				

Über die 3 Sondertasten (Mute, Up, Down) kann man die Soundausgabe ändern. Die Tasten liefern jeweile einen Tastencode. Mit xev kann man den Tastencode ermitteln. Bei mir sind das 160 für Mute, 174 für Vol Down, 176 Vol Up. Um damit die Soundausgabe steuern zu können muss man dem Tastencode eine Funktion zuweisen. Am einfachsten geht dass indem man eine Datei .Xmodmap im Homeverzeichnis ablegt und in .xsession mittels /usr/X11R6/bin/xmodmap $HOME/.Xmodmap bei jedem Start starten lässt.

.Xmodmap:
keycode 160 = XF86AudioMute
keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume
		

Die Einstellungen werden bei einem Neustart des XServers übernommen. Dieser Eintrag alleine bewirkt, wie ich anfangs dachte, nocht nicht automatisch dass die Lautstärke gesteuert wird. Man hätte wohl genausogut eine andere Aktion zuordnen können (F20-F23). Öffnen Sie nun kmix klicken auf mixer und klicken dann mit der rechten Maustaste auf den Regler den ihr steuert wollt. Unter Configure Shortcut... kann dann die gewählte Taste einem Event (lauter, leiser, mute) zugeordnet werden.

ACPI:

Für eine Anzeige der aktuellen Akkukapazität sowie der verbleibenden Akkulaufzeit benötigt man ein funktionierendes ACPI.

Power management options(ACPI, APM)
          [X] Power Management Debug Support
              ACPI (Advanced Configuration and Power Interface) Support
              [X] ACPI Support
              [X] Sleep States
              [X] AC Adapter
              [X] Battery
              [X] Button
              [X] Fan
              [X] Processor
              [X]   Thermal Zone
              APM (advanced Power Management) BIOS Support
              [M] APM (Advanced Power Management) BIOS support
			

Den Akkusstand kann man gleich mal zu Testzwecken kontrollieren:

samlap:$ cat /proc/acpi/battery/BAT1/state
present:                 yes
capacity state:          ok
charging state:          discharging
present rate:            1789 mA
remaining capacity:      4272 mAh
present voltage:         11897 mV
		

Für KDE Benützer empfiehlt es sich das Paket klaptop zu installieren. Einrichten lässte es sich dann grafisch im Kontrollzentrum von KDE. Man wird dann über die Taskleiste ständig über den Akku am laufenden gehalten und bekommt eine Warnung wenn der Ladezustand kritisch wird. Für Gnome gibt es wahrschinlich was ähnliches, aber da ich den nicht benutze kann ich dazu keine Tipps geben.

Sleep / Suspend to Ram

echo 3 >> /etc/acpi/sleep

Mit dem Befehl kann man den Rechner in einem Schlafzustand schicken. Herunterfahren und Neustartet dauert nur noch wenige Sekunden, allerdings wird in diesem Schlafzustand weiterhin Strom verbraucht. Meinen ersten Messungen zufolge liegt der Strombedarf bei ungefähr 70mA, der vollgeladene Akku hält so ca. 2,5 Tage. Für einen stromlosen Ruhezustand siehe den Punkt Hibernate. Nach dem Aufwachen funktioniert bei mir alles wie gewohnt, ich habe keine Probleme festgestellt. Das obige Kommando habe ich in /etc/acpi/sleepbtn eingetragen um mit dem Tastenbefehl FN + ESC das Kommando auslösen zu können.
EDIT Kernel2.6.17.7 Mit diesem Kernel (oder liegt es auch an dem neuen ATI-Treiber) bleibt der Bildschirm nach dam aufwachen dunkel.

Speedstep

Ich habe mich hier für eine Speedstep Lösung enschieden die direkt im Kernel eingebaut ist anstatt über einen Daemon. Als Governor verwende ich den ON-Demand-Governor. Die CPU Frequenz wird bei Bedarf sofort hochgefahren und im Leerlauf auch sofort wieder abgeschalten. Es ist glaube ich ein sehr guter Kompromiss aus Leistungsbedarf und einem schnell reagierenden System. Als Default Governor kann der ondemand-gov leider im Kernel nicht direkt eingebunden werden da der Kernel hier einen Governor veraussetzt der auf jedem System sicher starten kann was bei dem ondemand nicht unbedingt gegeben ist. Keine Sorge auf meinem Laptop startet er zuverlässig. Es muss nach dem Systemstart auf den ondemand-gov umgeschalten werden, das geht mit

echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Um dies zu automatisieren habe ich mir ein kleines Script gebastelt dass nach /etc/init.d/cpuscaling kopiert und mit /etc/rc2.d/S99cpuscaling verlinkt wird. Wer es benötigt kann es sich gerne von mir herunterladen. cpuscaling

Power management options(ACPI, APM)
          [X] Power Management Debug Support
              CPU Frequency scaling
              [X] CPU Frequency scaling
              [X] CPU frequency translation statistics
              [X]   CPU frequenzy translation statistics details
                  Default CPUFreq govenor (userspace) --->
                     [ ] performance
                     [X] userspace
              [X] 'performance' governor
              [X] 'powersave' gonernor
				  [X] 'ondemand' cpufreq policy governor
				  [X] 'conservativ' cpufreq governor
				  [M] ACPI Processor P-States driver
				  [X] Intel Enhanced Speedstep
				  [X]  Use ACPI tables to decode valid frequency/voltage pairs
				  [X]  Built-in tables for Banis CPUs
				  [X] Intel Speedstep on ICH-M chipsets (ioport interface)

Wenn alles funktioniert hat sieht es dann etwa so aus:

samlap:/# cat /sys/devices/system/cpu/cpu0/cpufreq/stats/trans_table
From : To : 2000000 1600000 1333000 1067000 800000 2000000: 0 1121 1143 1464 5914 1600000: 115 0 111 155 740 1333000: 179 0 0 186 889 1067000: 549 0 0 0 1256 800000: 8799 0 0 0 0

In der Tabelle sieht man wie oft der Kernel von einer Freqenz zur anderen geschalten hat. Je länger das System läuft desto mehr Kombinationen gibt es natürlich.

Die Akkulaufzeit mit dieser Konfiguration (LCD-Display auf Stufe 2, normales Arbeiten - erstellen dieser Homepage) liegt bei 2:40.
samlap:/# uptime
 12:51:31 up  2:26,  1 user,  load average: 0.22, 0.18, 0.18
 
samlap:/# cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state
2000000 26341
1600000 1145
1333000 1446
1067000 1884
800000 855277

Die Statistik habe ich erstellt als die Warnung von KDE kam dass noch 15 min Akkureserve sind. Interessant wäre noch ein Vergleich mit der Akkulaufzeit im Windows (ich gehe davon aus dass sie sicher um 1/2 h länger ist). Ich wüsste allerdings nicht was ich so lange im Windows arbeiten würde, daher wäre der Vergleich etwas ungerecht *g*.

USB

Der Laptop hat 2 USB-Buchsen auf der hinteren (linken) Seite und 2 auf der rechten Seite. Unter Linux funktionieren sie mit der schnellen USB2.0 Unterstützung ohne Probleme.

Für eine externe USB-Maus müssen folgende Zeilen in der XF86-Config eingetragen sein. Es funktioniert damit das Touchpad und die USB Maus gleichzeitig. Man kann auch noch nach dem Starten des X-Servers die USB Maus anschliessen und sie wird dann erkannt.

Section "ServerLayout"
        Identifier            "Server Layout"
        Screen               "Screen0"       0 0
        InputDevice     "Mouse1"        "CorePointer"
        InputDevice     "USB Mouse"     "AlwaysCore"
        InputDevice     "Keyboard1"     "CoreKeyboard"
EndSection

Section "InputDevice"
        Identifier      "USB Mouse"
        Driver           "mouse"
        Option          "Device"        "/dev/input/mice"
        Option          "Protocol"      "IMPS/2"
        Option          "ZAxisMapping"  "4 5"
        Option          "Buttons"       "5"
EndSection

Etiquette Mode

Der Etiquette Mode ist ein leiser Betriebsmode den ich bis jetzt nur von Samsung Modellen kenne. Eingeschalten über FN + F10 wird erstmal der Lüfter abgeschalten was mich anfangs etwas verunsichert hat ob die CPU-Temperatur nicht zu stark ansteigen kann. Ein Test beim Kernelcompilieren zeigt allerdings dass der Lüfter bei höherer Temperatur durchaus nicht komplett abgeschalten wird sondern nur anders geregelt wird. Die unten stehende Grafik zeigt die CPU-Temperatur (Thermal Zone) während dem neucompilieren des Kernels (Absinken der Temperatur ist dann das Ende des Compiliervorgangs). Man sieht dass bei eingeschaltenem Etiquette Mode der Vorgang wesentlich länger dauert, dass lässt für mich den Schluss zu dass auch die CPU-Frequenz gedrosselt wird um die Verlustwärme gering zu halten. Man sieht in der Grafik auch recht schön dass die max. Endtemperatur im Etiquette-Mode bei ca. 60°C liegt, bei vollem Betrieb bei etwa 70°C.

Chart CPU Temperatur Etiquette Mode

Buttons

Taste:Funktion
FN + ESC: StandbyTaste liefert ACPI-Event, OK
FN + F2: BatteriePiktoramm mit Ladezustand wird eingeblendet, OK
FN + F4: MonitorVGA-Monitor abschalten, OK
FN + F5: BacklightHintergrundbeleuchtung abschalten, OK
FN + F6: MuteTaste liefert Tastencode, OK
FN + F7: SRSKeine Änderung des Sounds
FN + F8: WLANWLAN abschalten, Piktogramm am LCD, OK
FN + F9: TouchpadTouchpad abschalten, Piktogramm am LCD, OK
FN + F10: SilentOK
FN + UP/DOWN: BrightnessOK
FN + LEFT/RIGHT: LautstärkeOK, liefert Tastencode
Lid Closeliefert ACPI-Event, OK

PCMCIA

noch nicht getestet

Firewire

noch nicht getestet

Memors Stick

Seit Kernel 2.6.17 ist ein Treiber für den Ricoh Kartenleser integriert. Die XD-Picturecard von Olympus funktionert damit allerdings nicht.
Device Driver / MMC/SD Card support /
          [X] MMC support
              [ ] MMC debugging
              [M] MMC block device driver
              [M] Secure Digital Host Controller Interface support 
Gemountet wird die Karte dann folgendermassen: Eventuell zuvor noch mit modprobe sdhci das Modul laden.
Mounten von MM-Card
mount /dev/mmcblk0p1 /mnt

Suspend2 / Hibernate / Suspend to Disk

EDIT 30.Juli 2006: Diese Beschreibung ist noch für den alten Kernel! Mit 2.6.17.7 muss das nicht mehr durchgeführt werden! Das gute schon mal vorweg: Es funktionerte bei mir ohne Probleme. Das Schlechte ist dass es etwas Arbeit ist Suspend to Disk zu aktiveiren, der Kernel muss gepatchet werden. Ein gutes HOWTO gibt es auf www.suspend2.net. Nach dieser Anleitung bin auch ich vorgegangen. Vor dem Kompilieren des Kernels muss im Quellcode noch händisch etwas geändert werden damit suspend2 auch mit fglrx (ATI-Treiber) funktioniert.

Zuerst muss der richtige Kernel Patch heruntergeladen und entpacken werden. Aus dem Kernel-Verzeichnis heraus apply aufrugen: samlap:/usr/src/linux-2.6.14.2/$ /home/steve/suspend2-2.2-rc14-for-2.6.14/apply. Wenn ihr den passenden Patch habt sollte es hier keine Probleme geben. Jetzt den Kernel neu konfigurieren:

Power management support
          [X] Suspend2
              Suspend2
              [X] Swap Writer
              (swap:/dev/hda6)  Default resume device name

Die Swap-Einstellung müsst Ihr auf Eure Swap-Partition anpassen. Swap-Writer schreibt den Inhalt des Speichers in die Swap-Partition. Diese sollte mindestens so gross sein wie der Hauptspeicher. Man könnte den Speicher auch in ein File schreiben aber das erfordert mehr aufwand.

Cryptographic options
          [X] LZF compression algorithm
          ...

Mit der LZF-Compression wird der Speicher vor dem Schreiben komprimiert

Bei der Verwendung von ATI oder nVidia Grafiktreibern kommt es beim suspend zu folgendem error: Pageset1 has grown 1900 Pages but only 500 is allowed for. Die Lösung ist hier beschrieben: Eine Ändrung am Quellcode des Kernels wie bisher beschrieben ist nicht mehr notwendig, man kann es auch einfacher über das /proc Verzeichnis erledigen. Ich habe das Startscript - klick to download - von Hibernate mit folgender Zeile erweitert: echo 3500 > /proc/suspend2/extra_pages_allowance

deb http://cp.yi.org/apt/hibernate ./ in /etc/apt/sources.list eintragen, apt updaten und hibernate installieren. Meine hibernate config ist hier zu finden

Da wir die Swap-Partition schon im Kernel festgelegt haben müssen wir im Grub eigentlich keine Kernel-Optionen übergeben. Ich habs aber trotzdem gemacht. Das schaut mir mir dann so aus: kernel /vmlinuz root=/dev/hda9 ro resume2="swap:/dev/hda6". Zur Sicherheit sollte man auch noch einen Eintrag mit kernel /vmlinuz root=/dev/hda9 ro resume2="swap:/dev/hda6 noresume2" anlegen um das System ohne suspend Funktion starten zu können.

Jetzt für die ersten Tests in der Konsole einloggen und den grafischen Modus beenden. Nach der Eingabe von hibernate sollte Suspend das System schlafen legen. Beim nächsten Start lädt er den Speicher aus dem Swap zurück und man kann weiterarbeiten. Hat dieser Test geklappt kann man mit dem nächsten Schritt vortfahren.

In kde eine Konsole öffnen und hibernate ausführen. Kommt man nach einem Neustart wieder automatisch ins KDE hat alles geklappt. Gratulation!

Buttons belegen
Ich habe es mir so eingerichtet, dass wenn ich den Deckel schliesse der Rechner automatisch in den Suspend Mode geht. Erstellen sie die Datei /etc/acpi/events/lidbtn mit folgendem Inhalt:
/etc/acpi/events/lidbtn
# /etc/acpi/events/lidbtn
# This is called when the user presses the lid button and calls
# /etc/acpi/lidbtn.sh for further processing.

# We need to react on "button lid.*" and "button/lid.*" because
# of kernel changes.

event=button[ /]lid
action=/etc/acpi/lidbtn.sh

Das Eventverzeichnis wird automatisch durchsucht und alle darin befindlichen Dateien geladen. Als Action habe ich ein weiteres Script angegeben dass wir jetzt auch noch erstellen müssen:
/etc/acpi/lidbtn.sh
#!/bin/sh
# /etc/acpi/lidbtn.sh
# Initiates a suspend to ram when the lid has been
# closed.

if [ -e /tmp/lidclose ]
then
        rm /tmp/lidclose
else
        touch /tmp/lidclose
         hibernate
        rm /tmp/lidclose
fi

Der Suspend darf nur beim schliessen des Deckels ausgeführt werden ansonsten würde das System hochfahren und sofort wieder runterfahren. Das wird mit dem Lockfile /tmp/lidclose verhindert. Der Befehl hibernate legt schlussendlich das System schlafen. Über das Lockfile habe ich auch noch ein weiteres kleines Problemchen gelöst: Fährt man den Rechner unter KDE herunter und schliesst sofort danach den Decker spricht acpi noch an und es hibernated im shutdown-prozedere. Beim nächsten Hochfahren wird der Shutdown fortgesetzt und der Rechner schaltet sich wieder ab. Mit einer kleinen Modifikation in /usr/bin/startkde kann man das umgehen. Ich habe die Zeile touch /tmp/lidclose eingefügt welches mir das Lockfile für hibernate erzeugt.
/usr/bin/startkde
echo 'startkde: Shutting down...'  1>&2

# Clean up
touch /tmp/lidclose
kdeinit_shutdown
dcopserver_shutdown
artsshell -q terminate

Passwortabfrage beim Aufwachen
Nach dem Aufwachen des Rechners befindet man sich an dem Punk wo man letztens aufgehört hat zu arbeiten. Dies bringt natürlich ein gewisses Sicherheitsrisiko mit sich daher habe ich nach einer Möglichkeit gesucht beim Aufwachen eine Passwortabfrage einzubauen. Glücklicherweise bringt hibernate diese Funkion schon mit und man muss in der Datei /etc/hibernate/hibernate.conf eine Möglichkeit der Passwortabfrage aktivieren. Ich kann leider nur die Option LockConsoleAs USERNAME verwenden da alle anderen bei mir nicht funktionieren. Diese Optionen benötigen jeweil ein externen Programm das ihr mit apt-get installieren könnt.

OptionProgramm
LockConsoleAsopenvt, vlock
LockXScreenSaverxscreensaver-command
LockKDEKDE
LockXLockxlock
LockXAutoLockxautolock

ToDo

Hin und wieder hängt sicher der Laptop beim Shutdown auf. Nach Beendigung von KDE bleibt der Bildschirm schwarz und nichts passiert mehr. Wo das herkommt weiss ich leider noch nichts, in den Log-Dateien finde ich nichts. Ich tippe auf den ATI-Treiber bin mir da aber noch nicht sicher. Problem ist behoben, siehe dazu den Text unter Grafikkarte.

Fazit

Ich bin mit dem Gerät bis jetzt sehr zufrieden. Die Linux-Unterstützung ist bis auf wenige Kleinigkeiten (Memory-Stick-Leser) gegeben und ich kann den Laptop durchaus empfehlen. Ich habe den Laptop relativ günstig für €1400 erstanden, zu dem normalen Verkaufspreis von über €1700 würde ich ihn mir wahrscheinlich nicht kaufen. Ein Vorteil der dieser Laptop gegenüber vielen Mitbietern hat ist der sagenhaft schnelle 2GHz Centrino Prozessor den man noch sehr selten in Laptops sieht. Mit der X700 Grafikkarte ist der Laptop auch als Spieletauglich zu bezeichnen. Ich habe den Microsoft Flight Simulator 2004 (ja, ich habe Windows nur wegen dem einem Spiel installiert *g*) getestet und schaffe bei höchstem Detailgrad 90fps.

Changelog

  • Dezember 2005: 1. Version online gestellt
  • Jänner 2006: Hibernate / Suspend2 hnzugefügt
  • Februar 2006: Erweiterung bei Suspend (Buttons belegen, Passwortabfrage)
  • Februar 2006: Problem mit Shutdown (Grafikkarte) behoben
  • Februar 2006: Dokument mit GNU Free Documentation License 1.2 lizensiert
  • April 2006: Diverse Kleinigkeiten hinzugefügt
  • 16. April 2006: Neues Design der Homepage, ich hoffe es gefällt Euch besser als das Alte.
  • 4. Juli 2006: Hibernate während Shutdown behoben
  • 30. Juli 2006: Kernel 2.6.17.7 installiert, Ricoh Kartenleser in Betrieb genommen
  • 26. September 2006: Suspend für suspend2 angepasst
  • 8.September 2007: Kleine Änderungen, endlich von XServer auf Xorg umgeschrieben

Schöfegger Stefan <s.schoefegger _at_ aon.at> 15.04.2006

Valid HTML 4.01 Transitional

TuxMobil - Linux on Laptops, Notebooks, PDAs and Mobile Phones GNU Free Document License
Inhalt ist verfügbar unter der GNU Free Documentation License 1.2. Copyright (c) 2006 Schöfegger Stefan.