[Problem] 7270v2 USB Serial

Biade

Neuer User
Mitglied seit
7 Apr 2012
Beiträge
21
Punkte für Reaktionen
0
Punkte
0
[Gelöst Dank RalfFriedl]

Hi!

Ich versuche verzweifelt folgendes Gerät via Virtual Serial anzusprechen bekomme aber die Treiber nicht geladen:

http://www.pjrc.com/teensy/usb_serial.html

Es gibt sogar extra Regeln:

http://www.pjrc.com/teensy/49-teensy.rules
hab sie in "udev_final" & "udev_first" eingetragen, da ich ja kein "/etc/udev/rules.d/" bzw. "/lib/udev/rules.d/" habe

cat /proc/bus/usb/devices gibt mir bei nicht aktiviertem Fernanschluss:
Code:
cat /proc/bus/usb/devices

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 2.06
S:  Manufacturer=Linux 2.6.32.21 musb-hcd
S:  Product=MUSB HDRC host driver
S:  SerialNumber=musb_hdrc
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  6 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=02(comm.) Sub=00 Prot=00 MxPS=16 #Cfgs=  1
P:  Vendor=16c0 ProdID=047a Rev= 1.00
S:  Manufacturer=Yeon
S:  Product=USB Serial
S:  SerialNumber=12345
C:* #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=(none)
E:  Ad=82(I) Atr=03(Int.) MxPS=  16 Ivl=64ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=(none)
E:  Ad=03(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms
E:  Ad=84(I) Atr=02(Bulk) MxPS=  32 Ivl=0ms

cat /proc/bus/usb/devices gibt mir bei aktiviertem Fernanschluss:
Code:
T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 2.06
S:  Manufacturer=Linux 2.6.32.21 musb-hcd
S:  Product=MUSB HDRC host driver
S:  SerialNumber=musb_hdrc
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  5 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=02(comm.) Sub=00 Prot=00 MxPS=16 #Cfgs=  1
P:  Vendor=16c0 ProdID=047a Rev= 1.00
S:  Manufacturer=Yeon
S:  Product=USB Serial
S:  SerialNumber=12345
C:  #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=
E:  Ad=82(I) Atr=03(Int.) MxPS=  16 Ivl=64ms
I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=
E:  Ad=03(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms
E:  Ad=84(I) Atr=02(Bulk) MxPS=  32 Ivl=0ms

cat /proc/bus/usb/devices gibt mir bei nicht aktiviertem Fernanschluss & usbip aktiv:
Code:
cat /proc/bus/usb/devices

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 2.06
S:  Manufacturer=Linux 2.6.32.21 musb-hcd
S:  Product=MUSB HDRC host driver
S:  SerialNumber=musb_hdrc
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  6 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=02(comm.) Sub=00 Prot=00 MxPS=16 #Cfgs=  1
P:  Vendor=16c0 ProdID=047a Rev= 1.00
S:  Manufacturer=Yeon
S:  Product=USB Serial
S:  SerialNumber=12345
C:* #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=usbip
E:  Ad=82(I) Atr=03(Int.) MxPS=  16 Ivl=64ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=usbip
E:  Ad=03(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms
E:  Ad=84(I) Atr=02(Bulk) MxPS=  32 Ivl=0ms

ohne Treiber gibt es kein ttyUSB* für mich, also wollte ich mir die modules angucken:
lsmod sagt, ftdi_sio & usbserial sind geladen:
Code:
Module                  Size  Used by    Tainted: P
usbip                  13242  0
usbip_common_mod       11120  1 usbip
rtc_avm                 5216  0
rtc_core               15149  1 rtc_avm
sch_sfq                 5489  4
sch_llq                 8309  1
sch_tbf                 4386  1
wlan_scan_ap            7759  1
wlan_acl                3439  1
wlan_wep                4327  0
wlan_tkip               9430  2
wlan_ccmp               6055  1
wlan_xauth               601  0
ath_pci               146970  0
ath_spectral           93447  1 ath_pci
ath_rate_atheros       59408  1 ath_pci
wlan                  216988  9 wlan_scan_ap,wlan_acl,wlan_wep,wlan_tkip,wlan_ccmp,wlan_xauth,ath_pci,ath_rate_atheros
ath_dfs                39661  3 wlan_scan_ap,ath_pci,wlan
ath_hal               301176  5 ath_pci,ath_spectral,ath_rate_atheros,ath_dfs
avm_ath_extensions     41284  6 wlan_scan_ap,ath_pci,ath_rate_atheros,wlan,ath_dfs,ath_hal
userman_mod            54864  2
kdsldmod             1015222  7 userman_mod
dsl_ur8               183779  1
ramzswap               17338  1
lzo_compress            1882  1 ramzswap
lzo_decompress          2047  1 ramzswap
ftdi_sio               36087  0
usbserial              33023  1 ftdi_sio
dect_io                11542  0
avm_dect              235989  1 dect_io
capi_codec            411701  0
isdn_fbox_fon5        762808  4
pcmlink               336297  3 avm_dect,capi_codec,isdn_fbox_fon5
loop                   13569  2
jffs2                 104350  1
Piglet_noemif          42466  0
led_modul_Fritz_Box_7270_16    62648  2

Falls ich ein zusätzliches modul laden müsste,
wie finde ich heraus welcher chip emuliert wird, sodass ich zum beispiel pl2303 laden kann oder gar ein eigenes?

Kann mir einer helfen?

Vielen Dank :)
 
Zuletzt bearbeitet:
Es sieht nicht danach aus, als wären ftdi_sio oder pl2303 die richtigen Treiber.
Wenn es auf einem PC-Linux funktioniert, schau mal, was dort geladen wird.
 
Es läuft momentan auf einem windows ( 7 & xp) mit den oben genannten Treiber.

Für linux soll man:
Code:
# UDEV Rules for Teensy boards, http://www.pjrc.com/teensy/
#
# The latest version of this file may be found at:
#   http://www.pjrc.com/teensy/49-teensy.rules
#
# This file must be placed at:
#
# /etc/udev/rules.d/49-teensy.rules    (preferred location)
#   or
# /lib/udev/rules.d/49-teensy.rules    (req'd on some broken systems)
#
#
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789]?", MODE:="0666"
KERNEL=="ttyACM*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789]?", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
#
# If you share your linux system with other users, or just don't like the
# idea of write permission for everybody, you can replace MODE:="0666" with
# OWNER:="yourusername" to create the device owned by you, or with
# GROUP:="somegroupname" and mange access using standard unix groups.
#
#
# If using USB Serial you get a new device each time (Ubuntu 9.10)
# eg: /dev/ttyACM0, ttyACM1, ttyACM2, ttyACM3, ttyACM4, etc
#    apt-get remove --purge modemmanager     (reboot may be necessary)
#
#
# Older modem proding (eg, Ubuntu 9.04) caused very slow serial device detection.
# To fix, add this near top of /lib/udev/rules.d/77-nm-probe-modem-capabilities.rules
#   SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789]?", GOTO="nm_modem_probe_end" 
#
#
# (old udev rules)
#SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="047[78]", MODE:="0666"
#SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="048[02]", MODE:="0666"
#KERNEL=="ttyACM*", SYMLINK+="ttyUSB00%n", MODE:="0666"
#
# old versions of librxtx within Arduino needed this extra symlink, new versions recognize "ttyACM"
#KERNEL=="ttyACM*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789]?", SYMLINK+="ttyUSB00%n", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1"

Ich weiß wirklich nicht mehr weiter....
 
Wenn ich das richtig gelesen habe, dann brauchst du irgendein HID-Modul. Wie Ralf schon geschrieben hat musst du das Device an dein PC stecken und schauen welches Modul verwendet wird. Dann müssen wir schauen, ob es das Modul für deine Fritz!Box gibt...

Gruß
Oliver
 
Wie sehe ich es in Linux?
meint ihr VOTI?
vgl.: http://www.linux-usb.org/usb.ids
unter Vendor=16c0 ProdID=047a

Ich möchte es gerne als virtual com nutzen (z.B. via usbserial)
VIELEN VIELEN DANK für eure Mühen
 
Wow, vielen Dank für die Antwort... :)

Welchen Treiber hast Du denn da wo genannt?
Hier steht alles: http://www.pjrc.com/teensy/usb_serial.html
Unter Windoof läufts mit den Treibern & unter Mac läufts sogar ohne zusätzlichen...
Unter Linux soll man wohl die Udev rules einfügen, das klappt aber bei mir nicht

Wenn du das Problem gelöst bekämest.... das wär echt ein Traum

Hoffnungsvoll & dankend
Biade
 
Ich habe das Gerät nicht, und auf der Seite steht nicht, welcher Treiber für Linux benötigt wird. Deswegen die Frage, was passiert, wenn Du es bei Dir an einen Linux PC anschließt. Wenn Du kein Linux auf dem PC installiert hast, kannst Du Dir eine Live-CD herunterladen, Knoppix, Suse, Ubuntu, was auch immer. Dann "lsmod" und "cat /proc/bus/usb/devices" ausführen, dann sollte sichtbar sein, welches Modul zuständig ist.
Die udev Datei ist nur dafür zuständig, nach dem Erkennen des Moduls Aktionen auszuführen.
 
das Modul heißt "cdc_acm" unter Ubuntu 10.

Vendor=16c0
ProdID=047a

Habs mit VMPlayer gemacht & FreetzLinux benutzt.
Reichen die Infos?

Sobald ich kann, versuche ich es mit einem "richtigen" Ubuntu, denn cat /proc...... gibts bei dieser Version hier nicht.

Vielen Dank, dass du deine kostbare Zeit für so ein Noob wie mich investierst. Wirklich VIELEN DANK
 
Hey hab jetzt das cdc_acm.ko modul geladen und die Treiber wurden erkannt :)))

Code:
T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=02(comm.) Sub=00 Prot=00 MxPS=16 #Cfgs=  1
P:  Vendor=16c0 ProdID=047a Rev= 1.00
S:  Manufacturer=Yeon
S:  Product=USB Serial
S:  SerialNumber=12345
C:* #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=cdc_acm
E:  Ad=82(I) Atr=03(Int.) MxPS=  16 Ivl=64ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_acm
E:  Ad=03(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms
E:  Ad=84(I) Atr=02(Bulk) MxPS=  32 Ivl=0ms

Jetzt muss ich es noch schaffen ihn richtig zu mounten? als ttyUSB1 oder so?
 
ES LÄUFT!!!!!
Vielen vielen Dank!!!!!!!!!!!!!!!!

Gibt es in diesem forum die Möglichkeit ein +Rep oder ähnliches zu machen?
Bin dir wirklich SEHR dankbar,
ich bin in den verschiedensten Foren angemeldet, und so einen wie DICH gibt es nur seeehr selten!!!
Falls ich mal dir helfen kann (HTML, PHP, C, MobileApps, PS3 oder sonstiges)
schreib mich einfach an....
meine mobile-email-adresse schicke ich dir per PM...

BIade
:)
 
Freut mich, dass es funktioniert hat.

Es kann sein, dass ich in nächster Zeit tatsächlich etwas mit MobileApps in Berührung komme.
 
Hey RalfFriedl :)

Ich kann dir folgendes für MobileAppDev empfehlen:
http://beta.appinventor.mit.edu/

Vorraussetzung:
- Google-Mail-Account
- Java installiert
- Etwas Zeit für Einarbeitung

Möglichkeit:
Android Apps ohne Aufwand erstellen (so einfach war noch nix, einfach ALLES per Drag n Drop. Design auf einer onlineplattform vom MIT & Coding via Java-app auf lokalem Rechner ;)
Falls android-phone vorhanden, geht sogar REAL-TIME-developping :D
fertige App nach java eclipse konverten & via PhoneGap Multi-Platform-fähig machen
_________________________________________________________________________________


Hier mein Stand / Problemstelle:

Ansteuerung läuft via "screen /dev/ttyACM0" in Putty auf der Box :)
Webserver läuft via "httpd -P /var/run/port90.pid -p 90 -c /mod/etc/webcfg.conf -h /var/media/ftp/uStor00/htdocs/ -r "Port 90" im rc-custom :)
Aber ich weiß nicht, was die beste Ansteuerungsmethode ist. (php, cgi, perl, shell-scripts)
Bisher lief es am Rechner über php. Bei Freetz klappen aber noch nicht einmal die sample CGIs :( Nur HTML...
Bekomme trotz chmod +x einen 404 Fehler bei CGIs.

Fragen:
Ich brauche nix zu empfangen vom ttyACM0, nur Nachrichten im folgenden Format senden vom WebIF auf ttyACM0: "aFFFFF00000FF\r\n"
+ die Möglichtkeit diese Nachricht extern einzuspielen, z.B.: index.php?Nachricht=aFFFFF00000FF
kann ich php nachträglich ohne neuflashen integrieren? (USB-Root ist installiert aber noch nicht getraut zu aktivieren)
Oder ist eine andere Methode ratsamer? (CGI, Perl,....)
 
Achja ;)

Falls du kein App an sich machen willst, sondern eine HTML5-framework basierende Webpage machen willst, die direkt auf allen Systemen gleich läuft:
http://www.sencha.com/products/touch

Vorteil:
große Library mit Vielen Sachen: "Sliders, Buttons, Forms,......"
XML Programmiersprache
höchste Kompatibilität

Nachteil:
ca 50-60 MB große Library
Keine native App (Workaround via WebViewer.Component als nativ App, welche deine Website aufruft)
 
Zuletzt bearbeitet:
Danke für die Tipps, es dauert aber noch Monate ehe sich herausstellt, ob ich etwas in der Richtung mache.

Wenn Du USB-Root hast, kannst Du Pakete auf den USB-Stick installieren, ohne neu zu Flashen. Wenn USB-Root aber nicht aktiv ist, dann nicht.
Der eingebaute httpd will CGIs in cgi-bin haben.
Du kannst auch einen Apache mit PHP erstellen, oder PHP mit lighttpd. Für das was Du schreibst sollte aber auch etwas Shell als CGI ausreichen.

Lass mal strace auf den httpd laufen, vielleicht gibt das Hinweise, wo es hängt.
 
@RalfFriedl:

Vielen Dank für die Infos :)

Es läuft mittlerweile auf 3 Arten:
1) screen /dev/ttyACM0 **manuelle Eingabe**
2) echo "Code" > /dev/ttyACM
3) via php
Es ist soo gut, dass ich dich "getroffen" habe :)

@ alle:

Leider stürzt meine Box regelmäßig (alle 3-5 min) ab und startet neu :(
Kompilier gerade neu...
Weiß jemand ob ein dmesg ausreicht, um die Quelle des Übels zu finden?

Liebe Grüße
Biade
 
Wenn Du das CGI als Shell Skript schreibst, kannst Du genau das machen. Das Skript muss dafür entweder als Root ausgeführt werden, oder die Rechte für das Gerät entsprechend anpassen.
An die GET Parameter in der URL kommt man im Skript sicher auch, ich weiß aber nicht auswendig, wie.

Was war denn die Ursache für die Abstürze, für den Fall, dass auch jemand anders das gleiche Problem hat?
 
Ich bin mir nicht genau sicher, habe einige Pakete herausgenommen, aber ich glaube, es war der Experimental Remove-Patch "VoIP & ISDN files"...

PHP klappt, aber CGI nicht :(

Server läuft via
{
HOMEDIR="/var/media/ftp/uStor00/webpage/htdocs/"
while [ ! -d "$HOMEDIR" ]; do sleep 5; done
httpd -P /var/run/port90.pid -p 90 -c /mod/etc/webcfg.conf -h "$HOMEDIR" -r "Port 90"
} &

index.cgi ist in /var/media/ftp/uStor00/webpage/htdocs/cgi-bin/ & sieht so aus:
#!/bin/sh

echo -en "Content-Type: text/html\r\n\r\n"
cat << EOF
<html>
<head>
<title>Index of ${QUERY_STRING}</title>
</head>
<body>
<h2>Index of ${QUERY_STRING}</h2>
<table cellspacing="2" border="0">
<tr align="left"><th>Name</th><th>&nbsp;&nbsp;Last modified</th><th>&nbsp;&nbsp;Size</th></tr>
<tr><td colspan="3"><hr></td></tr>
<tr><td>$([ "$QUERY_STRING" == "/" ] || echo '<a href="..">..</a>')</td></tr>
$(
exec 2>/dev/null
date_format1="[A-Z][a-z]{2} [A-Z][a-z]{2} [ 123][0-9] [0-9]{2}:[0-9]{2}:[0-9]{2} [0-9]{4}"
replace="<tr><td><tt><a href='\3'>\3<\/a><\tt><\/td><td><tt>\&nbsp;\&nbsp;\2<\tt><\/td><td align=right><tt>\&nbsp;\&nbsp;\1<\tt><\/td><\/tr>"
date_format2="([A-Z][a-z]{2} [A-Z][a-z]{2} ) ([0-9] [0-9]{2}:[0-9]{2}:[0-9]{2} [0-9]{4})"
ls -lLep ../${QUERY_STRING} \
| ([ "$QUERY_STRING" == "/" ] && grep -v 'cgi-bin' || cat) \
| awk '{printf("%5d %s\n", NR,$0)}' \
| sed -r 's/^([0-9 ]+ d)/X \1/' \
| sed -r 's/^([0-9 ]+)/Y \1/' \
| sort \
| sed -r 's/^([^ ]+ +){6}(.*)/\2/' \
| sed -r 's/^[0-9]+(.*)\/$/---\1/' \
| sed -r "s/^([-0-9, ]+) ($date_format1) +(.*)$/$replace/" \
| sed -r "s/$date_format2/\1\&nbsp;\2/"
)
</table>
</body>
</html>
EOF

Habe "chmod -R +w index.cgi" im Verzeichnis /var/media/ftp/uStor00/webpage/htdocs/cgi-bin/ ausgeführt

kann weder via 192.168.178.1:90/cgi-bin/index.cgi -> forbidden
noch via 192.168.178.1:90/test/ -> Not found [keine Verzeichnisstruktur]
darauf zugreifen.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.