USB Fernanschluss auch unter Linux (und OS X?) verfügbar

ao

Aktives Mitglied
Mitglied seit
15 Aug 2005
Beiträge
2,158
Punkte für Reaktionen
2
Punkte
38
Hallo,

hier hat prodigy7 eine .NET Bibliothek für die Fritz!Box erstellt, um den USB Fernanschluss der Fritz!Box auch unter Linux zum laufen zu bekommen.
Könnten die Freetz-Entwickler bitte einmal einen Blick darauf werfen und nachfragen, ob es in Freetz aufgenommen werden kann? Vielen Dank!

EDIT1:
Da hierfür Freetz nicht nötig ist, steht der Thread nun evtl. im falschen Unterforum, sorry.

EDIT2:
Da es hier nun aber wohl doch eine interessante Diskussion gibt und es nachher vielleicht doch auch mit Freetz zu tun hat (das wissen die Gurus hier am besten), kann der Thread vieleicht doch erst einmal hier bleiben.
Falls nicht, bitte ich die Moderatoren, ihn nach dort zu verschieben.
 
Zuletzt bearbeitet:
Hallo,

so wie ich das sehe, ist FritzBoxNET eine PC-Software, keine Firmware-Modifikation für die Box, oder? Kann man das überhaupt in freetz integrieren?
 
Oh, danke, Frank, ich habe es wohl falsch verstanden, da ich es bisher nicht unter Linux testen konnte.
Man benötigt ja wohl kein Freetz, um den USB Fernanschluss nutzen zu können - egal, ob unter Windows XP oder Linux.

Falls sich hier niemand mehr meldet, kann man den Thread dann wohl auch schließen.
Nochmals danke für Deinen Hinweis!
 
Das hat wirklich rein gar nichts mit freetz zu tun, sondern wirklich nur mit dem Linux-Rechner, auf dem das läuft. Da müssen wir gar nichts bei machen...
 
Ok, danke für den Hinweis. Entsprechend habe ich oben auch ein EDIT eingefügt.
Sofern es aus Moderatoren-Sicht (noch) keinen Anlass gibt, diesen Thread aus dem Freetz-Unterforum herauszuholen, warten wir mal noch ab.
Vielleicht kommt ja noch ein Freetz-Bezug ins Spiel. ;)
 
Zuletzt bearbeitet:
Vielleicht noch eine Anmerkung von mir ;-) Ich möchte gerne den Fernanschluss unter Linux nutzbar machen... dafür sollen aber keine Modifikationen an der Box notwendig sein.
Momentan bin ich nur soweit, das Control-Protokoll "entschlüsselt" zu haben, der Rest, also die Simulation eines USB-Anschlusses (RAW-Daten), ist noch weit weg... entweder ich kann irgendwann mal Kerneltreiber programmieren oder es findet sich vorher jemand, der das kann und macht. Bodega wollte es sich eventuell mal anschauen, da er das ganze recht interessant findet - was wirklich sehbares in "der Ecke" gibts aber noch nicht.
 
Hallo prodigy7,

meinst Du, dass dann der USB-Fernanschluss auch unter OS X verfügbar sein wird?

Den Thread-Titel habe ich mal angepasst, damit der Thread nicht ganz so sinnfrei bleibt.
icon11.gif
 
Im Endeffekt kommt es auf die Art der Implementierung an ... wenn das Know-How aber vorhanden ist, das ganze unter Linux zum laufen zu bringen, sollte OS X auch kein Problem mehr sein. Der Steuerteil würde wahrscheinlich jetzt schon relativ Problemlos mit mono unter OS X laufen.
 
entweder ich kann irgendwann mal Kerneltreiber programmieren oder es findet sich vorher jemand, der das kann und macht. Bodega wollte es sich eventuell mal anschauen, da er das ganze recht interessant findet - was wirklich sehbares in "der Ecke" gibts aber noch nicht.

Evtl. kann der USB/IP-Treiber als Grundlage dienen, siehe http://usbip.sourceforge.net/
 
Ich hab da auch noch ein anderes Remote USB Projekt gefunden, das sich für mich sogar vielversprechender anhört... das Problem ist, das ich in C/C++ einfach derzeit nicht genug Know-How habe und mir fehlt derzeit die Zeit, mich einzuarbeiten.
 
Hi,

ich bin mir nicht sicher, aber ich befürchte, man muss die Geräteansteuerung auf der USB-Hostseite komplett neu programmieren (Manuel, kannst du mir den Link zum alternativen Projekt mal mailen :rolleyes:).

Die Treiberentwicklung finde ich noch nicht ganz trivial und man müsste, so wie ich das rauslese, auch eine Authentifizierung per SOAP durchführen.

Wenn man einen USB-Stick frei gibt und sich per Software verbindet, macht der AVM-USB Fernanschluss folgendes:
Code:
S = Sender
R = Receiver

2 bytes Länge
2 bytes ??
4 bytes ?????
Rest: RAW USB????

		      PROBE ???:
R: 2900 0184 ffff0000 00090220000101048032 090400000 2080650050705810240000007050202400000
S: 1100 0104 ffff0000 008006 02 030904ff00
R: 2b00 0184 ffff0000 0022033c005500530042002000500052004f0044005500430054003e00200020002000
S: 1100 0104 ffff0000 008006 01 030904ff00
R: 1b00 0184 ffff0000 0012033c0055005300420020004d0046003e00
S: 1100 0104 ffff0000 008006 03 030904ff00
R: 2b00 0184 ffff0000 0022033200330044004500380045003000380038004600320030003800460031003800

		      CONTROL_TRANSFER:
S: 1100 0104 01000000 008006000100001200	(SETUP_PACKET)
R: 1b00 0184 01000000 0012011001000000406f060080011001020301

		      CONTROL_TRANSFER:
S: 1100 0104 01000000 008006000200000900	(SETUP_PACKET)
R: 1200 0184 01000000 00090220000101048032

		      CONTROL_TRANSFER:
S: 1100 0104 01000000 008006000200002000	(SETUP_PACKET)
R: 2900 0184 01000000 00090220000101048032 090400000    (2080650050705810240000007050202400000 ???)

		      CONTROL_TRANSFER:
S: 1100 0104 01000000 008006000300000200	(SETUP_PACKET)
//? S: 0a00 0003 ffff0000 0101
R: 0b00 0184 01000000 000403

		      CONTROL_TRANSFER:
S: 1100 0104 01000000 008006000300000400
R: 0d00 0184 01000000 0004030904
		      
		      CONTROL_TRANSFER:
S: 1100 0104 01000000 008006030309040200
R: 0b00 0184 01000000 002203

		      CONTROL_TRANSFER:
S: 1100 0104 01000000 008006030309042200
R: 2b00 0184 01000000 0022033200330044004500380045003000380038004600320030003800460031003800

		      SELECT_CONFIGURATION:
S: 0900 0503 01000000 01
R: 0800 0583 01000000

		      SELECT_INTERFACE:
S: 0a00 0603 01000000 0000
R: 0800 0683 01000000

		      CONTROL_TRANSFER:
S: 1100 0104 01000000 00a1fe000000000100
R: 0a00 0184 01000000 0000

Der Fernanschluss schickt auch die ganze Zeit nen Probe, sodass man annehmen muss, das er auf das Anstecken per Software wartet :ziggi: - Vielleicht passiert das aber erst nach der Authentifizierung.
Es gibt also noch einige Fragezeichen :eek:
 
Hey Marco!
Die Treiberentwicklung finde ich noch nicht ganz trivial und man müsste, so wie ich das rauslese, auch eine Authentifizierung per SOAP durchführen.
Jap - du kannst dir ein Device nur "schnappen", wenn du dich erfolgreich gegenüber der Box bei dem entsprechenden SOAP-Kommando authentifizierst!

Das alternative Projekt: War mit etwas Sucherei verbunden (beim ersten mal hab ich es auch nur durch Zufall entdeckt gehabt), hab es aber wieder gefunden: http://www.incentivespro.com/downloads.html -> "USB Server & USB Client for Linux"
 
Hi,

ich bin mir nicht sicher, aber ich befürchte, man muss die Geräteansteuerung auf der USB-Hostseite komplett neu programmieren

Das praktische am USB/IP ist, dass das bereits in den Linux Staging Zweig aufgenommen ist, also wahrscheinlich demnächst in den Mailline-Kernel wandern wird.
Das Projekt kommt laut seiner Beschreibung ohne Änderungen an anderen Teilen des Kernels aus, es sollte also relativ einfach möglich sein, den mittleren Teil, der das USB/IP-eigene Protokoll spricht durch einen anderen zu ersetzen, der das AVM-Protokoll spricht. Der tiefere Teil (IP) und der höhere Teil (USB) kann dabei unangetastet bleiben, zumindest, wenn das Projekt sauber programmiert wurde (dafür spricht die Aufnahme in Linux Staging).

Evtl. kann man sich sogar mit den USB/IP-Leuten zusammen tun und das AVM-Protokoll mit in das Projekt einbauen.
 
Die Frage wird sein, inwieweit konzeptionell das ganze zu dem passt was AVM gebaut hat. Ich denke, was Sinn machen könnte, wäre bestimmte Teile zu "recyclen" so dass die Akzeptanz für die spätere Aufnahme in den Kernel größer wäre.
Im Endeffekt - wenn irgendjemand mal genauer weis, wie das ganze funktioniert, wird man wahrscheinlich auch am besten beurteilen können, wie man das ganze angehen kann.

@bodega: Soll ich dir eventuell irgend n Sample-App zusammenbauen dass dir hilft, mehr oder besser an Traffic zu kommen den du analysieren kannst?
 
Hallo, Ihr Gurus! ;)
Da Eure Diskussion wirklich interessant ist, bin ich doch froh, den Thread gestartet zu haben. Aber mit Freetz hat das (noch) nichts zu tun, oder?
Wenn Ihr wollt, ändere ich den Thread-Titel noch einmal etwas ab bzw. bitte auch die Moderatoren, ihn woanders hinzuschieben (z.B. "Andere Software"?).
Ansonsten: Herzlichen Dank für Eure tollen Ideen und Umsetzungen!
icon14.gif
 
Na, dann verschieben die Moderatoren (Frank?) diesen Thread hoffentlich nach dort.
 
Hallo,

so, verschoben. Bitte weiter diskutieren.
 
prodigy7 schrieb:
@bodega: Soll ich dir eventuell irgend n Sample-App zusammenbauen dass dir hilft, mehr oder besser an Traffic zu kommen den du analysieren kannst?
Wenn das nicht allzuviel Arbeit macht, gerne. Ich denke, dass könnte auch anderen helfen, die eventuell mehr Ahnung vom USB haben als ich :cool:

Ich wollte gestern auch mal den Traffic zwischen USB/IP und Aura vergleichen, doch habe ich eine Verbindung zum USB/IP nicht hinbekommen. Kompilieren ist kein Problem, aber ich bekomm den usbipd nicht am Laufen :( (i386).
Falls jemand zwei Paketmitschnitte hat (selben Massenspeicher!), dann immer her damit.

Wenn es sehr ähnlich ist, reicht es wahrscheinlich aus, den TCP-USB Header im VHCI-Modul anzupassen.
 
Okay ... anbei ein kleines Programm, was nichts anderes macht als alle nicht verbundenen USB-Devices zu verbinden.
Ich hab es mal in 2 Umgebungen getestet:

1) Windows Maschine - da mit dem AURA Gedöns im Hintergrund ... da konnte ich Devices connecten
2) Linux - wenn es ums verbinden ging, bekomme ich eine Fehlermeldung.

Ich kann mir vorstellen, dass das ganze ein Wechselspiel zwischen USB-Kommunikation und Kontrolkanal ist. Wenn eines von beiden nicht stimmt, gehts nicht weiter ... deswegen müssen wir glaubich uns jetzt Schritt für Schritt rantasten.
 

Anhänge

  • AURAUSBConnect-0.1.zip
    15.7 KB · Aufrufe: 28
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.