Hi all,
I have spent a couple of hours googling this problem, to no avail.
The "presenting problem" is that NetworkManager doesn't correctly handle my Intel PRO/Wireless 2100B card. nm-tool says this about it:
- Device: eth2 ----------------------------------------------------------------
NM Path: /org/freedesktop/NetworkManager/Devices/eth2
Type: Wired
Driver: ipw2100
Active: no
HW Address: 00:0C:F1:22:65:99
Capabilities:
Supported: yes
Carrier Detect: yes
Wired Settings
Hardware Link: no
Obviously the type 'Wired' is not right.
After digging around a bit, I discovered that this is because HAL doesn't recognize the card correctly. I'm a bit out of my depth here, having just trusted HAL in the past, but here's what I found. lshal reports this about the card:
udi = '/org/freedesktop/Hal/devices/pci_8086_1043'
info.udi = '/org/freedesktop/Hal/devices/pci_8086_1043' (string)
linux.subsystem = 'pci' (string)
linux.hotplug_type = 1 (0x1) (int)
pci.subsys_product
= 'Unknown (0x2561)' (string)
pci.subsys_vendor = 'Intel Corporation' (string)
info.product = 'PRO/Wireless LAN 2100 3B Mini PCI Adapter' (string)
pci.product = 'PRO/Wireless LAN 2100 3B Mini PCI Adapter' (string)
info.vendor = 'Intel Corporation' (string)
pci.vendor = 'Intel Corporation' (string)
pci.device_protocol = 0 (0x0) (int)
pci.device_subclass = 128 (0x80) (int)
pci.device_class = 2 (0x2) (int)
pci.subsys_vendor_id = 32902 (0x8086) (int)
pci.subsys_product_id = 9569 (0x2561) (int)
pci.vendor_id = 32902 (0x8086) (int)
pci.product_id = 4163 (0x1043) (int)
info.linux.driver = 'ipw2100' (string)
pci.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1e.0/0000:02:02.0' (string)
info.parent = '/org/freedesktop/Hal/devices/pci_8086_244e' (string)
info.bus = 'pci' (string)
linux.sysfs_path_device
= '/sys/devices/pci0000:00/0000:00:1e.0/0000:02:02.0' (string)
linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1e.0/0000:02:02.0' (string)
udi = '/org/freedesktop/Hal/devices/net_00_0c_f1_22_65_99'
info.udi = '/org/freedesktop/Hal/devices/net_00_0c_f1_22_65_99' (string)
linux.subsystem = 'net' (string)
linux.hotplug_type = 2 (0x2) (int)
net.80203.mac_address = 55585170841 (0xcf1226599) (uint64)
info.product = 'Networking Interface' (string)
net.arp_proto_hw_id = 1 (0x1) (int)
net.linux.ifindex = 4 (0x4) (int)
net.address = '00:0c:f1:22:65:99' (string)
net.interface = 'eth2' (string)
net.physical_device = '/org/freedesktop/Hal/devices/pci_8086_1043' (string)
info.capabilities = {'net', 'net.80203'} (string list)
info.category = 'net.80203' (string)
info.parent = '/org/freedesktop/Hal/devices/pci_8086_1043' (string)
linux.sysfs_path = '/sys/class/net/eth2' (string)
Obviously the info.category setting is wrong, among others. I tried adding this fdi file to /etc/hal/fdi/information (modified version of something I found on the web):
<deviceinfo version="0.2">
<device>
<match key="info.bus" string="pci">
<match key="pci.linux.sysfs_path" string="/sys/devices/pci0000:00/0000:00:
1e.0/0000:02:02.0">
<merge key="info.capabilities" type="string">net.80211</merge>
<merge key="info.product" type="string">PRO/Wireless LAN 2100 3B Mini PCI Adapter</merge>
<merge key="net.linux.sysfs_path" type="string">/sys/class/net/wlan0</merge>
<merge key="net.interface" type="string">wlan0</merge>
<merge key="
net.linux.driver" type="string">ipw2100</merge>
<merge key="net.media" type="string">Ethernet</merge>
<merge key="info.category" type="string">
net.80211</merge>
</match>
</match>
</device>
</deviceinfo>
When this is installed the lshal output changes to this:
udi = '/org/freedesktop/Hal/devices/pci_8086_1043'
info.udi = '/org/freedesktop/Hal/devices/pci_8086_1043' (string)
info.category = 'net.80211' (string)
net.media = 'Ethernet' (string)
net.linux.driver = 'ipw2100' (string)
net.interface = 'wlan0' (string)
net.linux.sysfs_path = '/sys/class/net/wlan0' (string)
info.capabilities = 'net.80211' (string)
linux.subsystem = 'pci' (string)
linux.hotplug_type = 1 (0x1) (int)
pci.subsys_product = 'Unknown (0x2561)' (string)
pci.subsys_vendor = 'Intel Corporation' (string)
info.product = 'PRO/Wireless LAN 2100 3B Mini PCI Adapter' (string)
pci.product = 'PRO/Wireless LAN 2100 3B Mini PCI Adapter' (string)
info.vendor = 'Intel Corporation' (string)
pci.vendor = 'Intel Corporation' (string)
pci.device_protocol = 0 (0x0) (int)
pci.device_subclass = 128 (0x80) (int)
pci.device_class = 2 (0x2) (int)
pci.subsys_vendor_id = 32902 (0x8086) (int)
pci.subsys_product_id = 9569 (0x2561) (int)
pci.vendor_id = 32902 (0x8086) (int)
pci.product_id = 4163 (0x1043) (int)
info.linux.driver = 'ipw2100' (string)
pci.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:
1e.0/0000:02:02.0' (string)
info.parent = '/org/freedesktop/Hal/devices/pci_8086_244e' (string)
info.bus = 'pci' (string)
linux.sysfs_path_device = '/sys/devices/pci0000:00/0000:00:1e.0/0000:02:02.0' (string)
linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1e.0/0000:02:02.0' (string)
udi = '/org/freedesktop/Hal/devices/net_00_0c_f1_22_65_99'
info.udi = '/org/freedesktop/Hal/devices/net_00_0c_f1_22_65_99' (string)
linux.subsystem = 'net' (string)
linux.hotplug_type = 2 (0x2) (int)
net.80203.mac_address = 55585170841 (0xcf1226599) (uint64)
info.product = 'Networking Interface' (string)
net.arp_proto_hw_id
= 1 (0x1) (int)
net.linux.ifindex = 4 (0x4) (int)
net.address = '00:0c:f1:22:65:99' (string)
net.interface = 'eth2' (string)
net.physical_device = '/org/freedesktop/Hal/devices/pci_8086_1043' (string)
info.capabilities = {'net', 'net.80203'} (string list)
info.category = 'net.80203' (string)
info.parent = '/org/freedesktop/Hal/devices/pci_8086_1043' (string)
linux.sysfs_path = '/sys/class/net/eth2' (string)
ie. the network device hasn't picked up any of the extra capabilities.
Does anyone know either what I've got set up wrong, or what magic to add to the fdi to make this work?
Thanks,
Tom Cook