My X5000 with AMD RX570 and HD5450 graphics

As you could have read in one of my previous posts is my AmigaOne X5000 equipped with an AMD RX570 graphics card. The use of the RX line of cards allows us to use the VA library. The Video Acceleration Library has been created to support hardware video decoding on Radeon Polaris (RX) cards. For us AmigaOS4.x users this is a very welcome addition to the use of our beloved OS and X5000.

The downside to switching to an RX based graphics card is not having support in the Linux kernel for this. This results in losing the ability to use LInux on the X5000. The only option I could think of was adding a second graphics card to bring Linux back to the machine.

As there are some posts on the hyperion forum referring to the setup of two graphics cards in the X5000 I thought it would be nice to write about my own setup.

Choosing what card to use.
Since the PCIe X16 slot is already in use for the RX570 card it leaves us with the PCI and PCIe X1 slots to choose from. The PCIe X4 slot in the X5000 is due to bad design blocked by the PCIe X16 graphics card so cannot be used. As PCI graphic cards are hard to find and very outdated (like Radeon 9250) a PCIeX1 card would be the better choice . Finding a PCIe X1 radeon/amd based graphics card is an option, but I tried using a PCIe X16 to X1 converter as those converters are easy to find and cheap due to the whole crypto mining landscape these days. As having a usable linux system for me is more important than the ability of playing games, the performance is not a big issue and a PCIe X1 slot would be good enough.

By using a converter you have many cards to choose from. I started with a Firepro RV620 based normal size graphics card but eventually got it replaced. I could not find a decent way to fit the card in my X5000 case.

For me the best way was to use a low profile Radeon graphics card (MSI HD5450), as this card leaves us the space we need for use of the converter board.
This card also has DVI and HDMI outputs so any monitor can be used, and the connectors are where I want them to be, on the back of the machine.

The monitor.
I first made the choice of attaching both graphic cards to the same monitor. As this is usable, the downside is having to switch input when starting up Linux. As my Philips monitor does not have great buttons and an OSD menu to do the switching, I am using a second monitor attached to the new graphics card just for Linux use.

The result.
So there we have it. The AmigaOne X5000 with RX card for the best OS4 experience and the option to run Linux by using a second graphics card. All stuffed away in the X5000 case and ready for action.

To do.
At the moment the Linux graphics card (HD5450) is using the FBdev (driver) in the Xorg.conf so hardware acceleration is limited… (i think there is a way to make use of hardware acceleration by using the GPU) The other thing will be making use of just on big Linux drive with several partitions instead of two drives.

Thanks.
Big thanks go to the captain of the Amiga Linux Development community, Christian Zigotzky and of course all forum members who keep the scene going. Thank you!

17/2/2022 UPDATE!

As mentioned before the FBdev issue has now been solved. This means that we now have Hardware 3D support. YEAH!!! It was hard to find the correct xorg.conf values needed to get things going…

 

GLXINFO!
OpenGL vendor string: X.Org
OpenGL renderer string: AMD CEDAR (DRM 2.50.0 / 5.17.0-rc4_A-EON_X5000, LLVM 12.0.1)
OpenGL core profile version string: 3.2 (Core Profile) Mesa 21.3.3
OpenGL core profile shading language version string: 1.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.1 Mesa 21.3.3
OpenGL shading language version string: 1.40
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 2.0 Mesa 21.3.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16
OpenGL ES profile extensions:
My Xorg.conf to get it up and running!
Section “Monitor”
Identifier “Monitor0”
EndSection
Section “Device”
Identifier “Device1”
Driver “radeon”
EndSection
Section “ServerFlags”
Option “AIGLX” “on”
EndSectionSection “Module”
Load “dri”
Load “dri2”
Load “dbe”
Load “glx”
Load “type1”
Load “freetype”
Load “record”
EndSection

Section “DRI”
Mode 0666
EndSection

Section “Extensions”
Option “Composite” “Enable”
Option “RENDER” “Enable”
Option “RANDR” “Enable”
Option “DAMAGE” “Enable”

Option “GLX” “Enable”
EndSection

Section “Screen”
Identifier “Screen0”
Device “Device0”
Monitor “Monitor0”
DefaultDepth 24
SubSection “Display”
Depth 24
Viewport 0 0
EndSubSection
EndSection