Recently I've installed a Sapphire HD2600Pro AGP card instead of my beloved nVidia 7600GS (I needed to help my family where another video card broke). I was able to install the Windows XP drivers - although only the ones provided on CD worked. But in Linux it's hopeless. Let me explain.

After installing Catalyst 7.12 drivers in Ubuntu 7.10 the X.org is unable to turn on the high resolution mode on my LCD (1680x1050 @ Samsung SyncMaster 2232), and only the failsafe X kicks in. The Xorg.0.log shows no signs of errors (EE), serious warnings (WW) and the like. I've checked my xorg.conf many times and having a 5+ years of experience with various distros (including Gentoo for example, where you have to basically write xorg.conf or you have no X at all) I must say that the xorg.conf is rather fine.

My suspicions started to rise when the downloaded from AMD/ATI site display drivers refused to install in Windows XP (I've tried 7.12, 7.11 and 7.10). The installer simply stated that it was unable to detect the hardware. But hey, drivers from supplied CD worked! I did a simple "diff -u" on the *.INF files from the different drivers releases and it occured to me that in every ATI driver some generic information was missing.

In Linux this AGP card is detected as:
Code:
# lspci
01:00.0 VGA compatible controller: ATI Technologies Inc Unknown device 9587

# lspci -v
01:00.0 VGA compatible controller: ATI Technologies Inc Unknown device 9587 (prog-if 00 [VGA controller])
	Subsystem: ATI Technologies Inc Unknown device 0028
	Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 11
	Memory at e0000000 (32-bit, prefetchable) [size=256M]
	I/O ports at e000 [size=256]
	Memory at fbf00000 (32-bit, non-prefetchable) [size=64K]
	Expansion ROM at fbe00000 [disabled] [size=128K]
	Capabilities: [50] Power Management version 3
	Capabilities: [58] AGP version 3.0

# lcpci -v -v
01:00.0 VGA compatible controller: ATI Technologies Inc Unknown device 9587 (prog-if 00 [VGA controller])
	Subsystem: ATI Technologies Inc Unknown device 0028
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
	Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 64 (2000ns min), Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 11
	Region 0: Memory at e0000000 (32-bit, prefetchable) [size=256M]
	Region 1: I/O ports at e000 [size=256]
	Region 2: Memory at fbf00000 (32-bit, non-prefetchable) [size=64K]
	Expansion ROM at fbe00000 [disabled] [size=128K]
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [58] AGP version 3.0
		Status: RQ=256 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW+ AGP3+ Rate=x4,x8
		Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
Note the "Unknown device 9587" - and I've just updated the PCI ID database by using "update-pciids" command!

Eventually this led me to this: http://www.sapphiretech.com/en/forum...5&page=3&pp=10
I will quote the important part:

If your AGP card is not supported by the latest ATI drivers...
Sometimes the drivers don't get updated for every card for every driver release, so you need to edit a couple files to add your card. Run the installer, and continue until you extract the driver into a folder under C:\ATI\SUPPORT\. At the next opportunity, cancel the installation and navigate to the C:\ATI\SUPPORT\ folder in Windows Explorer. Edit the files as follows, and you can then run C:\ATI\SUPPORT\{Current Version}\Driver\setup.exe.

The files you need to edit are:

Windows Vista
C:\ATI\SUPPORT\[Current Version]\Driver\Packages\Drivers\Display\LH_INF\CX_*****.i nf

Under "[ATI.Mfg]", add the following lines. You can do a search for "HD 2400" to put the lines with the other entries for the HD2000 series, if you wish.

"ATI Radeon HD 2400 PRO AGP" = ati2mtag_RV610, PCI\VEN_1002&DEV_94C4
"ATI Radeon HD 2400 XT AGP" = ati2mtag_RV610, PCI\VEN_1002&DEV_94C6
"ATI Radeon HD 2600 PRO AGP" = ati2mtag_RV630, PCI\VEN_1002&DEV_9587
"ATI Radeon HD 2600 XT AGP" = ati2mtag_RV630, PCI\VEN_1002&DEV_9586

The lines can be placed anywhere under the "[ATI.Mfg]" section. For example, your entry could look as follows:

[ATI.Mfg]
"ATI Radeon HD 2400 PRO AGP" = ati2mtag_RV610, PCI\VEN_1002&DEV_94C4
"ATI Radeon HD 2400 XT AGP" = ati2mtag_RV610, PCI\VEN_1002&DEV_94C6
"ATI Radeon HD 2600 PRO AGP" = ati2mtag_RV630, PCI\VEN_1002&DEV_9587
"ATI Radeon HD 2600 XT AGP" = ati2mtag_RV630, PCI\VEN_1002&DEV_9586

Windows XP/MCE
C:\ATI\SUPPORT\[Current Version]\Driver\Driver\XP_INF\CX_*****.inf

Under "[ATI.Mfg.NTx86]", add the following lines. You can do a search for "HD 2400" to put the lines with the other entries for the HD2000 series, if you wish.

"ATI Radeon HD 2400 PRO AGP" = ati2mtag_RV610, PCI\VEN_1002&DEV_94C4
"ATI Radeon HD 2400 XT AGP" = ati2mtag_RV610, PCI\VEN_1002&DEV_94C6
"ATI Radeon HD 2600 PRO AGP" = ati2mtag_RV630, PCI\VEN_1002&DEV_9587
"ATI Radeon HD 2600 XT AGP" = ati2mtag_RV630, PCI\VEN_1002&DEV_9586

The lines can be placed anywhere under the "[ATI.Mfg.NTx86]" section. For example, your entry could look as follows:

[ATI.Mfg.NTx86]
"ATI Radeon HD 2400 PRO AGP" = ati2mtag_RV610, PCI\VEN_1002&DEV_94C4
"ATI Radeon HD 2400 XT AGP" = ati2mtag_RV610, PCI\VEN_1002&DEV_94C6
"ATI Radeon HD 2600 PRO AGP" = ati2mtag_RV630, PCI\VEN_1002&DEV_9587
"ATI Radeon HD 2600 XT AGP" = ati2mtag_RV630, PCI\VEN_1002&DEV_9586

C:\ATI\SUPPORT\[Current Version]\Driver\Driver\CX_*****.INI
C:\ATI\SUPPORT\[Current Version]\Driver\Driver\INSTALL.INI

In both files, under the "[WINXP]" section, add the following at the end of the second line, which starts "R6=DriverPath_R6":

,0x94C4,0x94C6,0x9586,0x9587

For example, your entry could look as follows:

[WINXP]
Label=R6,R6_2,R6_3,R6_4,R6_5,R6_6,R6_7,R6_8,R6_9,R 6_10
R6=DriverPath_R6,0x554F:0x149218BC,0x7162:0x300114 7B,0x94C4,0x94C6,0x9586,0x9587
DriverPath_R6=\XP_INF,CX_52443.INF
When I re-checked the differences in *.INF files I've found it became obvious that the Sapphire released the drivers that include support for "9587 device", but the original ATI Catalyst drivers DO NOT.

Using the above procedure I was able to install the 7.12 drivers in Windows XP for this problematic HD2600Pro AGP card. But in Linux I begin to feel that this is hopeless. Especially if the source of this problem is the same: some missing descriptions in the binary, closed driver that prevent correct device detection.

This graphics chip is designed with PCI-E in mind and is "backported" to work with the AGP bus. What's sad is that this is the best chip in market, budget wise, for AGP at the moment! (there are HD2400 & HD2600 cards, in Pro & XT variants). And the ATI driver doesn't work in Linux and the product is not even registered in the PCI ID database...

I already begin to miss my GeForce...