web-dev-qa-db-fra.com

Comment lire / écrire tous les paramètres du BIOS à partir de Linux CLI?

J'ai cherché environ 8 heures et je voudrais effacer les points que je n'ai pas encore complètement compris.

( Version TLDR: Comment puis-je accéder (lire et écrire) à tous les paramètres du BIOS (tels que l'activation/la désactivation de la virtualisation, l'activation/la désactivation de la fréquence turbo du processeur graphique, la définition de l'heure d'affichage des journaux, etc.) à partir de la CLI? )

Voici l'histoire.

Premièrement, nous avions de vieux BIOS, tels que celui-ci .

Et maintenant, nous avons la nouvelle génération de BIOS, comme celle-ci . Et nous les appelons comme BIOS UEFI, est-ce que je me trompe?


Ensuite, j'ai lu (et testé) les articles suivants:

  • www.pixelbeat.org/docs/bios/
  • stackoverflow.com/questions/6259124/apis-for-querying-and-setting-bios-properties (ainsi que tous les liens référencés dans les réponses)
  • unix.stackexchange.com/questions/126132/how-to-dump-bios-data-to-a-file
  • stackoverflow.com/questions/34537435/where-does-dmidecode-get-the-smbios-table
  • en.wikipedia.org/wiki/System_Management_BIOS
  • www.linux-mag.com/id/7768/
  • www-pc.uni-regensburg.de/hardware/techdok/bios_dmi_20.pdf (jusqu'à la page 17)
  • www.geeklab.info/2010/05/backup-your-cmos-from-linux/
  • www.bioscentral.com/misc/cmosmap.htm
  • smackerelofopinion.blogspot.com.tr/2010/09/digging-into-bios-cmos-memory.html

Après cela, j'ai modifié plusieurs fois les paramètres du bios (tels que la virtualisation, l'activation/la désactivation du turbo IGD, la modification des paramètres USB, etc.) et vidé l'intégralité du contenu des fichiers/commandes suivants à chaque démarrage.

  • dmidecode
  • biosdecode
  • cpuid
  • / dev/mem
  • / dev/nvram

Résultat? J'ai comparé les résultats des décharges côte à côte avec Meld et woala! Rien n'a changé! Que diable?!!

Voici donc la liste de mes questions (je suis un ingénieur en électronique, vous pouvez donc consulter les détails ou consulter des lectures techniques sans hésiter).

  1. Dans quelle partie de la carte mère (je parle de la puce) nous stockions tous les paramètres du BIOS (pour les anciennes versions)?
  2. De quel type de matériel avons-nous besoin pour conserver les paramètres et l'interface des BIOS UEFI? Et comment le matériel du BIOS UEFI se différencie-t-il des anciennes versions?
  3. Existe-t-il un moyen d'accéder à ce (ou à ces) matériel (s) via n'importe quel type de pilote/fichier sous Linux?
  4. Est-il possible de changer ces configurations depuis le système d'exploitation?

Toutes les réponses seront grandement appréciées.

Merci à partir de maintenant.

11
benjamin button

Il n’existe aucun moyen générique pour un système d’exploitation d’accéder au BIOS du système. Cela ne serait possible que si les fabricants fournissaient des informations détaillées et que des normes étaient établies en ce qui concerne la manière de procéder. Ce n'est pas le cas, et je ne pense pas que ce serait une bonne idée de toute façon.

Certains fabricants ont créé des logiciels pour leurs propres systèmes, du moins pour Windows. Ce logiciel doit être conçu pour des versions spécifiques du BIOS.

Le problème est que le BIOS est la propriété de chaque fabricant. Généralement, les paramètres sont stockés dans CMOS, mais cela n'est pas obligatoire. Les fabricants sont libres de stocker les paramètres où et comme ils le souhaitent. Aucune documentation n'est disponible pour ces détails.

Cela a des implications sur la sécurité. Si un logiciel légitime pouvait accéder au BIOS, rien ne pourrait empêcher un logiciel malveillant de faire de même. Cela ouvrirait de nouvelles perspectives pour les logiciels malveillants, dont les créateurs tireraient pleinement parti. Bien sûr, des garanties pourraient être développées mais elles pourraient être et seraient évitées

6
LMiller7

Ce que vous appelez le BIOS est (au moins) 3 choses différentes:

  • L'utilitaire de configuration du système (souvent appelé à tort BIOS ou CMOS Setup)
  • Le BIOS (c’est-à-dire un chargeur de démarrage rudimentaire et des API normalisées)
  • (U) Firmware EFI (c.-à-d. Une version plus moderne de l’abstraction matérielle de démarrage)

Tandis que les deux derniers exposent un ensemble bien défini d’API, ce n’est pas le premier. Cela signifie qu'il n'y a pas de moyen universel, indépendant du vendeur, de manipuler tous les paramètres, fourni par l'utilitaire d'installation.

Pour ce qui est du stockage des paramètres: la plupart des fournisseurs utilisent une RAM statique sauvegardée sur batterie ("CMOS-RAM" dans une ancienne nomenclature), ce qui explique pourquoi la perte de ces cellules CR2032 de la carte mère est un problème.

4
Eugen Rieck

Sur les serveurs HPE, vous pouvez modifier les paramètres à l'aide d'un utilitaire appelé Conrep. Cela fait partie du RPM hp-scripting-tools. L'utilisation est décrite ici:

h20566.www2.hpe.com/hpsc/doc/public/display?sp4ts.oid=5249594&docLocale=en_US&docId=emr_na-c05182235

C'est assez simple. Avec le paramètre -s (save), vous le dites pour enregistrer la configuration, par exemple:

conrep -s -f BL460Gen8.dat

Et avec le paramètre -l (load), vous le dites pour charger la configuration:

conrep -l -f BL460Gen8.dat

Le fichier dat est en réalité un code XML. Donc, si vous voulez par exemple activer/désactiver les paramètres d’hyperthreading, recherchez la ligne correspondante et modifiez la valeur. Voir l'exemple pour le G6 et les nouvelles générations:

<Section name="Intel_Hyperthreading" helptext="Toggles hyperthreading on Intel based G6 and greater systems">Enabled</Section>
1
Jaroslav Kucera

Bien plus pratique de pouvoir activer des éléments à partir du bureau puis de devoir redémarrer dans le bios. Je connais certains paramètres que vous pouvez modifier à partir du bureau. Les processeurs AMD de bureau sont capables d’exécuter la mémoire ECC, et la plupart des cartes mères sont également capables d’utiliser ECC, mais de nombreux fournisseurs ne proposent pas d’option bios pour l’activer. Néanmoins, vous pouvez basculer vous-même. C'est ce que j'ai fait et la mémoire ECC est activée. Cela pourrait ne pas être bien si vous l’allumiez alors que vous utilisiez de la mémoire normale, alors ne le faites pas.

Sudo modprobe -v AMD64_edac_mod ecc_enable_override=1

Il y a la commande. Et le dessous le rend persistant entre les bottes.

Sudo echo "options AMD64_edac_mod ecc_enable_override=1" >> /etc/modprobe.d/AMD64_edac_mod.conf

Je cherche actuellement à activer le sans fil sur un ordinateur portable et je me demande si je peux le faire à partir du bureau. Ce serait bien d'avoir une liste des options qui peuvent être configurées à partir du bureau. Le code ECC n’est même pas proposé dans le bios. Par conséquent, combien de fonctionnalités de ce type pourraient être disponibles, en particulier avec certains vendeurs qui envoient un bios à la base.

Soyez réel, soyez sobre.

0
WSmart