How To: ATI & Crossfire in Linux

Post your How to's here


How To: ATI & Crossfire in Linux

Postby TheeMahn » Wed Dec 03, 2008 2:42 pm

Nvidia users have enjoyed SLI (Scalable Linking Interface) for years, why must ATI users suffer? This has finally all changed in our nix world. Crossfire aka Crossfire X is a multi-graphic card subsytem similar to that of SLI, my mainboard supports quad Crossfire (4 video cards, currently running with 2), before today nix would only use one of these cards, it may be time to order 2 more ;)

Well ladies & gents, this is not for the light of heart, moreso for the poweruser. I am told that future versions of the native ATI linux driver will allow this feature to be switched on through CCC (Catalyst Control Center), today at time of this post this is not the case, and is somewhat a pain to get enabled. Well about 20 minutes later I am reaping the benefits of such a configuration. I thought I would take the time and share it with you. Took me longer to write the how to then to get it working.

Disclaimer:

I take no responsibility if you bork your system (highly unlikely), straight forward & simple ;)

Driver Installation:

Preparing for driver installation:
1. Ensure all software sources (repositories) are open System>>Administration>>Software sources...
sources1.png
Restricted etc...

sources2.png
Backports & proposed are necessary to obtain the newest driver...

2. Update & upgrade. System >> Administration >> Update Manager, then click check to refresh your list
update.png
update & install all upgrades

3. Most likely you will have to reboot (kernel upgrades etc.)
4. Install EnvyNG. Applications >> Accessories >> Terminal (If you already have EnvyNG installed you may skip this step)
Code: Select all
sudo apt-get install envyng-gtk envyng-qt envyng-core

5. Obtaining the driver. Applications >> System >> EnvyNG
envyng.png
envyng

6. Reboot

Verify all went well:
Open a terminal and enter the following:
Code: Select all
glxinfo | grep rendering


It should return:
santa@NorthPole:~$ glxinfo | grep rendering
direct rendering: Yes
santa@NorthPole:~$


Breaking out Crossfire X:
To enable crossfire to work you must first know your adapters in order to create a "chain", first we will obtain this information using the included tool aticonfig in a terminal...
Code: Select all
aticonfig --list-adapters #note 2 minus's before list


It should display similar:
santa@NorthPole:~$ aticonfig --list-adapters
* 0. 01:00.0 Radeon X1650 Series
1. 02:00.0 Radeon X1650 Series

* - Default adapter
santa@NorthPole:~$


Note the 0 & 1, yours may be different. We now have all the information we need to create a "chain" & enable it.

Setting up the "chain":
Using the above output (using mine as an example) enter the following in your terminal:
Code: Select all
aticonfig --adapter=0,1 --cfa #note 2 minus's before each parameter


Should display similar:
Crossfire chain added.

Warning: X needs to be restarted for changes to take effect.


Reboot...

What still no crossfire?
Well nope not yet all we have done is create the chain now it is time to enable the chain. We can verify this with the following in a terminal:
Code: Select all
aticonfig --lsch #note double minus's


Results:
santa@NorthPole:~$ aticonfig --lsch

CrossFire chain for adapter 0, status: disabled
0. 01:00.0 Radeon X1650 Series
1. 02:00.0 Radeon X1650 Series


Kicking it all into gear:
In our trusty terminal:
Code: Select all
aticonfig --adapter=0,1 --crossfire=on


Should return similar:
santa@NorthPole:~$ aticonfig --adapter=0,1 --crossfire=on
Warning: No CrossFire chain defined for master adapter 1
CrossFire chain(s) enabled
Warning: X needs to be restarted before CrossFire changes take effect.


Reboot and enjoy Crossfire X

To verify:
Code: Select all
aticonfig --lsch


Should return similar:
santa@NorthPole:~$ aticonfig --lsch

CrossFire chain for adapter 0, status: enabled
0. 01:00.0 Radeon X1650 Series
1. 02:00.0 Radeon X1650 Series
santa@NorthPole:~$


Enjoy,

TheeMahn
Home of Ultimate Edition. Got a question? Please review the F.A.Q. Browse the How to section.

Main O/S: Builder of O/S Guess.
Mainboard: ASUS Hero VI (AM4)
CPU: AMD 1700X water cooled (Deepcool Captain Genome Cooling tower)
Ram: 16 GB GSkill Trident RGB Series Dual Channel DDR4 3200
Video: MSI RX470 8GB Gaming card.
Hard Disks: Over 50 TB total Mechanical and Multiple SSD's. (Sans Digital 32TB raid tower - dual Esata)
Raid: Onboard 0 used, Multiple NAS's on Gigabit AC wireless 3200 (Netgear X6 r8000)
Monitors: 4K Samsung 28", HannsG HH281, Various others
750 Watt modular PSU (Rosswell)
1100 Watt Amp & 4 X 600 Watt speakers (just drug up the other 2 speakers today)
User avatar
TheeMahn
Site Admin
 
Posts: 4197
Joined: Fri Oct 12, 2007 10:02 am
Location: U.S.A.
Age: 47
Operating System: Ultimate Edition Developer



Re: How To: ATI & Crossfire in Linux

Postby Zaileion » Mon Jul 20, 2015 11:42 am

Im trying to QuadFire 2 radeon 7990's. Your instructions from above worked perfectly but only for Device 0,1

Im not sure if this is crossfiring both GPU's in the primary graphics card leaving the secondary graphics card not crossfired or, crossfiring the 1st GPU of each graphics card leaving the 2nd GPUs on both primary and secondary cards not crossfired.

Side Note: No usual output from this command:

Code: Select all
$ glxinfo | grep direct-rendering
$

Should say: direct-rendering: yes (or something like that)

Here are some commands i've used:

1.
Code: Select all
$ aticonfig --lsch

Multiple GPU chain for adapter 0, status: Crossfire is enabled
  0. 05:00.0 AMD Radeon HD 7900 Series 
1. 06:00.0 AMD Radeon HD 7900 Series 


Code: Select all
$ aticonfig --list-adapters
* 0. 05:00.0 AMD Radeon HD 7900 Series 
  1. 06:00.0 AMD Radeon HD 7900 Series 
  2. 09:00.0 AMD Radeon HD 7900 Series 
  3. 0a:00.0 AMD Radeon HD 7900 Series

* - Default adapter


I can get Crossifre on all 4 GPU's by doing the following but after reboot I get the same result in Code # 1.

If I:

2.
Code: Select all
$ sudo aticonfig --adapter=all --cfa
[sudo] password for zaileion:
No layout section was found in the file: '/etc/X11/xorg.conf'.
Please run 'aticonfig --initial' first or modify your configuration file manually and run aticonfig again.
aticonfig: parsing the command-line failed.


So..

3.
Code: Select all
$ sudo amdconfig --initial -f --adapter=all
Uninitialised file found, configuring.
Using /etc/X11/xorg.conf
Saving back-up to /etc/X11/xorg.conf.original-1

** Notice: Saving back-up to /etc/X11/xorg.conf.original-1
above. I “rm” the backups after every few, otherwise it would be in the dozens... Ive been trying and trying..

Then I:


4.
Code: Select all
$ sudo aticonfig --adapter=all --cfa
Multiple GPU chain added
Warning: X needs to be restarted before MGPU changes take effect.


And:

5.
Code: Select all
$ sudo aticonfig --adapter=all --crossfire=on
Crossfire chain(s) enabled
CrossFire does not support on this platform
Warning: X needs to be restarted before CrossFire changes take effect.



Result NO Restart:

Code: Select all
$ aticonfig --lsch

Multiple GPU chain for adapter 0, status: Crossfire is enabled
  0. 05:00.0 AMD Radeon HD 7900 Series 
  1. 06:00.0 AMD Radeon HD 7900 Series 
  2. 09:00.0 AMD Radeon HD 7900 Series 
3. 0a:00.0 AMD Radeon HD 7900 Series 



If I restart I get the same thing as # 1. above

I've tried different combinations of “sudo aticonfig –adapter=all....” replacing “all” with “1,2” or “2,3” and finished the instructions with the corresponding adjustments to the commands thus having to “rm” the backups of the xorg.conf.

No matter what when I restart I get the result in Code # 1 after a restart.

Just wanted to say that your crossfire instructions work for me, i've tried several others sites but their not thorough or are incorrect. Ultimate Edition for some reason has provided the most solid instructions and the highest level of success for technical issues that have little or minimal documentation elsewhere. I post similar questions on several sites if I cant find any successful instructions after a thorough search and the results on Ultimate Edition have yielded the best results. Thank you for providing your time.
Asus Rampage III Black Edition
Intel i7 Extreem X990
Corsair Dominator GT 12 GB RAM
LSI MEGARaid Controller 9271
2 Samsung 840 Pro SSD (RAID0)
ATI Radeon HD 6990
SoundBlaster X-FI Platinum Pro
Corsair 1200W Power Supply
Corsair Water Cooled CPU
Ultimate Edition 3.5.2 (LTS) / Windows 7 Ultimate
User avatar
Zaileion
U.E. Pro
U.E. Pro
 
Posts: 110
Joined: Sat Dec 10, 2011 11:59 pm
Location: Berlin, NJ, USA
Age: 39
Operating System: Ultimate Edition 3.2 64 BIT



Re: How To: ATI & Crossfire in Linux

Postby Zaileion » Mon Jul 20, 2015 1:51 pm

Your instructions worked perfectly. Thank you again for the correct instructions.

I’m trying to Quadfire 2 Radeon HD 7990s. I currently have crossfire running on device 0,1 as your instructions post but i believe that might be crossfiring the 1st cards 2 gpu's or it might be crossfiring the 1st gpu of the 1st card and the 1st gpu of the 2nd card leaving the 2nd gpu on both cards inactive.

I have a 2nd 7990 with the crossfire cable connected but crossfire is only active on devices 0,1.

Im trying to get crossfire working with both cards and all 4 gpu's.

I know it works in Windows so i know the cards, crossfire cable are working, and the cards are properly seated.

attached are some pics of different commands.

Code: Select all
$ aticonfig --lsch

Multiple GPU chain for adapter 0, status: Crossfire is enabled
  0. 05:00.0 AMD Radeon HD 7900 Series 
  1. 06:00.0 AMD Radeon HD 7900 Series 


Code: Select all
$ aticonfig --list-adapters
* 0. 05:00.0 AMD Radeon HD 7900 Series 
  1. 06:00.0 AMD Radeon HD 7900 Series 
  2. 09:00.0 AMD Radeon HD 7900 Series 
  3. 0a:00.0 AMD Radeon HD 7900 Series 


I can get the output to identify all 4 gpu's crossfired but upon reset it changes back to just device 0,1

Code: Select all
$ sudo aticonfig --adapter=all --cfa
[sudo] password for zaileion:
No layout section was found in the file: '/etc/X11/xorg.conf'.
Please run 'aticonfig --initial' first or modify your configuration file manually and run aticonfig again.
aticonfig: parsing the command-line failed.


So I:

Code: Select all
sudo amdconfig --initial -f --adapter=all
Uninitialised file found, configuring.
Using /etc/X11/xorg.conf
Saving back-up to /etc/X11/xorg.conf.original-4


Then
Code: Select all
sudo aticonfig --adapter=all --cfa
Multiple GPU chain added
Warning: X needs to be restarted before MGPU changes take effect.


Code: Select all
$ sudo aticonfig --adapter=all --crossfire=on
Crossfire chain(s) enabled
CrossFire does not support on this platform
Warning: X needs to be restarted before CrossFire changes take effect.


FInally with out a reboot:

Code: Select all
$ aticonfig --lsch

Multiple GPU chain for adapter 0, status: Crossfire is enabled
  0. 05:00.0 AMD Radeon HD 7900 Series 
  1. 06:00.0 AMD Radeon HD 7900 Series 
  2. 09:00.0 AMD Radeon HD 7900 Series 
  3. 0a:00.0 AMD Radeon HD 7900 Series 


If i reboot i get:

Code: Select all
$ aticonfig --lsch

Multiple GPU chain for adapter 0, status: Crossfire is enabled
  0. 05:00.0 AMD Radeon HD 7900 Series 
  1. 06:00.0 AMD Radeon HD 7900 Series 
Asus Rampage III Black Edition
Intel i7 Extreem X990
Corsair Dominator GT 12 GB RAM
LSI MEGARaid Controller 9271
2 Samsung 840 Pro SSD (RAID0)
ATI Radeon HD 6990
SoundBlaster X-FI Platinum Pro
Corsair 1200W Power Supply
Corsair Water Cooled CPU
Ultimate Edition 3.5.2 (LTS) / Windows 7 Ultimate
User avatar
Zaileion
U.E. Pro
U.E. Pro
 
Posts: 110
Joined: Sat Dec 10, 2011 11:59 pm
Location: Berlin, NJ, USA
Age: 39
Operating System: Ultimate Edition 3.2 64 BIT


Return to How To's (Do not post questions please)

Who is online

Users browsing this forum: No registered users and 1 guest