RealTime Kernel & ACPI

Alles rund um die Systemverwaltung, die Administration und Konfiguration Eures Linuxsystems

Moderator: Moderatoren

Antworten
SchodMC
Newbie
Newbie
Beiträge: 26
Registriert: 22. Jan 2004, 14:19

RealTime Kernel & ACPI

Beitrag von SchodMC » 22. Nov 2005, 23:48

Hi,

ich hab den RealTime Kernel installiert wie im JackLab-OpenSuSE Project besrieben. Hat soweit ganz gut funktioniert, nur läuft nun ACPI nicht mehr was bei meinem Laptop zu einem dauernd laufenden Lüfter führt - und das nervt. Wie kann ich ACPI mit dem Kernel verwenden?

Oder wie kann ich mit dem normalen Kernel Jack zum Laufen bewegen?

Werbung:
Audio Pro Linux

Beitrag von Audio Pro Linux » 23. Nov 2005, 02:20

Schau mal mit make menuconfig unter:

Power management options (ACPI, APM) --->
[*] Power Management support
ACPI (Advanced Configuration and Power Interface) Support --->
[*] ACPI Support[/code]

Das müsste eigentlich nach dem clonen der SuSE Default Config so ausehen und ACPI laufen. Wenn nicht, mehr Infos, welcher Chip auf deinem Laptop etc, was für Kernelmeldungen....

Jack ohne rt-lsm kriegt man nur zum laufen wenn man sich grafisch als Root einloggt. Ohne rt-patches wird die Audio Echtzeitleistung grausig sein.

SchodMC
Newbie
Newbie
Beiträge: 26
Registriert: 22. Jan 2004, 14:19

Beitrag von SchodMC » 23. Nov 2005, 15:34

Ich hab ein Acer Aspire 1500 Noteboot. Mit dem standard-Kernel von OpenSuSE 10.0 ist das ganze kein Problem. Mit dem RealTime Kernel läuft ACPI irgendwie nicht richtig. Es wird beim starten auch "failed" ausgegeben.

Folgendes kommt, wenn ich "rcacpi restart" eingeb:

Shutting down acpid done
acpid: loading ACPI modules ( ) failed
Starting acpid done


Wenn ich dann dmesg eingeben, ist folgendes zu sehen:

ACPI: AC Adapter [AC] (on-line)
ACPI: Battery Slot [BAT0] (battery absent)
ACPI: Power Button (FF) [PWRF]
ACPI: Lid Switch [LID]
ACPI: Sleep Button (CM) [SLPB]
processor: Unknown symbol tsc_c3_compensate
processor: Unknown symbol tsc_c3_compensate
thermal: Unknown symbol acpi_processor_set_thermal_limit
eth0: no IPv6 routers present
processor: Unknown symbol tsc_c3_compensate
speedstep_centrino: Unknown symbol acpi_processor_notify_smm
speedstep_centrino: Unknown symbol acpi_processor_unregister_performance
speedstep_centrino: Unknown symbol acpi_processor_register_performance
processor: Unknown symbol tsc_c3_compensate
powernow_k8: Unknown symbol acpi_processor_notify_smm
powernow_k8: Unknown symbol acpi_processor_unregister_performance
powernow_k8: Unknown symbol acpi_processor_register_performance
processor: Unknown symbol tsc_c3_compensate
powernow_k7: Unknown symbol acpi_processor_notify_smm
powernow_k7: Unknown symbol acpi_processor_unregister_performance
powernow_k7: Unknown symbol acpi_processor_register_performance
processor: Unknown symbol tsc_c3_compensate
acpi_cpufreq: Unknown symbol acpi_processor_notify_smm
acpi_cpufreq: Unknown symbol acpi_processor_unregister_performance
acpi_cpufreq: Unknown symbol acpi_processor_register_performance
SFW2-INext-DROP-DEFLT IN=eth0 OUT= MAC= SRC=10.0.11.34 DST=224.0.0.251 LEN=106 TOS=0x00 PREC=0x00 TTL=255 ID=6 DF PROTO=UDP SPT=5353 DPT=5353 LEN=86
SFW2-INext-DROP-DEFLT IN=eth0 OUT= MAC= SRC=10.0.11.34 DST=224.0.0.251 LEN=106 TOS=0x00 PREC=0x00 TTL=255 ID=7 DF PROTO=UDP SPT=5353 DPT=5353 LEN=86
SFW2-INext-DROP-DEFLT IN=eth0 OUT= MAC= SRC=10.0.11.34 DST=224.0.0.251 LEN=106 TOS=0x00 PREC=0x00 TTL=255 ID=8 DF PROTO=UDP SPT=5353 DPT=5353 LEN=86
processor: Unknown symbol tsc_c3_compensate
processor: Unknown symbol tsc_c3_compensate
thermal: Unknown symbol acpi_processor_set_thermal_limit
SFW2-INext-DROP-DEFLT IN=eth0 OUT= MAC= SRC=10.0.11.34 DST=224.0.0.251 LEN=106 TOS=0x00 PREC=0x00 TTL=255 ID=9 DF PROTO=UDP SPT=5353 DPT=5353 LEN=86
processor: Unknown symbol tsc_c3_compensate
processor: Unknown symbol tsc_c3_compensate
thermal: Unknown symbol acpi_processor_set_thermal_limit

irgendwie seltsam...

Audio Pro Linux

Beitrag von Audio Pro Linux » 23. Nov 2005, 19:54

Ich verschieb den Thread mal nach Kernel Hacking, ich glaub da isser besser aufgehoben....

Benutzeravatar
Gimpel
Guru
Guru
Beiträge: 1983
Registriert: 11. Feb 2004, 13:58
Wohnort: Mjunik .... "no a hoibe, resi!"
Kontaktdaten:

Beitrag von Gimpel » 24. Nov 2005, 10:55

irgendwie scheint etwas mit den acpi modulen nicht zu stimmen.

mach mal beim laufenden rt-kernel ein

Code: Alles auswählen

depmod -a
und dann ein rcacpi restart
Bild on AMD Athlon64 X2 5600+|64bit|6GB DDR2 800MHz|nVidia GF 8500GT|2.6.29-rc1-moo1|BTRFS|KDE-4.2 SVN trunk + Compiz++|M-Audio Audiophile 2496
----
Bild

SchodMC
Newbie
Newbie
Beiträge: 26
Registriert: 22. Jan 2004, 14:19

Beitrag von SchodMC » 25. Nov 2005, 10:02

Hat nichts geholfen. Aber ich hab bei meinen Recherchen im Netz heraus gefunden, dass es wohl mit dem rt13 path ein problem gab, dass eben die Funktion "tsc_c3_compensate" rausgeschmissen wurde. Mit dem rt14 Patch ist die funktion zwar wieder da, aber wohl nicht sauber exportiert oder so, keine Ahnung. Auf jeden Fall funktioniert die "thermal-control" sonst nicht - genau das problem das ich hab.

Werd heute Abend mal probieren, den Teil vom ACPI direkt in den Kernel einzulinken. Mal schaun was dann passiert.

SchodMC
Newbie
Newbie
Beiträge: 26
Registriert: 22. Jan 2004, 14:19

Beitrag von SchodMC » 26. Nov 2005, 00:05

Hab's hinbekommen (zumindest teilweise). Ich hab den betroffenen Teil direkt in den Kernel kompiliert. Jetzt bringt zwar ACPI immer noch "failed" beim starten - der Lüfter läuft aber nicht non-stop auf voller power!

Audio Pro Linux

Beitrag von Audio Pro Linux » 26. Nov 2005, 15:03

SchodMC hat geschrieben:Hab's hinbekommen (zumindest teilweise). Ich hab den betroffenen Teil direkt in den Kernel kompiliert. Jetzt bringt zwar ACPI immer noch "failed" beim starten - der Lüfter läuft aber nicht non-stop auf voller power!
Klasse :)
Bitte schreib mal genau hin was du gemacht hast, damit ich das ins openSUSE Tutorial mit übernehmen kann.

Danke schon mal...

SchodMC
Newbie
Newbie
Beiträge: 26
Registriert: 22. Jan 2004, 14:19

Beitrag von SchodMC » 27. Nov 2005, 22:32

Ganz einfach. Hab in "make menuconfig" in der Option:

Power management options (ACPI, APM) --->
ACPI (Advanced Configuration and Power Interface) Support --->

Die Bereiche:

(*) Fan
(*) Processor
(*) Thermal Zone

alle drei mit dem * versehen - sie also direkt in den Kernel hinein kompiliert. Seit dem tut's. (Waren vorher auf "m"). Wichtig: rt14 vom RealTime Patch - aber das ist ja sowieso der welcher zum Download angeboten wird.

Ob "Fan" auch hinein kompiliert werden muss, weiss ich nicht. Ich hab's halt mal gemacht. Und wie gesagt: der Lüfter verhält sich nun so wie unter'm Standard-Kernel, aber acpid bringt beim Start immer noch ein "failed". Hab aber noch nichts negatives bemerkt. System fährt herunter wenn ich den ausschalter betätige, Monitor off funktioniert auch... keine Ahnung was ihm nicht passt. dmesg zeigt auch nichts hilfreiches an! :?

Ich hoffe, das bringt Dich weiter. Wenn ich sonst irgenwie helfen oder das Projekt unterstützen kann, sag einfach bescheid. ;)

[EDIT] Korrigiere: ausschalten funktioniert nicht. Werd mich evtl. morgen damit nochmal beschäftigen.

SchodMC
Newbie
Newbie
Beiträge: 26
Registriert: 22. Jan 2004, 14:19

Beitrag von SchodMC » 3. Dez 2005, 12:21

Also,

hab die ganzen ACPI-Module nun in den Kernel eingelinkt (also AC Adapter, Battery, Button, Video, Generic Hotkey, Fan, Processor und Thermal Zone). Zwar bringt er beim Starten von acpid immer noch failed, aber das System verhällt sich normal, soweit ich das beurteilen kann. Herunterfahren und ausschalten per Power-Knopf funktioniert, der Lüfter läuft nur wenn notwendig und der Monitor schaltet sich nach einer gewissen Zeit ab.

Ich hab auch die Boot-Nachrichten angeschaut, aber keine Fehlermeldung gefunden die irgendwie logisch erscheint bzgl. des startens von acpid.

Ich hoffe, das hillft DIr weiter.

Freecoffee
Guru
Guru
Beiträge: 1750
Registriert: 29. Sep 2004, 17:00
Wohnort: Bayern

Beitrag von Freecoffee » 5. Dez 2005, 03:30

Folgende Änderung behebt den Fehler wirkungsvoll:
In der Datei /usr/src/linux-2.6.13.4-realtime/arch/i386/kernel/tsc.c folgende Stelle suchen:

Code: Alles auswählen

void tsc_c3_compensate(unsigned long usecs)
{
        u64 cycles = (usecs * tsc_khz)/1000;
        tsc_c3_offset += cycles;
}
Danach fügt man folgenden Code ein:

Code: Alles auswählen

EXPORT_SYMBOL_GPL(tsc_c3_compensate)
Greetz, HB

Antworten

Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 2 Gäste