====== Raspberry Pi ======
J'utilise le rpi depuis quelques temps, pour des projets d'instrumentation autonome et low-cost, mais j'oublie toujours les infos essentielles et je passe un temps fou à les rechercher aux 4 coins du web. \\
Je les rassemble donc ici pour faciliter leur (re)découverte.
===== Login et mdp par défaut =====
Pour les versions AVANT 2022:
LOGIN : pi
MDP : raspberry
Depuis 2022 [[https://www.raspberrypi.com/news/raspberry-pi-bullseye-update-april-2022/|source]] :\\
L'utilisateur par défaut ''pi'' a été enlevé car peu de gens change le mdp par défaut, et on a donc des RPi peu sécurisé dans la nature.\\
Il faut donc maintenant définir lors de la création/installation de l'image un user et pw depuis le logiciel "Raspberry Imager" ou alors au first boot depuis le wizard.
Si on a une image headless (sans écran connecté), on peut définir le mdp à la création de l'image avec "Raspberry Imager", ou placer un petit fichier à la racine de la partition boot (comme pour ssh) : ''userconf'' ou ''userconf.txt''. Ce fichier doit contenir une seule ligne de texte ''username:encrypted-passwd''.\\
Pour créer le mot de passe, on peut utiliser openssl : ''openssl passwd -6 >> userconf''
echo 'monusername:' >> userconf
openssl passwd -6 >> userconf
# penser à éditer le fichier (vim/nano) pour supprimer les sauts de ligne en trop
===== Changer layout clavier =====
sudo raspi-config
===== Se connecter à un réseau wifi =====
''raspi-config'' est votre ami !
===== Activer SSH =====
==== Systemd ====
systemctl enable ssh
==== Headless server ====
Il suffit de rajouter un fichier nommé ''ssh'' à la racine de la carte SD, dans la partition boot (la plus petite des partitions) s'il y en a plusieurs.
==== Avec une raspbian desktop ====
=== GUI ===
- Launch ''Raspberry Pi Configuration'' from the ''Preferences'' menu
- Navigate to the ''Interfaces'' tab
- Select ''Enabled'' next to ''SSH''
- Click ''OK''
=== CLI ===
- Enter ''sudo raspi-config'' in a terminal window
- Select ''Interfacing Options''
- Navigate to and select ''SSH''
- Choose ''Yes''
- Select ''Ok''
- Choose ''Finish''
===== Ajouter un utilisateur sur un rpi headless =====
Raspberry Pi OS n'intègre plus d'utilisateur par défaut depuis Bullseye (Debian 11). Au démarrage, on a la possibilité de configurer tout cela avec un utilitaire lancé pour le premier démarrage. C'est pour la sécurité, plus d'utilisateur et de mdp par défaut.\\
Cependant, ce n'est pas forcément pratique si le rpi est headless, même en activant ssh comme présenté précédemment avec un fichier sur la partition boot, car aucun utilisateur n'est disponible.
On peut créer un utilisateur de la même façon, en déposant un fichier ''userconf'' sur la partition boot (comme pour le fichier ssh):
# création du fichier avec l'username
echo -n "joe:" > userconf
# ajout du hash du mdp
echo "mot-de-passe" | openssh passwd -6 -stdin >> userconf
Et voilà, on peut maintenant insérer la SD dans le rpi, booter et y accéder à distance par ssh !
===== Conda et rpi =====
Hmm c'est plus compliqué qu'il n'y parait. La dernière version semble être [[https://github.com/jjhelmus/berryconda|berryconda]]
La meilleure solution semble avoir des environnements gérés avec [[pyenv]] et avec [[virtualenv|venv]]. ça marche sur un PC amd64 sous Archlinux, ça doit aussi le faire avec un rpi, à tester.
===== Official display =====
the brightness can be adjusted using:
echo n > /sys/class/backlight/rpi_backlight/brightness
where n is some value between 0 and 255.
Pour retourner l'écran de 180° et l'interface souris/touch
Editer le fichier /boot/config.txt
et rajouter lcd_rotate=2
===== Horloge =====
En 2025, Raspberrypi os utilise systemd, ça se passe donc avec ''timedatectl'', voir [[horloge]]