Everything worked fine under Ubuntu 13.08 using the STA proprietary driver. Under insistence of Ubuntu warning messages, i decided to upgrade to Ubuntu 14.04 only to see that the wireless circuitry does not respond anymore. I have tried all 4 kernel modules deemed compatible with the BCM4312 chipset but none of them worked.
At last resort, I decided to download the latest source code provided by Broadcom (corresponding to the BCM 4312 chipset) for 64bit architecture. I had to change some details in the file system to get the compilation to work. The compilation didn't show any serious warning but when trying to insert the resulting compiled driver into the kernel with the command "insmod", a fatal error appeared because of a "format" error. I tried to use "modprobe", no error messages were issued but it apparently failed because the network function is still unavailable and the ouput of lscpi command showed no kernel driver attached to the Broadcom wireless network controller.
LSCPI command ouput (irrelevant text truncated):
... 06:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11b/g LP-PHY [14e4:4315] (rev 01) Subsystem: Dell Wireless 1395 WLAN Mini-Card [1028:000b] Flags: bus master, fast devsel, latency 0, IRQ 11 Memory at f4000000 (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 1b-bf-44-ff-ff-db-00-16 Capabilities: [16c] Power Budgeting
07:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 02) Subsystem: Dell Device [1028:0273] Flags: bus master, fast devsel, latency 0, IRQ 44 I/O ports at 5000 [size=256] Memory at f8610000 (64-bit, prefetchable) [size=4K] Memory at f8600000 (64-bit, prefetchable) [size=64K] [virtual] Expansion ROM at f8620000 [disabled] [size=64K] Capabilities: [40] Power Management version 3 Capabilities: [50] MSI: Enable+ Count=1/2 Maskable- 64bit+ Capabilities: [70] Express Endpoint, MSI 01 Capabilities: [b0] MSI-X: Enable- Count=2 Masked- Capabilities: [d0] Vital Product Data Capabilities: [100] Advanced Error Reporting Capabilities: [140] Virtual Channel Capabilities: [160] Device Serial Number 00-00-00-00-00-00-00-00 Kernel driver in use: r8169 .... "
The actual error message i got with the command "insmod wl.ko" is "invalid module format"
wl.ko being the file obtained from the compilation of the driver source code supplied by Broadcom.
I uninstalled the kernel driver ( even if I doubt it has been installed / used by the system) using the command
apt-get purge bcmwl-kernel-source
(the terminal then displayed messages saying that the firmware-bc43-installer was recovered or downloaded to be installed)
I then installed the STA driver by entering the command
apt-get install linux-firmware-nonfree
I checked the /etc/modprobe.d/blacklist.conf file and uncommented the line blacklist bcm43xx, the only related to the wireless device/driver.
Then rebooted.
Now I still have no improvement:
# lspci -v |grep -13 Network
I/O ports at 18e0 [size=32]
Memory at f8500000 (32-bit, non-prefetchable) [size=2K]
Capabilities: [80] MSI: Enable+ Count=1/4 Maskable- 64bit-
Capabilities: [70] Power Management version 3
Capabilities: [a8] SATA HBA v1.0
Kernel driver in use: ahci
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 03)
Subsystem: Dell Device 0273
Flags: medium devsel, IRQ 10
Memory at c0500000 (32-bit, non-prefetchable) [size=256]
I/O ports at 1c20 [size=32]
06:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g LP-PHY (rev 01)
Subsystem: Dell Wireless 1395 WLAN Mini-Card
Flags: bus master, fast devsel, latency 0, IRQ 11
Memory at f4000000 (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 1b-bf-44-ff-ff-db-00-16
Capabilities: [16c] Power Budgeting <?>
07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 02)
#lshw
...
*-pci:2
description: PCI bridge
product: 82801H (ICH8 Family) PCI Express Port 4
vendor: Intel Corporation
physical id: 1c.3
bus info: pci@0000:00:1c.3
version: 03
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:42 ioport:4000(size=4096) memory:f4000000-f7ffffff ioport:fc000000(size=33554432)
*-network UNCLAIMED
description: Network controller
product: BCM4312 802.11b/g LP-PHY
vendor: Broadcom Corporation
physical id: 0
bus info: pci@0000:06:00.0
version: 01
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list
configuration: latency=0
resources: memory:f4000000-f4003fff
...
# lsmod
Module Size Used by
zram 18439 2
dm_crypt 22924 1
coretemp 13355 0
dell_wmi 12681 0
sparse_keymap 13890 1 dell_wmi
dell_laptop 17369 0
dcdbas 14397 1 dell_laptop
uvcvideo 80847 0
videobuf2_vmalloc 13056 1 uvcvideo
videobuf2_memops 13202 1 videobuf2_vmalloc
videobuf2_core 40542 1 uvcvideo
videodev 129379 2 uvcvideo,videobuf2_core
microcode 22939 0
joydev 17377 0
serio_raw 13215 0
lpc_ich 17061 0
parport_pc 28152 0
ppdev 17073 0
lp 17759 0
parport 46345 3 lp,ppdev,parport_pc
mac_hid 13205 0
psmouse 95934 0
ahci 25731 2
libahci 31394 1 ahci
sdhci_pci 18619 0
firewire_ohci 40315 0
sdhci 32686 1 sdhci_pci
r8169 67706 0
firewire_core 64566 1 firewire_ohci
i915 605700 3
crc_itu_t 12707 1 firewire_core
i2c_algo_bit 13413 1 i915
drm_kms_helper 49394 1 i915
drm 286260 4 i915,drm_kms_helper
wmi 19070 1 dell_wmi
video 19390 1 i915
Your 4312 Broadcom [4315] can use either the b43 driver or the proprietary STA (wl) driver according to b43-Linux Wireless. The b43 driver is present by default, but needs you to install the proprietary firmware, which you can do by installing package linux-firmware-nonfree. If for some reason that firmware doesn't work with the [4315], you can run the b43 cutter and installer packages you mentioned. The end result should be a set of firmware files in directory /lib/firmware/b43 Wireless should pick up the driver on the next boot, provided you are not suppressing the b43 driver with a "blacklist b43" line in any file in /etc/modprobe.d. Check for any such lines and comment them out. They should be removed if you purge the STA package files, but check yourself just to be sure.
I have no recent experience with the STA driver, but just using the Additional DRivers Dash selection should add it (when you are on a wired connection obviously). In that case, there is no need for any firmware files since they are included in the STA driver itself (that's where the b43 cutter gets them from).