# Broadcom 4318 problem

## no.13

Hi!

I've installed gentoo a few weeks ago on my laptop and everything appeared to be fine up until now... My pcmcia wireless card works perfectly only when I'm in range of my home network, otherwise the interface isn't started at boot and gives SIOCSIFFLAGS: Unknown error 132 while starting either by net.wlan0 start or ifconfig wlan0 up. Same applies if I try to restart the interface even while I'm in range of my network.

I'm using b43-fwcutter-v011 from the gentoo rep, and 4.150.10.5 wl_apsta_mimo driver

dmesg:

```

[   28.358084] b43 ssb0:0: firmware: requesting b43/ucode5.fw

[   28.533239] b43 ssb0:0: firmware: requesting b43/pcm5.fw

[   28.545993] b43 ssb0:0: firmware: requesting b43/b0g0initvals5.fw

[   28.564776] b43 ssb0:0: firmware: requesting b43/b0g0bsinitvals5.fw

[   28.691070] b43-phy0: Loading firmware version 410.2160 (2007-05-26 15:32:10)

[   28.709098] b43-phy0 debug: Chip initialized

[   28.709397] b43-phy0 debug: 32-bit DMA initialized

[   28.718805] Registered led device: b43-phy0::tx

[   28.719171] Registered led device: b43-phy0::rx

[   28.719407] Registered led device: b43-phy0::radio

[   28.719457] b43-phy0 debug: Wireless interface started

[   28.739184] b43-phy0 debug: Adding Interface type 2

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

[   31.956374] wlan0: authenticate with AP 00:18:39:28:11:4c

[   31.958201] wlan0: authenticate with AP 00:18:39:28:11:4c

[   31.958410] wlan0: authenticated

[   31.958416] wlan0: associate with AP 00:18:39:28:11:4c

!!!!!!!!!!!!![   31.961496] b43-phy0 ERROR: PHY transmission error

[   31.963469] wlan0: RX AssocResp from 00:18:39:28:11:4c (capab=0x431 status=0 aid=1)

[   31.963479] wlan0: associated

```

[   31.961496] b43-phy0 ERROR: PHY transmission error

This error appears on startup, although I haven't noticed any side effects

After net.wlan0 restart:

```

[55775.179075] wlan0: deauthenticating by local choice (reason=3)

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

[55775.181344] b43-phy0 debug: Removing Interface type 2

[55775.181732] b43-phy0 debug: Wireless interface stopped

[55775.182540] b43-phy0 debug: DMA-32 rx_ring: Used slots 8/64, Failed frames 0/0 = 0.0%, Average tries 0.00

[55775.182613] b43-phy0 debug: DMA-32 tx_ring_AC_BK: Used slots 0/256, Failed frames 0/0 = 0.0%, Average tries 0.00

[55775.184037] b43-phy0 debug: DMA-32 tx_ring_AC_BE: Used slots 66/256, Failed frames 119/2202806 = 0.0%, Average tries 1.04

[55775.186035] b43-phy0 debug: DMA-32 tx_ring_AC_VI: Used slots 0/256, Failed frames 0/0 = 0.0%, Average tries 0.00

[55775.188038] b43-phy0 debug: DMA-32 tx_ring_AC_VO: Used slots 4/256, Failed frames 0/15 = 0.0%, Average tries 1.00

[55775.190034] b43-phy0 debug: DMA-32 tx_ring_mcast: Used slots 0/256, Failed frames 0/0 = 0.0%, Average tries 0.00

```

Any help will be greatly appreciated!Last edited by no.13 on Thu Apr 01, 2010 2:57 pm; edited 1 time in total

----------

## Dagger

I think you're using really old firmware.

Also some people reported really good results with net-wireless/broadcom-sta

----------

## no.13

Thanks for your response!  :Smile:  I'll try that

Hmm I can't emerge it - 404 Not Found :/

```

>>> Emerging (1 of 1) net-wireless/broadcom-sta-5.10.91.9.3-r3

>>> Downloading 'http://www.broadcom.com/docs/linux_sta/hybrid-portsrc-x86_32-v5.10.91.9.3.tar.gz'

--2010-04-01 17:18:46--  http://www.broadcom.com/docs/linux_sta/hybrid-portsrc-x86_32-v5.10.91.9.3.tar.gz

Resolving www.broadcom.com... 208.70.88.55

Connecting to www.broadcom.com|208.70.88.55|:80... connected.

HTTP request sent, awaiting response... 404 Not Found

2010-04-01 17:18:48 ERROR 404: Not Found.

!!! Couldn't download 'hybrid-portsrc-x86_32-v5.10.91.9.3.tar.gz'. Aborting.

 * Fetch failed for 'net-wireless/broadcom-sta-5.10.91.9.3-r3', Log file:

 *  '/var/tmp/portage/net-wireless/broadcom-sta-5.10.91.9.3-r3/temp/build.log'

>>> Failed to emerge net-wireless/broadcom-sta-5.10.91.9.3-r3

```

And BTW i think it wont work for my devce

----------

## cach0rr0

looks like you haven't synced in a while  :Wink: 

latest is http://www.broadcom.com/docs/linux_sta/hybrid-portsrc-x86_64-v5.60.48.36.tar.gz

They're all ~arch, so the above should be the one that gets pulled. 

e.g.

```

>>> Fetching (1 of 1) net-wireless/broadcom-sta-5.60.48.36

>>> Downloading 'http://www.broadcom.com/docs/linux_sta/hybrid-portsrc-x86_64-v5.60.48.36.tar.gz'

--2010-04-01 14:44:22--  http://www.broadcom.com/docs/linux_sta/hybrid-portsrc-x86_64-v5.60.48.36.tar.gz

Resolving www.broadcom.com... 208.70.88.55

Connecting to www.broadcom.com|208.70.88.55|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 884584 (864K) [application/x-gzip]

Saving to: `/usr/portage/distfiles/hybrid-portsrc-x86_64-v5.60.48.36.tar.gz'

100%[======================================================================================================================================================>] 884,584     1.01M/s   in 0.8s

2010-04-01 14:44:23 (1.01 MB/s) - `/usr/portage/distfiles/hybrid-portsrc-x86_64-v5.60.48.36.tar.gz' saved [884584/884584]

 * hybrid-portsrc-x86_64-v5.60.48.36.tar.gz RMD160 SHA1 SHA256 size ;-) ...                                                                                                              [ ok ]

 * checking ebuild checksums ;-) ...                                                                                                                                                     [ ok ]

 * checking auxfile checksums ;-) ...                                                                                                                                                    [ ok ]

 * checking miscfile checksums ;-) ...  

```

----------

## d2_racing

You should run this :

```

# emerge --sync

# emerge -av broadcom-sta

```

----------

## no.13

Hmmm I've installed new drivers(4.178.*) from linux wireless, recompiled the kernel and updated my system(took a whole night - yeah i was desperate  :Razz: )... Nothing helped but I noticed something interesting this morning - everything runs like charm if not run by the net.wlan0 startscript. Running net.wlan0 results in a buggy connection with a phy0 error and blocking the iface(SIOCSIFFLAGS: Unknown error 132 when touched :/) until reboot. However, if I connect by hand everything's fine (no errors at all); so I guess the drivers are fine.

It seems to me that I somehow must've screwed up net.wlan0, although I have no idea how...

I emerged broadcom-sta but it complained that I had b43 and other things set, so I unmerged it. Do I have to remove b43 from kernel in order to make it work? BTW I think that my card(Broadcom 4318) is not supported by this driver unfortunately  :Sad: .

----------

## cach0rr0

 *no.13 wrote:*   

> 
> 
> I emerged broadcom-sta but it complained that I had b43 and other things set, so I unmerged it. Do I have to remove b43 from kernel in order to make it work? BTW I think that my card(Broadcom 4318) is not supported by this driver unfortunately .

 

Yip. B43 and SSB should be removed completely, or, you should blacklist those modules. 

There's some other kernel options you need - I discussed the options needed in relative detail here, so going to save myself a bit of typing  :Smile: 

https://forums.gentoo.org/viewtopic-t-816158-highlight-broadcomsta.html

----------

## no.13

I tried broadcom-sta driver and it doesn't work for me (thx anyway). Let's assume it's not a driver problem... Any ideas?

----------

## d2_racing

Yes, can you post this :

```

# ifconfig -a

# iwconfig

# cat /etc/conf.d/net

# iwlist scan

```

----------

## no.13

ifconfig -a:

```

eth0      Link encap:Ethernet  HWaddr 00:02:3f:36:94:30  

          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)

lo        Link encap:Local Loopback  

          inet addr:127.0.0.1  Mask:255.0.0.0

          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:1d:7e:e7:59:87  

          inet addr:192.168.1.102  Bcast:192.168.1.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

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

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

          collisions:0 txqueuelen:1000 

          RX bytes:4335138 (4.1 MiB)  TX bytes:908961 (887.6 KiB)

wmaster0  Link encap:UNSPEC  HWaddr 00-1D-7E-E7-59-87-00-00-00-00-00-00-00-00-00-00  

          UP RUNNING  MTU:0  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)

```

iwconfig:

```

lo        no wireless extensions.

eth0      no wireless extensions.

wmaster0  no wireless extensions.

wlan0     IEEE 802.11bg  ESSID:"linksys"  

          Mode:Managed  Frequency:2.462 GHz  Access Point: 00:18:39:28:22:4E   

          Bit Rate=54 Mb/s   Tx-Power=27 dBm   

          Retry  long limit:7   RTS thr:off   Fragment thr:off

          Encryption key:D884-36AD-95

          Power Management:off

          Link Quality=51/70  Signal level=-59 dBm  Noise level=-68 dBm

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

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

```

/etc/conf.d/net:

```

# This blank configuration will automatically use DHCP for any net.*

# scripts in /etc/init.d.  To create a more complete configuration,

# please review /etc/conf.d/net.example and save your configuration

# in /etc/conf.d/net (this file :]!).

modules=( "iwconfig" )

config_wlan0=( "dhcp" )

config_eth0=( "dhcp" )

dhcpcd_eth0="-t 5"

dhcpcd_wlan0="-t 5"

##funkcje##

preup()

{

  if ethtool ${IFACE} | grep -q 'Link detected: no'; then

    ewarn "No link on ${IFACE}, aborting configuration"

    return 1

  fi

  return 0

}

predown()

{

  if is_net_fs /; then

    eerror "root filesystem is network mounted --can't stop ${IFACE}"

    return 1

  fi

  return 0

}

postup()

{

  return 0

}

postdown()

{

  return 0

}

##Sieci z kluczami##

key_linksys="********** enc open"

```

iwlist scan:

```

lo        Interface doesn't support scanning.

eth0      Interface doesn't support scanning.

wmaster0  Interface doesn't support scanning.

wlan0     Scan completed :

          Cell 01 - Address: 00:18:39:28:22:4E

                    Channel:11

                    Frequency:2.462 GHz (Channel 11)

                    Quality=38/70  Signal level=-72 dBm  

                    Encryption key:on

                    ESSID:"linksys"

                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s

                    Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s

                              36 Mb/s; 48 Mb/s; 54 Mb/s

                    Mode:Master

                    Extra:tsf=000003bacc047bf8

                    Extra: Last beacon: 91ms ago

                    IE: Unknown: 00076C696E6B737973

                    IE: Unknown: 010482848B96

                    IE: Unknown: 03010B

                    IE: Unknown: 2A0100

                    IE: Unknown: 32088C129824B048606C

```

The above output was generated after the first net.wlan start

Putting the iface down and up or issueing net.wlan0 restart now would result in the iface giving Unknown error 132 when started

----------

## d2_racing

Can you post this :

```

# rc-status

# rc-update

```

----------

## no.13

rc-status:

```

Runlevel: default

 cupsd                                                              [ started  ]

 gpm                                                                [ started  ]

 hald                                                               [ started  ]

 local                                                              [ started  ]

 netmount                                                           [ started  ]

 syslog-ng                                                          [ started  ]

 udev-postmount                                                     [ started  ]

 vixie-cron                                                         [ started  ]

```

rc-update show:

```

           alsasound | boot                          

            bootmisc | boot                          

             checkfs | boot                          

           checkroot | boot                          

               clock | boot                          

         consolefont | boot                          

               cupsd |      default                  

                 gpm |      default                  

                hald |      default                  

            hostname | boot                          

             keymaps | boot                          

               local |      default nonetwork        

          localmount | boot                          

             modules | boot                          

              net.lo | boot                          

            netmount |      default                  

           rmnologin | boot                          

           syslog-ng |      default                  

      udev-postmount |      default                  

             urandom | boot                          

          vixie-cron |      default

```

BTW should net.wlan and eth start on boot even when not in rc?

----------

## d2_racing

Are you using baselayout 1 or 2 ?

Can you post this :

```

# cat /etc/rc.conf

# cat /etc/conf.d/rc

```

----------

## no.13

 *d2_racing wrote:*   

> Are you using baselayout 1 or 2 ?

 

Am I using... what what or what? :Razz: 

EDIT: I've no idea, how can I check it?

EDIT2: Emerge says: baselayout-1.12.13

# cat /etc/rc.conf

```

# /etc/rc.conf: Global startup script configuration settings

# UNICODE specifies whether you want to have UNICODE support in the console.  

# If you set to yes, please make sure to set a UNICODE aware CONSOLEFONT and 

# KEYMAP in the /etc/conf.d/consolefont and /etc/conf.d/keymaps config files.

UNICODE="yes"

# Set EDITOR to your preferred editor.

# You may use something other than what is listed here.

EDITOR="/bin/nano"

#EDITOR="/usr/bin/vim"

#EDITOR="/usr/bin/emacs"

# DISPLAYMANAGER has moved to /etc/conf.d/xdm

# XSESSION is a new variable to control what window manager to start

# default with X if run with xdm, startx or xinit.  The default behavior

# is to look in /etc/X11/Sessions/ and run the script in matching the

# value that XSESSION is set to.  The support scripts are smart enough to

# look in all bin directories if it cant find a match in /etc/X11/Sessions/,

# so setting it to "enlightenment" can also work.  This is basically used

# as a way for the system admin to configure a default system wide WM,

# allthough it will work if the user export XSESSION in his .bash_profile, etc.

#

# NOTE:  1) this behaviour is overridden when a ~/.xinitrc exists, and startx

#           is called.

#        2) even if ~/.xsession exists, if XSESSION can be resolved, it will

#           be executed rather than ~/.xsession, else KDM breaks ...

#

# Defaults depending on what you install currently include:

#

# Gnome - will start gnome-session

# kde-<version> - will start startkde (look in /etc/X11/Sessions/)

# Xfce4 - will start a XFCE4 session

# Xsession - will start a terminal and a few other nice apps

XSESSION="Xfce4"

```

# cat /etc/conf.d/rc

```

# /etc/conf.d/rc: Global config file for the Gentoo RC System

# This is the number of tty's used in most of the rc-scripts (like

# consolefont, numlock, etc ...)

RC_TTY_NUMBER=12

# Set to "yes" if you want the rc system to try and start services

# in parallel for a slight speed improvement. NOTE: When RC_PARALLEL_STARTUP

# is enabled, init script output is replaced with simple "service foo

# starting/stopping" messages so that output is not mixed up.

# You can stop this from happening on the command line by passing --verbose

# to the init script or by setting RC_VERBOSE="yes" below.

RC_PARALLEL_STARTUP="no"

# Set RC_INTERACTIVE to "yes" and you'll be able to press the I key during

# boot so you can choose to start specific services. Set to "no" to disable

# this feature.

RC_INTERACTIVE="yes"

# Do we allow services to be hotplugged? If not, set to RC_HOTPLUG="no"

# NOTE: This does not affect anything hotplug/udev related, just the

# starting/stopping of the init.d service triggered by hotplug.

RC_HOTPLUG="yes"

# Dynamic /dev managers can trigger coldplug events which cause services to

# start before we are ready for them. If this happens, we can defer these

# services to start in the boot runlevel. Set RC_COLDPLUG="no" if you don't

# want this.

# NOTE: This also affects module coldplugging in udev-096 and higher

# If you want module coldplugging but not coldplugging of services then you

# can set RC_COLDPLUG="yes" and RC_PLUG_SERVICES="!*"

RC_COLDPLUG="yes"

# Some people want a finer grain over hotplug/coldplug. RC_PLUG_SERVICES is a

# list of services that are matched in order, either allowing or not. By

# default we allow services through as RC_COLDPLUG/RC_HOTPLUG has to be yes

# anyway.

# Example - RC_PLUG_SERVICES="net.wlan !net.*"

# This allows net.wlan and any service not matching net.* to be plugged.

RC_PLUG_SERVICES=""

# RC_NET_STRICT_CHECKING allows some flexibility with the 'net' service.

# The following values are allowed:

#  none  - The 'net' service is always considered up.

#  no    - This basically means that at least one net.* service besides net.lo

#          must be up.  This can be used by notebook users that have a wifi and

#          a static nic, and only wants one up at any given time to have the

#          'net' service seen as up.

#  lo    - This is the same as the 'no' option, but net.lo is also counted.

#          This should be useful to people that do not care about any specific

#          interface being up at boot.

#  yes   - For this ALL network interfaces MUST be up for the 'net' service to

#          be considered up.

RC_NET_STRICT_CHECKING="no"

# RC_DOWN_INTERFACE allows you to specify if RC will bring the interface

# completely down when it stops. The default is yes, but there are some

# instances where you may not want this to happen such as using Wake On LAN.

RC_DOWN_INTERFACE="yes"

# RC_VOLUME_ORDER allows you to specify, or even remove the volume setup

# for various volume managers (MD, EVMS2, LVM, DM, etc).  Note that they are

# stopped in reverse order.

RC_VOLUME_ORDER="raid evms lvm dm"

# RC_VERBOSE will make init scripts more verbose. Only networking scripts

# really use this at this time, and this is useful for trouble shooting

# any issues you may have.

# This is also used to re-enable init script output for init scripts

# started or stopped from the command line.

RC_VERBOSE="no"

# RC_BOOTLOG will generate a log of the boot messages shown on the console.  

# Useful for headless machines or debugging.  You need to emerge the 

# app-admin/showconsole package for this to work.  Note that this probably

# won't work correctly with boot splash.

RC_BOOTLOG="no"

# Set to "yes" if you want to benchmark system boot with bootchart.

# You'll need to emerge the app-benchmarks/bootchart package for this to work.

RC_BOOTCHART="no"

# RC_USE_FSTAB allows you to override the default mount options for the 

# standard /proc, /sys, /dev, and /dev/pts mount points.  Note that this 

# is the new way for selecting ramfs/tmpfs/etc... for udev mounting.

RC_USE_FSTAB="no"

# RC_USE_CONFIG_PROFILE allows you to have different /etc/conf.d files 

# based on your runlevel - if a conf.d file for your profile does not exist

# then we try and use the default one.

# To enable runlevel selection at boot, append "softlevel=foobar" to your

# kernel line to change to the foobar runlevel.  Here we would search for

# /etc/conf.d/<service>.foobar config files before trying to use the default

# /etc/conf.d/<service>.

# Note that it is only active if 'softlevel' was specified via the kernel line,

# and it is intended to use for different grub/lilo entries to specify config

# changes for say laptops between home and work, where you would have setup

# 'work' and 'home' runlevels, with /etc/conf.d/*.<runlevel> as needed.

RC_USE_CONFIG_PROFILE="yes"

# RC_FORCE_AUTO tries its best to prevent user interaction during the boot and 

# shutdown process.  For example, fsck will automatically be run or volumes 

# remounted to create proper directory trees.  This feature can be dangerous 

# and is meant ONLY for headless machines where getting a physical console 

# hooked up is a huge pita.

RC_FORCE_AUTO="no"

# Use this variable to control the /dev management behavior.

#  auto   - let the scripts figure out what's best at boot

#  devfs  - use devfs (requires sys-fs/devfsd)

#  udev   - use udev (requires sys-fs/udev)

#  static - let the user manage /dev (YOU need to create ALL device nodes)

RC_DEVICES="auto"

# UDEV OPTION:

# Set to "yes" if you want to save /dev to a tarball on shutdown

# and restore it on startup.  This is useful if you have a lot of

# custom device nodes that udev does not handle/know about.

RC_DEVICE_TARBALL="no"

# RC_DMESG_LEVEL sets the level at which logging of messages is done to the

# console.  See dmesg(8) for more info.

RC_DMESG_LEVEL="1"

#

# Controlling start-stop-daemon behavior

# Set to "yes" if start-stop-daemon should always retry killing the

# service with sig KILL if it fails the first time.

RC_RETRY_KILL="yes"

# Set the amount of seconds start-stop-daemon should wait between

# retries.

RC_RETRY_TIMEOUT=1

# Set the amount of times start-stop-daemon should try to kill

# a service before giving up.

RC_RETRY_COUNT=5

# Set to "yes" if start-stop-daemon should fail if the service

# is marked as started, but not actually running on stop.

RC_FAIL_ON_ZOMBIE="no"

# Set to "yes" if start-stop-daemon should attempt to kill

# any children left in the system.

# Be careful with this as it really does what it was on the tin.

# fex, if you're in an ssh process and you restart a service on which ssh

# depends then your terminal will be killed also.

RC_KILL_CHILDREN="no"

# Set the amount of seconds start-stop-daemon waits after starting

# the daemon to check it is still running. If it's not then we

# try and stop any children if possible.

RC_WAIT_ON_START="0.1"

##############################################################################

# SERVICE CONFIGURATION VARIABLES

# These variables are documented here, but should be configured in

# /etc/conf.d/foo for service foo and NOT enabled here unless you

# really want them to work on a global basis.

# Some daemons are started and stopped via start-stop-daemon.

# We can launch them through other daemons here, for example valgrind.

# This is only useful for serious debugging of the daemon

# WARNING: If the script's "stop" function does not supply a PID file then

# all processes using the same daemon will be killed.

#RC_DAEMON="/usr/bin/valgrind --tool=memcheck --log-file=/tmp/valgrind.syslog-ng"

# strace needs to be prefixed with --background as it does not detach when

# it's following

#RC_DAEMON="--background /usr/sbin/strace -f -o /tmp/strace.syslog-ng"

# Pass ulimit parameters 

#RC_ULIMIT="-u 30"

##############################################################################

#

# Internal configuration variables

#

# NB:  These are for advanced users, and you should really

#      know what you are doing before changing them!

#

 

# rc-scripts dep-cache directory

#

# NOTE:  Do not remove the next line, as its needed by the baselayout ebuild!

#

#  svcdir="/var/lib/init.d"

svcdir="/var/lib/init.d"

# Should we mount $svcdir in a ram disk for some speed increase 

# for slower machines, or for the more extreme setups ?

svcmount="no"

# FS type that should be used for $svcdir.  Note that you need 

# $svcmount above set to "yes" for this to work ...  Currently 

# tmpfs, ramfs, and ramdisk are supported (tmpfs is the default).

svcfstype="tmpfs"

# Size of $svcdir in KB.  Note that ramfs doesn't support this 

# due to kernel limitations.

svcsize=2048

```

----------

## d2_racing

 *no.13 wrote:*   

> 
> 
> BTW should net.wlan and eth start on boot even when not in rc?

 

It's because you need this inside your /etc/conf.d/rc

```

RC_PLUG_SERVICES="!net.*" 

```

----------

## no.13

 *Quote:*   

>  *Quote:*   no.13 wrote:
> 
> BTW should net.wlan and eth start on boot even when not in rc?
> 
>  
> ...

 

Thanks but still the question why and how does the wireless iface get blocked when run by the net startscript persists... :/

----------

## no.13

On second thought i might have screwed up broadcom-sta driver installation so I decided to give it another shot and just recompiled my kernel and emerged it. The package itself emerged without errors and the wl module starts on boot, but that's all that it does... I removed MAC80211, B43 and SSB and added other necessary options in the kernel as stated in the thread posted above by cach0rr0. My wifi card is just not recognised.

If someone could check my installation I'd be rrrrreeaaaalllllllyyyyy grateful  :Smile: 

----------

## d2_racing

Yeah broadcom-sta hell...

I know your pain.

cach0rr0 and Pappy should be able to help you on that.

----------

## cach0rr0

broadcom site doesn't list BCM4318 as supported

http://www.broadcom.com/support/802.11/linux_sta.php

(site is down, had to load it from google cache)

[quote"the page"]

These packages contain Broadcom's IEEE 802.11a/b/g/n hybrid Linux® device driver for use with Broadcom's BCM4311-, BCM4312-, BCM4313-, BCM4321-, and BCM4322-based hardware.

[/quote]

post your lspci -n ? We may be able to get it working with just the in-kernel driver (and requisite firmware of course). 

Supported PCI ID's listed here - http://en.gentoo-wiki.com/wiki/Broadcom_43xx

If not you may be looking at having to do the unmentionable, and use ndiswrapper. Thought I remembered the 4318 being painful, guess the memory wasn't just my imagination.

What's curious is your original post, it looks half-functional, making me think maybe indeed it is/was a firmware issue. 

If you want an easy way for broadcome firmware installation, add the "pentoo" overlay, as they have these:

```

* net-wireless/broadcom-firmware-downloader [2]

     Available versions:  (~)0.1!s (~)0.1-r1!s {+b43 +b43legacy}

     Description:         Closed Broadcom Commercial Firmware Downloader

* net-wireless/broadcom-firmware-installer [2]

     Available versions:  (~)0.1 (~)0.1-r1 {(+)b43 (+)b43legacy}

     Description:         Closed Broadcom Commercial Firmware Installer

[1] "local" /usr/local/portage/custom/testing

[2] "pentoo" /usr/local/portage/layman/pentoo

```

----------

## d2_racing

Using an overlay to make a wifi card working... Broadcom are hard to make them work.

----------

## no.13

Thanks for posting! :Smile: 

 *Quote:*   

> broadcom site doesn't list BCM4318 as supported 

 

I know but I was encouraged when I saw the "broadcom 4315 and broadcom-sta" thread, since 4315 is also not listed in the broadcom site. Also I stumbled upon one of pappy's post saying that he's using 4318 with the broadcom-sta, although I haven't read the whole topic so it can be out of context...

[quote Pappy from "4322 troubles" thread]

I'm using the broadcom-sta on kernel versions that support it, and b43 on those that don't. Since I'm actually running a bcm4318, I do get support from the b43...albeit not the best support. 

[/quote]

```

07:00.0 Network controller [0280]: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller [14e4:4318] (rev 02)

        Subsystem: Linksys WPC54G-EU version 3 [Wireless-G Notebook Adapter] [1737:0048]

        Flags: bus master, fast devsel, latency 64, IRQ 9

        Memory at 1c000000 (32-bit, non-prefetchable) [size=8K]

        Kernel driver in use: b43-pci-bridge

```

Eh the subsystem doesn't match:/... damn linksys... I'll try the pentoo overlay installation and is if anything changes, although I'm quite skeptical of it:(Then I'll also try the b43legacy driver, because I've a strange feeling that it would work ( I remember setting it up in ubuntu with the old 3.something driver, although I don't remember weather it worked correctly or not). If nothing helps I guess I'll have to install it with ndiswraper. I'll post back when I'm done - wish me luck ;P

----------

## pappy_mcfae

What kernel version are you using? Post your .config as well as the results of lspci -n and cat /proc/cpuinfo as well as your /etc/fstab file, and I'll see what I can see.

Cheers,

Pappy

----------

## no.13

 *pappy_mcfae wrote:*   

> What kernel version are you using? Post your .config as well as the results of lspci -n and cat /proc/cpuinfo as well as your /etc/fstab file, and I'll see what I can see.
> 
> Cheers,
> 
> Pappy

 

Great! :Smile:  Here it is:

1. I have 2.6.31-gentoo-r6 kernel with b43 driver and 2.6.31-gentoo-r10 with the broadcom-sta driver

2. http://pastebin.com/xW7xjnn9

3. lspci -n:

```
00:00.0 0600: 8086:3575 (rev 03)

00:02.0 0300: 8086:3577 (rev 03)

00:02.1 0380: 8086:3577

00:1d.0 0c03: 8086:2482 (rev 01)

00:1d.1 0c03: 8086:2484 (rev 01)

00:1d.2 0c03: 8086:2487 (rev 01)

00:1e.0 0604: 8086:2448 (rev 41)

00:1f.0 0601: 8086:248c (rev 01)

00:1f.1 0101: 8086:248a (rev 01)

00:1f.3 0c05: 8086:2483 (rev 01)

02:02.0 0780: 125d:2838 (rev 01)

02:03.0 0401: 125d:1988 (rev 12)

02:04.0 0607: 1217:6933 (rev 01)

02:04.1 0607: 1217:6933 (rev 01)

02:08.0 0200: 8086:1031 (rev 41)

07:00.0 0280: 14e4:4318 (rev 02)

```

cat /proc/cpuinfo 

```
processor       : 0

vendor_id       : GenuineIntel

cpu family      : 6

model           : 11

model name      : Intel(R) Pentium(R) III Mobile CPU      1066MHz

stepping        : 1

cpu MHz         : 1066.000

cache size      : 512 KB

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 2

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pse36 mmx fxsr sse

bogomips        : 2126.16

clflush size    : 32

power management:
```

fstab:

```
# /etc/fstab: static file system information.

#

# noatime turns off atimes for increased performance (atimes normally aren't 

# needed; notail increases performance of ReiserFS (at the expense of storage 

# efficiency).  It's safe to drop the noatime options if you want and to 

# switch between notail / tail freely.

#

# The root filesystem should have a pass number of either 0 or 1.

# All other filesystems should have a pass number of 0 or greater than 1.

#

# See the manpage fstab(5) for more information.

#

# <fs>         <mountpoint>   <type>      <opts>      <dump/pass>

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.

/dev/sda2      /      ext3      noatime      0 1

/dev/sda1      none      swap      sw      0 0

/dev/cdrom      /mnt/cdrom   auto      noauto,ro   0 0

# glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for 

# POSIX shared memory (shm_open, shm_unlink).

# (tmpfs is a dynamically expandable/shrinkable ramdisk, and will

#  use almost no memory if not populated with files)

shm         /dev/shm   tmpfs      nodev,nosuid,noexec   0 0
```

----------

## pappy_mcfae

There was a lot of cruft in there. To assure that the driver had the best chance of being eliminated as an issue, I set you up with a new .config from a seed. If your issues remain, then it is not a kernel issue...and we'll deal with that once I am sure the kernel is stable.

Click here for your new .config. Compile as is.

For the best results, please do the following:

1 ) Move your .config file out of your kernel source directory (/usr/src/linux-2.6.31-gentoo-r10 ).

2 ) Issue the command make mrproper. This is a destructive step. It returns the source to pristine condition. Unmoved .config files will be deleted!

3 ) Copy my .config into your source directory.

4 ) Issue the command make && make modules_install.

5 ) emerge broadcom-sta. Be sure that /usr/src/linux is symlinked to /usr/src/linux-2.6.31-gentoo-r10

6 ) Install the kernel as you normally would, and reboot.

7 ) Once it boots, please post /var/log/dmesg so I can see how things loaded.

8 ) if the issue remains, we'll move from there.

Also, post /etc/udev/rules.d/70-persistent-net.rules

Cheers,

Pappy

----------

## d2_racing

When you finish, tell us if you have a working wifi.

Also, I think that we will need to modify your /etc/conf.d/net.

----------

## no.13

Unfortunately it doesn't work:( The card is still not recognized :/

Here's dmesg:

http://pastebin.com/EgPz3wZj

And 70-persistent-net.rules

```

# This file was automatically generated by the /lib/udev/write_net_rules

# program, run by the persistent-net-generator.rules rules file.

#

# You can modify it, as long as you keep each rule on a single

# line, and change only the value of the NAME= key.

# PCI device 0x8086:0x1031 (e100)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:02:3f:36:94:30", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x14e4:0x4318 (b43-pci-bridge)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1d:7e:e7:59:87", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"

```

----------

## pappy_mcfae

My assumption is that you were going to load the broadcom-sta driver with this kernel. If such is the case, you haven't done so as of yet. To do this,

a. eselect kernel list...this will tell you the current kernel version that is symlinked to /usr/src/linux.

b. eselect kernel set linux-2.6.31-gentoo-r10...this will symlink /usr/src/linux to /usr/src/linux-2.6.31-gentoo-r10.

c. emerge -av broadcom-sta...this loads the wl.lo driver, which is the driver that actually does the work.

d. reboot.

You will have to modify /etc/udev/rules.d/70-persistent-net.rules to this:

```
# This file was automatically generated by the /lib/udev/write_net_rules

# program, run by the persistent-net-generator.rules rules file.

#

# You can modify it, as long as you keep each rule on a single

# line, and change only the value of the NAME= key.

# PCI device 0x8086:0x1031 (e100)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x14e4:0x4318 (b43-pci-bridge)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0" 

# PCI device 0x14e4:0x4318 (wl)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{type}=="1", KERNEL=="eth*", NAME="wlan0"
```

Note: you will have to let the system boot with the broadcom-sta driver once so that  /etc/udev/rules.d/70-persistent-net.rules will add the wl (broadcom-sta) driver. Then change the name from wlan1 to wlan0. Since both drivers can't load at the same time, this is a safe thing to do. xx:xx:xx:xx:xx:xx is the MAC address built into the network devices. The MAC address for both wireless devices should be the same.

Get to this point, and we'll continue on.

Cheers,

Pappy

----------

## no.13

 *pappy_mcfae wrote:*   

> My assumption is that you were going to load the broadcom-sta driver with this kernel. If such is the case, you haven't done so as of yet. To do this, 

 

It was symlinked

 *pappy_mcfae wrote:*   

> 
> 
> Note: you will have to let the system boot with the broadcom-sta driver once so that /etc/udev/rules.d/70-persistent-net.rules will add the wl (broadcom-sta) driver. Then change the name from wlan1 to wlan0. Since both drivers can't load at the same time, this is a safe thing to do.
> 
> 

 

I'm not sure if I understood you. I changed the /etc/udev/rules.d/70-persistent-net.rules to what you have provided and rebooted into the wl kernel. The net.wlan0 didn't start on boot but when I tried to start it, it loaded the wl and said No such device. However, I have nothing named wlan1 to change to wlan0 (Instead I changed the wl-line's name to wlan1 just in case, for it not to load when the b43 kernel starts the iface, although i'm not sure if it matters).

----------

## pappy_mcfae

According to what I saw in the /var/log/dmesg, the broadcom-sta driver didn't load. If that's changed, and it does load now, then send me that /var/log/dmesg. You haven't blacklisted any drivers, have you?

Broadcom-sta should load automatically at boot time. The fact that it didn't tells me either it wasn't compiled properly, it wasn't set up at all, or it is blacklisted.

On the off chance that we might be dealing with stale object code and other annoyances, follow the directions I gave with the kernel...especially the part about make mrproper. To that, add these steps:

a. delete /lib/modules/2.6.31-gentoo-r10.

b. in the /usr/src/linux-2.6.31-gentoo-r10 directory, enter make modules_install (after kernel recompilation).

c. emerge broadcom-sta.

d. reboot.

e. resend /var/log/dmesg.

If the above doesn't work, we'll deal with that when we get there.

Cheers,

Pappy

----------

## Xamindar

I'd like to chime in here. Was getting fed up using the usb wireless dongle on an old dell laptop so thought I would start a thread about the b43legacy driver. But loks like I'm not the only one having this issue.

This older laptop has a  BCM4303 chip in it for wifi and ever since about kernel 2.6.30 and beyond it has not worked. "ifconfig wlan2 up" will work the first time on a fresh boot but once I take the interface down and then try to bring it up again I get error "SIOCSIFFLAGS: Unknown error 132" and the interface becomes useless. rfkill also says this:

```
0: phy0: Wireless LAN

        Soft blocked: no

        Hard blocked: yes

```

Searching around this should mean that the hardware wireless switch is off on the laptop but this old laptop has no such thing. I checked the bios and the wireless is enabled there as well.

This issue wasn't there until more recent kernel versions so I don't think it is a hardware issue. So far only a reboot will fix it.

----------

## Xamindar

I found the problem in my case, the rfkill module. The wireless drivers were pulling it in so it couldn't even be blacklisted. I removed it from the kernel config and recompiled my kernel and now I can ifconfig wlan2 up and down to my hearts content. Kismet can now use it to scan and I can connect with it. Hope this helps someone.Last edited by Xamindar on Sun Apr 18, 2010 10:32 pm; edited 1 time in total

----------

## d2_racing

rfkill can cause a lot of problem.

I don't have it on my laptop anymore.

----------

