Ceci est une ancienne révision du document !
Transformer une Raspberry Pi en clef USB
Matériel
- raspberry Pi zéro 2W
- Carte SD 16Go
- Câble USB type A / Micro USB
Tutoriel basé sur celui-ci
Installer d'abord Raspberry Pi OS Lite (64-bit) sur la carte SD
Modifier le fichier config.txt
sudo nano /boot/config.txt
Ajouter en fin de fichier la ligne suivante
dtoverlay=dwc2
Puis Ctrl + O appuyer sur Enter pour valider et Ctrl + X pour quitter.
sudo nano /etc/modules
Ajouter en fin de fichier la ligne suivante
dwc2 sudo dd bs=1M if=/dev/zero of=/piusb.bin count=2048 sudo mkdosfs /piusb.bin -F 32 -I sudo mkdir /mnt/usb_share
Editer le
sudo nano /etc/fstab
Ajouter cette ligne à la fin du fichier
/piusb.bin /mnt/usb_share vfat users,umask=000 0 2
Puis Ctrl + O appuyer sur Enter pour valider et Ctrl + X pour quitter.
Redémarrer fstab
sudo mount -a
Télécharger un fichier test
cd /mnt/usb_share wget https://ressources.labomedia.org/_media/media_13/wikikirc-mecanique.jpg
Vider le cache
sync
sudo modprobe g_mass_storage file=/piusb.bin stall=0 ro=1 sudo modprobe -r g_mass_storage
Installation de Samba
sudo apt-get install samba winbind -y
Editer le fichier de configuration
sudo nano /etc/samba/smb.conf
Ajouter ces lignes à la fin du fichier
[usb] browseable = yes path = /mnt/usb_share guest ok = yes read only = no create mask = 777
Puis Ctrl + O appuyer sur Enter pour valider et Ctrl + X pour quitter.
Attention de bien avoir trois espaces d'indentation dans le fichier smb.conf
Redémarrer Samba pour que les changements soient effectifs
sudo systemctl restart smbd.service
Installer Python
sudo apt install python3-pip
Installer la librairie Watchdog
sudo pip3 install watchdog
Installer le programme permettant de réactualiser le dossier quand un fichier est dans le répertoire.
cd /usr/local/share sudo wget https://ressources.labomedia.org/_media/wiki/usbshare.py sudo chmod +x usbshare.py
Mettre le programme dans un service fonctionnant en tâche de fond. Editer un nouveau fichier
cd /etc/systemd/system sudo nano usbshare.service
Copier les lignes ci-dessous dans le fichier
[Unit] Description=USB Share Watchdog [Service] Type=simple ExecStart=/usr/local/share/usbshare.py Restart=always [Install] WantedBy=multi-user.target
Puis Ctrl + O appuyer sur Enter pour valider et Ctrl + X pour quitter.
Les commandes suivantes permettent d'enregistrer le nouveau service et de la démarrer
sudo systemctl daemon-reload sudo systemctl enable usbshare.service sudo systemctl start usbshare.service