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
sudo systemctl restart smbd.service
Installer Python
sudo apt install python3-pip
Installer la librairie Watchdog
sudo pip3 install watchdog cd /usr/local/share sudo wget https://ressources.labomedia.org/_media/wiki/usbshare.py sudo chmod +x usbshare.py cd /etc/systemd/system sudo nano usbshare.service
[Unit] Description=USB Share Watchdog
[Service] Type=simple ExecStart=/usr/local/share/usbshare.py Restart=always
[Install] WantedBy=multi-user.target sudo systemctl daemon-reload sudo systemctl enable usbshare.service sudo systemctl start usbshare.service
