hal-power-cpufreq refused


 Ralf    28 Mai 2007 : 23:19
 Keine    Das tägliche Einerlei

Fleißig war ich heute,

aber der Reihe nach. Vorhin habe ich gemerkt, dass ich als normaler User mit kpowersave die CPU-Frequenz nicht mehr einstellen kann. Es kam immer die Meldung: CPU-Frequenzverhalten kann nicht gesetzt werden. Und als CPU-Frequenz wurde im Dialog immer Unbekannt angezeigt. Dann bin ich auf die Suche gegangen, als root konnte ich mittels powersave -f oder -A zwischen Leistung und Energiesparen hin und her schalten. Dann habe ich das mit powersave auch als normaler User versucht, es kam die Meldung:
[blockquote]
hal-power-cpufreq refused uid 1000
[/blockquote]Was will mein Linux-System mir sagen? Das Blöde war, die Suche mit Google unter dem Text von oben hat keinen Treffer gebracht, keine Chance. Aber dafür habe ich herausbekommen, dass man unter "/etc/dbus/system.d/hal.conf" Einstellungen vornehmen kann, u.a. auch was ein einzelner Benutzer darf und was nicht. Ich dort meinen User RB eingetragen, aber es half nichts, immer noch diese blöde Meldung von oben. Dann weiter gesucht mit Google, alles was irgendwie mit hal zu tun hatte. Dann habe ich herausgefunden (nach zig Suchen...), man kann noch weitere Einstellungen vornehmen, und zwar unter "/etc/PolicyKit/privilege.d". Und was glaubt Ihr? Genau, neben anderen findet man dort eine Datei namens "hal-power-cpufreq.privilege". Und dort habe ich dann das hier eingetragen (alternativ kann man wohl auch die UID, in meinem Fall also 1000, eintragen):
[blockquote]
Allow=uid:RB
[/blockquote]Und schon geht alles, ich kann nun sowohl mit kpowersave als auch direkt in der Konsole mit powersave die CPU-Frequenz ändern. Das hat mich zwei Stunden meines Lebens gekostet, das muss irgendwann zwischendurch mit einem Update hereingekommen sein, denn früher ging das alles einwandfrei.

Dann habe ich heute noch im PHP-Code vom e107-Plugin Autogallery herumgefummelt. Ich hatte ja gestern die Bilder von meinem Pilsen-Ausflug eingestellt. Beim Betrachten der Bilder ist mir dann aufgefallen, dass als Datum der Uploads immer der Dezember angezeigt wird. Verdammt, ich habe die im Mai hoch geladen und nicht im Dezember, warum nur?! Also bin ich auf Forschungsreise gegangen, zu jedem Bild wird eine XML-Datei mit Metainformationen erzeugt. Bei den Bildern von gestern steht dort auch schön drin "27-Mai-2007", es wird als Datum also Klartext und das im deutschen Format abgelegt. Dann habe ich mir den Code angesehen, es wird nicht das Datum direkt aus der XML-Datei zur Anzeige benutzt, sondern das wird in einen internen Timestamp umgewandelt (das Übliche unter Unix, die vergangenen Sekunden seit dem 01.01.1970, oder so ähnlich). Dabei hatte der Programmierer aber ein Problem, denn wie soll das Klartext-Datum (also Jan, Feb usw.) für die PHP-Routine mktime benutzt werden, die Routine erwartet einen Integer-Wert?! Der Programmierer hat also vorher eine switch-Abfrage eingebaut: Wenn jan (ein strtolower ist schon programmiert...), dann nimm 1; wenn feb, dann nimm 2 usw. Soweit so gut, dumm ist nur, dass die switch-Abfrage mit den englischen Kürzeln der Monate programmiert ist, z.B. may für den Mai. In der XML-Datei steht aber Deutsch, also Mai. Daher wurde in solchen Fällen immer schön der letzte Wert, also 12 für Dezember, genommen... In der Datei "autogalmeta_class.php" habe ich dann die switch-Anweisung auf Deutsch umgebaut und schon stimmt nun die Anzeige. Besserer Programmierstil wäre es, wenn man in der XML-Datei auch zusätzlich den Timestamp ablegt, dann hat man keine Sprach- und Umwandlungsprobleme... Dieser switch ist auch noch in anderen Dateien enthalten ("arcadeplayers_class.php" und "latestcomms_class.php"), das habe ich in dem Zug gleich auch korrigiert. Und wenn ich schon dabei war, dann habe ich auch die Anzeige der Uhrzeit korrigiert: Die Bilder von gestern wurden als 09:41 angezeigt, obwohl die Uhrzeit 21:41 war, es fehlte also das PM. In den PHP-Dateien habe ich also die Parameter im Aufruf von strftime von "%I:%M%p" geändert auf "%H:%M", jetzt klappt auch das.

Ich bin halt immer noch ein begnadeter Debugger und Fehler-Herausfinder, das war schon immer meine Spezialität und bisher habe ich noch jeden Fehler gefunden. Ich klopfe mir gerade selber auf die Schulter wink. Macht es gut,
Ralf