Version 1.2 (Vom 05.11.2004)
---
1.0 = Current Dokument
1.1 = ACPI Patch successfull! Funktionstasten funktionieren!
1.2 = ACPI, Speedstep und alle anderen Sachen wie Baterieanzeige funktionieren! (Downloads werden heute Abend zur Verfügung stehen!
--
Nachtrag: Kernel Config, XFree86 Config, osl.c (Modded) und X30.hex uploaded! Siehe HowTo Footer!
---
Hi Folks!
Ich möchte hier ein kleines HowTo für die Installation von Debian Sarge auf einem Samsung X30 Notebook verfassen. Zum jetzigen Stand kann ich sagen, es funktioniert alles bis auf meine ACPI DSDT Tabelle, welche von Samsung leider auch in der Bios Version UE05 noch fehlerhaft ist. Das Samsung X30 ist ein schlankes, leichtes und mit einem sehr gutem Display bestücktes Notebook. Nun zu meinem HowTo, mit Quellen von "c_t" aus dem Gentoo Forum, danke für deine Hinweise und deine Anleitung für Gentoo!
Inhaltsverzeichnis
- 1. Installation
1.1 Grundinstallation
1.2 X (Grafisches Grundsystem) Installation
2. Hardwareunterstützung
2.1 Netzwerk
2.2 Wireless Lan
2.3 ACPI & Speed-Stepping
2.4 USB
2.5 Firewire
2.6 Toutchpad
2.7 Funktionstasten
3 Abschluss
3.1 Nvidia Module
3.2 Wlan Module
3.3 Kernel Compilierung
1.1 Grundinstallation
Die Grundinstallation geht relativ einfach und schnell von der Hand. Ich benutzte eine Netzwerk Installation von Sarge. Ich finde es am besten wenn man selbst auswählen kann welche Komponenten man installieren will. Fangt also am besten mit diesem Basis-OS an. Ihr braucht nach der Grundinstallation folgende Packete:
Code: Alles auswählen
apt-get update && apt-get upgrade && apt-get install gcc g++ patch make automake mc bzip2 gzip unzip gnome ncurses-dev bison lynx wget acpid gdm nvidia-glx smbclient nmap openssl python2 libgtk2.0-common synaptic xfree86-driver-synaptics kernel-source-2.6.8
Code: Alles auswählen
cd /usr/src/
bunzip2 kernel-source-2.6.8.tar.bz2
ln -s ./kernel-source-2.6.8 ./linux
cd linux
make menuconfig
make
cp ./arch/i386/boot/bzImage /boot/vmlinuz-2.6.8-x30
Code: Alles auswählen
vi /boot/grub/menue.lst
title Debian GNU Linux 2.6.8 Samsung X30 WVC 1500
root (hd0,0)
kernel /boot/vmlinuz-2.6.8-x30 ro
root=/dev/hda2
savedefaults
boot
1.2 X Installation (Grafisches System)
Als nächstes sollten wir uns die neusten Treiber für unsere Nvidia GeForce 5200 GO 64MB holen. Das können wir bei Nvidia Derzeitige Version: 1.0-6111 vom 06.08.2004. Wir erstellen uns am besten ein Verzeichnis und installieren von dort aus:
Code: Alles auswählen
su
cd /
mkdir install
cd /install
wget http://download.nvidia.com/XFree86/Linux-x86/1.0-6111/NVIDIA-Linux-x86-1.0-6111-pkg1.run
2. Hardwareunterstützung
Nun müssen wir unseren Kernel entpacken und dann für unser Samsung X30 WVC entsprechend einrichten. Eine Kernel .config der Version 2.6.8 wird hier als Anhang veröffentlicht.
Code: Alles auswählen
cd /usr/src/linux
make menuconfig
Code: Alles auswählen
Loadable module support --->
[*] Enable loadable module support
[*] Module unloading
[*] Automatic kernel module loading
Die Netzwerkkarte "Broadcom BCM4401" ist vom Kernel unterstützt:
Code: Alles auswählen
Device Drivers --->
Networking support --->
[*] Networking support
[*] Network device support
Ethernet (10 or 100Mbit) --->
[*] EISA, VLB, PCI and on board controllers
<*> Broadcom 4400 ethernet support (EXPERIMENTAL)
Die Intel 2100 WLAN Karte wird leider noch nicht vom Kernel unterstützt aber Intel war so freundlich und hat einen Linux / Unix Treiber veröffentlicht. Diesen könnt ihr hierfinden, derzeitige Version 0.58 vom 2. November 2004. Wir benötigen aber auch hierfür im Kernel den Standart Wireless Lan Support ohne jegliche Gerätetreiber:
Code: Alles auswählen
Device Drivers --->
Networking support --->
[*] Networking support
[*] Network device support
Wireless LAN (non hamradio) --->
[*] Wireless LAN Drivers (non hamradio) & Wireless Extensions
2.3 Strompaarmodus & ACPI
Hier sind am schwierigsten Punkt bei der ganzen Installation angekommen. Leider ist die DSDT Tabelle auch in Version UE05 (Bios Version X30) fehlerhaft.
2.3.1 Centrino SpeedStep
Zunächst aber installieren wir folgende Packete:
Code: Alles auswählen
apt-get install cpufreqd
Code: Alles auswählen
Power management options (ACPI, APM) --->
[*] Power Management support
CPU Frequency scaling --->
[*] CPU Frequency scaling
Default CPUFreq governor (userspace) --->
<*> 'performance' governor
<*> 'powersave' governor
[*] /proc/sys/cpu/ interface (2.4. / OLD)
<*> CPU frequency table helpers
--- CPUFreq processor drivers
<*> Intel Enhanced SpeedStep
Code: Alles auswählen
/etc/cpufreqd
Das Config-File sollte in etwas so aussehen:
Code: Alles auswählen
[General]
pidfile=/var/run/cpufreqd.pid
poll_interval=2
pm_type=acpi #(acpi, apm or pmu)
# Uncomment the following line to enable ACPI workaround (see cpufreqd.conf(5))
# acpi_workaround=1
verbosity=4 #(if you want a minimal logging set to 5)
[Profile]
name=hi_boost
minfreq=66%
maxfreq=100%
policy=performance
[Profile]
name=medium_boost
minfreq=33%
maxfreq=66%
policy=performance
[Profile]
name=lo_boost
minfreq=0%
maxfreq=33%
policy=performance
[Profile]
name=lo_power
minfreq=0%
maxfreq=33%
policy=powersave
# conservative mode when not AC
[Rule]
name=conservative
ac=off # (on/off)
battery_interval=0-100
cpu_interval=0-40
profile=lo_boost
# need some power
[Rule]
name=lo_cpu_boost
ac=off # (on/off)
battery_interval=0-100
cpu_interval=30-80
profile=medium_boost
# need big power (not if battery very low)
[Rule]
name=hi_cpu_boost
ac=off # (on/off)
battery_interval=50-100
cpu_interval=70-100
profile=medium_boost
# full power when AC
[Rule]
name=AC_on
ac=on # (on/off)
profile=hi_boost
# full power when watching DVDs and not AC:
# this is the last rule and takes less
# precedence with respect to the others
[Rule]
name=dvd_watching
ac=off # (on/off)
battery_interval=0-100
programs=xine,mplayer,avidemux
cpu_interval=0-100
profile=hi_boost
-> UPDATE: Nun nach einem langen Tag im Büro und lagem nachdenken und nachfragen ist es mir gelungen den Kernel doch noch zu überzeugen das .hex File welches für unser X30 modded wurde unter zu jubeln. Bitte beachtet die Änderungen und Ergänzungen am Anfang und Ende dieses HowTo's !! Ich werde jedoch noch einige Änderungen vornehmen. Falls Fragen zu ACPI oder anderen Komponenten sind, schreibt mir eine PM oder eine eMail an: w.kern (at )wireless-winds.de . Desweiteren funktioniert nun auch die Anzeige der Batterie unter Gnome 2.6. Einen Kernel in der Version 2.6.8 mit Debian Pachtes stelle ich hier noch als Download rein. Sobald das Problem mit 2.6.9 und den Nvidia Treibern gelöst ist werden ich auch diesen hier einstellen.
Nicht nur c_t aus dem Gentoo Forum hat mit diesem Thema Stunden und Wochen verbracht. auch ich habe bis zum heutigen Datum noch keine vernünftige Lösung für den ACPI Patch gefunden. Ich möchte es euch jedoch nicht vorenthalten wie es klappen "sollte" Zuerst sollten wir unser BIOS mit der neusten Version versorgen, das geht mit diesem Link dieses Nero Image brennen wir am besten auf einen RW (Der Kosten wegen), diesen können wir dann später wieder löschen. Nun legen wir nach Abschluss diesen RW (R) in das Laufwerk ein. Nun bootet ein Mini DOS, wir führen UE05.exe aus und machen das unter Umständen 2x, falls es beim ersten mal nicht klappen sollte. Bei mir war es zumindest so... Gründe hierfür finde ich bis Dato keine. Aber es läuft. Wie schon erwähnt, auch das neue Bios hat DSDT Probleme in der ACPI Tabelle. Wir müssen dieses also Bugfixen, ein sehr guter (Englischsprachiger) Link befindet sich hier. Ich muss allerdings dazu sagen dass ich etwas durcheinander bin wegen diesen ganzen ACPI Patches. Ich werde jedoch trotzdem das wiedergeben was "c_t" im Gentoo Forum sagte, denn bei Ihm scheint es so geklappt zu haben.
WICHTIG: Macht Sicherheitskopien von Kernel Image, Kernel Config und der SourceTree vom Kernel !! Ihr werdet sie brauchen!
Ihr solltet nun also das Howto von oben besuchen und euch mit Abschnitt 9a beschäftigen. Wir benötigen also eine Bugfixed Version von unserem DSDT ACPI Table. Unter diesem Link gibt es eine bereits auf dieses Modell angepasste Version. Hierbei sollte man die "statische" Methode in Kapitel 9a wählen. Welche den Patch direkt fest in den Kernel einbaut.
Vorgehensweise DSDT Patch (Bugfixed one from top)
- 1. Wir Laden uns bei Intel die neusten ACPI Compiler runter. Diesen erstellen wir mittels:
Das "VERSION" hängt von der derzeit gültigen Version ab, ergänzt es bitte dadurch.
Code: Alles auswählen
tar xzf acpica-unix-VERSION.tar.gz cd acpica-unix-VERSION/compiler make
2. Wir erstellen unser .hex File aus der Bugfixed Version für das X30 von oben, das bewerkstelligen wir mittels:Wir sollten nun ein .aml und ein .hex File haben welches wir nutzen können.Code: Alles auswählen
cp /acpica-unix-VERSION/compiler/iasl /install/ cd /install wget http://acpi.sourceforge.net/dsdt/tables/Samsung/X30_WVC_1500/Samsung-X30_WVC_1500-2.0_UE05-custom.asl.gz gunzip Samsung-X30_WVC_1500-2.0_UE05-custom.asl.gz ./iasl -tc Samsung-X30_WVC_1500-2.0_UE05-custom.asl
3. Ein File namens "dsdt_override.diff" erstellen, mit folgendem Inhalt:
Code: Alles auswählen
--- drivers/acpi/osl.c 2003/01/14 16:22:32 1.1
+++ drivers/acpi/osl.c 2003/01/14 16:25:43
@@ -25,6 +25,7 @@
*
*/
+#include <acpi/dsdt_table.h>
#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/slab.h>
@@ -208,7 +209,8 @@
if (!existing_table || !new_table)
return AE_BAD_PARAMETER;
- *new_table = NULL;
+ *new_table = (strncmp(existing_table->signature, DSDT_SIG, 4)) ? NULL \
+ : (struct acpi_table_header *) AmlCode;
return AE_OK;
}
Herunterladbar auch hier. Nun sollte der Kernel gepatcht werden. Das machen wir mit:
Code: Alles auswählen
cd /usr/src/linux
patch -p1 < /path/to/dsdt_override.diff
Code: Alles auswählen
cp /install/Samsung-X30_WVC_1500-2.0_UE05-custom.hex /usr/src/linux/include/acpi/dsdt_table.h
2.5 Firewire ....
2.6 Toutchpad ...
2.7 Funktionstasten ....
3.0 Abschluss
Nun ist es an der Zeit seine Nvidia Treiber ebenfalls zu installieren, daher werden wir dies noch abschließend tun. Dazu gehen wir wie folgt vor:
Code: Alles auswählen
cd /install
sh NVIDIA-Linux-x86-1.0-6111-pkg1.run
Was fehlt nun noch? Richtig! Die Wireless Lan Treiber! Welche wir mit folgendem befehl installieren:
Code: Alles auswählen
cd /install
wget http://mesh.dl.sourceforge.net/sourceforge/ipw2100/ipw2100-0.58.tgz
tar -xvfz ipw2100-0.58.tgz
cd /ipw2100-0.58
vi Makefile
# CONFIG_IPW2100_LEGACY_FW_LOAD=y
und löschen Sie das Rautezeichen vorne dran weg. Nun speichern und quit. Nun führen wir noch aus:
Code: Alles auswählen
make
su
make install
Code: Alles auswählen
tar xvfz ipw2100-fw-1.2.tgz
mkdir /etc/firmware
cp ipw2100-1.3-i.fw ipw2100-1.3-p.fw ipw2100-1.3.fw /etc/firmware
Code: Alles auswählen
modprobe ipw2100
iwconfig
Code: Alles auswählen
cd /usr/src/linux/
make menuconfig
make bzImage modules modules_install
Code: Alles auswählen
cp ./arch/i386/boot/bzImage /boot/vmlinuz-2.6.8-x30
Nun haben wir nun ein Debian auf dem X30 welches zu 99,9% funktioniert. Denn der Memory Card Slot für den Sony MemoryStick funktioniert leider nicht.... Ich werde dieses Tutorial noch mehrmals überarbeiten, Vorschläge und Hinweise sind gerne gesehen!
Links:
Kernel-Config
XFree86-Config
x30.asl
X30.hex
Debian-Kernel-Source-2.6.8-Patched
Modded "osl.c"
Regards and have fun!
Shade