Seite 1 von 1

Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Sonntag 7. Dezember 2008, 13:13
von seife
Hallo,
weiss zufällig jemand, warum die dbox2-Treiber den Autorepeat nicht vom input core machen lassen, sondern das dem Userspace überlassen?
Hat das einen speziellen Grund oder ist das einfach deswegen, weil die Funktion in den alten Kernels noch nicht drin war?

Neutrino kann seit gestern abend jedenfalls damit umgehen (nur mit gepatchtem kernel 2.6 getestet). Wenn das jemand auf 2.4 testen will, ist hier: fp-driver-use-input-core-autorepeat.diff ein Patch, danach muss eigentlich nur dbox2_fp_input gebaut und getauscht werden, beim Starten sollte dann neutrino sowas sagen:

Code: Alles auswählen

[neutrino] setRepeat: delay=333 period=100 use kernel-repeat: yes
Diese Werte für Anfangsverzögerung und Wiederholrate sind übrigens IMHO dann auch angebracht, denn mit den Bisherigen Standardwerten konnte man nur deswegen auskommen, weil die Fernbedienung nicht mehr als ca. 10 Events pro Sekunde geliefert hat...
Nun sind dieselben Werte wie bei der Dreambox passend... komisch ;)

Enigma müsste man sich anschauen, generell kann der Input-Code in den GUIs dadurch aber nur einfacher werden.

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Sonntag 7. Dezember 2008, 13:17
von rhabarber1848
seife hat geschrieben:

Code: Alles auswählen

[neutrino] setRepeat: delay=333 period=100 use kernel-repeat: yes
Hat das zur Folge, dass die Repeat-Werte nur noch per Neustart geändert werden können?

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Sonntag 7. Dezember 2008, 13:24
von seife
Nein, die setRepeat-Funktion macht das nun per ioctl. Siehe http://cvs.tuxbox-cvs.sourceforge.net/l ... 00027.html. Wenn der ioctl fehlschlägt (ungepatchter Treiber), dann wird es wie bisher im userspace gemacht.
Die Idee ist, dass man je nach Hardware eine andere setRepeat nutzen kann (die Dreambox-Treiber machen das z.B. über Files in /proc, keine Ahnung, ob das auch per ioctl geht).

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Sonntag 7. Dezember 2008, 13:33
von GetAway
Funktioniert das nur mit/ab deinem RCInput rework?

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Sonntag 7. Dezember 2008, 14:38
von seife
Das funktioniert nur mit Neutrino seit dem erwähnten Commit von gestern abend (rcinput.cpp v1.158 oder neuer)

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Sonntag 7. Dezember 2008, 20:55
von rhabarber1848
seife hat geschrieben:Wenn das jemand auf 2.4 testen will, ist hier: fp-driver-use-input-core-autorepeat.diff ein Patch
Kompiliert leider nicht:
dbox2_fp_rc.c: In function `dbox2_fp_rc_init':
dbox2_fp_rc.c:225: error: `button_input_dev' undeclared (first use in this function)
dbox2_fp_rc.c:225: error: (Each undeclared identifier is reported only once
dbox2_fp_rc.c:225: error: for each function it appears in.)

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Sonntag 7. Dezember 2008, 21:22
von seife
Ja, klar. Ersetze bitte "button_input_dev" durch "rc_input_dev" (so wie in der Zeile drüber mit set_bit für EV_KEY). Ich update auch den patch mal noch.

Edit: gefixter patch ist im upload, diesmal auch kompiliergetestet.

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Montag 8. Dezember 2008, 09:52
von GetAway
Bei mir kommt das

Code: Alles auswählen

[neutrino] can not use input repeat on fd_rc[0]: 22 (Invalid argument)
[neutrino] setRepeat: delay=150 period=125 use kernel-repeat: no

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Montag 8. Dezember 2008, 10:02
von seife
Ok, dann ist das bei 2.4 irgendwie anders, das muss ich dann doch mal selbst ausprobieren.

Immer diese antiken Kernel... ;)

Edit: Tatsächlich, im kernel 2.4 gibt es diesen ioctl. nicht, da muss ein entsprechendes input event generiert werden, das die Autorepeat-Einstellungen steuert.
Das schau ich mir später mal an.

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Montag 8. Dezember 2008, 11:45
von Tommy
was spricht denn eigentlich (ganz allgemein) für die weitere Nutzung des 2.4 Kernels? (mal abgesehen von den Schwierigkeiten die die "dunkle Seite" hätte)

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Montag 8. Dezember 2008, 11:47
von rhabarber1848
Tommy hat geschrieben:was spricht denn eigentlich (ganz allgemein) für die weitere Nutzung des 2.4 Kernels?
Afair braucht Kernel 2.4 weniger Platz im Flash, außerdem funktioniert IDE mit Kernel 2.6 atm nicht.

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Montag 8. Dezember 2008, 12:26
von Tommy
rhabarber1848 hat geschrieben:
Tommy hat geschrieben:was spricht denn eigentlich (ganz allgemein) für die weitere Nutzung des 2.4 Kernels?
Afair braucht Kernel 2.4 weniger Platz im Flash, außerdem funktioniert IDE mit Kernel 2.6 atm nicht.
Das IDE hatte ich selbst schon am laufen - dann muß es neuerdings erst "kaputtgegangen" sein.

Weniger Platz heist keine Games (o.ä. Plugins) und keine 2. GUI? Plugins könnte man auf SD oder HDD auslagern.

Ist hier aber OT - Allerdings würde ein separater Thread dafür wieder zu hitzigen Diskussionen führen.

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Montag 8. Dezember 2008, 13:05
von seife
neutrino-make-input-core-backwards-compatible.diff
Damit sollte es auch mit dem 2.4er gehen.

Wenn das gepatchte modul geladen ist:

Code: Alles auswählen

[neutrino] setRepeat: delay=250 period=50 use kernel-repeat: yes
wenn nicht:

Code: Alles auswählen

[neutrino] setRepeat: delay=250 period=50 use kernel-repeat: no
BTW: der grösste Vorteil vom Kernel 2.6 ist, dass er ordentlich dokumentiert ist. Finde mal jemand, der noch weiss, wie man im Kernel 2.4 die Widerholrate auf einem evdev einstellt. Ich habe jedenfalls eine ganze Weile auf den input.c-Code gestarrt (und wenn ich was mit 2.6 mache, dann kann ich das meinem Chef als "Weiterbildung" verkaufen, bei 2.4 wäre das höchstens "Rückbildung" ;))

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Montag 8. Dezember 2008, 17:24
von rhabarber1848
rhabarber1848 hat geschrieben:Afair braucht Kernel 2.4 weniger Platz im Flash
Testweise kompiliert: make flash-neutrino-squashfs-all

Image ist glibc ohne besondere cdk/configure-Optionen, mit cifs.[ko|o] und ohne customization.

root-neutrino.squashfs (Kernel 2.4) ist 4599808 Byte gross
root-neutrino.squashfs (Kernel 2.6) ist 5021696 Byte gross
ein Unterschied von 421888 Byte (0,40 MB).

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Montag 8. Dezember 2008, 17:36
von Tommy
Hat denn jemand den 2.6er schon auf Größe optimiert? Kann da vllt noch was raus? Kann man große Module nachladbar machen? Z.B. IDE oder die Filesystem Module nur nach Bedarf ins JFFS installieren statt pauschal mit auszuliefern.

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Montag 8. Dezember 2008, 23:36
von GetAway

Code: Alles auswählen

[neutrino] setRepeat: delay=150 period=125 use kernel-repeat: yes
Der Patch funktioniert. Allerdings möchte ich behaupten, das er sich negativ auswirkt.
1.Beim Scrollen durch die Channellist bzw. durch Haupmenü, stockt der Balken im
Vergleich zur ungepatchten dbox2_fp_input kurz. So nach jedem 5-6 repeat.
2. Der Standby-Helligkeitsregler führt nur noch 1er Schritte aus. :(
3. Jetzt haben die Hoch-/Runtertasten an der Box eine Repeatfunktion, allerdings
im 3-Sekunden-Rhythmus

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Mittwoch 17. Dezember 2008, 23:21
von GetAway
Mit dem aktuellen CVS hat sich das Verhalten beim Benutzen der gepatchten
dbox2_fb_input.o etwas geändert.

Statt zu stocken, wird zwischendurch ein Sprung um 5-10 Schritte durchgeführt.
Der Standby-Helligkeitsregler führt immer noch 1er Schritte aus. Auch dort sind
diese Sprünge zu beobachten.
-> Kernel 2.4 Nokia 500

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Sonntag 4. Januar 2009, 14:40
von mb405
komm ich wohl zu spät ?
der diff ist nimmer da :(

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Sonntag 4. Januar 2009, 14:42
von Striper
Vielleicht deshalb, weil nur negatives Feedback kam bisher. *schulterzuck*

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Sonntag 4. Januar 2009, 14:44
von rhabarber1848

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Sonntag 4. Januar 2009, 14:46
von MTM
Hallo,
ersetze in den URLs http://ulc.tuxbox-cvs.sourceforge.net/ durch http://tuxbox-upload.de/ ;)

MfG,
MTM.

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Sonntag 4. Januar 2009, 14:55
von Striper
Jau. Ganz ehrlich: das sollte am besten ein Admin per Script 1x über das Forum rumpeln lassen. ;)

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Sonntag 4. Januar 2009, 15:52
von mb405
dann sollte man das schaltbar machen ?

Code: Alles auswählen

[neutrino] setRepeat: delay=150 period=150 use kernel-repeat: yes
...
[neutrino] setRepeat: delay=50 period=150 use kernel-repeat: yes
[neutrino] setRepeat: delay=50 period=50 use kernel-repeat: yes
also gehn tuts schon mal

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Sonntag 4. Januar 2009, 18:01
von seife

Code: Alles auswählen

/local/.../neutrino> cvs log src/driver/rcinput.cpp|grep -A3 1.158
revision 1.158
date: 2008-12-06 17:43:31 +0100;  author: seife;  state: Exp;  lines: +43 -3
Add the possibility to use the input layer's autorepeat handling with
drivers that support it.
Allerdings musst du halt die Treiber entsprechend patchen, damit es benutzt wird.

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Verfasst: Sonntag 4. Januar 2009, 20:00
von mb405
klar 1.160 mit patch is eingebaut.
und es rennt.