| w w w . s u n k e - s c h m i d t . d e | ![]() |
| home > computer > Linux-X10 < |
Meine Erfahrungen mit der Installation von Linux auf einem
Notebook. Die Hardwarespezifikationen könnt ihr auf den
Herrstellerseiten des Samsung X10 XTC1500 III nachlesen. Ich bin keine
Linux - Spezialist, sondern eher noch ein Linux - Anfänger, dem
entsprechend versuche ich hier möglichst Schritt für schritt zu erklären,
wie ich das System inklusive ACPI und
3D-Grafikbeschleunigung
zum laufen bekommen habe. ... vielen Dank in diesem Zusammenhang gleich am
Anfang an Hauke und Tom, die mir bei vielen Unsicherheiten den richtigen
Pfad und Rat geben konnten! Ich übernehme keine Garantie das die Schritte
unten funktionieren oder jegliche Schäden die durch die Schritte unten
entstehen, oder entstehen können. (Für viele der unten beschriebenen
Aktionen muß man als root bzw. superuser angemeldet
sein.)
- Update Feb. 2004 - Jetzt hat NVidia einen neuen Treiber heraus gebracht, mit
dem die 3D-Beschleunigung Geforce4 440 go 64M noch deutlich
einfacher mit Suse Linux 9.0 in den Betrieb zu nehmen ist, folgt einfach
meiner
Beschreibung.
- Update Apr. 2004 - Es gibt einen WLAN -
Treiber für Centrino und Linux. Er ist zumindest in der Entwicklung und
Open Source. Das Projekt findet ihr unter http://ipw2100.sourceforge.net. Es ist
sicherlich noch einiges zu tun ehe es so zufriedenstellend wie unter
Windows (bzw. BESSER) läuft ... jedoch wenn die die es können daran
mitarbeiten klappt das schon.
Ansonsten probiere ich gerade viel mit dem Kernel 2.6.3 und einer Debian Testing Distribution herum, aber noch
ist dazu nicht genug passiert um das hier zu veröffentlichen. Alles zur
sehr komfortablen Online-Installation, welche ich übrigens allen mit einem
Breidband-Internet-Zugang nur empfehlen kann!!!
Ich habe das Suse Linux 9.0 verwendet. Die Wahl auf diese Linux Distribution fiel eher durch Zufall, da die CD's bei mir gerade vorhanden waren. Die Installation erfolgte zusätzlich zum Windows XP. Zuerst habe ich die Fingerprint-Partition und das vorhandene Windows-System gelöscht und dann meine Platte in 4 Bereiche partitioniert. 1 Partition Windows XP (NTFS), 1 Partition Daten (FAT32), 1 Linux - SWAP Partition und 1 Partition Linux root (ReiserFS). Nachdem Windows XP neu installiert war, habe ich die Standard-Installation von Suse Linux 9.0 durchgeführt. Diese Installation installiert den Kernel 2.4.21-166-default. Als boot-Manager wird GRUB verwendet.
Das Linux bootet und läuft nach der Standard-Installation problemlos!
Weiterhin laufen sofort der Sound, der USB-Anschluss (mit Maus, Memory-Stick und Digital-Kamera getestet). Nur Wireless-LAN, ACPI und die 3D-Beschleunigung der Grafikkarte laufen noch nicht. Auch die Funktionstasten des Laptops zeigen leider noch keine Reaktion. Das Modem und den Firewire-Anschluss konnte ich bisher noch nicht testen. ... aber an solchen Problemen kann man ja arbeiten:
Das ACPI und die 3D-Beschleunigung laufen bei mir auch ohne einen neuen Kernel zu kompilieren mit dem Suse 9.0 Standard Kernel 2.4.21-166:
Wie auf verschiedenen sehr hilfreichen Seiten im Netz nachzulesen ist, funktioniert das ACPI nicht, da das BIOS des X10 eine leicht modifizierte "DSDT Table" verwendet, die nicht ganz den Spezifikationen von Intel entspricht (siehe die X10 Seite von Adreas Grau).
Auf fast allen Seiten zum X10 und ACPI wird angegeben das der Kernel noch mit einem ACPI-Patch gepatcht werden muss. dieses ist beim Suse Linux 9.0 Kernel NICHT der Fall. Es ist kein Kernel-Patch erforderlich, man kann diesen Schritt komplett überspringen. Man muß sich nur um die DSDT Table selbst kümmern.
Zuerst muß man sich die für den eigenen Rechner entsprechende "DSDT
Table" herunter laden. Je nach RAM-Größe (Hauptspeicher) ist eine andere
DSDT-Table nötig. (Man kann auch die eigene DSDT-Table
auslesen/decompilieren, dann modifizieren und wieder compilieren, doch will
ich davon erstmal Abstand nehmen, da das zur Zeit wohl noch meine
Fähigkeiten übersteigt.)
DSDT-Table für
256MB RAM (auf Sourceforge)
DSDT-Table
für 512MB RAM (von Christoph Jacob)
DSDT-Table für 768MB
RAM (von Andreas Grau)
Weitere DSDT-Tables findet man unter anderem mit Google mit den
Stichworten: DSDT, Samsung, X10.
Zusätzlich muß man sich den NEUEN (27.5.2004) iasl-Kompiler von Intel herunter laden und entpacken (am einfachsten mit dem Konquerer ;-) ...). Wenn man dann den Kompiler und die benötigte DSDT-Table auf dem Rechner hat, muss man die DSDT-Table kompilieren (für Erfahrene Anwender: man kann mit diesem Tool auch die DSDT-Table auslesen und danach selbst modifizieren ehe man sie dann wieder kompiliert.):
#> .iasl -tc dsdt.dsl
Wobei ihr dsdt.dsl durch den Namen eurer DSDT-Table ersetzen müßt. Die Option -tc steht für die Erstellung der AML-Datei (dsdt.aml) als C hex table.
Was auf vielen Linux-on-X10 Seiten jetzt steht das man diese Datei nur noch in die INITRD kopieren muß, klappte bei mir NICHT! Folgende Schritte sind jetzt nötig:
Öffnen der Datei
/etc/sysconfig/kernel
Die Zeile
ACPI_DSDT=""
ändern in
ACPI_DSDT="Pfad_und_Dateiname_Eurer_DSDT.aml"
Dafür ist es Sinnvoll die dsdt.aml Datei an einen Ort zu kopieren an dem sie bleiben kann. Nach dem speichern der editierten /etc/sysconfig/kernel bleibt jetzt nur noch die INITRD neu zu erstellen, am einfachsten mit dem Befehl:
#> mkinitrd
FERTIG! Rechner neu starten und das ACPI sollte laufen. Wahlweise könnt ihr - glaube ich - auch das Editieren der /etc/sysconfig/kernel weglassen und dafür den Befehl
mkinitrd -a pfad_und_dateiname_der_dsdt.aml
ausführen. Ich habe jedoch den oberen Weg gewählt.
Auch das SPEEDSTEP sollte jetzt automatisch funktionieren. Mein Rechner
ist konstant auf 600MHz und springt je nach Last in kurzer Zeit auf
1500MHz, auszulesen mit cat /proc/cpuinfo und cat
/proc/cpufreq:
OHNE LAST:
#> cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 9
model name : Intel(R) Pentium(R) M processor 1500MHz
stepping : 5
cpu MHz : 598.363
cache size : 0 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr mce cx8 sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 tm
bogomips : 1182.92
#>cat /proc/cpufreq
minimum CPU frequency - maximum CPU frequency - policy
CPU 0 600000 kHz ( 40 %) - 1500000 kHz (100 %) - userspace
und MIT LAST:
#> cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 9
model name : Intel(R) Pentium(R) M processor 1500MHz
stepping : 5
cpu MHz : 1495.908
cache size : 0 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr mce cx8 sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 tm
bogomips : 2957.31
#> cat /proc/cpufreq
minimum CPU frequency - maximum CPU frequency - policy
CPU 0 600000 kHz ( 40 %) - 1500000 kHz (100 %) - userspace
ALLES KLAPPT! Es gibt auf anderen Seiten noch Skripte und Befehle mit denen man die CPU selbst steuern kann, doch bin ich mit dem funktionierenden Speedstep, so wie es zur Zeit läuft komplett zufrieden, eine schnellere Abfrage und persönliche Steuerung halte ich hier nicht für nötig. Zwar ist ein Heruntertakten bei Netzspannung nicht nötig ... schadet aber auch nicht!
UPDATE 10.02.2004
Nvidia hat den Treiber 1.0-5336
herausgebracht, die Highlights dieses Treibers sind laut NVidia:
- Support for Linux 2.6 kernels.
- Fixed AGP failures on some VIA motherboards.
- Fixed a problem that prevented X from running on Samsung X10 laptops.
OK, getestet und läuft sofort problemlos und bisher stabil, deutlich
einfacher zu installieren als der bisherige:
Den Treiber
1.0-5336 herunter laden (Folgnde Installationsanleitung ist auch sehr
ähnlich auf den NVidia-Seiten zu finden. Ich habe mich einfach an die
dortige Installation gehalten und die Installation klappt. Für Suse 9.0
gilt, dass die KERNEL-SOURCES installiert sein müssen. Ist dieses
nicht der Fall sollte das mit YAST2 zuerst getan werden. Jetzt muß
mit
sh NVIDIA-Linux-x86-1.0-5336-pkg1.run
der Treiber installiert werden. Einfach den Menues von Nvidia folgen und immer zustimmen. Anschließend muß nur noch sax2 folgender maßen ausgeführt werden:
sax2 -m 0=nvidia
Nachdem ich in sax2 OK gedrückt habe, hat er alles fertig eingerichtet ... und ist dann leider ABGESTÜRZT! Das heißt ich hatte einen schwarzen Bildschirm und der Computer hat auf keine der gängigen Tastenkombination mehr reagiert. Naja, ein Neustart mit dem AN/AUS-Schalter hat ihn dann wieder zum Leben erweckt. Seit diesem Start läuft der neue Treiber Problemlos, 3D-Beschleunigung ist Aktiv und TuxRacer läßt sich spielen ;-) !
Alter Weg: (nicht mehr nötig!)
Jetzt muß noch die 3D-Beschleunigung der Grafikkarte zum laufen gebracht
werden: Hierfür waren insbesondere die X10-Seiten von
Christoph Jacob hilfreich mit dem Forumsbeitrag aus dem NVidia Forum
von Ralf Metzler. OK, aber wie vorgehen?
Zuerst habe ich die benötigten Dateien, von der NVidia-Seite
herunter geladen. Für Suse-Linux sind das:
Kernel Tar File -
NVIDIA_kernel-1.0-4191.tar.gz
und das
GLX Tar file -
NVIDIA_GLX-1.0-4191.tar.gz
Diese 2 Dateien enpackt man am besten in 2 benachbarte Verzeichnisse. (Wieder am einfachsten gleich mit dem Konquerer selbst mit Copy o.ä.) .. man ist ja faul ;-) ! Danach in das Verzeichnis des entpackten Kernel Tar files wechseln und
#> make all
ausführen. ... Jetzt kam bei mir eine Fehlermeldung ... wenn die bei Euch nicht kommt könnt ihr hier ein paar Schritte überspringen. Beim Vergleich des Kompilers des Kernels und dem Kompiler des Modules kann er den Kompiler des Modules nicht richtig auslesen und es kommt der Fehler:
#> make all
/bin/sh: -c: line 1: syntax error near unexpected token `('
/bin/sh: -c: line 1: `if [ -z ]; then if [ 3.3.1 != (SuSE ]; then echo ...
...
make: *** [gcc-check] Fehler 2
Der Fehler liegt weiter oben im Makefile, wo module_cc ausgelesen wird. Doch habe ich um den Fehler provisorisch zu flicken einfach vor folgende Zeilen im Makefile die Raute ... als Kommentar gesetzt. Am besten öffnet man das Makefile mit einem beliebigem Editor und geht zu dem Jump-point gcc-check:
gcc-check:
@if [ -z $(IGNORE_CC_MISMATCH) ]; then \
if [ $(kernel_cc) != $(module_cc) ]: then \
echo " ";\
...
...
echo -en "\033[0m"; \
exit 1; \
fi \
fi
und setzt jetzt vor die if-Schleifen, dem exit, und dem Ende der if-Schleifen -> dem fi eine Raute:
gcc-check:
# @if [ -z $(IGNORE_CC_MISMATCH) ]; then \
# if [ $(kernel_cc) != $(module_cc) ]: then \
echo " ";\
...
...
echo -en "\033[0m"; \
# exit 1; \
# fi \
# fi
Das mag zwar so recht diletantisch sein, erfüllt aber seinen Zweck. Das Makefile speichern und erneut
#> make all
ausführen. Diesesmal sollte es durchlaufen. Jetzt in das Verzeichnis des entpackten GLX Tar files wechseln und
#> make install
ausführen. Da bei SuSE die libGLcore und libGL woanders liegen als hier automatisch geschehen, müssen jetzt noch 2 Dateien kopiert werden. Am einfachsten einfach:
#> cp /usr/lib/libGL.so.1.0.4191 /usr/lib/tls/libGL.so.1.0.4191
und
#> cp /usr/lib/libGLcore.so.1.0.4191 /usr/lib/tls/libGLcore.so.1.0.4191
jetzt noch den Links neu setzen, mit
#> rm /usr/lib/tls/libGL.so.1 #> ln -s /usr/lib/tls/libGL.so.1.0.4191 /usr/lib/tls/libGL.so.1
und
#> rm /usr/lib/tls/libGL.so.1 #> ln -s /usr/lib/tls/libGLcore.so.1.0.4191 /usr/lib/tls/libGLcore.so.1
Damit ist soweit nahezu alles installiert und es muß nur noch weniges angepasst werden. Das Nvidia-Modul muß nochmal angehalten werden, mit:
#> rmmod nvidia
Jetzt müssen noch 2 Dateien editiert werden: die Datei /etc/modules.conf öffnen und am Ende die Zeile:
options nvidia NVreg_SoftEDIDs=0 NVreg_Mobile=4
anhängen und Datei speichern. Zum Schluss noch die Datei /etc/X11/XF86Config öffnen und dort unter Section "Device":
Driver "nv"
ändern in
Driver "nvidia"
zusätzlich habe ich unter derselben Section noch die Zeile:
Option "NoRenderAccel" "off"
hinzugefügt. Datei wieder speichern. Jetzt muß man den XServer nur neu starten, z.B. in dem man sich abmeldet und wieder anmeldet, oder den Rechner neu startet, oder per startx .... je nach belieben.
Und siehe da ALLES KLAPPT! Jetzt kann man TUXRACER spielen, 3D- Bildschirmschoner genießen ... und sich eines deutlich schnelleren Rechners erfreuen!
An den Centrino WLAN Treiber habe ich mich noch nicht heran gewagt, zwar gibt es jetzt schon Lösungen hierfür, wie man einen Windowstreiber unter Linux zum laufen bringen kann, doch werde ich wohl noch warten bis es weitere Möglichkeiten hierfür gibt. Man kann schon die noch in der Entwicklung befindliche Version von Sourceforge installieren ... die findet ihr unter http://ipw2100.sourceforge.net "an open source 802.11b driver for the ipw2100" ! Viel Spaß beim herum experimentieren ... ich habe gerade leider wenig Zeit das aus zu probieren, aber spätestens in Juni bin ich wieder dabei!
Besonders Hilfreich waren für mich in Beziehung zu
Linux auf dem Laptop folgende Seiten:
.:: Linux
auf Samsung X10 HowTo ::. von Andreas Grau
Linux
mit dem Samsung X10 XTC1500 II von Christoph Jacob
MAD'S homepage
Samsunx X10 hier vor allem die alten Seiten die leider nicht mehr
online sind. Die neuen lohnen sich aber auch!
tuxmobile.org - Seite mit Links zu vielen
Laptops und Linux-Systemen und vieles mehr ...
Schreibt mir falls ihr Fragen, Anregungen und Kritik oder Hilfen für mich
bezüglich des X10 habt an sunkes@web.de