Blockieren und Zeichnen von Geräten über das Netzwerk unter Linux

804
Dankó Dávid

Gibt es eine generische Möglichkeit, ein Block- oder Zeichengerät über ein Netzwerk gemeinsam zu nutzen?

Alle verwandten Fragen werden mit einer bestimmten Antwort gelöst, z. B .: Verwenden Sie NFS, SMB, iSCSI oder AoE, wenn Sie die Festplatte zwischen den Hosts gemeinsam nutzen möchten. Wenn Sie einen TV-Tuner oder eine WebCam gemeinsam nutzen möchten, streamen Sie sie mit mplayer oder VLC. Oder verwenden Sie USBIP, wenn Sie Local USB an einen anderen Host weiterleiten möchten.

Aber was ist, wenn ich LPT, RS232, Audio, Mischpult oder TV-Tuner mit der Fähigkeit zum Kanalwechsel auf natürliche Weise teilen möchte (ich meine das Relaying von ioctl)?

Ich denke, es ist eine gute Lösung für die Freigabe beliebiger block- oder zeichenbasierter Geräte über das Netzwerk, um verschiedene anwendungsspezifische Lösungen zu vermeiden.

Anscheinend ist es nicht so schwer zu erreichen. Das einzige Tool, das "offiziell" nicht in Linux enthalten ist, ist BUSE (Block device for UserSpacE).

Dies ist der einzige Grund, warum diese Lösung nicht implementiert wird oder es einen anderen Faktor gibt, der die Funktionalität beeinträchtigen kann.

1
Ach ja, ioctls kann Zeiger enthalten, die nur im lokalen Adressraum gültig sind ... Dankó Dávid vor 9 Jahren 0
Remote File Sharing (RFS) von AT & T bot diese Funktion (vollständige Semantik des Unix-Dateisystems, einschließlich der gemeinsamen Nutzung spezieller Dateien über das Netzwerk). NFS erwies sich als beliebter, und RFS wurde nach 2.3 nicht mehr in Solaris angezeigt. Ich kenne keine Linux-Ports oder Weiterentwicklungen. Ich denke, Sie werden feststellen, dass dies leicht zu 90% und die letzten 10% sehr schwierig sind. mpez0 vor 9 Jahren 2

1 Antwort auf die Frage

1
Benoit-Pierre DEMAINE

Sie können Blöcke mit "nbd" teilen

ls -l /dev/ | grep -e "^b" 

Ich hatte es geschafft, den Sound über Samba zu spielen. Es war schon sehr lange her, als der Sound noch rohe Blöcke verwendete (bevor ALSA populär wurde). Samba kann also immer noch für einige Dinge funktionieren. IIRC, ich konnte auch CD-ROMs direkt über Samba lesen, aber aus dem Speicher schlug das Schreiben der CD fehl.

Ich habe keine Lösung für Zeichen.

LPT kann nicht über das Netzwerk freigegeben werden, da DMA verwendet wird.

UART (seriell) kann mit NBD verwendet werden. Möglicherweise müssen Sie die Konfiguration des Ports lokal ändern. aber der stream kann über nbd reisen.

Für Sound, vor Alsa, hat Samba es getan. Es gibt verschiedene aktuelle Projekte, die damit umgehen. dmix macht es kaum, aber versuchen Sie es mit JACK, NAS, Pulseaudio.

TV-Tuner, versuchen Sie es mit Samba, aber erwarten Sie einen Fehler. Anstatt den Videogeräteknoten gemeinsam zu nutzen, versuchen Sie besser, das USB-Gerät gemeinsam zu nutzen. Insbesondere das "USB Wireless" -Projekt verfügt unter Linux über Implementierungen, die die Verkapselung über Ethernet handhaben können. Oder USBIP. Freigabe des Geräteknotens, wenn es schwieriger ist.

Gleiche Antwort für die Webcam, sofern Sie nicht versuchen, den Videostream gemeinsam zu nutzen (vlc, mplayer, ffmpeg ...).