Bryan Kadzban wrote:
> Bruce Dubbs wrote:
>> Inside chroot, I do have:
>> $ ls -l /sys/class/net/eth0/
>>
>> device -> ../../../devices/pci0000:00/0000:00:1c.0/0000:02:00.0
>>
>> but of course I don't have lspci in chroot yet.
> 
> On kernel 3.2.3 (I need to try 3.4, but haven't yet),
> /sys/class/net/eth0 itself is a symlink, into the /sys/devices/pciX tree
> for the bus that the card is on.  Is yours a symlink, or a separate
> directory?  

A separate directory.

> If it's a separate directory, then I suspect that's the
> problem: udev doesn't handle that old of a sysfs layout anymore IIRC.

I looked at the .config and I do have

CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y

> (Upstream, for the record, says that newer kernels will work with older
> udev versions, but not the other way around.  Makes a large upgrade
> easy, right?  :-/ )

Yeah, right.  On my host, it looks like I'm running udev-071 (October 
2005), so I'd be hesitant to change things until I boot into the new kernel.

On my development system I do have udev-182.  There I'm running 
Linux-3.3.6 and /sys/class/net/eth0 is a symlink to ../../devices.

> The tree looks something like this in 3.2.3:
> 
> /sys/
> +->class/
> |  +->net/
> |    +->eth0 -> ../../devices/pci0000:00/0000:00:06.0/0000:05:05.0/net/eth0/
> +->devices/pci0000:00/0000:00:06.0
>   +->0000:05:05.0/
>     +->vendor,device,etc.
>     +->subsystem -> ../../../../bus/pci
>     +->driver -> ../../../../bus/pci/drivers/e1000
>     +->net/
>       +->eth0/
>         +->address,ifindex,ifalias,mtu,speed,etc.
>         +->device -> ../../../0000:05:05.0
>         +->subsystem -> ../../../../../../class/net

/sys/
+->class
    +->net/
      +->net/
        +->eth0 -> ../../devices/pci0000:00/0000:00:19.0/net/eth0
                                                       ^^^
                                           slightly different
+->devices/pci0000:00/0000:00:19.0
    +->vendor, device, etc
    The rest looks the same

I do have 70-persistent-net.rules there.

> So since eth0 itself is a link to the net subsystem entry physically
> stored under the pci subsystem entry, udev finds the vendor/device from
> the parent, instead of having to traverse symlinks.
> 
> I don't remember which kernel this showed up in for sure, though.  Might
> have to do with CONFIG_SYSFS_DEPRECATED?  Of course unsetting that might
> break your earlier version of udev, if it's set now.  :-/

I think you may have spotted the problem, but I'm not doing to try 
changing CONFIG_SYSFS_DEPRECATED until I can boot into a system with a 
current udev.

Also, as with the discussion on BLFS support discussing updating glibc 
in place, I think I will put udev in the same category as too risky to 
update in place.

   -- Bruce


   -- Bruce


-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to