Scheda WiFi Broadcom BCM4322 su Fedora 27 nightly compose: differenze tra le versioni
(Creata pagina con "== Scenario == Installazione di Fedora 27 nightly compose Branched 20170919.n.0 <br /> L'installazione su questo hardware funziona. In ogni caso, in ogni versione di Fedora,...") |
|||
Riga 1: | Riga 1: | ||
== Scenario == | == Scenario == | ||
Installazione di Fedora 27 nightly compose Branched 20170919.n.0 < | Installazione di Fedora 27 nightly compose Branched 20170919.n.0 | ||
<b>Con versioni successive, installando l'RPM funziona senza fare altro.</b> | |||
L'installazione su questo hardware funziona. | L'installazione su questo hardware funziona. | ||
Versione attuale delle 12:11, 19 ott 2017
Scenario
Installazione di Fedora 27 nightly compose Branched 20170919.n.0
Con versioni successive, installando l'RPM funziona senza fare altro.
L'installazione su questo hardware funziona.
In ogni caso, in ogni versione di Fedora, sia essa stabile che Rawhide, per far funzionare la wireless in questione, bisogna utilizzare il repository RPMFusion non-free. Questo perché il modulo viene rilasciato con licenza non libera e non può essere incluso nei repository ufficiali di Fedora.
Il kernel Linux su Fedora Rawhide e nelle pre-release, cambia spesso, e altrettanto spesso ha abilitati, a quanto ho capito, debug e altre storie: invidio chi ci capisce.
Hardware
Hardware: MacBookPro5,5
sudo dmidecode -s system-product-name
Scheda wireless: Broadcom BCM4322 802.11a/b/g/n Wireless LAN Controller
lspci
Il problema
Seguendo la procedura per installare il modulo relativo alla scheda wireless, tramite il repository RPMFusion, ovvero
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm sudo dnf install -y broadcom-wl kernel-devel sudo akmods --force --kernel `uname -r` --akmod wl sudo modprobe -a wl
nel punto in cui si lancia akmods
si ottiene un errore
Building and installing wl-kmod [FAILED] Building rpms failed; see /var/cache/akmods/wl/6.30.223.271-14-for-4.13.2-300.fc27.x86_64.failed.log for details
e andando a guardare nel file di log, l'errore principale è questo:
FATAL: modpost: GPL-incompatible module wl.ko uses GPL-only symbol '__init_work'
This means that the module is licensed as proprietary, but it tries to use a function that is GPL only.
La soluzione (forse)
Si potrebbe scaricare il file tar dal sito Broadcom, ma già RPMFusion fa questo, oltre ad includere delle patch. Il tutto si trova nel file /usr/src/akmods/wl-kmod.latest
.
Creare quindi una directory temporanea, con un nome indicativo, ed entrarci
mkdir /var/tmp/antani cd /var/tmp/antani
Estrarre i file da wl-kmod.latest
, che un src RPM.
rpm2cpio /usr/src/akmods/wl-kmod.latest | cpio -idmv
Starrare l'archivio tar.gz relativo alla propria architettura (es. 64 bit)
tar xzvf hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz
Applicare le patch
for i in *patch ; do patch -p1 < $i ; done
Lanciando il comando make
otterremo l'errore in questione (quello che si è fatto finora a mano è probabilmente quello che fa akmods).\\
Modificare quindi il file src/wl/sys/wl_linux.c
mettendo GPL al posto di MIXED/Proprietary nella definizione di MODULE_LICENSE. Forse Stallman si arrabbia, forse non è filosoficamente corretto, ma chiudiamo un occio :-(
sed -i 's/MIXED\/Proprietary/GPL/' src/wl/sys/wl_linux.c
Lanciamo make
, make install
ed infine depmod
.
make && sudo make install sudo depmod
Rimuovere i moduli incompatibili con questo appena installato (anche se alcuni non sono caricati), cosi come definito nel file /usr/lib/modprobe.d/broadcom-wl-blacklist.conf
, oppure riavviate ghiozzamente il sistema.
rmmod ssb bcma b43 brcmsmac brcmfmac
Infine caricate il modulo wl
.
modprobe wl
Verificate con il comando iwconfig
[1] se la scheda adesso viene vista.
wlp3s0 IEEE 802.11 ESSID:off/any Mode:Managed Access Point: Not-Associated Retry short limit:7 RTS thr:off Fragment thr:off Power Management:off
Al reboot il modulo viene caricato automaticamente.
Probabilmente ad ogni aggiornamento del kernel va effettuata nuovamente parte della procedura.
Link di riferimento
- https://www.broadcom.com/support/download-search/?pf=Wireless+LAN+Infrastructure
- http://shajikhan.in/blog/2017/04/broadcom-4313-wireless-drivers-on-fedora-rawhide
- http://danykey.blogspot.it/2008/12/debian64-fatal-modpost-gpl-incompatible.html
Note
- ↑ sudo dnf install wireless-tools