Linux Embarqué Cheatsheet Référence terrain · Aide-mémoire

Linux Embarqué —
Commandes & Filesystem

Les commandes Linux indispensables pour l'embarqué et l'arborescence du filesystem POSIX — tout ce qu'on lance quotidiennement sur une cible Raspberry Pi, STM32MP1 ou un BSP Yocto.

Arborescence du filesystem Linux

Le filesystem Linux suit la norme FHS (Filesystem Hierarchy Standard). Connaître les répertoires clés est indispensable pour naviguer, debugger et déployer sur une cible embarquée.

/racine du système — point d'entrée de toute l'arborescence
/binexécutables essentiels (ls, cp, mv, cat...) accessibles à tous
/sbinexécutables système réservés à root (mount, ifconfig, init)
/usr/binapplications utilisateur non essentielles au boot
/usr/sbinoutils admin non essentiels au boot
/usr/libbibliothèques partagées (.so) pour /usr/bin et /usr/sbin
/etcfichiers de configuration système (fstab, hostname, network)
/etc/init.d/scripts SysV de démarrage des services (legacy)
/etc/systemd/configuration systemd (services, units, targets)
/devfichiers de périphériques — c'est ici qu'apparaissent vos drivers !
/dev/ttyS0port série UART (souvent la console debug)
/dev/i2c-1bus I2C numéro 1, accessible via ioctl
/dev/spidev0.0bus SPI 0 chip-select 0
/dev/mtd0partition Flash NOR/NAND brute
/procfilesystem virtuel — état du kernel et des processus en lecture
/proc/cpuinfoinfos CPU (modèle, cœurs, features)
/proc/meminfoétat détaillé de la RAM
/proc/devicesdrivers chargés et leurs numéros majeurs
/proc/interruptscompteur d'IRQ par CPU et par périphérique
/proc/kmsgflux des messages kernel (dmesg lit ici)
/sysfilesystem virtuel — interface kernel ↔ userspace pour drivers
/sys/class/gpiocontrôle des GPIO depuis userspace (legacy)
/sys/bus/i2c/devicespériphériques I2C détectés et leurs attributs sysfs
/sys/firmware/devicetreedevice tree actif vu par le kernel
/libbibliothèques partagées essentielles au boot (libc.so, ld-linux)
/lib/modulesmodules kernel chargeables (.ko), un dossier par version kernel
/lib/firmwarefirmwares chargés à la volée par les drivers (WiFi, GPU...)
/bootbootloader, image kernel (zImage), device tree binary (.dtb)
/homerépertoires personnels des utilisateurs (rarement utilisé en embarqué)
/roothome de l'utilisateur root
/tmpfichiers temporaires (souvent en RAM via tmpfs)
/vardonnées variables (logs, caches, spools)
/var/logtous les logs système (messages, syslog, journal)
/mntpoints de montage temporaires (USB, SD externes)
/optapplications tierces installées hors du gestionnaire de paquets

Navigation & Fichiers

ls -la
Liste détaillée (permissions, propriétaire, taille, date) — l'option -h ajoute des tailles lisibles.
cd /chemin
Change de répertoire. cd - revient au précédent, cd ~ retourne au home.
pwd
Affiche le répertoire courant en chemin absolu.
find / -name "*.ko"
Recherche récursive — ici tous les modules kernel sur le système.
grep -r "term" /etc
Recherche récursive dans le contenu des fichiers. -i insensible à la casse, -n avec numéro de ligne.
cat /proc/cpuinfo
Affiche le contenu d'un fichier — indispensable pour les fichiers virtuels de /proc et /sys.
tail -f /var/log/messages
Suit en temps réel la fin d'un fichier — idéal pour observer des logs qui s'écrivent.
df -h
Espace disque libre par filesystem monté, lisible (-h).
du -sh *
Taille des fichiers/dossiers du répertoire courant.

Kernel & Modules

uname -a
Toutes les infos kernel : version, architecture, hostname.
dmesg
Affiche le ring buffer kernel — tous les printk et messages drivers depuis le boot.
dmesg -w
Suit dmesg en temps réel — précieux pour debugger un driver qui s'enregistre.
dmesg -c
Affiche puis vide le ring buffer — utile avant d'insérer un module.
lsmod
Liste tous les modules kernel chargés avec leur taille et dépendances.
insmod module.ko
Charge un module kernel (.ko) dans le kernel courant. Nécessite root.
rmmod module
Décharge un module kernel (sans l'extension .ko). Échoue s'il est utilisé.
modprobe wifi
Charge un module et toutes ses dépendances automatiquement (preferred over insmod).
modinfo module.ko
Affiche les métadonnées d'un module : auteur, licence, paramètres, dépendances.
cat /proc/devices
Liste les drivers chargés et leur numéro majeur — indispensable avant mknod.

Processus & Ressources

ps aux
Liste tous les processus avec PID, CPU%, mémoire, commande.
top
Moniteur interactif temps-réel des processus et ressources. htop en version améliorée.
kill -9 PID
Tue un processus brutalement (SIGKILL). Préférer kill -15 (SIGTERM) si possible.
pgrep / pkill
Trouve / tue par nom de processus. pkill firefox tue tous les firefox.
free -h
Mémoire RAM et swap utilisées/libres en format lisible.
uptime
Temps depuis le boot et load average (charge moyenne 1/5/15 min).
strace -p PID
Trace tous les syscalls d'un processus. Indispensable pour debugger sans source.
lsof -i :8080
Quel processus écoute sur le port 8080 ? Aussi pour les fichiers ouverts.

Réseau

ip a
Interfaces réseau et adresses IP (remplace l'ancien ifconfig).
ip r
Table de routage IP.
ping -c 4 8.8.8.8
Teste la connectivité avec un hôte. -c limite le nombre de paquets.
ss -tunlp
Sockets TCP/UDP en écoute, processus associés (remplace netstat).
nmap -p 1-1000 IP
Scan de ports d'un hôte distant. Utile pour debug serveur embarqué.
curl -v http://IP/api
Requête HTTP verbeuse — pour tester un serveur REST embarqué.
wget URL
Télécharge un fichier en ligne de commande.
scp file user@IP:/path
Copie sécurisée vers/depuis une cible SSH — pour déployer un binaire.

Permissions & Sécurité

chmod 755 file
Permissions : 7=rwx propriétaire, 5=r-x groupe, 5=r-x autres. +x ajoute exécution.
chown user:group file
Change le propriétaire et le groupe d'un fichier.
sudo command
Exécute en tant que root. Configuration dans /etc/sudoers.
su -
Devient root avec environnement complet. Préférer sudo en pratique.
passwd
Change le mot de passe de l'utilisateur courant. passwd user pour un autre user (root only).
ls -l /dev/i2c-1
Vérifie les permissions d'un device. Sortie typique : crw-rw---- root i2c.

Spécifique Embarqué

i2cdetect -y 1
Scan du bus I2C-1 — affiche les adresses des périphériques détectés.
i2cget -y 1 0x48 0x00
Lit un registre I2C. Bus 1, adresse 0x48, registre 0x00.
i2cset -y 1 0x48 0x01 0xFF
Écrit dans un registre I2C. À utiliser avec précaution sur du matériel actif.
spi-tools / spidev_test
Outils pour tester un bus SPI depuis userspace.
stty -F /dev/ttyS0 115200
Configure un port série (baudrate, parité, stop bits).
minicom -D /dev/ttyUSB0
Terminal série interactif. Alternative : screen, picocom, tio.
mount -t devtmpfs /dev /dev
Monte le filesystem devtmpfs. Pour un rootfs minimal Buildroot/Yocto.
mknod /dev/hello c 240 0
Crée manuellement un fichier device. c = character, 240 = major, 0 = minor.
fdtdump arch/.../dtb
Décompile un Device Tree Blob (.dtb) en format lisible.
devmem 0x40020000
Lit/écrit directement à une adresse physique. Pour debug bas niveau.
// astuces de productivité

!! rejoue la dernière commande — sudo !! en root
Ctrl+R recherche dans l'historique
| chaîne des commandes : dmesg | grep i2c | tail -5
> et >> redirigent vers fichier (écrase / ajoute)
& en fin de commande la lance en arrière-plan
nohup cmd & survit à la déconnexion SSH