Saltar para o conteúdo
101 · LPIC-1 (parte 1)

101.1 Determinar e definir configurações de hardware

TópicoT01ObjetivoDeterminar e definir configurações de hardware de um sistema LinuxPeso2PáginasLPIC-1 (101) - Version 5.0

Resumo Conciso

BIOS vs UEFI

CaracterísticaBIOSUEFI
FirmwareBasic Input/Output SystemUnified Extensible Firmware Interface
ArmazenamentoChip de memória não volátil na placa-mãeChip de memória não volátil (NVRAM)
InicializaçãoMBR (primeiros 440 bytes do primeiro dispositivo)Aplicativos EFI em partição ESP
ConfiguraçãoUtilitário de configuração (tecla Del, F2, F12)Menu de inicialização + NVRAM

Ativação do dispositivo

  • Tecla de acesso ao utilitário de configuração: Del, F2 ou F12 (varia por fabricante)
  • Permite ativar/desativar periféricos integrados
  • Configurar IRQ (solicitação de interrupção) e DMA (acesso direto à memória)
  • Definir ordem de dispositivos de inicialização

Comandos para inspeção de hardware

ComandoFunçãoOpções importantes
lspciLista dispositivos conectados ao barramento PCI-s <endereço> (dispositivo específico), -v (detalhes), -k (módulos)
lsusbLista dispositivos USB conectados-v (detalhes), -d <ID> (dispositivo específico), -t (árvore hierárquica), -s <Bus>:<Dev>
lsmodLista módulos do kernel carregados
modprobeCarrega/descarrega módulos do kernel-r (descarregar módulo e dependências)
modinfoExibe informações sobre um módulo-p (parâmetros disponíveis)

Módulos do kernel

  • Componentes de software que controlam dispositivos de hardware (drivers)
  • Podem fazer parte do kernel oficial ou ser adicionados separadamente
  • Pacote kmod: conjunto de ferramentas para gerenciar módulos (inserir, remover, listar, verificar propriedades, resolver dependências e aliases)
  • Saída do lsmod: Module (nome), Size (RAM em bytes), Used by (módulos dependentes)

Arquivos de configuração de módulos

CaminhoFunção
/etc/modprobe.confConfiguração principal de módulos
/etc/modprobe.d/<module_name>.confConfiguração específica por módulo (recomendado)
/etc/modprobe.d/blacklist.confLista de módulos a impedir carregamento automático

Pseudosistemas de arquivos

Arquivo/DiretórioFunção
/proc/cpuinfoInformações detalhadas sobre a(s) CPU(s)
/proc/interruptsLista de números de interrupções por dispositivo por CPU
/proc/ioportsRegiões de portas de E/S registradas e em uso
/proc/dmaCanais de DMA registrados em uso
/sysInformações do dispositivo e dados do kernel relacionados ao hardware
/devArquivos associados a dispositivos do sistema

Dispositivos de armazenamento

TipoPadrão de nome em /devExemplo
IDE/SATA/SCSI/SSD/USB/dev/sdXpY/dev/sda1, /dev/sdb2
Cartões SD/dev/mmcblkXpY/dev/mmcblk0p1
NVMe/dev/nvmeXnYpZ/dev/nvme0n1p1
CD/DVD (IDE 2º canal)/dev/hdc
Disquete/dev/fdX/dev/fd0

Hotplug e udev

  • Hotplug: detecção e configuração de dispositivos enquanto o sistema está em execução (ex: USB)
  • Coldplug: detecção de dispositivos já presentes durante a inicialização
  • udev: subsistema responsável por criar dispositivos em /dev dinamicamente
  • Regras de udev: /etc/udev/rules.d/
  • Udev utiliza o SysFS (pseudosistema de arquivos montado em /sys)

Exercícios Exploratórios

Exercício Exploratório 1 — Servidores legados sem teclado

Enunciado: É comum encontrar máquinas legadas em ambientes de produção, por exemplo quando certos equipamentos usam uma conexão desatualizada para se comunicar com o computador controlador, sendo assim necessário estar particularmente atento a algumas peculiaridades dessas máquinas mais antigas. Certos servidores x86 com firmware BIOS mais antigo, por exemplo, não inicializam se um teclado não for detectado. Como esse problema específico pode ser evitado?

O utilitário de configuração da BIOS tem uma opção para desativar o bloqueio do computador quando um teclado não é encontrado.

Exercício Exploratório 2 — Ausência do lspci em ARM

Enunciado: Os sistemas operacionais criados em torno do kernel do Linux também estão disponíveis para uma ampla variedade de arquiteturas de computadores além do x86, como os computadores de placa única baseados na arquitetura ARM. Um usuário atento notará a ausência do comando lspci nessas máquinas, como o Raspberry Pi. Que diferença em relação às máquinas x86 justifica essa ausência?

Ao contrário da maioria das máquinas x86, um computador baseado em ARM, como o Raspberry Pi, não possui um barramento PCI; portanto, o comando lspci é inútil.

Exercício Exploratório 3 — Nome de disco USB em roteador

Enunciado: Muitos roteadores de rede incluem uma porta USB que permite a conexão de um dispositivo externo, como um disco rígido USB. Sabendo que a maioria deles usa um sistema operacional baseado em Linux, qual seria o nome de um disco rígido USB externo no diretório /dev/, supondo-se que não haja nenhum outro dispositivo de bloco convencional no roteador?

Os kernels do Linux modernos identificam os discos rígidos USB como dispositivos SATA, de modo que o arquivo correspondente será /dev/sda, já que não existe nenhum outro dispositivo de bloco convencional no sistema.

bash
# Para verificar dispositivos de bloco disponíveis:lsblk# ouls /dev/sd*

Exercício Exploratório 4 — Verificar vulnerabilidade Meltdown

Enunciado: Em 2018, a vulnerabilidade de hardware conhecida como Meltdown foi descoberta. Ela afeta quase todos os processadores de diferentes arquiteturas. As versões mais recentes do kernel Linux podem informar se o sistema atual está vulnerável. Como obter essas informações?

O arquivo /proc/cpuinfo tem uma linha que mostra os bugs conhecidos para a CPU correspondente, como por exemplo bugs: cpu_meltdown.

bash
# Para verificar vulnerabilidades da CPU:grep -i bugs /proc/cpuinfo