Okay, that's what you meant by "human readable". It still seems redundant with the kernel, which has a database of vendor names and associated codes, and a data model which drivers are supposed to conform to which allows devices and drivers to be identifiable in sysfs.

I'm not saying it shouldn't exist; I'm just saying I don't understand why it does.

Last edited by Bones McCracker on Sun Feb 10, 2013 6:08 am; edited 1 time in total

Maybe it doesn't, or doesn't always, but it seems to me that if there's a basic function already being performed to identify devices and tabulate their various characteristics, why should a completely separate function be required merely to layer on top of that some additional information.

I suppose it must be a kernelspace vs userspace thing. The kernel doesn't need to know the human-readable names, but it's useful in userspace. Maybe I'll shut up and first read what you've provided though.

Edit: okay I looked at it. Now I'm left wondering why create something like this just for PCI? Wouldn't it be best to ingrate some information model across all the buses and classes of devices and so on?

Maybe it doesn't, or doesn't always, but it seems to me that if there's a basic function already being performed to identify devices and tabulate their various characteristics, why should a completely separate function be required merely to layer on top of that some additional information.

I suppose it must be a kernelspace vs userspace thing. The kernel doesn't need to know the human-readable names, but it's useful in userspace. Maybe I'll shut up and first read what you've provided though.

It doesn't seem to be very useful if all the peripherals work and you don't change your hardware configuration much. I do seem to recall that the parsing of the database while certain packages are compiling is very slow, even on a fast processor, to the point I thought the computer had crashed. Anyway, this isn't useful, so good luck, hope someone else has more definitive advice than I.

But does the kernel pass the name along with the hardware codes? I get the impression it doesn't and the names are not resolved properly until udev is started.

The kernel "passes" a default name. Actually, since udev-197, the kernel creates the device node via the devtmpfs support. Udev then does nothing with that except add symlinks. Any attempt to rename it is met with an error message.

This is, of course, all in COMPLETE CONTRADICTION to the original stated aim of UDEV that there should be no naming policy in the kernel. UDEV is now completely broken in this regard.

Now, if you're saying that hwdb might actually allow me to get round the catastrophic brokenness then it's worth investigating.