Compreendendo os arquivos de configuração e kernel do Broadcom

4

Frequentemente instalo distros do Linux em live usb / CDs. Para isso, gostaria de poder configurar minha rede sem fio sem qualquer conexão à Internet. Eu tenho um chipset da Broadcom:

$ lspci -k
04:00.0 Network controller: Broadcom Corporation BCM43228 802.11a/b/g/n

Eu baixei o pacote bcmwl-kernel-source , assim como suas dependências ( dkms ). Eu sou capaz de instalar os off-line e fazer o meu trabalho wi-fi. No entanto, gostaria de entender como funciona sob o capô.

Há uma lista de arquivos .ko na pasta de módulos:

$ ls /lib/modules/'uname -r'/kernel/net/wireless/
cfg80211.ko             lib80211_crypt_tkip.ko  lib80211.ko
lib80211_crypt_ccmp.ko  lib80211_crypt_wep.ko

Eu fiz o backup deles e os deletei

$ rm /lib/modules/'uname -r'/kernel/net/wireless/*.ko
$ reboot

Após a reinicialização, o wifi não funciona mais. Parece que esses arquivos .ko são arquivos importantes para fazer com que o wl funcione.

Eu tento recarregar wl , mas não é mais reconhecido:

$ modprobe wl
modprobe: ERROR: ../libkmod/libkmod-module.c:180 kmod_module_parse_depline() ctx=0x7f9f5375d010 path=/lib/modules/3.13.0-35-generic/kernel/net/wireless/lib80211.ko error=No such file or directory
modprobe: ERROR: ../libkmod/libkmod-module.c:180 kmod_module_parse_depline() ctx=0x7f9f5375d010 path=/lib/modules/3.13.0-35-generic/kernel/net/wireless/lib80211.ko error=No such file or directory
modprobe: ERROR: could not insert 'wl': Unknown symbol in module, or unknown parameter (see dmesg)

Eu tentei esses comandos para garantir que os arquivos .ko tenham algo a ver com o módulo wl :

$ apt-get autoremove bcmwl-kernel-source 
$ modprobe wl
modprobe: FATAL: Module wl not found.

Parece normal, eu reinstalei o bcmwl-kernel-source :

$ sudo dpkg -i bcmwl-kernel-source_6.30.223.141+bdcom-0ubuntu2_amd64.deb 
Selecting previously unselected package bcmwl-kernel-source.
(Reading database ... 396932 files and directories currently installed.)
Preparing to unpack .../bcmwl-kernel-source_6.30.223.141+bdcom-0ubuntu2_amd64.deb ...
Unpacking bcmwl-kernel-source (6.30.223.141+bdcom-0ubuntu2) ...
Setting up bcmwl-kernel-source (6.30.223.141+bdcom-0ubuntu2) ...
Loading new bcmwl-6.30.223.141+bdcom DKMS files...
Building only for 3.13.0-35-generic
Building for architecture x86_64
Building initial module for 3.13.0-35-generic
Done.

wl:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.13.0-35-generic/updates/dkms/

depmod........

DKMS: install completed.
modprobe: ERROR: could not insert 'wl': Unknown symbol in module, or unknown parameter (see dmesg)
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools (0.103ubuntu4.2) ...
update-initramfs: Generating /boot/initrd.img-3.13.0-35-generic

A instalação do pacote bcmwl tenta automaticamente inserir wl via modprobe . No entanto, ele falha como falha quando eu tentei manualmente:

$ modprobe wl
modprobe: ERROR: could not insert 'wl': Unknown symbol in module, or unknown parameter (see dmesg)

Se eu restaurar os arquivos .ko removidos anteriormente de /lib/modules/ uname -r /kernel/net/wireless/ e, em seguida, reinstalar bcmwl-kernel-source , o script inserirá automaticamente wl ( modprobe wl ) e minha placa wifi funcionará novamente.

Minhas perguntas são:

1) Como tudo isso funciona, como são gerados os arquivos .ko sem fio?

2) Se eu inicializar a partir de um Ubuntu usb ao vivo, esses arquivos .ko já serão gerados. O que eu faria se estivesse em uma situação em que esses arquivos não estão aqui? Eles são compatíveis com inter-linux-distro para que eu possa apoiá-los?

    
por kaligne 14.10.2014 / 17:16

0 respostas