Technische Universität Chemnitz
Studium
Allgemeines
IF an der TUC
Literatur
Software
Empfehlungen
Tipps
Linux
Warum Linux?
Tipps
LAMP-HowTo
Linux Games
Gentoo auf dem P35
DualHead
OpenGL
3DDev.org
Links
Studium
Informatik
Linux
Sonstige
Downloads
Diverse Downloads
Studium
Quellcode
Bilder
Desktop
OpenGL
Linux Games
Bilder
Personal Firewalls

Hosting Agency -
			Webhosting
 
DevStaff.net - Developer
			IRC Network
 

  Gentoo Linux auf dem Samsung P35

Hier nun ein paar Tipps, wie man das Samsung P35 unter Gentoo einrichtet.
Verwendet werden sollte ein Kernel ab Version 2.6.16

  Samsung P35 XVM 1600 III

Ein P35 XVM 1600 III verfügt standardmässig über folgende Hardware:

Samsung P35 Chipsatz: Intel 855PM+ CPU: Intel Pentium M 725
RAM: 2x 256 MB DDR1 PC2700 Samsung
Grafik: ATI Mobility Radeon 9700 64 MB
Display: 15" SXGA+ TFT / 1400 x 1050
Festplatte: 80 GB EIDE, verschiedene Hersteller Optisches Laufwerk: Flex Bay II DVD-Super-Multi, 4xDVD+/-R, 2-4xDVD+/-RW, 2xDVD-RAM, 8xDVD-ROM

  DSDT patchen

Leider ist der Differentiated System Description Table beim P35 nicht in Ordnung, so dass auch die Throtteling States nicht richtig funktionieren.
Zu beachten ist hierbei, dass der DSDT abhängig von der Grösse des Arbeitsspeichers ist. Somit wird nach einem Arbeitsspeicher-Upgrade ein für diese Grösse gepatchter DSDT benötigt!

Einen funktionstüchtigen DSDT findet ihr hier.

Wer möchte kann nun noch die An-/Abschalt-Temperaturen für die Lüftersteuerung anpassen:

scope (\_TZ)
{
  Name (FANI, 0x00)
  Name (FAN3, Buffer (0x07)
  {
   0x00, 0x00, 0x00, 0xB8, 0xE5, 0xF6, 0xFF
  })
  Name (FANT, Buffer (0x07)
  {
   0xFF, 0xFF, 0xFF, 0x25, 0x14, 0x09, 0x09
  })
  Name (CMP0, Package (0x02)
  {
   Package (0x02)
   {
    Package (0x0A)
    {
     0x00,
     0x00,
     0x2D,
     0x48,
     0x55,
     0x63,
     0x69,
     0x00,
     0x09,
     0x32
    },

    Package (0x07)
    {
     0x00,
     0x00,
     0x00,
     0x23,
     0x41,
     0x4B,
     0x5E
    }
   },

   Package (0x02)
   {
    Package (0x0A)
    {
     0x00,
     0x00,
     0x2D, <- An Temp. Stufe 1 ( 45 Dezimal )
     0x41, <- An Temp. Stufe 2 ( 65 Dezimal )
     0x55,
     0x63, <- Passive Modus ( 99 Dezimal )
     0x69, <- S5 Notaus ( 105 Dezimal )
     0x00,
     0x09,
     0x32
    },

    Package (0x07)
    {
     0x00,
     0x00,
     0x00,
     0x23, <- Temp. Stufe 1 aus (35 Dezimal )
     0x37, <- Temp. Stufe 2 aus ( 55 Dezimal )
     0x4B,
     0x5E
    }
  }
})

Sinnvolle Werte wären z.B. folgende:

Stufe 1 an: 0x32 ( 50 Dezimal )
Stufe 2 an: 0x41 ( 65 Dezimal )
Stufe 1 aus: 0x2A (42 Dezimal )
Stufe 2 aus: 0x37 ( 55 Dezimal )

Nun muss der DSDT nurnoch compiliert werden und an die richtige Stelle in den Kernel-Quellen kopiert werden. Als erstes brauchen wir dazu Intel ACPI Source Language Compiler. Ich empfehle hierbei die Verwendung der Version 20050309, da es bei neueren Versionen Probleme mit den Optimierungen gibt:

emerge =iasl-20050309

Nun den DSDT in Hexformat compilieren:

iasl -tc dsdt

Dabei entsteht dann eine Datei namens dsdt.hex. Diese kopiert man nun an die entsprechende Stelle in den Kernel Quellen.

cp dsdt.hex /usr/src/linux/include/acpi/dsdt_table.h

Nun muss noch die Datei /usr/src/linux/drivers/acpi/osl.c gepatcht werden. Einen passenden Patch findet ihr hier

Das wär's dann. Nun noch den Kernel compilieren, neustarten und sich an einem leisen und ordentlich runtertaktenden Notebook erfreuen.

  CPU Frequency Scaling

Mit einem funktionierenden DSDT ist ein funtkinierendes Prozessor Frequency Scaling kein Thema mehr.
Ich werde hier nun beschreiben, wie man dynamisches Runtertakten auf dem P35 ermöglicht.

Zuerst einmal sollten im Kernel bei den CPU Frequency scaling Einstellungen folgende Flags gesetzt sein:

CPU Frequency scaling --->
  Default CPUFreq governor (userspace) --->

  ‹M› Intel Enhanced SpeedStep
  Use ACPI tables to decode valid frequency/voltage pairs

Wenn der Kernel entsprechend konfiguriert ist, einfach den Powernowd installieren, starten und schon taktet die CPU dynamisch rauf und runter.

emerge powernowd

/etc/init.d/powernowd start

rc-update add powernoed default

  Wlan

Die Einrichtung des Wireless LAN gestaltet sich bei dem P35 dank der guten Treiberunterstützung von Intel recht einfach. Zuerst muss folgendes im Kernel aktiviert sein:

Wireless LAN (non-hamradio) --->
  [*] Wireless LAN drivers (non-hamradio) & Wireless Extensions

Nun benötigen wir noch die Wireless Tools.

emerge wireless-tools

Als nächstes benötigt man die Firmware und die Treiber von Intel für den Intel PRO/Wireless 2200BG/2915ABG Chipsatz.

emerge ipw2200

Als letztes müssen wir nun noch die /etc/conf.d/net und die /etc/conf.d/wireless einrichten. Die Einstellungen werden hierbei für eth1 vorgenommen, unter der Annahme das eth0 bereits von der normalen Netzwerkkarte verwendet wird.

# /etc/conf.d/wireless

# Einstellung der ESSID. "any" für beliebiges Netzwerk bzw.
# ESSID des gewünschten Netzwerks
essid_eth1="any"

# Modus des Netzwerkkarte. "managed" für Zugriffspunktnetzwerke,
# "ad-hoc" für Rechner zu Rechner Verbindungen, "auto" für automatische Konfiguration
mode_eth1="auto"

# ad-hoc ESSID falls bei "auto" kein managed netzwerk gefunden wird
adhoc_essid_eth1="WLAN"

# Einstellung des Übertragungkanals (1 - 12)
channel_eth1="4"

# WEP Verschlüsselung;
# Bei diesem Beispiel ist der WEP-String "foobar" und der encryption type auf open
# gestellt. Genaueres unter /etc/conf.d/wireless.example
key_ESSID="s:foobar enc open"

 

# /etc/conf.d/net

# Konfiguration der WLAN-Karte per DHCP
config_ESSID=( "dhcp" )
dhcpcd_ESSID="-t 5"

Genaueres zur Konfiguration kann man dann nich in /etc/conf.d/net.example bzw. /etc/conf.d/wireless.example finden.
Nun muss unter /etc/init.d nurnoch ein entsprechendes Script für die WLAN-Karte angelegt werden. Dazu einfach nur folgendes ausführen:

cp /etc/init.d/net.eth0 /etc/init.d/net.eth1

Wenn nun alles funktioniert hat, muss man lediglich das Modul laden. (Das Script wird dabei automatisch ausgeführt)

modprobe ipw2200

  Radio Buttons aktivieren / ACPI Events

Als nächstes widmen wir uns dem Knopf für das (De)Aktivieren des WLAN. Damit das überhaupt funktioniert, benötigt man das Packet acpi4asus. Dabei wieder darauf achten, dass der richtig Kernel unter /usr/src/linux zu finden ist.
Achtung! Beim 2.6.12er Kernel funktioniert das Asus ACPI nicht richtig auf dem P35. Es kommt beim Starten zu einem Segmentation Fault bis hin zu einer Kernel Panic.

emerge acpi4asus

Nun noch das entsprechende Modul laden und schon sollte die WLAN-Taste leuchten.

modprobe asus_acpi

Jetzt kann man unter /etc/acpi/events/ entsprechende Scripte erstellen, die bei den Events ausgeführt werden sollen. Ich verwende folgende:

# /etc/acpi/events/wlan_start

# Event Wlan Radiobutton on
event=.*hotkey.*5e[[:space:]].*

# lade Modul für WLAN
action=modprobe ipw2200

 

# /etc/acpi/events/wlan_stop

# Event Wlan Radiobutton off
event=.*hotkey.*5f[[:space:]].*

# WLAN Modul aus dem Speicher entfernen
action=rmmod ipw2200

Um die ACPI-Events von den anderen Tasten (z.B. Lautstärke) zu erhalten, kann man das Tool acpi_listen benutzen. Dann wie schon für den Radio Button einfach für die einzelnen Events entsprechende Scripte anlegen. Für Änderung der Lautstärke und Anzeige der Änderung eignen sich z.B. osd_cat und amixer sehr gut.

  Card Reader einrichten

Für den Card Reader gibt es zur Zeit leider noch keinen funktionstüchtigen Treiber, so dass man ihn leider noch nicht unter Linux einsetzen kann.

  Mainboard Sensoren und KSensors

Manchmal ist es ganz nützlich, wenn man die Temperaturen von CPU und Mainboard weiss. Dies kann man mittels des Tools lm_sensors bewerkstelligen.

emerge lm_sensors

Als nächstes werden nun die passenden Treiber für die Sensoren des Notebooks ermittelt:

sensors_detect

Anschliessend die Anweisungen befolgen und dann die angegebenen Änderungen in /etc/modules.d/lm_sensors vornehmen.
Nun muss lm_sensors nurnoch gestartet werden:

/etc/init.d/lm_sensors start
rc-update add lm_sensors default

Der letzte Befehl fügt lm_sensors dem Runlevel default zu, so dass es beim Laden dieses Runlevels automatisch gestartet wird.
Nun muss lmsensors noch initialisiert werden:

sensors -s

Mit dem Befehl sensors (ohne -s) kann man nun die Temperaturen überprüfen. Wer ein gutes grafisches Tool möchte, kann sich nun noch ksensors für KDE installieren.

  Nützliche Seiten

P35 Forum
Tools und Patches

powered by Apache Web Server, PHP, GIMP Image Editor, Quanta HTML Editor & Gentoo Linux
letzte Änderung dieser Seite:  07. 03. 2015 14:30
(C) 2003-2006 Holger Gerth