.titleBar { margin-bottom: 5px!important; }

Mehrere USB RS232 Adapter Softlink

Dieses Thema im Forum "FRITZ!Box Fon: Modifikationen" wurde erstellt von Nico84, 18 Okt. 2011.

  1. Nico84

    Nico84 Neuer User

    Registriert seit:
    27 Sep. 2011
    Beiträge:
    42
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Student
    Hallo. Ich habe 2 FTDI Adapter. Wie kann ich für jeden einen festen Softlink festlegen?

    mit
    Code:
    USBNR=$(grep ftdi /proc/tty/driver/usbserial | cut -d ":" -f1)
    ln -s /dev/ttyUSB$USBNR /dev/meinlink
    kann ich die ja nicht auseinander halten.

    Code:
    usbserinfo:1.0 driver:v2.0
    0: module:ftdi_sio name:"FTDI USB Serial Device" vendor:0403 product:6001 num_ports:1 port:1 path:usb-ahci_hcd-1.3.2
    1: module:pl2303 name:"PL-2303" vendor:067b product:2303 num_ports:1 port:1 path:usb-ahci_hcd-1.2
    2: module:ftdi_sio name:"FTDI USB Serial Device" vendor:0403 product:6001 num_ports:1 port:1 path:usb-ahci_hcd-1.3.3
    
    Aber anhand der Serial muss das doch irgendwie gehen?

    Code:
    T:  Bus=01 Lev=03 Prnt=04 Port=01 Cnt=01 Dev#=  5 Spd=12  MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
    P:  Vendor=0403 ProdID=6001 Rev= 6.00
    S:  Manufacturer=FTDI
    S:  Product=USB Serial Converter
    S:  SerialNumber=FTFR9EFF
    C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 44mA
    I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=ftdi_sio
    E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    
    
    
    
    T:  Bus=01 Lev=03 Prnt=04 Port=02 Cnt=02 Dev#=  7 Spd=12  MxCh= 0
    D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
    P:  Vendor=0403 ProdID=6001 Rev= 4.00
    S:  Manufacturer=fidi
    S:  Product=usb serial conerter
    S:  SerialNumber=ftAKHM09
    C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 44mA
    I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=ftdi_sio
    E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    
    
     
  2. Nico84

    Nico84 Neuer User

    Registriert seit:
    27 Sep. 2011
    Beiträge:
    42
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Student
    Kann ich mir nicht irgendwie ttyUSbx und die Serial anzeigen lassen? Daraus würde sich doch was machen lassen.
     
  3. Nico84

    Nico84 Neuer User

    Registriert seit:
    27 Sep. 2011
    Beiträge:
    42
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Student
    Keiner eine Idee? Hier nochmal mein Problem etwas genauer:

    Ich möchte 3 identische ftdi Adapter anschließen. Das funktioniert soweit auch, nur ist es nach einem Neustart Zufall welcher ttyUSB0, 1, und 2 ist. An 2 davon hängen Mikrocontroller die Daten von der Fritz bekommen.

    Wenn ich nun neu starte, dann ist es schlecht wenn Mikrocontroller 1 die Daten von Mikrocontroller 2 bekommt. Damit kann er nix anfangen. Deshalb würde ich gerne beim Start festlegen welcher ftdi Adapter wo zu erreichen ist.
     
  4. frank_m24

    frank_m24 IPPF-Urgestein

    Registriert seit:
    20 Aug. 2005
    Beiträge:
    17,571
    Zustimmungen:
    1
    Punkte für Erfolge:
    36
    Ort:
    Niederrhein
    Da fällt mir nur eine Möglichkeit ein: Bei FTDI Chips kann man in einem PROM einen Vendor-String unterbringen. Den kann man per udev auswerten und entsprechend Links für definierte Devices erzeugen.
     
  5. Nico84

    Nico84 Neuer User

    Registriert seit:
    27 Sep. 2011
    Beiträge:
    42
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Student
    Den Vendor-String bekomme ich mit Windows eingebaut, nur wie lese ich den nun mit Freetz aus? udev habe ich auf der Box nicht gefunden. Ich kann auch Vendor und Product ID ändern. Nur dann wird er nicht mehr richtig erkannt.
     
  6. frank_m24

    frank_m24 IPPF-Urgestein

    Registriert seit:
    20 Aug. 2005
    Beiträge:
    17,571
    Zustimmungen:
    1
    Punkte für Erfolge:
    36
    Ort:
    Niederrhein
    Ich weiß nicht, wie man den String ohne udev auswerten kann. Der String wird im Rahmen der Hotplug Events übermittelt. Die musst du abfangen und auswerten. Das sollte möglich sein. Ist schon lange her, aber wenn ich mich recht erinnere, kann man dem Kernel ein Userspace Programm mit auf den Weg geben, an das die Hotplug Events übermittelt werden. /sbin/hotplug oder so. Da könnte man ansetzen.

    Wenn du Vendor- und Product-IDs änderst, musst du natürlich auch den Treiber so anpassen, das sie wieder erkannt werden.
     
  7. Nico84

    Nico84 Neuer User

    Registriert seit:
    27 Sep. 2011
    Beiträge:
    42
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Student
    Danke für deine Antwort. Wenn ich den Treiber ändere, muss ich dann das Image neu flashen oder geht das auch so? Das ganze läuft mit USB Root. Ich schätze mal der Treiber muss auch neu kompiliert werden? Bei Windows braucht man ja nur die inf Dateien anpassen.
     
  8. frank_m24

    frank_m24 IPPF-Urgestein

    Registriert seit:
    20 Aug. 2005
    Beiträge:
    17,571
    Zustimmungen:
    1
    Punkte für Erfolge:
    36
    Ort:
    Niederrhein
    Dafür müssen definitiv Treiber und Image neu kompiliert werden. Der einzige unterstützte Weg für das Erstellen von Freetz Images ist aber eh der direkt aus dem Original Source. Von daher sind solche Modifikationen ja kein Problem.

    Ich hoffe inständig für dich, dass du keine vorgefertigten Images verwendest. Im Zusammenhang mit FTDI wirft das ein Licht auf deine Tätigkeit, die ein Fall für den Staatsanwalt sind. Außerdem sind vorgefertigte Images ein hervorragendes Vehikel für Trojaner und andere Schadsoftware.
     
  9. Nico84

    Nico84 Neuer User

    Registriert seit:
    27 Sep. 2011
    Beiträge:
    42
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Student
    Ist das ändern des Treibers etwa nicht legal? Das bietet FTDI doch extra an.

    Natürlich erstelle ich mein Image selber. Nur weiß ich noch nicht wie ich den Treiber dafür wo ändern muss.
     
  10. frank_m24

    frank_m24 IPPF-Urgestein

    Registriert seit:
    20 Aug. 2005
    Beiträge:
    17,571
    Zustimmungen:
    1
    Punkte für Erfolge:
    36
    Ort:
    Niederrhein
    Nein. Es ging um das Verwenden vorgefertigter Images. Vorgefertigte Images mit FTDI Treibern werden bevorzugt für das Hacken von Sky PayTV verwendet. Und das ist illegal.

    In der Quelldatei sind die Vendor- und Product IDs der unterstützen Chips aufgeführt. Da kann man einfach weitere hinzufügen.

    Für einen produktiven Einsatz würde ich das willkürliche Ändern von USB Vendor und Product-IDs aber nicht empfehlen. Zum Testen ist es aber durchaus legitim.
     
  11. Nico84

    Nico84 Neuer User

    Registriert seit:
    27 Sep. 2011
    Beiträge:
    42
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Student
    Nein, das hatte ich nicht vor :D
    An dem einen ftdi Chip hängt ein fs20 Sender.
    Mit dem anderen steuere ich ein Funk Thermostat ETH comfort100 Funk Thermostat ETH comfort100

    Angesprochen wird alles über ein Webinterface.
     
  12. Nico84

    Nico84 Neuer User

    Registriert seit:
    27 Sep. 2011
    Beiträge:
    42
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Student
  13. Nico84

    Nico84 Neuer User

    Registriert seit:
    27 Sep. 2011
    Beiträge:
    42
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Student
    So nach einem kleinen Blick in die ftdi_sio.h habe ich festgestellt das schon mehrere vendor und product id's hinterlegt sind.

    Code:
    #define FTDI_VID	0x0403	/* Vendor Id */
    #define FTDI_SIO_PID	0x8372	/* Product Id SIO application of 8U100AX  */
    #define FTDI_8U232AM_PID 0x6001 /* Similar device to SIO above */
    #define FTDI_8U232AM_ALT_PID 0x6006 /* FTDI's alternate PID for above */
    #define FTDI_8U2232C_PID 0x6010 /* Dual channel device */
    #define FTDI_RELAIS_PID	0xFA10  /* Relais device from Rudolf Gugler */
    #define FTDI_NF_RIC_VID	0x0DCD	/* Vendor Id */
    #define FTDI_NF_RIC_PID	0x0001	/* Product Id */
    Also warum die nicht nutzen? Klappt bis jetzt super:

    Code:
    0: module:ftdi_sio name:"FTDI USB Serial Device" vendor:0403 product:6001 num_ports:1 port:1 path:usb-ahci_hcd-1.1
    1: module:ftdi_sio name:"FTDI USB Serial Device" vendor:0403 product:6001 num_ports:1 port:1 path:usb-ahci_hcd-1.3.2
    2: module:ftdi_sio name:"FTDI USB Serial Device" vendor:0403 product:6001 num_ports:1 port:1 path:usb-ahci_hcd-1.4
    3: module:ftdi_sio name:"FTDI USB Serial Device" vendor:0403 product:[COLOR="red"]6006 [/COLOR]num_ports:1 port:1 path:usb-ahci_hcd-1.3.3
    
    Als nächstes werde ich versuchen Infrarot Befehle zu empfangen und auszusenden.