Como ler / gravar todas as configurações da BIOS do Linux CLI?

5

Eu tenho pesquisado por volta de 8 horas e gostaria de esclarecer os pontos que ainda não foram totalmente resolvidos.

( Versão TLDR: Como posso acessar (ler e escrever) todas as configurações da BIOS (como habilitar / desabilitar virtualização, habilitar / desabilitar a frequência turbo da GPU, definir o tempo de exibição de log etc.) da CLI? / em>)

Aqui está a história.

Primeiro, tínhamos BIOS antigos, como este .

E agora, temos a nova geração de BIOSes, como este . E nós os chamamos de UEFI BIOS, estou correto?

Depois li (e testei) os seguintes artigos:

  • www.pixelbeat.org/docs/bios /
  • stackoverflow.com/questions/6259124/apis-for-querying-and-setting-bios-properties (e também todos os links referidos nas respostas)
  • 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 (até a página 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

Depois disso, mudei as configurações do BIOS (como virtualização, habilitar / desabilite o turbo IGD, alterando as configurações de usb etc.) várias vezes e despejei todo o conteúdo dos seguintes arquivos / comandos em cada inicialização.

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

Resultado? Eu comparei os resultados de despejo lado a lado com Meld e woala! Nada mudou! O que diabos? !!

Então, aqui está a lista de minhas perguntas (eu sou engenheiro eletrônico, então você pode ir para detalhes ou consultar leituras técnicas sem hesitação).

  1. Em que parte da placa-mãe (quero dizer, chip) estávamos armazenando todas as configurações da BIOS (para versões antigas)?
  2. Que tipo de hardware precisamos para manter as configurações e a interface dos BIOS da UEFI? E como o hardware da UEFI BIOS está se diferenciando das versões antigas?
  3. Existe alguma maneira de acessar este (ou este) hardware sobre qualquer tipo de driver / arquivo no Linux?
  4. É possível alterar essas configurações no SO?

Todas as respostas serão muito apreciadas.

Obrigado a partir de agora.

    
por benjamin button 22.11.2016 / 21:29

4 respostas

5

Não existe uma maneira genérica de um sistema operacional acessar o BIOS do sistema. Isso só seria possível se os fabricantes fornecessem informações detalhadas e se houvesse padrões estabelecidos sobre como isso deve ser feito. Este não é o caso, e eu não acho que seria uma boa ideia de qualquer maneira.

Alguns fabricantes criaram software para seus próprios sistemas, pelo menos para o Windows. Este software deve ser projetado para versões específicas do BIOS.

A questão é que o BIOS é proprietário de cada fabricante. Normalmente, as configurações são armazenadas no CMOS, mas não há necessidade disso. Os fabricantes são livres para armazenar configurações onde e como quiserem. Nenhuma documentação está disponível para esses detalhes.

Existem implicações de segurança com isso. Se um software legítimo pudesse acessar o BIOS, não haveria nada que impedisse o software malicioso de fazer o mesmo. Isso abriria um novo mundo de possibilidades para malware, que os criadores aproveitariam totalmente. É claro que salvaguardas poderiam ser desenvolvidas, mas elas poderiam ser e seriam evitadas

    
por 22.11.2016 / 22:53
4

O que você chama de BIOS é (pelo menos) três coisas diferentes:

  • O utilitário de configuração do sistema (Freqüentemente chamado erroneamente de BIOS ou CMOS Setup)
  • O BIOS (por exemplo, um gerenciador de inicialização rudimentar e APIs padronizadas)
  • (U) Firmware EFI (por exemplo, uma versão mais moderna de abstração de hardware de inicialização)

Enquanto os dois últimos expõem um conjunto bem definido de APIs, o primeiro não. Isso significa que não há uma maneira universal e neutra de manipular todas as configurações oferecidas pelo utilitário de configuração.

Quanto ao local onde as configurações são armazenadas: a maioria dos fornecedores usa RAM estática com bateria ("CMOS-RAM" na nomenclatura antiga), e é por isso que é um incômodo se essas células CR2032 na placa principal morrerem.

    
por 22.11.2016 / 22:04
1

Nos servidores da HPE, você pode alterar as configurações usando o utilitário chamado conrep. Faz parte do RPM da hp-scripting-tools. O uso é descrito aqui:

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

É bem simples. Com o parâmetro -s (save) você diz para salvar a configuração, como:

conrep -s -f BL460Gen8.dat

E com o parâmetro -l (load) você diz para carregar a configuração:

conrep -l -f BL460Gen8.dat

O arquivo dat é, na verdade, código XML. Portanto, se você quiser, por exemplo, ativar / desativar as configurações de hyperthreading, localize a respectiva linha e modifique o valor. Veja o exemplo para G6 e novas gerações:

<Section name="Intel_Hyperthreading" helptext="Toggles hyperthreading on Intel based G6 and greater systems">Enabled</Section>
    
por 31.08.2017 / 09:35
0

Muito mais conveniente para habilitar o material a partir do desktop e depois ter que reinicializar no BIOS. Eu sei algumas configurações que você pode alterar do desktop. As CPUs de desktop AMD são capazes de executar memória ECC, e a maioria das placas-mãe também é capaz de usar ECC, mas muitos fornecedores não oferecem uma opção de BIOS para ativá-la. No entanto, você pode alterná-lo sozinho. Eu fiz isso e ele liga a memória ECC. Pode não ser bom se você ativou a memória regularmente, por isso não faça isso.

sudo modprobe -v amd64_edac_mod ecc_enable_override=1

Existe o comando. E o abaixo torna persistente entre as botas.

sudo echo "options amd64_edac_mod ecc_enable_override=1" >> /etc/modprobe.d/amd64_edac_mod.conf

No momento, estou tentando ativar a conexão sem fio em um laptop e pensar se posso fazer isso a partir da área de trabalho. Seria bom ter uma lista de quais opções podem ser configuradas a partir da área de trabalho. O ECC nem é oferecido na BIOS, então, quantos recursos como esse podem estar disponíveis, especialmente com determinados fornecedores que enviam uma bios básica.

Seja real, seja sóbrio.

    
por 03.12.2017 / 19:39

Tags