{"id":25244,"date":"2023-04-15T17:46:32","date_gmt":"2023-04-15T15:46:32","guid":{"rendered":"https:\/\/www.domorizon.eu\/blog\/?p=25244"},"modified":"2023-04-15T17:47:08","modified_gmt":"2023-04-15T15:47:08","slug":"acceder-a-un-peripherique-usb-a-lautre-bout-du-monde","status":"publish","type":"post","link":"https:\/\/www.domorizon.eu\/blog\/acceder-a-un-peripherique-usb-a-lautre-bout-du-monde\/","title":{"rendered":"Acc\u00e9der \u00e0 un p\u00e9riph\u00e9rique USB \u00e0 l&rsquo;autre bout du monde&#8230;"},"content":{"rendered":"<ul class=\"wp-block-list\"><\/ul><p>Parfois il peut arriver que vous ayez un p\u00e9riph\u00e9rique USB qui soit connect\u00e9 sur un ordinateur, mais vous aimeriez bien le partager pour l&rsquo;exploiter sur un autre ordinateur.<\/p><p>Et bien, sachez que cela est tout \u00e0 fait possible !!!<br>Il existe plusieurs solutions permettant cela, majoritairement payantes, mais certaines comme le projet \u00ab\u00a0USBip\u00a0\u00bb disponible sous Linux et Windows, permettent ce genre de partage.<\/p><figure class=\"wp-block-image size-full is-resized\"><a data-fslightbox=\"1\" data-type=\"image\" aria-label=\"Open fullscreen lightbox with current image\"  href=\"https:\/\/www.domorizon.eu\/blog\/wp-content\/uploads\/2023\/04\/usbip-logo.png\" data-rel=\"lightbox-gallery-0\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.domorizon.eu\/blog\/wp-content\/uploads\/2023\/04\/usbip-logo.png\" alt=\"\" class=\"wp-image-25246\" width=\"288\" height=\"83\"><\/a><\/figure><p>La description suivante est propos\u00e9e pour partager un p\u00e9riph\u00e9rique USB Bluetooth entre deux machines Linux; la machine serveur aura le p\u00e9riph\u00e9rique USB connect\u00e9 sur son connecteur USB tandis que le client acc\u00e8dera virtuellement au p\u00e9riph\u00e9rique au travers le r\u00e9seau qui les relie.<\/p><p><strong>R\u00e9f\u00e9rences :<\/strong><\/p><ul class=\"wp-block-list\"><li>https:\/\/usbip.sourceforge.net\/<\/li><li>https:\/\/sourceforge.net\/p\/usbip\/git-windows\/ci\/master\/tree\/trunk\/userspace\/README<\/li><li>https:\/\/bbs.archlinux.org\/viewtopic.php?id=233424<\/li><li>https:\/\/github.com\/dorssel\/usbipd-win<\/li><\/ul><p>La solution USBip est \u00e0 l&rsquo;origine le projet d&rsquo;un japonnais et s&rsquo;appuie sur l&rsquo;architecture suivante :<\/p><div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><a data-fslightbox=\"1\" data-type=\"image\" aria-label=\"Open fullscreen lightbox with current image\"  href=\"https:\/\/www.domorizon.eu\/blog\/wp-content\/uploads\/2023\/04\/usbip-design.png\" data-rel=\"lightbox-gallery-0\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.domorizon.eu\/blog\/wp-content\/uploads\/2023\/04\/usbip-design.png\" alt=\"\" class=\"wp-image-25265\" width=\"454\" height=\"308\" srcset=\"https:\/\/www.domorizon.eu\/blog\/wp-content\/uploads\/2023\/04\/usbip-design.png 353w, https:\/\/www.domorizon.eu\/blog\/wp-content\/uploads\/2023\/04\/usbip-design-300x204.png 300w\" sizes=\"auto, (max-width: 454px) 100vw, 454px\" \/><\/a><\/figure><\/div><h2 class=\"wp-block-heading\">Installation et configuration cot\u00e9 SERVEUR<\/h2><p>La documentation disponible sur le site du projet n&rsquo;est pas tout \u00e0 fait \u00e0 jour; je reprend le descriptif d&rsquo;installation tout en commentant la m\u00e9thode d&rsquo;installation et son utilisation.<\/p><p>Commencer par installer le paquet \u00ab\u00a0USB IP\u00a0\u00bb :<\/p><div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\"><div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\"><pre class=\"wp-block-code\"><code># Sur RedHat, CentOS, RockyLinux, etc...sudo yum install usbip# Sur Debian, Ubuntu, etc...sudo apt-get install usbipLecture des listes de paquets... FaitConstruction de l'arbre des d\u00e9pendances... FaitLecture des informations d'\u00e9tat... FaitLes paquets suppl\u00e9mentaires suivants seront install\u00e9s\u00a0:  usb.idsLes NOUVEAUX paquets suivants seront install\u00e9s\u00a0:  usb.ids usbip0 mis \u00e0 jour, 2 nouvellement install\u00e9s, 0 \u00e0 enlever et 0 non mis \u00e0 jour.Il est n\u00e9cessaire de prendre 790 ko dans les archives.Apr\u00e8s cette op\u00e9ration, 1\u202f442 ko d'espace disque suppl\u00e9mentaires seront utilis\u00e9s.Souhaitez-vous continuer\u00a0? &#91;O\/n]R\u00e9ception de\u00a0:1 http:\/\/deb.debian.org\/debian bullseye\/main amd64 usb.ids all 2022.05.20-0+deb11u1 &#91;205 kB]R\u00e9ception de\u00a0:2 http:\/\/deb.debian.org\/debian-security bullseye-security\/main amd64 usbip amd64 2.0+5.10.162-1 &#91;585 kB]790 ko r\u00e9ceptionn\u00e9s en 1s (1\u202f162 ko\/s)S\u00e9lection du paquet usb.ids pr\u00e9c\u00e9demment d\u00e9s\u00e9lectionn\u00e9.(Lecture de la base de donn\u00e9es... 45887 fichiers et r\u00e9pertoires d\u00e9j\u00e0 install\u00e9s.)Pr\u00e9paration du d\u00e9paquetage de ...\/usb.ids_2022.05.20-0+deb11u1_all.deb ...D\u00e9paquetage de usb.ids (2022.05.20-0+deb11u1) ...S\u00e9lection du paquet usbip pr\u00e9c\u00e9demment d\u00e9s\u00e9lectionn\u00e9.Pr\u00e9paration du d\u00e9paquetage de ...\/usbip_2.0+5.10.162-1_amd64.deb ...D\u00e9paquetage de usbip (2.0+5.10.162-1) ...Param\u00e9trage de usb.ids (2022.05.20-0+deb11u1) ...Param\u00e9trage de usbip (2.0+5.10.162-1) ...Traitement des actions diff\u00e9r\u00e9es (\u00ab\u00a0triggers\u00a0\u00bb) pour man-db (2.9.4-2)\u00a0...<\/code><\/pre><\/div><\/div><p>Maintenant que le paquet applicatif est install\u00e9, il faut activer le service&#8230;. sauf que le paquet n&rsquo;apporte aucun syst\u00e8me de d\u00e9marrage. Comme nous sommes actuellement en plein \u00ab\u00a0SystemD\u00a0\u00bb, je vous propose de d\u00e9marrer le service en cr\u00e9ant le fichier \u00ab\u00a0\/etc\/systemd\/system\/usbip.service\u00a0\u00bb avec votre \u00e9diteur de texte pr\u00e9f\u00e9r\u00e9 :<\/p><pre class=\"wp-block-preformatted\">[Unit]      Description=Partage de p\u00e9riph\u00e9rique USB      After=network.target[Service]      User=root      Group=root      ExecStart=\/usr\/sbin\/usbipd -D      Restart=on-failure      RestartSec=1m      #StandardOutput=null[Install]      WantedBy=multi-user.target<\/pre><p>Une fois le fichier cr\u00e9\u00e9, il est possible de lancer le service sur SERVEUR :<\/p><pre class=\"wp-block-preformatted\">root@hyperviseur:\/etc\/systemd\/system# <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">systemctl start usbip.service<\/mark><\/strong>root@hyperviseur:\/etc\/systemd\/system#root@hyperviseur:\/etc\/systemd\/system# <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">systemctl status usbip.service<\/mark><\/strong>\u25cf usbip.service - Partage de p\u00e9riph\u00e9rique USB   Loaded: loaded (\/etc\/systemd\/system\/usbip.service; disabled; vendor preset: enabled)   Active: deactivating (stop-sigterm) since Sat 2023-04-15 16:16:22 CEST; 3s ago  Process: 646 ExecStart=\/usr\/sbin\/usbipd -D (code=exited, status=0\/SUCCESS) Main PID: 646 (code=exited, status=0\/SUCCESS)    Tasks: 1 (limit: 4915)   Memory: 756.0K   CGroup: \/system.slice\/usbip.service           \u2514\u2500647 \/usr\/sbin\/usbipd -Davril 15 16:16:22 hyperviseur systemd[1]: Started Partage de p\u00e9riph\u00e9rique USB.avril 15 16:16:22 hyperviseur usbipd[647]: usbipd: info: starting usbipd (usbip-utils 2.0)avril 15 16:16:22 hyperviseur usbipd[647]: usbipd: info: listening on 0.0.0.0:3240avril 15 16:16:22 hyperviseur usbipd[647]: usbipd: info: listening on :::3240root@hyperviseur:~# <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">systemctl enable usbip.service<\/mark><\/strong>Created symlink \/etc\/systemd\/system\/multi-user.target.wants\/usbip.service \u2192 \/etc\/systemd\/system\/usbip.service.<\/pre><p>La commande \u00ab\u00a0<em>systemctl status usbip.service<\/em>\u00a0\u00bb permet de voir ainsi que le binaire est bien lanc\u00e9, mais qu&rsquo;en plus, il \u00e9coute sur le port 3240. C&rsquo;est en effet le port TCP quis era utilis\u00e9 par le service pour faire communiquer les machines et ainsi partager, les p\u00e9riph\u00e9riques USB.<br><br>Faites donc attention \u00e0 vos Firewall, ils doivent laisser passer ce port TCP sous peine d&rsquo;avoir des probl\u00e8mes de laisons avec le client par la suite&#8230;<\/p><p>Avant d&rsquo;aller plus loin :<\/p><ul class=\"wp-block-list\"><li>V\u00e9rifier que vos p\u00e9riph\u00e9riques USB sont bien connect\u00e9s sur votre SERVEUR<\/li><li>V\u00e9rifier que votre machine SERVEUR est sur la m\u00eame plage d&rsquo;adresse IP que votre machine CLIENTE (normalement le cas pour une utilisation sur r\u00e9seau local)<\/li><li>Lancer les commandes suivantes pour s&rsquo;assurer que les modules kernel sont correctement install\u00e9s et charg\u00e9s :<\/li><\/ul><p><\/p><pre class=\"wp-block-preformatted\">root@hyperviseur:~# modprobe vhci_hcd usbip_host usbip_core# V\u00e9rification que les modules USBip sont bien charg\u00e9s en m\u00e9moire sur Linuxroot@hyperviseur:~# lsmod | grep usbipusbip_host             36864  0usbip_core             32768  2 usbip_host,vhci_hcdusbcore               299008  7 xhci_hcd,ehci_pci,ehci_hcd,btusb,xhci_pci,usbip_host,vhci_hcdusb_common             16384  3 usbip_core,usbcore,vhci_hcd<\/pre><p>Il ne reste plus qu&rsquo;\u00e0 regarder comment son vu les p\u00e9riph\u00e9rique USB par \u00ab\u00a0USBip\u00a0\u00bb sur le SERVEUR :<\/p><pre class=\"wp-block-code\"><code>root@hyperviseur:\/usr# <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">usbip version<\/mark><\/strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">usbip (usbip-utils 2.0)<\/mark>root@hyperviseur:\/usr# <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">usbip list -l<\/mark><\/strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\"> - busid <strong>3-1.7<\/strong> (0a12:0001)   Cambridge Silicon Radio, Ltd : Bluetooth Dongle (HCI mode) (0a12:0001)<\/mark>root@hyperviseur:\/usr# <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">lsusb<\/mark>Bus 020 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hubBus 019 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">Bus 003 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)<\/mark>Bus 003 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching HubBus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hubBus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching HubBus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<\/code><\/pre><p>En utilisant la commande standard Linux \u00ab\u00a0<em>lsusb<\/em>\u00ab\u00a0, on trouve ainsi tous les p\u00e9riph\u00e9riques et Hub USB connect\u00e9s \u00e0 la machine : dans mon cas, je n&rsquo;ai qu&rsquo;un seul p\u00e9riph\u00e9rique USB connect\u00e9, un dongle USB Bluetooth&#8230; Mais on pourrait trouver un clavier, une sourie, un disque dur, un lecteur de carte ou de DVD, etc&#8230; Et tout cela aurait pu \u00eatre \u00ab\u00a0<em>exportable<\/em>\u00a0\u00bb !!!<\/p><p>Remarquez bien le r\u00e9sultat de la commande \u00ab\u00a0<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\"><em>usbip list -l<\/em><\/mark><\/strong>\u00a0\u00bb : elle renvoie l&rsquo;ID du bus qui d\u00e9termine le p\u00e9riph\u00e9rique USB que nous souhaitons partager; ici, l&rsquo;ID est : <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\"><strong>3-1.7<\/strong><\/mark><br>Il ne nous reste plus qu&rsquo;\u00e0 indiquer que nous partageons ce p\u00e9riph\u00e9rique sur le r\u00e9seau :<\/p><pre class=\"wp-block-code\"><code>root@hyperviseur:~# <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">usbip bind -b 3-1.7<\/mark>usbip: info: bind device on busid 3-1.7: complete<\/code><\/pre><p>Si vous rencontrez un message du type \u00ab\u00a0<em>usbip: error: device on busid 3-1.7 is already bound to usbip-host<\/em>\u00a0\u00bb cela signifie que vous avez d\u00e9j\u00e0 partag\u00e9 le p\u00e9riph\u00e9rique USB; il faut alors le supprimer de la liste des p\u00e9riph\u00e9riques partag\u00e9s :<\/p><pre class=\"wp-block-code\"><code>root@hyperviseur:~# <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">usbip unbind -b 3-1.7<\/mark>usbip: info: unbind device on busid 3-1.7: complete<\/code><\/pre><h2 class=\"wp-block-heading\">Installation et configuration cot\u00e9 CLIENT<\/h2><p>L&rsquo;installation du service est presque pareil, mais cette fois, nous ne sommes pas \u00ab\u00a0serveur\u00a0\u00bb et nous n&rsquo;aurons pas \u00e0 cr\u00e9er un service SystemD pour lancer un d\u00e9mon \u00ab\u00a0USBip\u00a0\u00bb&#8230;<\/p><p>Installons et recherchons les p\u00e9riph\u00e9riques partag\u00e9s :<\/p><pre class=\"wp-block-code\"><code># Sur RedHat, CentOS, RockyLinux, etc...<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">sudo yum install usbip<\/mark><\/strong># Sur Debian, Ubuntu, etc...<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">sudo apt-get install usbip<\/mark><\/strong>Lecture des listes de paquets... FaitConstruction de l'arbre des d\u00e9pendances... FaitLecture des informations d'\u00e9tat... FaitLes paquets suppl\u00e9mentaires suivants seront install\u00e9s\u00a0:  usb.idsLes NOUVEAUX paquets suivants seront install\u00e9s\u00a0:  usb.ids usbip0 mis \u00e0 jour, 2 nouvellement install\u00e9s, 0 \u00e0 enlever et 0 non mis \u00e0 jour.Il est n\u00e9cessaire de prendre 790 ko dans les archives.Apr\u00e8s cette op\u00e9ration, 1\u202f442 ko d'espace disque suppl\u00e9mentaires seront utilis\u00e9s.Souhaitez-vous continuer\u00a0? &#91;O\/n]R\u00e9ception de\u00a0:1 http:\/\/deb.debian.org\/debian bullseye\/main amd64 usb.ids all 2022.05.20-0+deb11u1 &#91;205 kB]R\u00e9ception de\u00a0:2 http:\/\/deb.debian.org\/debian-security bullseye-security\/main amd64 usbip amd64 2.0+5.10.162-1 &#91;585 kB]790 ko r\u00e9ceptionn\u00e9s en 1s (1\u202f162 ko\/s)S\u00e9lection du paquet usb.ids pr\u00e9c\u00e9demment d\u00e9s\u00e9lectionn\u00e9.(Lecture de la base de donn\u00e9es... 45887 fichiers et r\u00e9pertoires d\u00e9j\u00e0 install\u00e9s.)Pr\u00e9paration du d\u00e9paquetage de ...\/usb.ids_2022.05.20-0+deb11u1_all.deb ...D\u00e9paquetage de usb.ids (2022.05.20-0+deb11u1) ...S\u00e9lection du paquet usbip pr\u00e9c\u00e9demment d\u00e9s\u00e9lectionn\u00e9.Pr\u00e9paration du d\u00e9paquetage de ...\/usbip_2.0+5.10.162-1_amd64.deb ...D\u00e9paquetage de usbip (2.0+5.10.162-1) ...Param\u00e9trage de usb.ids (2022.05.20-0+deb11u1) ...Param\u00e9trage de usbip (2.0+5.10.162-1) ...Traitement des actions diff\u00e9r\u00e9es (\u00ab\u00a0triggers\u00a0\u00bb) pour man-db (2.9.4-2)\u00a0...# On n'oublie SURTOUT pas le modprobe sur nos 3 modules sous peine que rien ne fonctionneroot@HomeAssistant:~# <strong><mark style=\"background-color:#fcb900\" class=\"has-inline-color has-vivid-red-color\">modprobe vhci_hcd usbip_host usbip_core<\/mark><\/strong># Recherche des p\u00e9riph\u00e9riques partag\u00e9s sur la machine SERVEUR (192.168.1.190)root@HomeAssistant:~# usbip list -r 192.168.1.190Exportable USB devices====================== - 192.168.1.190      3-1.7: Cambridge Silicon Radio, Ltd : Bluetooth Dongle (HCI mode) (0a12:0001)           : \/sys\/devices\/pci0000:00\/0000:00:1d.0\/usb3\/3-1\/3-1.7           : Wireless \/ Radio Frequency \/ Bluetooth (e0\/01\/01)<\/code><\/pre><p>Comme on peut le voir, on retrouve notre ID (<em><strong>3-1.7<\/strong><\/em>) du p\u00e9riph\u00e9rique USB partag\u00e9 &#8211; le dongle Bluetooth.<\/p><p>Maintenant que l&rsquo;on sait qu&rsquo;il est accessible, il ne reste plus qu&rsquo;\u00e0 le faire reconnaitre par la machine cliente; pour cela, on va attacher l&rsquo;ID du p\u00e9riph\u00e9rique \u00e0 la machine :<\/p><pre class=\"wp-block-code\"><code># Connexion sur la machine CLIENTE \"HomeAssistant\" (machine virtuelle)root@HomeAssistant:~# <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">usbip attach -r 192.168.1.190 -b 3-1.7<\/mark><\/strong># Petit coup de \"lsusb\" pour voir si notre p\u00e9riph\u00e9rique est bien mont\u00e9 ?root@HomeAssistant:~# <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">lsusb<\/mark><\/strong>Bus 018 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hubBus 017 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 016 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hubBus 015 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<strong>Bus 003 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)<\/strong><\/code><\/pre><p>Parfait !<br>Notre p\u00e9riph\u00e9rique est maintenant mont\u00e9 sur la machine CLIENTE&#8230; Vous n&rsquo;avez plus qu&rsquo;\u00e0 l&rsquo;exploiter \ud83d\ude09<\/p><p><\/p><h2 class=\"wp-block-heading\">V\u00e9rifications et probl\u00e8mes \/ r\u00e9solutions<\/h2><p>Parmi tous les probl\u00e8mes que j&rsquo;ai pu rencontrer dans mon environement (un peu sp\u00e9cial !), on peut compter sur :<\/p><ul class=\"wp-block-list\"><li>S\u00e9curit\u00e9 SELinux<\/li><li>Firewall<\/li><li>Oublie d&rsquo;import des modules Kernel<\/li><\/ul><p>Sur le client, pour valider que le p\u00e9riph\u00e9rique est bien mont\u00e9, vous pouvez \u00e9galement lancer la commande qui valide votre configuration :<\/p><pre class=\"wp-block-code\"><code>root@HomeAssistant:~# <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">usbip port<\/mark><\/strong>Imported USB devices====================Port 00: <port in=\"\" use=\"\"> at Full Speed(12Mbps)       Cambridge Silicon Radio, Ltd : Bluetooth Dongle (HCI mode) (0a12:0001)       3-1 -&gt; usbip:\/\/192.168.1.190:3240\/3-1.7           -&gt; remote bus\/dev 003\/003<\/port><\/code><\/pre><p><\/p>","protected":false},"excerpt":{"rendered":"<p>Parfois il peut arriver que vous ayez un p\u00e9riph\u00e9rique USB qui soit connect\u00e9 sur un&hellip;<\/p>\n","protected":false},"author":2,"featured_media":25404,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[8],"tags":[414,85,344,378,415,413,87],"class_list":["post-25244","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-domotique","tag-ip","tag-linux","tag-network","tag-reseau","tag-unix","tag-usb","tag-windows"],"_links":{"self":[{"href":"https:\/\/www.domorizon.eu\/blog\/wp-json\/wp\/v2\/posts\/25244","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.domorizon.eu\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.domorizon.eu\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.domorizon.eu\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.domorizon.eu\/blog\/wp-json\/wp\/v2\/comments?post=25244"}],"version-history":[{"count":23,"href":"https:\/\/www.domorizon.eu\/blog\/wp-json\/wp\/v2\/posts\/25244\/revisions"}],"predecessor-version":[{"id":25410,"href":"https:\/\/www.domorizon.eu\/blog\/wp-json\/wp\/v2\/posts\/25244\/revisions\/25410"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.domorizon.eu\/blog\/wp-json\/wp\/v2\/media\/25404"}],"wp:attachment":[{"href":"https:\/\/www.domorizon.eu\/blog\/wp-json\/wp\/v2\/media?parent=25244"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.domorizon.eu\/blog\/wp-json\/wp\/v2\/categories?post=25244"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.domorizon.eu\/blog\/wp-json\/wp\/v2\/tags?post=25244"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}