2008/09/06

Broadcom wireless bcm4312 - Ubuntu 8.04

DISCLAIMER: while we keep this post for reference, we strongly discourage the use of proprietary software, since it violates fundamental user freedoms.


Installazione tramite ndiswrapper dei driver della scheda mini Dell™ Wireless 1395 802.11b/g (Broadcom wireless bcm4312) su una Ubuntu 8.04.

Individuare il chipset della periferica tramite

lspci

e reperire i driver per Windows (prefiribilmente XP), ad esempio qui

wget http://ftp.us.dell.com/network/Dell_multi-device_A17_R174291.exe

da salvare in una cartella temporanea. Installando cabextract

sudo aptitude install cabextract

si possono estrarre i driver

cabextract Dell_multi-device_A17_R174291.exe

(oppure si può utilizzare wine per eseguire il file .exe).
Nella cartella devono essere presenti il file .inf ma anche .sys e .bin (o .cat?).

Installare ndiswrapper:

sudo aptitude install ndiswrapper-utils-1.9 ndiswrapper-common

Mettere in blacklist eventuali moduli incompatibili

echo 'blacklist bcm43xx' | sudo tee -a /etc/modprobe.d/blacklist

installare i drivers

sudo ndiswrapper -i bcmwl5.inf
ndiswrapper -l


Se i driver sono stati installati correttamente, il risultato di quest'ultimo comando dovrebbe essere simile a

bcmwl5 : driver installed
device (14E4:4315) present (alternate driver: wl)

Caricare il modulo di ndiswrapper

sudo depmod -a
sudo modprobe ndiswrapper
sudo cp /etc/network/interfaces /etc/network/interfaces.orig
echo -e 'auto lo\niface lo inet loopback\n' | sudo tee /etc/network/interfaces


caricare il modulo all'avvio

sudo ndiswrapper -m
echo 'ndiswrapper' | sudo tee -a /etc/modules
echo 'ENABLED=0' | sudo tee -a /etc/default/wpasupplicant

e, nel caso fosse installato

sudo aptitude remove b43-fwcutter

Creare uno script, aprendo

gksu gedit /etc/init.d/wirelessfix.sh

e copiandovi le seguenti righe

#!/bin/bash
modprobe -r b44
modprobe -r b43
modprobe -r b43legacy
modprobe -r ssb
modprobe -r ndiswrapper
modprobe ndiswrapper
modprobe b44


Aggiustare i permessi e renderlo operativo

cd /etc/init.d/ && sudo chmod 755 wirelessfix.sh
sudo update-rc.d wirelessfix.sh defaults


Riavviare il computer e verificare che
sudo iwconfig
identifichi una nuova interfaccia (ad esempio eth1 o wlan0, ma il nome può variare).

Ref: danny block notes; wiki ubuntu-it;