Discussion:
busybox: Tastatur (-treiber) anschliessen?
(zu alt für eine Antwort)
Felix Holdener
2010-03-30 08:36:29 UTC
Permalink
Hallo zusammen

Als Einleitung: Bin neu hier und auch ziemlich unbelesen, was
Linux/busybox betrifft. Also gerne Tipps und Schupps in die richtige
Richtung, meist fehlen mir einfach die richtigen Links oder die
korrekten Stichworte für die eigene Suche.

Idee: An einem NAS bzw. einem MediaPlayer bzw. einem
Router/Printserver, alle laufen mit busybox und haben USB, eine
Tastatur (bzw. einen Eigenbau mit einem Tastaturchip) anschliessen, um
so je 3 digitale Outputs (die Statuslampen an der Tastatur) und viele
digitale Inputs (die Tasten) zu haben. Grund: Ich brauche die
In-/Outputs und die Geräte laufen so oder so, sind eh unterbeschäftigt
und ich möchte nicht zusätzliche CPUs ins LAN nehmen, wenn dies auch
anders geht. Tastatur hätte den Vorteil, mit Standardbauteilen
auszukommen und die USB-Stromversorgung zu nutzen zu können.

Jetzt zu den Problemen: Wie einfach/schwierig ist es, busybox eine
(Standard-) Tastaturtreiber zu verpassen? Wo bekomme ich sowas? Die
Abfrage per SW dürfte dann ja kein Problem darstellen, soweit ich
bisher gelesen habe.

Irgendwelche Anregungen, Tipps, Ideen oder andere Vorschläge, an einem
Gerät mit busybox min. 3 Out- und etwa 8 Inputs zu realisieren?

Danke

Felix
Thomas Richter
2010-03-30 11:41:45 UTC
Permalink
Irgendwelche Anregungen, Tipps, Ideen oder andere Vorschl ge, an einem
Ger t mit busybox min. 3 Out- und etwa 8 Inputs zu realisieren?
http://blog.makezine.com/archive/2007/09/slugterm_a_terminal_for_a.html

mfG Thomas Richter
Felix Holdener
2010-03-30 12:31:19 UTC
Permalink
Post by Thomas Richter
Irgendwelche Anregungen, Tipps, Ideen oder andere Vorschl ge, an einem
Ger t mit busybox min. 3 Out- und etwa 8 Inputs zu realisieren?
http://blog.makezine.com/archive/2007/09/slugterm_a_terminal_for_a.html
Sehr schön. Muss mich da mal durchlesen. Danke für den Link, das
Projekt da entspricht meinen Ideen.

Felix
Henning Paul
2010-03-30 12:00:29 UTC
Permalink
Post by Felix Holdener
Hallo zusammen
Als Einleitung: Bin neu hier und auch ziemlich unbelesen, was
Linux/busybox betrifft. Also gerne Tipps und Schupps in die richtige
Richtung, meist fehlen mir einfach die richtigen Links oder die
korrekten Stichworte für die eigene Suche.
Idee: An einem NAS bzw. einem MediaPlayer bzw. einem
Router/Printserver, alle laufen mit busybox und haben USB, eine
Tastatur (bzw. einen Eigenbau mit einem Tastaturchip) anschliessen, um
so je 3 digitale Outputs (die Statuslampen an der Tastatur) und viele
digitale Inputs (die Tasten) zu haben. Grund: Ich brauche die
In-/Outputs und die Geräte laufen so oder so, sind eh unterbeschäftigt
und ich möchte nicht zusätzliche CPUs ins LAN nehmen, wenn dies auch
anders geht. Tastatur hätte den Vorteil, mit Standardbauteilen
auszukommen und die USB-Stromversorgung zu nutzen zu können.
Jetzt zu den Problemen: Wie einfach/schwierig ist es, busybox eine
(Standard-) Tastaturtreiber zu verpassen?
Busybox hat damit nichts zu tun, der laufende Kernel muss das
unterstützen, d.h. einen USB-HID-Treiber enthalten.

Gruß
Henning
Felix Holdener
2010-03-30 12:28:04 UTC
Permalink
Post by Henning Paul
Busybox hat damit nichts zu tun, der laufende Kernel muss das
unterstützen, d.h. einen USB-HID-Treiber enthalten.
Und das ist nachträglich oder besser gesagt zusätzlich nicht
impelementierbar? Ich habe gelesen, dass Linux die Treiber entweder im
Kernel hat oder dann eben dynamisch (etxern) laden kann.

Felix
Sven Hartge
2010-03-30 14:50:35 UTC
Permalink
Post by Felix Holdener
Post by Henning Paul
Busybox hat damit nichts zu tun, der laufende Kernel muss das
unterstützen, d.h. einen USB-HID-Treiber enthalten.
Und das ist nachträglich oder besser gesagt zusätzlich nicht
impelementierbar? Ich habe gelesen, dass Linux die Treiber entweder im
Kernel hat oder dann eben dynamisch (etxern) laden kann.
Sofern dein Kernel nicht von anno dunnemal oder ein Eigengewächs ist,
ist die Chance recht groß, dass der USB-HID-Kram entweder als Modul
vorhanden oder direkt im Kernel enthalten ist.

Wenn du einen 2.6er Kernel hast, schaue mal nach /sys/bus, ob du dort
"usb" findest und ob dann in /sys/bus/usb/drivers das Verzeichnis
"usbhid" vorhanden ist.


--
Sig lost. Core dumped.
Felix Holdener
2010-03-30 15:38:20 UTC
Permalink
Post by Sven Hartge
Post by Felix Holdener
Post by Henning Paul
Busybox hat damit nichts zu tun, der laufende Kernel muss das
unterstützen, d.h. einen USB-HID-Treiber enthalten.
Und das ist nachträglich oder besser gesagt zusätzlich nicht
impelementierbar? Ich habe gelesen, dass Linux die Treiber entweder im
Kernel hat oder dann eben dynamisch (etxern) laden kann.
Sofern dein Kernel nicht von anno dunnemal oder ein Eigengewächs ist,
ist die Chance recht groß, dass der USB-HID-Kram entweder als Modul
vorhanden oder direkt im Kernel enthalten ist.
Wenn du einen 2.6er Kernel hast, schaue mal nach /sys/bus, ob du dort
"usb" findest und ob dann in /sys/bus/usb/drivers das Verzeichnis
"usbhid" vorhanden ist.
NAS:
Linux version 2.6.12.3
sys/bus/usb/drivers -> hub; usb; usb-storage; usbfs


MediaPlayer:
Linux version 2.6.16.16-88w8xx8
ein Verzeichnis sys/ finde ich da nicht

Auf den PrintServer habe ich grad keinen Zugriff.

Wie geschrieben: Das sind busybox', das sind - wenn ich es recht
verstanden habe - praktisch immer "Eigengewächse".

Felix
Christian Zietz
2010-03-30 15:41:23 UTC
Permalink
Post by Felix Holdener
Wie geschrieben: Das sind busybox', das sind - wenn ich es recht
verstanden habe - praktisch immer "Eigengewächse".
Busybox hat mit dem Kernel nichts zu tun.

Christian
--
Christian Zietz - CHZ-Soft - czietz (at) gmx.net
WWW: http://www.chzsoft.de/
PGP/GnuPG-Key-ID: 0x6DA025CA
Felix Holdener
2010-03-30 15:59:39 UTC
Permalink
Post by Christian Zietz
Post by Felix Holdener
Wie geschrieben: Das sind busybox', das sind - wenn ich es recht
verstanden habe - praktisch immer "Eigengewächse".
Busybox hat mit dem Kernel nichts zu tun.
Ok, da dies nun zum zweiten Mal kommt: Was dann? Ist der Kernel nicht
Bestandteil der Busybox? Wenn nein: Wie verhalten sich Busybox und
Kernel zueinander?

Und was ich noch nicht als klar beantwortet empfinde: Ist ein
Tastaturtreiber also zwingend Bestandteil des Kernels oder kann der
nachgeladen werden?

Merci für die Geduld und sorry, wenn die Fragen etwas laienhaft sind,
ich habe versucht mich da so weit als möglich und nötig einzulesen,
aber wenn ich bezüglich In-/Output nix realisieren kann, brauche ich
mich auch nicht weiter damit abzumühen, wenn's hingegen mit
vernünftigem Aufwand machbar ist werde ich gerne das Nötige
aufarbeiten.

Felix
Christian Zietz
2010-03-30 16:44:37 UTC
Permalink
Post by Felix Holdener
Ok, da dies nun zum zweiten Mal kommt: Was dann? Ist der Kernel nicht
Bestandteil der Busybox?
Nein.
Post by Felix Holdener
Wenn nein: Wie verhalten sich Busybox und
Kernel zueinander?
Busybox ist ein Programm, dass viele der Standard-Unix/Linux-Programme
(bzw. -Befehle) in sich vereint. Üblicherweise enthält es eine Shell,
Dienstprogramme wie z.B. init oder mount und Befehle wie ls, rm, grep etc.

Busybox und Kernel verhalten sie zueinander wie Userspace-Programm und
Kernel.
Post by Felix Holdener
Und was ich noch nicht als klar beantwortet empfinde: Ist ein
Tastaturtreiber also zwingend Bestandteil des Kernels oder kann der
nachgeladen werden?
Der Kernel (nicht Busybox) kann Treiber als Module nachladen, so auch
z.B. eine Treiber für USB-HIDs (human interface devices), wie z.B.
Tastaturen.

Christian
--
Christian Zietz - CHZ-Soft - czietz (at) gmx.net
WWW: http://www.chzsoft.de/
PGP/GnuPG-Key-ID: 0x6DA025CA
Felix Holdener
2010-03-30 17:40:16 UTC
Permalink
Post by Christian Zietz
Post by Felix Holdener
Ok, da dies nun zum zweiten Mal kommt: Was dann? Ist der Kernel nicht
Bestandteil der Busybox?
Nein.
Danke, alles klar.
Post by Christian Zietz
Post by Felix Holdener
Und was ich noch nicht als klar beantwortet empfinde: Ist ein
Tastaturtreiber also zwingend Bestandteil des Kernels oder kann der
nachgeladen werden?
Der Kernel (nicht Busybox) kann Treiber als Module nachladen, so auch
z.B. eine Treiber für USB-HIDs (human interface devices), wie z.B.
Tastaturen.
Ok, danke auch hier. Bleibt die Frage, welche Voraussetzungen gegeben
sein müssen und wie man es macht (oder wo ich diese Infos finde). Ich
nehme an, dass es einen Standard-Treiber gibt, der für meine Zwecke
genügt.

Felix
Christian Zietz
2010-03-30 18:50:51 UTC
Permalink
Post by Felix Holdener
Ok, danke auch hier. Bleibt die Frage, welche Voraussetzungen gegeben
sein müssen und wie man es macht (oder wo ich diese Infos finde).
Beschreib doch einmal genauer, was Du machen willst. Sollen die Eingaben
Deines Geräts dem Linuxsystem als Tastatureingaben erscheinen? Dann
sollte sich Dein Gerät als eine USB-Tastatur ausgeben, der passende
Treiber dafür existiert natürlich. (Ob er bei Deinem Gerät in den Kernel
eincompiliert oder als Modul verfügbar ist, ist die nächste Frage.)

Oder möchtest Du Dein Gerät aus einer selbstgeschriebenen Applikation
heraus steuern? Dann sollte sich das Gerät vielleicht eher NICHT als
Tastatur sondern als generisches HID ausgeben. Auch dafür existiert ein
Kernel-Treiber.

Hardwaremäßig ließen sich beide Varianten übrigens wohl mit Produkten
von Code Mercenaries <http://www.codemercs.com/> aufbauen.

Christian
--
Christian Zietz - CHZ-Soft - czietz (at) gmx.net
WWW: http://www.chzsoft.de/
PGP/GnuPG-Key-ID: 0x6DA025CA
Henning Paul
2010-03-30 18:57:21 UTC
Permalink
Post by Christian Zietz
Post by Felix Holdener
Ok, danke auch hier. Bleibt die Frage, welche Voraussetzungen gegeben
sein müssen und wie man es macht (oder wo ich diese Infos finde).
Beschreib doch einmal genauer, was Du machen willst.
Ich hab' das jetzt so verstanden, dass er an ein Embedded Linux-Gerät (NAS,
Printserver, Access Point o.ä.) eine USB-Tastatur anschließen möchte. Wenn
mit der Tastatur aber eh nur eine einzige, selbstgeschriebene Anwendung
gesteuert werden soll, dann könnte man auch auf den USB-HID-Treiber
verzichten, wenn man eine libusb auf die Kiste bekommt.

Für meinen Samsung-Fernseher (ARM-basiert mit Linuxkernel) hat das übrigens
jemand geschafft, USB-Tastatursupport nachzurüsten:
http://sourceforge.net/projects/samygo/files/

Gruß
Henning
--
henning paul home: http://home.arcor.de/henning.paul
PM: ***@gmx.de , ICQ: 111044613
Felix Holdener
2010-03-30 19:21:23 UTC
Permalink
Post by Christian Zietz
Post by Felix Holdener
Ok, danke auch hier. Bleibt die Frage, welche Voraussetzungen gegeben
sein müssen und wie man es macht (oder wo ich diese Infos finde).
Beschreib doch einmal genauer, was Du machen willst. Sollen die Eingaben
Deines Geräts dem Linuxsystem als Tastatureingaben erscheinen?
Nein. Ich benötige ca. 5 Digitale Inputs und 3 Digitale Outputs, die
in einer eigenen App verarbeitet werden. Einerseits geht es um
zeitgesteuerte Aktionen und andererseits um Meldungen innerhalb des
LAN. Tastatur-IC sind billig zu haben, laufen mit der Stromversorgung
des USB und stellen diese Funktion zur Verfügung. Zudem funktionieren
sie mit Standardtreibern. Das ist der Grund, warum ich (bis jetzt) auf
dieser Schiene fahre.
Post by Christian Zietz
Dann
sollte sich Dein Gerät als eine USB-Tastatur ausgeben, der passende
Treiber dafür existiert natürlich. (Ob er bei Deinem Gerät in den Kernel
eincompiliert oder als Modul verfügbar ist, ist die nächste Frage.)
Wie finde ich das heraus?
Post by Christian Zietz
Oder möchtest Du Dein Gerät aus einer selbstgeschriebenen Applikation
heraus steuern? Dann sollte sich das Gerät vielleicht eher NICHT als
Tastatur sondern als generisches HID ausgeben. Auch dafür existiert ein
Kernel-Treiber.
Solange ich die In- und Outputs transparent und ohne Spezial-Treiber
verfügbar habe, spielt mir das keine Rolle.
Post by Christian Zietz
Hardwaremäßig ließen sich beide Varianten übrigens wohl mit Produkten
von Code Mercenaries <http://www.codemercs.com/> aufbauen.
Interessant. Werde ich mir genauer ansehen.

Felix
Henning Paul
2010-03-30 18:51:41 UTC
Permalink
Post by Felix Holdener
Post by Christian Zietz
Der Kernel (nicht Busybox) kann Treiber als Module nachladen, so auch
z.B. eine Treiber für USB-HIDs (human interface devices), wie z.B.
Tastaturen.
Ok, danke auch hier. Bleibt die Frage, welche Voraussetzungen gegeben
sein müssen
Der Kernel muß mit einer Konfiguration kompiliert worden sein, die entweder
den USB-HID-Treiber fest einbindet oder als nachladbares Kernelmodul (*.ko)
vorsieht. Sven hat beschrieben, woran Du das erkennen kannst. Wenn weder das
eine noch das andere der Fall sein sollte, müsstest Du einen Kernel selbst
kompilieren - dafür bräuchtest Du dann aber passende (passend gepatchte)
Sourcen. Die bekommt man zwar üblicherweise vom Hardwarehersteller, sind
aber normalerweise für nix zu gebrauchen, weil da häufig irgendwelche
gepatchte Compiler gebraucht werden. Ich habe einen WLAN-Access Point mit
MIPS-CPU und einem Embedded Linux, das Projekt, da einen eigenen Kernel für
zu kompilieren habe ich dann aber irgendwann entnervt abgebrochen.
Post by Felix Holdener
und wie man es macht (oder wo ich diese Infos finde). Ich
nehme an, dass es einen Standard-Treiber gibt, der für meine Zwecke
genügt.
Der Treiber selbst sollte reichen, ja. Wenn Du einen I2C-Port an der CPU
haben und ein passender Treiber im Kernel vorhanden sein sollte, wäre das
auch noch eine Option.

Gruß
Henning
--
henning paul home: http://home.arcor.de/henning.paul
PM: ***@gmx.de , ICQ: 111044613
Sven Hartge
2010-03-31 10:59:27 UTC
Permalink
Post by Felix Holdener
Ok, danke auch hier. Bleibt die Frage, welche Voraussetzungen gegeben
sein müssen und wie man es macht (oder wo ich diese Infos finde). Ich
nehme an, dass es einen Standard-Treiber gibt, der für meine Zwecke
genügt.
Ja, es gibt einen Standard-Treiber (usbhid), aber natürlich muss der
passend für den laufenden Kernel kompiliert sein. Du kannst nicht
einfach eine beliebige usbhid.ko nehmen und versuchen, diese zu laden.

Gerade bei solchen Consumer-Embedded-Geräten ist es schwer bis
unmöglich, einen korrekt funktionierenden Kernel selbst zu bauen.

Vor allem, ohne dir zu Nahe treten zu wollen, wenn man von der Materie
bzgl. Kernel, Userland und Busybox und den Zusammenhängen wenig bis gar
keine Ahnung hat.


--
Sig lost. Core dumped.
Felix Holdener
2010-03-31 12:30:14 UTC
Permalink
Post by Sven Hartge
Post by Felix Holdener
Ok, danke auch hier. Bleibt die Frage, welche Voraussetzungen gegeben
sein müssen und wie man es macht (oder wo ich diese Infos finde). Ich
nehme an, dass es einen Standard-Treiber gibt, der für meine Zwecke
genügt.
Ja, es gibt einen Standard-Treiber (usbhid), aber natürlich muss der
passend für den laufenden Kernel kompiliert sein. Du kannst nicht
einfach eine beliebige usbhid.ko nehmen und versuchen, diese zu laden.
Gerade bei solchen Consumer-Embedded-Geräten ist es schwer bis
unmöglich, einen korrekt funktionierenden Kernel selbst zu bauen.
Schade! Ich sähe da viele interessante Möglichkeiten, die Geräte
umfassender nutzen zu können.
Post by Sven Hartge
Vor allem, ohne dir zu Nahe treten zu wollen, wenn man von der Materie
bzgl. Kernel, Userland und Busybox und den Zusammenhängen wenig bis gar
keine Ahnung hat.
Schon OK, ich mag klare Worte. Ans selber kompilieren will ich mich -
zumindest zum jetzigen Zeitpunkt - wirklich nicht dranmachen, zumal
die betroffenen Geräte ja weiterhin ohne Einschränkung laufen sollen.

Wenn die Realisation meiner Idee wirklich einfach wäre, gäbs das wohl
auch bereits im Netz zu finden :-)

Die im Thread von verschiedenen Postern angegebenen Links werde ich
auf jeden Fall näher ansehen.

Danke allen.

Felix
Sven Hartge
2010-03-31 13:22:40 UTC
Permalink
Post by Felix Holdener
Post by Sven Hartge
Gerade bei solchen Consumer-Embedded-Geräten ist es schwer bis
unmöglich, einen korrekt funktionierenden Kernel selbst zu bauen.
Schade! Ich sähe da viele interessante Möglichkeiten, die Geräte
umfassender nutzen zu können.
Post by Sven Hartge
Vor allem, ohne dir zu Nahe treten zu wollen, wenn man von der
Materie bzgl. Kernel, Userland und Busybox und den Zusammenhängen
wenig bis gar keine Ahnung hat.
Schon OK, ich mag klare Worte. Ans selber kompilieren will ich mich -
zumindest zum jetzigen Zeitpunkt - wirklich nicht dranmachen, zumal
die betroffenen Geräte ja weiterhin ohne Einschränkung laufen sollen.
Das Problem bei nicht-x86-Geräten oder Geräten mit eigenwilliger
Hardware ist, dass die Quellen, die vom Hersteller bereitgestellt
werden, teilweise nur so vollständig sind, wie die GPL es verlangt. Dass
muss nicht zwangsweise bedeuten, dass man damit dann eine lauffähige,
aber veränderte Version der Firmware bereitstellen kann.

Hier würden sich dann selbst gestandene und fachlich kompetente Experten
die Zähne ausbeissen.


--
Sig lost. Core dumped.
Markus Wichmann
2010-03-30 11:43:09 UTC
Permalink
Post by Felix Holdener
Hallo zusammen
Als Einleitung: Bin neu hier und auch ziemlich unbelesen, was
Linux/busybox betrifft. Also gerne Tipps und Schupps in die richtige
Richtung, meist fehlen mir einfach die richtigen Links oder die
korrekten Stichworte für die eigene Suche.
Idee: An einem NAS bzw. einem MediaPlayer bzw. einem
Router/Printserver, alle laufen mit busybox und haben USB, eine
Tastatur (bzw. einen Eigenbau mit einem Tastaturchip) anschliessen, um
so je 3 digitale Outputs (die Statuslampen an der Tastatur) und viele
digitale Inputs (die Tasten) zu haben. Grund: Ich brauche die
In-/Outputs und die Geräte laufen so oder so, sind eh unterbeschäftigt
und ich möchte nicht zusätzliche CPUs ins LAN nehmen, wenn dies auch
anders geht. Tastatur hätte den Vorteil, mit Standardbauteilen
auszukommen und die USB-Stromversorgung zu nutzen zu können.
Jetzt zu den Problemen: Wie einfach/schwierig ist es, busybox eine
(Standard-) Tastaturtreiber zu verpassen? Wo bekomme ich sowas? Die
Abfrage per SW dürfte dann ja kein Problem darstellen, soweit ich
bisher gelesen habe.
Irgendwelche Anregungen, Tipps, Ideen oder andere Vorschläge, an einem
Gerät mit busybox min. 3 Out- und etwa 8 Inputs zu realisieren?
Danke
Felix
Ich glaube, was du suchst, ist der usbhid-Treiber aus dem Linux-Kernel.

busybox ist nur eine Shell mit _sehr_ vielen Builtins, die kümmert sich
nicht darum, was für ein Gerät ihr denn nun den Input liefert.

Also solltest du den Kernel mit usbhid und den anderen deswegen nötigen
Treibern (usbcore, uhci/ohci/ehci etc., vt-Treiber) kompilieren. Dein
Eigengebastel muss dann nur noch dem USB-Tastaturstandard entsprechen.
Ich hoffe, du weißt, dass die LEDs spezielle Bedeutungen haben und ihre
Interpretation nicht von der Tastatur abhängt? Wenn du auf Numpad 8
drückst, wird immer der gleiche Scancode an den Kernel gesendet, aber
der entscheidet entsprechend des Status der NumLock-LED, was daraus
gemacht wird.

Ansonsten kannst du doch auch den USB-Joystick-Treiber versuchen. Mit
dem kannst du auf jeden Fall Gamepads mit beliebiger Anzahl analoger und
digitaler Eingaben versorgen. Ich weiß aber nicht, wie das mit digitalen
Ausgaben ist.

Tschö,
Markus
--
Progress (n.): Process through which USENET evolved from smart people in
front of dumb terminals to dumb people in front of smart
terminals.

--- news://freenews.netfront.net/ - complaints: ***@netfront.net ---
Felix Holdener
2010-03-30 19:06:27 UTC
Permalink
Post by Markus Wichmann
Ich glaube, was du suchst, ist der usbhid-Treiber aus dem Linux-Kernel.
Ja. Nur: Offenbar gibts den da nicht, es handelt sich je um NAS,
MediaPlayer und/oder PrintServer. Müsste also etwas haben, das
nachgeladen werden kann. An NAS und PrintServer ist vorgesehen, via
USB Printer anzuschliessen, an MediaPlayer und NAS können Festplatten
angeschlossen werden.

Nebenbei: Kann man abfragen, über welche Bestandteile ein Kernel
verfügt?
Post by Markus Wichmann
busybox ist nur eine Shell mit _sehr_ vielen Builtins, die kümmert sich
nicht darum, was für ein Gerät ihr denn nun den Input liefert.
Ok.
Post by Markus Wichmann
Also solltest du den Kernel mit usbhid und den anderen deswegen nötigen
Treibern (usbcore, uhci/ohci/ehci etc., vt-Treiber) kompilieren.
Naja, grad als Einstieg in die Materie einen Kernel kompilieren ist
wohl etwas zu viel. Wenn es darauf hinausläuft, muss ich das zumindest
vorläufig begraben, da fehlen mir zuviele Kenntnisse.
Post by Markus Wichmann
Dein
Eigengebastel muss dann nur noch dem USB-Tastaturstandard entsprechen.
Ich hoffe, du weißt, dass die LEDs spezielle Bedeutungen haben und ihre
Interpretation nicht von der Tastatur abhängt? Wenn du auf Numpad 8
drückst, wird immer der gleiche Scancode an den Kernel gesendet, aber
der entscheidet entsprechend des Status der NumLock-LED, was daraus
gemacht wird.
Das ist alles klar, läuft ja genau so unter Windows und habe ich da
softwaremässig mit vorhandenem Keyboard auch schon realisiert. Die ICs
für Tastaturen sind gut dokumentiert, das dürfte kein Problem
darstellen.

Felix
Henning Paul
2010-03-30 19:24:01 UTC
Permalink
Post by Felix Holdener
Nebenbei: Kann man abfragen, über welche Bestandteile ein Kernel
verfügt?
Dafür muss man in die Kernel-Konfigurationsdatei schauen, manchen Kerneln
liegt sie bei (z.B. in /boot/), manche Kernel blenden sie selbst als
/proc/config.gz ein, manche Distributionen tun sie in ein separates Paket.
Post by Felix Holdener
Das ist alles klar, läuft ja genau so unter Windows und habe ich da
softwaremässig mit vorhandenem Keyboard auch schon realisiert. Die ICs
für Tastaturen sind gut dokumentiert, das dürfte kein Problem
darstellen.
Man kann auch einen selbstprogrammierten Microcontroller dafür benutzen:
http://www.obdev.at/products/vusb/hidkeys.html

Gruß
Henning
--
henning paul home: http://home.arcor.de/henning.paul
PM: ***@gmx.de , ICQ: 111044613
Felix Holdener
2010-03-30 20:16:44 UTC
Permalink
Post by Henning Paul
Post by Felix Holdener
Nebenbei: Kann man abfragen, über welche Bestandteile ein Kernel
verfügt?
Dafür muss man in die Kernel-Konfigurationsdatei schauen, manchen Kerneln
liegt sie bei (z.B. in /boot/), manche Kernel blenden sie selbst als
/proc/config.gz ein, manche Distributionen tun sie in ein separates Paket.
Mal sehen was sich finden lässt.
Post by Henning Paul
Post by Felix Holdener
Das ist alles klar, läuft ja genau so unter Windows und habe ich da
softwaremässig mit vorhandenem Keyboard auch schon realisiert. Die ICs
für Tastaturen sind gut dokumentiert, das dürfte kein Problem
darstellen.
http://www.obdev.at/products/vusb/hidkeys.html
Das erhöht lediglich die Komplexität des Projekts. Wenn ich mich für
einen zusätzlichen uP entscheide, dann kann der gleich LAN mitbringen,
dann würde ich die ganze App da drauf packen. Die Idee ist ja gerade,
eine eh schon laufende CPU so nebenbei noch etwas zusätzlich zu
beschäftigen.

Merci für deine Inputs. Ich sehe jetzt, wo es in etwa langgeht.

Felix
Henning Paul
2010-03-31 06:33:45 UTC
Permalink
Post by Felix Holdener
Post by Henning Paul
Man kann auch einen selbstprogrammierten Microcontroller dafür
benutzen: http://www.obdev.at/products/vusb/hidkeys.html
Das erhöht lediglich die Komplexität des Projekts. Wenn ich mich für
einen zusätzlichen uP entscheide, dann kann der gleich LAN mitbringen,
dann würde ich die ganze App da drauf packen.
Da überschätzt Du die Leistungsfähigkeit des dort verwendeten
Microcontrollers mindestens um den Faktor 10. Ein AVR ist kein ARM. Da
läuft auch kein Betriebssystem drauf.
Post by Felix Holdener
Die Idee ist ja gerade, eine eh schon laufende CPU so nebenbei noch
etwas zusätzlich zu beschäftigen.
Dann darfst Du auch keine Tastatur verwenden, denn dort ist auch ein
Microcontroller enthalten (was Du "Tastaturchip" genannt hast). Der AVR-
Controller nimmt vermutlich sogar noch weniger elektrische Leistung auf
als eine 08/15-USB-Tastatur.

Was ich sagen wollte: Bevor ich versuche, einen "Tastaturchip"
aufzutreiben, auf dem Halbleitermarkt, oder indem ich eine USB-Tastatur
schlachte, würde ich _immer_ mal eben schnell einen ATMega8
programmieren, von denen habe ich immer ein paar zuhause, die anderen
benötigten Teile (USB-Buchse, Quarz, restliches Hühnerfutter) sowieso.

Gruß
Henning
Felix Holdener
2010-03-31 07:41:28 UTC
Permalink
Post by Henning Paul
Was ich sagen wollte: Bevor ich versuche, einen "Tastaturchip"
aufzutreiben, auf dem Halbleitermarkt, oder indem ich eine USB-Tastatur
schlachte, würde ich _immer_ mal eben schnell einen ATMega8
programmieren, von denen habe ich immer ein paar zuhause, die anderen
benötigten Teile (USB-Buchse, Quarz, restliches Hühnerfutter) sowieso.
:-)

Bei dir! Bei mir wäre das Neuland (der ATMega, nicht das
Hünerfutter!). Und gleichzeitig eine Expedition zu den Pinguins und
eine zu den Löwen finde ich doch etwas gewagt ;-)

Felix
Sieghard Schicktanz
2010-03-31 21:30:56 UTC
Permalink
Hallo Markus,
Post by Markus Wichmann
busybox ist nur eine Shell mit _sehr_ vielen Builtins, die kümmert sich
nicht darum, was für ein Gerät ihr denn nun den Input liefert.
Busybox ist schon etwas mehr als eine shell - Busybox ist etwas, was man
"Systemumgebung" nennen könnte. Busybox kann so ziemlich alles erledigen,
was man braucht, um mit dem System arbeiten zu können. U.a. enthält es,
bzw. kann es enthalten, ein init, alle möglichen System-Programme von echo
über ls bis modprobe, Netzwerk-Utilities, diverse Deamons und schließlich
auch noch einen Editor. Busybox ist, wie das manchmal bezeichnet wird, ein
komplettes "userland"; aber, wie Du richtig sagst, es hat nichts direkt mit
dem Kernel zu tun.
Post by Markus Wichmann
Ich hoffe, du weißt, dass die LEDs spezielle Bedeutungen haben und ihre
Interpretation nicht von der Tastatur abhängt? Wenn du auf Numpad 8
Sie lassen sich bei aktuellen Linux-Versionen aber für mehrere Zwecke
benutzen, u.a. auch völlig unabhängig von der Signalisierung des _internen_
Tastatur-Zustands. _Der_ wird nicht von den LEDs bestimmt, sondern von
internen Variablen; die LEDs dienen normalerweise nur zur Signalisierung.
Post by Markus Wichmann
drückst, wird immer der gleiche Scancode an den Kernel gesendet, aber
der entscheidet entsprechend des Status der NumLock-LED, was daraus
gemacht wird.
Nicht allein - die Scan-Codes sind schon auch tastaturseitig abhängig vom
Zustand diverser interner Variablen; speziell das Ziffernfeld ist da recht
speziell... ;->
Eine Sonderbehandlung brauchen aber auch die extra Sondertasten für die
Cursor-Steuerung (Bild, Pos 1, Ende...) auf den aktuellen Tastaturen, die
erweiterten Funktionstasten (F11, F12) und noch ein paar von den Knöpfen.
Die PC-Tastatur ist eine Wissenschaft für sich...
--
(Weitergabe von Adressdaten, Telefonnummern u.ä. ohne Zustimmung
nicht gestattet, ebenso Zusendung von Werbung oder ähnlichem)
-----------------------------------------------------------
Mit freundlichen Grüßen, S. Schicktanz
-----------------------------------------------------------
Loading...