[LINUX] USB sur Ethernet avec Raspberry pi

introduction

Un article cohérent sur la façon de partager ** plusieurs ** périphériques USB sur un réseau avec ** gratuit ** (sans payer les frais de licence) en utilisant USB / IP (extension de bus série universelle sur réseau IP) Je ne l'avais pas, alors je l'ai écrit.

Cependant, il s'agit d'un mémo personnel, alors j'apprécierais que vous le voyiez pour référence.

Image de ce que vous voulez faire

Connectez un appareil tel qu'une mémoire USB à Raspai et échangez les informations avec d'autres PC via un LAN câblé.

Technique similaire

Des techniques similaires incluent ** VirtualHere ** et IO-DATA ** net.USB **. ** Virtual Here ** peut être utilisé simultanément jusqu'à 1 appareil dans la version gratuite. Vous ne pouvez pas lier plusieurs appareils sans payer des frais de licence de près de 50 $ par appareil pour vous connecter au réseau en plus. C'est très facile à configurer, donc si vous n'avez qu'un seul appareil à partager, c'est très bien. ** net.USB ** est un produit pour le partage de réseau, il coûte donc naturellement de l'argent à installer et n'est pas compatible avec Linux.

Donc, cette fois, j'ai essayé avec ** une technologie gratuite et ouverte qui ne coûte pas d'argent **.

environnement

server | Raspberry Pi 3 Model B, Raspbian GUN/Linux 10 client | Ubuntu 18.04.05 LTS La communication est effectuée via un routeur et un LAN câblé.

Qu'est-ce que USB / IP

Le produit d'un projet de partage de périphériques USB sur un réseau IP. Il a été développé par NAIST vers 2007 et a été fusionné dans le noyau sous Linux 2.6.38.

Le projet USB / IP vise à développer un système de partage de périphériques USB à usage général sur un réseau IP. Pour partager des périphériques USB entre des ordinateurs, USB / IP encapsule les «messages d'E / S USB» dans les charges utiles TCP / IP et communique entre eux. ArchWiki

Veuillez lire l'URL de référence pour plus de détails.

Comment utiliser

Pour connecter le périphérique, liez avec le serveur (raspi), puis connectez avec le client (ubuntu). Pour le supprimer, détachez-le avec le client, puis dissociez-le avec le serveur.

Explication des termes

Ce n'est peut-être pas exact parce que c'est mon image. ** bind ** | Pour pouvoir partager côté serveur. Lorsqu'il est visualisé à partir du serveur, le périphérique semble être déconnecté lorsqu'il est lié. ** attach ** | Montez un appareil partageable (bind) côté client. ** detach ** | Pour démonter l'appareil connecté. Pour que le périphérique soit détaché, vérifiez le port et spécifiez le port (la méthode sera décrite plus loin).


installer

Il vous suffit de l'exécuter la première fois.

Configuration du serveur sur Raspberry pi

Paramètres qui doivent être effectués avec Raspeye. Le réglage côté raspberry pi est IP fixe,

$ sudo apt install usbip

C'est assez facile à faire en frappant ou en recherchant sur Google, alors omettez-le. Je prévois de l'ajouter bientôt.

Configuration du client sur ubuntu 18.04

Paramètres qui doivent être définis dans ubuntu. Pour USB / IP, il est nécessaire d'ouvrir le port 3240 à l'avance. Ouvrez le port en utilisant ufw.

$ sudo ufw allow 3240/tcp 
$ sudo ufw enable
$ sudo ufw reload

USP / IP est dans un package appelé linux-tools-generic, donc installez-le en utilisant apt.

$ sudo apt install hwdata linux-tools-generic

Commandes que vous utilisez habituellement sur le serveur

Les commandes qui doivent être exécutées côté raspberry pi sont indiquées ci-dessous. Cette fois, l'ip du raspberry pi utilisé dans l'expérience est fixé à 192.168.0.161. bind Autoriser le partage côté serveur. Lorsqu'il est visualisé depuis le serveur, le périphérique semble déconnecté lorsqu'il est lié.

$ ​sudo modprobe usbip_host
$ usbip list -l

// Vérifiez le chargement du module noyau et l'occupation (= ?????) du périphérique que vous souhaitez lier

$ sudo usbip bind -b ?????(ex.1-1.2)
$ sudo usbipd -D

// Spécifiez l'ID de bus et la liaison, et démarrez le démon. unbind Détachez (décrit plus tard) sur le client, puis relâchez la liaison.

$ sudo usbip unbind -b ?????(ex.1-1.2)

Commandes normalement utilisées par le client

Les commandes qui doivent être exécutées côté ubuntu (PC principal) sont indiquées ci-dessous. attach Montez l'appareil qui est dans un état partageable (liaison) côté client.

$ sudo modprobe vhci-hcd
$ /usr/lib/linux-tools/$(uname -r)/usbip list -r 192.168.0.161(Cette adresse IP provient de Razpai)

// Vérifiez la charge du module noyau et l'occupation (= ?????) du périphérique que vous souhaitez lier. // Vous pouvez entrer $ (uname -r) dans le chemin avec l'achèvement de la tabulation.

$ sudo /usr/lib/linux-tools/$(uname -r)/usbip attach -r 192.168.0.161 -b ?????(ex.1-1.2)

detach Démontez le périphérique connecté. Pour que le périphérique soit détaché, vérifiez le port et spécifiez le port.

$ /usr/lib/linux-tools/$(uname -r)/usbip port

// Trouvez le port (= ??) de l'appareil que vous souhaitez détacher

$ sudo /usr/lib/linux-tools/$(uname -r)/usbip detach -p ??(ex.00)

// Spécifiez le port et effectuez un détachement.


L'utilisation approximative est comme ça. À propos, la partie jusqu'à / usr / lib .... / usbip peut être plus facile à utiliser si vous envisagez d'utiliser des liens symboliques.

référence

Recommended Posts

USB sur Ethernet avec Raspberry pi
Surveillance intérieure à l'aide de Raspberry Pi
Essayez d'utiliser ArUco avec Raspberry Pi
Utiliser une webcam avec Raspberry Pi
Connectez deux caméras USB au Raspberry Pi 4
Détectez la "luminosité" en utilisant python sur Raspberry Pi 3!
Démarrage USB sur Raspberry Pi 4 modèle B
Faire en sorte que Raspberry Pi parle japonais en utilisant OpenJtalk
Exécutez un servomoteur en utilisant python sur Raspberry Pi 3
Détectez la température à l'aide de python sur Raspberry Pi 3!
Détectez les interrupteurs à glissière à l'aide de python sur Raspberry Pi 3!
Essayez d'utiliser le code QR avec Raspberry Pi
Détectez les commutateurs magnétiques à l'aide de python sur Raspberry Pi 3!
Lancement automatique des programmes Raspberry Pi à l'aide de Systemd
Envoyer des données depuis Raspberry Pi à l'aide d'AWS IOT
Sonnez le buzzer en utilisant python sur Raspberry Pi 3!
Créer un système de notification des visiteurs à l'aide de Raspberry Pi
Connectez votre Raspberry Pi à votre smartphone en utilisant Blynk
Apprentissage automatique avec Raspberry Pi 4 et Coral USB Accelerator
Créer un environnement OpenCV4 sur Raspberry Pi à l'aide de Poetry
Créez un capteur de couleur à l'aide d'une tarte à la râpe et d'une caméra
Utilisez le capteur d'éclairement numérique TSL2561 avec Raspberry Pi
Qu'est-ce que Raspberry Pi?
GPGPU avec Raspberry Pi
Utilisation de la voiture 4RM FT-MC-004 d'Akizuki Denshi avec Raspberry Pi
Surveiller la température à l'aide de la plate-forme IoT cloud Raspberry Pi + Alibaba
pigpio sur Raspberry pi
Essayez d'utiliser le capteur de température (LM75B) avec Raspeye.
Caméra vidéo Raspberry Pi
Mauvaise connaissance Raspberry Pi
Faisons Raspberry Pi?
Démarrage USB avec Raspberry Pi 4 modèle B (3) édition LVM
Contrôler la mise sous / hors tension du port USB du Raspberry Pi
DigitalSignage avec Raspberry Pi
Notes de configuration du Raspberry Pi 4
Sortie sur "LED 7 segments" en utilisant python avec Raspberry Pi 3!
Cython sur Raspberry Pi
Afficher l'image de la caméra USB avec OpenCV de Python avec Raspeye
Compilation croisée pour Raspberry Pi Zero sur Debian-Try en utilisant une bibliothèque partagée
Utilisez python sur Raspberry Pi 3 pour détecter la "température (en utilisant un convertisseur A / N)"!
Accédez aux feuilles de calcul Google en utilisant python avec raspberry pi (pour vous-même)
J'ai essayé d'automatiser [une certaine tâche] à l'aide d'une tarte à la râpe
Vérifions! Développons Raspberry Pi Zero à distance - Essayez avec Arafruit WebIDE
Comment obtenir la température du thermo-hygromètre SwitchBot à l'aide de Raspberry Pi
Construction d'un environnement de développement Cortex-M pour TOPPERS utilisant Raspeye
Obtenez la météo en utilisant l'API et laissez Raspberry Pi parler!
Plantes Mutter avec Raspberry Pi
Installation du système d'exploitation Raspberry Pi (Raspbian)
J'ai parlé à Raspberry Pi
Présentation de PyMySQL à Raspberry pi3
Raspeye + Python + Mémo OpenGL
Paramètres initiaux de Raspbian (Raspberry Pi 4)
raspberry pi 1 modèle b, python
Introduction de pyenv sur Raspberry Pi
Utilisez NeoPixel avec la tarte aux framboises
Installez OpenCV4 sur Raspberry Pi 3
Installez TensorFlow 1.15.0 sur Raspberry Pi