Samsung P35

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche
Dieser Teil ist Artikel der Hardware Serie.
Laptops Motherboards Servers Eingabegeräte RAID Controller TV Karten Wireless Andere Hardware Andere Architekturen alphabetischer Hardware Index


Dieser Artikel beschreibt, wie man die einzelnen Komponenten des Notebooks Samsung P35 aktivieren und verwenden kann.

Inhaltsverzeichnis

[Bearbeiten] Installation des Gentoo-Grundsystems

Das Grundsystem kann man einfach nach dem Gentoo Linux x86 Handbuch installieren.

[Bearbeiten] Grafik

Das Notebook verfügt übereine ATi Radeon Mobility 9700 Grafikkarte die mit den ATi-Treibern verwendet werden kann. In diesem Artikel wird beschrieben, mit welchen Einstellungen und Konfiguration ich den ATi-Treiber für die Grafikkarte eingebunden habe. Um auch in anderen Programmen eine Möglichst hohe Kompatibilität zu der Grafikkarte zu erreichen habe ich ebenfalls die /etc/make.conf Datei um folgende Zeile erweitert.

Datei: make.conf
 VIDEO_CARDS="radeon"


[Bearbeiten] Kerneleinstellungen

Ich habe bei meinem Kernel folgende Einstellungen vorgenommen. Grundlage war hierbei HOWTO ATi drivers. Ziel war es damit die 3D Bescheunigung zu ermöglichen und einen Framebuffer Bootsplash zu bekommen.

Probleme gibt es nur beim Framebuffer im silent-mode doch dazu später mehr.

Linux Kernel Configuration: Linux Kernel 2.6.15-gentoo-r1
Loadable Module Support --->
 [*] Enable loadable module support
 [*]   Module unloading 
 [*] Automatic kernel module loading

Processor type and features  --->
 [*] MTRR (Memory Type Range Register) support

File Systems --->
  Pseudo filesystems --->
  [*]Virtual memory file system support

Device Drivers --->
 Character Devices ---> 
  <*> /dev/agpgart (AGP Support)  
  <*>   Intel 440LX/BX/GX, I8xx and E7x05 chipset support
  < > Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
 Graphics support --->
  <*> Support for frame buffer devices
  <*> VESA VGA graphics support
        VESA driver type (vesafb-tng) --->
  (1400x1050@60) VESA derfault mode
  Logo configuration --->
    [ ] Bootup logo
  [*] Support for framebuffer splash

Für den Framebuffer unbedingt VESA VGA verwenden, da bei der Verwendung ATi-Radeon supportdas zusammenspiel mit den ATi-Treibern nicht funktioniert und das system sich aufhängen kann!

Nicht vergessen: Kompilieren und mit neuem Kernel starten.

[Bearbeiten] ATi-Treiber installieren

Die Radeon 9700 Mobility wird von dem derzeit aktuellen Treiber Version 8.21.7 unterstützt. Am am besten die neuste Version des Treibers benutzen. Die Installation des Teribers führt man am sinnvollsten auf einer Console durch und stoppt währen dieser Zeit xdm:

Code: xdm beenden
# /etc/init.d/xdm stop

Um ati-drivers zu nutzen, sollte zuvor geprüft werden ob xorg-x11 ohne dlloader USE Flag kompiliert wurde.

Code:
# equery uses xorg-x11

Wenn doch xorg-x11 neu kompilieren dlloader USE Flag.

Um sicherzustellen, dass auch wirklich die neusten Teiber genommen werden, unmask ati-drivers sowie deren Abhängigkeiten.

Code:
echo "app-admin/eselect ~x86" >> /etc/portage/package.keywords
echo "app-admin/eselect-opengl ~x86" >> /etc/portage/package.keywords
echo "x11-drivers/ati-drivers ~x86" >> /etc/portage/package.keywords
echo "x11-apps/ati-drivers-extra ~x86" >> /etc/portage/package.keywords

Jetzt kann der ATi-Treiber installiert werden. ati-drivers-extra ist ein Control Panel für den Treiber den man nicht unbedingt benötigt. Ich habe ihn nicht verwendet.

Code:
# emerge -av ati-drivers


Nach der Installation wird das Kernelmodul geladen und zum ATi OpenGL subsytem gewechselt:

Code:
# modprobe fglrx
# eselect opengl set ati


(WICHTIG!)(Nicht opengl-update verwenden) X Konfigurieren:

Code:
# aticonfig


Bei älteren Treibern:

Code:
# fglrxconfig


Sollte es nicht funktionieren muss der original Pfad des Scripts angegeben werden:

Code:
# /opt/ati/bin/aticonfig


Die Parameter müssen hier individuell gesetz werden. Wer eine erste funktionierende Grundinstallation möchte kann folgenden Befehl verwenden:

Code:
 # aticonfig -–initial –-resolution 1400x1050,1280x1024 –-input=/etc/X11/xorg.conf

Anschließend X starten

Code:
# startx


Eine Konsole öffnen und prüfen ob die Installation erfolgreich war:

Code:
# /opt/ati/bin/fglrxinfo


Erfolgt darufhin eine ausgebe wie:

OpenGL vendor string "ATI Technologies inc."

dann war es erfolgreich.

[Bearbeiten] Framebuffer Konsole und Bootsplash

In diesem Bereich gibt es bei mir noch Probleme. Es ist mir nicht möglich gewesen einen funktionierenden Silent-splash zu installieren. Die Framebuffer Konsole arbeitet sonst sehr gut mit den von mit gesetzten Hintergrundbildern.

Für die Einrichtung eines Framebuffer Hintergrunds in der Konsole müssen die o.g. Kerneleinstellungen vorgenommen werden. Wenn diese bei der Installation des ATi-Treibers bereits berücksichtigt wurden, kann es direkt los gehen. Benötigt werden dazu die splashutils und splash-themes

[Bearbeiten] CPU Powermanagement

Um in Batteriebetrieb die Akkuleistung zu erhöhen habe ich ein Powermanagement installiert um den Prozessortakt an die geforderte Leistung anzupassen. Wenig Leistung benötigt -> niedrige Taktfrequenz, viel Leistung benötigt -> hohe Taktfrequenz.

Grundlage und Quelle hierfür ist der Gentoo Power Management Guide. Der hier speziell für das Samsung P35 umgesetzt wird.

[Bearbeiten] Kernelkonfiguration

Der erste Schritt der notwendig ist um cpufreq zu nutzen ist wiedereinmal die Vorbereitung des Kernels. Es gilt zunächst folgendes einzustellen:

Linux Kernel Configuration: Linux 2.6.15-gentoo-r1
Power Management Options --->
 [*] Power Management Support (ACPI, APM)
 ACPI( Advanced Configuration and Power Interface ) Support --->
   [*] ACPI Support
   [ ]   Sleep States
   [ ]     /proc/acpi/sleep (deprecated)
   [*]   AC Adapter
   [*]   Battery
   <*>   Button
   <M>   Video
   [ ]   Generic Hotkey
   <M>   Fan
   <M>   Processor
   <M>     Thermal Zone
   < >   ASUS/Medion Laptop Extras
   < >   IBM ThinkPad Laptop Extras
   < >   Toshiba Laptop Extras
   (0)   Disable ACPI for systems before Jan 1st this year
   [ ]   Debug Statements
   [*]   Power Management Timer Support
   < >   ACPI0004,PNP0A05 and PNP0A06 Container Driver (EXPERIMENTAL)
 CPU Frequency Scaling --->
   [*] CPU Frequency scaling
   [ ]   Enable CPUfreq debugging
   < >   CPU frequency translation statistics
   [ ]     CPU frequency translation statistics details
         Default CPUFreq governor (userspace)
   <*>   'performance' governor
   <*>   'powersave' governor
   <*>   'ondemand' cpufreq policy governor
   <*>   'conservative' cpufreq governor
   <*>   CPU frequency table helpers
   <M> ACPI Processor P-States driver
   --- CPU processor drivers
   <*> Intel Enhanced SpeedStep
   [*]   Use ACPI tables to decode valid frequency/voltage pairs
   [ ]   Built-in tables for Banias CPUs

Es sind hier nicht alle Optionen aufgeführt nur die veränderten. Des Weiteren habe alle anderen CPU processor drivers deaktivert.


Wenn das Kompilieren des Kernels abgeschlossen ist und mit dem neuen Kernel gebootet wurde, können die benötigten programme installiert werden. Zunächst habe ich ACPI installiert.

[Bearbeiten] Powermanagement

Damit überhaupt auf Änderungen der Stromversorgung oder etwa das zuklappen des Laptops reagiert wird, wird der ACPI Deamon benötigt, der zunächst als erstes installiert wird.

[Bearbeiten] ACPI

Code: Installing acpid
 # emerge sys-power/acpid
 # /etc/init.d/acpid start
 # rc-update add acpid default


[Bearbeiten] Runlevel "battery"

Damit das Powermanagement nur im Batteriebetrieb aktiviert wird,ist es sinnvoll ein runlevel "battery" zu erstellen, das bei nicht eingestecktem Netzteil aktivtiert wird.

Code: Creating a battery runlevel
 # cd /etc/runlevels
 # cp -a default battery
 # emerge powermgmt-base

Jetzt muss ein Script erstellt werden, das die Umschaltung der runlevel vornimmt.

Datei: /etc/acpi/actions/pmg_switch_runlevel.sh
#!/bin/bash

# Anfang der Konfiguration
RUNLEVEL_AC="default"
RUNLEVEL_BATTERY="battery"
# Ende der Konfiguration


if [ ! -d "/etc/runlevels/${RUNLEVEL_AC}" ]
then
        logger "${0}: Runlevel ${RUNLEVEL_AC} does not exist. Aborting."
        exit 1
fi

if [ ! -d "/etc/runlevels/${RUNLEVEL_BATTERY}" ]
then
        logger "${0}: Runlevel ${RUNLEVEL_BATTERY} does not exist. Aborting."
        exit 1
fi

if on_ac_power
then
    if [[ "$(cat /var/lib/init.d/softlevel)" != "${RUNLEVEL_AC}" ]]
  then
            logger "Switching to ${RUNLEVEL_AC} runlevel"
            /sbin/rc ${RUNLEVEL_AC}
        fi
elif [[ "$(cat /var/lib/init.d/softlevel)" != "${RUNLEVEL_BATTERY}" ]]
then
        logger "Switching to ${RUNLEVEL_BATTERY} runlevel"
        /sbin/rc ${RUNLEVEL_BATTERY}
fi
Code: executable script
 # chmod +x /etc/acpi/actions/pmg_switch_runlevel.sh


Jetzt muß noch festgelegt werden, welcher event das script und damit verbunden die Umschaltung in ein anderes runlevel auslöst. Dazu habe ich zunächst den default-handler /etc/acpid/events/default gelöscht und anschließend folgenden event-handler implementiert.

Datei: /etc/acpi/events/processor
event=processor.*
action=/etc/acpi/actions/pmg_switch_runlevel.sh %e
Datei: /etc/acpi/events/battery
event=battery.*
action=/etc/acpi/actions/pmg_switch_runlevel.sh %e
 


Abschließend muss acpid neu gestartet werden, um die Änderungen zu erkennen.

Code: restart acpid
 # /etc/init.d/acpid restart
  

Damit auch bei einem Neustart erkannt wird, ob der Laptop am Netz oder per Battery betrieben wird habe ich folgende Zeile in die Datei /etc/conf.d/local.start eingefügt. Dadurch wird das ACPI Ereignisses battery/battery vorgetäuscht, weshalb überprüft wird, ob das runlevel battery oder default zu verwenden ist.

Datei: /etc/conf.d/local.start
 /etc/acpi/actions/pmg_switch_runlevel.sh "battery/battery"
  


Nach diesen Vorbereitungen können die einzelnen Geräte konfiguriert werden.

[Bearbeiten] cpufreq

[Bearbeiten] Externe Links

'Persönliche Werkzeuge