• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

USB Kommunikationsprobleme mit openSuse 12.3

MiPl

Hacker
Hi,

ich habe mir mit suseStudio ein minimalisiertes KDE4-Suse12.3 System für einen Kleincomputer (ASUS Eee PC) gebaut. Das läuft bis auf einen Punkt auch gut:

An diesen Computer ist eine Hardware angeschlossen (Crumb 168 von der Fa. Chip 45 mit ein bisschen elektronischem Beiwerk). Die Hardware hat einen USB UART converter CP2102. Der Zustand der I/O-Ports dieser externen Hardware wird über die USB-Schnittstelle von einer Java-Software (u. a. rxtx-java) ausgewertet.

Auf meinem "Standardlaptop" Acer Aspire 5735 mit Suse 12.1 läuft alles perfekt. Bei dem Asus funktionieren nahezu alle Port ebenfalls wie erwartet, doch ein als Aktivier-/Deaktivierschalter verkabelter Port nicht. Wenn dieser Port extern aktiviert wird, wird das richtig interpretiert. Wenn der Port dann jedoch deaktiviert wird erfolgt eine meiner Meinung nach eher zufällige Interpretation. Es wird ein Ergebnis zurückgegeben, dass von anderen Ports kommen müsste, die jedoch nicht verändert wurden.

Meine 1. Vermutung ist, dass irgendein Paket bei meinem Minisystem fehlt. Ich habe alle USB-Module installiert wie beim 12.1 System auf dem Acer, doch der Fehler existiert weiterhin. Bei den Paketen von Version 12.3 ist jedoch libusbmuxd2 installiert während bei 12.1 libusmuxd1 installiert ist. Könnte dieses unterschiedliche Verhalten hierauf begründet sein? Hat jemand eine Idee, wie ich das Problem einkreisen kann?

Danke für Vorschläge

Gruß Micha
 

spoensche

Moderator
Teammitglied
Was sagt den der Kernel zu deinem Problem?
Code:
dmesg | egrep -i "usb|error|fail| fault"

Wenn ich dich richtig verstanden habe, soll ein Ergebnis von USB Port 1 gelesen werden, wenn USB Port 2 deaktiviert ist. Erkennt den das Gerät am anderen Ende der USB-Ports, wenn USB Port 2 deaktiviert ist und versendet dann sein Anliegen über USB Port 1?

Es sehr schwer das Problem einzugrenzen, wenn man nicht weiss was für ein Gerät mit welcher Funktionalität am anderen Ende seinen Dienst verrichtet. Es wäre ganz prakisch wenn du ein paar Infos mehr dazu hast.
 
OP
M

MiPl

Hacker
Hi,

ja, das mit dem Beschreiben ist auch das Problem, vor dem ich stehe. Ich versuche es nochmal so:

Meine Vermutung ist, dass eine Lib o. ä. in meinem abgespeckten System 12.3 zur Interpretation der über den USB-Port (nur ein Port) übermittelten Daten fehlt. Das Herzstück des USB-I/O-Gerätes ist ein Crumb168-Baustein. Dieser enthält einen AVR-Prozessor auf dem eine Firmware für die Interpretation der Ein- und Ausgänge des AVR-Prozessors läuft. Bei Portänderungen leitet diese Firmware Informationen über den USB-Port an eine Java-Software des Linux-Systems weiter.

An dem USB-I/O-Gerät sind keine Änderungen beim Wechsel vom Acer-Laptop mit System 12.1 zum ASUS mit System 12.3 vorgenommen worden. Auch die Java-Software ist die gleiche. Die Interpretation jedoch (nur zum Teil) verschieden.

Gibt es u. U. eine Möglichkeit den USB-Verkehr zu sehen, ihn aber trotzdem an die Java-Software weiterzuleiten? Habe das mit hterm versucht, doch die Daten werden damit nicht weitergeleitet. Die Java-Software prüft regelmäßig das Vorhandensein des USB-I/O-Gerätes. Daher kann ich nicht einfach mit hterm dazwischen gehen. Man könnte aber dann prüfen, ob die Daten, die vom USB-Gerät kommen identisch sind (wovon ich noch ausgehe).

Gruß Michael
 

spoensche

Moderator
Teammitglied
Hast du mal die Konfiguration der Java Software überprüft, ob dort auch die richtigen Gerätedateien angegeben sind? (z.B. /dev/ttyUSB0 o. ttyUSB1) Hast du die Möglichkeit bei der Java Software einen Debug Modus einzuschalten?

Hast du mal die Pakete von beiden Systemen verglichen?
z.B.
Code:
rpm -qa | egrep -i "java|usb"
 
OP
M

MiPl

Hacker
Hi spoensche,

danke für den Einsatz.

ja, die pakete habe ich abgeglichen (USB, Java, serial, tomcat) und alles was nicht drauf war nachinstalliert. Leider kein Erfolg. Ich wollte dann die Platte putzen und openSuse 12.3 ohne weitere Anwendungen draufspielen (Festplatte hat aber nur 4Gb), doch das geht nicht(kaum). Habe gestern LXDE versucht, doch da läuft jetzt erstmal Wlan nicht. Ich muss wohl noch etwas Zeit investieren oder 40 bucks für ne größere Festplatte.

Erstmal würde ich diesen thread einschlafen lassen. Danke nochmal für die Unterstützung.

Grüssle aus dem Norden. Michael
 

spoensche

Moderator
Teammitglied
Ohne Lösung einschlafen, verursacht Albträume.;)

Ich hab da noch so eine Idee.

Hast du mal die Konfiguration des USB-Ports bezüglich, Datenrate überprüft? Arbeitest du an den beiden Rechnern evtl. mit unterschiedlichen Spannungspegeln an den USB-Ports?

I.d.R. wird der AVR max. mit 3V an der USB-Schnittstelle arbeiten, der Laptop bzw. der Desktoprechner arbeiten aber mit 5 V.
 
OP
M

MiPl

Hacker
Hi,

Alpträume wohl eher nicht aber Träume oder womöglich schlaflose Nächte schon.

Dieser AVR-Baustein (ist also eine fertige Platine mit ein bisschen Beiwerk) wandelt die normalerweise anliegende 5 V USB-Spannung auf die benötigte Spannung von 3,3 V um.

Aber, geprüft habe ich bisher nicht, welche Kommunikationsparameter an der USB-Schnittstelle anliegen. Bislang war ich der Auffassung, dass dies "genormt" sei!? Wie kann ich das prüfen/einstellen?

Michael
 

spoensche

Moderator
Teammitglied
MiPl schrieb:
Dieser AVR-Baustein (ist also eine fertige Platine mit ein bisschen Beiwerk) wandelt die normalerweise anliegende 5 V USB-Spannung auf die benötigte Spannung von 3,3 V um.

Die Wandlung nimmt allerdings kein PC oder Notebook autom. vor, weil es z.B. einen USB-Hub inkl. angeschlossener Geräte, z.B. Maus, Stick o.ä. mit Spannung versorgen muss.

Und genau hier liegt das Problem. Wenn der Microcontroler- bzw. Processor über die USB Schnittstelle nur mit 3,3V TTL (Transistor-Transistor Logic) arbeitet, dann musst du beim PC einen 3,3 V TTL Wandler dazwischen schalten, weil du ohne den Wandler total kuriose Daten erhälst,

MiPl schrieb:
Aber, geprüft habe ich bisher nicht, welche Kommunikationsparameter an der USB-Schnittstelle anliegen. Bislang war ich der Auffassung, dass dies "genormt" sei!? Wie kann ich das prüfen/einstellen?

Naja es ist ja auch genormt. Du kannst die Spannung mit einem normalen Voltmeter messen.
 
Oben