Bug 191557 - hal identifies bcm43xx device as wired 802.3 device
Summary: hal identifies bcm43xx device as wired 802.3 device
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: 5
Hardware: i386
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Kernel Maintainer List
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2006-05-12 21:04 UTC by James
Modified: 2007-11-30 22:11 UTC (History)
12 users (show)

Fixed In Version: 2.6.17-1.2139_FC5
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-06-27 14:57:28 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
lspci -v output for affected notebook (6.33 KB, application/octet-stream)
2006-05-24 19:03 UTC, James
no flags Details

Description James 2006-05-12 21:04:56 UTC
Description of problem:
hal reports that a Broadcom 4306-based NIC under the bcm43xx is an 802.3 device,
when it should report 802.11.

Version-Release number of selected component (if applicable):
hal-0.5.7-3.fc5.1

How reproducible:
Start hal.

Actual results:
The following extract from lshal:

udi = '/org/freedesktop/Hal/devices/pci_14e4_4320'
  info.linux.driver = 'bcm43xx'  (string)
  info.udi = '/org/freedesktop/Hal/devices/pci_14e4_4320'  (string)
  linux.subsystem = 'pci'  (string)
  linux.hotplug_type = 1  (0x1)  (int)
  pci.subsys_product = 'Unknown (0x12f4)'  (string)
  pci.subsys_vendor = 'Hewlett-Packard Company'  (string)
  info.product = 'BCM4306 802.11b/g Wireless LAN Controller'  (string)
  pci.product = 'BCM4306 802.11b/g Wireless LAN Controller'  (string)
  info.vendor = 'Broadcom Corporation'  (string)
  pci.vendor = 'Broadcom Corporation'  (string)
  pci.device_protocol = 0  (0x0)  (int)
  pci.device_subclass = 128  (0x80)  (int)
  pci.device_class = 2  (0x2)  (int)
  pci.subsys_vendor_id = 4156  (0x103c)  (int)
  pci.subsys_product_id = 4852  (0x12f4)  (int)
  pci.vendor_id = 5348  (0x14e4)  (int)
  pci.product_id = 17184  (0x4320)  (int)
  pci.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:14.4/0000:02:02.0' 
(string)
  info.parent = '/org/freedesktop/Hal/devices/pci_1002_4342'  (string)
  info.bus = 'pci'  (string)
  linux.sysfs_path_device = '/sys/devices/pci0000:00/0000:00:14.4/0000:02:02.0'
 (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:14.4/0000:02:02.0'  (string)

udi = '/org/freedesktop/Hal/devices/net_00_90_4b_44_54_f3'
  info.udi = '/org/freedesktop/Hal/devices/net_00_90_4b_44_54_f3'  (string)
  linux.subsystem = 'net'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  net.80203.mac_address = 619738060019  (0x904b4454f3)  (uint64)
  info.product = 'Networking Interface'  (string)
  net.interface_up = false  (bool)
  net.arp_proto_hw_id = 1  (0x1)  (int)
  net.linux.ifindex = 4  (0x4)  (int)
  net.address = '00:90:4b:44:54:f3'  (string)
  net.interface = 'eth1'  (string)
  net.physical_device = '/org/freedesktop/Hal/devices/pci_14e4_4320'  (string)
  info.capabilities = {'net', 'net.80203'} (string list)
  info.category = 'net.80203'  (string)
  info.parent = '/org/freedesktop/Hal/devices/pci_14e4_4320'  (string)
  linux.sysfs_path = '/sys/class/net/eth1'  (string)

As a result of this, NetworkManager thinks the device is a wired ethernet adapter.

Expected results:
Correct device identification.

Additional info:
udev-084-13
bcm43xx from kernel-2.6.16-1.2111_FC5
(Note that it might be more applicable to file this under udev or kernel...
please let me know!)

Comment 1 Gustavo Maciel Dias Vieira 2006-05-18 02:15:35 UTC
I'm experiencing the same bug here, and NetworkManager is greatly confused.

udev-084-13
kernel-2.6.16-1.2111_FC5


Comment 2 Phillip Ezolt 2006-05-19 18:50:45 UTC
Same problem here: 
udev-084-13
2.6.16-1.2111_FC5

I guess I'll have to slink back to ndiswrapper. Arg!

Comment 3 James 2006-05-23 20:15:27 UTC
Still there in kernel-2.6.16-1.2122_FC5.

Comment 4 Robin Ziolkowski 2006-05-24 03:17:02 UTC
Likewise:
udev-084-13
kernel-2.6.16-1.2122_FC5
initscripts-8.31.2-1

Comment 5 David Woodhouse 2006-05-24 12:54:50 UTC
Assigning to hal. If there's something hal wants from the kernel, please let me
know what it is.

Comment 6 David Zeuthen 2006-05-24 15:26:35 UTC
What's the output of 

 tree /sys/class/net/eth0

and

 cat /proc/net/wireless

because that's what hal looks at to identify the device (replace eth0 with
whatever your device is). For me it looks like this:

[davidz@daxter ~]$ cat /proc/net/wireless
Inter-| sta-|   Quality        |   Discarded packets               | Missed | WE
 face | tus | link level noise |  nwid  crypt   frag  retry   misc | beacon | 20
  eth1: 000f    0.  -103.  -95.     170      0      0      0 167809        0
 wifi0: 000f    0.  -103.  -95.     170      0      0      0 167809        0
[davidz@daxter ~]$ tree /sys/class/net/eth1/
/sys/class/net/eth1/
|-- addr_len
|-- address
|-- broadcast
|-- carrier
|-- device -> ../../../devices/pci0000:00/0000:00:1e.0/0000:02:02.0
|-- dormant
|-- features
|-- flags
|-- ifindex
|-- iflink
|-- link_mode
|-- mtu
|-- operstate
|-- statistics
|   |-- collisions
|   |-- multicast
|   |-- rx_bytes
|   |-- rx_compressed
|   |-- rx_crc_errors
|   |-- rx_dropped
|   |-- rx_errors
|   |-- rx_fifo_errors
|   |-- rx_frame_errors
|   |-- rx_length_errors
|   |-- rx_missed_errors
|   |-- rx_over_errors
|   |-- rx_packets
|   |-- tx_aborted_errors
|   |-- tx_bytes
|   |-- tx_carrier_errors
|   |-- tx_compressed
|   |-- tx_dropped
|   |-- tx_errors
|   |-- tx_fifo_errors
|   |-- tx_heartbeat_errors
|   |-- tx_packets
|   `-- tx_window_errors
|-- tx_queue_len
|-- type
|-- uevent
|-- weight
`-- wireless
    |-- beacon
    |-- crypt
    |-- fragment
    |-- level
    |-- link
    |-- misc
    |-- noise
    |-- nwid
    |-- retries
    `-- status

3 directories, 49 files


The code in question is  function net_add() in this file
 http://webcvs.freedesktop.org/*checkout*/hal/hal/hald/linux2/classdev.c?rev=1.43&content-type=text%2Fplain

dwmw2, maybe the ieee80211 and/or bcm43xx needs to export a few more files or
hald needs some more brains? Thanks.

    David


Comment 7 David Woodhouse 2006-05-24 15:32:24 UTC
shinybook /home/dwmw2 $ uname -a
Linux shinybook.infradead.org 2.6.16-1.2202_FC6.dwmw2 #2 Sun May 14 15:48:23 BST
2006 ppc ppc ppc GNU/Linux
shinybook /home/dwmw2 $ tree /sys/class/net/eth1
/sys/class/net/eth1
|-- addr_len
|-- address
|-- broadcast
|-- carrier
|-- device -> ../../../devices/pci0001:10/0001:10:12.0
|-- dormant
|-- features
|-- flags
|-- ifindex
|-- iflink
|-- link_mode
|-- mtu
|-- operstate
|-- statistics
|   |-- collisions
|   |-- multicast
|   |-- rx_bytes
|   |-- rx_compressed
|   |-- rx_crc_errors
|   |-- rx_dropped
|   |-- rx_errors
|   |-- rx_fifo_errors
|   |-- rx_frame_errors
|   |-- rx_length_errors
|   |-- rx_missed_errors
|   |-- rx_over_errors
|   |-- rx_packets
|   |-- tx_aborted_errors
|   |-- tx_bytes
|   |-- tx_carrier_errors
|   |-- tx_compressed
|   |-- tx_dropped
|   |-- tx_errors
|   |-- tx_fifo_errors
|   |-- tx_heartbeat_errors
|   |-- tx_packets
|   `-- tx_window_errors
|-- tx_queue_len
|-- type
|-- uevent
|-- weight
`-- wireless
    |-- beacon
    |-- crypt
    |-- fragment
    |-- level
    |-- link
    |-- misc
    |-- noise
    |-- nwid
    |-- retries
    `-- status

3 directories, 49 files
shinybook /home/dwmw2 $ cat /proc/net/wireless
Inter-| sta-|   Quality        |   Discarded packets               | Missed | WE
 face | tus | link level noise |  nwid  crypt   frag  retry   misc | beacon | 20
  eth1: 0000  100.    2.  186.       0     61      0      0      0        0


Comment 8 David Zeuthen 2006-05-24 15:39:35 UTC
Does HAL identify the device as wired only on hotplug? E.g. if you do
'/etc/init.d/haldaemon restart', do you see different results?


Comment 9 David Woodhouse 2006-05-24 15:54:43 UTC
I can't hotplug this one, and it's actually working OK for me -- apart from the
fact that NetworkManager seems to ask for my keyring password about four times,
then fails to connect until I manually switch it to the appropriate network.

Comment 10 David Zeuthen 2006-05-24 15:57:43 UTC
dwmw2, thanks for the feedback and good to hear it's detected alright. I suppose
the reporter of this bug are having problems when hotplugging his card, maybe
there is a race by which /proc/net/wireless and/or /sys/class/net/eth1/wireless
isn't available when hal checks. 

We'll see - J H Ettle, can you follow up please? Also, did this use to work on
older kernels?

    David

Comment 11 David Zeuthen 2006-05-24 15:59:22 UTC
(btw, the NetworkManager bug should mentioned in comment 9 should be filed in a
NM bug)

Comment 12 James 2006-05-24 16:35:37 UTC
Hi, I don't have the notebook with me right now, but I will later this evening
(I'll post the tree output from mine). The card's not being hotplugged, it's a
miniPCI card built into the machine. Also it seemed to work OK on older kernels,
but I can't remember the specifics. I'll try restarting haldaemon after
inserting bcm43xx and see what happens (and add something to
/etc/sysconfig/modules/ ...).

James

Comment 13 James 2006-05-24 19:03:23 UTC
Created attachment 129958 [details]
lspci -v output for affected notebook

Comment 14 James 2006-05-24 19:08:22 UTC
OK, above is the lspci -v output for my notebook. Here's what tree
/sys/class/net/eth1 produces:

/sys/class/net/eth1/
|-- addr_len
|-- address
|-- broadcast
|-- carrier
|-- device -> ../../../devices/pci0000:00/0000:00:14.4/0000:02:02.0
|-- features
|-- flags
|-- ifindex
|-- iflink
|-- mtu
|-- statistics
|   |-- collisions
|   |-- multicast
|   |-- rx_bytes
|   |-- rx_compressed
|   |-- rx_crc_errors
|   |-- rx_dropped
|   |-- rx_errors
|   |-- rx_fifo_errors
|   |-- rx_frame_errors
|   |-- rx_length_errors
|   |-- rx_missed_errors
|   |-- rx_over_errors
|   |-- rx_packets
|   |-- tx_aborted_errors
|   |-- tx_bytes
|   |-- tx_carrier_errors
|   |-- tx_compressed
|   |-- tx_dropped
|   |-- tx_errors
|   |-- tx_fifo_errors
|   |-- tx_heartbeat_errors
|   |-- tx_packets
|   `-- tx_window_errors
|-- tx_queue_len
|-- type
|-- uevent
`-- weight

My /proc/net/wireless contains
Inter-| sta-|   Quality        |   Discarded packets               | Missed | WE
 face | tus | link level noise |  nwid  crypt   frag  retry   misc | beacon | 19

Yet it scans networks ok with iwlist, etc...

Hope this helps,
James

Comment 15 David Zeuthen 2006-05-24 19:14:26 UTC
Based on comment 9 and 14 this is clearly a driver bug. Reassigning.

Comment 16 Jared Smith 2006-06-03 17:12:07 UTC
I'm seeing this same thing on my Powerbook, running FC5 with all the latest
updates.  If you'd like the lspci and tree information from my machine, please
let me know.

Comment 17 Jarod Wilson 2006-06-06 19:20:41 UTC
Saw the same thing with an up-to-date FC5 on my own PowerBook, everything works
peachy running rawhide though. Not sure which specific component it was that
fixed it though, I went to rawhide wholesale. :)

Comment 18 Nigel J. Terry 2006-06-07 12:41:37 UTC
I can confirm that bug does not occur with the development kernel
2.6.16-1.2252_FC6. I downloaded it this morning and it works fine. Hopefully
won't be too long until the fix makes it to stable.

Comment 19 James 2006-06-18 14:27:04 UTC
I second Comment 18 --- the bcm43xx is correctly identified with this kernel.

Comment 20 Robin Ziolkowski 2006-06-23 15:45:48 UTC
I just updated my kernel from 'updates-testin' today. Kernel 2.6.17-1.2138_FC5
#1 SMP Tue Jun 20 14:18:12 EDT 2006 x86_64 GNU/Linux.

I am happy to report that this kernel now correctly identifies bcm43xx as a
*wireless* device :O)

Comment 21 Nigel J. Terry 2006-06-25 01:33:27 UTC
Agreed. This is fixed in 2.6.17-1.2139_FC5 which is now released

Comment 22 James 2006-06-27 15:00:28 UTC
Also confirm: fixed in current kernel.


Note You need to log in before you can comment on or make changes to this bug.