Ich installiere Linux-Distributionen häufig von Live-USB/CDs. Dafür möchte ich mein WLAN ohne Internetverbindung einrichten können. Ich habe einen Broadcom-Chipsatz:
$ lspci -k
04:00.0 Network controller: Broadcom Corporation BCM43228 802.11a/b/g/n
Ich habe das bcmwl-kernel-source
Paket sowie seine Abhängigkeiten ( dkms
) heruntergeladen. Ich kann diese offline installieren und mein WLAN zum Laufen bringen. Ich würde jedoch gerne verstehen, wie es hinter den Kulissen funktioniert.
.ko
Im Modulordner befindet sich eine Liste der Dateien:
$ ls /lib/modules/`uname -r`/kernel/net/wireless/
cfg80211.ko lib80211_crypt_tkip.ko lib80211.ko
lib80211_crypt_ccmp.ko lib80211_crypt_wep.ko
Ich habe sie gesichert und gelöscht
$ rm /lib/modules/`uname -r`/kernel/net/wireless/*.ko
$ reboot
Nach dem Neustart funktioniert das WLAN nicht mehr. Es scheint, dass diese .ko
Dateien wichtig sind, damit es wl
funktioniert.
Ich versuche es neu zu laden wl
, aber es wird nicht mehr erkannt:
$ 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)
Ich habe diese Befehle ausprobiert, um sicherzustellen, dass die .ko
Dateien etwas mit dem wl
Modul zu tun haben:
$ apt-get autoremove bcmwl-kernel-source
$ modprobe wl
modprobe: FATAL: Module wl not found.
Scheint normal, ich habe neu installiert 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
Bei der Installation des Pakets wird automatisch versucht , via bcmwl
einzufügen . Dies schlägt jedoch genauso fehl wie bei meinem manuellen Versuch:wl
modprobe
$ modprobe wl
modprobe: ERROR: could not insert 'wl': Unknown symbol in module, or unknown parameter (see dmesg)
Wenn ich die zuvor aus uname -r .ko
entfernten Dateien wiederherstelle und anschließend neu installiere , fügt das Skript automatisch ( ) ein und meine WLAN-Karte funktioniert wieder./lib/modules/
/kernel/net/wireless/
bcmwl-kernel-source
wl
modprobe wl
Meine Fragen sind:
1) Wie funktioniert das alles, wie werden die drahtlosen .ko
Dateien generiert?
2) Wenn ich von einem Ubuntu Live-USB boote, .ko
sind diese Dateien bereits generiert. Was würde ich tun, wenn diese Dateien nicht hier sind? Sind sie zwischen den Linux-Distributionen kompatibel, sodass ich sie sichern kann?