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 (comme OpenElec par exemple). 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
- đŹ LibreElec: forcer le HDMI au dĂ©marrage du systĂšme,
- Explication de Virtual FAT sur Wikipédia,
- Raspberry Pi Documentation â The config.txt file,
- Ădition du fichier config.txt pour LibreELEC.
኿