WLAN ist nicht in Betrieb zu nehmen, der Kundensupport hat mich kurzerhand abgebürstet.
Auch auf einem neuen DELL Notebook hat SUSE 9.3 arge Probleme mit WLAN. Damit kann ich SuSE nicht mehr für Nutzer dieses Notebooks weiterempfehlen - außerdem werden Kunden bei Installationsproblemen von SUSE anscheinend alleingelassen. Ich werde mich jetzt nach einer anderen Distribution (wahrscheinlich Debian) umsehen und kann nur jedem MD 2804 Nutzer empfehlen, auf einer alten SUSE zu bleiben oder ebenfalls die Distribution zu wechseln.
Also nachfolgender Text bezieht sich nur auf SUSE < 9.3.
Ich habe mich für das neue SuSE 9 entschieden, da dort der ACPI Support fortgeschritten ist. Ich beschreibe hier nur die Hardware, für die ein Benutzereingriff vonnöten ist, der Rest wurde von SuSE 9 anstandslos erkannt und eingebunden. Nach den unten beschriebenen Operationen, die allerdings ein paar Linux Kenntnisse abfordern, ist dieses Notebook fast ohne jede Einschränkung gegenlüber Windows XP einsetzbar, das einzige, was mir bis jetzt noch nicht geglückt ist, sind die ACPI Suspend Modi, dafür hat man in anderen Bereichen aber sogar Vorteile gegenüber Windows XP.
Der NVIDA Treiber der GeforceFX GO 5600 läuft leider nicht ohne Eingriffe in die XF86Config:
Section "Device" BoardName "0x031a" BusID "1:0:0" Driver "nvidia" Identifier "Device[0]" Option "NvAGP" "1" Screen 0 Option "Rotate" "off" VendorName "NVidia" EndSection
Insbesondere die Option "NvAGP" ist von großer Wichtigkeit, ohne diese hängt sich der Rechner gnadenlos auf und kann nur noch per Kaltstart wiederbelebt werden.
Wurde leider nicht korrekt erkannt, nach einen Eingriff in die XF86Config läuft aber alles Bestens. Mit diesem Treiber kann man auch die Scrollbuttons aktivieren und das Touchpad zur Laufzeit ohne X Neustart ein- und ausschalten. Ich habe einfach den Treiber in /usr/X11R6/lib/modules/input/synaptics_drv.o ausgetauscht und den synclient nach /usr/bin kopiert.
Section "InputDevice" Driver "synaptics" Identifier "Mouse[1]" Option "AccelFactor" "0.0010" Option "Device" "/dev/psaux" Option "Edges" "1900 5400 1800 3900" Option "Finger" "25 30" Option "InputFashion" "Mouse" Option "MaxSpeed" "0.18" Option "MaxTapMove" "220" Option "MaxTapTime" "20" Option "MinSpeed" "0.02" Option "Name" "Synaptics;Touchpad" Option "VertScrollDelta" "100" Option "ZAxisMapping" "4 5" Option "SHMConfig" "on" Option "UpDownScrolling" "on" EndSection
SHMConfig funktioniert nur mit dem neuen Treiber, diese Option sorgt dafür, daß man das Touchpad zur Laufzeit und ohne X Neustart konfigurieren kann.
Wurde zwar korrekt erkannt, aber der Treiber wird beim Booten nicht automatisch eingebunden. Ich habe mir ein kleines Init Script /etc/init.d/softmodem dafür gebastelt:
#! /bin/sh # Copyright (c) 2004 Silvio Iaccarino. All rights reserved. # # Author: Silvio Iaccarino <silvio@iaccarino.de> # # /etc/init.d/softmodem # # description: init script for softmodem activation ### BEGIN INIT INFO # Provides: softmodem # Required-Start: # Required-Stop: # Default-Start: 3 5 # Default-Stop: # Description: activates the softmodem ### END INIT INFO . /etc/rc.status rc_reset # See how we were called. case "$1" in start|b) echo -n "activating softmodem" /bin/lsmod|grep slamrmo>/dev/null if [ $? != '0' ] ; then echo -n " - loading module" /sbin/modprobe -q slamrmo>/dev/null fi rc_status -v /bin/lsmod|grep slamrmo>/dev/null if [ $? == '0' ] ; then test -e /dev/modem && rm /dev/modem ln -s /dev/ttySL0 /dev/modem fi ;; status) echo -n "checking for softmodem" /bin/lsmod|grep slamrmo>/dev/null rc_status -v ;; stop) echo -n "deactivating softmodem" /sbin/modprobe -r -q slamrmo rc_status -v /bin/lsmod|grep slamrmo>/dev/null || test -e /dev/modem && rm /dev/modem ;; *) echo "Usage: $0 start stop status" exit 1 esac rc_exit
Mir ist es nicht gelungen, meinen Infrarot Drucker (Canon BJC 80) per CUPS anzubinden. Irgendwann hatte ich keine Lust mehr und habe stumpf ein lp0 Device erzeugt, das in Wirklichkeit ein irlpt0 ist:
mknod /dev/lp0 c 161 16
Das ist sicher nicht die feine Art, aber äußerst wirkungsvoll und bei einem Notebook ohne eingebautes lp0 und ohne die Möglichkeit, je eines einbauen zu können, nicht wirklich tragisch.
Dieses Notebook hat zwar eine Desktop CPU (Pentium 4), immerhin aber unterstützt diese CPU "Throttling" - quasi eine Art Leer-Schleife für die CPU um Strom zu sparen. Das Script (/usr/bin/cpu) hierzu gibt ein Audio Feedback, weil ich es später einem Hotkey zuordnen will und dort kein optisches Feedback zu sehen bekomme.
#!/bin/sh CPUSPEED=`cat /proc/acpi/processor/CPU0/throttling|grep active|awk {'print $3'}|tr -d T` case "$1" in +) if [ "$CPUSPEED" -gt "0" ] ; then CPUSPEED=$(expr $CPUSPEED - 1) echo -n $CPUSPEED>/proc/acpi/processor/CPU0/throttling playwave /opt/kde3/share/sounds/KDE_Beep_Pop.wav else playwave /opt/kde3/share/sounds/KDE_Beep_ShortBeep.wav fi ;; -) if [ "$CPUSPEED" -lt "7" ] ; then CPUSPEED=$(expr $CPUSPEED + 1) echo -n $CPUSPEED>/proc/acpi/processor/CPU0/throttling playwave /opt/kde3/share/sounds/KDE_Beep_Pop.wav else playwave /opt/kde3/share/sounds/KDE_Beep_ShortBeep.wav fi ;; 0|1|2|3|4|5|6|7) echo -n $1>/proc/acpi/processor/CPU0/throttling ;; *) cat /proc/acpi/processor/CPU0/throttling ;; esac
Nun kann man mit "cpu -" und "cpu +" das Throttling der CPU steuern - mit "+" wird der Rechner schneller, verbaucht aber mehr Strom, mit "-" legt die CPU mehr Ruhepausen ein und spart Strom. Sobald man eine Grenze erreicht, gibt es einen Warnton.
Mit seinem Desktop Prozessor und der Turbo Grafikkarte ist klar, daß dieses Notebook nicht zu den Leisen seiner Gattung gehört.
Ab SuSE 9.1 braucht man hier kaum noch Abhilfe, da das System die Lüftersteuerung anständig durchführt. Nur die ACPI Trippoints für die Lüftersteuerung sind sehr konservativ, weshalb der Lüfter öfter an sind, als Not tut. Hier kann man einfach mit diesem Init Script Ruhe schaffen:
#!/bin/sh # Copyright (c) 2004 Silvio Iaccarino. All rights reserved. # # Author: Silvio Iaccarino <silvio@iaccarino.de> # # /etc/init.d/silence # # description: Switches the FANs off ### BEGIN INIT INFO # Provides: silence # Required-Start: $acpid # Required-Stop: # X-UnitedLinux-Should-Start: # X-UnitedLinux-Should-Stop: # Default-Start: 5 # Default-Stop: # Description: Switches the FANs off ### END INIT INFO . /etc/rc.status rc_reset case "$1" in start|reload) echo -n "switching the fans off" echo -n "80:75:70:60:60" > /proc/acpi/thermal_zone/TZ1/tip_points echo -n 0 > /proc/acpi/fan/FN1/state echo -n 0 > /proc/acpi/fan/FN2/state sleep 1 echo -n 3 > /proc/acpi/fan/FN1/state echo -n 3 > /proc/acpi/fan/FN2/state rc_status -v ;; status) cat /proc/acpi/fan/FN1/state cat /proc/acpi/fan/FN2/state ;; stop) echo -n "switching the fans on" echo -n 0 > /proc/acpi/fan/FN1/state echo -n 0 > /proc/acpi/fan/FN2/state rc_status -v ;; esac rc_exit
Unter SuSE 9 ist die Lüftersteuerung gelinde gesagt bescheiden und das Notebook damit unnötig laut. Um hier abzuhelfen, habe ich ein ganzes Bündel von Scripten gebastelt, die mir die verdiente Ruhe verschaffen. Mit dem ersten Script, das ich /usr/bin/fan genannt habe, kann man die beiden Lüfter manuell steuern, bzw. sich den Status (Temperatur, Lüfter an/aus) ansehen - als root wohlgemerkt:
#!/bin/sh if [ -z $1 ] ; then echo -n "Temperatur :" cat /proc/acpi/thermal_zone/THRM/temperature|awk {'print $2'} echo -n "CPU Lüfter :" cat /proc/acpi/fan/FN1/state|awk {'print $2'} echo -n "Grafikkarten Lüfter :" cat /proc/acpi/fan/FN2/state|awk {'print $2'} . /etc/temperatures echo "Lüfter an ab :$fan_on" echo "Lüfter aus ab :$fan_off" exit 0 fi if [ "$1" == "--help" ] ; then echo "fan on - schaltet Lüfter ein" echo "fan off - schaltet Lüfter aus" echo "fan - zeigt Temperatur Infos" fi if [ "$1" == "on" ] ; then echo -n 0 > /proc/acpi/fan/FN1/state echo -n 0 > /proc/acpi/fan/FN2/state elif [ "$1" == "off" ] ; then echo -n 3 > /proc/acpi/fan/FN1/state echo -n 3 > /proc/acpi/fan/FN2/state fi
Seltsamerweise muß man die Lüfter erstmal mit "fan on" einschalten, um sie mit "fan off" abschalten zu können. Das nächste Script /usr/bin/check-temperature wird von Cron einmal pro Minute aufgerufen und schaltet die Lüfter an oder aus, wenn bestimmte Temperaturgrenzen erreicht wurden:
#!/bin/bash temp=`cat /proc/acpi/thermal_zone/THRM/temperature |awk {'print $2'}` . /etc/temperatures if [[ "$temp" -ge "$fan_on" ]] ; then echo -n 0 > /proc/acpi/fan/FN1/state echo -n 0 > /proc/acpi/fan/FN2/state fi if [[ "$temp" -le "$fan_off" ]] ; then echo -n 3 > /proc/acpi/fan/FN1/state echo -n 3 > /proc/acpi/fan/FN2/state fi
In /etc/temperatures kann man nun die Grenzen für die Lüfterschaltung definieren:
fan_off=38 fan_on=47
Das sind sehr konservative Werte, die dazu führen, daß die Lüfter sofort loslegen, wenn man zB. Videos anschaut, oder die 3D Hardware aktiviert.
Das Script /usr/bin/check-temperature ist nun in /etc/crontab einzutragen, indem man diese Zeile anhängt:
*/1 * * * * root /usr/bin/check-temperature
Nun kommt eine Absonderlichkeit ins Spiel: Um die Lüfter per ACPI abschalten zu können, müssen sie einmal per ACPI eingeschaltet werden. Auch dafür habe ich mir ein Init Script /etc/init.d/silence gebastelt:
#!/bin/sh # Copyright (c) 2004 Silvio Iaccarino. All rights reserved. # # Author: Silvio Iaccarino <silvio@iaccarino.de> # # /etc/init.d/silence # # description: Switches the FANs off ### BEGIN INIT INFO # Provides: silence # Required-Start: $acpid # Required-Stop: # X-UnitedLinux-Should-Start: # X-UnitedLinux-Should-Stop: # Default-Start: 5 # Default-Stop: # Description: Switches the FANs off ### END INIT INFO . /etc/rc.status rc_reset case "$1" in start|reload) echo -n "switching the fans off" /usr/bin/fan on sleep 1 /usr/bin/fan off rc_status -v ;; status) /usr/bin/fan ;; stop) echo -n "switching the fans on" /usr/bin/fan on rc_status -v ;; esac rc_exit
Bei der Aktivierung dieses Init Scripts bitte sicherstellen, daß /etc/init.d/acpi zuvor gestartet wurde. Um sofort Ruhe zu haben, schaltet dieses Script die Lüfter gleich nach dem Booten aus, sonst müßte man erst warten, bis der Cron Job die Arbeit erledigt. Und siehe da, das Notebook ist unter Linux auf einmal ruhiger, als es unter Windows XP jemals war.
Die hohe Qualität von Xine schreit gradezu danach, TV Out zu nutzen, aber auch tuxracer und Konsorten machen auf einem TV Bildschirm keine schlechte Figur. Man könnte dies per TWinview realisieren, so wie es Windows macht - LCD und TV zeigen dann das gleich Bild an, oder man erweitert den Desktop auf beide Screens. Die Sache hat einen Hacken - das LCD wird mit 1024x768 angesteuert, was auf TV ziemlich mies aussieht. Da mit TWinview beide Screens die gleiche Auflösung haben müssen, müßte man also auf 800x600 runterschalten. Darum habe ich mich für einen anderen, in meinen Augen viel eleganteren Weg entschieden, einen Weg, um den uns alle Windows User beneiden werden: ich definiere einfach eine zweite NVida Karte mit anderem Screen und starte mit diesen Parametern einem zweiten XServer. So kann man bequem per Strg+Alt+F7/F8 zwischen beiden Screens mit jeweils unterschiedlichen Auflösungen umschalten, auf dem LCD kann man Programme starten, die auf TV ausgeben. Beide Screens gleichzeitig geht nicht, macht aber auch keinen Sinn, denn man hat ja nur eine Maus und eine Tastatur. Diese Parameter sind der XF86Config hinzuzufügen:
Section "Monitor" HorizSync 30-50 Identifier "Monitor[1]" ModelName "PAL TV" VendorName "Telefunken" VertRefresh 57-60 UseModes "Modes[1]" EndSection Section "Modes" Identifier "Modes[1]" Modeline "800x600" 36.88 800 832 912 1024 600 601 604 621 EndSection Section "Screen" DefaultDepth 16 SubSection "Display" Depth 16 Modes "800x600" EndSubSection Device "Device[1]" Identifier "TV" Monitor "Monitor[1]" EndSection Section "Device" BoardName "0x031a" BusID "1:0:0" Driver "nvidia" Identifier "Device[1]" Option "NvAGP" "1" Option "ConnectedMonitor" "TV" Option "TVStandard" "PAL-B" Option "TVOutFormat" "COMPOSITE" Screen 0 Option "Rotate" "off" VendorName "NVidia" EndSection
Mit diesem Script von Markus Iofcea kann man nun zB. Xine auf TV Out starten...
#!/bin/sh # Author: Markus Iofcea # Copyright: 2002 # This document is released under the terms of GPL (http://www.fsf.org/copyleft/gpl.html). X -screen TV :1 -ac & sleep 2; DISPLAY=:1 xine -f && kill `ps aux | awk '/X\ -screen/ {print $2}' `
Um alle Hotkeys (Fn+xyz) zu aktivieren, ist einiges an Handarbeit zu tun. Zuerst ist via Yast2 das aumix Paket (Audio Steuerung via Console) zu installieren. Anschließend braucht man ein Hotkey-Tool wie zB. dieses hier. Nun einfach einen Link von /usr/bin/xbindkeys in ~/.kde/Autostart erzeugen und eine .xbindkeysrc mit diesem Inhalt in das Home Verzeichnis ablegen:
"xbindkeys_show" control+shift + q "mute" c:160 "aumix -v -" c:174 "aumix -v +" c:176 "synclient TouchpadOff=0" control+shift + t "synclient TouchpadOff=1" control+shift + u "sudo fan off" control+shift+s "sudo fan on" control+shift+l "sudo cpu +" c:205 "sudo cpu -" c:203
Und die .Xmodmap aus dem Home Verzeichnis ist um folgende Zeile zu ergänzen:
keycode 178 = XF86WWW keycode 236 = XF86Mail keycode 203 = XF86Back keycode 205 = XF86Forward keycode 176 = XF86AudioRaiseVolume keycode 174 = XF86AudioLowerVolume keycode 160 = XF86AudioMute
Nach einem X Neustart kann man mit dem KDE Menüeditor FN+F10 und FN+F11 als Hotkeys an Mailer und Browser binden. Per Strg+Shift+u kann man nun das Touchpad abschalten, per Strg+Shift+t wieder einschalten. Für die Lüfter und CPU Steuerung muß man die Scripts fan und cpu per sudo freischalten, dazu ist /etc/sudoers um folgende Zeile zu ergänzen:
MeinName ALL=NOPASSWD: /usr/bin/fan, /usr/bin/cpu
Ab dann funktionieren auch die CPU Takt-Hotkeys und man kann mit control+shift+s die Lüfter abschalten, bzw. mit control+shift+l einschalten.
Es bietet sich im Prinzip an, die Backup-Partition für Linux zu benutzen.
Um auf die Windows Boot Partition schreibend zuzugreifen, empfiehlt sich captive, denn mit den Standard-NTFS-Treibern kann man nur lesen.
Viele weitere und nützliche Informationen sind bei Tuxmobil zu finden. Dort werden auch andere Medion Notebooks behandelt und einiges davon hat auch für dieses Notebook seine Gültigkeit.