Acer Extensa 3001WLMi: Unterschied zwischen den Versionen
SiD (Diskussion | Beiträge) |
SiD (Diskussion | Beiträge) K →acpi_cpufreq: typo |
||
Zeile 36: | Zeile 36: | ||
====acpi_cpufreq==== | ====acpi_cpufreq==== | ||
Das Modul ''acpi_cpufreq'' muss geladen werden. Am besten in die ''/etc/rc.conf'' eintragen. | Das Modul ''acpi_cpufreq'' muss geladen werden. Am besten in die ''/etc/rc.conf'' eintragen. | ||
Bei meinem Modell habe ich noch das Problem, das aufgrund einer | Bei meinem Modell habe ich noch das Problem, das aufgrund einer fehlerhaften DSDT Tabelle nicht die richtigen, zur Verfügung stehenden Frequenzen erkennt werden. Die maximale Frequenz, die erkannt wird, ist 1,6GHz, obwohl es nur eine 1,5GHz CPU ist. Der Grund dafür ist eine fehlerhafte DSDT Tabelle. Damit die CPU nicht ständig übertaktet wird, habe ich die maximale Frequenz auf 1,4GHz eingestellt. (Das ist die nächst kleinere die erkannt wird) | ||
Dazu habe ich diesen eintrag in der /etc/rc.local stehen. | Dazu habe ich diesen eintrag in der /etc/rc.local stehen. | ||
echo 1400000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq | echo 1400000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq |
Version vom 7. März 2010, 15:53 Uhr
Hardware
CPU: Pentium M 1,5GHz
RAM: 512MB
Touchpad: Synaptics
für die restliche Hardware hier die Ausgabe von "lspci"
00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02) 00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02) 00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02) 00:01.0 PCI bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to AGP Controller (rev 02) 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 03) 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 03) 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 03) 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 03) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 83) 00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 03) 00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 03) 00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 03) 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 03) 00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 03) 01:00.0 VGA compatible controller: ATI Technologies Inc RV350 [Mobility Radeon 9600 M10] 02:02.0 Ethernet controller: Broadcom Corporation BCM4401 100Base-T (rev 01) 02:04.0 Network controller: Intel Corporation PRO/Wireless 2200BG [Calexico2] Network Connection (rev 05) 02:06.0 CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller 02:06.2 FireWire (IEEE 1394): Texas Instruments OHCI Compliant IEEE 1394 Host Controller 02:06.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller
Kernel
Ich benutze den Standard Arch Kernel. Da der XServer mit dem freien ATI Treiber abstürzt, muss die "tickless kernel" Funktion deaktiviert werden. Das macht man, indem man in der /boot/grub/menu.lst nohz=off zu der Kernel Zeile hinzufügt. Zum Beispiel so:
kernel /vmlinuz26 root=/dev/sda8 ro nohz=off vga=790
CPU Frequenz
Für die CPU Frequenz Skalierung gibt es zwei Möglichkeiten.
acpi_cpufreq
Das Modul acpi_cpufreq muss geladen werden. Am besten in die /etc/rc.conf eintragen. Bei meinem Modell habe ich noch das Problem, das aufgrund einer fehlerhaften DSDT Tabelle nicht die richtigen, zur Verfügung stehenden Frequenzen erkennt werden. Die maximale Frequenz, die erkannt wird, ist 1,6GHz, obwohl es nur eine 1,5GHz CPU ist. Der Grund dafür ist eine fehlerhafte DSDT Tabelle. Damit die CPU nicht ständig übertaktet wird, habe ich die maximale Frequenz auf 1,4GHz eingestellt. (Das ist die nächst kleinere die erkannt wird) Dazu habe ich diesen eintrag in der /etc/rc.local stehen.
echo 1400000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
Außerdem habe ich den Scaling Governor auf performance gesetzt. Ebenfalls in der /etc/rc.local
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Die verfügbaren Frequenzen stehen in /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies und die verfügbaren Governors in /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies.
korrigierte DSDT Tabelle
Mit einer reparierten DSDT Tabelle, die die richtigen Frequenzen enthält, lässt sich das Problem beheben. Dazu muss die reparierte DSDT Tabelle in den Kernel kompiliert werden (überschreiben der DSDT per initrd ist mit dem aktuellen mkinitcpio nicht mehr möglich).
Hier ist der Quell-Code meiner reparierten DSDT.
Der Code kann mit iasl kompiliert werden. Einfach in einer Datei (z.B. dsdt.dsl) speichern und mit
iasl -tc dsdt.dsl
komilieren. Die Datei dsdt.hex ist dann die Datei, die zum einkompilieren in den Kernel verwendet wird.
Kernel Konfiguration für DSDT:
Device Drivers --> Generic Driver Options --> [ ] Select only drivers that don't need compile-time external firmware
Power Management and ACPI Options --> [*] ACPI (Advanced Configuration and Power Interface) Support --> (/pfad/zu/dsdt.hex) Custom DSDT Table file to include
bzw.
CONFIG_ACPI_CUSTOM_DSDT_FILE="/pfad/zu/dsdt.hex" CONFIG_ACPI_CUSTOM_DSDT=y CONFIG_STANDALONE=n
Wenn alles geklappt hat, sollte sich, nach dem nächsten Rechnerstart mit dem neuen Kernel, in der dmesg Ausgabe so etwas wie Table [DSDT] replaced by host OS finden, wenn alles geklappt hat.
speedstep-centrino
Neben dem acpi_cpufreq Modul gibt es noch das (als veraltet ausgegebene) speedstep-centrino Modul. Mit einem Patch für dieses Modul ist es auch möglich ohne reparierte DSDT Tabelle die CPU Frequenz Skalierung mit den richtigen Frequenzen zum laufen zu bekommen. Aber auch hier muss ein Kernel selber kompliliert werden. Ein weiterer Vorteil dieser Methode ist, das man in dem Patch auch die CPU Spannungen ändern kann. Damit ist dann auch "undervolting" möglich, was bei mir zu einem deutlich leiserem / weniger laufenden Lüfter führt. (linux-phc funktioniert nicht).
Kernel Konfiguration:
Power Management and ACPI Options --> CPU Frequency scaling --> [*] CPU Frequency scaling [*] Enable CPUfreq debugging <*> CPU frequency translation statistics [ ] CPU frequency translation statistics details Default CPUFreq governor (performance) ---> -*- 'performance' governor <M> 'powersave' governor <M> 'userspace' governor for userspace frequency scaling <M> 'ondemand' cpufreq policy governor <M> 'conservative' cpufreq governor ... ... <*> Intel Enhanced SpeedStep (deprecated) -*- Built-in tables for Banias CPUs ... (alle anderen nicht auswählen)
Der Patch wurde mit kernel-2.6.32.2 getestet. Die Datei bfindet sich in den kernel-sourcen unter arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c
LAN
Das Kernel Modul für das LAN Interface heißt b44.
WLAN
Das Kernel Modul für das WLAN Interface heißt ipw2200. Neben dem Modul muss noch das Firmware Paket installiert werden.
pacman -S ipw2200-fw
Grafik
Der Freie Treiber für die ATI Mobility Radeon ist im Paket xf86-video-ati. Den closed source Treiber (catalyst) in der aktuellsten Version (zur Zeit 9.1-1) habe ich bis jetzt noch nicht zum laufen bekommen.
- Freier Treiber mit Hotplugging:
Es muss nur das Paket mit dem Treiber installiert werden.
pacman -S xf86-video-ati
- Freier Treiber ohne Hotplugging
http://wiki.archlinux.de/title/ATI#Open-Source-Treiber
TV Out
Den TV-Ausgang habe ich mit dem freien radeon Treiber und xrandr zum laufen bekommen.
Siehe ATI#TV-Out.
Sollte aber auch mit dem fglrx funktionieren.
Touchpad
- Mit Hotplugging:
- Ohne Hotplugging:
Firewire
Das Kernel Modul heißt ieee1394
Sound
Die Module werden vom Stock Kernel alle automatisch geladen. Ich habe den Sound über ALSA laufen.
Card Reader
Der integrierte Karten-Leser funktioniert. (nur mit SD-Karten ausprobiert) Die nötigen Module sind:
mmc_core mmc_block tifm_core tifm_sd tifm_7xx1
Akku
Damit der Akku-Ladestand ausgelesen werden kann, muss das Modul sbs geladen werden.
PCMCIA
Funktioniert "out-of-the-box"
Bluetooth
Habe ich noch nicht ausprobiert
Infrarot
Auch noch nicht ausprobiert.
Sondertasten
Die Tasten zum einstellen der LCD-Helligkeit und zum ausschalten des LCDs funktionieren "out-of-the-box". Die Tasten für Multimedia (Volume, Play, Stop, ect.) habe ich mit xbindkeys konfiguriert. Am besten man trägt xbindkeys in die ~/.xinitrc ein. Zum Beispiel so.
xbindkeys & pypanel & exec openbox
Hier meine ~/.xbindkeys.conf
"xbindkeys_show" control+shift + q # PCM Volume up (Fn + up_arrow) "amixer -c 0 set Master 2dB+" c:123 + m:0x0 # PCM Volume down (Fn + down_arrow) "amixer -c 0 set Master 2dB-" c:122 + m:0x0 # Master Volume mute/unmute (Fn + F8) "amixer -c 0 set Master toggle" c:121 + m:0x0 ########## Sonata ################ # Sonata play/pause (Fn + Pos 1) "sonata pp" c:172 + m:0x0 # Sonata Stop (Fn + Bild up) "sonata stop" c:174 + m:0x0 # Sonata Lied zurück (Fn + Bild down) "sonata prev" c:173+ m:0x0 # Sonata Lied vor (Fn + Ende) "sonata next" c:171 + m:0x0
Alternativ kann man auch Keytouch verwenden, aber das funktioniert in der aktuellen Version leider nicht wenn man den Xserver mit aktiviertem Hotplugging betreibt.
Tips
- Soundkarte in Stromsparmodus bringen:
echo 1 > /sys/module/snd_ac97_codec/parameters/power_save