Hallo zusammen,
ich habe ein Meßgerät mit einer USB-Buchse, das einen FAT32-formatierten
USB-Stick erwartet, auf den Konfigurations- und Meßdaten gespeichert
werden können.
Ich frage mich, ob es möglich wäre, dem Gerät ein USB-Gerät zu
präsentieren, das ihm das gewünschte Dateisystem bietet, gleichzeitig
aber auch (ohne daß das Gerät es mitbekommt) als Netzwerk-Freigabe
fungiert - einerseits um Daten schneller zwischen PC und Gerät
auszutauschen, andererseits um die USB-Buchse des Meßgeräts etwas länger
leben zu lassen.
Hat schon jemand derartiges gesehen?
Viele Grüße
W.T.
Walter Tarpan schrieb:> Hat schon jemand derartiges gesehen?
So etwas kann nicht funktionieren, da der Dateisystemtreiber, der das
Ding als USB-Massenspeicher anspricht, nichts davon weiß, daß ein
zweiter Dateisystemtreiber hinterrücks (über das Netzwerk) ebenfalls auf
dem USB-Stick herumrührt.
Das führt bei Schreibzugriffen zu sehr drolligen Effekten.
Rufus Τ. Firefly schrieb:> So etwas kann nicht funktionieren,
ja, könnte man denken. Aber scheinbar haben Hersteller dafür eine
Möglichkeit gefunden
Transcend Wi-Fi SDHC
wenn du diese in einen Kartenleser steckst, dann könnte das
funktionieren. Das Problem ist aber das bei den Karten meines Wissen es
meist über die "Cloud" vom Anbieter geht.
Gewisse Mikrocontroller können ja USB Massenspeicher in ihrem RAM
emulieren. Vielleicht könnte so ein uC dann ja über Ethernet seinen RAM
Inhalt weiterreichen. Bin mir aber da auch nicht so sicher, wie
kompliziert sowas ist.
Rufus Τ. Firefly schrieb:> Walter Tarpan schrieb:>> Hat schon jemand derartiges gesehen?>> So etwas kann nicht funktionieren, [...]
Da gehen die Meinungen aber auseinander, denn Du hast eventuell ein ganz
ähnlich funktionierendes Gerät in der Hosentasche in Form eines Android
Mobiltelefons oder Tablets.
Android kann die oft vorhandene SD-Karte als USB Massenspeicher
freigeben,
kann während dessen aber selbst natürlich nicht drauf lesen oder
schreiben.
Allerdings kann ich bei meinem Telefon den Freigabe Modus nur bei
abgestecktem USB Kabel ändern.
Wenn man das via Wifi steuern können möchte, dann brauchts wohl
mindestens Root Privilegien und eine passende App.
Was änliches habe ich mal mit einem µC gemacht, dort habe ich den
Massenspeicher als "removable" geflaggt und dann einfach virtuell
ausgeworfen, wenn der µC selbst drauf zugreift.
Jim Meba schrieb:> Da gehen die Meinungen aber auseinander, denn Du hast eventuell ein ganz> ähnlich funktionierendes Gerät in der Hosentasche in Form eines Android> Mobiltelefons oder Tablets.>> Android kann die oft vorhandene SD-Karte als USB Massenspeicher> freigeben,
nein, das ist etwas anders. Das wird nicht da Bockdevice direkt
freigegeben sondern es wird eine API für den Zugriff bereitstellt. Das
Handy kann dabei jedes Dateisystem haben was es will.
Peter II schrieb:> ja, könnte man denken. Aber scheinbar haben Hersteller dafür eine> Möglichkeit gefunden>> Transcend Wi-Fi SDHC
So etwas funktioniert nur, wenn der "Host", also das Gerät, in dessen
SD-Karten-Slot die Karte steckt, so etwas unterstützt. Digitalkameras
machen das, unter anderem auch dadurch, daß sie ein sehr rigoros
eingeschränktes Dateisystem verwenden. Damit erkennt einerseits die
WLAN-Seite, wann ein Dateisystemzugriff abgeschlossen ist, und
andererseits die Kamerafirmware, wann sie sich das Dateisystem nach
Änderungen durch den WLAN-Teil noch mal genauer ansehen sollte.
Aber in irgendwelchen Geräten, die nichts davon wissen, daß es
derartige Spezialkarten gibt, geht so etwas nicht.
Jim Meba schrieb:> Android kann die oft vorhandene SD-Karte als USB Massenspeicher> freigeben,> kann während dessen aber selbst natürlich nicht drauf lesen oder> schreiben.
Das ist dann kein gleichzeitiger Zugriff mehr. Solange die Karte in
einem SD-Karten-Slot steckt, darf kein WLAN-Zugriff erfolgen.
Rufus Τ. Firefly schrieb:> Aber in irgendwelchen Geräten, die nichts davon wissen, daß es> derartige Spezialkarten gibt, geht so etwas nicht.
aber das Messgerät könnte das gleiche Verhalten haben wie die Kameras.
Ein versuch ist es wert, wenn er so etwas braucht. Meist erfolgt der
Zugriff über WLAN nur lesend, das macht weniger Probleme als wenn beide
Seiten schreiben dürfen.
Rufus Τ. Firefly schrieb:> So etwas kann nicht funktionieren, da der Dateisystemtreiber, der das> Ding als USB-Massenspeicher anspricht, nichts davon weiß, daß ein> zweiter Dateisystemtreiber hinterrücks (über das Netzwerk) ebenfalls auf> dem USB-Stick herumrührt.
Eine Netzwerkfreigabe wuerde den Massenspeicher aber nicht auf
Blockebene freigeben. Wenn man die Daten z.B. readonly ueber NFS oder
SMB exportiert sollte es technisch funktionieren.
ZigZeg
ZigZeg schrieb:> Eine Netzwerkfreigabe wuerde den Massenspeicher aber nicht auf> Blockebene freigeben. Wenn man die Daten z.B. readonly ueber NFS oder> SMB exportiert sollte es technisch funktionieren.
nein. irgendjemand muss aber das Dateisystem umsetzen und das sollte nur
ein Gerät sein.
Wer soll es denn exportieren?
Hallo zusammen,
Rufus Τ. Firefly schrieb:> So etwas kann nicht funktionieren, da der Dateisystemtreiber, der das> Ding als USB-Massenspeicher anspricht, nichts davon weiß, daß ein> zweiter Dateisystemtreiber hinterrücks (über das Netzwerk) ebenfalls auf> dem USB-Stick herumrührt.>> Das führt bei Schreibzugriffen zu sehr drolligen Effekten.
Auf den ersten Blick ist das richtig. Auf den zweiten Blick allerdings
gar nicht so schlimm: Das Gerät muß ja darauf vorbereitet sein, daß ein
echter USB-Stick irgendwann abgezogen wird - es kann also nicht einfach
wahllos ständig darauf herumschreiben. Und es spricht nichts dagegen,
wenn sich die "USB-Stick-Seite" vom Host abmeldet (Pull-up entfernen),
sobald die "LAN-Seite" eine Schreiboperation verlangt. (Über FTP ließe
sich das vermutlich sogar recht einfach implementieren.)
Naja, selbst wäre ich (noch) nicht in der Lage, das zu implementieren -
aber vielleicht gibt es soetwas ja schon.
An die WLAN-SD-Karten von Kameras habe ich noch gar nicht gedacht - aber
ich vermute, die funktionieren nur in eine Richtung (Kamera schreibt,
Smartphone liest).
Das Conrad-Spielzeug scheint ja nur für Multimedia-Daten, nicht für
allgemeine Dateien zu sein?
Danke für die Diskussion! Ich hoffe sie liefert noch Weilchen weiter
gute Ideen.
Viele Grüße
W.T.
Walter Tarpan schrieb:> Das Gerät muß ja darauf vorbereitet sein, daß ein echter USB-Stick> irgendwann abgezogen wird - es kann also nicht einfach wahllos ständig> darauf herumschreiben.
Das ist zwar richtig, aber das bedeutet nicht, daß das Gerät nicht Teile
des Dateisystems cachen darf - wie z.B. die FAT oder Verzeichnisse.
Änderungen daran wird es zwar, um Datenverlust zu vermeiden, so schnell
wie möglich auf den USB-Stick schreiben, aber warum sollte es vorher
seinen Cacheinhalt mit den auf dem Stick zwischenzeitlich hinterrücks
geänderten Daten verifiziren?
> aber ich vermute, die funktionieren nur in eine Richtung (Kamera> schreibt, Smartphone liest).
Nein, die funktionieren auch weitergehend, Smartphone/PC liest *und
löscht*.
Überlegung: Wo ein USB-Stick finktioniert, funktioniert oft (nicht
immer) auch eine USB-Festplatte.
Es gibt NAS-Geräte, die als NAS per Netzwerk funktionieren und parallel
dazu den Zugriff per USB gestatten ... mal suchen und ausprobieren!
Frank schrieb:> Es gibt NAS-Geräte, die als NAS per Netzwerk funktionieren und parallel> dazu den Zugriff per USB gestatten
Ganz sicher nicht gleichzeitig, aus den bereits genannten Gründen.
Rufus Τ. Firefly schrieb:> Das ist zwar richtig, aber das bedeutet nicht, daß das Gerät nicht Teile> des Dateisystems cachen darf - wie z.B. die FAT oder Verzeichnisse.> Änderungen daran wird es zwar, um Datenverlust zu vermeiden, so schnell> wie möglich auf den USB-Stick schreiben, aber warum sollte es vorher> seinen Cacheinhalt mit den auf dem Stick zwischenzeitlich hinterrücks> geänderten Daten verifiziren?Rufus Τ. Firefly schrieb:> Ganz sicher nicht gleichzeitig, aus den bereits genannten Gründen.
Wie gesagt: "gleichzeitig" ist ja auch keine Forderung:
Walter Tarpan schrieb:> [...] Und es spricht nichts dagegen,> wenn sich die "USB-Stick-Seite" vom Host abmeldet (Pull-up entfernen),> sobald die "LAN-Seite" eine Schreiboperation verlangt.
Es würde für die Funktion keinen Nachteil haben, wenn sich der USB-Stick
vor der netzwerkseitigen Schreiboperation vom Gerät abmeldet ("Hoppla,
ich wurde herausgezogen") und nach dem Ende der netzwerkseitigen
Schreiboperation wieder anmeldet ("Huhu, da bin ich wieder! Du kannst
die FAT wieder neu einlesen!").
Walter Tarpan schrieb:> Es würde für die Funktion keinen Nachteil haben, wenn sich der USB-Stick> vor der netzwerkseitigen Schreiboperation vom Gerät abmeldet
Aber nur, wenn der USB-Host garantiert nie schreibt. Denn die
Netzwerkseite kann nicht feststellen, daß der USB-Host mit einer
Schreiboperation tatsächlich fertig ist.
Allenfalls über ein sehr großzügig dimensioniertes Timeout (nach der
letzten Schreiboperation des USB-Host) ließe sich das erreichen, aber
auch dann nicht sicher.
Dazu kommt, daß sicherlich nicht jeder USB-Host glücklich darüber sein
dürfte, wenn ihm während eines aktiven Lesevorganges der USB-Stick
"geklaut" wird.
Sicher, auch hier kann mit entsprechenden Timeouts gearbeitet werden,
aber das macht die Netzwerkseite nicht gerade ... dynamisch.
Nimmt man als Beispielgerät einen mp3-Player, der vom USB-Stick
Audiodateien abspielt, dann wird der Timeoutmechanismus auch nicht
zielführend sein, denn der mp3-Player liest dauerhaft ... mit recht
geringer Datenrate. Und damit käme bei aktiver mp3-Wiedergabe die
Netzwerkseite nie zum Zuge.
Rufus Τ. Firefly schrieb:> Dazu kommt, daß sicherlich nicht jeder USB-Host glücklich darüber sein> dürfte, wenn ihm während eines aktiven Lesevorganges der USB-Stick> "geklaut" wird.
Stimmt. Nicht jeder. Aber dieser Host liest und schreibt Daten nur dann,
wenn man es ihm sagt. Wie ich oben schrieb, handelt es sich um ein
Meßgerät. Es kann Konfigurationsdaten vom USB-Stick lesen und
Speicher-Dumps auf den Stick schreiben - aber das macht es nur, wenn der
Benutzer das aktiv veranlaßt.
So habt ihr euch das sandisk teil angeschaut?
USB ist ja bekanntlich er weise hot plug fähig. Der host sollte mit
verschwindenden devices umgehen können. Entsprechend sollte auch der
Dateisystem Zugriff so aussehen, das das Dateisystem nach jedem step
noch brauchbar ist. Tote Verkettungen sid da zu tollerieren, da nicht zu
vermeidbar.
Außerdem könnte man ja auch ein art Disketten Laufwerk an usb
simulieren. Nur das medium wird entnommen. So wie bei einem sd-karten
leser. Ist nur die Frage ob der host das alles mitmacht. Was nach usb
und massstorage alles erlaubt ist.
Du darfst bei allen aktuellen Betriebsystemen das Medium erst entnehmen,
wenn es von Betriebsystem freigegeben wurde. Das ist bei Disketten nicht
anders, als bei USB Sticks oder SD Karten.
Bei DOS entfiel dieses Freigeben, da das BIOS keinen Cache hatte.
Schreibzugriffe wurden immer sofort durchgeführt und bei jedem
Dateizugriff (öffnen) wurde das Inhaltsverzeichnis erneut gelesen.
Nu ja windoof cacht bei usb stiks nicht. Bzw nicht mehr beim schreiben.
War früher anders aber seit XP nicht mehr. Nennt sich optimiert für
schnelles entfernen. Und die Funktionen die der key implementieren muss,
damit das abmelden unter W7 funktioniert sind optional in der masstorage
Spezifikation.
Und mal ehrlich wer meldet den usb key ab bevor er ihn trennt?
Gruss