SysID

Started by
34 comments, last by Lab-Rat 18 years, 7 months ago
I've fairly recently started work on a small library that tries detect your hardware. The main goal of this is to provide some code that can be used when debugging machines. Usually you test on friends machines, who will probably know what they have in there. But there comes a time that you need to test on a machine from someone who has fairly little idea of what a computer is :D. This is basically meant for those situations. Just run call a few function from the library, and all the data you'd ever need is handed to you on a silver platter. Write the data to a log file or something and you're done. For now I've only been working on a windows version, although I'm hoping to add other OS later as well (of course cpuid works on all systems). So far, I've been working on the CPU detection (which wasn't that hard, since there are numerous utilities out there that also do this). This basically works, but I want to add more info about the caches (already partially implemented), but more importantly, I want to add more human readable data. The sources I've found so far have very little recent data. And although I have found a large sheet of data on AMD processors, I haven't been so lucky with regards to Intel processors yet unfortunately. I also have basic videocard detection up and running. So far this seems to work well on ATI cards, but I still need to find detailed information about NVidia cards. Now my request to you is this: Please download SysID_rev22 and if any of the information is incorrect please contact me. If any information from the CPU is missing (this will be indicated by a number instead of a string in the first block of information), I'd be very greatful if you could also contact me with as detailed information about the CPU as you can. For those interested, two utilities to detect your CPU: Intel AMD Edit: updated link. [Edited by - rick_appleton on August 21, 2005 4:43:54 PM]
Advertisement
Looks good on Athlon XP/Radeon 9700 Pro.
How are you doing the video card detect - are you hitting the hardware, or just using DX functions, or what?
E8 17 00 42 CE DC D2 DC E4 EA C4 40 CA DA C2 D8 CC 40 CA D0 E8 40E0 CA CA 96 5B B0 16 50 D7 D4 02 B2 02 86 E2 CD 21 58 48 79 F2 C3
I get this, Every thing looks correct, although I didn’t double check each one.
Quote:
Processor:
========================================
Vendor: AuthenticAMD
VendorCPUName: Unknown CPU Typ
Family: K7
Type: Original OEM
Brand ID: 0
Model: AMD Athlon K7

Type: 0
Family: 6
Model: 10
Stepping: 0


Videocard:
========================================
Method 1
Videocard 0
Description: RADEON X800 Series (Omega 2.6.05a)
Manufacturer: ATI
Driver version: 8.09-041221m-020455C-ATI
Videocard 1
Description: RADEON X800 Series Secondary (Omega 2.6.05a)
Manufacturer: ATI
Driver version: 8.09-041221m-020455C-ATI


Method 2
Videocard 0
Hardware
Description: RADEON X800 Series (Omega 2.6.05a)
Manufacturer: ATI Technologies Inc. (Omega 2.6.05a)
Chip Type: R420 4A49
Memory Size: 256 MB
Memory Type: DDR3
Transfer Rate: AGP 8X
Driver
Version: Catalyst
Date: 11-30-2004
Provider: ATI Technologies Inc. (Omega 2.6.05a)
Press any key to continue . . .
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
"Absorb what is useful, reject what is useless, and add what is specifically your own." - Lee Jun Fan
> "Unknown CPU Typ"
Ah, the CPU brand string cannot be relied upon:
// fall back to manual CPU detect if the brand string is unavailable or
// useless (e.g. "Unknow(n) CPU Typ(e)"). the latter happens with older
// BIOSes that reprogram the string if they don't recognize the CPU.
E8 17 00 42 CE DC D2 DC E4 EA C4 40 CA DA C2 D8 CC 40 CA D0 E8 40E0 CA CA 96 5B B0 16 50 D7 D4 02 B2 02 86 E2 CD 21 58 48 79 F2 C3
Jan Wassenberg: currently only checking the registry. But I am considering other options as well.

Grain: Thanks for that. Would you mind me contacting you directly when I need some more testing? I notice you've got the omega drivers installed.

JY: Thanks for that. Would you be up to a little debugging if I give you the source (it's relatively simple)? Else I can include some extensive debugging info. I'm expecting my accessing the registry somewhere without a check.

Jan again: indeed. I've just started initial testing on this. I've got the source constructed such that I can add additional info extremely easy. That string you pointed out was just added as an afterthought. I'm not going to rely on that info in any way.

I noticed that I need to add OS detection asap here. I have no idea what windows versions you guys are using :D.

Edit: I have now added OS detection, and added a debug build (which should include asserts) to the zip.

[Edited by - rick_appleton on August 16, 2005 7:56:46 AM]
Quote:Jan Wassenberg: currently only checking the registry. But I am considering other options as well.

Ah, ok, thanks. Would you be interested in sharing? I use DX calls and DLL version information.

Quote:Jan again: indeed. I've just started initial testing on this. I've got the source constructed such that I can add additional info extremely easy. That string you pointed out was just added as an afterthought. I'm not going to rely on that info in any way.

Alrighty.

Quote:I have now added OS detection [..] to the zip.

Works correctly here (WinXP SP2).
E8 17 00 42 CE DC D2 DC E4 EA C4 40 CA DA C2 D8 CC 40 CA D0 E8 40E0 CA CA 96 5B B0 16 50 D7 D4 02 B2 02 86 E2 CD 21 58 48 79 F2 C3
Jan, I am certainly interested in sharing. As to the adding of DX calls, I'm an OpenGL person my self, so I have no idea of the amount of information that can be found that way. Could you maybe give a small list of things you'd be able to find out through DX?

Give me this evening to add a little bit more comments, and make sure everything is checked properly so it *shouldn't* crash. Then I'll upload the code tomorrow.
Almost complete failure on my main system:

"Operating System:
========================================
Windows Server 2003 Service Pack 1 Build(3790)

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information."

Running dual Xeon 2.4GHz with hyperthreading on Windows 2003 SP1. GeForce 6600GT video card.
I've uploaded a new version. This one has simple HyperThreading detection. Also the source code is included, and a lot of logging statements.

If those of you who had problems with it could try it again, and tell me where it crashes, I'd be very grateful.

Edit: removed link.

[Edited by - rick_appleton on August 21, 2005 3:35:53 AM]

This topic is closed to new replies.

Advertisement