Raspberry en Clé USB

Bonjour à tous, j’avais une petite question concernant les ports USB du raspberry,
Peut ton transformer un port USB du raspberry en clé USB. Je m’explique,

J’aimerais qu’une partition du raspberry soit reconnu comme un device USB par un ordinateur quand je branche avec un cable USB-Male <–> USB-Male.

Pour l’explication j’ai une machine qui ne fonctionne qu’avec des clés USB (elle n’a pas de mémoire interne) et j’aimerais la rendre connectable en réseau. Ainsi j’ai pensé utiliser un raspberry comme « Clé USB » avec une partition partager en réseau. Mais je me demande si c’est possible et dans quels mesure.

Merci à vous
très cordialement
Theuma

hello,

il me semble que c’est possible avec mais uniquement avec un pi zero mais tu trouveras plus d’info en googlelisant : « turn raspberry into usb key »

Le port USB non power supporte le mode OTG. Je me suis amusé un peu avec et tu trouvera même des accessoire pour rendre le tout plus facile.

Exemple;

Voici un beau guide;
https://www.circuitbasics.com/raspberry-pi-zero-ethernet-gadget/

Super merci beaucoup de vos réponses !!!
Effectivement j’ai aussi trouver ce TUTO :Make a Pi Zero W Smart USB flash drive — The MagPi magazine

J’ai commander un PI zero W et je vais essayer de faire tout ça !! JE vous tiens au courant :slight_smile:

J’ai remis un Pi Zéro hier en mode OTG, juste petite précision, je perds l’usage du USB si je passe en mode normal et veux utiliser une souris par exemple, les USB ne sont pas vu en mode OTG, même quand tu démarre normalement (power qui rentre par le usb power).

Après avoir réussi à mettre le Raspberry en OTG, je n’arrive pas a faire monter le stockage en USB. Je n’arrive pas à comprendre d’où le problème peux venir, j’ai essayer les 2tutos, mais impossible.
J’utilise le raspberry pi OS lite
Mais brancher à un PC ou un MAC je ne vois pas l’unité de stockage :confused:

Si quelqu’un avait 2 minutes pour me donner les détails pour afficher une unité de stockage ca serais super.

Merci à vous

Voilà ce que j’ai fait :

Je flash la SD avec Rapberry Pi OS lite
dans la carte sd j’ajoute :

  • ssh
  • wpa_supplicant.conf (avec mes paramètres wifi)
  • dans config.txt, a la fin du fichier j’ajoute : « dtoverlay=dwc2 »
  • dans cmdline.txt j’ajoute juste après rootwait « modules-load=dwc2,g_ether »

Une fois tout ca fait sur ma carte SD je lance mon raspberry en le branchant sur un windows ou un Mac pour le moment.

j’accède au raspberry en SSH avec le Wifi
je modifie le fichier module
sudo nano /etc/modules
j’ajoute « dwc2 »
j’enregistre je ferme
JE reboot le raspberry
Je vois la carte réseau apparaitre (donc le mode OTG est bien activé)

toujours en SSH:
sudo dd bs=1M if=/dev/zero of=/piusb.bin count=2048
Je créer mon stockage
sudo mkdosfs /piusb.bin -F 32 -I
je formate en FAT32

sudo mkdir /mnt/usb_share

je creer un dossier usb_share
sudo nano /etc/fstab
je modifie le fichier fstab
a la fin du fichier je met cette ligne là :
/piusb.bin /mnt/usb_share vfat users,umask=000 0 2
je redémarre fstab
sudo mount -a

Je fais monter le stockage
sudo modprobe g_mass_storage file=/piusb.bin stall=0 ro=1

Mais à partir de ce moment là je devrais voir ma clé USB apparaitre et je ne vois rien.
Je suis bloqué à ce niveau là malheureusement

Merci de votre aide

J’ai trouver d’ou venait le problème

dans cmdline.txt il ne faut pas mettre g_ether mais g_multi

Ca fonctionne.

Tout d’abord merci à tout le monde pour le coup de main.

Maintenant j’ai une autre question plus technique. Ma machine ne lis les fichiers sur la Clé USB que une seul fois quand on la branche.
Donc quand je fais la commande
sudo modprobe -r g_mass_storage : démonter le USB
puis
sudo modprobe g_mass_storage file=/piusb.bin stall=0 ro=1 : remonter le USB
mes fichiers apparaissent
La question, est 'il possible de créer une règle qui dis que quand un fichier est ajouté à mnt/usb_share les 2 commandes s’exécutent ?
Sachant qu’il faut mettre un petit temps d’arrêt entre les 2 commandes sinon la machine ne voit que l’usb à été démonté

merci de votre aide

J’ai créer un fichier bash

#!/bin/bash
echo "Script lancé ! \n"
modprobe -r g_mass_storage
echo "USB Démonté"
sleep 5
modprobe g_mass_storage file=/piusb.bin stall=0 ro=1
echo "USB remonté"

Maintenant j’aimerais le lancé de manière automatique au changement du dossier usb_share

si quelqu’un à une idée :wink:

merciii

Le mode USB Files n’est pas bien pris en charge sous Windows, le format de fichier Win/nix ne sont pas compatible, lorsque tu monte ton .bin pour le USB, le système linux ne vois pas les modif et le pc non plus quand c’et l’autre qui le fait. Ceci est problème connu du mode OTG du Pi.

g_ether était pour mettre le Pi en mode OTG carte réseau. le g_multi est pour les autres types. Moi j’ai pas voulu me casser la tête avec les droits de fichiers et le partage et montage des partition. Trop de trouble et peux pratique. J’ai opté pour Samba, avec un accès sans login/pass via le mode g_ether.

Ce partage n’est vu que sur le PC hôte, l’accès aux fichiers est rapide et simple, et le partage de tout le Pi est possible (ou juste le /home/pi), avec choix de lecture seul ou RW complet. Pour cacher un partage, suffit d’ajouter « $ » à la fin, mais il sera accessible à celui qui le sais, comme je partage le /home/pi sur un projet, mais en visite il voit que le partage d’un dossier de config du script, mais si j’ai besoin de gérer les fichiers du compte, je tappe l’adresse du dossier caché et je suis en contrôle.

Merci de ta réponse,
Effectivement je suis en samba pour envoyer mes fichiers de mon windows vers le raspberry, ce qui est très pratique, je suis dans un environnement relativement sécurisé niveau du réseau donc pour le moment tout est resté « Ouvert » Il n’y a pas de donnés sensible sur cette clé.

Le problème que j’ai est que quand j’envois un fichier en réseau sur la clé, la machine sur lequel je dois envoyer le fichier ne lis la clé uniquement au montage de clé, c’est pourquoi je fais ces 2 commandes à la suite pour faire croire à la machine que j’enlève et que je met une clé.

Donc ce qui passe quand la clé est connecté à la machine, les nouveaux fichiers que j’ajoute la machine ne les voient pas.

Je demandais donc si il n’y avait pas la possibilité de lancer un script à la modification d’un dossier.
En tout cas merci de ta réponse

Windows n’actualiseras pas la clé si elle a déjà été monté, faut la déconnecter/connecter pour refaire le processus sous Windows.

Windows n’utilise pas directement les fichiers sur le USB, il va en charger en mémoire pour es utiliser, appliquer les modifications, dans un certains délais, il va appliquer l’écriture sur e USB. Ceci gère certains paramètre et performances pour maintenir un USB viable. Ceci peut entrainer des modifications dans le MBR (table d’index des fichiers) et Linux ne va pas les capter, vu que ce n’est pas lui qui le gère, il sert sur un plateau le fichier USB. Pour que Linux puissent lire, il doit démonter et remonter l’image, et Windows ne supporte pas une actualisation de ce type sans qu’il en gère lui même le montage / démontage, pour ça le message d’erreur lorsqu’ont retire une clé USB sans « l’éjecter », car il peut avoir une absence d’actualisation du MBR (delayed).

Si Linux édite le partage, Windows ne va pas le reconnaitre car il gère son propre MBR durant la connexion du USB, et va seulement le relire quand il sera déconnecté/reconnecté.

Ceci est un caprice de gestion des disques sous Windows NT , sous Windows 95/98/ME cette restriction n’est pas vraiment appliqué. C’est l’une des raisons que les lecteurs de disque en USB ont de la difficultés avec certaines tâches depuis Windows 2000/XP.

Oui c’est tout a fait ca, la machine tourne effectivement sur un windows et c’est ce qui se passe.
j’ai donc trouvé dans le TUTO partager plus haut de faire la mise a jour en démontant er remontant de ma nièce automatique la clé USB en utilisant la bibliothèque watchdog de python3.

et donc en modification du dossier partagé la clé ce démonte et ce remonte. C’est donc parfait :slight_smile:
En tout cas merci pour votre aide. Un plaisir de partager ca avec vous.
Je peux réaliser un tuto complet si il ya besoin.

1 « J'aime »

Toujours apprécié :slight_smile: