====== 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 [[https://magpi.raspberrypi.com/articles/pi-zero-w-smart-usb-flash-drive|celui-ci]] Installer d'abord Raspberry Pi OS Lite (64-bit) sur la {{https://ressources.labomedia.org/raspberry_pi_installation#installation_sous_macosx_via_un_lecteur_de_carte_sd_externe|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 [[http://rpf.io/usbzw|Source originale du programme]] 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 {{tag> raspberry_pi sylvain }}