Raspberry Pi: tem BIOS?

BIOS do Raspberry Pi

Alguns usuários Gostaria de saber se o Raspberry Pi tem BIOS ou UEFI, como outros computadores, já que o UEFI, como você sabe, também é suportado em computadores baseados em Arm, como é o caso de este SBC tão popular e barato. Mas a verdade é que os caras da framboesa optaram por outra solução alternativa.

Aqui você aprenderá o que é essa solução e os motivos pelos quais não usa este firmware, além de mostrar como são feitas algumas configurações no Raspberry Pi quando não há Menu de Configuração como nos computadores...

Por que o Raspberry Pi não usa BIOS/UEFI?

Raspberry Pi 4

Como você sabe, o BIOS ou UEFI é um firmware que está presente em uma infinidade de computadores, tanto desktops, laptops, AIO, servidores, estações de trabalho, etc. No entanto, não está no Raspberry Pi, apesar de ser um SBC (Single Board Computer), ao contrário de outros SBCs x86 que usam esse firmware para o processo de inicialização e verificação do sistema. E não é porque o Raspberry Pi é baseado em ARM, pois muitos computadores ARM também possuem BIOS/UEFI.

Por outro lado, deve-se dizer que este firmware é projetado para que comece fácil a partir do meio de armazenamento onde está localizado o sistema operacional, além de poder controlar muitas outras configurações. É aqui que ele nos dá pistas sobre por que o Raspberry Pi não usa BIOS. Por um lado, porque só pode inicializar dispositivos do mesmo meio, como cartões SD, e não de outras maneiras. E por outro lado porque o número de periféricos e funções em um Raspberry Pi são mais limitados.

No entanto, isso não é totalmente um motivo para não usar BIOS ou UEFI. De fato, se analisarmos com cuidado, a O ARM SoC do Raspberry Pi usa seu próprio firmware interno para inicializar a CPU em um estado adequado e o resto do sistema sem a necessidade de um chip BIOS separado. Mas... então por que você não consegue acessar o BIOS Setup ou o menu do BIOS? Por um lado, porque este firmware é muito limitado, e não tão complexo quanto o BIOS/UEFI, um menu para configurar parâmetros não faria sentido e, por outro, pelo que foi mencionado anteriormente, que ele só pode inicializar a partir de um meio de armazenamento padrão. , assim como o cartão SD.

Os desenvolvedores do Raspberry Pi, por esse motivo, preferiram usar esse firmware básico para inicialização e inicialização a partir de um cartão SD em vez de usar um chip rom com firmware mais complexo instalado no PCB. E é que, se você olhar, os dispositivos móveis também não possuem BIOS / UEFI, pois só podem inicializar o Android (ou outro sistema operacional), a partir da memória interna.

Desta forma, por um lado, economiza-se aquele chip adicional na placa e, por outro lado, elimina-se a necessidade de incluir memória flash para armazenamento. tornaria o Raspberry Pi mais caro. Você tem que comprar o cartão SD separadamente.

No entanto, deve-se dizer que no suporte experimental Raspberry Pi 3 foi adicionado para inicializar a partir de mídia USB que deve ser explicitamente habilitado e não pode ser desabilitado. Isso está incluído no firmware embutido do SoC da nova versão, mas isso foi um pouco mais complicado, e é provavelmente por isso que eles inicialmente decidiram começar com as coisas fáceis e usar a inicialização apenas a partir de cartões de memória SD.

O que o Raspberry Pi estava usando?

Rasbperry Pi 4 Power

O Raspberry Pi não possui BIOS ou UEFI como entendido no mundo do PC, por exemplo, mas possui um firmware de código fechado no SoC como mencionei acima. Este chip foi projetado pela empresa Broadcom, que fornece os BCMs para essas placas Raspberry Pi Foundation.

No SoC (Sistema em um Chip) Integra uma CPU ARM Cortex-A Series, uma GPU VideoCore, um DSP para processamento de sinal digital, memória SDRAM compartilhada pela CPU e GPU e controladores como USB, etc. Além disso, também inclui uma memória ROM na qual está integrado o firmware de que estamos falando e que é necessário para inicializar.

procedimento inicial

Os pasos que segue este firmware são:

  1. Este firmware cuida de iniciar bootloader do sistema operacional que está no cartão SD. Como você sabe, o bootloader monta a partição FAT32 do cartão de memória SD e vai para o segundo estágio de inicialização, que é programado no SoC e não pode ser modificado.
  2. Na segunda etapa, um arquivo conhecido como código de inicialização.bin, no qual o firmware da GPU é preparado e iniciado. Este arquivo só pode ser armazenado no cartão SD, então a prioridade de inicialização não pode ser alterada como em um BIOS/UEFI convencional de um PC, e ele só inicializará a partir daí. No entanto, como eu disse, no Pi 3 a capacidade de inicializar a partir do USB também foi adicionada experimentalmente.
  3. Em seguida, vem uma terceira etapa em que se utiliza o arquivo start.elf, que inicializa a CPU, e um arquivo chamado fixup.dat, que serve para criar a partição necessária no SDRAM para que ele comece a ser utilizado pela CPU e pela GPU.
  4. Por fim, é executado o código do usuário, que geralmente são os binários executáveis ​​ou imagens do Kernel Linux, como kernel.img, ou de outros sistemas operacionais suportados pelo Raspberry Pi, e é assim que o sistema operacional inicializa para que você possa usá-lo...

Como você viu, é um processo simples, mas um tanto estranho se compararmos com um PC ou outros computadores. E é que, no caso do Raspberry Pi, em vez de iniciar a CPU, como em outros casos, GPU inicializa primeiro. Na verdade, esta GPU Broadcomo se encarregará de executar uma espécie de sistema operacional embutido no SoC que é muito simples, mas necessário para funcionar. É conhecido como VCOS (Video Core Operating System) e se comunicará com o Linux. Isso é muito raro, mas a verdade é que a GPU do Pi não se encarrega apenas dos gráficos e da partida, ela também se encarrega de relógio do sistema de controle e áudio.

Em princípio, dito isso, parece que pouco podemos fazer para modificar configuração de inicializaçãoMas a verdade é que não é totalmente assim. E é que existe um arquivo chamado config.txt que está localizado no diretório /boot/ do sistema e se for aberto com um editor de texto, seu conteúdo pode ser facilmente modificado para alterar o boot e configurá-lo com determinados parâmetros .

Esta arquivo config.txt ele será lido pela GPU após iniciar o kernel ARM e contém instruções para o SoC saber o que fazer durante a inicialização do sistema. Por exemplo, podemos modificar a memória dedicada nele, atualizar a memória, desabilitar o acesso ao cache L2, alterar a configuração do CMA, habilitar ou desabilitar o LED da câmera, alterar as opções do modo de vídeo, codecs, algumas opções de inicialização, overclock, etc.

Este arquivo possui um sintaxe bastante peculiar, por isso deve ser respeitado para evitar problemas na inicialização. E se você quiser mais informações sobre isso, você pode leia a wiki que vos deixo neste link.

Alterar a prioridade de inicialização no Raspberry Pi

NOOBS config.txt

Quando você muda a ordem de inicialização ou prioridade em um PC é tudo muito simples, basta entrar no BIOS/UEFI, e na guia Boot você encontra os parâmetros que você pode variar para inicializar a partir do disco rígido, um meio óptico , USB, rede, etc. Em vez de, no Raspberry Pi não é tão fácil. Por padrão, ele sempre inicializará o sistema operacional a partir do cartão de memória SD inserido no SBC. Na verdade, mesmo após a versão 3, se um cartão SD e um pendrive forem inseridos, o sistema ainda inicializará a partir do SD primeiro. Se o SD for removido e apenas o USB for deixado, isso será feito através do USB.

Mas esta ordem pode ser alterada. para isso você deve iniciar raspbian, por exemplo, e faça o seguinte:

  • Abra a configuração do Raspberry Pi com o comando:
sudo raspi-config
  • Vá para a seção "Opções avançadas". (observe, o menu está em inglês)
  • Em seguida, dentro desta seção, pressione ENTER na opção "Boot Order".
  • Agora você deve ver três opções diferentes para escolher:
    • inicialização do cartão SD- Por padrão, esta opção já está habilitada em seu dispositivo Raspberry Pi e se você inserir um cartão SD e USB simultaneamente, o sistema usará o cartão SD como opção de inicialização padrão, a menos que você o remova.
    • inicialização usb: Se você deseja usar o USB como dispositivo principal para inicialização, pode selecionar esta opção, que funciona quando você possui um dispositivo USB inserido no Raspberry Pi. Caso contrário, você não deve inserir um cartão SD para inicializar o sistema.
    • inicialização de rede: esta opção de inicialização é útil se o seu cartão SD Raspberry Pi não estiver funcionando por algum motivo ou se houver um problema com o sistema operacional. Nesse caso, ele usará a ferramenta Imager para reinstalar o sistema no cartão SD.

Assim que terminar, você pode reinicie o raspberry pi para aplicar as alterações...

Diagnosticar problemas de Raspberry Pi (POST)

Finalmente, você saberá que em um BIOS/UEFI existe uma etapa chamada POST que é realizada antes da inicialização do sistema operacional e que verificará o estado dos diferentes componentes. Se tudo estiver OK, ele iniciará o sistema operacional. Mas se detectar algum problema, ele para e exibe uma mensagem de erro na tela ou emite algum código de bipe sonoro para identificar qual é o problema.

Isso no Raspberry Pi também não existe. No entanto, o firmware do SoC possui um método para tentar sinalizar problemas que possam ocorrer para facilitar o diagnóstico. E isso é através de seu LED de energia. Por exemplo, para o Raspberry Pi 4, os códigos luminosos que o LED emite para indicar problemas são:

flashes longos flashes curtos Status
0 3 Falha geral durante a inicialização
0 4 start*.elf não encontrado
0 7 Imagem do kernel não encontrada
0 8 Falha de SDRAM
0 9 SDRAM insuficiente
0 10 no estado HALT
2 1 A partição não é FAT (não suportada)
2 2 Falha ao ler a partição
2 3 partição estendida não-FAT
2 4 Hash ou assinatura não corresponde
3 1 Erro SPI-EEPROM
3 2 SPI EEPROM protegido contra gravação
3 3 erro I2C
4 4 Tipo de placa não suportado
4 5 erro fatal de firmware
4 6 Tipo A falha de ignição
4 7 Falha de ignição tipo B

Seja o primeiro a comentar

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.