Demo geht jetzt, aber bei python PyDPF.py kommt:
PyDPF.py: cannot connect to X server
das wird doch nicht wirklich nen x-server brauchen?
Demo geht jetzt, aber bei python PyDPF.py kommt:
PyDPF.py: cannot connect to X server
das wird doch nicht wirklich nen x-server brauchen?
Ups, sorry nicht gesehen... Vielen Dank!
Jetzt geht es!
Danke für die Hilfe!
An meiner Dockstar hängt ein Pearl LCD. LCD4linux wird beim booten mitgestartet, so dass CPU etc angezeigt wird.
Jetzt habe ich festgestellt, dass der LCD4linux-Prozess mindestens 12% CPU verbrät. Wenn ich zB ein File auf die dockstar kopiere, geht der Verbrauch sogar auf 30-40%% hoch (dann bleibt für smbd nur noch der Rest...)
wenn ich einmal killall lcd4linux sage und es neu starte mit /etc/init.d/lcd4linux start, ist alles wie gewohnt, unter 2 %.
Ich habe wheezy mit kernel 3.2.0-4 installiert.
Hat jemand eine Idee, woran das liegen könnte?
An meiner Dockstar hängt ein Pearl LCD. LCD4linux wird beim booten mitgestartet, so dass CPU etc angezeigt wird.
Jetzt habe ich festgestellt, dass der LCD4linux-Prozess mindestens 12% CPU verbrät. Wenn ich zB ein File auf die dockstar kopiere, geht der Verbrauch sogar auf 30-40%% hoch (dann bleibt für smbd nur noch der Rest...)wenn ich einmal killall lcd4linux sage und es neu starte mit /etc/init.d/lcd4linux start, ist alles wie gewohnt, unter 2 %.
Ich habe wheezy mit kernel 3.2.0-4 installiert.Hat jemand eine Idee, woran das liegen könnte?
Ich weiß nicht, ob es das gleiche Problem ist, aber bei mir hatte der Timercode von LCD4Linux ebenfalls Probleme.
Hintergrund bei mir, die Dockstar hat kein RTC. Damit startet die Uhr immer mit dem 1.1.1970 und wird erst Sekunden später
per NTP aktualisiert, wenn das Netzwerk online ist. Der Orignalkode von LCD4Linux kommt aber mit einem so langen Zeitsprung
nicht klar. Ich habe dies für mich, wie folgt behoben, den Patch aber nie Upstream für eine Review gesendet.
--- timer.c (Revision 1144)
+++ timer.c (Arbeitskopie)
@@ -152,16 +152,27 @@
/* calculate time difference between the last time the timer has
been processed and the next time it will be processed */
int interval = Timers[timer].interval * number_of_intervals;
+ if(number_of_intervals < 0 || number_of_intervals > 3) {
+ /* convert time difference (in milliseconds) to a "timeval"
+ struct (in seconds and microseconds) */
+ struct timeval tv_interval = {
+ .tv_sec = Timers[timer].interval / 1000,
+ .tv_usec = (Timers[timer].interval % 1000) * 1000
+ };
- /* convert time difference (in milliseconds) to a "timeval"
- struct (in seconds and microseconds) */
- struct timeval tv_interval = {
- .tv_sec = interval / 1000,
- .tv_usec = (interval % 1000) * 1000
- };
+ /* finally, add time difference to the timer's trigger */
+ timeradd(now, &tv_interval, &Timers[timer].when);
+ } else {
+ /* convert time difference (in milliseconds) to a "timeval"
+ struct (in seconds and microseconds) */
+ struct timeval tv_interval = {
+ .tv_sec = interval / 1000,
+ .tv_usec = (interval % 1000) * 1000
+ };
- /* finally, add time difference to the timer's trigger */
- timeradd(&Timers[timer].when, &tv_interval, &Timers[timer].when);
+ /* finally, add time difference to the timer's trigger */
+ timeradd(&Timers[timer].when, &tv_interval, &Timers[timer].when);
+ }
}
@@ -456,6 +467,7 @@
/* if there is a notable difference between "time_difference" and
the next upcoming timer's interval, assume clock skew */
if (time_difference > (Timers[next_timer].interval + CLOCK_SKEW_DETECT_TIME_IN_MS)) {
+
/* extract clock skew from "time_difference" by eliminating
the timer's triggering interval */
int skew = time_difference - Timers[next_timer].interval;
@@ -465,10 +477,10 @@
/* convert clock skew from milliseconds to "timeval"
structure */
- struct timeval clock_skew = {
- .tv_sec = skew / 1000,
- .tv_usec = (skew % 1000) * 1000
- };
+ //struct timeval clock_skew = {
+ //.tv_sec = skew / 1000,
+ //.tv_usec = (skew % 1000) * 1000
+ //};
/* process all timers */
for (timer = 0; timer < nTimers; timer++) {
@@ -477,9 +489,21 @@
continue;
/* correct timer's time stamp by clock skew */
- timersub(&Timers[timer].when, &clock_skew, &Timers[timer].when);
+ //timersub(&Timers[timer].when, &clock_skew, &Timers[timer].when);
+
+ /* convert time difference (in milliseconds) to a "timeval"
+ struct (in seconds and microseconds) */
+ struct timeval tv_interval = {
+ .tv_sec = Timers[timer].interval / 1000,
+ .tv_usec = (Timers[timer].interval % 1000) * 1000
+ };
+
+ /* finally, add time difference to the timer's trigger */
+ timeradd(&now, &tv_interval, &Timers[timer].when);
+
}
+
/* finally, zero "diff" so the next update is triggered
immediately */
timerclear(&diff);
Display More
Don’t have an account yet? Register yourself now and be a part of our community!