# BCM4311 broadcom wireless drivers



## freedesk (Feb 8, 2011)

Hi all,

I installed FreeBSD (8-stable, using memstick) today. I had no problems in installing and getting gnome running. My only problem left is that I'm not able to get my wireless card working. 



```
pciconf -lv | grep -i broadcom
    vendor     = 'Broadcom Corporation'
    device     = 'Broadcom Corporation [U]Dell Wireless 1390 WLAN Mini-PCI Card[/U] ([U][B]BCM4311[/B][/U])'
```


My card info is shown above. Can someone help me in getting it to work. I don't mind using ndis but I have no idea how to do it. I used ubuntu till yesterday, so never had a problem with the with the wireless driver. I tried bwi-firmware-kmod port, but it did not work. Any pointers regarding this will be of great help. 

Thanks.


----------



## richardpl (Feb 8, 2011)

Use bwn(4) driver with bw[red]n[/red]-firmware-kmod port.


----------



## freedesk (Feb 8, 2011)

richardpl said:
			
		

> Use bwn(4) driver with bw[red]n[/red]-firmware-kmod port.



Thanks for the reply. But I do not see any wlan0 in ifconfig

```
$ ifconfig 
fwe0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=8<VLAN_MTU>
	ether 02:24:1b:33:40:00
	ch 1 dma -1
fwip0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
	lladdr 0.24.1b.0.95.33.40.0.a.2.ff.fe.0.0.0.0
nfe0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=8<VLAN_MTU>
	ether 00:1b:24:74:c6:1c
	inet6 fe80::21b:24ff:fe74:c61c%nfe0 prefixlen 64 scopeid 0x3 
	inet 192.168.1.108 netmask 0xffffff00 broadcast 192.168.1.255
	media: Ethernet autoselect (100baseTX <full-duplex>)
	status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
	options=3<RXCSUM,TXCSUM>
	inet 127.0.0.1 netmask 0xff000000 
	inet6 ::1 prefixlen 128 
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
```

Here is what I did: 

```
$ cd /usr/ports/net/bwn-firmware-kmod/
$ sudo make install clean
```

after this I edited the /boot/loader.conf file (using the handbook as the ref):

```
$ cat /boot/loader.conf  
nvidia_load="YES"
[I]if_bwn_load="YES"
bwn_v4_ucode_load="YES"
wlan_scan_ap_load="YES"
wlan_scan_sta_load="YES"
wlan_wep_load="YES"
wlan_ccmp_load="YES"
wlan_tkip_load="YES"[/I]
```

rebooted the system but could not find wlan0.

Could not find anything about *bwn* or *wlan* in dmesg output (or I must have missed something) here is the dmesg output


```
$ dmesg > Desktop/dmesg_output
$ cat Desktop/dmesg_output
Copyright (c) 1992-2009 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 8.0-RELEASE #0: Sat Nov 21 15:48:17 UTC 2009
    root@almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: AMD Turion(tm) 64 X2 Mobile Technology TL-58 (1900.20-MHz 686-class CPU)
  Origin = "AuthenticAMD"  Id = 0x60f81  Stepping = 1
  Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2,HTT>
  Features2=0x2001<SSE3,CX16>
  AMD Features=0xea500800<SYSCALL,NX,MMX+,FFXSR,RDTSCP,LM,3DNow!+,3DNow!>
  AMD Features2=0x11f<LAHF,CMP,SVM,ExtAPIC,CR8,Prefetch>
real memory  = 1073741824 (1024 MB)
avail memory = 957300736 (912 MB)
ACPI APIC Table: <PTLTD  	 APIC  >
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
FreeBSD/SMP: 1 package(s) x 2 core(s)
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP): APIC ID:  1
ioapic0 <Version 1.1> irqs 0-23 on motherboard
kbd1 at kbdmux0
acpi0: <HPQOEM SLIC-MPC> on motherboard
acpi0: [ITHREAD]
acpi0: Power Button (fixed)
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1008-0x100b on acpi0
acpi_ec0: <Embedded Controller: GPE 0x10> port 0x62,0x66 on acpi0
acpi_hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on acpi0
Timecounter "HPET" frequency 25000000 Hz quality 900
acpi_button0: <Sleep Button> on acpi0
acpi_acad0: <AC Adapter> on acpi0
battery0: <ACPI Control Method Battery> on acpi0
acpi_lid0: <Control Method Lid Switch> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pci0: <memory, RAM> at device 0.0 (no driver attached)
isab0: <PCI-ISA bridge> at device 1.0 on pci0
isa0: <ISA bus> on isab0
pci0: <serial bus, SMBus> at device 1.1 (no driver attached)
pci0: <memory, RAM> at device 1.2 (no driver attached)
pci0: <processor> at device 1.3 (no driver attached)
ohci0: <OHCI (generic) USB controller> mem 0xf6486000-0xf6486fff irq 18 at device 2.0 on pci0
ohci0: [ITHREAD]
usbus0: <OHCI (generic) USB controller> on ohci0
ehci0: <EHCI (generic) USB 2.0 controller> mem 0xf6489000-0xf64890ff irq 22 at device 2.1 on pci0
ehci0: [ITHREAD]
usbus1: EHCI version 1.0
usbus1: <EHCI (generic) USB 2.0 controller> on ehci0
ohci1: <OHCI (generic) USB controller> mem 0xf6487000-0xf6487fff irq 18 at device 4.0 on pci0
ohci1: [ITHREAD]
usbus2: <OHCI (generic) USB controller> on ohci1
ehci1: <EHCI (generic) USB 2.0 controller> mem 0xf6489400-0xf64894ff irq 22 at device 4.1 on pci0
ehci1: [ITHREAD]
usbus3: EHCI version 1.0
usbus3: <EHCI (generic) USB 2.0 controller> on ehci1
atapci0: <nVidia nForce MCP67 UDMA133 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x30c0-0x30cf at device 6.0 on pci0
ata0: <ATA channel 0> on atapci0
ata0: [ITHREAD]
ata1: <ATA channel 1> on atapci0
ata1: [ITHREAD]
pci0: <multimedia, HDA> at device 7.0 (no driver attached)
pcib1: <ACPI PCI-PCI bridge> at device 8.0 on pci0
pci_link0: BIOS IRQ 10 for 2.5.INTA is invalid
pci_link1: BIOS IRQ 11 for 2.5.INTB is invalid
pci2: <ACPI PCI bus> on pcib1
fwohci0: <1394 Open Host Controller Interface> irq 9 at device 5.0 on pci2
fwohci0: [ITHREAD]
fwohci0: OHCI version 1.10 (ROM=0)
fwohci0: No. of Isochronous channels is 4.
fwohci0: EUI64 00:24:1b:00:95:33:40:00
fwohci0: Phy 1394a available S400, 1 ports.
fwohci0: Link S400, max_rec 2048 bytes.
firewire0: <IEEE1394(FireWire) bus> on fwohci0
dcons_crom0: <dcons configuration ROM> on firewire0
dcons_crom0: bus_addr 0x1c90000
fwe0: <Ethernet over FireWire> on firewire0
if_fwe0: Fake Ethernet address: 02:24:1b:33:40:00
fwe0: Ethernet address: 02:24:1b:33:40:00
fwip0: <IP over FireWire> on firewire0
fwip0: Firewire address: 00:24:1b:00:95:33:40:00 @ 0xfffe00000000, S400, maxrec 2048
fwohci0: Initiate bus reset
fwohci0: fwohci_intr_core: BUS reset
fwohci0: fwohci_intr_core: node_id=0x00000000, SelfID Count=1, CYCLEMASTER mode
pci2: <base peripheral, SD host controller> at device 5.1 (no driver attached)
pci2: <base peripheral> at device 5.2 (no driver attached)
pci2: <base peripheral> at device 5.3 (no driver attached)
pci2: <base peripheral> at device 5.4 (no driver attached)
atapci1: <nVidia nForce MCP67 SATA300 controller> port 0x30f0-0x30f7,0x30e4-0x30e7,0x30e8-0x30ef,0x30e0-0x30e3,0x30d0-0x30df mem 0xf6484000-
0xf6485fff irq 23 at device 9.0 on pci0
atapci1: [ITHREAD]
atapci1: AHCI v1.10 controller with 4 3Gbps ports, PM supported
ata2: <ATA channel 0> on atapci1
ata2: [ITHREAD]
ata3: <ATA channel 1> on atapci1
ata3: [ITHREAD]
ata4: <ATA channel 2> on atapci1
ata4: [ITHREAD]
ata5: <ATA channel 3> on atapci1
ata5: [ITHREAD]
nfe0: <NVIDIA nForce MCP67 Networking Adapter> port 0x30f8-0x30ff mem 0xf6488000-0xf6488fff,0xf6489c00-0xf6489cff,0xf6489800-0xf648980f irq 20 
at device 10.0 on pci0
miibus0: <MII bus> on nfe0
rlphy0: <RTL8201L 10/100 media interface> PHY 1 on miibus0
rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
nfe0: Ethernet address: 00:1b:24:74:c6:1c
nfe0: [FILTER]
nfe0: [FILTER]
nfe0: [FILTER]
nfe0: [FILTER]
nfe0: [FILTER]
nfe0: [FILTER]
nfe0: [FILTER]
nfe0: [FILTER]
pcib2: <ACPI PCI-PCI bridge> at device 12.0 on pci0
pci4: <ACPI PCI bus> on pcib2
pcib3: <ACPI PCI-PCI bridge> at device 13.0 on pci0
pci3: <ACPI PCI bus> on pcib3
pci3: <network> at device 0.0 (no driver attached)
vgapci0: <VGA-compatible display> mem 0xf5000000-0xf5ffffff,0xd0000000-0xdfffffff,0xf4000000-0xf4ffffff irq 16 at device 18.0 on pci0
nvidia0: <GeForce 7150M / nForce 630M> on vgapci0
vgapci0: child nvidia0 requested pci_enable_busmaster
vgapci0: child nvidia0 requested pci_enable_io
vgapci0: child nvidia0 requested pci_enable_io
nvidia0: [ITHREAD]
acpi_button1: <Power Button> on acpi0
acpi_tz0: <Thermal Zone> on acpi0
acpi_tz0: _CRT value is absurd, ignored (-273.2C)
atrtc0: <AT realtime clock> port 0x70-0x71 on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
atkbd0: [ITHREAD]
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: [ITHREAD]
psm0: model IntelliMouse, device ID 3
cpu0: <ACPI CPU> on acpi0
acpi_throttle0: <ACPI CPU Throttling> on cpu0
powernow0: <PowerNow! K8> on cpu0
cpu1: <ACPI CPU> on acpi0
acpi_throttle1: <ACPI CPU Throttling> on cpu1
acpi_throttle1: failed to attach P_CNT
device_attach: acpi_throttle1 attach returned 6
powernow1: <PowerNow! K8> on cpu1
pmtimer0 on isa0
orm0: <ISA Option ROM> at iomem 0xcf800-0xd0fff pnpid ORM0000 on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
ppc0: parallel port not found.
Timecounters tick every 1.000 msec
firewire0: 1 nodes, maxhop <= 0 cable IRM irm(0)  (me) 
firewire0: bus manager 0 
usbus0: 12Mbps Full Speed USB v1.0
usbus1: 480Mbps High Speed USB v2.0
usbus2: 12Mbps Full Speed USB v1.0
usbus3: 480Mbps High Speed USB v2.0
acpi_tz0: _CRT value is absurd, ignored (-273.2C)
ad4: 152627MB <WDC WD1600BEVS-60RST0 04.01G04> at ata2-master SATA150
ugen0.1: <nVidia> at usbus0
uhub0: <nVidia OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
ugen1.1: <nVidia> at usbus1
uhub1: <nVidia EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus1
ugen2.1: <nVidia> at usbus2
uhub2: <nVidia OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus2
ugen3.1: <nVidia> at usbus3
uhub3: <nVidia EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus3
uhub2: 2 ports with 2 removable, self powered
uhub0: 7 ports with 7 removable, self powered
SMP: AP CPU #1 Launched!
Root mount waiting for: usbus3 usbus1
uhub3: 2 ports with 2 removable, self powered
Root mount waiting for: usbus3 usbus1
ugen2.2: <Broadcom Corp> at usbus2
Root mount waiting for: usbus1
uhub1: 7 ports with 7 removable, self powered
Trying to mount root from ufs:/dev/ad4s1a
```

I'm not able to figure out how to get this working. Any suggestions?

Thanks.


----------



## wblock@ (Feb 8, 2011)

There's also a bwn_v4_lp_ucode required by some cards.  It should show a message if it needs that, but you may not see it without
`% dmesg -a`


----------



## freedesk (Feb 8, 2011)

wblock said:
			
		

> There's also a bwn_v4_lp_ucode required by some cards.  It should show a message if it needs that, but you may not see it without
> `% dmesg -a`



I tried dmesg -a earlier but it did not show anything. 
But next I added 
	
	



```
bwn_v4_lp_ucode
```
 in the /boot/loader.conf as shown below:

```
$ cat /boot/loader.conf 
nvidia_load="YES"
[I]if_bwn_load="YES"
[U]bwn_v4_lp_ucode_load="YES"[/U]
bwn_v4_ucode_load="YES"
wlan_scan_ap_load="YES"
wlan_scan_sta_load="YES"
wlan_wep_load="YES"
wlan_ccmp_load="YES"
wlan_tkip_load="YES"[/I]
```
Then I looked into 
	
	



```
dmesg -a
```
 and found the following lined for the bwn:

```
firmware_register: cannot register image bwn_v4_b0g0initvals5, firmware table fu
ll!
module_register_init: MOD_LOAD (bwn_v4_ucode_fw, 0xc1a16e70, 0) error 6
```

Please find the 
	
	



```
dmesg -a
```
 output attached. 

I also tried using only 
	
	



```
bwn_v4_lp_ucode_load="YES"
```
 without 
	
	



```
bwn_v4_ucode_load="YES"
```
 in the loader.conf But nothing happened.
So what else can be tried now? 


Thanks.


----------



## pbd (Feb 8, 2011)

freedesk said:
			
		

> But I do not see any wlan0 in ifconfig



Note that you need to create wlan device after your network card is recognized.


```
ifconfig [I]wlan0[/I] create wlandev [I]...[/I]
```

See the Hanbook.


----------



## thuglife (Feb 8, 2011)

I believe that you need this patch [r204849] for the firmware to load.


----------



## freedesk (Feb 8, 2011)

pbd said:
			
		

> Note that you need to create wlan device after your network card is recognized.
> 
> 
> ```
> ...



I tried but it always ends up like below:


```
ifconfig wlan0 create wlandev bwn0
ifconfig: SIOCIFCREATE2: Device not configured
```

is the device name correct (bwn0)? I'm not sure. If it is correct does it mean card not supported?



			
				pbd said:
			
		

> I believe that you need this patch [r204849] for the firmware to load.


How do we apply patches in the port system. I read in the hand book that the files directory contains the patches. So I just download the patch, name it to something, create a files directory, mv the patch downloaded to this directory and then make install. Is this correct. Does the makefile look in the files directory automatically, or do we have to change/add anything. 

Thanks.


----------



## thuglife (Feb 8, 2011)

Ok , it seems that you don't have bwn0.

Please do:
`# kldload if_bwn`
`# kldload if_bwi`

and post the output of `# ifconfig` and any relevant lines from `# dmesg`


----------



## freedesk (Feb 8, 2011)

thuglife said:
			
		

> Ok , it seems that you don't have bwn0.
> 
> Please do:
> `# kldload if_bwn`
> ...



When I do kldload (both of them) I get 
	
	



```
kldload: can't load if_bwi: No such file or directory
kldload: can't load if_bwn: No such file or directory
```

And no messages for them found in dmesg -a.

Am I doing something wrong?

Thanks


----------



## thuglife (Feb 8, 2011)

man if_bwn reveals that this driver appeared at 8.1 release, you are on 8.0 release?

```
FreeBSD 8.0-RELEASE #0: Sat Nov 21 15:48:17 UTC 2009
```

You will have to upgrade to 8.1
http://www.freebsd.org/doc/handbook/updating-freebsdupdate.html


----------



## richardpl (Feb 9, 2011)

thuglife is right. Next time do not misstate your FreeBSD version.


----------

