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!)
I'm experiencing the same bug here, and NetworkManager is greatly confused. udev-084-13 kernel-2.6.16-1.2111_FC5
Same problem here: udev-084-13 2.6.16-1.2111_FC5 I guess I'll have to slink back to ndiswrapper. Arg!
Still there in kernel-2.6.16-1.2122_FC5.
Likewise: udev-084-13 kernel-2.6.16-1.2122_FC5 initscripts-8.31.2-1
Assigning to hal. If there's something hal wants from the kernel, please let me know what it is.
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
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
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?
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.
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
(btw, the NetworkManager bug should mentioned in comment 9 should be filed in a NM bug)
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
Created attachment 129958 [details] lspci -v output for affected notebook
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
Based on comment 9 and 14 this is clearly a driver bug. Reassigning.
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.
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. :)
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.
I second Comment 18 --- the bcm43xx is correctly identified with this kernel.
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)
Agreed. This is fixed in 2.6.17-1.2139_FC5 which is now released
Also confirm: fixed in current kernel.