Supported PC Hardware
If you have to choose a new GPU, recent Nvidia GTX and AMD Radeon RX cards are supported well in the main Batocera image, and usually give very good results. A combination of an Intel i5 4xxx CPU + Nvidia GT1030 GPU will support all emulators up to the PS2 for a reasonable cost. You can check out some Batocera benchmarks on the "Choose a PC" page.
Nvidia graphics cards
Current Nvidia drivers
Batocera includes the Linux versions of the Nvidia drivers and will use them automatically. Details about which driver is being used after boot can be found in the log file at /userdata/system/logs/nvidia.log
.
The automatic setting can be overridden by modifying the boot configuration file. At the top level, find the batocera-boot.conf
file and uncomment (i.e. remove the initial #) the nvidia-driver=true
line. If the line is not present, add it anywhere. true
can be replaced to specify a specific version.
## Manually override Nvidia driver selected. Leave this setting commented to have Batocera automatically select the correct driver. ## See https://wiki.batocera.org/supported_pc_hardware ## true -> Use the current production driver. ## legacy -> Use the "legacy" 470 driver (could be subject to change, though unlikely). ## legacy390 -> Use the older 390 driver. ## false -> Use the open-source Nouveau drivers. nvidia-driver=true
Nvidia is… pretty bad at actually supporting the cards they say they support. Take their officially supported hardware list with a grain of salt, and do your research. Discovering what 'architecture' (Fermi/Maxwell/Kepler etc.) your card is will take you a long way in finding out whether it's actually supported or not.
Laptop GPUs in particular are very confusing, using identical naming schemes for cards that are generations older in terms of architecture. Cards with weird extensions to their names like “700M” or “1050Q” are usually not comparable to their desktop counterparts, as a rule of thumb consider them one of two generations behind.
If you edit the file under Windows, make sure you have an editor that respects Unix line terminators. Don't use Notepad, use a text editor like Notepad++, that doesn't replace the Unix line terminations (LF) with DOS/Windows line terminations (CR/LF). Wordpad has also been reported to corrupt Unix text files.
You can alternatively edit this file by connecting to Batocera through SSH and remounting the /boot
partition on write mode like explained here, and edit /boot/batocera-boot.conf
with Nano or Vim as text editors.
The official Nvidia drivers (495.46) included in Batocera v33 support the Maxwell architecture and newer. This includes the GTX 9XX series and above (special exception, the 750Ti is also supported).
The open-source Nouveau drivers (which are ironically more compatible than the official drivers, but aren't as performant) are the “fall-back” drivers; they should serve their purpose on those weaker and older cards not capable of running more modern systems anyway. All but the bleeding edge cards are supported by the Nouveau drivers.
How can you tell if the Nvidia driver is correctly set up? Go to SYSTEM SETTINGS → INFORMATION and see if the OpenGL version mentions NVIDIA in its version. If it does, you're all set. If it mentions MESA, that means that the official Nvidia driver is not in use. You can also check which version Batocera had chosen automatically by running /etc/init.d/S04populate start
.
Hybrid/Optimus Nvidia laptops
To clarify, hybrid graphics refers to the laptop's ability to automatically switch between its integrated graphics (Intel) and its discrete graphics (Nvidia), not its laptop/tablet form-factor.
For Batocera versions v31 and newer, if you use a laptop that has both an integrated Intel and a discrete Nvidia GPU (hybrid setup or “Optimus” technology, which is very common with post-2018 laptops), you need to tell your laptop to use the Nvidia card as a primary card with the nvidia-prime=true
option. Your config should contain this uncommented line:
nvidia-prime=true
On Batocera versions v30 and older, you would instead run the batocera-hybrid-nvidia
command from SSH or terminal after activating the drivers.
Some laptops may have a setting in their BIOS which allows you to manually select the state of the hardware multiplexer, effectively making your laptop have only one graphics device. This avoids the complexities of running two graphics drivers, but offers no power savings. Changing this setting is at your own risk and support cannot be provided for it.
External HDMI ports
If the second GPU has outputs that are not accessible by the primary GPU, you can use Reverse PRIME to make use of them. This will involve using the primary GPU to render the images, and then pass them off to the second GPU.
Using ssh or the terminal via the F1 option, create the following file - /etc/X11/xorg.conf.d/10-gpu.conf
:
In this example, we use the nano command - nano /etc/X11/xorg.conf.d/10-gpu.conf
Copy the code below into nano
for the file you're creating.
- 10-gpu.conf
Section "ServerLayout" Identifier "layout" Screen 0 "nouveau" Inactive "intel" EndSection Section "Device" Identifier "nouveau" Driver "nouveau" BusID "PCI:x:x:x" # Sample: "PCI:1:0:0" EndSection Section "Screen" Identifier "nouveau" Device "nouveau" EndSection Section "Device" Identifier "intel" Driver "intel" BusID "PCI:x:x:x" # Sample: "PCI:0:2:0" EndSection Section "Screen" Identifier "intel" Device "intel" EndSection
Hit [Ctrl]
+ [X]
to exit and then Y
to save the changes. Run batocera-save-overlay
to make it permanent.
- Legacy Nvidia drivers image
-
This image is no longer necessary as the legacy drivers are now included in the main Batocera image by default. This information is still here for archival purposes, but may be removed in the future.
Nvidia cards from the GTX 600/700 series or older may not be supported by the current official Nvidia drivers included with Batocera v33 and below.
Legacy Nvidia drivers were initially dropped from Batocera a while ago (back in 5.26 initially!), but there is an unmaintained beta build which has the legacy drivers available at the bottom of the downloads page (direct link). This build is not maintained so it may have major bugs. Support is not available for it. If issues occur with this build, upgrade to the current build first and see if they continue to persist.
Alternatively, you could try other Batocera versions from 5.26 and down. Unlike other operating systems that require the latest patches to stay secure, since Batocera isn't designed to be a secure system it's perfectly fine to use an older version just for playing your retro games.
Multiple Nvidia card configuration
It is possible to select which card to use when multiple Nvidia GPUs are installed to the same machine. Link to original post.
- Create the following file in
/userdata/system/99-nvidia.conf
:- 99-nvidia.conf
Section "Device" Identifier "VideocardB(lowerDVI)" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce GTX 1070" BusID "PCI:2:0:0" EndSection Section "Screen" Identifier "Screen0" Device "VideocardB(lowerDVI)" Monitor "Samsung0" DefaultDepth 24 Option "RenderAccel" "On" Option "HWcursor" "On" Option "DamageEvents" "True" SubSection "Display" Depth 24 EndSubSection EndSection
- Replace the information as appropriate. Usually the first card detected will be PCI:1:0:0, and the BusID for the second card detected will be PCI:2:0:0. So if 1 is being selected by default then just switch it to 2.
Batocera specifically looks for the filename 99-nvidia.conf
, so to temporarily disable this just rename it to something different like 99-nvidia.conf.backup
.
It's possible to combine this with scripting in order to enable easy card switching on the fly (no reboot is required, just restart ES).
ATI/Radeon graphics cards
AMD GPUs have their drivers installed and activated automatically, no need for manual activation. However, you may have no HDMI audio output by default, read on if that applies to your machine.
Fix no audio on Radeon HDMI audio output
HDMI audio is disabled by default on Radeon graphics cards due to a black screen issue on some monitors. To enable it, edit the boot configuration file on the boot partition. In Batocera:
- 5.25 and above,
boot/syslinux/syslinux.cfg
for legacy boot andboot/EFI/syslinux.cfg
for EFI boot. - 5.24 to 5.XX,
boot/syslinux.cfg
for legacy boot - 5.XX and lower,
boot/grub.cfg
for legacy boot andEFI/boot/grub.cfg
for EFI boot.
radeon.audio=1
at the end of the relevant boot line.
For 5.XX and above:
APPEND label=BATOCERA console=tty3 quiet loglevel=0 vt.global_cursor_default=0
would become
APPEND label=BATOCERA console=tty3 quiet loglevel=0 vt.global_cursor_default=0 radeon.audio=1
For 5.XX and lower:
menuentry "batocera.linux" { linux /boot/linux label=BATOCERA console=tty3 quiet loglevel=0 vt.global_cursor_default=0 initrd /boot/initrd.gz }
would become
menuentry "batocera.linux" { linux /boot/linux label=BATOCERA console=tty3 quiet loglevel=0 vt.global_cursor_default=0 radeon.audio=1 initrd /boot/initrd.gz }
Others
Other hardware issues can be diagnosed with the help of the troubleshooting guide.
- supported_pc_hardware.txt
- Last modified: 8 months ago
- by dmanlfc