topleftbg
topdasevilbg topspacebg

Archiv der Kategorie ‘Linux Treiber‘

Planung geht weiter

Dienstag, den 26. Februar 2008

Nach langen Diskussionen und Überlegungen haben wir uns nun auf folgende Treiber-Erarbeitung geeinigt:

Als erstes wird eine Schnittstelle entworfen, mit der universell DMX-Geräte angesprochen werden können. Diese Schnittstelle wird Plugins unterstützen, pro Hardware kann man dort ein Plugin einfügen, sodass die Nachrüstung weiterer DMX-Geräte ohne Neukompilierung eines Programmes möglich sein wird; man muss lediglich das Plugin installieren.

Wer möchte, kann bei der Umsetzung gerne behilflich sein, dann wird es auch etwas schneller gehen.

Mit freundlichen Grüßen
Matthias Lohr

theoretische Fortschritte

Donnerstag, den 20. Dezember 2007

Es gibt ein paar interessante Fortschritte zu berichten.

1. Hat sich ein Projekt gefunden, dass sich bereits wie wir mit libhid auf die Jagd nach der Interface-Steuerung gemacht hat. Dieser Code wurde uns zugänglich gemacht und wir versuchen nun im Einverständnis mit dem Projektinhaber, daraus eine öffentlich verfügbare lib zu machen. Möglicherweise (ohne etwas versprechen zu wollen) könnte diese lib schon kurz nach Weihnachten hier zu finden sein.

2. Das Treiber-Entwicklungs-Team wird nun verstärkt durch cl-. Er hätte auch sehr gerne eine Funktionierende Variante der Ansteuerung unter Linux und hat uns den in Punkt 1 erläuterten Fortschritt gebracht.

Allgemein: Zuerst werden wir diese lib entwickeln und online stellen. Diese lib wird Funktionen bereitstellen, mit denen ein Programmierer eine DMX-Steuerung in sein Programm leicht implementieren kann. Dann werden wir beginnen, ein Kernel-Modul zu entwickeln, da die lib unter Umständen zu langsam sein könnte bei voll ausgelastetem DMX. Überlegung: Kann ein Asus WL500g Premium nicht auch DMX :P?

Erste Erfolge

Sonntag, den 9. Dezember 2007

Hallo!

Gerade hab ich es geschafft, das erste mal erfolgreich Daten an das DMX-Interface zu senden, um es in den Modus 6 zu versetzen. Nach vielen vielen Versuchen hab ich eine relativ einfache Möglichkeit gefunden, auf das Gerät zuzugreifen.

Zuerst benötigt man das Paket libhid0 und dessen developer-Paket.
$ sudo apt-get install libhid0 libhid-dev

Dann die unten verlinkte Datei herunterladen, kompilieren (mit den Libs libhid und libusb). Als root ausführen, schon sollte das Interface mit einer blauen LED antworten ;)

Probleme: Da der libhid-Treiber statt des usbhid (Std-Linux-Treiber) geladen werden muss, was mal funktioniert und mal nicht, kann es sein, dass man das Programm 2-3x ausführen muss. Was bei mir auch noch ein Problem darstellt ist, dass sich das Interface ca. 2 Sekunden nach Beendigung des Programms abschaltet. Ein simples lsusb weckt das Interface interessanterweise wieder auf, und zwar im aktiven Modus (DMX-LED an)!

linuxdrv.c

Hinweise beachten!

Linux HID Treiber-Entwicklung

Montag, den 3. Dezember 2007

Es ist erschreckend, wie wenig Informationen man zu Linux-HID-Entwicklung findet. Anscheinend gibt es keine Möglichkeit (oder aber sie wurde gut in den Dokumentationen verteckt), HID-Geräte mittels des mitgelieferten HID-Treibers anzusteuern. So bleibt dann als einzige Möglichkeit, einen eigenen Treiber zu schreiben, der direkt auf USB aufsetzt und nicht erst auf HID (was die Arbeit um Etliches steigert).

Einen kleinen Lichtblick gibts noch: libhid. Ich werde das mal auf Tauglichkeit überprüfen und hoffe, dass ich mit dieser Lib anfangen kann, einen Treiber zu implementieren.

euer
Matthias

Treiber-Entwicklung initialisiert

Donnerstag, den 29. November 2007

Wir haben uns nun vorgenommen, für das von http://www.digital-enlightenment.de/ vorgestellte DMX-Interface einen Linux-Treiber zu schreiben, bzw. eine Möglichkeit zu finden, wie man dieses Gerät unter Linux benutzen/bedienen kann.

Erkannt wird es einwandfrei, in /proc/bus/usb/devices ist für das Gerät dann folgender Abschnitt zu finden:


T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=04b4 ProdID=0f1f Rev= 1.10
S: Manufacturer=Digital Enlightenment
S: Product=Sunlight Killer
S: SerialNumber=0000000000000532
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=200mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
E: Ad=81(I) Atr=03(Int.) MxPS= 33 Ivl=1ms
E: Ad=02(O) Atr=03(Int.) MxPS= 33 Ivl=1ms

Zur Zeit befinden wir uns noch in der Phase, in der wir alles was zum Thema passt sammeln, besonders interessieren uns Informationen über HID unter Linux, bzw. USB-Treiber-Programmierung im Zusammenhang mit HID. Sollte jemand zufällig etwas wissen, kann er sich ja melden ;)

Liebe Grüße
Matthias

toprightbg
bottomleftbg transparent bottomrightbg
powered by wordpress.org

kostenloser Counter