Help - Search - Members - Calendar
Full Version: [How To] Tips for Finding Vendor and Device ID's
InsanelyMac Forum > OSx86 Project > Tutorials (The Genius Bar)
Rammjet
[How To] Tips for Finding Vendor and Device ID's

The following explains what vendor and device id's are and how to find and use them in your installation.

Why Vendor and Device ID's

Every device that makes up a computer needs to have a unique identifier. The operating system uses this identifier to bind a driver to that device. The unique identifier is made up of an industry-assigned code for the vendor (manufacturer) of the device and a serial number for that device which is assigned by the vendor. Each of these two values is made up of 4 hexadecimal (hex) characters.

For instance, the vendor id of Intel is 0x8086, where the leading "0x" identifies this as a hex value. The actual vendor id is the 4 characters "8086".

OSX keeps a list of all vendor id's and device id's that are contained in the kexts installed in the system. When the computer is booted, OSX quizzes the ROM on each device to get its vendor and device id's. Then it uses its list to see if a match exists, and if it does, it binds the kext (driver) to that device.

How to Find Vendor and Device ID's

System Profiler is found in the Utilities folder of OSX. You can also access it through "About This Mac" by clicking the "More Info..." button.

Click on the device type (PCI, USB) in the left pane and find the device in the right pane. You should see a vendor id and a device id. You may have to click on the device in the right pane and read the values at bottom right.

If you cannot find the values there, then you should try reading them in Windows.

Windows - Go to Windows and open Device Manager. Find your device and get Properties for that device. Click the Details tab and read the vendor id and device id. The vendor id is the 4 characters after the letters "VEN_" and the device id is the 4 characters after the letters "DEV_".

If you do not find a Details tab in Device Manager, then read this.

If you do not have Windows on your computer, you can also use Linux.

Linux - use the "lspci" command. In Linux, read the "man" page for the command by typing: man lspci

Google - if all else fails, try Google. If you have a motherboard XYZ and want to find the vendor and device of the ethernet device, try a search like this: XYZ ethernet vendor device.

If you have a computer like a Dell ABC and want the wireless device, try a Google search like this: Dell ABC wireless vendor device.

Read several of the returned articles until you get 2 or 3 that agree on the correct values.

What the Vendor and Device ID's Mean

Once you have the vendor and device id's, you might want to verify that they are valid. To do that, you can use the Linux PCI ID Repository found here.

First, find your vendor id and read the entry for it to see if it sounds like it could be the vendor for your device. Then click on the vendor id in the left column and find your device id. Read the entry for that to see if it sounds like your device.

How Vendor and Device ID's Are Used in Kexts

The vendor and device ids are used in the kext (driver) to tell OSX to bind that particular kext to the device with the vendor/device id's. The id's are placed into the Info.plist file inside the kext. To see the Info.plist, right-click on the kext and select "Show Package Contents". Open the Contents folder and find the Info.plist. Drag and drop the Info.plist onto TextEdit (in Applications folder) to view the contents of the file.

The entry for the vendor and device ids can take different forms. There is no hard and fast rule, just observe what that particular kext uses and follow along. Here are some examples:

CODE
<key>IONameMatch</key>          <key>IOPCIPrimaryMatch</key>   <key>IOPCIMatch</key>
<string>pci8086,27d8</string>   <string>0x27d88086</string>    <string>0x808627d8</string>

In this example, the vendor id is "8086" and the device id is "27d8". Chances are when you look at the Info.plist, your vendor id will match one that is already there. Use that as your clue as to the arrangement of the vendor and device id's. Otherwise, use the Linux PCI ID Repository explained above to help determine which is a vendor id and which is a device id. Then place your values in the same pattern.
np101137
Nice guide Rammjet, thanks for the info!
looper
Very informative, thanks!
gely
nice but only work for already "reconized" hardware.

You need (from windows) a tool like "udevices" to view all hardware (known and unknown).
I do not know if a same tool exist in osx ?

thanks for the tips wink.gif

edited :
for mac (date of 1998) there is http://www.eskimo.com/~pristine/diag.html#pciprober
do not found any osx equivalent. keep searching.

from apple :
QUOTE
PCI DDK 1.1.1 Mac OS X (DMG)
10.0 MB 2002-05-01
This DDK (Driver Development Kit) will enable you to create Mac OS X Kext (kernel) drivers for PCI cards. Documentation, Samples, and Tools to get you started are included. To create OpenFirmware FCode drivers, please use the existing Tokenizer on the PCI DDK for Mac OS 9.


not tested : ftp://ftp.apple.com/developer/Development....1_Mac_OS_X.dmg

for windows : udevices :

unknown devices : http://www.halfdone.com/
and craig PCI database : http://members.datafast.net.au/~dft0802/

hope this will help wink.gif
gely
for OSX (do not had testing yet) :

> hostinfo
> ioreg -bls
> system_profiler

---hope it works :]
alfredo456
Hello:


www.pcidatabase.com A huge list. Vendors and devices id are here.


Greetings...
Proteo
Some days ago, Macgirl pointed this useful app:

http://v4.kazzuya.com/dpcimanager

It seems to work fine for me.
joblo10
You can also get the pciutils package I built for Darwin OSX from http://x86dev.org. This is the same application that is include in the ToH DVD.

PCIUtils is the library which contains lspci, setpci and update-pciids.

Please come to this site for the latest version and to report any bugs/suggestions! smile.gif

Cheers
macgirl
I think is more easy if you use DPCI Manager:
theumang
Hi MacGirl!
Does the DPCI Manager help in locate both the Device ID and the Vendor ID ?
If so, which one is what ?
For example in the screenshot, the last line is 8086:283e Intel Corporation 82801h(ICH8 Family) SMBus Controller.. is 8086 the vendor id / the device id ?
macgirl
Yes, in the picture all of the left values are the Vendor ID.

Exactly, 8086 is the Vendor ID of Intel (like one of their first processors).

10de = Nvidia
14e4 = Broadcom
...

BuildSmart
QUOTE(Proteo @ Jan 2 2008, 07:12 PM) *
Some days ago, Macgirl pointed this useful app:

http://v4.kazzuya.com/dpcimanager

It seems to work fine for me.

Locating the author seems to be difficult.
theumang
Thanks for the Quick reply & the Info!

am trying to get the Azalia thingy work for the ADI 1988b on the Asus m2n sli Deluxe MoBo
iSaint
This goes to MacGirl,

In the screencap of DPCI Manager it shows the Intel PRO/Wireless 3945ABG (8086:4222) as recognized, is that true? if so, how did you do it? I'm having problems configuring my Pavillion dv6256us, I'm using Kalyway 10.5.2 Mac OS X DVD but it won't recognize the Intel/PRO Wireless and the Intel/PRO VE Network card
macgirl
One thing is DPCI reporting devices and another that they have working drivers.

My card reader is reported on DPCI but there is no kext or driver that recognizes it.

3945 and 6945 Intel WiFi cards has no working driversm there is a development effort, see the Hardware Forum.

Here is DPCI on my AMD Rig, notice my Audigy Audio card, my TV Card (booktree) and my WiFi Ralink RT61 card, none of them have working drivers.
Click to view attachment
iSaint
@macgirl

Thanks, I thought DPCI Manager reported working drivers smile.gif .Anyway, I finally managed to make my Intel PRO/100 VE NIC work. It runs smoothly, so far. I'll be checking out future developments for the 3945ABG drivers, hope to have it working soon

Cheers
jw8725
hi can someone help me out. I'm doing it the Windows way in Device manager. Only that I have a billion other options in the details tab.

Which specific header do I look under? I cannot find one called Vendor ID (pardon me I'm a noob)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.