Arch Linux

Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#17947 - [udev] 'pci-db' binary searches in USB ID database instead of PCI

Attached to Project: Arch Linux
Opened by Marti (intgr) - Thursday, 21 January 2010, 18:10 GMT
Last edited by Jan de Groot (JGC) - Tuesday, 26 January 2010, 09:22 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To Tobias Powalowski (tpowa)
Architecture x86_64
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description:
The current /lib/udev/pci-db binary included with Arch's 146-2 searches the USB identification database instead of PCI database. This binary is used by many udev rules files to identify the vendor and model of PCI devices.

In the udev source tree there's extras/usb-db/usb-db.c which needs to be compiled twice: once with -DBUILD_FOR_USB as usb-db and with -DBUILD_FOR_PCI as pci-db

Apparently in Arch's case both pci-db and usb-db are built with BUILD_FOR_USB

Steps to reproduce:
% sudo strace -eopen /lib/udev/pci-db devices/pci0000:00/0000:00:11.0
open("/etc/ld.so.cache", O_RDONLY) = 3
open("/lib/libc.so.6", O_RDONLY) = 3
open("/etc/udev/udev.conf", O_RDONLY) = 3
open("/sys/devices/pci0000:00/0000:00:11.0/vendor", O_RDONLY) = 3
open("/sys/devices/pci0000:00/0000:00:11.0/device", O_RDONLY) = 3
open("/usr/share/hwdata/usb.ids", O_RDONLY) = 3

% sudo strace -eopen /usr/src/udev/extras/usb-db/pci-db devices/pci0000:00/0000:00:11.0
open("/etc/ld.so.cache", O_RDONLY) = 3
open("/lib/libc.so.6", O_RDONLY) = 3
open("/usr/etc/udev/udev.conf", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/sys/devices/pci0000:00/0000:00:11.0/vendor", O_RDONLY) = 3
open("/sys/devices/pci0000:00/0000:00:11.0/device", O_RDONLY) = 3
open("/usr/share/hwdata/pci.ids", O_RDONLY) = 3
ID_VENDOR_FROM_DATABASE=ATI Technologies Inc
ID_MODEL_FROM_DATABASE=SB700/SB800 SATA Controller [IDE mode]
This task depends upon

Closed by  Jan de Groot (JGC)
Tuesday, 26 January 2010, 09:22 GMT
Reason for closing:  Fixed
Additional comments about closing:  Fixed in >=149.
Comment by Jan de Groot (JGC) - Thursday, 21 January 2010, 18:31 GMT
Building without makeflags could help here I think.
Comment by Gerardo Exequiel Pozzi (djgera) - Thursday, 21 January 2010, 18:38 GMT
udev-149-1 (both archs) is not affected by this.

$ strings lib/udev/pci-db | grep ids
/usr/share/hwdata/pci.ids
Failed to open database file /usr/share/hwdata/pci.ids: %s

Loading...