cClaude.rocks ☕ Le blog

[Nouvelles technologies du libre, sciences et coups de gueule…]

Menu
đŸ˜€ Ce billet a Ă©tĂ© Ă©ditĂ© le : 2024-08-06

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

኿


â„č 2006 - 2024 | 🏠 Accueil du domaine | 🏡 Accueil du blog