# RPI gadget_cdrom {{INLINETOC}} gadget_cdrom convertit un Raspberry Pi en cdrom USB virtuel. ## Matériel: * Raspberry Pi Zéro (W) * HAT OLED 1,3 pouces Waveshare * Raspbian Buster ## Image raspbian prête à l'emploi Récupérer une l'image raspbian personnalisée [[https://github.com/tjmnmk/gadget_cdrom/releases/download/v1.0.0/image_2021-02-22-gadget_cdrom-gc.zip|ici]], la graver simplement sur la carte SD, brancher rpi et attendre quelques minutes pour que tout soit prêt. ## Installation ### Installer les dépendances ``` sudo apt install -y p7zip-full python3-rpi.gpio python3-smbus python3-spidev \ python3-numpy python3-pil fonts-dejavu ntfs-3g ``` ### Préparer le stockage ``` # sudo ./create_image.sh Space available: 24G Size, e.g. 16G? 8G" Creating 8G image... Done! ``` ### Charger les modules après le démarrage * Ajouter `dtoverlay=dwc2` à `/boot/config.txt` * Ajouter dwc2 à `/etc/modules` * Activer SPI ``` sudo raspi-config Interfacing Options SPI Yes ``` ### Installer gadget_cdrom * Cloner le dépôt ``` cd /opt sudo git clone https://github.com/tjmnmk/gadget_cdrom.git ``` * Activer le service systemd : ``` sudo ln -s /opt/gadget_cdrom/gadget_cdrom.service /etc/systemd/system/gadget_cdrom.service sudo systemctl enable gadget_cdrom.service ``` * redémarrer rpi ``` sudo reboot ``` Pour le support des isos de support supérieurs à ~ 2,5 Go il faut [[https://www.raspberrypi.org/documentation/linux/kernel/building.md|recompiler le noyau]] après avoir appliquer le patch `gadget_cdrom/tools/kernel/00-remove_iso_limit.patch` ## Utilisation ### Sélection du mode On peut basculer entre le mode disque dur, le mode cdrom virtuel et le mode lecteur flash virtuel. * **Mode HDD** - dans ce mode, votre Raspberry Pi est essentiellement une clé USB connectée à votre ordinateur. * **Mode CD** - dans ce mode, vous sélectionnez une ISO que vous avez téléchargée sur Raspberry Pi en mode HDD, et le rpi prétendra être ce cdrom. * **Mode USB** - le rpi se fera passer pour un lecteur flash, présentant le fichier .img usb que vous avez sélectionné. ### Sélection de images * **Key1** - Activer l'image sélectionnée * **Key2** - Désactiver l'image * **Key3** - Changer de mode * **Joystick vers le bas** - image suivante * **Joystick vers le haut** - image précédente * **Joystick gauche** - arrêt / mise sous tension