Anfang Oktober 2007 war ich auf der Suche nach einem Business Notebook, also mit Augenmerk auf mattem Display und solider Verarbeitung. Gedacht ist es für mein Studium, für das ich dringend ein NB benötigte. Bei der Suche in mehreren Onlineshops bin ich auf dieses Notebook aufmerksam geworden, da es die Vorteile der Business Notebooks hatte aber trotzdem sehr günstig war ohne ein klappriges Billignotebook zu sein und unangenehm aufzufallen durch einen Spiegel. Wenn ihr das mal gesehen habt bei Deckenlicht, dann wisst ihr was ich meine. In einer anderen Ausstattung kommt auch dieses Notebook in ganz andere Preisdimensionen. Ich entschied mich für einen Sempron, weil er 1. genug Leistung für den Alltag bringt und 2. Stromsparfunktionen hat, die bei den Celerons ja abgeschalten sind. Als Schmankerl obendrauf musste ich nicht die Zwangslizenz von Microsoft mitkaufen, da ja Freedos dabei war.
Ausstattung
Zum Kaufzeitpunkt kostete Das NB(6715s) mit
Sempron 3600+, 2x512MB RAM,
80GB FP mit 5400rpm von Toshiba, 15,4" mattem 1280x800 Display, 47whr
Akku(mit Ubuntu reichts ohne
Optimierungen bei 50% Helligkeit fürs aktive surfen
übers wlan für 2:30), DVD DL Brenner, Bluetooth, abg(wobei die Antenne
nur bg kann)
Broadcom Wlan 475
EUR ohne Versand bei cyberport. Der verbaute Chipsatz ist ein
AMD M690T mit einer ATI SB600 Southbridge.
Vorweg
Vorteile
Zum Business Notebook gehört auch ein Business
Betriebssystem.
Meine Wahl war Ubuntu, weil viele Dinge gleich im Kernel einkompiliert
sind und auch unfreie Treiber leicht zu installieren sind. Damit wollte
ich zuersteinmal ein funktionierendes System aufsetzen.
Erstes Problem:
"AMD/ATI
SB600 can't do 64 Bit DMA Transfers"
->muss in 32Bit-Mode gezwungen werden, was
erst möglich ist ab Kernel 2.6.22-rc2 oder 2.6.21-5 Debian
Deshalb verwende ich das neueste Ubuntu: Gutsy (7.10). Um auch den
aktuellen Kernel zu bekommen
2.6.22-14 verwendete ich den netinstaller(Alternative
Installer oder andere Architekturen),
da Gutsy damals noch Beta war. Für den
netinstaller ist natürlich eine bestehende Internetverbindung
über den Lan Anschluss erforderlich. Mittlerweile sollte der Alternate
installer auch gut verfügbar sein, so dass man auch diesen verwenden
kann.
Zweites Problem:
Die 32 Bit Installation friert immer mal wieder ein, wenn versucht wird
auf die Festplatte zuzugreifen. Festplattenzugriffe sind mit
<1MB/s sehr langsam. Üblich sind >35MB/s auf dem
Notebook. Ich kann mir das nur so erklären, dass der Sata
Treiber für diese Hardware nicht korrekt funktioniert.
Vielleicht ist da ein Zusammenhang mit der im Bios nicht vorhandenen
Möglichkeit SATA auf den nativen Modus
umzuschalten(Die Option ist im Bioscode vorhanden wird aber nicht
angezeigt). Deshalb muss Linux aktuell mit 64 Bit Kernel installiert
werden, dann sind auch Festplattenzugriffe normal schnell. Ein Nachwort
zum 64Bit System: 32 Bit Programme können normal ausgeführt werden, was
z.B. für den Fall Java interessant ist, da Sun kein 64Bit Browserplugin
zur Verfügung stellt. ia32-sun-java6-bin hilft da weiter.
Drittes Problem
"..MP-BIOS bug: 8254 timer not connected to IO-APIC"
Wird vom verwendeten Kernel korrekt behandelt: "ATI board detected.
Disabling timer routing over 8254.". Alternativ kann die Bootoption
nolapic_timer an den Kernel angefügt werden.
Viertes Problem:
"PCI: Cannot allocate resource region 0 of device 0000:00:14.2"
...
Fünftes Problem:
"APIC error on CPU0: 40(40)"
Der Fehler tritt
fortlaufend auf und kann für das Erste ignoriert werden. Nachteil ist,
dass er /var/log/syslog zumüllt. Die Alternative, beim Booten APIC mit "noapic" und "nolapic"
Option auszuschalten sollte nicht in betracht gezogen werden. Dann
werden auch Stromspar- und Taktungsmechanismen abgeschaltet.
Nach der Installation gibt es noch folgende nicht
funktionierende Dinge:
1. grafische
Oberfläche
2. Wlan: der Standardtreiber
bcm43xx bremst zudem die Festplatte
merklich aus <4MB/s, wenn geladen
3. Lüfter zu laut
4. Standby, Ruhezustand
5.
spezielle Energiesparmechanismen
6.
knackender Sound bei Bässen in mp3s gelöst
Ungetestet sind: PC-Card, Brenner, Bluetooth. Die ersten beiden sollten
aber gehen.
1.
grafische Oberfläche
Beim auftretenden Fehler solange
Fehler bestätigen, bis der gdm beendet wird, dann Strg+ALT+F1
auf die Konsole und bei bestehender Internetverbindung ein sudo apt-get
install xorg-driver-fglrx sowie danach sudo aticonfig
--initial und
ein Neustarten der grafischen Oberfläche mit sudo gdm und die
grafische Oberfläche
funktioniert. Anmerkung: Bei Kubuntu gdm durch kdm
ersetzen.
2. Wlan
Standardmäßig lädt Ubuntu den
Treiber Namens bcm43xx mit. Dieser ist zum aktuellen Zeitpunkt nicht
ganz ausgereift oder funktioniert nicht mit der Eingebauten Broadcom
Mini-PCI Karte. Wenn er mit zugehöriger Firmware(fwcutter) geladen ist
fällt nach ca. 2 min auch
die Plattengeschwindigkeit ab auf ca <4MB/s. Testbar mit sudo
hdparm -t /dev/sda . Um das laden zu verhindern sudo echo blacklist
bcm43xx >> /etc/modprobe.d/blacklist . Damit
Wlan doch
noch halbwegs(ja, die Wlan An-Aus Taste sollte lieber nicht benutzt
werden, denn dann bekam ich das Wlan so schnell nicht wieder an) geht
benutze ich ndiswrapper. Den installiere ich mit sudo apt-get install
ndiswrapper-common und
sudo apt get install ndiswrapper-utils-1.9 .
Zusätzlich wird der Windows Wlan Treiber benötigt.
Diesen gibt es auf der HP Seite als SP34152A.
Entpackt im Treiber Verzeichnis dann ein sudo ndiswrapper -i bcmwl5.inf
installiert den Treiber
und sudo ndiswrapper -m
schreibt die Konfiguration für das Modulladen. Das Modul kann nun über sudo modprobe ndiswrapper
geladen werden. Um es bei jedem start zu laden: sudo echo ndiswrapper
>> /etc/modules . Sollte der
bcm43xx Treiber
während der Installation Probleme machen
kann er geblacklistet werden indem Setup nach dem Booten wie folgt
aufgerufen wird.
install
bcm43xx.blacklist=yes
Aktuell führt das Update vom network-manager(auf 0.6.5-0ubuntu16) dazu, dass ich nicht mehr ins versteckte WEP Wlan komme. Deshalb bleibe ich bei Version 0.6.5-0ubuntu15.
Sollte das Notebook nur mit aktiviertem WLAN unter Abstürzen leiden, den ndiswrapper mit mindestens Version 1.47 manuell herunterladen und installieren. (Mein Notebook hatte dieses Problem nicht, Danke Sebastian Meyer)
3.
Lüfter zu laut(es
gibt eine Revision mit defekten
Mainboards deren Lüfter auch zu laut ist)
Wen der Lüfter nicht stört, der tut gut daran nichts
zu Ändern. Die übrigen seien gewarnt das durch das
Laden einer eigenen DSDT(Differentiated
System Description Table) die Hardware beschädigt
werden kann. Bei mir hat
es funktioniert und ich bin mir sicher, dass ich nichts falsch gemacht
habe, sowie das mein Gerät nicht zu warm wird.
Die geänderten Lüftereinstellungen stellen NICHT SICHER das
die GPU genügend gekühlt wird. WENN das NOTEBOOK also FÜR 3D
Anwendungen/3D Spiele genutzt wird kann die Grafikkarte heiß werden
ohne das der Lüfter genügend Kühlluft zuführt. Konkret tritt dieser
Fall ein, wenn die GPU voll belastet wird die CPU nur minimal. Weil
die Lüftersteuerung sich nur an der CPU Temperatur
orientiert, kann die GPU zu heiß werden.
Es besteht die Möglichkeit das DSDT umzuprogrammieren, so dass auch die
GPU Temperatur zusätzlich für die Lüftersteuerung benutzt wird. Dies
ist aber momentan nicht der Fall.
Dazu
erläutere ich erstmal was ich im Folgenden überhaupt
Ändern werde.
Das Notebook hat 5 Kühlstufen die von der Temperatur im
Notebook abhängen.
| Temperatur in °C | Kühlmethode |
| >=90 | Zusätzlich zum Lüfter passive Kühlung durch untertakten/abschalten der CPU |
| >=75 | Lüfter 100% |
| >=65 | Lüfter 80% |
| >=55 | Lüfter 60% wird bei mir auf 40% geändert |
| >=40 | Lüfter 40% wird bei mir auf 10% geändert |
| Originales DSDT | Geändertes DSDT |
| PowerResource (C395, 0x00, 0x0000)
{ Method (_STA, 0, NotSerialized) { Return (C38C (0x01, 0x64)) } Method (_ON, 0, NotSerialized) { If (LLessEqual (\C00D (), 0x03)) { C38D (0x01, 0x64) } Else { If (LGreater (DerefOf (Index (C389, 0x00)), C38F (C381, 0x00))) { C38D (0x01, 0x64) } } } Method (_OFF, 0, NotSerialized) { C38E (0x01, 0x50) } } PowerResource (C396, 0x00, 0x0000) { Method (_STA, 0, NotSerialized) { Return (C38C (0x02, 0x50)) } Method (_ON, 0, NotSerialized) { If (LLessEqual (\C00D (), 0x03)) { C38D (0x02, 0x50) } Else { If (LGreater (DerefOf (Index (C389, 0x00)), C38F (C380, 0x00))) { C38D (0x02, 0x50) } } } Method (_OFF, 0, NotSerialized) { C38E (0x02, 0x3C) } } PowerResource (C397, 0x00, 0x0000) { Method (_STA, 0, NotSerialized) { Return (C38C (0x04, 0x3C)) } Method (_ON, 0, NotSerialized) { If (LLessEqual (\C00D (), 0x03)) { C38D (0x04, 0x3C) } Else { If (LGreater (DerefOf (Index (C389, 0x00)), C38F (C37F, 0x00))) { C38D (0x04, 0x3C) } } } Method (_OFF, 0, NotSerialized) { C38E (0x04, 0x28) } } PowerResource (C398, 0x00, 0x0000) { Method (_STA, 0, NotSerialized) { Return (C38C (0x08, 0x28)) } Method (_ON, 0, NotSerialized) { If (LLessEqual (\C00D (), 0x03)) { C38D (0x08, 0x28) } Else { If (LGreater (DerefOf (Index (C389, 0x00)), C38F (C37E, 0x00))) { C38D (0x08, 0x28) } } } Method (_OFF, 0, NotSerialized) { C38E (0x08, 0x00) } } } |
PowerResource (C395, 0x00, 0x0000)
{ Method (_STA, 0, NotSerialized) { Return (C38C (0x01, 0x64)) } Method (_ON, 0, NotSerialized) { If (LLessEqual (\C00D (), 0x03)) { C38D (0x01, 0x64) } Else { If (LGreater (DerefOf (Index (C389, 0x00)), C38F (C381, 0x00))) { C38D (0x01, 0x64) } } } Method (_OFF, 0, NotSerialized) { C38E (0x01, 0x50) } } PowerResource (C396, 0x00, 0x0000) { Method (_STA, 0, NotSerialized) { Return (C38C (0x02, 0x50)) } Method (_ON, 0, NotSerialized) { If (LLessEqual (\C00D (), 0x03)) { C38D (0x02, 0x50) } Else { If (LGreater (DerefOf (Index (C389, 0x00)), C38F (C380, 0x00))) { C38D (0x02, 0x50) } } } Method (_OFF, 0, NotSerialized) { C38E (0x02, 0x28) } } PowerResource (C397, 0x00, 0x0000) { Method (_STA, 0, NotSerialized) { Return (C38C (0x04, 0x28)) } Method (_ON, 0, NotSerialized) { If (LLessEqual (\C00D (), 0x03)) { C38D (0x04, 0x28) } Else { If (LGreater (DerefOf (Index (C389, 0x00)), C38F (C37F, 0x00))) { C38D (0x04, 0x28) } } } Method (_OFF, 0, NotSerialized) { C38E (0x04, 0x0A) } } PowerResource (C398, 0x00, 0x0000) { Method (_STA, 0, NotSerialized) { Return (C38C (0x08, 0x0A)) } Method (_ON, 0, NotSerialized) { If (LLessEqual (\C00D (), 0x03)) { C38D (0x08, 0x0A) } Else { If (LGreater (DerefOf (Index (C389, 0x00)), C38F (C37E, 0x00))) { C38D (0x08, 0x0A) } } } Method (_OFF, 0, NotSerialized) { C38E (0x08, 0x00) } } } |
4. Neu kompilieren: iasl -sa
dsdt.asl (Die 4
bereits im Original enthaltenen Warnungen habe ich fürs Erste ignoriert)
5. Ins initramfs-tools Verzeichnis kopieren: sudo cp dsdt.aml /etc/initramfs-tools/DSDT.aml
6. Und intramfs updaten: sudo update-initramfs -u
7. Reboot
Wer Ambitionen hat weitere Änderungen am DSDT vorzunehmen sollte sich mal den Thread im Notebook Hardware Control Forum zu Gemüte führen.
4.
Standby, Ruhezustand
Funktioniert noch nicht so wie es soll.
Wenn das fglrx Modul entladen und gdm beendet ist, dann funktioniert
auch das eingebaute hibernate sowie uswsusp(falls installiert).
Angeblich liegts am Kernelmodul zum Treiber, welches in gutsy enthalten
ist. Diese
Lösung dazu beinhaltet aber auch das Neukompilieren des
Kernels, was ich nicht probiert habe.
Alternativ kann man den freien radeonhd Treiber benutzen (Siehe 1. grafische Oberfläche). Dieser stellt sich Ruhezustand und Standby nicht mehr in den Weg. Praktisch funktioniert bei mir nur der Standby problemlos. Nach dem Aufwachen aus dem Ruhezustand funktioniert das ACPI nicht mehr korrekt. Ich kann also z.B. die aktuelle Prozessortemperatur nicht auslesen, weil mir dauerhaft ein alter und damit eventuell falscher Wert angezeigt wird. Mit dem nicht funktionierenden ACPI nach dem Aufwachen wird der Lüfter nicht mehr gesteuert und bleibt aus! Verwende ich für den Ruhezustand allerdings uswsusp funktioniert dieser tadellos.
5.
spezielle Energiesparmechanismen
6.
knackender Sound bei Bässen in mp3s (gelöst)
Ich schätze
das liegt daran das die Codecs mit 64 Bit Kernel nicht einwandfrei
laufen. Möglicherweise lags auch am Titel. Das werde ich nochmal prüfen.
Dies
tritt nur auf, wenn die PCM Lautstärke zu hoch eingestellt ist. Es
klingt dann übersteuert. Also den PCM Laustärkeregler nicht zu hoch
einstellen (75% sind ok) und dann über die normale Laustärke regeln.
Hier fehlt wohl die obere Grenze, die im Windowstreiber eingebaut ist.
Wer es denn unbedingt braucht sollte folgendes bei diesem Notebook beachten.
1. Lüfter zu laut
2. Fiependes Geräusch
3. Treiber
1. Lüfter
zu laut
Was ich dagegen Grundsätzlich mache steht weiter oben im Linux Teil.
Das ganze ist ein wenig schwieriger weil ich dafür cygwin brauche.
Weiterhin wird der Microsoft
sowie Intel
DSDT Compiler benötigt.
1. DSDT extrahieren
unter Cygwin mit installiertem vi:
reg query 'HKLM\HARDWARE\ACPI\DSDT\HP____\SB400\00010000'| \
grep REG_BINARY|sed 's/.*BINARY.//'|xxd -r -ps >
dsdt.orig
2. disassemblen
iasl -d dsdt.orig
3. Änderungen an der dsdt wie unter Linux machen.
4. Neu kompilieren
iasl dsdt.orig
dsdt.aml wird erzeugt
5. Neues DSDT laden mit Microsoft Compiler
asl /loadtable DSDT.aml
Dank Patrik Senn aus der Schweiz geht es nun auch einfacher. Er hat diese Anleitung am Beispiel Vista geschrieben. Für XP sind die Schritte analog dazu.
1) Microsoft ASL Compiler v.3.0.1 installieren
http://www.microsoft.com/whdc/system/pnppwr/powermgmt/default.mspx
2) cmd als Administrator ausführen
(suche "cmd", Rechts-Klick auf "cmd" -> als Administrator ausführen)
3) ins Verzeichnis C:\Programme\Microsoft ASL Compiler v3.0 wechseln
4) DSDT-Programm disassemblieren: asl /tab=DSDT
5) Code editieren, gemäss http://www2.informatik.hu-berlin.de/~jbirkhol/hp6715/index.html#3._L%FCfter_zu_laut
6) Compilieren: asl DSDT.ASL
(Warnings können ignoriert werden)
7) DSDT-Programm laden: asl /loadtable DSDT.AML
8) neu starten, und fertig
Entfernt werden kann die DSDT wieder mit: asl.exe /loadtable -d DSDT.aml . Deshalb sollte die Datei auch aufgehoben werden.
2.
Fiependes Geräusch
Ja,
der DVD Brenner fiept, wenn der Rechner im
Akkumodus nicht belastet ist. Warum dies
so ist kann ich nicht beantworten. Die Älteren unter uns werden den
hohen Ton vermutlich nicht einmal hören. Möglicherweise verursacht
durch einen Treiber(ich habe da Lightscribe im Verdacht aber das muss
ich alles noch prüfen).
Annahme: Es liegt an irgend einem Treiber
im Windows und äußert sich hauptsächlich im Leerlauf. Das Problem tritt
unter Linux
bei mir nicht mehr auf.
Resümee nach 6 Monaten Nutzung bezüglich des fiepens ist für mich, dass es nach dem es einmal weg war nie wieder kam. Allerdings muss ich dazu sagen, wenn ich Videos schaue tritt es manchmal noch kurzzeitig auf. Vielleicht war der Ton nur, weil das Gerät noch neu war da. Genaueres kann ich in ermangelung eines Neugerätes nicht herausfinden.
3. Treiber
Das dürften einige sein, die aber alle bei HP
unter Windows Xp Professional verfübar sind. Vistabesitzer bekommen ja
seit kurzem einen kostenlosen Downgrade auf XP für das zumindest mein
Modell eher ausgelegt ist. Wenns denn unbedingt Vista sein muss dann
sollte da schon ein Dualcore und 2GB Ram im Notebook sein. Es müssen
dann auch kürzere Akkulaufzeiten inkauf genommen werden.