Alexander (HH): Hardware-Hack

Beitrag lesen

Moin Moin!

Ich hacke hier gerade an einem Gerät herum (ich beschreib es mal ganz unspezifisch als "Gamepad") und habe es hinbekommen, dieses Teil in einen seltsamen Modus zu versetzen. Nun wüßte ich gerne, was das für ein Modus ist und ob sich was Tolles damit anfangen läßt. :-)

Meine Fragen richten sich also hauptsächlich an die erfahrenen Hard- und Softwarebastler in diesem Forum. Ich denke da beispielsweise an Martin und Alexander. ;-)

Na wenn Du so fragst ...

Ich kann das Gerät über USB mit meinem Rechner verbinden und kriege in besagtem Modus unter anderem diese Informationen von lsusb:

Configuration Descriptor:

[...]

MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         2 Communications
      bInterfaceSubClass      2 Abstract (modem)
      bInterfaceProtocol      1 AT-commands (v.25ter)

[...]

  
Gratuliere, Du hast Dein Gamepad zu einem Modem umfunktioniert. ;-)  
  

>   
> Offenbar gibt es 2 Interfaces, nämlich ACM (Abstract Control Model) und CDC Data. Wenn ich dmesg befrage, was sich mit dem Umschalten in diesen seltsamen Modus getan hat, kriege ich das hier als Antwort:  
>   
> [ 8298.229790] usb 6-2: USB disconnect, address 23  
> [ 8298.860035] usb 6-2: new full speed USB device using ohci\_hcd and address 24  
> [ 8299.033656] usb 6-2: configuration #1 chosen from 1 choice  
> [ 8299.034803] cdc\_acm 6-2:1.0: This device cannot do calls on its own. It is not a modem.  
  
^-- Die Meldung würde ich mal im Kernel-Source suchen. Mich würde echt interessieren, wie Linux auf diese Idee kommt.  
  

> [ 8299.034840] cdc\_acm 6-2:1.0: ttyACM0: USB ACM device  
  

> Ehrlich gesagt, weiß ich nicht so recht, was ich hier eigentlich vor mir habe. Ein Gerät, das in diesem Modus so ein bißchen wie Modem tut aber keins ist. Die Daten scheinen ja über den Interrupt-Endpoint auf meinem Rechner anzukommen. Kann jemand (vielleicht im V.25-Kontext) etwas in diese Daten hineininterpretieren? Und krieg ich irgendwie auch Kommunikation in die andere Richtung hin? Dieses CDC-Interface scheint ja Enpoints für beide Richtungen zur Verfügung zu stellen ... So richtig durchschaut habe ich diese seltsamen Interfaces allerdings noch nicht.  
  
Ich hab so den Verdacht, dass das ein Interface zu einem Firmware-Updater ist. Oder vielleicht auch nur ein gut versteckters Debugger-Interface, was nur dem Entwickler der Software auf dem Microcontroller hilft.  
  
Alexander

-- 
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".