Comprender los archivos de configuración y kernel de Broadcom

Comprender los archivos de configuración y kernel de Broadcom

A menudo instalo distribuciones de Linux desde USB/CD en vivo. Para eso me gustaría poder configurar mi conexión inalámbrica sin ninguna conexión a Internet. Tengo un chipset Broadcom:

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

Descargué el bcmwl-kernel-sourcepaquete así como sus dependencias ( dkms). Puedo instalarlos sin conexión y hacer que mi wifi funcione. Sin embargo, me gustaría entender cómo funciona bajo el capó.

Hay una lista de .koarchivos en la carpeta 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

Les hice una copia de seguridad y los eliminé.

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

Después del reinicio, el wifi ya no funciona. Parece que esos .koarchivos son archivos importantes para hacer el wltrabajo.

Intento recargar wlpero ya no se reconoce:

$ 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)

Probé estos comandos para asegurarme de que los .koarchivos tengan algo que ver con el wlmódulo:

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

Parece normal, lo reinstalé 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

La instalación del bcmwlpaquete intenta automáticamente insertarlo wla través de modprobe. Sin embargo, falla como falló cuando lo intenté manualmente:

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

Si restauro los .koarchivos que eliminé anteriormente de /lib/modules/uname -r /kernel/net/wireless/ y luego los reinstalo bcmwl-kernel-source, el script inserta automáticamente wl( modprobe wl) y mi tarjeta wifi vuelve a funcionar.

Mis preguntas son:

1) ¿Cómo funciona todo esto? ¿Cómo .kose generan los archivos inalámbricos?

2) Si inicio desde un live usb de Ubuntu, esos .koarchivos ya están generados. ¿Qué haría si me encuentro en una situación en la que esos archivos no están aquí? ¿Son compatibles entre distribuciones Linux para poder hacer una copia de seguridad de ellos?

información relacionada