Hallo, in einer Diskussion mit Freunden ist gerade eine Idee aufgetaucht: Wäre es machbar, dass ein auf PC A freigegebenes Verzeichnis auf einem per USB-Kabel verbundenen PC B auftaucht, als wäre ein USB-Stick angeschlossen worden? Einziges Hardware-Problem, dass ich z.Zt. sehe, wäre der unerwünschte Kontakt der Spannungs-Pins auf beiden Seiten, oder? Softwareseitig müsste es machbar sein. Ich weiss, dass es Netzwerk-Emulationen per USB bereits gibt, mich reitzt aber der Gedanke an dieser Stick-Emulation ... Frank
Sowas machen die USB-USB Kabel die nicht auf Netzwerkemulation beruhen. Jeder der beteiligten PCs sieht ein USB-Laufwerk das in Wirklichkeit der andere PC ist. bye Frank
Das macht doch nichts kannst ja bei einem den Netzstecker ziehen. Suchfunktion
Das müsste dann evtl. auf einer Seite sogar ohne extra Software gehen (z.auf einem Mac)? Frank
Der Client-Rechner erwartet von deiner Stick-Simulation ein Block-Device auf der er blockweise Lesen und Schreiben kann. Dateisystem macht er dann selber. d.H. die einfache Lösung wäre: der Server stellt einfach eine Datei über die Simulation zur Verfügung, der Client kann darin nach belieben rumwurschteln. Wenn der Client nicht verbunden ist, kann der Server die Datei mounten. Gleichzeitiger Zugriff ist nicht möglich (Dateisystem würde kaputtgehen). Die schwierigere Lösung wäre, dein Server erzeugt on-the-fly eine virtuelle FAT-Struktur für das freigegebene Verzeichnis. Auch dann ist gleichzeitiger Zugriff nur sehr beschränkt möglich, da der Client natürlich fleissig seinen Disk-Cache benutzt, und Änderungen, die der Server vornimmt, nicht mitbekommt.
Wenn ich dich recht verstehe, wäre es eine Lösung, dass der Server so lange nicht schreiben darf/kann, wie ein Client verbunden ist. Da das Ganze nur in Software spielt, müsste es auch möglich sein, dem Clienten das Abziehen und Anstecken nur vorzumachen ... Frank
das erste Problem ist schon, dass man 2 USB-Hosts, was ja die beiden Rechner sind, nicht einfach über ein 1:1 Kabel verbinden kann. Ein normaler USB Controller kann kein USB Device spielen. Für sowas gibts USB on the Go Controller, oder spezielle Entwicklungskarten, die im PCI(e) stecken und ein universelles USB Device darstellen.
Selbst wenn die Hardware kein Problem darstellte, dürfte der PC, der sich als USB-Stick verkauft, selbst nicht aktiv laufen. Sonst würden zwei Rechner aneinander vorbei im gleichen Dateisystem herumwerkeln - was Datenverlust garantiert. Denkbar wäre allenfalls ein Betrieb analog zum "Target Mode", den Apple-Rechner auf ihrer Firewire-Schnittstelle anbieten. Bei diesem wird ein Rechner beim Starten mit einer speziellen Tastenkombination zur externen Firewire-Platte degradiert, so daß andere Rechner auf diese zugreifen können. Der die Platte anbietende Rechner macht in dieser Betriebsart nichts anderes. Jedoch ist dies mit USB nicht ohne weiteres möglich, da bei USB immer ein Host (der PC) mit einem Device kommuniziert, nie aber zwei Hosts miteinander. Bei USB OTG ("on-the-go") sieht das anders aus, aber die in PC-Chipsätzen verbaute USB-Hardware unterstützt kein OTG.
hi leutz, bin schon froh dass ich diesen thread gefunden habe weil ich dachte dass es sowas noch gar nicht gibt. Ich möchte keine 2 Rechner miteinander verbinden sondern einfach einen USB-Stick mit meinem PC simulieren und an ein Mediengerät anschließen. Da heutzutage jeder Fernseher, Stereoanlage, DVD-Player etc. USB-Eingänge besitzt um MP3´s abzuspielen oder Bilder anzuzeigen und man nicht immer ein usb-laufwerk oder einen usb-stick zur verfügung hat, wäre es doch praktisch einfach sein notebook an das gerät anzuschließen. Auf diesem existiert ein Ordner dessen Inhalt vom Betriebssystem während des Simulationsvorganges natürlich nciht verändert werden kann. Kenn mich mit der Programmierung nicht so gut aus. Theoretisch müsste aber sowas machbar sein gruss martin p.s. andererer anwendungsfall: Mein NAS Server hängt an einem 100Mbit netzwerk was nicht allzuschnell Daten Schaufeln kann. Einen PC kann man dort nicht direkt anschließen. Mithilfe der Simulationssoftware schon.
Eine Simulationssoftware reicht nicht. Du brauchst *spezielle Hardware*, die den PC in die Lage versetzt, ein USB-Device zu simulieren.
Das USB-Protokol ist mithilfe von Master und Slave implementiert. Da Dein PC (meist) immer Master ist muss die Sticks/Festplatten usw. Slave sein => DVD-Player, Fernseher etc sind auch Master. Und die Master-Master-Kommunikation ist in dem Protokoll leider nicht vorgesehn. Aber es gibt ja auch die "USB-Netzwerkkabel" zum Verbinden von 2 PCs. Bei denen ist natürlich gewisse Hardware nötig. Meine Frage ist nun, ob man nicht mithilfe anderer Hardware (entsprechende µController und Schaltungen) ein USB-Stick emulieren kann... Man müsste doch nur die Befehle die der Master (DVD-Player etc.) übersetzen und zum Beispiel die angeforderte Datei entsprechend wie es ein USB-Stick zurückschicken. Das sind so meine ersten Gedanken, leider fehlt mir weiteres Hintergrundwissen bzgl dem USB-Protokol und wie Speichersysteme aufgebaut sind. Wäre dankbar für weitere Tipps in der Richtung =) Und falls es wirklich noch keiner gemacht hat, wäre ich auch an der Entwicklung dieses Systems interresiert, hoffe auf Mitstreiter :) mfg slashbrain
slashbrain schrieb: > Das USB-Protokol ist mithilfe von Master und Slave implementiert. Da > Dein PC (meist) immer Master ist muss die Sticks/Festplatten usw. Slave > sein => DVD-Player, Fernseher etc sind auch Master. Und die > Master-Master-Kommunikation ist in dem Protokoll leider nicht vorgesehn. > > Aber es gibt ja auch die "USB-Netzwerkkabel" zum Verbinden von 2 PCs. > Bei denen ist natürlich gewisse Hardware nötig. Meine Frage ist nun, ob > man nicht mithilfe anderer Hardware (entsprechende µController und > Schaltungen) ein USB-Stick emulieren kann... Sowas gibt's von vielen Herstellern als Appnote (z.B. Atmel, Microchip, NXP etc.). Stichworte wären: [Hersteller] USB MSD
slashbrain schrieb: > Aber es gibt ja auch die "USB-Netzwerkkabel" zum Verbinden von 2 PCs. > Bei denen ist natürlich gewisse Hardware nötig. Meine Frage ist nun, ob > man nicht mithilfe anderer Hardware (entsprechende µController und > Schaltungen) ein USB-Stick emulieren kann... > > Man müsste doch nur die Befehle die der Master (DVD-Player etc.) > übersetzen und zum Beispiel die angeforderte Datei entsprechend wie es > ein USB-Stick zurückschicken. Ein USB-Stick weiß aber nichts von Dateien. Der kennt nur Sektoren. Das Dateisystem wird vom DVD-Player da "reininterpretiert". Das bedeutet, daß der PC selbst die Partition, die du dem DVD-Player als USB-Stick simulieren willst, nicht verwenden darf, solange diese Simulation läuft. Alternativ generiert man, wie schon im Thread vorgeschlagen, on the fly ein simuliertes Dateisystem mit den Files drin. Dann darf aber immer noch vom PC aus keine Änderungen am Datei- oder Verzeichnisinhalt gemacht werden, weil der Player nicht davon ausgeht, daß sich ohne sein Zutun Daten auf dem Stick ändern.
ja, aber das ist ja ohne weiteres möglich. Man kann quasi ein Image erzeugen, welches sich in den Emulator einbinden lässt. Direkt darauf kann dann nur der andere Master virtuell zugreifen.
Hi, über die PC Seitige Darstellung würde ich mir erst einmal die winigsten Gedanken machen. Der Knackpunkt ist ja die Hardware IN DEM KABEL. Und da dort eh nichts ohne CPU geht kann man hier auch das Betriebssystem dieser sicher so aufsetzen das es auf dem "Speicher-PC" ohne größere Problem - maximal mit einem einfachen Programm läuft ;-) Im Prinzip braucht man halt entweder einen schnellen Prozessor mit zwei USB Schnittstellen, die völlig unabhängig voneinander agieren kann, oder halt (zumindest für erste Heimversuche) einfach zwei einfache µC mit USB Schnittstelle die miteinander in Verbindung (PArallel, SPI/TWI oder wie auch immer) stehen. Für die weitere Beschreibung habe ich jetzt die ZWEI µC geschichte im Kopf. In einem schnellen Proz oder FPGA mit zwei getrenten Schnittstellen währe es von der Funktionsweise ja ähnlich, nur schneller. (die ZWEI µC Version kann zwar funktionieren, aber eher zur Demonstration denke ich, schnelle Dinge werden am Flaschenhals zwischen den Proz. scheitern... ) Ausserdem ist das sowieso nur sehr Grob und Oberflächlich als Idee für einen Lösungsansatz geschildert. Wenn man das ganze so aufbaut, dann würde je ein µC an einem Computer hängen. Der eine µC gibt sich als Mass Storage Device aus und simuliert damit den USB Stick. Die Daten die er zur Verfügung stellt bekommt er aber nicht aus einem Speicher sondern von dem zweiten µC. Der zweite µC gibt sich gegenüber dem Computer der als Speicher fungieren soll als Custom Device aus (alternativ währe vieleicht auch Netzwerk möglich?). Für das Custom device braucht man nun ein Programm das gesteuert durch den µC entweder die Daten von der Platte Liest oder diese beschreibt. In einem ganz normalen Verzeichnis auf der Platte. Der Ablauf sähe also so aus: Das Kabel wird auf der "Speicher" Seite eingesteckt, Das Gerät meldet sich als Custom an, das Programm startet, das Verzeichniss wird gelesen und die Daten an den µC (CD) übergeben. Entweder im PC Programm oder in einem der beiden µC findet nun eine Aufbereitung der Daten so statt, das diese als Gültige Daten eines Speichersticks übertragen werden können... Nun wird das Kabel auf der Seite angesteckt an der ein Stick simuliert werden soll. Der µC (MS) meldet sich als MAssenspeicher an mit daten die zu dem vom µC (CD) übermittelten Werten passen. Das Inhaltsverzeichniss des Plattenverzeichnisses wird so umgewandelt übertragen das es für den anderen PC gültig ist. (Zum Beispiel wird jedem Simulierten Cluster ein reales Cluster samt dessen Inhalt zugeteilt) Soll nun auf eine Datei zugegriffenwerden, so will der PC ja die entsprechenden Speicherstellen lesen. Diese Aufforderung wird nun vom µC (MS) an dem µC (CD) weitergegeben der es wiederrum an sein Programm im PC (Speicher) weitergibt. Hier wird dann der Inhalt des Clusters gelesen der dem simulierten Cluster entspricht. Die Daten gehen dann den Weg _Platte->PRG>µC (CD) µC(MS) PC- Arbeitsspeicher. zurück. Ich bin zwar eher ein Hardwaremensch der eigendlich kaum mit echten "Betriebssystemen" im Sinne von Dateimanagement arbeitet, aber das sollte doch Möglich sein. (Beruflich habe ich bisher nur 8Bit µC gemacht, fange jetzt auf der Hobbyschine an mich in die 32Bit Welt richtig einzuarbeiten) Und da die Verbindung BetriebsPRG-Festplatte ein ganz normaler Dateizugriff ist sollte es doch auch hier kein Problem geben, oder? Evtl. könnte man es ja sogar hinbekommen das sich der eine µC anstelle als CustomDvice mit eigener Software einfach als NetzwerkDevice anmeldet und die Dateizugriffe des einen Rechners einfach in Netzwerkzugriffe auf den anderen Rechner übersetzt. Dann würde sogar das ZusatzPRG entfallen. Das die ganze Geschichte natürlich wahrscheinlich ineffizient ist und eigendlich wegen der Möglichkeit der USB-USB Netzwerklösung für 99% der denkbaren Anwendungsfälle eh überflüssig ist, das steht natürlich auf einem anderen Blatt. Gruß Carsten
Carsten Sch. schrieb: > Der Ablauf sähe also so aus: > Das Kabel wird auf der "Speicher" Seite eingesteckt, Das Gerät meldet > sich als Custom an, das Programm startet, das Verzeichniss wird gelesen > und die Daten an den µC (CD) übergeben. Entweder im PC Programm oder in > einem der beiden µC findet nun eine Aufbereitung der Daten so statt, das > diese als Gültige Daten eines Speichersticks übertragen werden können... Hallo, das geht so wohl nicht: Sticks gibt es mit 16 GB, willst du da einen µC mit einigen GB RAM dranhängen? Daten müssen bei Bedarf und "on the fly" vom PC geholt werden. Der Stick ist rein virtuell. Gruss Reinhard
Den Ansatz eines "virtuellen USB-Sticks" übrigens verfolgt AVM mit der Kombination aus Fritzbox und Fritz-USB-WLAN-Stick. Derzeit schlummert das Projekt noch in der Betaphase: http://www.avm.de/de/Service/Service-Portale/Labor/7270_streaming_stick/labor_start_streaming_stick.php
Rufus t. Firefly schrieb: > Derzeit schlummert das Projekt noch in der Betaphase Vermutlich genauso wie der Autor > Autor: Frank (Gast) > Datum: 19.02.2009 12:21 dieses Beitrages ;)
Auch wenn der Beitrag schon ein paar Jahre alt ist, möchte ich anfügen, dass es inzwischen einen USB-Stick zu kaufen gibt, der seinen scheinbaren Inhalt über WLAN als Stream erhält. Er heißt Jak und wird in der aktuellen c't als Lösung für Smart-TVs und Autoradios ohne WLAN dargestellt: http://www.heise.de/ct/inhalt/2013/09/052/ Hier ist die Webseite des koreanischen Herstellers: http://www.jjakjjak.co.kr/about_essential.php
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.