Le BIOS, de lâanglais Basic Input Output System (en français : « systĂšme Ă©lĂ©mentaire dâentrĂ©e/sortie ») est un ensemble de fonctions, contenu dans la mĂ©moire morte (ROM) de la carte mĂšre dâun ordinateur, lui permettant dâeffectuer des opĂ©rations de base, lors de sa mise sous tension.
En particulier, il sâagit de lâidentification des pĂ©riphĂ©riques dâentrĂ©e/sortie connectĂ©s et la lecture dâun secteur sur un disque, un CD ou une partie dâune clĂ© USB. Par extension, le terme est souvent utilisĂ© pour dĂ©crire lâensemble du micrologiciel de la carte mĂšre. Câest en quelque sorte le centre de contrĂŽle de la carte mĂšre. Sur les cartes rĂ©centes il est remplacĂ© par sa version moderne l'UEFI.
Tous les BIOS sont configurable, en gĂ©nĂ©ral un raccourci clavier permet dâaccĂ©der Ă une interface permettant de changer les paramĂštres par dĂ©faut.
Le BIOS du Raspberry est Ă©galement configurable, et cela se fait soit Ă lâaide de la commande raspi-config
, soit en éditant le fichier config.txt
se trouvant à la racine de la partition de démarrage (« boot »).
Localisation du fichier config.txt
OĂč se trouve le fichier config.txt
 ? Ă la racine de la partition de dĂ©marrage, comme dit plus haut. Sur RaspPI OS, il sâagit du rĂ©pertoire /boot
, mais ce nâest pas obligatoire sur toutes les distributions.
Donc en général, ce fichier est localisé ici : /boot/config.txt
Dans le cas dâun Raspberry la partition de boot est nĂ©cessairement au format en vfat car le « bootloader » du Raspberry ne sait lire que les systĂšmes de fichier FAT16 et FAT32. Tous les systĂšmes dâexploitation savent lire et Ă©crire sur ce type de systĂšme de fichier, cela permet que la carte SD soit facilement modifiable depuis une autre machine.
Trouver la partition de dĂ©marrage â version 1
Et si la partition de dĂ©marrage nâest pas montĂ©e dans le rĂ©pertoire /boot
, comment trouver cette partition ? Une solution consiste à utiliser la commande mount :
En utilisant la commande mount :
mount -t vfat
voir :
mount -t vfat | cut -d' ' -f3
La premiÚre commande proposée, vous donnera un résultat facile à interpréter :
/dev/mmcblk0p1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,flush,errors=remount-ro)
La seconde commande, vous donne directement le nom du dossier oĂč est montĂ©e la partition de dĂ©marrage :
/boot
Trouver la partition de dĂ©marrage â version 2
Si la manipulation prĂ©cĂ©dente venait Ă vous donner plusieurs rĂ©sultats et que vous nâarrivez pas Ă dĂ©terminer la bonne valeur, voici une solution plus gĂ©nĂ©rale.
On va dâabord rechercher les pĂ©riphĂ©riques utilisant le format de type vfat Ă lâaide de mount cela sâĂ©crit :
mount -t vfat | cut -d ' ' -f 1,3 # on ne prend que le premier champ et le troisiĂšme
Pour chacun de ces pĂ©riphĂ©riques (« device »), on va rechercher son UUID Ă lâaide de blkid :
Le format de la commande est :
blkid PĂRIPHĂRIQUE --match-tag UUID -o value
Intégrons ces deux commandes :
mount -t vfat | cut -d ' ' -f 1,3 | while read device_directory ; do
device="$( echo "${device_directory}" | cut -d ' ' -f 1 )"
directory="$( echo "${device_directory}" | cut -d ' ' -f 2 )"
UUID="$( blkid "${device}" --match-tag UUID -o value )"
echo "${device} -> ${UUID} -> ${directory}"
done
Voici une version plus complĂšte de ce script qui teste lâexistence du fichier cmdline.txt
et du fichier config.txt
(le script est écrit afin de pouvoir tourner sous bash mais également sous BusyBox).
mount -t vfat | cut -d ' ' -f 1,3 | while read device_directory ; do
device="$( echo "${device_directory}" | cut -d ' ' -f 1 )"
directory="$( echo "${device_directory}" | cut -d ' ' -f 2 )"
UUID="$( blkid "${device}" --match-tag UUID -o value )"
cmdline_file="${directory}/cmdline.txt"
config_file="${directory}/config.txt"
if [ ! -f "${cmdline_file}" ] ; then
echo "*** File ${cmdline_file} does not exists (skip)" >&2
elif [ ! -f "${config_file}" ] ; then
echo "*** File ${config_file} does not exists (skip)" >&2
else
echo "Boot: ${directory}"
echo "Command: ${cmdline_file}"
echo "Config: ${config_file}"
fi
done
Comprendre lâorganisation de vos partitions
Une derniĂšre commande qui peut vous aider Ă localiser votre partition de dĂ©marrage, mais Ă©galement comprendre comment sont organiser vos disques, il sâagit de lsblk. Vous pouvez lâutiliser comme suit :
lsblk -f
cela vous donnera quelque chose comme :
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
mmcblk0
ââmmcblk0p1 vfat FAT32 boot F021-066F 202.5M 20% /boot
ââmmcblk0p2 ext4 1.0 rootfs 99f9cf68-e6fa-4b90-aeee-7fa3e9ed5c2d 53.8G 4% /
Mais sur certain systÚme minimaliste, il se peut quelle ne soit pas présente.
Modifier le fichier config.txt
Sur certain systĂšmes, le point de montage pointant vers la partition de dĂ©marrage est en lecture seule par dĂ©faut (« read-only »), et il nâest pas possible de modifier son contenu dans lâĂ©tat.
Pour changer cela vous devez « remonter » la partition en mode lecture Ă©criture ("read-write"). Cela se fait assez simplement mais nĂ©cessite dâavoir les droits root
sur la machine :
sudo mount -o remount,rw /chemin_de_la_partition_de_démarrage
Si vous ĂȘtes dĂ©jĂ root
, la commande sudo nâest pas nĂ©cessaire. Sur certain systĂšmes il se peut mĂȘme quâelle ne soit pas disponible. Dans ces cas utilisez :
mount -o remount,rw /chemin_de_la_partition_de_démarrage
LâĂ©dition se fait Ă lâaide dâun Ă©diteur de texte. En gĂ©nĂ©ral, vous trouverez au moins les Ă©diteurs vi
et nano
.
Ainsi, vous pouvez utiliser soit :
vi /boot/config.txt
nano /boot/config.txt
Prise en compte de vos modifications
Pour que ce changement soit pris en compte, vous devez redĂ©marrer la machine, vous pouvez le faire Ă lâaide de la commande :
sudo reboot # ou simplement reboot si vous ĂȘtes dĂ©jĂ root.
La configuration
Le but de cet article nâest pas de savoir ce quâil faut mettre dans le fichier config.txt
, mais comment le faire.
Vérification de votre configuration
Cependant certaine configurations sont assez longues et les commentaires rendent parfois laborieux la vérification du contenu de ce fichier.
Supposons que le fichier soit accessible avec /boot/config.txt
, une premiÚre solution pour limiter le bruit, vous pouvez utiliser quelque chose comme :
cat /boot/config.txt | grep -v '^#'
Ce fichier pouvant contenir le mot clé include
qui demande de prendre en compte un autre fichier, il est possible de voir lâensemble du contenu de ces fichiers Ă lâaide :
cat /boot/config.txt | grep '^include ' | cut -d' ' -f2- | while echo read F ; do echo "# $F" ; cat /boot/$F ; done
Je vous propose une version un peu plus évoluée, qui prend en compte le fait que le fichier config.txt
nâest pas nĂ©cessairement dans le dossier /boot
, qui nâaffiche ni les commentaires, ni les lignes vides :
function cat_without_comments {
local file="$1"
cat "${file}" | grep -v '^#' | sed -e 's/^[[:blank:]]*$//' | grep -v '^$'
}
function cat_config_txt {
local dir="$1"
local filepath="${dir}/config.txt"
echo "# ${filepath}"
cat_without_comments "${filepath}"
cat "${dir}/config.txt" | grep '^include ' | cut -d' ' -f2- | while read file ; do
filepath="${dir}/${file}"
echo "# ${filepath}"
cat_without_comments "${filepath}"
done
}
Que vous utiliserez :
cat_config_txt /boot
oĂč pour LibreELECÂ :
cat_config_txt /flash
Liens
- Explication de Virtual FAT sur Wikipédia,
- Raspberry Pi Documentation â The config.txt file,
- Ădition du fichier config.txt pour LibreELEC.
኿