Raspberry Pi : Présentation et utilisation de cmdline.txt

Lorsque vous créez une nouvelle carte SD pour votre Raspberry Pi, elle inclut, à la fois les fichiers système pour Raspberry Pi OS (ou toute autre distribution), et certains fichiers de configuration moins connus, comme config.txt et cmdline.txt. Dans cet article, je vais vous présenter le fichier cmdline.txt. Dans la plupart des cas, vous n’avez pas besoin de le modifier, mais il peut être utile d’en savoir un peu plus à son sujet.

Le fichier cmdline.txt est un fichier de configuration, situé sur la partition de démarrage de la carte SD du Raspberry Pi, et utilisé pour passer des paramètres supplémentaires au noyau Linux pour le démarrage du système.

Je commencerai par vous donner plus de détails sur la théorie, puis j’expliquerai les différents paramètres qui peuvent être définis, et dans quels cas cela pourrait vous être utile.

À propos, si vous êtes novice sur Raspberry Pi et que vous souhaitez accélérer vos premiers pas (tout en vous amusant), n’hésitez pas à télécharger mon e-book « Maitrisez Raspberry Pi en 30 jours« . Il s’agit d’un défi de 30 jours au cours duquel vous apprendrez une nouvelle compétence chaque jour. Vous économiserez du temps et de l’argent et pourrez enfin apprécier cet appareil passionnant qu’est le Raspberry Pi. Je vous offre d’ailleurs 10% de remise aujourd’hui en utilisant ce lien !

Introduction au fichier cmdline.txt sur Raspberry Pi

Objectif

Le noyau Linux (kernel) est l’élément principal de tout système Linux. Il s’agit d’un logiciel de bas niveau qui crée l’interface entre le matériel et le système d’exploitation. Au démarrage, il est lancé avant le système principal, le système d’exploitation dépend de lui pour fonctionner.

Raspberry Pi OS utilise cmdline.txt pour définir les options que le noyau utilisera au démarrage. Par exemple, ce fichier peut inclure certains paramètres matériels, comme l’ID du disque de stockage, afin que le noyau sache quoi faire au démarrage.

Un fichier cmdline.txt existe avec la plupart des systèmes Linux, ce n’est pas seulement pour Raspberry Pi OS, mais je vais me concentrer sur l’exemple de Raspberry Pi OS dans cet article.

Si vous avez besoin d’une introduction (ou d’un rafraîchissement) sur le noyau Linux, cette vidéo est un excellent point de départ :

Localisation

Le fichier cmdline.txt est créé sous la partition de démarrage (/boot) lorsqu’un nouveau système est flashé sur une carte SD Raspberry Pi.

Il s’agit de la partition formatée en FAT sur la carte SD, qui peut donc être lue depuis n’importe quel système d’exploitation (même sous Windows) :

Téléchargez mon antisèche !
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.

Article connexe : Présentation du système de fichiers de Raspberry Pi OS (en anglais).

Modification du fichier cmdline

Le fichier cmdline.txt, généré sur la carte SD lors de l’installation, peut être édité à partir de n’importe quel ordinateur ou système d’exploitation.

Si vous utilisez Windows pour flasher la carte SD, vous devrez peut-être débrancher/rebrancher la carte SD pour la monter une fois que Raspberry Pi Imager ou Etcher a terminé (ces outils éjectent automatiquement la carte SD lorsqu’ils ont terminé). Mais il est sur la partition que vous pouvez lire et modifier, donc ce n’est pas compliqué.

Sous Linux, l’emplacement du fichier varie en fonction du point de montage, mais il devrait être monté automatiquement sur la plupart des systèmes, vous trouverez la partition de démarrage dans votre explorateur de fichiers (assurez-vous simplement que c’est celle qui se trouve sur la carte SD, et non celle dans /boot, qui est pour votre ordinateur).

Vous pouvez également modifier le fichier de la carte SD directement depuis votre Raspberry Pi. Dans ce cas, c’est le fichier sous /boot que vous devez ouvrir.
N’oubliez pas d’utiliser sudo si vous envisagez de le modifier, par exemple :
sudo nano /boot/cmdline.txt

Tout éditeur de texte peut être utilisé pour ouvrir et modifier ce fichier (voici la liste de mes éditeurs préférés).
Tous les paramètres sont sur une seule ligne, il n’est donc pas nécessaire d’utiliser quelque chose de sophistiqué pour cette tâche.

Si les commandes Linux ce n’est pas trop votre truc, n’hésitez pas à jeter un œil à cet article qui vous explique les commandes qu’il faut absolument connaître. Je vous donne aussi une antisèche à télécharger pour les avoir toujours sous la main !

Que contient le fichier cmdline.txt sur un Raspberry Pi ?

Sur un Raspberry Pi, le fichier cmdline.txt est utilisé pour passer des paramètres au noyau Linux pour le processus de démarrage. Il est principalement utilisé pour configurer les actions qui se produiront lors du premier démarrage ou pour spécifier la partition du système d’exploitation.

La configuration par défaut de cmdline.txt

Voyons tout d’abord le contenu par défaut du fichier.

Avec Raspberry Pi OS, le fichier cmdline.txt est différent au premier démarrage et une fois l’installation terminée.

Avant le premier démarrage

Le fichier initial cmdline.txt comprend des paramètres supplémentaires, indiquant au noyau les tâches à lancer lors du premier démarrage. Lorsque vous flashez la carte SD avec Raspberry Pi OS, le fichier ressemble à ceci :

console=serial0,115200 console=tty1 root=PARTUUID=1d124286-02 rootfstype=ext4 fsck.repair=yes rootwait quiet init=/usr/lib/raspberrypi-sys-mods/firstboot splash plymouth.ignore-serial-consoles systemd.run=/boot/firstrun.sh systemd.run_success_action=reboot systemd.unit=kernel-command-line.target

Tout est sur une seule ligne, donc ce n’est pas facile à lire, mais il s’agit simplement de plusieurs arguments les uns après les autres.
J’expliquerai plus tard ce qu’ils signifient, mais vous pouvez repérer le modèle suivant qui se répète :
argument1=valeur1 argument2=valeur2 argument3=valeur3 ...

Après le premier démarrage

Lorsque Raspberry Pi OS a démarré complètement au moins une fois, avec les tâches d’initialisation effectuées, le contenu du fichier sera plus court, et ressemblera à ceci :

console=serial0,115200 console=tty1 root=PARTUUID=7a905b6b-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

Vous pouvez remarquer que la plupart des paramètres liés au premier démarrage ne sont plus présents.

Si, après avoir lu cet article, vous modifiez votre fichier cmdline.txt et que vous commettez des erreurs rendant votre Raspberry Pi instable ou l’empêchant de démarrer, vous pouvez prendre cet exemple pour restaurer votre fichier.
Il vous suffit de mettre à jour la variable « PARTUUID » avec l’ID de votre partition système.

Téléchargez mon antisèche !
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.

Alors, quels sont tous ces paramètres, et quand peut-il être utile de modifier ce fichier ?
Commençons par expliquer ceux du dernier exemple, qui sont les principaux paramètres du noyau Linux.

Principaux paramètres de cmdline.txt

  • console : Il s’agit essentiellement d’informations sur l’interface d’affichage.
    Le noyau démarre généralement sur tty0 ou tty1. Sur Raspberry Pi OS, c’est tty1.
    Vous ne devriez pas avoir besoin de le modifier. Même chose pour le port série, dont la plupart des gens n’ont pas besoin.
  • root : Comme vous l’avez peut-être deviné, il contient l’ID de la partition du système d’exploitation.
    C’est particulièrement utile de l’avoir là pour l’argument « rootwait » mentionné plus tard.
    Vous pouvez utiliser la commande « fdisk » (expliquée ici) pour voir les ID de toutes vos partitions.
  • rootfstype : Le format de fichier utilisé pour la partition principale. Avec la plupart des distributions Linux, ce sera EXT4.
  • rootwait : Il indique au noyau d’attendre que la partition système soit accessible avant de lancer le système d’exploitation. Comme nous utilisons une carte SD, cela peut prendre plus de temps que sur un ordinateur traditionnel.
  • splash : Si l’image splash doit être affichée au démarrage ou non (le logo Raspberry Pi).
    Si vous supprimez cette option, un écran noir s’affichera à la place.
  • plymouth.ignore-serial-consoles : Dites à Plymouth de ne rien afficher sur la sortie de la console série. Plymouth est le gestionnaire d’affichage pendant le processus de démarrage.

Options supplémentaires dans cmdline.txt

Sur le fichier utilisé pour le premier démarrage, il y a quelques autres paramètres :

  • systemd.run et systemd.run_success_action : Utilisés par la Fondation Raspberry Pi pour les tâches supplémentaires à exécuter lors du premier démarrage.
    En gros, ils exécutent un script (firstrun.sh) qui effectuera toutes les tâches que vous avez définies dans les options avancées de Raspberry Pi Imager.
    Si vous regardez le script avant le premier démarrage, il ressemble à ça :
    Dans cet exemple, le script modifiera le hostname par défaut et activera SSH.
  • init : Je ne suis pas sûr à 100 % pour celui-ci, mais je suppose que c’est un autre script créé par les développeurs de Raspberry Pi. Je dirais que c’est probablement pour exécuter les tâches initiales avant le premier démarrage, comme le redimensionnement de la partition système.
    Il est également possible d’utiliser ce paramètre pour d’autres choses, comme le démarrage en mode « single user » lorsque vous avez perdu votre mot de passe. (Je donne plus de détails ici)

Voici toutes les options que vous pouvez trouver par défaut pour Raspberry Pi OS, j’espère donc les avoir clarifiées. Mais il y a beaucoup d’autres choses que vous pouvez faire avec ce fichier, et des questions supplémentaires que vous pourriez avoir.
Je vais essayer de répondre aux utilisations les plus courantes de ce fichier sous forme de questions-réponses.

Téléchargez mon antisèche !
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.

Vous comprenez l'anglais et en voulez encore plus ? Je publie une nouvelle leçon chaque mois, réservée à mes abonnés premium. Rejoignez la communauté dès maintenant pour y avoir accès !

FAQ

Pouvez-vous définir une adresse IP statique via le fichier cmdline.txt ?

Le paramètre supplémentaire « ip » peut être ajouté au fichier cmdline.txt pour définir une adresse IP statique au premier démarrage.

Par exemple, en ajoutant quelque chose comme cela à la fin du fichier (sur une seule ligne) :
ip=192.168.222.50::192.168.222.1:255.255.255.0:rpi:eth0:off

Dans cet exemple, mon Raspberry Pi va démarrer avec l’adresse IP 192.168.222.50, en utilisant 192.168.222.1 comme passerelle, avec le masque traditionnel (/24).

Cela a bien fonctionné pendant mes tests, mais je ne recommande pas forcément d’utiliser cette méthode. Essayez plutôt d’utiliser votre serveur DHCP lors du premier démarrage (ou démarrez sans réseau) et suivez cet autre tutoriel pour définir une adresse IP statique sur le Raspberry Pi.

Si vous faites cela dans cmdline.txt, cela ne fonctionnera que lors du premier démarrage, et créera très probablement des conflits avec le service dhcpcd si un serveur DHCP est actif sur votre réseau (le Raspberry Pi aura ainsi deux IP assignées, et passera de l’une à l’autre constamment).

Pouvez-vous utiliser cmdline.txt pour activer SSH au démarrage ?

La façon la plus simple d’activer SSH au démarrage sur Raspberry Pi est de créer un fichier vide, nommé « ssh » dans la partition boot de la carte SD. Il n’est pas nécessaire d’utiliser cmdline.txt pour cela.

Vous pouvez lire cet autre article si vous voulez en savoir plus : Installer votre Raspberry Pi Zero sans clavier ni écran.

Serait-il possible de configurer le démarrage en réseau via cmdline.txt ?

Les dernières versions du firmware de Raspberry Pi vous permettent d’utiliser le démarrage réseau directement (comme expliqué ici), il n’est donc pas nécessaire de modifier le fichier cmdline.txt pour le configurer.

J’ai vu d’anciens tutoriels le faire en ajoutant des paramètres supplémentaires, mais je ne vois pas l’intérêt de le faire actuellement (peut-être que quelque chose m’échappe, faites-moi signe).

Pourquoi ai-je une erreur « /boot/cmdline.txt is unwritable » ?

Le fichier cmdline.txt n’est pas modifiable par l’utilisateur par défaut sur Raspberry Pi, les privilèges d’administrateur sont nécessaires, vous devez donc utiliser sudo pour modifier son contenu :
sudo nano /boot/cmdline.txt

Pour en savoir plus sur les privilèges de l’administrateur, cliquez ici.
Vous pouvez également consulter mon guide sur Nano si vous n’y êtes pas habitué.

Le fichier cdmline.txt est-il différent de celui des autres distributions ?

La plupart des distributions Linux ont un cmdline.txt, avec un contenu similaire, pour passer des paramètres optionnels au noyau. Elles utilisent des options et des valeurs différentes, mais le format est similaire.

Par exemple, voici le fichier cmdline.txt par défaut sur Ubuntu :
elevator=deadline net.ifnames=0 console=serial0,115200 dwc_otg.lpm_enable=0 console=tty1 root=LABEL=writable rootfstype=ext4 rootwait fixrtc quiet splash

Certaines de ces options sont familières (console, root, splash, etc.) mais il y a quelques options supplémentaires basées sur la distribution Ubuntu.

Existe-t-il une documentation complète sur la façon d’utiliser ce fichier ?

Malheureusement, je n’ai pas trouvé de bonne documentation de référence sur ce fichier cmdline.txt. C’est pourquoi certaines de mes réponses ici peuvent ressembler à des « suppositions » plus qu’à des explications formelles.

La Fondation Raspberry Pi n’a rien à ce sujet, et même pour PC, il est difficile de trouver quelque chose de complet.
Si vous avez besoin de plus de détails, essayez de chercher les options pour Debian (elles devraient être très similaires à celles de Raspberry Pi OS), ou posez vos questions sur les forums officiels des principales distributions.

Téléchargez mon antisèche !
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.

Ressources supplémentaires pour votre Raspberry Pi

Initiation au Raspberry Pi en vidéo
Si vous débutez et voulez passer rapidement à la vitesse supérieure, j’ai exactement ce qu’il vous faut.
Regardez ma formation vidéo qui vous aidera à démarrer du bon bien, choisir votre matériel, installer les meilleures applications et vous lancer directement dans vos premiers projets avec mon aide.
Regarder les vidéos dès maintenant

Maîtrisez votre Raspberry Pi en 30 jours
Vous avez besoin de plus ? Si vous êtes à la recherche des meilleures astuces pour devenir expert sur Raspberry Pi, ce livre est fait pour vous. Développez vos compétences sous Linux et pratiquez via de nombreux projets en suivant mes guides étape par étape. 10% de remise aujourd’hui !
Télécharger le livre au format PDF ici

Maîtrisez Python sur Raspberry Pi
Pas besoin d’être un génie pour coder quelques lignes pour votre Raspberry Pi.
Je vous apprends juste ce qu’il faut sur Python afin de réaliser n’importe quel projet. La seconde partie du livre est d’ailleurs consacrée à des exemples de projets ou je vous guide pas à pas.
Ne perdez pas de temps, apprenez le strict nécessaire et économisez 10% avec ce lien :
Télécharger maintenant

Autres ressources pour profiter de votre Raspberry Pi
J’ai regroupé toutes mes recommandations de logiciels, sites utiles et de matériel sur cette page de ressources. Je vous invite à la consulter régulièrement pour faire les bons choix et rester à jour.
Visiter les pages ressources


Ce tutoriel ne marche plus à 100%? Prévenez-moi pour que je le mette à jour!

A lire également