Keyboard / Fernbedienung Autorepeat durch input core nutzen

Sklaventreiber
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag 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.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag 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?
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag 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).
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag von GetAway »

Funktioniert das nur mit/ab deinem RCInput rework?
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag von seife »

Das funktioniert nur mit Neutrino seit dem erwähnten Commit von gestern abend (rcinput.cpp v1.158 oder neuer)
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag 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.)
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag 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.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag 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
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag 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.
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag 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)
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag 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.
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag 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.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag 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" ;))
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag 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).
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag 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.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag 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
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag 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
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag von mb405 »

komm ich wohl zu spät ?
der diff ist nimmer da :(
Striper
Erleuchteter
Erleuchteter
Beiträge: 625
Registriert: Samstag 8. September 2007, 16:17

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag von Striper »

Vielleicht deshalb, weil nur negatives Feedback kam bisher. *schulterzuck*
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag von rhabarber1848 »

MTM
Foren-Moderator
Beiträge: 944
Registriert: Freitag 21. Januar 2005, 16:18

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag von MTM »

Hallo,
ersetze in den URLs http://ulc.tuxbox-cvs.sourceforge.net/ durch http://tuxbox-upload.de/ ;)

MfG,
MTM.
Striper
Erleuchteter
Erleuchteter
Beiträge: 625
Registriert: Samstag 8. September 2007, 16:17

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag von Striper »

Jau. Ganz ehrlich: das sollte am besten ein Admin per Script 1x über das Forum rumpeln lassen. ;)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag 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
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag 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.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Re: Keyboard / Fernbedienung Autorepeat durch input core nutzen

Beitrag von mb405 »

klar 1.160 mit patch is eingebaut.
und es rennt.