Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 246026

Summary: sys-apps/hal-0.5.11-r6 fails to discern between 802.3 & 802.11 devices
Product: Gentoo Linux Reporter: Andrew Cowie <andrew>
Component: New packagesAssignee: Tony Vroon <chainsaw>
Severity: normal CC: again, chrschmitt, freedesktop-bugs, gentoo, insanity5902, jakub.januszkiewicz, pacho, rsalveti, sac, steev, suertreus
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Package list:
Runtime testing required: ---
Attachments: hal wireless extension fix

Description Andrew Cowie 2008-11-08 03:37:29 UTC
Upgraded from gentoo-sources 2.6.26 to 2.6.27-r2 yesterday. Discovered that kernel module "iwl4965" is no longer, replaced by new module "iwlagn". Ok, sure, whatever, but now using NetworkManager & `nm-applet` don't work, because networkmanager now thinks it is a wired device!

`iwconfig` and things like `iwlist wlan0 scan` work fine.

Dig, dig... and talking with johnny in #gentoo-desktop, he guessed it might be a HAL problem. Sure enough, `hal-device` shows it to be 802.3, not 802.11. I manually upgraded app-misc/hal-info to 20081022 on the guess that maybe the data there is wrong. Didn't help. As you'll see, this is NOT the signature of a wireless device!

# hal-device
0: udi = '/org/freedesktop/Hal/devices/net_00_13_e8_14_d1_f1_0'
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/wlan0'  (string)
  info.category = 'net.80203'  (string)
  net.linux.ifindex = 13  (0xd)  (int)
  info.subsystem = 'net'  (string)
  info.parent = '/org/freedesktop/Hal/devices/pci_8086_4229'  (string)
  info.capabilities = { 'net', 'net.80203', 'wake_on_lan' } (string list)
  net.arp_proto_hw_id = 1  (0x1)  (int)
  info.product = 'Networking Interface'  (string)
  net.80203.mac_address = 85498057201  (0x13e814d1f1)  (uint64)
  info.udi = '/org/freedesktop/Hal/devices/net_00_13_e8_14_d1_f1_0'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  org.freedesktop.Hal.Device.WakeOnLan.method_names = { 'GetSupported', 'GetEnabled', 'SetEnabled' } (string list)
  linux.subsystem = 'net'  (string)
  org.freedesktop.Hal.Device.WakeOnLan.method_signatures = { '', '', 'b' } (string list)
  org.freedesktop.Hal.Device.WakeOnLan.method_argnames = { '', '', 'enable' } (string list)
  org.freedesktop.Hal.Device.WakeOnLan.method_execpaths = { 'hal-system-wol-supported', 'hal-system-wol-enabled', 'hal-system-wol-enable' } (string list)
  info.interfaces = { 'org.freedesktop.Hal.Device.WakeOnLan' } (string list)
  net.originating_device = '/org/freedesktop/Hal/devices/pci_8086_4229'  (string)
  net.interface = 'wlan0'  (string)
  net.address = '00:13:e8:14:d1:f1'  (string)

# emerge --infoPortage 2.2_rc13 (default/linux/x86/2008.0/desktop, gcc-4.2.4, glibc-2.6.1-r0, 2.6.27-gentoo-r2 i686)
System uname: Linux-2.6.27-gentoo-r2-i686-Intel-R-_Core-TM-2_Duo_CPU_T7100_@_1.80GHz-with-glibc2.0
Timestamp of tree: Sat, 08 Nov 2008 02:46:01 +0000
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.4 [disabled]
app-shells/bash:     3.2_p33
dev-java/java-config: 1.3.7, 2.1.6
dev-lang/python:     2.4.4-r13, 2.5.2-r7
dev-python/pycrypto: 2.0.1-r6
dev-util/ccache:     2.4-r7
dev-util/cmake:      2.4.6-r1
sys-devel/autoconf:  2.13, 2.61-r2
sys-devel/automake:  1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.23-r3
CFLAGS="-ggdb -O2 -march=nocona -pipe"
CONFIG_PROTECT="/etc /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sound/events /etc/splash /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-ggdb -O2 -march=nocona -pipe"
FEATURES="buildpkg distlocks preserve-libs protect-owned sandbox sfperms splitdebug strict unmerge-orphans userfetch"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
USE="X acl acpi alsa apache2 avahi berkdb bluetooth branding bzip2 cairo cdr cli cracklib crypt cups dbus dri dvd dvdr dvdread eds emboss encode esd evo fam fbsplash firefox fortran gdbm gif gnome gstreamer gtk hal iconv isdnlog java jpeg libnotify mad midi mikmod mp3 mpeg mudflap ncurses networkmanager nls nptl nptlonly ogg opengl openmp pam pcre pdf perl png ppds pppd python qt3support quicktime readline reflection sdl session spell spl ssl startup-notification svg sysfs tcpd tiff truetype unicode usb vorbis win32codecs x86 xml xorg xulrunner xv zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authz_default authz_owner authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires file_cache filter headers log_config mem_cache mime mime_magic negotiation rewrite setenvif so unique_id userdir vhost_alias" CAMERAS="canon" ELIBC="glibc" INPUT_DEVICES="synaptics evdev keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="nv nvidia"

Obviously I could downgrade to a 2.6.26 kernel, but that's not really solving the problem. I don't think it's a kernel bug, per se, but the fact the driver changed is obviously suspect.

Comment 1 Wormo (RETIRED) gentoo-dev 2008-11-09 07:07:42 UTC
I bet the new driver uses phy80211 and needs this HAL patch (not yet in a released version):
Comment 2 Andrew Cowie 2008-11-10 03:47:57 UTC
Hm. I gave it a go, but as is, that patch doesn't cleanly apply against the 0.5.11 that's in our tree, which is a shame. Someone a bit closer to this code is going to have to figure out how to backport it. Wish I could have done better here, sorry.

Comment 3 Robert Piasek (RETIRED) gentoo-dev 2008-11-13 13:35:52 UTC
Hmm.. Interesting. I don't have such problem on ANY of my machines with 4965

uname -a
Linux g1s 2.6.27-gentoo-r2 #2 SMP PREEMPT Wed Nov 12 15:32:57 GMT 2008 x86_64 Intel(R) Core(TM)2 Duo CPU T7500 @ 2.20GHz GenuineIntel GNU/Linux

g1s ~ # paludis -q hal
* sys-apps/hal
    gentoo:         0.5.9-r1 0.5.10 0.5.11 0.5.11-r1 0.5.11-r2 0.5.11-r3 0.5.11-r4 {:0} 
    installed:               0.5.11-r4* {:0} 
    Description:             Hardware Abstraction Layer
    Relevant USE flags:      (X) (acpi) (-apm) (crypt) (-debug) (-dell) (-disk-partition) (-doc) (-kernel_FreeBSD) (kernel_linux) (laptop) (-selinux)
            || (
    Installed time:          Sun Oct 26 20:16:11 2008
    From repositories:       gentoo
    Installed using:         paludis-0.30.3

* app-misc/hal-info
    gentoo:                  20070425 20070516 20070618 20071011 20071030 20080310 20080508 {:0} 
    installed:               20080508* {:0} 
    Description:             The fdi scripts that HAL uses
    Relevant USE flags:      
    License:                 GPL-2
    Installed time:          Fri Jul 11 13:39:10 2008
    From repositories:       gentoo
    Installed using:         paludis-0.28.0

g1s ~ # paludis -q udev
* sys-fs/udev
    gentoo:                  114 115-r1 119 122-r1 124-r1 125-r2 130-r1 (130-r2)R {:0} 
    installed:               130-r1* {:0} 
    Description:             Linux dynamic and persistent device naming support (aka userspace devfs)
    Relevant USE flags:      (-selinux)
    License:                 GPL-2
    Installed time:          Thu Oct  9 11:35:03 2008
    From repositories:       gentoo
    Installed using:         paludis-0.30.1

lsmod | grep iwlagn
iwlagn                 71620  0 
iwlcore                86148  1 iwlagn
mac80211              163560  2 iwlagn,iwlcore
cfg80211               26192  3 iwlagn,iwlcore,mac80211

g1s ~ # lshal | grep wlan0 -A10 -B48

udi = '/org/freedesktop/Hal/devices/pci_8086_4229'
  info.linux.driver = 'iwlagn'  (string)
  info.parent = '/org/freedesktop/Hal/devices/pci_8086_2841'  (string)
  info.product = 'PRO/Wireless 4965 AG or AGN Network Connection'  (string)
  info.subsystem = 'pci'  (string)
  info.udi = '/org/freedesktop/Hal/devices/pci_8086_4229'  (string)
  info.vendor = 'Intel Corporation'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'pci'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0'  (string)
  pci.device_class = 2  (0x2)  (int)
  pci.device_protocol = 0  (0x0)  (int)
  pci.device_subclass = 128  (0x80)  (int)
  pci.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0'  (string)
  pci.product = 'PRO/Wireless 4965 AG or AGN Network Connection'  (string)
  pci.product_id = 16937  (0x4229)  (int)
  pci.subsys_product_id = 4353  (0x1101)  (int)
  pci.subsys_vendor = 'Intel Corporation'  (string)
  pci.subsys_vendor_id = 32902  (0x8086)  (int)
  pci.vendor = 'Intel Corporation'  (string)
  pci.vendor_id = 32902  (0x8086)  (int)

udi = '/org/freedesktop/Hal/devices/net_00_13_e8_15_64_05_0'
  info.capabilities = {'net', 'net.80211control'} (string list)
  info.category = 'net.80211control'  (string)
  info.parent = '/org/freedesktop/Hal/devices/pci_8086_4229'  (string)
  info.product = 'Networking Wireless Control Interface'  (string)
  info.subsystem = 'net'  (string)
  info.udi = '/org/freedesktop/Hal/devices/net_00_13_e8_15_64_05_0'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'net'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/wmaster0'  (string)
  net.address = '00:13:e8:15:64:05'  (string)
  net.arp_proto_hw_id = 801  (0x321)  (int)
  net.interface = 'wmaster0'  (string)
  net.linux.ifindex = 3  (0x3)  (int)
  net.originating_device = '/org/freedesktop/Hal/devices/pci_8086_4229'  (string)

udi = '/org/freedesktop/Hal/devices/net_00_13_e8_15_64_05'
  info.capabilities = {'net', 'net.80211'} (string list)
  info.category = 'net.80211'  (string)
  info.parent = '/org/freedesktop/Hal/devices/pci_8086_4229'  (string)
  info.product = 'WLAN Interface'  (string)
  info.subsystem = 'net'  (string)
  info.udi = '/org/freedesktop/Hal/devices/net_00_13_e8_15_64_05'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'net'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/wlan0'  (string)
  net.80211.mac_address = 85498094597  (0x13e8156405)  (uint64)
  net.address = '00:13:e8:15:64:05'  (string)
  net.arp_proto_hw_id = 1  (0x1)  (int)
  net.interface = 'wlan0'  (string)
  net.linux.ifindex = 4  (0x4)  (int)
  net.originating_device = '/org/freedesktop/Hal/devices/pci_8086_4229'  (string)

udi = '/org/freedesktop/Hal/devices/pci_8086_283f'
  info.linux.driver = 'pcieport-driver'  (string)
  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
  info.product = '82801H (ICH8 Family) PCI Express Port 1'  (string)
  info.subsystem = 'pci'  (string)
  info.udi = '/org/freedesktop/Hal/devices/pci_8086_283f'  (string)
  info.vendor = 'Intel Corporation'  (string)

Comment 4 Andrew Cowie 2008-11-14 10:37:44 UTC
The only divergence on my system was udev; I upgraded that; no change.

Comment 5 Ricardo Salveti 2008-11-25 00:46:17 UTC
Got the same problem here but with a different hardware.

After I upgraded to 2.6.27-r3 and started using the new ath9k module for my Atheros AR5418, hal started to think that my ath0 interface is wired one:

udi = '/org/freedesktop/Hal/devices/net_00_1c_b3_c5_35_73'
  info.capabilities = {'net', 'net.80203', 'wake_on_lan'} (string list)
  info.category = 'net.80203'  (string)
  info.interfaces = {'org.freedesktop.Hal.Device.WakeOnLan'} (string list)
  info.parent = '/org/freedesktop/Hal/devices/pci_168c_24'  (string)
  info.product = 'Networking Interface'  (string)
  info.subsystem = 'net'  (string)
  info.udi = '/org/freedesktop/Hal/devices/net_00_1c_b3_c5_35_73'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'net'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1c.4/0000:0b:00.0/net/ath0'  (string)
  net.80203.mac_address = 123275130227  (0x1cb3c53573)  (uint64)
  net.address = '00:1c:b3:c5:35:73'  (string)
  net.arp_proto_hw_id = 1  (0x1)  (int)
  net.interface = 'ath0'  (string)
  net.linux.ifindex = 6  (0x6)  (int)
  net.originating_device = '/org/freedesktop/Hal/devices/pci_168c_24'  (string)
  org.freedesktop.Hal.Device.WakeOnLan.method_argnames = {'', '', 'enable'} (string list)
  org.freedesktop.Hal.Device.WakeOnLan.method_execpaths = {'hal-system-wol-supported', 'hal-system-wol-enabled', 'hal-system-wol-enable'} (string list)
  org.freedesktop.Hal.Device.WakeOnLan.method_names = {'GetSupported', 'GetEnabled', 'SetEnabled'} (string list)
  org.freedesktop.Hal.Device.WakeOnLan.method_signatures = {'', '', 'b'} (string list)

My packages:
sys-apps/hal-0.5.11-r1  USE="X acpi apm crypt -debug -dell -disk-partition -doc -laptop (-selinux)"
sys-fs/udev-124-r1  USE="(-selinux)"

evamac ~ # modinfo ath9k
filename:       /lib/modules/2.6.27-gentoo-r3/kernel/drivers/net/wireless/ath9k/ath9k.ko
license:        Dual BSD/GPL
description:    Support for Atheros 802.11n wireless LAN cards.
author:         Atheros Communications
Comment 6 Andrew Cowie 2008-11-25 01:23:17 UTC
Wow. Same problem as mine, but on a *different* driver. Yikes. So maybe it's not in the kernel? (Or, alternately, some common kernel subsystem has changed the way it reports information, and that's what is tricking out HAL).

Incidentally, for people without much hands-on knowledge, to get a wireless connection (assuming you are able to skip encryption and know an SSID to use),

# modprobe iwlagn
# ifconfig wlan0 up
# iwconfig wlan0 essid "$insert_ssid_here"
# dhcp -L wlan0

and while this "works" it is a right royal pain. I hope someone can figure out what the underlying problem is.

Comment 7 Ricardo Salveti 2008-11-25 02:25:33 UTC
Created attachment 173293 [details, diff]
hal wireless extension fix

Hal fix to identify when a device has wireless extension.

Patch based on:

After applying the patch hal is able to identify the ath0 device as a wireless one:
udi = '/org/freedesktop/Hal/devices/net_00_1c_b3_c5_35_73'
  info.capabilities = {'net', 'net.80211'} (string list)
  info.category = 'net.80211'  (string)
  info.parent = '/org/freedesktop/Hal/devices/pci_168c_24'  (string)
  info.product = 'WLAN Interface'  (string)
  info.subsystem = 'net'  (string)
  info.udi = '/org/freedesktop/Hal/devices/net_00_1c_b3_c5_35_73'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'net'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1c.4/0000:0b:00.0/net/ath0'  (string)
  net.80211.mac_address = 123275130227  (0x1cb3c53573)  (uint64)
  net.address = '00:1c:b3:c5:35:73'  (string)
  net.arp_proto_hw_id = 1  (0x1)  (int)
  net.interface = 'ath0'  (string)
  net.linux.ifindex = 6  (0x6)  (int)
  net.originating_device = '/org/freedesktop/Hal/devices/pci_168c_24'  (string)

And, network manager started to work again :-)
Comment 8 Ricardo Salveti 2008-11-25 02:30:29 UTC
Sorry, I forgot to mention that the patch is for hal-0.5.11-r4.
Comment 9 Andrew Cowie 2008-11-25 03:23:40 UTC

I added your patch to a local sys-apps/hal-0.5.11-r4 (just added an epatch line to apply it) and emerged it. Restarted hald, and then loaded the iwlagn module. Success!

# lshal
udi = '/org/freedesktop/Hal/devices/net_00_13_e8_14_d1_f1_0'
  info.capabilities = {'net', 'net.80211'} (string list)
  info.category = 'net.80211'  (string)
  info.parent = '/org/freedesktop/Hal/devices/pci_8086_4229'  (string)
  info.product = 'WLAN Interface'  (string)
  info.subsystem = 'net'  (string)
  info.udi = '/org/freedesktop/Hal/devices/net_00_13_e8_14_d1_f1_0'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'net'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/wlan0'  (
  net.80211.mac_address = 85498057201  (0x13e814d1f1)  (uint64)
  net.address = '00:13:e8:14:d1:f1'  (string)
  net.arp_proto_hw_id = 1  (0x1)  (int)
  net.interface = 'wlan0'  (string)
  net.linux.ifindex = 9  (0x9)  (int)
  net.originating_device = '/org/freedesktop/Hal/devices/pci_8086_4229'  (string)

and so indeed NetworkManager now sees the device as a wireless one and does the right thing from there.

Gentoo package maintainers: recommend adding patch at comment #7 to sys-apps/hal and bumping to hal-0.5.11-r5.

Ricardo, I owe you a beer.

Comment 10 Tommaso Pasini 2008-12-12 16:14:50 UTC
The patch fixes the problem also with iwl3945. Nice job!
Comment 11 Ricardo Salveti 2008-12-15 00:13:23 UTC
Saleem, do you need any other additional information before adding this patch to gentoo?

Is there anything else we could do?

Comment 12 Pawel Madej aka Nysander 2008-12-31 20:57:30 UTC
is this patch applied?
Comment 13 Ricardo Salveti 2009-01-01 16:53:01 UTC
(In reply to comment #12)
> is this patch applied?

Nops, not yet

Comment 14 Ryan 2009-01-01 18:01:07 UTC
This was a problem for me also, using iwl3945, 2.6.28 and hal-0.5.11-r4. Not sure when this occured as I just switch to NetworkManager.

The patch in comment #7 fixed it for me.
Comment 15 Ragas 2009-01-07 09:19:18 UTC
The Patch fixed it for me to.
Comment 16 Andy Getz 2009-01-07 18:00:14 UTC
Patch in #7 fixed this issue for me on two systems, one x86 one amd64, both running tuxonice-sources-2.6.28, iwl3945, hal-0.5.11-r5, and networkmanager-0.7.0.
Thanks for the good patch work Ricardo!
Comment 17 Christian Schlotter 2009-01-08 18:41:11 UTC
Thanks, patching hal 0.5.11-r1 with attachment #173293 [details, diff] also fixes the problem for me!
Comment 18 Christian Malerbakken 2009-01-12 06:17:48 UTC
(In reply to comment #17)
> Thanks, patching hal 0.5.11-r1 with attachment #173293 [details, diff] [edit] also fixes the problem
> for me!

Confirmed problem on kernel 2.6.28-gentoo, with ath5k driver, and HAL 0.5.11-r6.
Also confirming that the patch in Comment #7 fixes this problem.
Comment 19 Christian Schmitt 2009-01-13 02:58:07 UTC
Also want to confirm this solves this nasty "oops, where did my WLAN interface go?" error for the b43 driver and Networkmanager under 2.6.28.
Comment 20 Jakub Januszkiewicz 2009-01-17 14:26:23 UTC
I confirm that attachment #173293 [details, diff] fixes the same problem (wlan0 recognized as 802.3) for hal-0.5.11-r6, gentoo-sources-2.6.28 (the rt61pci module) and networkmanager-0.6.6.
Comment 21 Tony Vroon gentoo-dev 2009-02-04 13:00:18 UTC
Sorry guys, I think this got overlooked due to the very long subject line. Let me fix that and reassign so it at least gets looked at. If -r6 didn't fix it, it's very unlikely that -r7 will. (But please do upgrade anyway)
Comment 22 Christian Schmitt 2009-02-04 19:56:27 UTC
-r7 did not fix it. Patch still needed with hal-0.5.11-r7 and hal-info-20090202. Please apply in -r8!
Comment 23 Tony Vroon gentoo-dev 2009-02-04 22:59:38 UTC
+*hal-0.5.11-r8 (04 Feb 2009)
+  04 Feb 2009; <> +hal-0.5.11-r8.ebuild:
+  Revive a patch by Cardoe to fix test failures, closes bug #176535. Enable
+  support for MacBook/MacBook Pro if USE="laptop", closes bug #200643. Patch
+  from Ambroz Bizjak <> removes ill-conceived UID checks so
+  NTFS volumes can be automounted, closes bug #205901. Upstream commits
+  scavenged by Ricardo Salveti <> allow
+  mac80211-based wireless devices to be detected properly, closes bug
+  #246026. Reverted partition unhiding from bug #247025, it was already
+  controversial but has been proven to automount recovery partitions.