Devido ao grande número de componentes de hardware presentes no computador, torna-se muito penosa a tarefa de instalar cada um deles um a um, carregando módulo por módulo.
Além disso, nem sempre é possível saber de antemão qual o módulo que funciona com o hardware que acabamos de instalar, e não é prático ficar procurando o módulo adequado, o que pode despender um tempo que muitas vezes não temos.
Pensando nisso foi desenvolvido o hotplug, uma ferramenta de detecção e instalação automática de novos dispositivos para
GNU/Linux.
Quando executado, o
hotplug realiza uma série de testes que detecta qualquer novo dispositivo de hardware, e automaticamente carrega o módulo adequado, se disponível. É comum o hotplug vir configurado para ser executado toda vez que o sistema for iniciado, assim, qualquer novo hardware que seja conectado ao computador será detectado e instalado durante o processo de inicialização.
Outra função do hotplug é detectar dispositivos USB quando eles são conectados ao computador, instalando automaticamente os módulos necessários.
Obtendo informações sobre o hardware
O GNU/Linux oferece diversas ferramentas que nos permitem obter informações sobre todo o hardware conectado ao nosso computador. Essas informações podem ser utilizadas para diversos fins, e mais cedo ou mais tarde acabamos precisando delas.
Placas e dispositivos on-board
Para obtermos informações sobre as placas e dispositivos on-board ligadas ao nosso computador, podemos utilizar o comando lspci, que lista as informações do fabricante a respeito de cada dispositivo.
Veja um exemplo de uso do lspci:
$ lspci
0000:00:00.0 Host bridge: VIA Technologies, Inc. VT8375 [KM266/KL266] Host Bridge
0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT8633 [Apollo Pro266 AGP]
0000:00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80)
0000:00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80)
0000:00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80)
0000:00:10.3 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 82)
0000:00:11.0 ISA bridge: VIA Technologies, Inc. VT8235 ISA Bridge
0000:00:11.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
0000:00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 50)
0000:00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 74)
0000:01:00.0 VGA compatible controller: S3 Inc. VT8375 [ProSavage8 KM266/KL266]
Como se pode ver, é gerada uma listagem com a descrição de todas as placas e dispositivos on-board conectadas ao computador. A estrutura de cada linha é a seguinte: BUS, tipo de dispositivo, fabricante, chipset, descrição.
Assim, podemos facilmente obter informações sobre a nossa placa de som. Procurando na listagem, vemos que a linha correspondente a ela é:
0000:00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 50)
De onde tiramos as informações:
- BUS: 0000:00:11.5;
- Tipo de dispositivo: Controlador de áudio multimídia (multimedia audio controller);
- Fabricante: VIA Technologies, Inc.;
- Chipset: VT8233/A/8235/8237;
- Descrição: Controlador de áudio AC97.
Da mesma forma, podemos obter as informações sobre a placa de vídeo:
0000:01:00.0 VGA compatible controller: S3 Inc. VT8375 [ProSavage8 KM266/KL266]
- BUS: 0000:01:00.0;
- Tipo de dispositivo: Controlador compatível com VGA (VGA compatible controller);
- Fabricante: S3 Inc.;
- Chipset: VT8375;
- Descrição: ProSavage8 KM266/KL266.
Dispositivos USB
Pode ser que queiramos obter informações sobre nossos dispositivos externos, ligados na interface USB. Para isso existe o comando lsusb, que funciona da mesma forma que o lspci.
Veja um exemplo de seu uso:
$ lsusb
Bus 002 Device 003: ID 03f0:0901 Hewlett-Packard ScanJet 2300c
Bus 002 Device 002: ID 0553:0002 STMicroelectronics Imaging Division (VLSI Vision) CPiA WebCam
Bus 001 Device 003: ID 04a9:1084 Canon, Inc.
Aqui são exibidas as informações sobre os dispositivos USB conectados ao computador. As informações exibidas aqui são: BUS, número do dispositivo, ID, Fabricante, Descrição.
Vejamos as informações contidas na linha a seguir:
Bus 002 Device 003: ID 03f0:0901 Hewlett-Packard ScanJet 2300c
- BUS: 002;
- Número do dispositivo: 003;
- ID: 03f0:0901;
- Fabricante: Hewlett-Packard;
- Modelo: ScanJet 2300c.
O diretório /proc/
Dentro do diretório /proc/ estão diversos arquivos que contém informações avançadas sobre o sistema. Para ver essas informações, basta usar o cat.
Por exemplo, o arquivo /proc/cpuinfo contém informações sobre o processador. Para visualizar essas informações, digitamos o comando:
# cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 6
model : 8
model name : AMD Duron(tm)
stepping : 1
cpu MHz : 1600.082
cache size : 64 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 mmx fxsr sse syscall
mmxext 3dnowext 3dnow
bogomips : 3162.11
Assim, podemos saber que esse é um processador AMD Duron 1600 MHz com 64 KB de cache, além de inúmeras outras informações que podem ser de grande utilidade para o administrador do sistema.
Veja abaixo uma lista com os principais arquivos do diretório /proc/ e o que eles contém:
- /proc/cpuinfo: Informações sobre o processador (CPU);
- /proc/cmdline: Parâmetros utilizados para inicializar o sistema;
- /proc/crypto: Sistema de criptografia utilizado pelo sistema;
- /proc/devices: Mostra os tipos de dispositivos disponíveis;
- /proc/filesystems: Sistemas de arquivos suportados pelo sistema;
- /proc/interrupts: Informações sobre quais interrupções estão ocupadas e quais os dispositivos que as estão utilizando;
- /proc/iomem: Informações sobre a memória de I/O;
- /proc/ioports: Informações sobre as portas de I/O;
- /proc/loadavg: Informações sobre a carga do sistema;
- /proc/meminfo: Informações sobre uso da memória;
- /proc/misc: Listagem de dispositivos diversos;
- /proc/modules: Informações sobre os módulos carregados;
- /proc/partitions: Informações sobre as partições de disco;
- /proc/stat: Estado atual do processador;
- /proc/swap: Relação das partições swap atualmente em uso;
- /proc/uptime: Tempo que o computador permaneceu ligado e em processamento;
- /proc/version: Informações sobre versão do sistema operacional;
- /proc/vmstat: Informações sobre uso da memória virtual.
Existem outros arquivos, dispostos em subdiretórios. Analise-os e descubra a quantidade aparentemente inesgotável de informações que se pode obter no diretório /proc/ e subdiretórios.