BIOS/Acpi DSDT-Tabelle editieren

Debian auf Notebooks und speziellen Geräten wie eingebetteten Systemen, Routern, Set-Top-Boxen, ...
DaBomb
Beiträge: 28
Registriert: 12.09.2004 21:34:22
Wohnort: Würzburg
Kontaktdaten:

BIOS/Acpi DSDT-Tabelle editieren

Beitrag von DaBomb » 16.12.2004 23:16:41

Hi,

an meinem Notebook klappt es trotz 2.6.9 Kernel nicht den Akkuladezustand auszulesen.
Acpi und Acpid etc sind drauf. APM wird von meinem BIOS nicht unterstützt.
Ok, da Battery und ac_adapter nicht gelesen werden können, wird wohl die DSDT-Tabelle des BIOS einen Schuss haben. Update vom BIOS kann ich nicht machen, da der Acer keine neuere Version anbietet.

Mein Notebook: Acer Extensa 3001 WMLi
Mein OS: Mepis Linux 2004.3 (100%Debian-Kind ;-) )
Habe mir den Intel Interpreter für die DSDT-Tab gezogen, nur leider sind das tausende Zeilen.

Eine Runde googeln konnte mir nicht wirklich helfen. Zwar fand ich ein Tutorial, jedoch beschränkt sich dieses auf ASUS-Notebooks und ist somit für mich unbrauchbar.

Hat von Euch jemand Quellen dazu?
Wäre für jeden Tipp dankbar.

MfG
Only the quickly and early bird catch the worm.

http://www.meprox.de

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 17.12.2004 11:17:52

Bei gentoo gibt es ein gutes HowTo, aber einfach wird es trotzdem nicht :)

http://forums.gentoo.org/viewtopic.php?t=122145

JonnyM
Beiträge: 20
Registriert: 17.06.2003 13:13:54

Beitrag von JonnyM » 24.12.2004 08:55:13

Ich hoffe mal du hast dich nicht allzu sehr in dieses Thema reingesteigert. Dieses Problem hab ich bei meinem Travelmate 4001WMLi auch. Es liegt allerdings nicht an einer fehlerhaften DSDT, sondern an der mangelnden Unterstützung der Smartbattery-Technologie durch Linux. Ich hoffe dass sich das schnell ändert, ansonsten ist Linux auf diesem Notebook mehr oder weniger unbrauchbar.

DaBomb
Beiträge: 28
Registriert: 12.09.2004 21:34:22
Wohnort: Würzburg
Kontaktdaten:

Beitrag von DaBomb » 11.01.2005 16:04:56

Hi,

bezieht sich die Definition von Smartbattery-Technologie auf Akkus mit 2200 mAh?
Oder wie ist das genau zu verstehen?

Ich habe mich bisher mehr auf die DSDT fixiert, jedoch ohne Resultat. :-(
Von daher finde ich Deinen Ansatz sehr interessant.
Only the quickly and early bird catch the worm.

http://www.meprox.de

Benutzeravatar
Natas12
Beiträge: 1751
Registriert: 12.04.2002 20:59:12

Beitrag von Natas12 » 11.01.2005 16:34:37

kann mir einer erklären, was es mit diesen ominösen tabellen auf sich hat?
immer wird darauf hingewiesen, dass diese tabellen "buggy" oder "defekt" seien und daher das powermanagement oder sonst was nicht funktioniert - aber unter windows tut es das doch auch, trotz des "defektes".
was verstehe ich da falsch?
"In den reichen Ländern hat die Freiheit gesiegt - mit all den schrecklichen Folgen, die das für die anderen mit sich bringt und noch bringen wird. Die Demokratie ist auf andere Epochen verschoben." (L. Canfora)

DaBomb
Beiträge: 28
Registriert: 12.09.2004 21:34:22
Wohnort: Würzburg
Kontaktdaten:

Beitrag von DaBomb » 11.01.2005 17:08:17

Hi,

verständlich, dass DSDT einem nicht viel sagt auf Anhieb.

Ich sehe das so und werde es mit einem kleinen Fallbeispiel erklären:

Wenn Du einen Spanischkurs besuchst, der 150€ kostet und 2 Wochen geht, dann kannst Du mittemäßiges Spanisch.

Wenn Du einen Kurs besuchst, der 1000€ kostet und 8 Wochen geht, dann kannst Du gut Spanisch.

Wenn Du mit schlechtem Spanisch in Provinzen gehst, dann verstehst nicht viel. Mit gutem Spanisch schon.

So auch hier: Wenn Du ein finanziel starkes Unternehmen bist, dann kannst Du Deine ACPI-Programme sehr flexibel programmieren.
Wenn Du eine Community mit begrenzten finanziellen MItteln bist, dann kannst du dich nur auf Standard konzentrieren. Die DSDT-Bios-Tabellen sind fast alle fehlerhaft und schlecht vom Coding. Microsoft ist hier sehr flexibel im Vergleich zu Linux, sodass es mit MS geht.
Das Powermanagement unter Linux ist offen gesagt weit hinter dem Windowsstandard. Würde hier für Entwicklung und mehr Programmierer mehr Kohle bereit stehen, dann würde das alles auch unter Linux sauber laufen.

Ich hoffe, dass ich Dir das etwas verständlicher machen konnte.
Only the quickly and early bird catch the worm.

http://www.meprox.de

Benutzeravatar
Natas12
Beiträge: 1751
Registriert: 12.04.2002 20:59:12

Beitrag von Natas12 » 11.01.2005 20:07:58

ok, dass die community nicht so viele ressourcen aufbringen kann, leuchtet mir ein.
ich hoffe, ich habe das so richtig verstanden: die hardwarehersteller haben einen standard fehlerhaft implementiert und dass es MS quasi dennoch gelingt, daraus etwas funktionierendes herzustellen.

aber (etwas naiv gefragt): acpi ist ja ein einsehbarer standard, dessen spezifikation ich mir ja herunterladen kann (sagt zumindest ein kurzer blick auf acpi.info). wo liegt der sinn darin, so etwas als hardwarehersteller zu fördern und gleichzeitig offenbar nur verbuggtes zeuch unter die leute zu bringen?!!!? gnaaaa :-/

thanx!
"In den reichen Ländern hat die Freiheit gesiegt - mit all den schrecklichen Folgen, die das für die anderen mit sich bringt und noch bringen wird. Die Demokratie ist auf andere Epochen verschoben." (L. Canfora)

Benutzeravatar
QT
Beiträge: 1242
Registriert: 22.07.2004 21:08:02
Wohnort: localhost

Beitrag von QT » 11.01.2005 20:24:26

Unter Windows ist es ja IMO nicht M$, die trotz standardinkonformer ACPI Implementierung die Funktionen möglich machen, sondern eben die Hersteller selbst, mit der Software, die idR bei den Laptops beiliegt und auch unter Windows installiert werden muss, um alle Funktionen zu aktivieren. Installier mal ein ganz normales Windows XP auf Deinem Laptop und Du wirst schnell merken, dass damit auch nicht alles geht.....

Ich bin kein Experte bzgl. DSDT allerdings auch ein Linux-User der damit Probleme hatte. So wie ich das verstehe, steht in der DSDT eine Beschreibung der Hardware des Geräts. Für Windows schreibt der Hersteller, da er die HW genau kennt, seine WIndowstreiber entsprechend. Unter Linux gibts es halt _eine_ Implementierung für alle Geräte und das führt zwangsweise (da die Hersteller den Standard nicht 100% folgen) zu Problemen.

Du musst also diese Beschreibungstabelle für Dein Gerät mit einer korrigierten ersetzen. Dies kann man mit Hilfe von HOWTOs, Google, Foren etc auf eigene Faust versuchen aber auch mal auf http://acpi.sf.net/ im DSDT Repository nach einer passenden DSDT fürs eigene Laptop suchen. Dabei muss man allerdings aufpassen, dass man wirklch die richtige findet. Hersteller und Modell reichen da nicht. Die DSDT unterscheidet sich auch zB bei verschiedenem Hauptspeicher (RAM) Ausbau. Ich konnte gottseidank damals in diesem Repository gleich eine funktionierende DSDT für mein Laptop finden und dadurch die meisten Probleme beheben. Ein paar (zB ACPI S3 resume) gibt es aber nachwievor....

JonnyM
Beiträge: 20
Registriert: 17.06.2003 13:13:54

Beitrag von JonnyM » 15.01.2005 11:05:32

DaBomb hat geschrieben:Hi,

bezieht sich die Definition von Smartbattery-Technologie auf Akkus mit 2200 mAh?
Oder wie ist das genau zu verstehen?

Ich habe mich bisher mehr auf die DSDT fixiert, jedoch ohne Resultat. :-(

Von daher finde ich Deinen Ansatz sehr interessant.
Das bezieht sich nicht auf den einen Akku. SmartBattery ist eine intelligente Batterie.

Zur DSDT: bei den Acer-Modellen Travelmate 4000 und Extensa 3000 (beide baugleich) ist die DSDT vollkommen in Ordnung. Daher braucht man sich um die nicht mehr zu kümmern.

Hab zum Auslesen des Batteriestatus was gefunden:
http://www.squirrel.nl/people/jvromans/ ... ttery.html
Hab ich selber noch nicht ausprobiert, aber immerhin wird an einer Lösung gearbeitet.

EDIT:
Hab gerade einen Schnellversuch unter SuSE 9.2 gestartet: ES KLAPPT!

Den SBS ACPI Driver gibts hier:
http://shayol.bartol.udel.edu/~rhdt/dow ... 114.tar.gz
Infos:
http://sourceforge.net/mailarchive/foru ... um_id=6102

Das Smartbattery-Tool:
http://www.poupinou.org/acpi/smartbatt/
Dort gibt es auch den Kernel-Patch damit der SBS ACPI Driver beim Laden keinen Fehler ausspuckt.

Vorgehensweise:
- Kernel patchen und neu übersetzen
- SBS ACPI Driver übersetzen und als Modul laden
Das wars auch schon. Danach ist unter /proc/acpi/battery/ auch endlich ein Eintrag. Der Batteriestatus lässt sich auslesen.

EDIT 2:
Werd demnächst das ganze unter Ubuntu und Knoppix ausprobieren, mit Debian dürfte alles genauso laufen.

DaBomb
Beiträge: 28
Registriert: 12.09.2004 21:34:22
Wohnort: Würzburg
Kontaktdaten:

Beitrag von DaBomb » 17.01.2005 12:13:42

Hi,

habe davon auch schon gelesen und getestet.
Ich habe auf meinem Notebook neben Mepis z. Zt auch SuSE 9.2 mit Kernel 2.6.8 und 2.6.10
Bei beiden hat es nicht geklappt das i2c-acpi-ec Modul zu laden.
Bei 2.6.8 kommt ne Meldung, dass das Modul nicht von SuSE unterstützt wird, bei 2.6.10 kommt, dass keine Temperaturanzeige vorhanden ist, warum auch immer.

Könntest Du mal näher auf Deins eingehen?
Welchen Kernel hast Du?
Ich habe in der Kernel-Konfig also /usr/src/linux/.konfig BATTERY und AC auf n gestellt, brachte leider nix.
Oder seh ich jetzt den Wald vor lauter Bäumen nimmer?
Only the quickly and early bird catch the worm.

http://www.meprox.de

JonnyM
Beiträge: 20
Registriert: 17.06.2003 13:13:54

Beitrag von JonnyM » 17.01.2005 14:44:49

DaBomb hat geschrieben:Hi,

habe davon auch schon gelesen und getestet.
Ich habe auf meinem Notebook neben Mepis z. Zt auch SuSE 9.2 mit Kernel 2.6.8 und 2.6.10
Bei beiden hat es nicht geklappt das i2c-acpi-ec Modul zu laden.
Bei 2.6.8 kommt ne Meldung, dass das Modul nicht von SuSE unterstützt wird, bei 2.6.10 kommt, dass keine Temperaturanzeige vorhanden ist, warum auch immer.

Könntest Du mal näher auf Deins eingehen?
Welchen Kernel hast Du?
Ich habe in der Kernel-Konfig also /usr/src/linux/.konfig BATTERY und AC auf n gestellt, brachte leider nix.
Oder seh ich jetzt den Wald vor lauter Bäumen nimmer?
Ich hab den SuSE eigenen Kernel genommen, den ACPI-EC Patch eingespielt (wird nur eine Datei verändert) und ansonsten alles so belassen. Danach neu kompiliert. Per Hand hab ich dann das Battery-Modul entladen (rmmod battery) und die beiden Modules geladen (i2c-apci-ec und acpi-sbs). Jetzt war /proc/acpi/battery nicht mehr leer. Der Batteriestatus kann ausgelesen werden. Fehlermeldungen dass das Modul nicht unterstützt wird, hab ich keine bekommen.

Ich teste jetzt aber nicht mehr mit SuSE weiter, ich bin grad dabei alles auf Gentoo umzustellen.

DaBomb
Beiträge: 28
Registriert: 12.09.2004 21:34:22
Wohnort: Würzburg
Kontaktdaten:

Beitrag von DaBomb » 17.01.2005 15:18:18

Ok, vielleicht scheitert es bei mir an einer Kleinigkeit:
Kernel unter SusE: 2.6.8-24.10-default

Als ACPI-EC Patch hast Du welchen genommen? Den acpi-ec-2.6.10.diff oder?
Den habe ich so gepatched:

acer:/usr/src/linux # patch -p1 < /usr/src/linux/smartbatt/acpi-ec-2.6.10.diff
patching file drivers/acpi/ec.c
Hunk #1 succeeded at 135 (offset -2 lines).
Hunk #2 succeeded at 185 (offset -2 lines).
Hunk #3 succeeded at 237 (offset -2 lines).


Ging ja auch scheinbar durch.

Danach habe ich den Treiber in dem Paket geholt:
acpi_sbs-20040114
und ich habe auch den probiert
acpi_sbs-20050116

Bei beiden ging´s mit "make" und "make install" sauber durch.

Jedoch habe ich bei beiden wenn ich (Battery ist nicht geladen!)
modprobe i2c-acpi-ec
eintippe, die Fehlermeldung

FATAL: Error inserting i2c_acpi_ec (/lib/modules/2.6.8-24.10-default/i2c/i2c-acpi-ec.ko): Unknown symbol in module, or unknown parameter (see dmesg)


dmesg sagt:

module i2c_acpi_ec unsupported by SUSE/Novell, tainting kernel.
i2c_acpi_ec: Unknown symbol acpi_ec_write
i2c_acpi_ec: Unknown symbol acpi_ec_read


Jetzt weis ich gerade nicht mehr weiter.
Welchen ACPI-EC-Patch hast Du eingespielt und welches Treibermodul hast Du genommen?

Danke schonmal.
Only the quickly and early bird catch the worm.

http://www.meprox.de

DaBomb
Beiträge: 28
Registriert: 12.09.2004 21:34:22
Wohnort: Würzburg
Kontaktdaten:

Beitrag von DaBomb » 17.01.2005 17:50:28

Ok, es geht! :P

Habe eben den Kernel neu übersetzt und jetzt funzt es!!!!!
FAT RESPECT!!!

Vielen Dank JonnyM !!! :D
Only the quickly and early bird catch the worm.

http://www.meprox.de

JonnyM
Beiträge: 20
Registriert: 17.06.2003 13:13:54

Beitrag von JonnyM » 18.01.2005 09:37:19

DaBomb hat geschrieben:Ok, es geht! :P

Habe eben den Kernel neu übersetzt und jetzt funzt es!!!!!
FAT RESPECT!!!

Vielen Dank JonnyM !!! :D
Bitteschön!

DaBomb
Beiträge: 28
Registriert: 12.09.2004 21:34:22
Wohnort: Würzburg
Kontaktdaten:

Beitrag von DaBomb » 18.01.2005 12:41:14

Eine Frage habe ich.
Wird die Batterieanzeige bei mir mit kpowersave, bzw. klaptop ausgelesen?
Bei 9.2 rauch kpowersave nach dem Start gleich ab. ??!?!?

Fällt dir dazu was ein?

wacpi kann die Batterie aulsesen, hat allerdings keine Batterieanzeige in der Kontrollleiste.

wie hast Du das gelöst?
Only the quickly and early bird catch the worm.

http://www.meprox.de

JonnyM
Beiträge: 20
Registriert: 17.06.2003 13:13:54

Beitrag von JonnyM » 18.01.2005 12:59:33

DaBomb hat geschrieben:Eine Frage habe ich.
Wird die Batterieanzeige bei mir mit kpowersave, bzw. klaptop ausgelesen?
Bei 9.2 rauch kpowersave nach dem Start gleich ab. ??!?!?

Fällt dir dazu was ein?

wacpi kann die Batterie aulsesen, hat allerdings keine Batterieanzeige in der Kontrollleiste.

wie hast Du das gelöst?
Das stimmt, kpowersave hat anscheinend Probleme. Allerding hab ich mich damit nicht weiter beschäftigt, ich hab SuSE nicht mehr drauf, bin grad am Gentoo installieren.

DaBomb
Beiträge: 28
Registriert: 12.09.2004 21:34:22
Wohnort: Würzburg
Kontaktdaten:

Beitrag von DaBomb » 18.01.2005 19:04:47

:lol: kann ich verstehen.
SuSE war auch nur mein Versuchsobjekt.
Habs jetzt auch in Mepis umgesetzt und scheinbar hat Klaptop auch seine Problemchen mit der Batterieanzeige, aber zum Glück gibts ja gkrellm, denn gkrellm packt das locker! :D
Super!

Dazu noch ein schöner KDE 3.3.2 und dann rockt das !!!!!! :twisted:
Only the quickly and early bird catch the worm.

http://www.meprox.de

DaBomb
Beiträge: 28
Registriert: 12.09.2004 21:34:22
Wohnort: Würzburg
Kontaktdaten:

Beitrag von DaBomb » 03.02.2005 18:45:46

So, um das lange Werk gut zu machen:

Hier mit neu gepflegter Anleitung zum Erfolg:

http://www.flashlightz-forum.de/post-10845.html#10845
Only the quickly and early bird catch the worm.

http://www.meprox.de

mafrae
Beiträge: 2
Registriert: 16.12.2004 00:26:43
Wohnort: rankweil
Kontaktdaten:

Hallo Leute, .... hätte eine einfachere Lösung

Beitrag von mafrae » 19.03.2005 13:31:23

Acer Travelmate 661 LCI
Weiss ja nicht ob das Modell abhängig ist aber ich hab den Batterystatus-Fehler dadurch gelöst, in dem ich den ACPI-Patch von http://acpi.sourceforge.net/ im Kernel eingabut habe.

Nur so gepatcht wie angegeben war:

Patch the kernel
$ cd <path to unpacked linux sources> (e.g. /usr/src/linux)
$ bunzip2 -c <path to acpi-patch>/acpi-<version>.diff.bz2 | patch -p1

und danach normal kompiliert. Bei den Punkt General Setup - > ACPI Support musst natürlich [Y] stehen. Support fix im Kernel einbiden und die anderen Sachen als Modul (battery, fan, ...).
Das wars schon. Nun wäre ACPI Unterstützung auf dem neusten Stand (der Kernel hinkt da anscheinend immer hinter her).

Nur noch im Gnome-Panel die Statusanzeige für Batterieanzeige hinzufügen, das wars (bei mir) :)

HABE FERTIG

Grüße
Markus

JonnyM
Beiträge: 20
Registriert: 17.06.2003 13:13:54

Re: Hallo Leute, .... hätte eine einfachere Lösung

Beitrag von JonnyM » 20.03.2005 12:21:45

mafrae hat geschrieben:Acer Travelmate 661 LCI
Weiss ja nicht ob das Modell abhängig ist aber ich hab den Batterystatus-Fehler dadurch gelöst, in dem ich den ACPI-Patch von http://acpi.sourceforge.net/ im Kernel eingabut habe.

Nur so gepatcht wie angegeben war:

Patch the kernel
$ cd <path to unpacked linux sources> (e.g. /usr/src/linux)
$ bunzip2 -c <path to acpi-patch>/acpi-<version>.diff.bz2 | patch -p1

und danach normal kompiliert. Bei den Punkt General Setup - > ACPI Support musst natürlich [Y] stehen. Support fix im Kernel einbiden und die anderen Sachen als Modul (battery, fan, ...).
Das wars schon. Nun wäre ACPI Unterstützung auf dem neusten Stand (der Kernel hinkt da anscheinend immer hinter her).

Nur noch im Gnome-Panel die Statusanzeige für Batterieanzeige hinzufügen, das wars (bei mir) :)

HABE FERTIG

Grüße
Markus
Der ACPI-Patch reicht in dem Fall nicht, es liegt beim TM4000 an der Batterie, die wird nicht wie üblich ausgelesen, sondern per SMBus. Und die Unterstützung dazu fehlt im Kernel noch.

DaBomb
Beiträge: 28
Registriert: 12.09.2004 21:34:22
Wohnort: Würzburg
Kontaktdaten:

Beitrag von DaBomb » 17.04.2005 17:00:52

Hi, ist kein Problem.

Tutorial dafür gibt es hier:
Ausser Scripte, WLAN Tutorials für Linux, einer Linksammlung findet Ihr seit neuesten das Tutorial von mir.
Ihr könnt dieses Tutorial unter http://www.sligger.de --> Tutorials --> Linux
finden.
Only the quickly and early bird catch the worm.

http://www.meprox.de

scale
Beiträge: 4
Registriert: 08.11.2004 16:15:40
Kontaktdaten:

Beitrag von scale » 05.05.2005 19:51:55

hi, würde das thema nochmal gerne aufleben lassen :)
ich hab auch diesen sbs driver installiert. kernel patch draugespielt, neu übersetzt, i2c aktiviert und danach gebootet und den treiber kompiliert und installiert. auch beim modproben von beiden modulen erscheint kein fehler, auch nicht bei dmesg.
trotzdem bleibt mein /proc/acpi/battery einfach leer!
ich hab auch ac und battery ausm kernel rausgenommen, hat nicht geholfen.

vielleicht weiss ja einer von euch weiter, bin echt am verzweifeln! :cry:

DaBomb
Beiträge: 28
Registriert: 12.09.2004 21:34:22
Wohnort: Würzburg
Kontaktdaten:

Beitrag von DaBomb » 09.05.2005 15:27:50

Hi,

welchen Kernel nutzt Du?
Versuch mal die DSDT-Tabelle zu editieren. Folge dazu einfach den Anweisungen aus meinem letzten Posting, dann sollte es gehen.

Welches Notebook hast Du? Ich habe mir ein neues initrd erzeugt und damit ging es dann aller erste Sahne.
Only the quickly and early bird catch the worm.

http://www.meprox.de

kent
Beiträge: 2
Registriert: 02.06.2005 23:48:18

Beitrag von kent » 02.06.2005 23:55:57

Hallo,

ich wollte auch mal probieren, den Batteriestand von meinem Acer Extensa 3001 auslesbar zu machen. Allerdings bin ich schon beim compilieren des iasl compilers gescheitert. Wenn ich make eingebe kommen folgende Fehler:

root@knife:/home/temp/acpica-unix-20050513/compiler# make
cc -Wall -O2 -Wstrict-prototypes -D_LINUX -D_ACPI_ASL_COMPILER -I../include -c -o aslcompilerlex.o aslcompilerlex.c
aslcompiler.l: In function `comment':
aslcompiler.l:847: error: `yytext_ptr' undeclared (first use in this function)
aslcompiler.l:847: error: (Each undeclared identifier is reported only once
aslcompiler.l:847: error: for each function it appears in.)
make: *** [aslcompilerlex.o] Error 1

Was kann da los sein? Kann jemand helfen?

mfg

kent

kent
Beiträge: 2
Registriert: 02.06.2005 23:48:18

Beitrag von kent » 06.06.2005 22:50:43

Hey, das Thema hat echt noch dikussionsbedarf bitte erbarmt euch und helft mir, ich komm doch so nicht weiter. Bitte, bitte.

Antworten