Porque as distribuições Linux reconhecem o hardware facilmente?

Basicamente, não houve uma única vez que eu instalasse uma distribuição Linux em algum computador e ela não reconhecesse o driver de áudio, rede, dispositivos de entrada e saída… enfim, sempre funcionou muitíssimo bem comigo. Mas gostaria de saber porque isso acontece, qual o recurso do kernel linux o qual se deve essa boa performance na hora de identificar o hardware do dispositivo? Se for possível, me passem algum texto/artigo/matéria sobre o assunto. Grato desde já.

2 curtidas

Até onde meu escopo de conhecimento abrange, é porque os drivers são embutidos diretamente no Kernel, especialmente os de vídeo da Amd e Intel, logo, tá tudo no mesmo bolo, sem a necessidade de usar uma ferramenta external, como é feito no Windows

@Deleterium @Capezotte vocês que são mais letrados a respeito de Linux do que eu, sabem informar melhor o rapaz?

1 curtida

É basicamente isso que vc falou msm. Os drives Wifi, Rede, Som, Vídeo (Intel e AMD principalmente) geralmente já estão no Kernel. E como o Kernel tem uma grande quantidade desses “drives” q na verdade se tratando de Linux são chamados de módulos, a maioria do hardware que está no mercado é reconhecido sem problemas. Resumindo: É como se dentro do kernel existisse um “pacotão” de drivers para várias peças de computador, aí quando vc instala o sistema ele já tem acesso ao seu hardware sem precisar instalar nada adicional.

1 curtida

Basicamente, o Linux não só possui uma quantidade colossal de drivers embutidos como possui os chamados generic drivers (que funciona como um plano B), basicamente o linux ao invés de dizer que o dispositivo não é reconhecido ele tenta fazer as funções básicas do dispositivo funcionar isso é notório em teclados bluetooth, várias especificidades não funcionam (como a estranha mania de colocar uma touch área no meio do teclado) mas a função primária do teclado em si funciona

5 curtidas

A coisa fica mais interessante pois normalmente uma imagem initrd (initramfs) chega a ser menor que um único driver de dispositivo que você baixa no Windows :man_shrugging:t6:

Tem driver para GPU Nvidia no kernel tmb.
Nouveau.

O driver base não é tão grande.
O negocio é a gordura.

1 curtida

Só de não ter que baixar nada já é uma alegria, lembro-me quando instalei o Win 7 no notebook da minha filha foi só estresse, sendo que no Linux é tudo plug n’ play, possuímos o mesmo notebook, quando atualizei para o Win 10 foi mais tranquilo.

inxi -F --filter
System:
  Kernel: 5.15.4-201.fc35.x86_64 x86_64 bits: 64 Desktop: GNOME 41.1
  Distro: Fedora release 35 (Thirty Five)
Machine:
  Type: Laptop System: LENOVO product: 80UG v: Lenovo ideapad 310-14ISK
  serial: <superuser required>
  Mobo: LENOVO model: Toronto 4A2 v: NO DPK serial: <superuser required>
  UEFI: LENOVO v: 0XCN45WW date: 08/09/2018
Battery:
  ID-1: BAT0 charge: 21.6 Wh (100.0%) condition: 21.6/30.0 Wh (71.9%)
CPU:
  Info: Dual Core model: Intel Core i3-6100U bits: 64 type: MT MCP cache:
  L2: 512 KiB
  Speed: 2300 MHz min/max: 400/2300 MHz Core speeds (MHz): 1: 2300 2: 2300
  3: 2300 4: 2300
Graphics:
  Device-1: Intel Skylake GT2 [HD Graphics 520] driver: i915 v: kernel
  Device-2: Syntek EasyCamera type: USB driver: uvcvideo
  Display: wayland server: X.Org 1.21.1.3 driver: loaded: intel
  resolution: 1366x768~60Hz
  OpenGL: renderer: Mesa Intel HD Graphics 520 (SKL GT2) v: 4.6 Mesa 21.2.5
Audio:
  Device-1: Intel Sunrise Point-LP HD Audio driver: snd_hda_intel
  Sound Server-1: ALSA v: k5.15.4-201.fc35.x86_64 running: yes
  Sound Server-2: PipeWire v: 0.3.40 running: yes
Network:
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
  driver: r8169
  IF: enp1s0 state: down mac: <filter>
  Device-2: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter
  driver: ath10k_pci
  IF: wlp2s0 state: up mac: <filter>
Bluetooth:
  Device-1: Qualcomm Atheros type: USB driver: btusb
  Report: rfkill ID: hci0 state: up address: see --recommends
Drives:
  Local Storage: total: 465.76 GiB used: 190.81 GiB (41.0%)
  ID-1: /dev/sda vendor: Western Digital model: WD5000LPCX-24VHAT0
  size: 465.76 GiB
Partition:
  ID-1: / size: 59.67 GiB used: 10.58 GiB (17.7%) fs: btrfs dev: /dev/sda3
  ID-2: /boot/efi size: 300.4 MiB used: 17.1 MiB (5.7%) fs: vfat
  dev: /dev/sda1
  ID-3: /home size: 360.67 GiB used: 180.21 GiB (50.0%) fs: ext4
  dev: /dev/sda4
Swap:
  ID-1: swap-1 type: zram size: 8 GiB used: 52.7 MiB (0.6%) dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 39.0 C pch: 37.5 C mobo: N/A
  Fan Speeds (RPM): N/A
Info:
  Processes: 262 Uptime: 6d 12h 35m Memory: 11.59 GiB used: 3.11 GiB (26.8%)
  Shell: Bash inxi: 3.3.09

Eu acho incrível isso, tenho uma impressora hp que na época que eu usava windows foi uma trabalheira pra instalar, e no linux eu só conectei e saiu funcionando. Um dos vários motivos que me fizeram não voltar pro windows foi esse plug n’ play sensacional.

2 curtidas

Quando comecei a utilizar Linux, acabei comprando algum hardware que não era suportado no Windows bem baratinho, placas de som, vídeo e hardmodems. Economizei uma graninha que deu para fazer upgrade de outros componentes mais importantes CPU, memória, HD etc …
Era um 486sx com 8mb sem o famoso kit multimídia da época, com o dinheiro que eu pagaria em uma placa de som bacana na época Sound Blaster AWE 64, eu comprei um 486dx2, mais 8mb um drive de cd e aí começou minha aventura no Linux, já tinha instalado com os disquetes de boot e root, mas com o kit multimídia deu pra ir mais além, pois na época tinham várias revistas que vinham com CD’s, com internet discada era osso pra testar distros.

2 curtidas

Meninos a UEFI que detecta o hardware.
E ela também que inicia o Grub que inicia o kernel Linux.
No final o Linux recebe tudo mastigado.

A BIOS/UEFI só enumera o dispositivos. “Reconhecer” no sentido de fazer funcionar só vale para o hardware mais genérico e clássico possível (quase sempre não mais que as funções básicas do teclado, fazer o alto-falante tocar uma única nota e, quando muito, o mouse funcionar nos menus). Bluetooth, aceleração 3D e muito mais raramente vêm “de graça” com o bootloader.

Não deixa de ser um mérito da equipe do kernel manter esse número gigantesco de drivers (tanto genéricos como específicos), além de construir o esquema de LKM e initramfs para viabilizar a distribuição dos mesmos.

5 curtidas

eu acho isso uma meia verdade…
já que isso é uma fato para os drives que já vem com o kernel generic.
agora, algum drive que não vem como kernel, eu não conheço nenhuma distro que consiga… sei lá baixar o drive do site do fabricante e acoplar ao kernel. (seria um sonho! mas nem drive os fabricantes fazem para linux )

Não amigo. A BIOS n tem poder de reconhecer placa de video dedicada, som e etc. Quem faz isso são os módulos/drivers do sistema operacional. O q BIOS faz é uma inicialização básica e reconhecimento generico de alguns dispositivos básicos pra aí dps chamar o Sistema Operacional e ele é quem assume e reconhece os dispositivos (hardwares) do computador. Ou seja, o funcionamento e manipulação do hardware/dispositivos são feitos pelo sistema operacional e não a BIOS. Caso contrário o Windows não precisaria instalar drivers após formatar e nem o Linux precisaria ter esses módulos inclusos no Kernel.

Eu n escreve que carregava os drivers, eu só escreve que detecta o hardware.

na verdade o kernel pode ser iniciado pela propiá uefi sem a nescidade de grub ou qualquer bootloader, as distros que escolhem usar o grub.

isso é uma meia verdade, já que… quem não usa uefi? como ficam?
sei que são casos menus comuns, mas não deixam de ser uma realidade.

Mas n detecta! Só reconhece o básico pra inciar o computador.