После некоторых исследований я только что использовал собственный драйвер Broadcom. Он не идеален, он портит ядро не-GPL, но работает (портить ядро - это просто философская проблема, он просто связан с лицензиями и никак не влияет на работу драйвера). Мне просто придется перекомпилировать модуль каждый раз, когда я обновляю ядро ... ну да ладно.
Итак, я получил драйвер с http://www.broadcom.com/support/802.11/linux_sta.php, разархивировал его и попытался скомпилировать (запустив make
в том же каталоге, где был распакован файл).
После нескольких ошибок я отредактировал файл в src/wl/sys/wl_cfg80211.c
(который поставляется вместе с файлом tar), заменив каждое вхождение KERNEL_VERSION(2, 6, **)
на 0
(ноль). После компиляции модуля wl.ko я запустил modprobe lib80211
и затем insmod wl ; modprobe wl
, и вуаля, проблема решена.
Чтобы упростить задачу, приведенные ниже команды устанавливают 64-битный модуль:
wget http://www.broadcom.com/docs/linux_sta/hybrid-portsrc_x86_64-v5_100_82_112.tar.gz
mkdir wldir
tar -xvzf hybrid-portsrc_x86_64-v5_100_82_112.tar.gz -C wldir
cd wldir
sed -e 's/KERNEL_VERSION(2, 6, ..)/0/g' src/wl/sys/wl_cfg80211.c -i
make
modprobe lib80211
insmod wl.ko
modprobe wl
Для 32 -битной версии просто замените hybrid-portsrc_x86_64-v5_100_82_112.tar.gz
на hybrid-portsrc_x86_32-v5_100_82_112.tar.gz