Re: Patch to support drivers compiled into the kernel



I'm sorry, it seems the list manager did not deliver all the replies Kay
Sievers quoted...

In regards to the device particulars, I have included the output of
hal-devices below.

As you can see the network device is:

13: udi = '/org/freedesktop/Hal/devices/net_00_ff_d3_da_b0_00'

The originating device is:

net.originating_device = '/org/freedesktop/Hal/devices/computer'

I don't know much about HAL, but this appears to just be a reference to
the Linux kernel, so there is no driver associated with it.

The other option I considered is just to return "<unknown>" in all cases
when the driver is not found, but I worried that might have un-intended
side effects.

Bill



# hal-devices
0: udi = '/org/freedesktop/Hal/devices/computer_cokbd_port_2'
  linux.sysfs_path = '/sys/devices/serio0'  (string)
  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
  info.subsystem = 'serio'  (string)
  info.linux.driver = 'atkbd'  (string)
  info.product = 'cokbd port'  (string)
  serio.id = 'serio0'  (string)
  info.udi = '/org/freedesktop/Hal/devices/computer_cokbd_port_2'  (string)
  serio.description = 'cokbd port'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'serio'  (string)

1: udi = '/org/freedesktop/Hal/devices/net_00_ff_d3_da_b0_00_2'
  net.interface = 'eth0'  (string)
  linux.sysfs_path = '/sys/class/net/eth0'  (string)
  net.address = '00:ff:d3:da:b0:00'  (string)
  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
  net.linux.ifindex = 2  (0x2)  (int)
  info.subsystem = 'net'  (string)
  net.arp_proto_hw_id = 1  (0x1)  (int)
  info.product = 'Networking Interface'  (string)
  net.80203.mac_address = 1098770984960  (0xffd3dab000)  (uint64)
  info.udi = '/org/freedesktop/Hal/devices/net_00_ff_d3_da_b0_00_2' 
(string)
  net.physical_device = '/org/freedesktop/Hal/devices/computer'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  info.interfaces = { 'org.freedesktop.Hal.Device.WakeOnLan' } (string list)
  linux.subsystem = 'net'  (string)
  org.freedesktop.Hal.Device.WakeOnLan.method_names = { 'GetSupported',
'GetEnabled', 'SetEnabled' } (string list)
  net.originating_device = '/org/freedesktop/Hal/devices/computer'  (string)
  org.freedesktop.Hal.Device.WakeOnLan.method_signatures = { '', '', 'b'
} (string list)
  info.category = 'net.80203'  (string)
  org.freedesktop.Hal.Device.WakeOnLan.method_argnames = { '', '',
'enable' } (string list)
  info.capabilities = { 'net', 'net.80203', 'wake_on_lan' } (string list)
  org.freedesktop.Hal.Device.WakeOnLan.method_execpaths = {
'hal-system-wol-supported', 'hal-system-wol-enabled',
'hal-system-wol-enable' } (string list)

2: udi = '/org/freedesktop/Hal/devices/net_00_00_00_00_0'
  net.interface = 'sit0'  (string)
  linux.sysfs_path = '/sys/class/net/sit0'  (string)
  net.address = '00:00:00:00'  (string)
  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
  net.linux.ifindex = 3  (0x3)  (int)
  info.subsystem = 'net'  (string)
  net.arp_proto_hw_id = 776  (0x308)  (int)
  info.udi = '/org/freedesktop/Hal/devices/net_00_00_00_00_0'  (string)
  net.physical_device = '/org/freedesktop/Hal/devices/computer'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'net'  (string)
  net.originating_device = '/org/freedesktop/Hal/devices/computer'  (string)
  info.category = 'net'  (string)
  info.capabilities = { 'net' } (string list)

3: udi = '/org/freedesktop/Hal/devices/net_computer_loopback_2'
  net.interface = 'lo'  (string)
  linux.sysfs_path = '/sys/class/net/lo'  (string)
  net.address = '00:00:00:00:00:00'  (string)
  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
  net.linux.ifindex = 1  (0x1)  (int)
  info.subsystem = 'net'  (string)
  net.arp_proto_hw_id = 772  (0x304)  (int)
  info.product = 'Loopback device Interface'  (string)
  info.udi = '/org/freedesktop/Hal/devices/net_computer_loopback_2' 
(string)
  net.physical_device = '/org/freedesktop/Hal/devices/computer'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'net'  (string)
  net.originating_device = '/org/freedesktop/Hal/devices/computer'  (string)
  info.category = 'net.loopback'  (string)
  info.capabilities = { 'net', 'net.loopback' } (string list)

4: udi = '/org/freedesktop/Hal/devices/net_00_00_00_00'
  net.interface = 'sit0'  (string)
  linux.sysfs_path = '/sys/class/net/sit0'  (string)
  net.address = '00:00:00:00'  (string)
  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
  net.linux.ifindex = 3  (0x3)  (int)
  info.subsystem = 'net'  (string)
  net.arp_proto_hw_id = 776  (0x308)  (int)
  info.udi = '/org/freedesktop/Hal/devices/net_00_00_00_00'  (string)
  net.physical_device = '/org/freedesktop/Hal/devices/computer'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'net'  (string)
  net.originating_device = '/org/freedesktop/Hal/devices/computer'  (string)
  info.category = 'net'  (string)
  info.capabilities = { 'net' } (string list)

5: udi = '/org/freedesktop/Hal/devices/computer_cokbd_port_1'
  linux.sysfs_path = '/sys/devices/serio0'  (string)
  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
  info.subsystem = 'serio'  (string)
  info.linux.driver = 'atkbd'  (string)
  info.product = 'cokbd port'  (string)
  serio.id = 'serio0'  (string)
  info.udi = '/org/freedesktop/Hal/devices/computer_cokbd_port_1'  (string)
  serio.description = 'cokbd port'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'serio'  (string)

6: udi = '/org/freedesktop/Hal/devices/net_00_ff_d3_da_b0_00_1'
  net.interface = 'eth0'  (string)
  linux.sysfs_path = '/sys/class/net/eth0'  (string)
  net.address = '00:ff:d3:da:b0:00'  (string)
  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
  net.linux.ifindex = 2  (0x2)  (int)
  info.subsystem = 'net'  (string)
  net.arp_proto_hw_id = 1  (0x1)  (int)
  info.product = 'Networking Interface'  (string)
  net.80203.mac_address = 1098770984960  (0xffd3dab000)  (uint64)
  info.udi = '/org/freedesktop/Hal/devices/net_00_ff_d3_da_b0_00_1' 
(string)
  net.physical_device = '/org/freedesktop/Hal/devices/computer'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  info.interfaces = { 'org.freedesktop.Hal.Device.WakeOnLan' } (string list)
  linux.subsystem = 'net'  (string)
  org.freedesktop.Hal.Device.WakeOnLan.method_names = { 'GetSupported',
'GetEnabled', 'SetEnabled' } (string list)
  net.originating_device = '/org/freedesktop/Hal/devices/computer'  (string)
  org.freedesktop.Hal.Device.WakeOnLan.method_signatures = { '', '', 'b'
} (string list)
  info.category = 'net.80203'  (string)
  org.freedesktop.Hal.Device.WakeOnLan.method_argnames = { '', '',
'enable' } (string list)
  info.capabilities = { 'net', 'net.80203', 'wake_on_lan' } (string list)
  org.freedesktop.Hal.Device.WakeOnLan.method_execpaths = {
'hal-system-wol-supported', 'hal-system-wol-enabled',
'hal-system-wol-enable' } (string list)

7: udi = '/org/freedesktop/Hal/devices/net_computer_loopback_1'
  net.interface = 'lo'  (string)
  linux.sysfs_path = '/sys/class/net/lo'  (string)
  net.address = '00:00:00:00:00:00'  (string)
  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
  net.linux.ifindex = 1  (0x1)  (int)
  info.subsystem = 'net'  (string)
  net.arp_proto_hw_id = 772  (0x304)  (int)
  info.product = 'Loopback device Interface'  (string)
  info.udi = '/org/freedesktop/Hal/devices/net_computer_loopback_1' 
(string)
  net.physical_device = '/org/freedesktop/Hal/devices/computer'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'net'  (string)
  net.originating_device = '/org/freedesktop/Hal/devices/computer'  (string)
  info.category = 'net.loopback'  (string)
  info.capabilities = { 'net', 'net.loopback' } (string list)

8: udi = '/org/freedesktop/Hal/devices/computer_cokbd_port_0'
  linux.sysfs_path = '/sys/devices/serio0'  (string)
  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
  info.subsystem = 'serio'  (string)
  info.linux.driver = 'atkbd'  (string)
  info.product = 'cokbd port'  (string)
  serio.id = 'serio0'  (string)
  info.udi = '/org/freedesktop/Hal/devices/computer_cokbd_port_0'  (string)
  serio.description = 'cokbd port'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'serio'  (string)

9: udi = '/org/freedesktop/Hal/devices/net_00_ff_d3_da_b0_00_0'
  net.interface = 'eth0'  (string)
  linux.sysfs_path = '/sys/class/net/eth0'  (string)
  net.address = '00:ff:d3:da:b0:00'  (string)
  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
  net.linux.ifindex = 2  (0x2)  (int)
  info.subsystem = 'net'  (string)
  net.arp_proto_hw_id = 1  (0x1)  (int)
  info.product = 'Networking Interface'  (string)
  net.80203.mac_address = 1098770984960  (0xffd3dab000)  (uint64)
  info.udi = '/org/freedesktop/Hal/devices/net_00_ff_d3_da_b0_00_0' 
(string)
  net.physical_device = '/org/freedesktop/Hal/devices/computer'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  info.interfaces = { 'org.freedesktop.Hal.Device.WakeOnLan' } (string list)
  linux.subsystem = 'net'  (string)
  org.freedesktop.Hal.Device.WakeOnLan.method_names = { 'GetSupported',
'GetEnabled', 'SetEnabled' } (string list)
  net.originating_device = '/org/freedesktop/Hal/devices/computer'  (string)
  org.freedesktop.Hal.Device.WakeOnLan.method_signatures = { '', '', 'b'
} (string list)
  info.category = 'net.80203'  (string)
  org.freedesktop.Hal.Device.WakeOnLan.method_argnames = { '', '',
'enable' } (string list)
  info.capabilities = { 'net', 'net.80203', 'wake_on_lan' } (string list)
  org.freedesktop.Hal.Device.WakeOnLan.method_execpaths = {
'hal-system-wol-supported', 'hal-system-wol-enabled',
'hal-system-wol-enable' } (string list)

10: udi = '/org/freedesktop/Hal/devices/net_computer_loopback_0'
  net.interface = 'lo'  (string)
  linux.sysfs_path = '/sys/class/net/lo'  (string)
  net.address = '00:00:00:00:00:00'  (string)
  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
  net.linux.ifindex = 1  (0x1)  (int)
  info.subsystem = 'net'  (string)
  net.arp_proto_hw_id = 772  (0x304)  (int)
  info.product = 'Loopback device Interface'  (string)
  info.udi = '/org/freedesktop/Hal/devices/net_computer_loopback_0' 
(string)
  net.physical_device = '/org/freedesktop/Hal/devices/computer'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'net'  (string)
  net.originating_device = '/org/freedesktop/Hal/devices/computer'  (string)
  info.category = 'net.loopback'  (string)
  info.capabilities = { 'net', 'net.loopback' } (string list)

11: udi = '/org/freedesktop/Hal/devices/computer'
  system.formfactor = 'unknown'  (string)
  power_management.can_suspend_to_ram = false  (bool)
  org.freedesktop.Hal.Device.SystemPowerManagement.method_argnames = {
'num_seconds_to_sleep', 'num_seconds_to_sleep', '', '', '',
'enable_power_save' } (string list)
  power_management.can_suspend_to_disk = false  (bool)
  org.freedesktop.Hal.Device.SystemPowerManagement.method_execpaths = {
'hal-system-power-suspend', 'hal-system-power-suspend-hybrid',
'hal-system-power-hibernate', 'hal-system-power-shutdown',
'hal-system-power-reboot', 'hal-system-power-set-power-save' } (string list)
  info.subsystem = 'unknown'  (string)
  power_management.quirk.vbe_post = true  (bool)
  power_management.is_powersave_set = false  (bool)
  info.product = 'Computer'  (string)
  power_management.quirk.dpms_on = true  (bool)
  info.callouts.add = { 'hal-acl-tool --remove-all',
'hal-storage-cleanup-all-mountpoints' } (string list)
  info.udi = '/org/freedesktop/Hal/devices/computer'  (string)
  power_management.quirk.vbestate_restore = true  (bool)
  info.callouts.session_add = { 'hal-acl-tool --reconfigure' } (string list)
  system.kernel.name = 'Linux'  (string)
  power_management.quirk.vbemode_restore = true  (bool)
  info.callouts.session_remove = { 'hal-acl-tool --reconfigure' }
(string list)
  system.kernel.version = '2.6.22.18-co-0.7.3'  (string)
  power_management.quirk.dpms_suspend = true  (bool)
  info.interfaces = { 'org.freedesktop.Hal.Device.SystemPowerManagement'
} (string list)
  info.callouts.session_active = { 'hal-acl-tool --reconfigure' }
(string list)
  system.kernel.machine = 'i686'  (string)
  power_management.quirk.vga_mode_3 = true  (bool)
  info.callouts.session_inactive = { 'hal-acl-tool --reconfigure' }
(string list)
  power_management.can_suspend = false  (bool)
  info.addons = { 'hald-addon-cpufreq' } (string list)
  power_management.can_suspend_hybrid = false  (bool)
  org.freedesktop.Hal.Device.SystemPowerManagement.method_names = {
'Suspend', 'SuspendHybrid', 'Hibernate', 'Shutdown', 'Reboot',
'SetPowerSave' } (string list)
  power_management.can_hibernate = false  (bool)
  org.freedesktop.Hal.Device.SystemPowerManagement.method_signatures = {
'i', 'i', '', '', '', 'b' } (string list)

12: udi = '/org/freedesktop/Hal/devices/net_computer_loopback'
  net.interface = 'lo'  (string)
  linux.sysfs_path = '/sys/class/net/lo'  (string)
  net.address = '00:00:00:00:00:00'  (string)
  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
  net.linux.ifindex = 1  (0x1)  (int)
  info.subsystem = 'net'  (string)
  net.arp_proto_hw_id = 772  (0x304)  (int)
  info.product = 'Loopback device Interface'  (string)
  info.udi = '/org/freedesktop/Hal/devices/net_computer_loopback'  (string)
  net.physical_device = '/org/freedesktop/Hal/devices/computer'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'net'  (string)
  net.originating_device = '/org/freedesktop/Hal/devices/computer'  (string)
  info.category = 'net.loopback'  (string)
  info.capabilities = { 'net', 'net.loopback' } (string list)

13: udi = '/org/freedesktop/Hal/devices/net_00_ff_d3_da_b0_00'
  net.interface = 'eth0'  (string)
  linux.sysfs_path = '/sys/class/net/eth0'  (string)
  net.address = '00:ff:d3:da:b0:00'  (string)
  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
  net.linux.ifindex = 2  (0x2)  (int)
  info.subsystem = 'net'  (string)
  net.arp_proto_hw_id = 1  (0x1)  (int)
  info.product = 'Networking Interface'  (string)
  net.80203.mac_address = 1098770984960  (0xffd3dab000)  (uint64)
  info.udi = '/org/freedesktop/Hal/devices/net_00_ff_d3_da_b0_00'  (string)
  net.physical_device = '/org/freedesktop/Hal/devices/computer'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  info.interfaces = { 'org.freedesktop.Hal.Device.WakeOnLan' } (string list)
  linux.subsystem = 'net'  (string)
  org.freedesktop.Hal.Device.WakeOnLan.method_names = { 'GetSupported',
'GetEnabled', 'SetEnabled' } (string list)
  net.originating_device = '/org/freedesktop/Hal/devices/computer'  (string)
  org.freedesktop.Hal.Device.WakeOnLan.method_signatures = { '', '', 'b'
} (string list)
  info.category = 'net.80203'  (string)
  org.freedesktop.Hal.Device.WakeOnLan.method_argnames = { '', '',
'enable' } (string list)
  info.capabilities = { 'net', 'net.80203', 'wake_on_lan' } (string list)
  org.freedesktop.Hal.Device.WakeOnLan.method_execpaths = {
'hal-system-wol-supported', 'hal-system-wol-enabled',
'hal-system-wol-enable' } (string list)

14: udi = '/org/freedesktop/Hal/devices/computer_cokbd_port'
  linux.sysfs_path = '/sys/devices/serio0'  (string)
  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
  info.subsystem = 'serio'  (string)
  info.linux.driver = 'atkbd'  (string)
  info.product = 'cokbd port'  (string)
  serio.id = 'serio0'  (string)
  info.udi = '/org/freedesktop/Hal/devices/computer_cokbd_port'  (string)
  serio.description = 'cokbd port'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'serio'  (string)

# find /sys/class/net
/sys/class/net
/sys/class/net/sit0
/sys/class/net/sit0/statistics
/sys/class/net/sit0/statistics/tx_compressed
/sys/class/net/sit0/statistics/rx_compressed
/sys/class/net/sit0/statistics/tx_window_errors
/sys/class/net/sit0/statistics/tx_heartbeat_errors
/sys/class/net/sit0/statistics/tx_fifo_errors
/sys/class/net/sit0/statistics/tx_carrier_errors
/sys/class/net/sit0/statistics/tx_aborted_errors
/sys/class/net/sit0/statistics/rx_missed_errors
/sys/class/net/sit0/statistics/rx_fifo_errors
/sys/class/net/sit0/statistics/rx_frame_errors
/sys/class/net/sit0/statistics/rx_crc_errors
/sys/class/net/sit0/statistics/rx_over_errors
/sys/class/net/sit0/statistics/rx_length_errors
/sys/class/net/sit0/statistics/collisions
/sys/class/net/sit0/statistics/multicast
/sys/class/net/sit0/statistics/tx_dropped
/sys/class/net/sit0/statistics/rx_dropped
/sys/class/net/sit0/statistics/tx_errors
/sys/class/net/sit0/statistics/rx_errors
/sys/class/net/sit0/statistics/tx_bytes
/sys/class/net/sit0/statistics/rx_bytes
/sys/class/net/sit0/statistics/tx_packets
/sys/class/net/sit0/statistics/rx_packets
/sys/class/net/sit0/weight
/sys/class/net/sit0/tx_queue_len
/sys/class/net/sit0/flags
/sys/class/net/sit0/mtu
/sys/class/net/sit0/operstate
/sys/class/net/sit0/dormant
/sys/class/net/sit0/carrier
/sys/class/net/sit0/broadcast
/sys/class/net/sit0/address
/sys/class/net/sit0/link_mode
/sys/class/net/sit0/type
/sys/class/net/sit0/features
/sys/class/net/sit0/ifindex
/sys/class/net/sit0/iflink
/sys/class/net/sit0/addr_len
/sys/class/net/sit0/subsystem
/sys/class/net/sit0/uevent
/sys/class/net/eth0
/sys/class/net/eth0/statistics
/sys/class/net/eth0/statistics/tx_compressed
/sys/class/net/eth0/statistics/rx_compressed
/sys/class/net/eth0/statistics/tx_window_errors
/sys/class/net/eth0/statistics/tx_heartbeat_errors
/sys/class/net/eth0/statistics/tx_fifo_errors
/sys/class/net/eth0/statistics/tx_carrier_errors
/sys/class/net/eth0/statistics/tx_aborted_errors
/sys/class/net/eth0/statistics/rx_missed_errors
/sys/class/net/eth0/statistics/rx_fifo_errors
/sys/class/net/eth0/statistics/rx_frame_errors
/sys/class/net/eth0/statistics/rx_crc_errors
/sys/class/net/eth0/statistics/rx_over_errors
/sys/class/net/eth0/statistics/rx_length_errors
/sys/class/net/eth0/statistics/collisions
/sys/class/net/eth0/statistics/multicast
/sys/class/net/eth0/statistics/tx_dropped
/sys/class/net/eth0/statistics/rx_dropped
/sys/class/net/eth0/statistics/tx_errors
/sys/class/net/eth0/statistics/rx_errors
/sys/class/net/eth0/statistics/tx_bytes
/sys/class/net/eth0/statistics/rx_bytes
/sys/class/net/eth0/statistics/tx_packets
/sys/class/net/eth0/statistics/rx_packets
/sys/class/net/eth0/weight
/sys/class/net/eth0/tx_queue_len
/sys/class/net/eth0/flags
/sys/class/net/eth0/mtu
/sys/class/net/eth0/operstate
/sys/class/net/eth0/dormant
/sys/class/net/eth0/carrier
/sys/class/net/eth0/broadcast
/sys/class/net/eth0/address
/sys/class/net/eth0/link_mode
/sys/class/net/eth0/type
/sys/class/net/eth0/features
/sys/class/net/eth0/ifindex
/sys/class/net/eth0/iflink
/sys/class/net/eth0/addr_len
/sys/class/net/eth0/subsystem
/sys/class/net/eth0/uevent
/sys/class/net/lo
/sys/class/net/lo/statistics
/sys/class/net/lo/statistics/tx_compressed
/sys/class/net/lo/statistics/rx_compressed
/sys/class/net/lo/statistics/tx_window_errors
/sys/class/net/lo/statistics/tx_heartbeat_errors
/sys/class/net/lo/statistics/tx_fifo_errors
/sys/class/net/lo/statistics/tx_carrier_errors
/sys/class/net/lo/statistics/tx_aborted_errors
/sys/class/net/lo/statistics/rx_missed_errors
/sys/class/net/lo/statistics/rx_fifo_errors
/sys/class/net/lo/statistics/rx_frame_errors
/sys/class/net/lo/statistics/rx_crc_errors
/sys/class/net/lo/statistics/rx_over_errors
/sys/class/net/lo/statistics/rx_length_errors
/sys/class/net/lo/statistics/collisions
/sys/class/net/lo/statistics/multicast
/sys/class/net/lo/statistics/tx_dropped
/sys/class/net/lo/statistics/rx_dropped
/sys/class/net/lo/statistics/tx_errors
/sys/class/net/lo/statistics/rx_errors
/sys/class/net/lo/statistics/tx_bytes
/sys/class/net/lo/statistics/rx_bytes
/sys/class/net/lo/statistics/tx_packets
/sys/class/net/lo/statistics/rx_packets
/sys/class/net/lo/weight
/sys/class/net/lo/tx_queue_len
/sys/class/net/lo/flags
/sys/class/net/lo/mtu
/sys/class/net/lo/operstate
/sys/class/net/lo/dormant
/sys/class/net/lo/carrier
/sys/class/net/lo/broadcast
/sys/class/net/lo/address
/sys/class/net/lo/link_mode
/sys/class/net/lo/type
/sys/class/net/lo/features
/sys/class/net/lo/ifindex
/sys/class/net/lo/iflink
/sys/class/net/lo/addr_len
/sys/class/net/lo/subsystem
/sys/class/net/lo/uevent


Kay Sievers wrote:
> On Tue, Mar 3, 2009 at 18:48, Dan Williams <dcbw redhat com> wrote:
>   
>> On Tue, 2009-03-03 at 18:38 +0100, Kay Sievers wrote:
>>     
>>> On Tue, Mar 3, 2009 at 16:21, Dan Williams <dcbw redhat com> wrote:
>>>       
>>>> On Tue, 2009-03-03 at 09:54 -0500, Bill C Riemers wrote:
>>>>         
>>>>> Currently, NetworkManager ignores any network driver that does not have
>>>>> a loadable module associated with it.   This is a problem, when the
>>>>> network driver has been compiled directly into the kernel.  This is
>>>>> typically done for coLinux, and other environments where a loadable
>>>>> module network driver is not supported.
>>>>>
>>>>> The following patch marks the driver for such devices as "<kernel>", so
>>>>> that NetworkManager will not ignore them.   However, NetworkManager will
>>>>> still ignore network devices which do not have a driver associated with
>>>>> them and is not built-in as part of the kernel.
>>>>>
>>>>> Note: I created this patch on Fedora 10, against the 0.7.0-1 version.
>>>>> Please let me know if I need to do a git checkout and rebuild this patch
>>>>> against the current code base.
>>>>>           
>>>> Hmm, I'd like to see what sysfs looks like for these devices; do you
>>>> have a /sys/class/net/ethX/device directory for that device, and if so,
>>>> what's in it?
>>>>         
>>> There should be no difference, maybe some "module" link does not exist
>>> if it's built-in, but usually even they are created.
>>>
>>> These days, even /sys/module/ should be identical for modules and
>>> built-in code, besides the "refcount" and the sections "attributes"
>>> which only exist for loadable modules.
>>>       
>> Yeah; it used to be the case that drivers wouldn't call the right bits
>> to get the device link which would then provide the driver.
>>     
>
> Right, the driver should be determined by finding the first parent
> device which has a "driver" link. The "device" link should not be used
> for anything else than finding the parent device in ancient kernels.
> In modern kernels, all parent devices are part of the devpath of the
> device itself. The position of the device link might change with valid
> kernel changes, when devices need to be inserted into the chain of
> devices.
>
>   
>> I'm not
>> convinced the patch is the right way to go until we figure out if the
>> driver is the culprit.
>>     
>
> Yeah, the patch does not look right. I would expect the driver does
> not set the right parent device at all.
>
> Kay
>   



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]