Discussion:
bluetooth killed my wireless interface!
Rudolph Pienaar
2006-12-22 21:10:01 UTC
Permalink
Hi all -

First off, Season's Greetings to all. Things have been getting more and more
quiet on this list lately. Hope there's still some life around!

I am running a gentoo 64-bit kernel with suspend extensions: 2.6.18-suspend2,
and have been for a month or more, with no problems.

Earlier today, I wanted to bluetooth some pics from my phone, when I realised
that since my upgrade bluetooth wasn't working. I eventually traced the
problem to the 'rfcomm' module not running. I did a 'modprobe rfcomm' and all
seemed well. To make it more permanent, I also added it to

/etc/modules.autoload.d/kernel-2.6

and, to test properly, rebooted the machine.

On next boot, none of my network interfaces worked. I soon noticed that
a "new" eth0 had appeared, and my "old" eth0 was now mysteriously eth1. Also,
a "new" eth2 had appeared, and my old wlan0 (ndiswrapper-based) seemed gone.

The MAC address of the new eth0 was bizarre:

4A-3F-02-00-4A-3F-02-00-00-00-00-00-00-00-00-00

Also, eth2 appeared as if it were a wireless interface - but I'm guess it is
the bluetooth device since eth2 doesn't connect to anything:

#iwlist eth2 scan
eth2 Interface doesn't support scanning : No such device

Can anyone help / suggest anything?! I'm up and running with a wired
connection on eth1, but would like to have my wireless connection back!

Here is my ifconfig:

[x86_64]~#>ifconfig -a
eth0 Link encap:UNSPEC HWaddr
4A-3F-02-00-4A-3F-02-00-00-00-00-00-00-00-00-00
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)

eth1 Link encap:Ethernet HWaddr 00:0F:B0:40:3C:07
inet addr:192.168.0.102 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4579 errors:0 dropped:0 overruns:0 frame:0
TX packets:4465 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2410283 (2.2 Mb) TX bytes:625147 (610.4 Kb)
Interrupt:185 Base address:0x8800

eth2 Link encap:Ethernet HWaddr 00:90:4B:99:43:ED
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:11 Base address:0xc000
--
Rudolph Pienaar, M.Eng, D.Eng / email: ***@nmr.mgh.harvard.edu
MGH/MIT/HMS Athinoula A. Martinos Center for Biomedical Imaging
149 (2301) 13th Street, Charlestown, MA 02129 USA
Zan Lynx
2006-12-22 22:17:22 UTC
Permalink
Post by Rudolph Pienaar
Hi all -
First off, Season's Greetings to all. Things have been getting more and more
quiet on this list lately. Hope there's still some life around!
I am running a gentoo 64-bit kernel with suspend extensions: 2.6.18-suspend2,
and have been for a month or more, with no problems.
Earlier today, I wanted to bluetooth some pics from my phone, when I realised
that since my upgrade bluetooth wasn't working. I eventually traced the
problem to the 'rfcomm' module not running. I did a 'modprobe rfcomm' and all
seemed well. To make it more permanent, I also added it to
/etc/modules.autoload.d/kernel-2.6
and, to test properly, rebooted the machine.
On next boot, none of my network interfaces worked. I soon noticed that
a "new" eth0 had appeared, and my "old" eth0 was now mysteriously eth1. Also,
a "new" eth2 had appeared, and my old wlan0 (ndiswrapper-based) seemed gone.
4A-3F-02-00-4A-3F-02-00-00-00-00-00-00-00-00-00
Also, eth2 appeared as if it were a wireless interface - but I'm guess it is
#iwlist eth2 scan
eth2 Interface doesn't support scanning : No such device
Can anyone help / suggest anything?! I'm up and running with a wired
connection on eth1, but would like to have my wireless connection back!
Well, eth0 looks like your Firewire / IEEE-1394 IP interface. That's
why the MAC looks odd, it isn't Ethernet. I don't know why yours came
up as eth0. Mine is eth1.

Your wireless card is now eth2, and that is probably because your system
is loading the bcm43xx wireless drivers instead of ndiswrapper.

You probably updated the udev package at some point. I tried
blacklisting modules and other things but nothing udev based worked for
me. So what I did to fix the eth2/wlan0 problem is to add:
alias bcm43xx off
alias ieee80211softmac off
to /etc/modules.d/aliases, and rerun modules-update of course.

After doing that and rebooting it should load ndiswrapper and be back to
wlan0.

Fedora and RHEL use the interface MAC address to set the name of the
interface so your eth0 never gets moved to eth5.

I don't know exactly how Gentoo handles interface renaming but I'll have
to find out soon I suppose. Newer Linux kernels are changing to dynamic
everything. As soon as they get multi-threaded bus probing to work
(probably in 2.6.21 or 22), devices are going to start showing up in
nearly random order, especially on multi-core CPUs or SMP systems.

Ah, Gentoo's /etc/conf.d/net.example does show how to name based on MAC
address, but the comment says udev rules are superior.
--
Zan Lynx <***@acm.org>
Zan Lynx
2006-12-22 22:29:48 UTC
Permalink
On Fri, 2006-12-22 at 15:17 -0700, Zan Lynx wrote:
[snip]
Post by Zan Lynx
Ah, Gentoo's /etc/conf.d/net.example does show how to name based on MAC
address, but the comment says udev rules are superior.
I found out a bit more about udev and it is interesting. It has a
persistant net device name generator. Once it sees a MAC address, it
builds a new rule for it, and that is it forever. Or until someone
changes it. :)

On my Gentoo, it is /etc/udev/rules.d/70-persistent-net.rules
and /etc/udev/rules.d/75-persistent-net-generator.rules

The 75 rule is what calls a program to create rules in 70. Since 70 is
ahead of 75, if the interface is defined in 70 it doesn't get to 75 and
doesn't create new rules.

So here's what I have in 70 for my wireless card:
# PCI Device: 0x14e4:0x4301 (bcm43xx)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:90:4b:59:b9:0a", NAME="eth2"

I don't know why my eth0 interface isn't in there. Perhaps it doesn't
generate udev events.

Anyway, if you have a rule like that you could edit it and change the
NAME to whatever you like.
--
Zan Lynx <***@acm.org>
Rudolph Pienaar
2006-12-22 22:59:26 UTC
Permalink
Hi Zan -
Post by Zan Lynx
[snip]
Thanks for the very detailed response! Indeed, part of the problem is in fact
related to the bcm43xx wireless drivers. I don't really know why this
*suddenly* happened, but the bcm drivers were in fact controlling my wireless
and not ndiswrapper.

Anyway, by rmmod'ing the bcm43xx drivers and re-modprob'ing ndiswrappper it
all worked again (although eth2). I'll probably just leave well enough alone
for now. If ndiswrapper wants to use eth2, I'll let it. I guess by that logic
I can live with my main wired interface being eth1, too :-)

I still don't understand why the Firewire IP interface suddenly appeared
(never did before) - could very well be that I upgraded 'udev' while
upgrading some of my bluez-* ebuilds... in fact, I just checked and it does
indeed seem that udev was upgraded... that probably explains everything.

Hmmm... serves me right for installing with 'ACCEPT_KEYWORDS="~amd64"' :-P

-=R
--
Rudolph Pienaar, M.Eng, D.Eng / email: ***@nmr.mgh.harvard.edu
MGH/MIT/HMS Athinoula A. Martinos Center for Biomedical Imaging
149 (2301) 13th Street, Charlestown, MA 02129 USA
Roberto Bertolusso
2006-12-22 22:49:19 UTC
Permalink
Post by Rudolph Pienaar
I am running a gentoo 64-bit kernel with suspend extensions: 2.6.18-suspend2,
and have been for a month or more, with no problems.
I am also running gentoo 64-bit, but last time I tried to suspend, using
the same kernel you're mentioning, once I tried to resume with the
nvidia module running, I wasn' t able. Could you please share your
configuration files to successfully resume with ndiswrapper and nvidia?

Thank you very much, and Merry Christmas!
Roberto
--
Roberto Bertolusso <***@yahoo.com>
Rudolph Pienaar
2006-12-22 22:57:59 UTC
Permalink
Hi Roberto -
Post by Roberto Bertolusso
2.6.18-suspend2, and have been for a month or more, with no problems.
I am also running gentoo 64-bit, but last time I tried to suspend, using
the same kernel you're mentioning, once I tried to resume with the
nvidia module running, I wasn' t able. Could you please share your
configuration files to successfully resume with ndiswrapper and nvidia?
Unfortunately I never got it to resume, and gave up. :-(

I tried suspend to swap, but all that would happen on reboot/resume was that
my swap device wouldn't be activated. I never fully tried suspend-to-file.
Maybe that's a better option...

-=R
--
Rudolph Pienaar, M.Eng, D.Eng / email: ***@nmr.mgh.harvard.edu
MGH/MIT/HMS Athinoula A. Martinos Center for Biomedical Imaging
149 (2301) 13th Street, Charlestown, MA 02129 USA
Loading...