# kernel 2.6.24 and bcm43xx

## sian

Hello all,

I tried to upgrade to kernel 2.6.24 and I use ndiswrapper 1.51 to connect my laptop to internet (bcm4318).

I also tried with the native driver from the kernel but eth1 was not recognized (on my laptop eth1 is the wifi interface).

Do you have any clue ?

Regards and thanks in advance.

PS : it worked fine with 2.6.23

----------

## coolsnowmen

did you build b43 as a module (or perhaps b43 legacy), did you install the correct firmware with fwcutter?

----------

## robnotts

The

```
03:00.0 Network controller: Broadcom Corporation BCM4312 802.11a/b/g (rev 01)

```

is one of the things that kernel-2.6.24 works very well. You need different firmware files for the b43 or b43legacy drivers than you did with the old bcm43xx drivers in the previous kernels (and have to be put in a slightly different place)

```
gentoo64-laptop ~ # ls /lib/firmware/b43/

a0g0bsinitvals4.fw   a0g1initvals13.fw    b0g0initvals4.fw    ucode11.fw

a0g0bsinitvals5.fw   a0g1initvals5.fw     b0g0initvals5.fw    ucode13.fw

a0g0initvals4.fw     b0g0bsinitvals13.fw  lp0bsinitvals13.fw  ucode4.fw

a0g0initvals5.fw     b0g0bsinitvals4.fw   lp0initvals13.fw    ucode5.fw

a0g1bsinitvals13.fw  b0g0bsinitvals5.fw   pcm4.fw

a0g1bsinitvals5.fw   b0g0initvals13.fw    pcm5.fw

gentoo64-laptop ~ #
```

I've moved away from ndiswrapper now that the in-kernel driver works well.

Rob.

----------

## sian

Thanks for your answers ;

I did like in the https://forums.gentoo.org/viewtopic-t-547687.html post

I succeed to modprobe b43 and ls /lib/firmware/b43 gives :

 *Quote:*   

> a0g0bsinitvals4.fw   a0g1initvals5.fw     lp0bsinitvals13.fw  pcm5.fw
> 
> a0g0bsinitvals5.fw   a0g1initvals9.fw     lp0bsinitvals14.fw  ucode11.fw
> 
> a0g0bsinitvals9.fw   b0g0bsinitvals13.fw  lp0bsinitvals15.fw  ucode13.fw
> ...

 

I still have the problem that it does not recognize eth1 when I do ifconfig eth1 up...

----------

## robnotts

Can you show us the output of 

```
dmesg
```

There may be an error hidden in there... might give us some clue as to how to proceed.

Rob

(Off to bed now, 2300 here in the UK, will have a quick read in the morning if I have time, otherwise will be when I get back from work)

----------

## robnotts

Just thinking, you sure it is eth1? Mine seems to be called wlan0_rename due to a problem with udev.

Rob.

----------

## salivian

I am having a slightly different issue.

I have a bcm4318 card from asus, everything has been working properly under 2.6.23 with bcm43xx driver

Under 2.6.24, the bcm43xx driver does not create any network interface ... no eth0 wlan0 ... unless I first modprobe b43, unload b43, then reload bcm43xx, once eth or wlan show up it works as it was under older kernels.

With bt43, the interface is good , but it never authenticate with my mac restricted router using the iwconfig and WEP (exact same config under 2.6.23) ... it showed messages with authentication timeout and something like mac ff:ff:ff:ff:ff, so I am not sure if it's reporting the mac address properly to my router.

All my bt43 or bcm43xx firmware are downloads from the official site.

Thanks in advance for any suggestions!

----------

## robnotts

Give us the output of

```
ifconfig
```

and

```
iwconfig
```

as well please   :Very Happy: 

----------

## salivian

by the way if you see something like wlan0_rename, just remove /etc/udev/rules.d/70-persistent-net.rules, udev will regen that file on your next boot properly.   then the working interface should be wlan0...

----------

## salivian

with the b43 driver

dmesg

```

b43-phy0: Broadcom 4318 WLAN found

b43-phy0 debug: Found PHY: Analog 3, Type 2, Revision 7

b43-phy0 debug: Found Radio: Manuf 0x17F, Version 0x2050, Revision 8

phy0: Selected rate control algorithm 'simple'

b43-phy0 debug: Loading firmware version 351.126 (2006-07-29 05:54:02)

b43-phy0 debug: Chip initialized

b43-phy0 debug: 32-bit DMA initialized

b43-phy0 debug: Wireless interface started

b43-phy0 debug: Adding Interface type 2

ADDRCONF(NETDEV_UP): wlan0: link is not ready

b43-phy0 debug: Using hardware based encryption for keyidx: 0, mac: ff:ff:ff:ff:ff:ff

b43-phy0: Radio turned off by software

b43-phy0 debug: Disabling hardware based encryption for keyidx: 0, mac: ff:ff:ff:ff:ff:ff

b43-phy0 debug: Removing Interface type 2

b43-phy0 debug: Wireless interface stopped

b43-phy0 debug: DMA-32 0x0200 (RX) max used slots: 0/64

b43-phy0 debug: DMA-32 0x02A0 (TX) max used slots: 0/128

b43-phy0 debug: DMA-32 0x0280 (TX) max used slots: 0/128

b43-phy0 debug: DMA-32 0x0260 (TX) max used slots: 0/128

b43-phy0 debug: DMA-32 0x0240 (TX) max used slots: 0/128

b43-phy0 debug: DMA-32 0x0220 (TX) max used slots: 22/128

b43-phy0 debug: DMA-32 0x0200 (TX) max used slots: 0/128

b43-phy0 debug: Loading firmware version 351.126 (2006-07-29 05:54:02)

b43-phy0 debug: Chip initialized

b43-phy0 debug: 32-bit DMA initialized

b43-phy0 debug: Wireless interface started

b43-phy0 debug: Adding Interface type 2

b43-phy0 debug: Using hardware based encryption for keyidx: 0, mac: ff:ff:ff:ff:ff:ff

ADDRCONF(NETDEV_UP): wlan0: link is not ready

b43-phy0 debug: Disabling hardware based encryption for keyidx: 0, mac: ff:ff:ff:ff:ff:ff

b43-phy0 debug: Using hardware based encryption for keyidx: 0, mac: ff:ff:ff:ff:ff:ff

b43-phy0: Radio turned off by software

b43-phy0 debug: Disabling hardware based encryption for keyidx: 0, mac: ff:ff:ff:ff:ff:ff

b43-phy0 debug: Removing Interface type 2

b43-phy0 debug: Wireless interface stopped

b43-phy0 debug: DMA-32 0x0200 (RX) max used slots: 0/64

b43-phy0 debug: DMA-32 0x02A0 (TX) max used slots: 0/128

b43-phy0 debug: DMA-32 0x0280 (TX) max used slots: 0/128

b43-phy0 debug: DMA-32 0x0260 (TX) max used slots: 0/128

b43-phy0 debug: DMA-32 0x0240 (TX) max used slots: 0/128

b43-phy0 debug: DMA-32 0x0220 (TX) max used slots: 22/128

b43-phy0 debug: DMA-32 0x0200 (TX) max used slots: 0/128

```

iwconfig 0 Link no signal

```

lo        no wireless extensions.

eth0      no wireless extensions.

wmaster0  no wireless extensions.

wlan0     IEEE 802.11g  ESSID:"outmanet"

          Mode:Managed  Frequency:2.462 GHz  Access Point: Not-Associated

          Tx-Power=off

          Retry min limit:7   RTS thr:off   Fragment thr=2346 B

          Encryption key:D3F2-3EF8-E217-428C-D694-1910-A7

          Link Quality:0  Signal level:0  Noise level:0

          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0

          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

```

ifconfig

```

eth0      Link encap:Ethernet  HWaddr 00:19:DB:F9:5F:F9

          UP BROADCAST MULTICAST  MTU:1500  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:1000

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

          Interrupt:251 Base address:0x2000

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: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)

wlan0     Link encap:Ethernet  HWaddr 00:1E:8C:28:0A:0B

          UP BROADCAST MULTICAST  MTU:1500  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:1000

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

wmaster0  Link encap:UNSPEC  HWaddr 00-1E-8C-28-0A-0B-60-00-00-00-00-00-00-00-00-00

          UP BROADCAST RUNNING MULTICAST  MTU:1500  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:1000

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

```

----------

## sian

Here is my dmesg :

```

b43-phy0: Broadcom 4318 WLAN found

b43-phy0 debug: Found PHY: Analog 3, Type 2, Revision 7

b43-phy0 debug: Found Radio: Manuf 0x17F, Version 0x2050, Revision 8

b43-phy0 debug: DebugFS (CONFIG_DEBUG_FS) not enabled in kernel config

phy0: Selected rate control algorithm 'simple'

phy0: Failed to initialize wep

b43: probe of ssb0:0 failed with error -12

EXT3 FS on hda3, internal journal

usbcore: registered new interface driver usbserial

drivers/usb/serial/usb-serial.c: USB Serial Driver core

drivers/usb/serial/usb-serial.c: USB Serial support registered for

PocketPC PDA

drivers/usb/serial/ipaq.c: USB PocketPC PDA driver v0.5

usbcore: registered new interface driver ipaq

Adding 1807304k swap on /dev/hda2.  Priority:-1 extents:1

across:1807304k

ndiswrapper version 1.51 loaded (smp=yes, preempt=no)

usbcore: registered new interface driver ndiswrapper

```

and ifconfig eth1 up gives :

```

eth1: unknown interface: No such device

```

----------

## robnotts

 *salivian wrote:*   

> by the way if you see something like wlan0_rename, just remove /etc/udev/rules.d/70-persistent-net.rules, udev will regen that file on your next boot properly.   then the working interface should be wlan0...

 

Thanks, sorted out my error... now fully up and running!

Rob.

----------

## robnotts

 *sian wrote:*   

> Here is my dmesg :
> 
> ```
> 
> b43-phy0: Broadcom 4318 WLAN found
> ...

 

It looks like you haven't got the required encryption options enabled in your kernel, that is the only reason I can see that WEP would fail to initialise.

Rob.

----------

## salivian

so ... I didn't have the wep fail to initialized error ... however I am also not able to connect to a wep ap and not aware of specific kernel options for wep for mac80211 ... I know there is one for the old ieee80211 and softmac stack.

----------

## coolsnowmen

@salivian

WEP:

  if the old way is any clue, you might need

CRYPTO-->

   CRYPTO_ARC4 && CRYPTO_ECB

Library routines-->

   CRC32

----------

## robnotts

Beat me to it coolsnowman, but yes, ecb, arc4 and ssb seem to be required modules...

```

gentoo64-laptop ~ # lsmod

Module                  Size  Used by

snd_pcm_oss            41760  0

snd_mixer_oss          16576  1 snd_pcm_oss

snd_seq_dummy           3396  0

snd_seq_oss            32704  0

snd_seq_midi_event      7552  1 snd_seq_oss

snd_seq                55424  6 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event

snd_seq_device          7316  3 snd_seq_dummy,snd_seq_oss,snd_seq

usbhid                 21060  0

quickcam              112076  0

videodev               27328  1 quickcam

v4l2_common            18432  1 videodev

v4l1_compat            13572  1 videodev

arc4                    2240  2

ecb                     3328  2

b43                   108200  0

mac80211              123788  1 b43

cfg80211               12944  1 mac80211

sr_mod                 16484  0

cdrom                  36968  1 sr_mod

nvidia               8845668  28

rtc                    12472  0

sdhci                  17284  0

mmc_core               50248  1 sdhci

ricoh_mmc               3712  0

firewire_ohci          18496  0

firewire_core          41664  1 firewire_ohci

crc_itu_t               2240  1 firewire_core

snd_hda_intel         350436  5

snd_pcm                81288  4 snd_pcm_oss,snd_hda_intel

snd_timer              21896  4 snd_seq,snd_pcm

snd                    56488  15 snd_pcm_oss,snd_mixer_oss,snd_seq_oss,snd_seq,snd_seq_device,snd_hda_intel,snd_pcm,snd_timer

soundcore               7520  1 snd

snd_page_alloc          8656  2 snd_hda_intel,snd_pcm

battery                12808  0

ehci_hcd               32844  0

ac                      5384  0

forcedeth              50572  0

button                  7584  0

ohci_hcd               23044  0

i2c_nforce2             6400  0

sg                     24592  0

ssb                    30788  1 b43

i2c_core               21952  2 nvidia,i2c_nforce2

usbcore               140592  5 usbhid,quickcam,ehci_hcd,ohci_hcd

pata_amd               12740  0

```

----------

## sian

Hello,

I compiled the 2.6.24 kernel with encryption. I removed also 70-persistent-net so that I have now wlan0.

dmesg gives :

```

ite+0x62/0x67

 [<c0104de6>] sysenter_past_esp+0x5f/0x85

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

WARNING: at drivers/net/wireless/b43/dma.c:1098 parse_cookie()

Pid: 4367, comm: syslog-ng Not tainted 2.6.24-gentoo #6

 [<f8865998>] b43_dma_handle_txstatus+0xe0/0x349 [b43]

 [<f8856acd>] b43_interrupt_tasklet+0x64a/0x6d4 [b43]

 [<c012b68d>] tasklet_action+0x46/0x90

 [<c012b2ae>] __do_softirq+0x5d/0xc1

 [<c012b344>] do_softirq+0x32/0x36

 [<c0106eaf>] do_IRQ+0x7e/0x93

 [<c0166156>] sys_stat64+0x1e/0x23

 [<c01057f7>] common_interrupt+0x23/0x28

 [<c01640fc>] sys_write+0x62/0x67

 [<c0104de6>] sysenter_past_esp+0x5f/0x85

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

HW CONFIG: channel=2 freq=2417 phymode=2
```

And by the way, what is your /etc/wpa_supplicant/wpa_supplicant.conf and /etc/conf.d/net ?

----------

## robnotts

Both are effectively empty - don't use WPA, and use NetworkManager/knetworkmanager to control the wireless link, as use the laptop on the move, not just in the home.

Rob.

----------

## salivian

so far I have tried to enable all the options in kernel ... b43 does not work .... bcm43xx in 2.6.24 does not create an interface ... unless I load and unload b43 before bcm43xx ... well ... I guess I am sticking with 2.6.23 for now ...

----------

## salivian

ok ok ... I found this from another post ... bcm43xx does not work when ssb is enabled ...  disabling ssb fixes the problem ... now the problem is back to b43 ....

----------

## pappy_mcfae

 *salivian wrote:*   

> ok ok ... I found this from another post ... bcm43xx does not work when ssb is enabled ...  disabling ssb fixes the problem ... now the problem is back to b43 ....

 

Which is all well and good, until you consider that when you set either the b43 or the b43legacy (bcm43xx) as operational in the kernel, ssb is automatically selected. Catch 22, eh?

Oh yeah, and there's the fact that ndiswrapper doesn't work under the 2.6.24 kernel (vanilla and gentoo flavors). I sometimes wonder if the folks who make the kernels actually own machines with broadcom wireless adapters. I have my doubts.

I'll stick with 2.6.22.16 and ndiswrapper until they get this right.

Blessed be!

Pappy

----------

## salivian

so the only way to get around this is to blacklist b43 and ssb modules, prevent udev from loading them at start ...  then fiddle around with the modules yourself.

----------

## pappy_mcfae

 *salivian wrote:*   

> so the only way to get around this is to blacklist b43 and ssb modules, prevent udev from loading them at start ...  then fiddle around with the modules yourself.

 

That has possibilities, so does waiting until I see what happens with my bug report on this issue. In any event, the kernels currently running on my laptop machines, the machines most affected, are just fine as they are. While it appears there is interesting stuff in the 2.6.24 kernel, it doesn't make sense to have the goodies if the basics aren't working...don't you think?

I always like to try out new kernels when they come out. If I find one that doesn't suit my needs (at least at the moment), I use my old kernels, or I wait until they fix the bugs in the new kernel versions. Of course, that didn't work so well with 2.6.23.x and ndiswrapper, but the 2.6.22.x was being developed in parallel with it, so it was no problem. I just hope they haven't abandoned the 2.6.22.x line yet.

Blessed be!

Pappy

----------

