Hi,
I've been able to install the Broadcom-STA driver for my laptop wifi (Broadcom
BCM43228), so I thought I could share my findings, since the driver shipped by
Broadcom is old and cannot be compiled with new version of the kernel.

Distros maintain a set of patches, for example:

https://sources.debian.org/src/broadcom-sta/6.30.223.271-11/debian/patches/
https://git.archlinux.org/svntogit/community.git/tree/trunk?h=packages/broadcom-wl-dkms

There are problems with those patches however:
The debian patches use a directory layout where both the 32 bit and 64 bit
drivers have been unpacked
The ninth archlinux patch does not apply, and the patches must be supplemented
with two sed's found in PKGBUILD:
  sed -i 's/get_ds()/KERNEL_DS/g' src/wl/sys/wl_iw.c
  sed -i 's/get_ds()/KERNEL_DS/g' src/wl/sys/wl_cfg80211_hybrid.c

A third sed may be used to rename eth1 to wlan0 (which udev renames to wol1
anyway):
  sed -i -e '/BRCM_WLAN_IFNAME/s/eth/wlan/' src/wl/sys/wl_linux.c

So the build instructions are:
(1) If you have wiped out the linux kernel sources, unpack the kernel at the
same location you used for building it, and rebuild it. The symlink
/lib/modules/<kernel version>/build should point to the location where you
have the kernel build tree.

(2) get the driver from broadcom (to some download location):
http://www.broadcom.com/support/802.11/linux_sta.php
click Driver, then the driver for your architecture (32/64 bit), then agree to
the conditions of the license, and it should download a file named:
hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz
(there is no "_64" for the 32 bit version. I have not tested on 32 bit, so
I'll stop talking about that. Note that archlinux only considers 64 bit.)

(2) create a directory for unpacking the driver:
mkdir wifi-module && cd wifi-module &&
tar xf <dowload location>/hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz

(3) download the first 8 patches form archlinux and apply them
patch -Np1 -i <dowload-location>/001-null-pointer-fix.patch
etc

(4) apply the three seds above

(5) run make. This should create a file named wl.ko, that you have to install
into /lib/modules/<kernel version>/kernel/net/wireless (create those
directories if needed). Then run "depmod" (as root) and "modprobe wl" (as
root). "ip link list" should show the wifi adapter...

(6) install wpa_supplicant (and dhcp or dhcpcd if you do not want a static
address). Enter your passphrase as shown on the page. Create the appropriate
files in /etc/sysconfig, then reboot (I have not tried using ifup).

That's what has worked for me. No warranty of any sort on another computer...

Pierre
-- 
http://lists.linuxfromscratch.org/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to