# BCM 4312 802.11b/g LP-PHY (rev 01): Unable to find wlan0

## keeter

I have a Lenovo N500, Intel Dual-Core laptop.

I tried to follow the wireless configuration instructions, but I'm at a stand still: the wlan0 driver cannot be found.

I took the following steps:

1) Compiled a kernel with the following settings. Where available, I opted to compile as a module and NOT built-in.

    o DISABLE Bus Options -> PCCard (PCMCIA/CardBus) support

    o Networking Support -> Wireless -> cfg80211 - wireless configuration API

    o Networking Support -> Wireless -> cfg80211 - wireless extensions compatability

    o Networking Support -> Wireless -> Generic IEEE networking stack

    o Device Drivers -> Network device support -> Wireless LAN -> Broadcom 43xx wireless support (max80211 stack)

    o Device Drivers -> Network device support -> Wireless LAN -> Broadcom 43xx debugging

2) Ensured that CONFIG_PACKET is enabled in the kernel:

    o grep CONFIG_PACKET /usr/src/linux/.config

3) Added the following to /etc/portage/package.accept_keywords

    o net-wireless/b43-firmware ~x86

    o net-wireless/b43-fwcutter ~x86

4) Installed the firmware:

    o emerge net-wireless/b43-firmware

5) ln -s net.lo net.wlan0

6) rc-update add net.wlan0 default

7) Add the following to /etc/portage/package.use

    o net-misc/wicd X libnotify

8) emerge wicd

9) rc-update modifications (originally started with eth0 connection)

     rc-update del net.eth0

     rc-update add wicd default

10) Added the following to /etc/rc.conf:

      rc_hotplug="!net.eth* !net.wlan*"

 11) Added the following to /etc/conf.d/net

    o config_wlan0="dhcp"

    o modules="wpa_supplicant"

    o wpa_supplicant_eth0="-Dmadwifi"

Here is more relevant system information: 

emerge --info

```

Portage 2.1.11.9 (default/linux/x86/10.0, gcc-4.5.4, glibc-2.15-r2, 3.3.8-gentoo i686)

=================================================================

System uname: Linux-3.3.8-gentoo-i686-Intel-R-_Pentium-R-_Dual_CPU_T3200_@_2.00GHz-with-gentoo-2.1

Timestamp of tree: Tue, 02 Oct 2012 18:15:01 +0000

app-shells/bash:          4.2_p37

dev-java/java-config:     2.1.11-r3

dev-lang/python:          2.7.3-r2, 3.2.3

dev-util/cmake:           2.8.9

dev-util/pkgconfig:       0.27.1

sys-apps/baselayout:      2.1-r1

sys-apps/openrc:          0.9.8.4

sys-apps/sandbox:         2.5

sys-devel/autoconf:       2.13, 2.68

sys-devel/automake:       1.11.6

sys-devel/binutils:       2.22-r1

sys-devel/gcc:            4.5.4

sys-devel/gcc-config:     1.7.3

sys-devel/libtool:        2.4-r1

sys-devel/make:           3.82-r3

sys-kernel/linux-headers: 3.1 (virtual/os-headers)

sys-libs/glibc:           2.15-r2

Repositories: gentoo

ACCEPT_KEYWORDS="x86"

ACCEPT_LICENSE="* -@EULA"

CBUILD="i686-pc-linux-gnu"

CFLAGS="-O2 -march=core2 -pipe -fomit-frame-pointer"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"

CXXFLAGS="-O2 -march=core2 -pipe -fomit-frame-pointer"

DISTDIR="/usr/portage/distfiles"

FCFLAGS="-O2 -march=i686 -pipe"

FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles news parallel-fetch parse-eapi-ebuild-head protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"

FFLAGS="-O2 -march=i686 -pipe"

GENTOO_MIRRORS="http://gentoo.mirrors.tera-byte.com/ ftp://mirror.csclub.uwaterloo.ca/gentoo-distfiles/ http://mirror.csclub.uwaterloo.ca/gentoo-distfiles/"

LANG="en_US.UTF-8"

LDFLAGS="-Wl,-O1 -Wl,--as-needed"

MAKEOPTS="-j3"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY=""

SYNC="rsync://rsync4.ca.gentoo.org/gentoo-portage"

USE="acl berkdb bzip2 cli cracklib crypt cups cxx dri fortran gdbm gpm iconv ipv6 modules mudflap ncurses nls nptl openmp pam pcre pppd readline session ssl tcpd unicode x86 zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" PHP_TARGETS="php5-3" PYTHON_TARGETS="python3_2 python2_7" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="intel" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

```

lspci -v:

```

04:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g LP-PHY (rev 01)

   Subsystem: Broadcom Corporation Device 04b5

   Flags: bus master, fast devsel, latency 0, IRQ 3

   Memory at f4700000 (64-bit, non-prefetchable) [size=16K]

   Capabilities: [40] Power Management version 3

   Capabilities: [58] Vendor Specific Information: Len=78 <?>

   Capabilities: [e8] MSI: Enable- Count=1/1 Maskable- 64bit+

   Capabilities: [d0] Express Endpoint, MSI 00

   Capabilities: [100] Advanced Error Reporting

   Capabilities: [13c] Virtual Channel

   Capabilities: [160] Device Serial Number 4f-57-4e-ff-ff-a3-00-23

   Capabilities: [16c] Power Budgeting <?>

07:00.0 Ethernet controller: Broadcom Corporation NetLink BCM5906M Fast Ethernet PCI Express (rev 02)

   Subsystem: Lenovo IdeaPad S10e

   Flags: bus master, fast devsel, latency 0, IRQ 48

   Memory at f4600000 (64-bit, non-prefetchable) [size=64K]

   Expansion ROM at <ignored> [disabled]

   Capabilities: [48] Power Management version 3

   Capabilities: [50] Vital Product Data

   Capabilities: [58] Vendor Specific Information: Len=78 <?>

   Capabilities: [e8] MSI: Enable+ Count=1/1 Maskable- 64bit+

   Capabilities: [d0] Express Endpoint, MSI 00

   Capabilities: [100] Advanced Error Reporting

   Capabilities: [13c] Virtual Channel

   Capabilities: [160] Device Serial Number 00-1e-ec-ff-fe-9b-dd-79

   Kernel driver in use: tg3

```

ifconfig -a

```

eth0      Link encap:Ethernet  HWaddr 00:1e:ec:9b:dd:79  

          inet addr:192.168.1.101  Bcast:192.168.1.255  Mask:255.255.255.0

          inet6 addr: fe80::21e:ecff:fe9b:dd79/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:1370 errors:0 dropped:0 overruns:0 frame:0

          TX packets:1568 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:762385 (744.5 KiB)  TX bytes:355822 (347.4 KiB)

          Interrupt:17 

lo        Link encap:Local Loopback  

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:72 errors:0 dropped:0 overruns:0 frame:0

          TX packets:72 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0 

          RX bytes:4792 (4.6 KiB)  TX bytes:4792 (4.6 KiB)

sit0      Link encap:IPv6-in-IPv4  

          NOARP  MTU:1480  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0 

          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

```

iwconfig

```

lo        no wireless extensions.

sit0      no wireless extensions.

eth0      no wireless extensions.

```

----------

## DONAHUE

the b43 driver has not attached to your NIC. 

linuxwireless.org says b43 has been tested on a bcm4312 that has pciid 14e4:4315 ; lspci -v gives  *Quote:*   

> Broadcom Corporation Device 04b5

  suggesting that your chipset may not be the supported chipset. run lspci -nnk and see if [14e4:4315] appears on either the Network controller or Subsystem line. If no  [14e4:4315] appears, what is inside [] for your NIC?  Look at the end of dmesg for b43, ssb, 80211, and wlan0. for any entries that may explain what happened. you may need to run

```
 /etc/init.d/net.wlan0 restart
```

 or 

```
ifconfig wlan0 up
```

 to get action.

----------

## chithanh

Ensure that you have BCMA_HOST_PCI enabled in your kernel, and firmware is installed.

Also wireless-tools / iwconfig don't support modern nl80211 based drivers. So you need to either enable the wireless extension compatibility, or use net-wireless/iw

```
# iw dev wlan0 scan
```

----------

## keeter

@DONAHUE.  Thank you for your help.

RE: lspci -nnk output

```

04:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11b/g LP-PHY [14e4:4315] (rev 01)

   Subsystem: Broadcom Corporation Device [14e4:04b5]

07:00.0 Ethernet controller [0200]: Broadcom Corporation NetLink BCM5906M Fast Ethernet PCI Express [14e4:1713] (rev 02)

   Subsystem: Lenovo IdeaPad S10e [17aa:3a23]

   Kernel driver in use: tg3

```

which seems to meet the linuxwireless spec.

re: dmesg output.

I only get one hit:

```

 dmesg | grep -i 80211

[    0.155492] cfg80211: Calling CRDA to update world regulatory domain

```

Here is the output of the net.wlan0 restart

```

sudo /etc/init.d/net.wlan0 restart

 * Bringing up interface wlan0

 *   ERROR: interface wlan0 does not exist

 *   Ensure that you have loaded the correct kernel module for your hardware

 * ERROR: net.wlan0 failed to start[/quote]
```

[/code]

----------

## keeter

@chithanh: Thank you for your help.

re: BCMA_HOST_PCI

BCMA_HOST_PCI was not enabled, so I compiled a kernel with BCMA_HOST_PCI as a module (not built in), rebooted the system, and no change in behaviour.

re: firmware

Prior to starting this thread, I installed the firmware via the following command:

```

emerge net-wireless/b43-firmware 

```

re: iwconfig

I installed net-wireless/iw and here is the output of the command that you provided:

```

sudo iw dev wlan0 scan

command failed: No such device (-19)

```

----------

## keeter

I found the problem: there was an error in the way that I was loading kernels into the /boot partition.  After fixing this, I am able to establish a wireless connection.

Thank you for your time, and I appreciate your patience.

----------

## DONAHUE

Good for you!

----------

