17 votes

Faire apparaître le NAS comme un lecteur USB

Mon téléviseur peut enregistrer sur un support USB, ce qui est assez courant. Ce que j'aimerais, c'est enregistrer sur mon NAS, où il y a beaucoup de place et où les enregistrements peuvent être mieux partagés et gérés. Je suis donc à la recherche d'un adaptateur (hw/sw) qui permettra à mon NAS d'apparaître au téléviseur comme un périphérique de stockage USB. Avez-vous des idées ? La recherche sur Google n'a rien donné.

Veuillez noter qu'il s'agit de l'exact opposé du scénario très courant consistant à rendre un périphérique USB disponible en tant que lecteur en réseau. Il existe des tonnes de solutions pour cela, alors laissez-moi insister sur le fait que je recherche l'inverse : rendre mon périphérique USB disponible en tant que disque réseau. NAS apparaître comme un clé USB physique qui peut se brancher directement sur ma télé, comme ça :

[NAS] ——— Ethernet ——— [adapter] ——— USB ——— [TV]

7voto

Matthias W. Points 146

Je sais que ce post est assez ancien mais je suis tombé dessus alors que je cherchais une solution pour le même problème. Je n'ai pas vu de solution toute faite que l'on peut acheter, mais plusieurs approches de type do it yourself (DIY).

Ces approches DIY sont donc toutes basées sur la construction de votre propre "adaptateur". L'adaptateur est un ordinateur basé sur Linux, par exemple un ordinateur monocarte (SBC) tel que le Raspberry Pi. Il fait office de périphérique de stockage de masse USB ("lecteur flash") pour votre smart TV d'une part et accède (en lecture et en écriture) à un stockage de données en réseau (NAS) d'autre part.

                 iSCSI via                              Mass Storage
                TCP/IP via                            Device Class via
[NAS] ————— Ethernet or Wi-Fi ———— [Linux computer] ———————— USB ————————— [Smart TV]

Matt Olan s'est rendu compte de cette approche plus tôt cette année lorsqu'il a essayé de stocker des jeux et des sauvegardes de sa PlayStation 4 : https://matt.olan.me/making-a-piscsi-usb-drive-part-1/ y https://matt.olan.me/making-a-piscsi-usb-drive-part-2/ - il a également effectué des mesures de performance.

Démarrage de l'installation du système d'exploitation (OS) Linux sur le SBC

Si vous utilisez un SBC basé sur un Raspberry Pi, vous devriez commencer par une installation Linux. La version actuelle de la Système d'exploitation Raspberry Pi (précédemment appelé Raspbian ) peut être téléchargé à partir de https://www.raspberrypi.org/software/ .

Vous pouvez alors également suivre le guide sur https://www.raspberrypi.org/documentation/configuration/wireless/headless.md pour configurer votre Raspberry Pi sans tête, c'est-à-dire que vous pouvez déjà modifier le contenu (le dossier de démarrage) de la carte SD. Vous pouvez également commencer avec SSH activé (en créant un nouveau fichier vide nommé ssh dans le répertoire de démarrage). Utilisez ensuite raspi-config pour modifier d'autres paramètres.

Fournir un périphérique de stockage de masse à votre téléviseur intelligent

En général, un ordinateur fait office d'hôte USB. Ce dont nous avons besoin ici, c'est d'un ordinateur agissant comme un périphérique USB esclave. Le matériel de l'ordinateur doit fournir un USB On-The-Go (OTG) port. Dans le langage Linux, ce type de système est également appelé un Gadget USB . Vous devrez modifier votre installation Linux.

Le pilote USB dwc2 doit être utilisé dans /boot/config.txt y /etc/modules .

El "Gadget de stockage de masse" (MSG) est utilisé ici. Il "fournit un support pour la classe USB Mass Storage. Il peut apparaître à un hôte comme un ensemble de 8 unités de disque SCSI (appelées unités logiques, souvent appelées LUN, bien qu'il s'agisse techniquement du numéro d'unité logique), bien que la plupart du temps, un seul LUN soit suffisant. Les informations stockées pour chaque LUN doivent être conservées par le gadget quelque part, soit dans un fichier normal, soit dans un périphérique de bloc tel qu'une partition de disque ou même un ramdisk. Ce fichier ou périphérique bloc est appelé le support de stockage pour le gadget (...)." _(source : http://www.linux-usb.org/gadget/file_storage.html )_

Le module g_mass_storage est chargé via modprobe pointant vers ce stockage de secours :

sudo modprobe g_mass_storage file=/dev/sd... stall=0

Nous utiliserons un périphérique de bloc tel que fourni via iSCSI, voir ci-dessous.

(Il y a aussi un article sympa sur le fait de faire du Pi Zero W uniquement une clé USB, donc sans la connexion au NAS de l'autre côté. Certaines parties s'appliquent toujours à notre scénario : https://magpi.raspberrypi.org/articles/pi-zero-w-smart-usb-flash-drive - Conseil : si vous adoptez cette approche, assurez-vous que votre fichier conteneur est suffisamment grand pour votre Smart TV. Je viens de découvrir que mon téléviseur LG n'accepte que les clés USB d'une capacité d'au moins 4 GBytes).

Accéder à votre NAS

Limitation : Vous ne pouvez pas fournir directement l'accès à un répertoire partagé dans le réseau en tant que support de stockage pour le gadget. Le protocole de communication sous-jacent de votre NAS est souvent Bloc de messages du serveur ( SMB ) ou Système de fichiers Internet commun ( CIFS ) ou Système de fichiers en réseau ( NFS ).

"Le module g_mass_storage a besoin d'un périphérique bloc ou d'un fichier plat, la plupart des partages réseau ne sont ni l'un ni l'autre." (source : https://www.raspberrypi.org/forums/viewtopic.php?t=220468 )

Au lieu de cela, il exige que votre NAS fournisse un iSCSI Internet Small Computer Systems Interface, "une norme de réseau de stockage basée sur le protocole Internet (IP) pour relier les installations de stockage de données. Elle fournit accès aux périphériques de stockage au niveau du bloc en transportant les commandes SCSI sur un réseau TCP/IP. iSCSI est utilisé pour faciliter les transferts de données sur les intranets (...)". (source : https://en.wikipedia.org/wiki/ISCSI )

Comme il est basé sur les réseaux TCP/IP, il est fondamentalement indépendant de la couche de liaison sous-jacente, c'est-à-dire que vous devriez pouvoir y accéder aussi bien via une connexion Ethernet filaire que via le Wi-Fi sans fil. Cela dépend de votre configuration locale. Gardez à l'esprit que le débit via Ethernet devrait être plus élevé.

Vous devez demander au manuel d'utilisation de votre NAS comment l'activer en tant que cible iSCSI.

Sur le SBC fonctionnant sous Linux, vous devez effectuer quelques étapes supplémentaires pour initier une connexion iSCSI à votre NAS. Matt Olan donne une description très intéressante dans la section "Méthode" de son site Web. https://matt.olan.me/making-a-piscsi-usb-drive-part-1/ - il décrit également les étapes précédentes de la configuration du gadget de stockage de masse, comme indiqué ci-dessus.

Conseils pour le choix du matériel

  • Certains des SBC Raspberry Pi connectent leur USB à un hub USB ou relient la broche d'identification de l'USB de façon permanente à la terre sur leurs cartes de circuit imprimé. Cela ne les rend pas utilisables comme périphérique USB esclave via USB OTG.
  • En fonction de votre SBC, vous ne pouvez disposer que du Wi-Fi. o Connectivité Ethernet.
  • Vous pouvez choisir une carte SBC avec USB 3.0 OTG pour obtenir des débits de données plus élevés. Assurez-vous que le terme "super-speed" est utilisé et non "high-speed" uniquement.
  • Le Raspberry Pi Zero W et le Raspberri Pi 4 Model B semblent fonctionner (sans garantie).
  • Matt Olan a d'abord utilisé un Raspberry Pi Zero W (USB 2.0 OTG, WiFi) puis un RockPi 4b (USB 3.0 OTG).

Autre méthode sans support iSCSI

Si votre NAS ne fournit pas d'iSCSI, une approche différente peut être adoptée. Les fichiers sur le NAS sont accessibles via SMB.

           SMB or NFS or … via                          Mass Storage
            usually TCP/IP via                        Device Class via
[NAS] ————— Ethernet or Wi-Fi ———— [Linux computer] ———————— USB ————————— [Smart TV]

Mais, comme mentionné précédemment, l'accès SMB n'est pas supporté avec g_mass_storage et c'est pourquoi nous devons prendre une solution de rechange :

  • un stockage de sauvegarde sur l'adaptateur est créé et fourni à la Smart TV (hôte USB)
  • il doit être créé en tant que fichier avec un système de fichiers à l'intérieur.
  • Pour ce faire, on utilise dd , fdisk y mkdosfs (pour le partitionnement et la création d'un système de fichiers FAT32 ; les paramètres tels que les secteurs et les cylindres doivent être choisis pour correspondre à l'architecture de l'entreprise) g_mass_storage et votre fichier)
  • sur le gadget peut être effectué en utilisant le pilote de périphérique loop pour mapper la partition avec le stockage de sauvegarde, puis la monter ( mount -t vfat )
  • l'accès exclusif mutuel au stockage de sauvegarde : il ne peut être accédé que par l'hôte USB ou l'adaptateur lui-même à la fois : "Un seul système (normalement, l'hôte USB) peut écrire sur le stockage de sauvegarde, et si un système écrit ces données, aucun autre ne doit les lire." _(source : http://www.linux-usb.org/gadget/file_storage.html )_
  • Par conséquent, les données doivent être copiées entre l'adaptateur et le NAS :
    • par exemple, de l'adaptateur au NAS après l'enregistrement d'une vidéo.
    • par exemple, du NAS vers l'adaptateur avant de regarder un film enregistré à partir de l'adaptateur.
  • Vous trouverez de plus amples informations et des instructions ici : http://www.linux-usb.org/gadget/file_storage.html (anglais), https://raspberrypi.stackexchange.com/questions/112957/mount-smb-share-as-file (anglais) et https://forum-raspberrypi.de/forum/thread/36132-usb-gadget-mass-storage-emulation/ (Allemand)

L'inconvénient de cette approche est que vous devez synchroniser/planifier les accès au stockage de secours. La copie des données de A à B et vice versa prendra un certain temps et vous aurez besoin d'étapes supplémentaires pour automatiser cette opération.

Autres tentatives

  • Je ne me souviens pas de la référence mais l'approche mentionnée ci-dessus semble nécessiter une version du noyau Linux >= 4.4.
  • Si votre Smart TV prend en charge le protocole de transfert de médias (MTP), vous pouvez adopter une approche différente.
  • Matt Olan a mentionné que certains "fabricants de NAS tels que QNAP offrent un support pour le stockage USB direct".
  • J'ai lu de courts résumés sur le système de fichiers VFAT virtuel de QEMU (vvfat), mais je ne suis pas sûr qu'il puisse être appliqué dans ce scénario.

2voto

Gavin Will Points 51

J'ai regardé un peu plus loin et le "Mémoire USB infinie" -C'est ce que prétend faire le stick d'Infinitec. Malheureusement, il est plutôt mauvaise critique d'Engadget, où il a fait l'objet d'un article hier (quelle incroyable coïncidence, car cela fait un moment que j'y pense !). Mais même si ce produit particulier ne fonctionne pas très bien, il offre en fait la fonctionnalité exacte que je recherchais.

2voto

LawrenceC Points 70381

Si votre NAS est un PC basé sur Linux, peut-être, juste peut-être, vous pourriez, avec beaucoup de travail, obtenir quelque chose comme ceci Contrôleur de périphériques PCI USB 2.0 pour travailler. Cette carte PCI ajoute un port USB "côté périphérique" à votre système, PAS un port "côté hôte". Il est donc possible de transformer tout votre PC en un périphérique USB connectable à un autre PC. Je sais que Linux a un support pour les "gadgets USB" - avec les programmes appropriés, cela semble certainement possible.

Si votre NAS peut exposer des partages Samba, vous pourrez peut-être faire quelque chose avec un téléphone Android enraciné. Sur mon Droid, la carte SD apparaît en interne en tant que /mnt/sdcard . Faire tourner Samba dessus est certainement possible. Je n'ai jamais essayé quelque chose comme mount -t cifs //192.168.X.X/mysambashare /mnt/sdcard/mysambashare puis j'ai essayé d'utiliser le téléphone comme un périphérique de stockage USB ... Si j'ai le temps de l'essayer, je ferai une mise à jour.

0voto

HappyToHelp Points 36

Avez-vous essayé de connecter le NAS en tant que lecteur réseau mappé (afin qu'il apparaisse avec une lettre de lecteur (H : par exemple)) plutôt que d'essayer de l'utiliser comme un partage réseau accessible par //adresse/dossier ?

Je viens juste d'avoir un aperçu mais je crois que vous pouvez mapper un lecteur réseau en faisant un clic droit sur mon ordinateur ou mon réseau (en supposant que c'est Windows), je ne sais plus lequel.

Si vous n'êtes pas sous Windows, veuillez nous tenir au courant afin que nous puissions vous aider.

Merci.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X