https://wiki.archlinux.org/api.php?action=feedcontributions&user=Mony&feedformat=atomArchWiki - User contributions [en]2024-03-29T06:29:02ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Steam/Troubleshooting&diff=530708Steam/Troubleshooting2018-07-22T21:02:57Z<p>Mony: Run Steam using optirun</p>
<hr />
<div>[[Category:Gaming]]<br />
[[ru:Steam/Troubleshooting]]<br />
[[ja:Steam/トラブルシューティング]]<br />
== Introduction ==<br />
<br />
# Make sure that you have followed [[Steam#Installation]].<br />
# If the Steam client / a game is not starting and/or you have error message about a library, read [[#Steam runtime]] and see [[#Debugging shared libraries]].<br />
# If the issue is related to networking, make sure that you have forwarded the [https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711 required ports for Steam].<br />
# If the issue is about a game, consult [[Steam/Game-specific troubleshooting]].<br />
<br />
=== Relevant online resources ===<br />
<br />
* [https://bbs.archlinux.org/viewforum.php?id=32 Multimedia and Games / Arch Linux Forums]<br />
* [https://github.com/ValveSoftware/steam-for-linux ValveSoftware/steam-for-linux] – Issue tracking for the Steam for Linux client<br />
* [https://steamcommunity.com/ Steam Community discussions of the game]<br />
* [https://help.steampowered.com/en/ Steam Support FAQ]<br />
<br />
== Steam runtime ==<br />
<br />
Steam for Linux ships with its own set of libraries called the [https://github.com/ValveSoftware/steam-runtime Steam runtime]. By default Steam launches all Steam Applications within the runtime environment.<br />
The Steam runtime is located at {{ic|~/.steam/root/ubuntu12_32/steam-runtime/}}.<br />
<br />
If you mix the Steam runtime libraries with system libraries you will run into binary incompatibility issues, see [https://github.com/ValveSoftware/steam-for-linux/issues/4768 steam-for-linux issue #4768].<br />
Binary incompatibility can lead to the Steam client and games not starting (manifesting as a crash, as hanging or silently returning), audio issues and various other problems.<br />
<br />
The {{Pkg|steam}} package offers three ways to launch Steam:<br />
<br />
* {{ic|steam-runtime}} (alias {{ic|steam}}), which overrides runtime libraries known to cause problems via the {{ic|LD_PRELOAD}} [[environment variable]] (see {{man|8|ld.so}}).<br />
* {{ic|steam-native}}, see [[#Steam native runtime]]<br />
* {{ic|/usr/lib/steam/steam}}, the default Steam launch script<br />
<br />
As the Steam runtime libraries are older they can lack newer features, e.g. the OpenAL version of the Steam runtime lacks [[Gaming#Binaural_Audio_with_OpenAL|HRTF]] and surround71 support.<br />
<br />
=== Steam native runtime ===<br />
<br />
{{Warning|Using the Steam native runtime is not recommended as it might break some games due to binary incompatibility and it might miss some libraries present in the Steam runtime.}}<br />
<br />
The {{ic|steam-native}} script launches Steam with the {{ic|1=STEAM_RUNTIME=0}} environment variable making it ignore its runtime and only use system libraries.<br />
<br />
The {{Pkg|steam-native-runtime}} meta package depends on over 120 packages to pose a native replacement of the Steam runtime, some games may however still require additional packages. You can also use the Steam native runtime without {{Pkg|steam-native-runtime}} by manually installing just the packages you need. See [[#Finding missing runtime libraries]].<br />
<br />
== Debugging shared libraries ==<br />
<br />
To see the shared libraries required by a program or a shared library run the {{ic|ldd}} command on it, see {{man|1|ldd}}. The {{ic|LD_LIBRARY_PATH}} and {{ic|LD_PRELOAD}} [[environment variables]] can alter which shared libraries are loaded, see {{man|8|ld.so}}. <br />
To correctly debug a program or shared library it is therefore important that these environment variables in your debug environment match the environment you wish to debug.<br />
<br />
If you figure out a missing library you can use [[pacman]] or [[pkgfile]] to search for packages that contain the missing library.<br />
<br />
=== Finding missing game libraries ===<br />
<br />
If a game fails to start, a possible reason is that it is missing required libraries. You can find out what libraries it requests by running {{ic|ldd ''game_executable''}}. {{ic|''game_executable''}} is likely located somewhere in {{ic|~/.steam/root/steamapps/common/}}. Please note that most of these "missing" libraries are actually already included with Steam, and do not need to be installed globally.<br />
<br />
=== Finding missing runtime libraries ===<br />
<br />
If individual games or Steam itself is failing to launch when using {{ic|steam-native}} you are probably missing libraries. To find the required libraries run:<br />
<br />
$ cd ~/.steam/root/ubuntu12_32<br />
$ file * | grep ELF | cut -d: -f1 | LD_LIBRARY_PATH=. xargs ldd | grep 'not found' | sort | uniq<br />
<br />
Alternatively, run Steam with {{ic|steam-runtime}} and use the following command to see which non-system libraries Steam is using (not all of these are part of the Steam runtime):<br />
<br />
$ for i in $(pgrep steam); do sed '/\.local/!d;s/.* //g' /proc/$i/maps; done | sort | uniq<br />
<br />
== Debugging Steam ==<br />
<br />
The Steam launcher redirects its stdout and stderr to {{ic|/tmp/dumps/''USER''_stdout.txt}}.<br />
This means you do not have to run Steam from the command-line to see that output.<br />
<br />
It is possible to debug Steam to gain more information which could be useful to find out why something does not work.<br />
<br />
You can set {{ic|DEBUGGER}} environment variable with one of {{ic|gdb}}, {{ic|cgdb}}, {{ic|valgrind}}, {{ic|callgrind}}, {{ic|strace}} and then start {{ic|steam}}.<br />
<br />
For example with {{Pkg|gdb}}<br />
{{bc|1=$ DEBUGGER=gdb steam}}<br />
<br />
{{ic|gdb}} will open, then type {{ic|run}} which will start {{ic|steam}} and once crash happens you can type {{ic|backtrace}} to see call stack.<br />
<br />
== Runtime issues ==<br />
<br />
=== Segmentation fault when disabling runtime ===<br />
<br />
:[https://github.com/ValveSoftware/steam-for-linux/issues/3863 steam-for-linux issue #3863]<br />
<br />
As per the bug report above, Steam crashes with the following error message when run with {{ic|1=STEAM_RUNTIME=0}}:<br />
<br />
/home/''USER''/.local/share/Steam/steam.sh: line 756: <variable numeric code> Segmentation fault (core dumped)<br />
<br />
This happens because {{ic|steamclient.so}} is linked to {{ic|libudev.so.0}} ({{AUR|lib32-libudev0}}) which conflicts with {{ic|libudev.so.1}} ({{Pkg|lib32-systemd}}).<br />
<br />
A proposed workaround is to copy Steam's packaged 32-bit versions of libusb and libgudev to {{ic|/usr/lib32}}:<br />
<br />
# cp ~/.steam/root/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libgudev* /usr/lib32<br />
# cp ~/.steam/root/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libusb* /usr/lib32<br />
<br />
Notice that the workaround is necessary because the bug affects systems with lib32-libgudev and lib32-libusb installed.<br />
<br />
Alternatively it has been successful to prioritize the loading of the libudev.so.1 (see [https://github.com/ValveSoftware/steam-for-linux/issues/3863#issuecomment-203929113 comment on the same issue]):<br />
{{bc|1=$ LD_PRELOAD=/usr/lib32/libudev.so.1 STEAM_RUNTIME=0 steam}}<br />
<br />
=== 'GLBCXX_3.X.XX' not found when using Bumblebee ===<br />
<br />
This error is likely caused because Steam packages its own out of date {{ic|libstdc++.so.6}}. See [[#Steam runtime issues]]{{Broken section link}} about working around the bad library. See also [https://github.com/ValveSoftware/steam-for-linux/issues/3773 steam-for-linux issue 3773].<br />
<br />
=== Game crashes immediately ===<br />
<br />
This is likely due to [[#Steam runtime]] issues, see [[#Debugging shared libraries]].<br />
<br />
Disabling the in-game Steam Overlay in the game properties might help.<br />
<br />
And finally, if those don't work, you should check Steam's output for any error from the game. You may encounter the following:<br />
* {{ic|munmap_chunk(): invalid pointer}}<br />
* {{ic|free(): invalid pointer}}<br />
<br />
In these cases, try replacing the {{ic|libsteam_api.so}} file from the problematic game with one of a game that works. This error usually happens for games that were not updated recently when Steam runtime is disabled. This error has been encountered with AYIM, Bastion and Monaco.<br />
<br />
=== Version `CURL_OPENSSL_3` not found ===<br />
<br />
This is because {{Pkg|curl}} alone is not compatible with previous versions. You need to install the compatibility libraries:<br />
<br />
One of the following messages may show up:<br />
<br />
# Nuclear Throne<br />
./nuclearthrone: /usr/lib32/libcurl.so.4: version `CURL_OPENSSL_3' not found (required by ./nuclearthrone)<br />
<br />
# Devil Daggers<br />
./devildaggers: /usr/lib/libcurl.so.4: version `CURL_OPENSSL_3' not found (required by ./devildaggers)<br />
<br />
You need to install either {{Pkg|libcurl-compat}} or {{Pkg|lib32-libcurl-compat}} and link the compatibility library manually:<br />
<br />
# Nuclear Throne<br />
$ ln -s /usr/lib32/libcurl-compat.so.4.4.0 "''LIBRARY''/steamapps/common/Nuclear Throne/lib/libcurl.so.4"<br />
<br />
# Devil Daggers<br />
$ ln -s /usr/lib/libcurl-compat.so.4.4.0 ''LIBRARY''/steamapps/common/devildaggers/lib64/libcurl.so.4<br />
<br />
== Audio issues ==<br />
<br />
If the sections below do not address the issue, using the [[#Steam native runtime]] might help.<br />
<br />
=== Configure PulseAudio ===<br />
<br />
Games that explicitly depend on ALSA can break PulseAudio. Follow the directions for [[PulseAudio#ALSA]] to make these games use PulseAudio instead.<br />
<br />
=== No audio or 756 Segmentation fault ===<br />
<br />
First [[#Configure PulseAudio]] and see if that resolves the issue. If you do not have audio in the videos which play within the Steam client, it is possible that the ALSA libraries packaged with Steam are not working.<br />
<br />
Attempting to playback a video within the steam client results in an error similar to:<br />
<br />
ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave<br />
<br />
A workaround is to rename or delete the {{ic|alsa-lib}} folder and the {{ic|libasound.so.*}} files. They can be found at:<br />
<br />
~/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/<br />
<br />
An alternative workaround is to add the {{ic|libasound.so.*}} library to the {{ic|LD_PRELOAD}} environment variable:<br />
<br />
LD_PRELOAD='/usr/$LIB/libasound.so.2 '${LD_PRELOAD} steam<br />
<br />
If audio still won't work, adding the Pulseaudio-libs to the {{ic|LD_PRELOAD}} variable may help:<br />
<br />
LD_PRELOAD='/usr/$LIB/libpulse.so.0 /usr/$LIB/libpulse-simple.so.0 '${LD_PRELOAD}<br />
<br />
Be advised that their names may change over time. If so, it is necessary to take a look in <br />
<br />
~/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu<br />
<br />
and find the new libraries and their versions.<br />
<br />
Bugs reports have been filed: [https://github.com/ValveSoftware/steam-for-linux/issues/3376 #3376] and [https://github.com/ValveSoftware/steam-for-linux/issues/3504 #3504]<br />
<br />
=== FMOD sound engine ===<br />
{{Accuracy|No source / bug report.}}<br />
<br />
The [https://www.fmod.com/ FMOD] audio middleware package is a bit buggy, and as a result games using it may have sound problems.<br />
<br />
It usually occurs when an unused sound device is used as default for ALSA. See [[Advanced Linux Sound Architecture#Set the default sound card]].<br />
<br />
:Affected games: Hotline Miami, Hotline Miami 2, Transistor<br />
<br />
=== PulseAudio & OpenAL: Audio streams can't be moved between devices ===<br />
<br />
If you use [[PulseAudio]] and cannot move an audio stream between sinks, it might be because recent OpenAL versions default to disallow audio streams from being moved. Try to add the following to your {{ic|~/.alsoftrc}}:<br />
<br />
[pulse]<br />
allow-moves=true<br />
<br />
== Steam client issues ==<br />
<br />
=== Cannot add library folder because of missing execute permissions ===<br />
<br />
If you add another Steam library folder on another drive, you might get the error message:<br />
<br />
New Steam library folder must be on a filesystem mounted with execute permissions<br />
<br />
Make sure you are mounting the filesystem with the correct flags in your {{ic|/etc/fstab}}, usually by adding {{ic|exec}} to the list of mount parameter. The parameter must occur after any {{ic|user}} or {{ic|users}} parameter since these can imply {{ic|noexec}}.<br />
<br />
This error might also occur if your library folder does not contain a {{ic|steamapps}} directory. Previous versions used {{ic|SteamApps}} instead, so ensure the name is fully lowercase.<br />
<br />
This error can also occur because of Steam runtime issues and may be fixed following the [[#Dynamic linker]]{{Broken section link}} section.<br />
<br />
=== Unusually slow download speed ===<br />
<br />
If your Steam apps (games, software…) download speed through the client is unusually slow, but browsing the Steam store and streaming videos is unaffected, installing a DNS cache program, such as [[dnsmasq]] can help [https://steamcommunity.com/app/221410/discussions/2/616189106498372437/].<br />
<br />
=== "Needs to be online" error ===<br />
If the Steam launcher refuses to start and you get an error saying: "''Fatal Error: Steam needs to be online to update''" while you are online, then there might be issues with name resolving. <br />
<br />
Try to install {{Pkg|nss-mdns}}.<br />
<br />
=== Steam forgets password ===<br />
<br />
:Related: [https://github.com/ValveSoftware/steam-for-linux/issues/5030 steam-for-linux#5030]<br />
Steam for Linux has a bug which causes it to forget the password of some users.<br />
<br />
As a workaround, after logging in to Steam, run<br />
$ chmod -w ~/.steam/registry.vdf<br />
This will make the file read-only so Steam cannot modify it, and thus not log you out.<br />
<br />
=== Preventing crash memory dumps ===<br />
<br />
Every time Steam crashes, it writes a memory dump to {{ic|/tmp/dumps/}}. If Steam falls into a crash loop, the dump files can become quite large. When {{ic|/tmp}} is mounted as [[tmpfs]], memory and swap file can be consumed needlessly.<br />
<br />
To prevent this, link {{ic|/tmp/dumps/}} to {{ic|/dev/null}}:<br />
# ln -s /dev/null /tmp/dumps<br />
<br />
Or alternatively, create and modify permissions on {{ic|/tmp/dumps}}. Then Steam will be unable to write dump files to the directory.<br />
<br />
# mkdir /tmp/dumps<br />
# chmod 600 /tmp/dumps<br />
<br />
This also has the added benefit of Steam not uploading these dumps to Valve's servers.<br />
<br />
=== Steam license problem with playing videos ===<br />
<br />
Steam uses [[w:Widevine|Google's Widevine DRM]] for some videos. If it is not installed you will get the following error:<br />
<br />
This video requires a license to play which cannot be retrieved. This may be a temporary network condition. Please restart the video to try again.<br />
<br />
To solve this issue follow the [https://support.steampowered.com/kb_article.php?ref=8699-OASD-1871#15 ''Streaming Videos on Steam'' support page].<br />
<br />
== In-home streaming issues ==<br />
<br />
See [[Steam#In-home streaming]].<br />
<br />
=== In-home streaming does not work from archlinux host to archlinux guest ===<br />
<br />
Chances are you are missing {{Pkg|lib32-libcanberra}}. Once you [[install]] that, it should work as expected.<br />
<br />
With that, Steam should no longer crash when trying to launch a game through in-home streaming.<br />
<br />
=== Hardware decoding not available ===<br />
<br />
In-home streaming hardware decoding uses {{ic|vaapi}}, so it needs to be installed (or wrapped around {{ic|vdpau}}). See [[hardware video acceleration]]. Remember to install the {{ic|lib32}} versions as well.<br />
<br />
=== Big Picture Mode minimizes itself after losing focus ===<br />
<br />
This can occur when you play a game via in-home streaming or if you have a multi-monitor setup and move the mouse outside of BPM's window. To prevent this, set the following environment variable and restart Steam<br />
<br />
export SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS=0<br />
<br />
See also the [https://github.com/ValveSoftware/steam-for-linux/issues/4769 steam-for-linux issue 4769].<br />
<br />
== Other issues ==<br />
<br />
=== Wrong ELF class ===<br />
<br />
If you see this message in Steam's console output<br />
<br />
ERROR: ld.so: object '~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.<br />
<br />
you can safely ignore it. It is not really any error: Steam includes both 64- and 32-bit versions of some libraries and only one version will load successfully. This "error" is displayed even when Steam (and the in-game overlay) is working perfectly.<br />
<br />
=== Multiple monitors setup ===<br />
{{Expansion|Is this Nvidia-only? Can this be reproduced by anyone? Is there an upstream report?}}<br />
A setup with multiple monitors may prevent games from starting. Try to disable all additional displays, and then run a game. You can enable them after the game successfully started. <br />
<br />
Also you can try running Steam with this environment variable set:<br />
<br />
export LD_LIBRARY_PATH=/usr/lib32/nvidia:/usr/lib/nvidia:$LD_LIBRARY_PATH<br />
<br />
=== Text is corrupt or missing ===<br />
<br />
The Steam Support [https://support.steampowered.com/kb_article.php?ref=1974-YFKL-4947 instructions] for Windows seem to work on Linux also.<br />
<br />
You can install them via the {{AUR|steam-fonts}} package, or manually by downloading and [[fonts#Manual installation|installing]] [https://support.steampowered.com/downloads/1974-YFKL-4947/SteamFonts.zip SteamFonts.zip].<br />
<br />
{{Note|When steam cannot find the Arial fonts, font-config likes to fall back onto the Helveticia bitmap font. Steam does not render this and possibly other bitmap fonts correctly, so either removing problem fonts or [[Font configuration#Disable bitmap fonts|disabling bitmap fonts]] will most likely fix the issue without installing the Arial or ArialBold fonts.<br />
<br />
The font being used in place of Arial can be found with the command {{bc|$ fc-match -v Arial}}}}<br />
<br />
=== SetLocale('en_US.UTF-8') fails at game startup ===<br />
<br />
You need to generate the {{ic|en_US.UTF-8 UTF-8}} locale. See [[Locale#Generating locales]].<br />
<br />
=== Missing libc ===<br />
<br />
This could be due to a corrupt Steam executable. Check the output of:<br />
<br />
$ ldd ~/.local/share/Steam/ubuntu12_32/steam<br />
<br />
Should {{ic|ldd}} claim that it is not a dynamic executable, then Steam likely corrupted the binary during an update. The following should fix the issue:<br />
<br />
$ cd ~/.local/share/Steam/<br />
$ ./steam.sh --reset<br />
<br />
If it doesn't, try to delete the {{ic|~/.local/share/Steam/}} directory and launch Steam again, telling it to reinstall itself.<br />
<br />
This error message can also occur due to a bug in Steam which occurs when your {{ic|$HOME}} directory ends in a slash (Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/3730 issue 3730]). This can be fixed by editing {{ic|/etc/passwd}} and changing {{ic|/home/<username>/}} to {{ic|home/<username>}}, then logging out and in again. Afterwards, Steam should repair itself automatically.<br />
<br />
=== Games do not launch on older Intel hardware ===<br />
<br />
:[https://steamcommunity.com/app/8930/discussions/1/540744299927655197/ source]<br />
<br />
On older Intel hardware which doesn't support OpenGL 3, such as Intel GMA chips or Westmere CPUs, games may immediately crash when run. It appears as a {{ic|gameoverlayrenderer.so}} error in {{ic|/tmp/dumps/mobile_stdout.txt}}, but looking in {{ic|/tmp/gameoverlayrenderer.log}} it shows a GLXBadFBConfig error. <br />
<br />
This can be fixed, by forcing the game to use a later version of OpenGL than it wants.<br />
Add {{ic|1=MESA_GL_VERSION_OVERRIDE=3.1 MESA_GLSL_VERSION_OVERRIDE=140}} to your [[launch option]]s.<br />
<br />
=== Mesa: Game does not launch, complaining about OpenGL version supported by the card ===<br />
<br />
Some games are badly programmed, to use any OpenGL version above 3.0.<br />
With Mesa, an application has to request a specific core profile.<br />
If it doesn't make such a request, only OpenGL 3.0 and lower are available.<br />
<br />
This can be fixed, by forcing the game to use a version of OpenGL it actually needs.<br />
Add {{ic|1=MESA_GL_VERSION_OVERRIDE=4.1 MESA_GLSL_VERSION_OVERRIDE=410}} to your [[launch option]]s.<br />
<br />
=== 2K games do not run on XFS partitions ===<br />
<br />
{{Expansion|Seems to be a general issue, e.g. [https://github.com/ValveSoftware/Source-1-Games/issues/1685]}}<br />
<br />
If you are running 2K games such as Civilization 5 on [[XFS]] partitions, then the game may not start or run properly due to how the game loads files as it starts.<br />
[https://bbs.archlinux.org/viewtopic.php?id=185222]<br />
<br />
=== Steam controller not being detected correctly ===<br />
<br />
See [[Gamepad#Steam Controller]].<br />
<br />
=== Steam hangs on "Installing breakpad exception handler..." ===<br />
<br />
[https://bbs.archlinux.org/viewtopic.php?id=177245 BBS#177245]<br />
<br />
You have an Nvidia GPU and Steam has the following output:<br />
<br />
Running Steam on arch rolling 64-bit<br />
STEAM_RUNTIME is enabled automatically<br />
Installing breakpad exception handler for appid(steam)/version(0_client)<br />
<br />
Then nothing else happens. Ensure you have the correct drivers installed as well as their 32-bit versions: see [[NVIDIA#Installation]].<br />
<br />
=== Killing standalone compositors when launching games ===<br />
<br />
Further to this, utilising the {{ic|%command%}} switch, you can kill standalone compositors (such as Xcompmgr or [[Compton]]) - which can cause lag and tearing in some games on some systems - and relaunch them after the game ends by adding the following to your game's launch options.<br />
<br />
killall compton && %command%; compton -b &<br />
<br />
Replace {{ic|compton}} in the above command with whatever your compositor is. You can also add -options to {{ic|%command%}} or {{ic|compton}}, of course.<br />
<br />
Steam will latch on to any processes launched after {{ic|%command%}} and your Steam status will show as in game. So in this example, we run the compositor through {{ic|nohup}} so it is not attached to Steam (it will keep running if you close Steam) and follow it with an ampersand so that the line of commands ends, clearing your Steam status.<br />
<br />
=== Symbol lookup error using DRI3 ===<br />
<br />
Steam outputs this error and exits.<br />
<br />
symbol lookup error: /usr/lib/libxcb-dri3.so.0: undefined symbol: xcb_send_request_with_fds<br />
<br />
To work around this, run Steam with {{ic|1=LIBGL_DRI3_DISABLE=1}}, disabling DRI3 for Steam.<br />
<br />
=== Launching games on Nvidia optimus laptops ===<br />
<br />
To be able to play games which require using Nvidia GPU (for example, Hitman 2016) on optimus enabled laptop, you should start Steam with ''primusrun'' prefix. Otherwise, game will not work.<br />
Keep in mind, that issuing some command such as {{ic|primusrun steam}} while Steam is already running will not restart it. You should explicitly exit and then start Steam via {{ic|primusrun steam}} command or start game immediately after start, for example with {{ic|primusrun steam steam://rungameid/236870}}.<br />
After Steam was launched with primusrun prefix, you do not need to prefix your game with primusrun or optirun, because it does not matter.<br />
<br />
For primusrun, VSYNC is enabled by default it could result in a mouse input delay lag, slightly decrease performance and in-game FPS might be locked to a refresh rate of a monitor/display.<br />
In order to disable VSYNC for primusrun default value of option vblank_mode needs to be overridden by environment variable.<br />
<br />
{{ic|1=vblank_mode=0 primusrun steam}}<br />
<br />
Same with optirun that uses primus as a bridge. <br />
<br />
{{ic|1=vblank_mode=0 optirun -b primus steam}}<br />
<br />
If that did not work try:<br />
<br />
{{ic|1=LD_PRELOAD="libpthread.so.0 libGL.so.1" __GL_THREADED_OPTIMIZATIONS=1 optirun steam}}<br />
<br />
For more details see [[Bumblebee#Primusrun mouse delay (disable VSYNC)]].</div>Monyhttps://wiki.archlinux.org/index.php?title=Oblogout&diff=509073Oblogout2018-01-31T03:08:42Z<p>Mony: /* Dual Head */ using class instead of name</p>
<hr />
<div>[[Category:Stacking WMs]]<br />
[[ja:Oblogout]]<br />
{{Related articles start}}<br />
{{Related|Openbox}}<br />
{{Related|Window manager}}<br />
{{Related articles end}}<br />
{{Pkg|oblogout}} is an optional, configurable logout script that presents a graphical interface (i.e. buttons) to {{ic|cancel}}, {{ic|logout}}, {{ic|restart}}, {{ic|shutdown}}, {{ic|suspend}}, {{ic|hibernate}}, and {{ic|lock}} the screen.<br />
<br />
== Overview ==<br />
{{tip|Where using oblogout, it is best to have a compositor enabled to avoid screen distortion when executed. This is due to the default use of transparancy effects. Alternatively, it is also possible to edit {{ic|/etc/oblogout.conf}} and amend the {{ic|opacity <nowiki>=</nowiki>}} command setting to remove transparancy altogether.}}<br />
<br />
Although {{Pkg|oblogout}} may be used with a range of [[window managers]], this article will focus on its use with the [[Openbox|Openbox window manager]]. It may be executed as keybind and/or as a desktop menu entry.<br />
<br />
== Keybind ==<br />
To execute the script by pressing {{ic|Super}}+{{ic|x}} (i.e. create a '''keybind''' for it), edit {{ic|~/.config/openbox/rc.xml}} to add the following to the appropriate part of the {{ic|<keyboard>}} section:<br />
<br />
<keybind key="W-x"><br />
<action name="Execute"><br />
<startupnotify><br />
<enabled>true</enabled><br />
<name>oblogut</name><br />
</startupnotify><br />
<command>oblogout</command><br />
</action><br />
</keybind><br />
<br />
== Screen locking ==<br />
<br />
It will be necessary to edit {{ic|/etc/oblogout.conf}} to change the {{ic|lock <nowiki>=</nowiki>}} command under the {{ic|[commands]}} section, in order to execute the desired package installed for this purpose. <br />
<br />
For example, where having installed [[XScreenSaver]] - which must itself also be autostarted as a [[Daemon]] process in the {{ic|~/.config/openbox/autostart}} file - then {{ic|/etc/oblogout.conf}} would be edited accordingly:<br />
<br />
lock = xscreensaver-command --lock<br />
<br />
Otherwise, where a package such as {{pkg|xlockmore}} has been installed - which does not need to be autostarted - then an example of the necessary command (to lock with a blank screen) would be:<br />
<br />
lock = xlock -mode blank<br />
<br />
== Button theme ==<br />
<br />
The default button theme is {{ic|oxygen}}. A few other themes are also available, including the pre-installed (and more elegant) {{ic|foom}}. To change the button theme, edit {{ic|/etc/oblogout.conf}} and change the {{ic|buttontheme <nowiki>=</nowiki>}} command under the {{ic|[looks]}} section. An example has been provided below for {{ic|foom}}:<br />
<br />
buttontheme = foom<br />
<br />
== Button display ==<br />
{{tip|where changing the order of and/or removing buttons, it is best to use a copy of the default button list, and hash the original. There will then be no need to memorise them.}}<br />
<br />
Default buttons are available to {{ic|cancel}}, {{ic|logout}}, {{ic|restart}}, {{ic|shutdown}}, {{ic|suspend}}, {{ic|hibernate}}, and {{ic|lock}} the screen. Each button also has a configurable shortcut key assigned (e.g. once oblogout has been executed, the system may then be shutdown by pressing the {{ic|s}} key, for example). <br />
<br />
Both the buttons presented and their order may be configured to suit personal preference. To do so, edit{{ic|/etc/oblogout.conf}} and change the {{ic|buttons <nowiki>=</nowiki>}} command under the {{ic|[looks]}} section. In the example below, the {{ic|suspend}} and {{ic|hibernate}} buttons have been removed:<br />
<br />
buttons = cancel, logout, lock, restart, shutdown<br />
#buttons = cancel, logout, restart, shutdown, suspend, hibernate, lock<br />
<br />
Where removing or adding buttons, it will also be necessary to amend the appropriate shortcut key commands under the {{ic|[shortcuts]}} section. Not doing so will mean, for example, that it will still be possible to execute certain functions via the keyboard even where the buttons for them have been removed. For the example provided above, it will be necessary to hash out the {{ic|suspend}} and {{ic|hibernate}} shortcuts:<br />
<br />
[shortcuts]<br />
cancel = Escape<br />
shutdown = S<br />
restart = R<br />
#suspend = U<br />
logout = L<br />
lock = K<br />
#hibernate = H<br />
<br />
== Dual Head ==<br />
<br />
When using multiple monitors, oblogout may cover all monitors. If you only want oblogout to appear on one monitor, you can create an application rule in the Openbox rc.xml file set oblogout's position and size. <br />
<br />
For example, if you have two monitors, and you only want oblogout to appear on the first monitor, add this to the applications section of {{ic|rc.xml}}:<br />
<br />
{{hc|~/.config/openbox/rc.xml|<nowiki><br />
<applications><br />
<application class="oblogout"><br />
<position force="yes"><br />
<monitor>1</monitor><br />
</position><br />
<fullscreen>yes</fullscreen><br />
</application><br />
...<br />
</applications><br />
</nowiki>}}</div>Monyhttps://wiki.archlinux.org/index.php?title=AMD_Catalyst&diff=255211AMD Catalyst2013-04-26T15:30:50Z<p>Mony: </p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[es:ATI Catalyst]]<br />
[[fr:ATI#Catalyst]]<br />
[[it:AMD Catalyst]]<br />
[[zh-CN:AMD Catalyst]]<br />
{{Article summary start}}<br />
{{Article summary text|An overview of AMD's proprietary Linux "Catalyst" video card driver.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|ATI}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary heading|Resources}}<br />
{{Article summary link|cchtml.com - Unofficial Wiki for the ATI Linux Driver|http://wiki.cchtml.com/index.php/Main_Page}}<br />
{{Article summary link|Unofficial ATI Linux Driver Bugzilla|http://ati.cchtml.com/query.cgi}}<br />
{{Article summary end}}<br />
<br />
Owners of ATI/AMD video cards have a choice between AMD's proprietary driver ({{AUR|catalyst}}) and the [[ATI|open source driver]] ({{Pkg|xf86-video-ati}}). This article covers the proprietary driver.<br />
<br />
AMD's Linux driver package ''catalyst'' was previously named ''fglrx'' ('''F'''ire'''GL''' and '''R'''adeon '''X'''). Only the package name has changed, while the kernel module retains its original ''fglrx.ko'' filename. Therefore, any mention of fglrx below is specifically in reference to the ''kernel module'', '''not the package'''.<br />
<br />
As of April 26, 2013, Catalyst packages are no longer offered in the official repositories. In the past, Catalyst [https://www.archlinux.org/news/ati-catalyst-support-dropped/ has been dropped] from official Arch support because of dissatisfaction with the quality and speed of development. This time, it's the incompatibility with Xorg 1.14.<br />
<br />
Compared to the open source driver, Catalyst performs worse in 2D graphics, but has a better support for 3D rendering. Supported devices are [[wikipedia:Radeon|ATI/AMD Radeon]] video cards with chipset R600 and newer (Radeon HD 2xxx and newer). See the Xorg [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names decoder ring] or [[wikipedia:Comparison of AMD graphics processing units|this table]], to translate ''model'' names (X1900, HD4850) to/from ''chip'' names (R580, RV770 respectively).<br />
<br />
== Installation ==<br />
<br />
There are three ways of installing Catalyst on your system. One way is to use Vi0L0's (Arch's unofficial Catalyst maintainer) repository. This repository contains all the necessary packages. The second method you can use is the AUR; PKGBUILDs offered here are also made by Vi0L0 and are the same he uses to built packages for his repository. Lastly, you can install the driver directly from AMD.<br />
<br />
Before choosing the method you prefer, you will have to see which driver you need. Since Catalyst 12.4, AMD has separated its development for Radeon HD 2xxx, 3xxx and 4xxx cards into the '''legacy''' Catalyst driver. For Radeon HD 5xxx and newer, there is the regular Catalyst driver. Regardless of the driver you need, you will also need the Catalyst utilities.<br />
<br />
{{Note|After the instructions for every method of installing, you will find general instructions '''everyone''' has to perform, regardless of the method you used.}}<br />
<br />
=== Installing the driver ===<br />
<br />
==== Installing from the unofficial repository ====<br />
If you don't fancy building the packages from the [[Arch User Repository|AUR]], this is the way to go. The repository is maintained by our unofficial Catalyst maintainer, Vi0L0. All packages are signed and are considered safe to use. As you will see later on in this article, Vi0L0 is also responsible for many other packages that will help you get your system working with your ATI graphic cards. <br />
<br />
Vi0L0 has three different Catalyst repositories, each having different drivers:<br />
*[catalyst]; for the regular Catalyst driver needed by Radeon HD 5xxx and up, it contains the latest (stable or beta) Catalyst release;<br />
*[catalyst-stable]; for the regular Catalyst driver needed by Radeon HD 5xxx and up, with the latest stable driver;<br />
*[catalyst-hd234k]; for the legacy Catalyst driver needed by Radeon HD 2xxx, 3xxx and 4xxx cards. <br />
<br />
{{Warning|The Legacy driver does not support Xorg 1.14 for now. Support should be added by AMD in a century or two, but this could be sooner. Should you want to use this driver, see [[#Xorg repositories]] for instructions on how to roll back to or hold back Xorg 1.13.}}<br />
<br />
To enable one of these, you will have to edit {{ic|/etc/pacman.conf}} and add the repository of choice's information '''above all other repositories''' in {{ic|/etc/pacman.conf}}.<br />
<br />
*For [catalyst], add:<br />
<br />
[catalyst]<br />
<nowiki>Server = http://catalyst.wirephire.com/repo/catalyst/$arch</nowiki><br />
<br />
*For [catalyst-stable], add:<br />
<br />
[catalyst-stable]<br />
<nowiki>Server = http://catalyst.wirephire.com/repo/catalyst/$arch</nowiki><br />
<br />
*For [catalyst-hd234k], add:<br />
<br />
[catalyst-hd234k]<br />
<nowiki>Server = http://catalyst.wirephire.com/repo/catalyst-hd234k/$arch</nowiki><br />
<br />
You must also [[User:Vi0L0|add Vi0L0's GPG key]] so that pacman trusts the repositories.<br />
<br />
# pacman-key --keyserver pgp.mit.edu --recv-keys 0xabed422d653c3094<br />
# pacman-key --lsign-key 0xabed422d653c3094<br />
<br />
Once you have done this, update pacman's database and install the packages:<br />
<br />
# pacman -Syu<br />
# pacman -S catalyst catalyst-utils<br />
<br />
{{Note|If pacman asks you about removing '''libgl''' you can safely do so.}}<br />
<br />
{{Warning|Catalyst from Vi0L0's repository is compiled against one kernel and one kernel only. For Vi0L0, it's getting more and more difficult to keep up with kernel's pace and as such, we have seen a lot of users asking for what to do in the forums. Often, the solution is to a) wait for Vi0L0 to rebuilt the Catalyst package against those newer versions, b) do so yourself or c) hold back the Linux kernel update. The easiest solution is to do so yourself, not manually, but by using Vi0L0's excellent [[#Catalyst-hook]].}}<br />
<br />
If you are on 64-bit and also need 32-bit OpenGL support:<br />
<br />
# pacman -S lib32-catalyst-utils<br />
<br />
Repositories also contain other packages, that can ''replace'' the catalyst-hook package:<br />
<br />
* '''catalyst-generator'''; this package is able to generate fglrx modules packed into pacman compliant packages - most secure and KISS-compatible package in this side-note, although it has to be operated manually. It's described in [[#Catalyst-generator]]<br />
* '''catalyst-hook'''; a systemd service which will automatically update the fglrx module whilst the system shuts down or reboots. It's described in [[#Catalyst-hook]]<br />
<br />
You will find more details about those packages in [[#Tools| Tools section]].<br />
Lastly, both repositories also contain the '''xvba-video''' package, which enables video acceleration, described in [[#Video acceleration]], the '''AMDOverdriveCtrl''' package, which is a GUI to control over- and underclocking, also described in [[#GPU/Mem frequency, Temperature, Fan speed, Overclocking utilities]], and a pack of tools for '''OpenCL/OpenGL developers''', described in [[#OpenCL_and_OpenGL_development]]<br />
<br />
==== Installing from the AUR ====<br />
The second way to install Catalyst is from the [[Arch User Repository|AUR]]. If you want to built the packages specifically for your computer, this is your way to go. Note that this is also the most tedious way to install Catalyst; it requires the most work and also requires manual updates upon every kernel update.<br />
<br />
{{Warning|If you install the Catalyst package from the AUR, you will have to rebuild Catalyst every time the kernel is updated. Otherwise X '''will''' fail to start.}}<br />
{{Warning|The Legacy driver does not support Xorg 1.13 for now. Support should be added by AMD in a century or two, but this could be sooner. Should you want to use this driver, see [[#Xorg repositories]] for instructions on how to roll back to or hold back Xorg 1.12.}}<br />
<br />
All packages mentioned above in Vi0L0's unofficial repository are also available on the [[Arch User Repository|AUR]]:<br />
* {{AUR|Catalyst}};<br />
* {{AUR|Catalyst-utils}};<br />
* {{AUR|Lib32-catalyst-utils}};<br />
* {{AUR|Catalyst-generator}};<br />
* {{AUR|Catalyst-hook}};<br />
<br />
The AUR also holds some packages that are '''not''' found in any of the repositories. These packages contain the so-called ''Catalyst-total'' packages and the beta versions:<br />
* {{AUR|Catalyst-total-hd234k}};<br />
* {{AUR|Catalyst-total}};<br />
* {{AUR|Catalyst-test}};<br />
* {{AUR|Lib32-catalyst-test}};<br />
* {{AUR|Catalyst-total-pxp}};<br />
<br />
The ''Catalyst-total'' packages are made to make the lives of AUR users easier. It builds the driver, the kernel utilities and the 32 bit kernel utilities. It also builds the Catalyst-hook package, which is explained above.<br />
<br />
''Catalyst-total-pxp'' builds Catalyst with experimental powerXpress support.<br />
<br />
For more information on building from the AUR, read [[#Installing_from_AUR| Installing from AUR]].<br />
<br />
==== Installing directly from AMD ====<br />
{{Warning|Using the installer from ati.com/amd.com is '''not''' recommended! It may cause file conflicts and X failures and you will miss Arch-specific fixes. You '''must''' be familiar with booting to the command-line if you wish to attempt this.}}<br />
<br />
{{Note|If you have attempted a manual install from the official installer and cannot recover your desktop:<br />
# /usr/share/ati/fglrx-uninstall.sh<br />
}}<br />
<br />
1.) Download the installer from AMD or elsewhere (whereas *-* will be the version): {{ic|ati-driver-installer-*-*-x86.x86_64.run}}<br />
<br />
2.) Make sure it's executable: {{ic|# chmod +x ati-driver*}}<br />
<br />
3.) Ensure you're using a basic video driver like vesa and remove conflicting drivers (i.e. {{ic|xf86-video-ati}}) with pacman.<br />
<br />
4.) Symlink {{ic|/usr/src/linux}} to {{ic|<nowiki>/usr/src/{kernelsource}</nowiki>}}. 64-bit users also symlink{{ic|/usr/lib64}} to {{ic|/usr/lib}}.<br />
<br />
5.) Be sure to have your build environment setup: {{ic|# pacman -Syu base-devel linux-headers}}<br />
<br />
6.) Now run {{ic|# ./ati-driver-installer-*-*-x86.86_64.run}} (Files will extract to a temporary folder and scripts will run...)<br />
<br />
Assuming nothing went horribly wrong...<br />
<br />
7.) Check {{ic|/usr/share/ati/fglrx-install.log}} for issues. There should also be a {{ic|/lib/modules/fglrx/make.{ker_version}.log}}.<br />
<br />
{{Note|If you modify the make scripts, save to a different filename. Otherwise uninstall will not complete successfully.}}<br />
<br />
=== Configuring the driver ===<br />
After you have installed the driver via your chosen method, you will have to configure X to work with Catalyst. Also, you will have to make sure the module gets loaded at boot. Also, one should disable [[KMS|kernel mode setting]].<br />
<br />
==== Configuring X ====<br />
To configure X, you will have to create an xorg.conf file. Catalyst provides its own {{ic|aticonfig}} tool to create and/or modify this file.<br />
It also can configure virtually every aspect of the card for it also accesses the {{ic|/etc/ati/amdpcsdb}} file. For a complete list of {{ic|aticonfig}} options, run:<br />
<br />
# aticonfig --help | less<br />
<br />
{{Warning|Use the --output option before committing to /etc/X11 as an xorg.conf file will override anything in /etc/X11/xorg.conf.d}}<br />
<br />
{{Note|If you want to adhere to the new xorg.conf.d: Append your {{ic|aticonfig}} string with ''--output'' so that you can adapt the Device section to {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}. The drawback of this is that many {{ic|aticonfig}} options rely on an xorg.conf, and thus will be unavailable.}}<br />
<br />
Now, to configure Catalyst. If you have only one monitor, run this:<br />
<br />
# aticonfig --initial<br />
<br />
{{Note | If you have PowerXpress problem you should probably install {{ic|catalyst-utils-pxp}}}}<br />
<br />
However, if you have two monitors and want to use both of them, you can run the command stated below. Note that this will generate a dual head configuration with the second screen located above the first screen.<br />
<br />
# aticonfig --initial=dual-head --screen-layout=above<br />
<br />
{{Note|See [[#Double Screen (Dual Head / Dual Screen / Xinerama)]] for more information on setting up dual monitors.}}<br />
<br />
You can compare the generated file to one of the [[Xorg#Sample_xorg.conf_Files|Sample Xorg.conf]] examples listed on the Xorg page.<br />
<br />
Although the current Xorg versions auto-detect most options when started, you may want to specify some in case the defaults change between versions.<br />
<br />
Here is an example (with notes) '''for reference'''. Entries with '#' should be required, add entries with '##' as needed:<br />
<br />
{{bc|1=<br />
Section "ServerLayout"<br />
Identifier "Arch"<br />
Screen 0 "Screen0" 0 0 # 0's are necessary.<br />
EndSection<br />
Section "Module"<br />
Load ...<br />
...<br />
EndSection<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
...<br />
EndSection<br />
Section "Device"<br />
Identifier "Card0"<br />
Driver "fglrx" # Essential.<br />
BusID "PCI:1:0:0" # Recommended if autodetect fails.<br />
Option "OpenGLOverlay" "0" ##<br />
Option "XAANoOffscreenPixmaps" "false" ##<br />
EndSection<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Card0"<br />
Monitor "Monitor0"<br />
DefaultDepth 24<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 24 # Should not change from '24'<br />
Modes "1280x1024" "2048x1536" ## 1st value=default resolution, 2nd=maximum.<br />
Virtual 1664 1200 ## (x+64, y) to workaround potential OGL rect. artifacts/<br />
EndSubSection ## fixed in Catalyst 9.8<br />
EndSection<br />
Section "DRI"<br />
Mode 0666 # May help enable direct rendering.<br />
EndSection<br />
}}<br />
<br />
{{Note|With '''every''' Catalyst update you should remove '''amdpcsdb''' file in this way: kill X, remove {{ic|/etc/ati/amdpcsdb}}, start X and then run {{ic|amdcccle}} - otherwise the version of Catalyst may display wrongly in amdcccle.}}<br />
<br />
''If you need more information on Catalyst, visit [https://bbs.archlinux.org/viewtopic.php?id=57084 this thread].''<br />
<br />
==== Loading the module at boot ====<br />
{{Note|Users of the [community] package do not have to do this, it's automatically done for them when installing the package.}}<br />
We have to blacklist the {{ic|radeon}} module to prevent it from auto-loading. To do so, blacklist ''radeon'' in {{ic|/etc/modprobe.d/modprobe.conf}}. Also, make sure that it is not loaded by any file under {{ic|/etc/modules-load.d/}}. For more information, see [[Modprobe|blacklisting in this article]]. <br />
<br />
Then we will have to make sure that the {{ic|fglrx}} module gets auto-loaded. Either add {{ic|fglrx}} on a new line of an existing module file located under {{ic|/etc/modules-load.d/}}, or create a new file and add {{ic|fglrx}}.<br />
<br />
==== Disable kernel mode setting ====<br />
<br />
Disabling kernel mode setting is important, as the driver doesn't take advantage of [[KMS]] yet. If you do not deactivate KMS, your system might freeze when trying to switch to a tty or even when shutting down via your DE.<br />
<br />
For [[GRUB Legacy|GRUB Legacy]], edit {{ic|menu.lst}} by adding {{ic|nomodeset}} to the kernel parameters. For example:<br />
<br />
kernel /boot/vmlinuz-linux root=/dev/sda1 ro '''nomodeset'''<br />
<br />
For [[GRUB2|GRUB 2]], edit {{ic|/etc/default/grub}} and add ''nomodeset'' to the kernel parameter options, e.g.<br />
<br />
GRUB_CMDLINE_LINUX="nomodeset"<br />
<br />
Then run, as root;<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
For [[Syslinux|Syslinux]], edit {{ic|/boot/syslinux/syslinux.cfg}} and add ''nomodeset'' to the {{ic|APPEND}} line, e.g.:<br />
<br />
APPEND root=/dev/sda2 ro ''nomodeset''<br />
<br />
==== Checking operation ====<br />
<br />
Assuming that a reboot to your login was successful, you can check if fglrx is running properly with the following commands:<br />
<br />
$ lsmod | grep fglrx<br />
$ fglrxinfo<br />
<br />
If you get output, it works. Finally, run X with {{ic|startx}} or by using GDM/KDM and verify that direct rendering is enabled by running the following command in a terminal:<br />
<br />
$ glxinfo | grep "direct rendering"<br />
<br />
If it says "direct rendering: yes" then you're good to go! If the glxinfo command is not found install the {{Pkg|mesa-demos}} package.<br />
<br />
{{Note|You can also use:<br />
$ fgl_glxgears<br />
as the fglrx alternative test to glxgears.<br />
}}<br />
<br />
{{Warning|In recent versions of Xorg, the paths of libs are changed. So, sometimes {{ic|libGL.so}} cannot be correctly loaded even if it's installed. Check this if your GL is not working. Please read "Troubleshooting" section for details.}}<br />
<br />
If you have trouble, see [[#Troubleshooting]].<br />
<br />
=== Custom Kernels ===<br />
<br />
To install catalyst for a custom kernel, you'll need to build your own {{ic|catalyst-$kernel}} package.<br />
<br />
If you are at all uncomfortable or inexperienced with making packages, read up the [[ABS]] wiki page first so things go smoothly.<br />
<br />
# Obtain the {{ic|PKGBUILD}} and {{ic|catalyst.install}} files from [[AUR|Catalyst]].<br />
# Editing the PKGBUILD. Two changes need to be made here:<br />
## Change {{ic|1=pkgname=catalyst}} to {{ic|1=pkgname=catalyst-$kernel_name}}, where $kernel_name is whatever you want (e.g. custom, mm, themostawesomekernelever).<br />
## Change the dependency of {{ic|linux}} to {{ic|$kernel_name}}.<br />
# Build your package and install; run {{ic|makepkg -i}} or {{ic|makepkg}} followed by {{ic|pacman -U pkgname.pkg.tar.gz}}<br />
<br />
{{Note|If you run multiple kernels, you have to install the Catalyst-utils packages for all kernels. They won't conflict with one another.}}<br />
<br />
{{Note|Catalyst-generator is able to build catalyst-{kernver} packages for you so you do not actually need to perform all those steps manually. For more information, see [[#Tools| Tools section]].}}<br />
<br />
=== PowerXpress support ===<br />
<br />
PowerXpress technology allows switching notebooks with dual-graphic capability from integrated graphics (IGP) to discrete graphics either to increase battery life or to achieve better 3D rendering capabilities.<br />
<br />
To use such functionality on Arch you will have to:<br />
* Get and build {{AUR|catalyst-total-pxp}} package from the [[Arch User Repository|AUR]], or<br />
* Install '''catalyst-utils-pxp''' package from the [catalyst] repository (plus additional lib32-catalyst-utils-pxp, if needed).<br />
<br />
To perform a switch into Intel's IGP you will also have to install the '''mesa-libgl''' package and Intel's drivers: '''xf86-video-intel''' and '''intel-dri'''.<br />
<br />
{{Note|'''With the latest version of Catalyst, version 13.1 (not Catalyst legacy) ChrisXY was able to work on the newest xorg-server (version 1.13.1), mesa 9.0.1 and xf86-video-intel 2.20.18'''.<br />
<br />
On any version of Catalyst below 13.1 (and all versions of Catalyst legacy) there are some problems with the new Intel drivers and the '''last noted working version of xf86-video-intel is 2.20.2-2''', so you will probably have to downgrade from the latest version that you have gotten from Arch's repositories (although we recommend to test the newest one before downgrading - there's always some possibility that it will work).<br />
<br />
'''xf86-video-intel 2.20.2-2''' works only with xorg-server 1.12 and so it is a part of the '''xorg112 repository'''. If you want to use it you will have to downgrade xorg-server as well. For information on this, see [[#Xorg repositories]].}}<br />
<br />
Now you can switch between the integrated and the discrete GPU, using these commands:<br />
<br />
{{bc|1=<br />
# aticonfig --px-igpu #for integrated GPU<br />
# aticonfig --px-dgpu #for discrete GPU<br />
}}<br />
<br />
Just remember that fglrx needs /etc/X11/xorg.conf configured for AMD's card with 'fglrx' inside.<br />
<br />
You can also use the '''pxp_switch_catalyst''' switching script that will perform some additional usefull operations:<br />
* Switching xorg.conf - it will rename xorg.conf into xorg.conf.cat (if there's fglrx inside) or xorg.conf.oth (if there's intel inside) and then it will create a symlink to xorg.conf, depending on what you chose.<br />
* Running {{ic|aticonfig --px-Xgpu}}.<br />
* Running {{ic|switchlibGL}}.<br />
* Adding/removing fglrx into/from {{ic|/etc/modules-load.d/catalyst.conf}}.<br />
<br />
Usage:<br />
{{bc|1=<br />
# pxp_switch_catalyst amd<br />
# pxp_switch_catalyst intel<br />
}}<br />
<br />
If you have got problems when you try to run X on Intel's driver you may try to force '''"UXA" acceleration'''; just make sure that your xorg.conf for Intel's GPU got '''Option "AccelMethod" "uxa"''', like here:<br />
{{bc|1=<br />
Section "Device"<br />
Identifier "Intel Graphics"<br />
Driver "intel"<br />
#Option "AccelMethod" "sna"<br />
Option "AccelMethod" "uxa"<br />
#Option "AccelMethod" "xaa"<br />
EndSection<br />
}}<br />
<br />
==== Running two X servers (one using the Intel driver, another one using fglrx) simultaneously ====<br />
Because fglrx is crash-prone (regarding PowerXpress), it could be a good idea to use the Intel driver in the main X server and have a secondary X server using fglrx when 3D acceleration is needed. However, simply switching to the discrete GPU from the integrated GPU using {{ic|aticonfig}} or {{ic|amdcccle}} will cause all sorts of weird bugs when starting the second X.<br />
<br />
To run two X servers at the same time (each using different drivers), you should firstly set up a fully working X with Catalyst and then move its {{ic|xorg.conf}} to a temporary place (for example, {{ic|/etc/X11/xorg.conf.fglrx}}. The next time X is started, it will use the Intel driver by default instead of fglrx.<br />
<br />
To start a second X server using fglrx, simply move {{ic|xorg.conf}} back to the proper place ({{ic|/etc/X11/xorg.conf}}) before starting X. This method even allows you to switch between running X sessions. When you are done using fglrx, move {{ic|xorg.conf}} somewhere else again.<br />
<br />
The only disadvantage of this method is not having 3D acceleration using the Intel driver. 2D acceleration, however, is fully functional. Other than that, this will provide us with a completely stable desktop.<br />
<br />
== Xorg repositories ==<br />
Catalyst is notorious for its slow update process. As such, it is common that a new Xorg version is pushed down from upstream that will break compatibility for Catalyst. This means that Catalyst users either have to hold the Xorg packages from updating, or use a backported repository that only contains the Xorg packages that should be hold back. Vi0L0 has stepped in to fulfil this task and provides several backported repositories. <br />
<br />
If you want to use pacman to hold back packages from updating, see [[pacman|skip package from being upgraded]]. Packages you should hold back, are:<br />
*xorg-server-*<br />
*xf86-input-*<br />
*xf86-video-*<br />
<br />
If you want to use the backported repositories, you have to edit {{ic|/etc/pacman.conf}} and add the information of the repository '''above all other repositories''', even above your Catalyst repository, should you use one.<br />
<br />
===[xorg113]===<br />
Catalyst doesn't support xorg-server 1.14.<br />
<br />
[xorg113]<br />
<nowiki>Server = http://catalyst.wirephire.com/repo/xorg113/$arch</nowiki><br />
<br />
===[xorg112]===<br />
Catalyst < 12.10 doesn't support xorg-server 1.13.<br />
<br />
[xorg112]<br />
<nowiki>Server = http://catalyst.wirephire.com/repo/xorg112/$arch</nowiki><br />
<br />
===[xorg111]===<br />
Catalyst < 12.6 doesn't support xorg-server 1.12.<br />
<br />
[xorg111]<br />
<nowiki>Server = http://catalyst.wirephire.com/repo/xorg111/$arch</nowiki><br />
<br />
== Tools ==<br />
<br />
=== Catalyst-hook ===<br />
[https://aur.archlinux.org/packages.php?ID=40834 Catalyst-hook] is a [[systemd|systemd]] service that will automatically rebuild the fglrx modules while the system shuts down or reboots, but only if it's necessary (e.g. after an update).<br />
<br />
Before using this package make sure that both the {{Grp|base-devel}} group and the {{Pkg|linux-headers}} package (the one specific to the kernel you use) are installed:<br />
<br />
# pacman -S base-devel linux-headers<br />
<br />
To enable the automatic update, enable the {{ic|catalyst-hook.service}}:<br />
<br />
# systemctl enable catalyst-hook<br />
# systemctl start catalyst-hook<br />
<br />
You can also use this package to build the fglrx module manually. Simply run the catalyst_build_module script after the kernel has been updated:<br />
<br />
# catalyst_build_module all<br />
<br />
'''A few more technical details:'''<br />
<br />
The {{ic|catalyst-hook.service}} is stopping the systemd "river" and is forcing systemd to wait until catalyst-hook finishes its job.<br />
<br />
The {{ic|catalyst-hook.service}} is calling the {{ic|catalyst_build_module check}} function which checks if fglrx rebuilds are really necessary.<br />
<br />
The {{ic|check}} function is checking if the fglrx module exists, if it:<br />
<br />
*doesn't exist, it will build it;<br />
<br />
*does exist, it will compare the two values to be sure that a rebuild is necessary.<br />
<br />
These values are md5sums of the {{ic|/usr/lib/modules/<kernel_version>/build/Module.symvers}} file (because I, Vi0L0, noticed that this file is unique and different for every kernel's release). The first value is the md5sum of the existing {{ic|Module.symvers}} file. The second value is the md5sum of the {{ic|Module.symvers}} file which existed in a moment of the fglrx module creation. This value was compiled into the fglrx module by a catalyst_build_module script.<br />
<br />
If the values are different, it will compile the new fglrx module.<br />
<br />
The check is checking the whole {{ic|/usr/lib/modules/}} directory and building modules for all of the installed kernels if it's necessary. If the build or rebuild isn't necessary, the whole process takes only some milliseconds to complete before it gets killed by systemd.<br />
<br />
=== Catalyst-generator ===<br />
<br />
[https://aur.archlinux.org/packages.php?ID=41040 Catalyst-generator] is a package that is able to build and install the fglrx module packed into pacman compliant catalyst-${kernver} packages. The basic difference from Catalyst-hook is that you will have to trigger this command manually, whereas Catalyst-hook will do this automatically at boot when a new kernel got installed.<br />
<br />
It creates catalyst-${kernver} packages using [[makepkg]] and installs them with [[pacman]]. ''${kernver}'' is the kernel version for which each package was built (e.g. catalyst-2.6.35-ARCH package was built for 2.6.35-ARCH kernel).<br />
<br />
To build and install catalyst-${kernver} package for a currently booted kernel as an unprivileged user (non-root; safer way), use {{ic|catalyst_build_module}}. You will be asked for your root password to proceed to package installation.<br />
<br />
A short summary on how to use this package:<br />
<br />
# As root: {{ic|catalyst_build_module remove}}. This will remove all unused {{ic|catalyst-{kernver} }} packages.<br />
# As unprivileged user: {{ic|catalyst_build_module ${kernver}}}, where ${kernver} is the version of the kernel to which you just updated. For example: {{ic|catalyst_build_module 2.6.36-ARCH}}. You can also build catalyst-${kernver} for all installed kernels by using {{ic|catalyst_build_module all}}.<br />
# If you want to remove {{ic|catalyst-generator}}, it's best to run this as root before removing catalyst-generator: {{ic|catalyst_build_module remove_all}}. '''This will remove all catalyst-{kernver} packages from the system.'''<br />
<br />
Catalyst-generator isn't able to remove all those catalyst-{kernver} packages automatically while being removed because there can not be more than one instance of pacman running. If you forget to run {{ic|catalyst_build_module remove_all}} before using {{ic|pacman -R catalyst-generator}} catalyst-generator will tell you which catalyst-{kernver} packages you will have to remove manually after removing catalyst-generator itself.<br />
<br />
Catalyst-generator is most safe and KISS-friendly solution because:<br />
<br />
- you can use unprivileged user to build the package;<br />
<br />
- it's building modules in fakeroot environment;<br />
<br />
- it's not throwing files here and there, package manager always knows where they are;<br />
<br />
... all you have to do is to remember to use it<br />
<br />
{{Note|If you see those warnings:<br />
<br />
'''WARNING:''' Package contains reference to $srcdir<br />
<br />
'''WARNING:''' '.pkg' is not a valid archive extension.<br />
<br />
while building catalyst-{kernver} package, do not be concerned, it's normal.}}<br />
<br />
=== OpenCL and OpenGL development ===<br />
<br />
Since years AMD is working on tools for OpenCL and OpenGL developement.<br />
<br />
Now under the banner of '''"Heterogeneous Computing"''' AMD is providing even more of them, fortunately most of their computing tools are available also for Linux.<br />
<br />
In the AUR and the [catalyst] repositories you will find packages that represent the most important work from AMD, namely; [https://aur.archlinux.org/packages/amdapp-aparapi amdapp-aparapi], [https://aur.archlinux.org/packages/amdapp-sdk amdapp-sdk] and [https://aur.archlinux.org/packages/amdapp-codexl amdapp-codexl].<br />
<br />
APP shortcut stands for Accelerated Parallel Processing.<br />
<br />
==== amdapp-aparapi ====<br />
AMD's Aparapi is an API for expressing data parallel workloads in Java and a runtime component capable of converting the Java bytecode of compatible workloads into OpenCL so that it can be executed on a variety of GPU devices. If Aparapi can’t execute on the GPU, it will execute in a Java thread pool.<br />
<br />
You can find more information about Aparapi [http://developer.amd.com/tools/heterogeneous-computing/aparapi/ here].<br />
<br />
==== amdapp-sdk (formerly known as amdstream) ====<br />
The AMD APP Software Development Kit (SDK) is a complete development platform created by AMD to allow you to quickly and easily develop applications accelerated by AMD APP technology. The SDK provides samples, documentation and other materials to quickly get you started leveraging accelerated compute using OpenCL, Bolt, or C++ AMP in your C/C++ application.<br />
<br />
Since version 2.8 amdapp-sdk is providing aparapiUtil as well as aparapi's samples. A package is available on the [catalyst] repository; it depends on the amdapp-aparapi package. The AUR's package will let you decide whether you want aparapi's additions or not.<br />
<br />
Version 2.8 does not provide Profiler functionality, it has been moved to CodeXL.<br />
<br />
You can find more information about AMD APP SDK [http://developer.amd.com/tools/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/ here].<br />
<br />
==== amdapp-codexl ====<br />
CodeXL is an OpenCL and OpenGL Debugger and Profiler, with a static OpenCL kernel analyzer. It's a GUI application written atop of the well known [https://aur.archlinux.org/packages/gdebugger gDEBugger] and is available only for x86_64 systems.<br />
<br />
You can find more informations about CodeXL [http://developer.amd.com/tools/heterogeneous-computing/codexl/ here].<br />
<br />
== Features ==<br />
<br />
=== Tear Free Rendering ===<br />
<br />
Presented in '''Catalyst 11.1''', the ''Tear Free Desktop'' feature reduces tearing in 2D, 3D and video applications. This likely adds triple-buffering and v-sync. Do note that it requires additional GPU processing.<br />
<br />
To enable 'Tear Free Desktop' run {{ic|amdcccle}} and go to: {{ic|Display Options}} → {{ic|Tear Free}}.<br />
<br />
Or as root run:<br />
<br />
# aticonfig --set-pcs-u32=DDX,EnableTearFreeDesktop,1<br />
<br />
To disable, again use {{ic|amdcccle}} or run as root:<br />
<br />
# aticonfig --del-pcs-key=DDX,EnableTearFreeDesktop<br />
<br />
=== Video acceleration ===<br />
<br />
'''[[wikipedia:Video_Acceleration_API|Video Acceleration API]] (VA API)''' is an open source software library (libVA) and API specification which provides GPU acceleration for video processing on Linux/UNIX based operating systems. The process works by enabling hardware accelerated video decode at various entry-points (VLD, IDCT, Motion Compensation, deblocking) for common encoding standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/WMV3).<br />
<br />
VA-API gained a proprietary backend (in November 2009) called {{AUR|xvba-video}}, that allows VA-API programmed applications to take advantage of AMD Radeons UVD2 chipsets via the [[wikipedia:XvBA|XvBA (X-Video Bitstream Acceleration API designed by AMD)]] library.<br />
<br />
XvBA support and xvba-video is still under development, however it is '''working very well in most cases'''. Build the {{AUR|xvba-video}} package from AUR or soon, install it from [community] and install {{Pkg|mplayer-vaapi}} and {{Pkg|libva}}. Then just set your video player to use vaapi:gl as video output:<br />
<br />
$ mplayer -vo vaapi:gl movie.avi<br />
<br />
These options can be added to your mplayer configuration file, see [[MPlayer]].<br />
<br />
For '''smplayer''':<br />
<br />
Options → Preferences → General → Video (tab) → Output driver: User Defined : vaapi:gl<br />
Options → Preferences → General → Video (tab) → Double buffering '''on'''<br />
Options → Preferences → General → General → Screenshots → Turn screenshots '''off'''<br />
Options → Preferences → Performance → Threads for decoding: '''1''' (to turn off -lavdopts parameter)<br />
<br />
{{Note|If Tear Free Desktop is enabled it's better to use:<br />
Options -> Preferences -> General -> Video (tab) -> Output driver: vaapi<br />
If Video Output '''vaapi:gl''' isn't working - please check:<br />
'''vaapi''', '''vaapi:gl2''' or simply '''xv(0 - AMD Radeon [[wikipedia:Avivo|AVIVO Video]])'''.<br />
}}<br />
<br />
For '''VLC''':<br />
<br />
Tools → Preferences → Input & Codecs → Use GPU accelerated decoding<br />
<br />
It might help to enable v-sync in '''amdcccle''':<br />
<br />
3D → More Settings → Wait for vertical refresh = Always On<br />
<br />
{{Note|If you are using '''Compiz/KWin''', the only way to '''avoid video flickering''' is to watch videos in '''full-screen''' and only when '''Unredirect Fullscreen is off'''.<br />
<br />
In '''compiz''' you need to set '''Redirected Direct Rendering''' in General Options of ccsm. If it is still flickering, try to disable this option in CCSM. It's off by default in '''KWin''', but if you see flickering try to turn "Suspend desktop effects for fullscreen windows" on or off in System Settings → Desktop Effects → Advanced.}}<br />
<br />
=== GPU/Mem frequency, Temperature, Fan speed, Overclocking utilities ===<br />
<br />
You can get the GPU/Mem clocks with: {{ic|$ aticonfig --od-getclocks}}.<br />
<br />
You can get the fan speed with: {{ic|$ aticonfig --pplib-cmd "get fanspeed 0"}}<br />
<br />
You can get the temperature with: {{ic|$ aticonfig --odgt}}<br />
<br />
To set the fanspeed with: {{ic|$ aticonfig --pplib-cmd "set fanspeed 0 50"}} Query Index: 50, Speed in percent<br />
<br />
To overclock and/or underclock it's easier to use a GUI, like '''ATi Overclocking Utility''', which is very simple and requires qt to work. It might be out of date/old, but you can get it [http://kde-apps.org/content/show.php/ATI+Overclock?content=47796 here].<br />
<br />
Another, more complex utility to perform such operations is '''AMDOverdriveCtrl'''. Its homepage is [http://sourceforge.net/projects/amdovdrvctrl here] and you can build an Arch package from [https://aur.archlinux.org/packages.php?ID=45298 AUR] or from Vi0L0's unofficial repositories.<br />
<br />
=== Double Screen (Dual Head / Dual Screen / Xinerama) ===<br />
<br />
==== Introduction ====<br />
<br />
{{Warning| you should know that there isn't one specific solution because each setup differs and needs its own configuration. That's why you will have to adapt the steps below to your own needs. It is possible that you have to try more than once. '''Therefore, you should save your working {{ic|/etc/X11/xorg.conf}} before you start modifying and you must be able to recover from a command-line environment.'''}}<br />
<br />
* In this chapter, we will describe the installation of two different-sized screens on only one graphics card with two different output ports (DVI + HDMI) using a "BIG Desktop" configuration.<br />
<br />
* The Xinerama solution has some inconveniences, especially because it is not compatible with XrandR. For that very reason, you should not use this solution, because XrandR is a must for our later configuration.<br />
<br />
* The Dual Head solution would allow you to have 2 different sessions (one for each screen). It could be what you want, but you will not be able to move windows from one screen to another. If you have only one screen, you will have to define the mouse inside your Xorg session for each of the two sessions inside the Server Layout section.<br />
<br />
[http://support.amd.com/us/kbarticles/Pages/1105-HowCanIConfigureMultip.aspx ATI Documentation]<br />
<br />
==== ATI Catalyst Control Center ====<br />
<br />
The GUI tool shipped by ATI is very useful and we will try to use it as much as we can. To launch it, open a terminal and use the following command:<br />
<br />
$ {kdesu/gksu} amdcccle<br />
<br />
{{Warning|Do '''not''' use sudo directly with a GUI. Sudo gives you admin rights with user account information. Instead, use ''gksu'' (GNOME) or ''kdesu'' (KDE).}}<br />
<br />
==== Installation ====<br />
<br />
Before we start, make sure that your hardware is plugged in correctly, that power is on and that you know your hardware characteristics (screen dimensions, sizes, refreshment rates, etc.) Normally, both screens are recognized during boot time but not necessarily identified properly, especially if you are not using any Xorg base configuration file ({{ic|/etc/X11/xorg.conf}}) but relying on the hot-plugging feature.<br />
<br />
The first step is to make sure that you screens will be recognized by your DE and by X. For this, you need to generate a basic Xorg configuration file for your two screens:<br />
<br />
# aticonfig --initial --desktop-setup=horizontal --overlay-on=1<br />
<br />
or<br />
<br />
# aticonfig --initial=dual-head --screen-layout=left<br />
<br />
{{Note|{{ic|overlay}} is important because it allows you to have 1 pixel (or more) shared between the 2 screens.}}<br />
{{Tip|For the other possible and available options, do not hesitate to type {{ic|aticonfig --help}} inside a terminal to display all available command lines.}}<br />
<br />
Now you should have a basic Xorg configuration file that you can edit to add your screen resolutions. It is important to use the precise resolution, especially if you have screens of different sizes. These resolutions have to be added in the "Screen" section:<br />
<br />
SubSection "Display"<br />
Depth 24<br />
Modes "X-resolution screen 1xY-resolution screen 1" "Xresolution screen 2xY-resolution screen 2"<br />
EndSubSection<br />
<br />
From now on, instead of editing the {{ic|xorg.conf}} file manually, let us use the ATI GUI tool. Restart X to be sure that your two screens are properly supported and that the resolutions are properly recognized (Screens must be independent, not mirrored).<br />
<br />
==== Configuration ====<br />
<br />
Now you will only have to launch the ATI control center with root privileges, go to the display menu and choose how you would like to set your configuration (small arrow of the drop down menu). A last restart of X and you should be done!<br />
<br />
Before you restart X, do not hesitate to verify your new {{ic|xorg.conf}} file. At this stage, inside the "Display" sub-section of the "Screen" section, you should see a "Virtual" command line, of which the resolution should be the sum of both screens. The "Server Layout" section says all the rest.<br />
<br />
== Uninstallation ==<br />
<br />
If for any reason this driver is not working for you or if you somply want to try out the open source driver, remove the {{ic|catalyst}} and {{ic|catalyst-utils}} packages. Also you should remove {{Aur|catalyst-generator}}, {{Aur|catalyst-hook}} and {{Aur|lib32-catalyst-utils}} packages if they have been installed on your system.<br />
<br />
{{Warning|You may need to use {{ic|pacman -Rdd}} to remove {{aur|catalyst-utils}} (and/or {{aur|lib32-catalyst-utils}}) because that package contains ''gl'' related files and many of your installed packages depend on them. These dependencies will be satisfied again when you install {{Pkg|xf86-video-ati}}.}}<br />
<br />
{{Warning|You may need to remove {{ic|/etc/profile.d/ati-flgrx.sh}} and {{ic|/etc/profile.d/lib32-catalyst}} (if it exists on your system), otherwise {{ic|r600_dri.so}} will fail to load and you would not have 3D support.}}<br />
<br />
{{Note|You should remove unofficial repositories from your {{ic|/etc/pacman.conf}} and run {{ic|pacman -Syu}}, because those repositories include out-dated Xorg packages to allow use of {{ic|catalyst}} and the {{Pkg|xf86-video-ati}} package needs up-to-date Xorg packages from the [[Official repositories]].}}<br />
<br />
Also follow these steps:<br />
<br />
* If you have the {{ic|/etc/modprobe.d/blacklist-radeon.conf}} file remove it or comment the line {{ic|blacklist radeon}} in that file.<br />
* If you have a file in {{ic|/etc/modules-load.d}} to load the {{ic|fglrx}} module on boot, remove it or comment the line containing {{ic|fglrx}}.<br />
* Make sure to remove or backup {{ic|/etc/X11/xorg.conf}}.<br />
* If you have installed the {{Aur|catalyst-hook}} package, make sure to disable the systemd service.<br />
* If you have installed the {{Aur|catalyst-generator}} package, make sure to remove "fglrx" from the "MODULES" array of {{ic|/etc/rc.conf}} in case if post-removal script of the package don't work.<br />
* If you used the "nomodeset" option in your [[Boot Loader#Configuration files|configuration file]] in kernel parameters line and plan to use [[#Kernel mode-setting (KMS)|KMS]], remove it.<br />
* '''Reboot''' before installing another driver.<br />
<br />
== Troubleshooting ==<br />
<br />
If you can still boot to command-line, then the problem probably lies in {{ic|/etc/X11/xorg.conf}}<br />
<br />
You can parse the whole {{ic|/var/log/Xorg.0.log}} or, for clues:<br />
<br />
$ grep '(EE)' /var/log/Xorg.0.log<br />
$ grep '(WW)' /var/log/Xorg.0.log<br />
<br />
If you are still confused about what is going on, search the forums first. Then post a message in the [https://bbs.archlinux.org/viewtopic.php?pid=1166052#p1166052/ thread specific to ATI/AMD]. Provide the information from {{ic|xorg.conf}} and both commands mentioned above.<br />
<br />
=== 3D Wine applications freeze ===<br />
If you use a 3D Wine application and it hangs, you have to disable TLS. To do this, either use {{ic|aticonfig}} or edit {{ic|/etc/X11/xorg.conf}}. To use {{ic|aticonfig}}:<br />
<br />
# aticonfig --tls=off<br />
<br />
Or, to edit {{ic|/etc/X11/xorg.conf}}; first open the file in an editor as root and then add {{ic|Option "UseFastTLS" "off"}} to the ''Device'' section of this file. <br />
<br />
After applying either of the solutions, restart X for it to take effect.<br />
<br />
=== Problems with video colours ===<br />
<br />
You may still use {{ic|vaapi:gl}} to avoid video flickering, but without video acceleration:<br />
<br />
* Run '''mplayer''' without {{ic|-vo vaapi}} switch.<br />
<br />
* Run '''smplayer''' remove {{ic|-vo vaapi}} from Options → Preferences → Advanced → Options for MPlayer → Options: -vo vaapi<br />
<br />
Plus for '''smplayer''' you may now safely turn screenshots on.<br />
<br />
=== KWin and composite ===<br />
<br />
You may use XRender if the rendering with OpenGL is slow. However, XRender might also be slower than OpenGL depending on your card.<br />
XRender also solves artefact issues in some cases, for instance when resizing Konsole.<br />
<br />
=== Black screen with complete lockups and/or hangs after reboot or startx ===<br />
<br />
Ensure you have added the '''nomodeset''' option to the kernel options line in your bootloader (see [[#Disable kernel mode setting]]).<br />
<br />
If you are using the legacy driver (catalyst-hd234k) and get a black screen, try downgrading xorg-server to 1.11 by using the [[#xorg111]] repository.<br />
<br />
==== Faulty ACPI hardware calls ====<br />
It is possible that fglrx doesn't cooperate well with the system's ACPI hardware calls, so it auto-disables itself and there is no screen output.<br />
<br />
If so, try to run this:<br />
<br />
$ aticonfig --acpi-services=off<br />
<br />
=== KDM disappears after logout ===<br />
<br />
If you are running Catalyst proprietary driver and you get a console (tty1) instead of the expected KDM greeting when you log out, you must instruct KDM to restart the X server after each logout:<br />
<br />
$ sudo nano /usr/share/config/kdm/kdmrc<br />
<br />
Uncomment the following line under the section titled {{ic|[X-:*-Core]}}:<br />
<br />
TerminateServer=True<br />
<br />
KDM should now appear when you log out of KDE.<br />
<br />
=== Direct Rendering does not work ===<br />
<br />
This problem may occur when using the proprietary '''Catalyst''' driver.<br />
<br />
{{Warning|This error would also appear if you have not '''rebooted''' your system after the installation or upgrade of catalyst. The system needs to load the fglrx.ko module in order to make the driver work.}}<br />
<br />
If you have problem with direct rendering, run:<br />
<br />
$ LIBGL_DEBUG=verbose glxinfo > /dev/null<br />
<br />
at the command prompt. At the very start of the output, it'll usually give you a nice error message saying why you do not have direct rendering.<br />
<br />
Common errors and their solutions, are:<br />
<br />
libGL error: XF86DRIQueryDirectRenderingCapable returned false<br />
<br />
* Ensure that you are loading the correct agp modules for your AGP chipset before you load the fglrx kernel module. To determine which agp modules you'll need, run {{ic|hwdetect --show-agp}}. Then open your {{ic|fglrx.conf}} file in {{ic|/etc/modules-load.d}} and add the agp module on a line '''before''' the fglrx line.<br />
<br />
libGL error: failed to open DRM: Operation not permitted<br />
libGL error: reverting to (slow) indirect rendering<br />
<br />
libGL: OpenDriver: trying /usr/lib/xorg/modules/dri//fglrx_dri.so<br />
libGL error: dlopen /usr/lib/xorg/modules/dri//fglrx_dri.so failed<br />
(/usr/lib/xorg/modules/dri//fglrx_dri.so: cannot open shared object file: No such file or directory)<br />
libGL error: unable to find driver: fglrx_dri.so<br />
<br />
* Something has not been installed correctly. If the paths in the error message are {{ic|/usr/X11R6/lib/modules/dri/fglrx_dri.so}}, then ensure you've logged completely out of your system, then back in. If you're using a graphical login manager (gdm, kdm, xdm), ensure that {{ic|/etc/profile}} is sourced every time you log in. This is usually accomplished by adding {{ic|source /etc/profile}} into {{ic|~/.xsession}} or {{ic|~/.xinitrc}}, but this may vary between login managers.<br />
<br />
* If the paths above in your error message ''are'' {{ic|/usr/lib/xorg/modules/dri/fglrx_dri.so}}, then something has not been correctly installed. Try reinstalling the {{ic|catalyst}} package.<br />
<br />
Errors such as:<br />
<br />
fglrx: libGL version undetermined - OpenGL module is using glapi fallback<br />
<br />
could be caused by having multiple versions of {{ic|libGL.so}} on your system. Run:<br />
<br />
$ sudo updatedb<br />
$ locate libGL.so<br />
<br />
This should return the following output:<br />
<br />
$ locate libGL.so<br />
/usr/lib/libGL.so<br />
/usr/lib/libGL.so.1<br />
/usr/lib/libGL.so.1.2<br />
<br />
These are the only three libGL.so files you should have on your system. If you have any more (e.g. {{ic|/usr/X11R6/lib/libGL.so.1.2}}), then remove them. This should fix your problem.<br />
<br />
You might not get any error to indicate that this is a problem. If you are using X11R7, make sure you do '''not''' have these files on your system:<br />
<br />
/usr/X11R6/lib/libGL.so.1.2<br />
/usr/X11R6/lib/libGL.so.1<br />
<br />
=== Hibernate/Sleep Issues ===<br />
<br />
==== Video fails to resume from suspend2ram ====<br />
<br />
ATI's proprietary Catalyst driver cannot resume from suspend if the framebuffer is enabled. To disable the framebuffer, add '''vga=0''' to your kernel options in for example, Grub Legacy's {{ic|/boot/grub/menu.lst}}:<br />
<br />
kernel /vmlinuz-linux root=/dev/sda3 resume=/dev/sda2 ro quiet '''vga=0'''<br />
<br />
To see where you need to add this with other bootloaders, see [[#Disable kernel mode setting]].<br />
<br />
=== System Freezes/Hard locks ===<br />
<br />
* The {{ic|radeonfb}} framebuffer drivers have been known in the past to cause problems of this nature. If your kernel has radeonfb support compiled in, you may want to try a different kernel and see if this helps.<br />
<br />
* If you experience system freezes when exiting your DE (shut down, suspend, switching to tty etc.) you probably forgot to deactivate KMS. (See [[#Disable kernel mode setting]])<br />
<br />
=== Hardware Conflicts ===<br />
<br />
Radeon cards used in conjunction with some versions of the nForce3 chipset (e.g. nForce 3 250Gb) won't have 3D acceleration. Currently the cause of this issue is unknown, but some sources indicate that it may be possible to get acceleration with this combination of hardware by booting Windows with the drivers from nVIDIA and then rebooting the system. This can be verified by issuing in a root console the following command:<br />
<br />
$ dmesg | grep agp<br />
<br />
If you get something similar to this (using an nForce3-based system):<br />
<br />
agpgart: Detected AGP bridge 0<br />
agpgart: Setting up Nforce3 AGP.<br />
agpgart: aperture base > 4G<br />
<br />
and also if issuing this command...<br />
<br />
$ tail -n 100 /var/log/Xorg.0.log | grep agp<br />
<br />
...gets something similar to:<br />
<br />
(EE) fglrx(0): [agp] unable to acquire AGP, error "xf86_ENODEV"<br />
<br />
Then you have this bug.<br />
<br />
Some sources indicate that in some situations, downgrading the motherboard BIOS may help, but this cannot be verified in all cases. Also, '''a bad BIOS downgrade can render your hardware useless, so beware.'''<br />
<br />
See [http://bugzilla.kernel.org/show_bug.cgi?id=6350/ this bugreport] for more information and a potential fix.<br />
<br />
=== Temporary hangs when playing video ===<br />
<br />
This problem may occur when using the proprietary Catalyst.<br />
<br />
If you experience temporary hangs lasting from a few seconds to several minutes occuring randomly during playback with mplayer, check /var/log/messages.log for output like:<br />
<br />
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160<br />
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160<br />
Nov 28 18:31:56 pandemonium [<f8bc628c>] ? ip_firegl_ioctl+0x1c/0x30 [fglrx]<br />
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160<br />
Nov 28 18:31:56 pandemonium [<c0197038>] ? vfs_ioctl+0x78/0x90<br />
Nov 28 18:31:56 pandemonium [<c01970b7>] ? do_vfs_ioctl+0x67/0x2f0<br />
Nov 28 18:31:56 pandemonium [<c01973a6>] ? sys_ioctl+0x66/0x70<br />
Nov 28 18:31:56 pandemonium [<c0103ef3>] ? sysenter_do_call+0x12/0x33<br />
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160<br />
Nov 28 18:31:56 pandemonium =======================<br />
<br />
Adding the nopat kernel option to your kernel options in your bootloader and rebooting fixed the problem at least for me. To see how to do this for different bootloaders, see [[#Disable kernel mode setting]].<br />
<br />
=== "aticonfig: No supported adapters detected" ===<br />
<br />
If when running<br />
<br />
# aticonfig --initial<br />
<br />
you get:<br />
<br />
aticonfig: No supported adaptaters detected<br />
<br />
But you do have an AMD GPU (or APU), it may still be possible to get Catalyst working by manually setting the device in your your {{ic|etc/X11/xorg.conf}} file or by copying an older working /etc/ati/control file (preferred - this also fixes the watermark issue).<br />
<br />
To get an older control file, download a previous version of fglrx from AMD and run it with "--extract driver" parameter. You'll find the control file in driver/common/etc/ati/control. Copy the extracted file over the system file and restart Xorg. You can try different versions of the file.<br />
<br />
To set your model in xorg.conf,edit the device section of {{ic|/etc/X11/xorg.conf}} to:<br />
<br />
Section "Device"<br />
Identifier "ATI radeon '''****'''"<br />
Driver "fglrx"<br />
EndSection<br />
<br />
Where ''****'' should be replaced with your device's marketing number (e.g. 6870 for the HD 6870 and 6310 for the E-350 APU).<br />
<br />
Xorg will start and it is possible to use {{ic|amdcccle}} instead of {{ic|aticonfig}}. There will be an "AMD Unsupported hardware" watermark.<br />
<br />
You can remove this watermark using the following script:<br />
<br />
#!/bin/sh<br />
DRIVER=/usr/lib/xorg/modules/drivers/fglrx_drv.so<br />
for x in $(objdump -d $DRIVER|awk '/call/&&/EnableLogo/{print "\\x"$2"\\x"$3"\\x"$4"\\x"$5"\\x"$6}'); do<br />
sed -i "s/$x/\x90\x90\x90\x90\x90/g" $DRIVER<br />
done<br />
<br />
and rebooting.<br />
<br />
=== WebGL support in Chromium ===<br />
<br />
Google has blacklisted Linux's Catalyst driver from supporting webGL in their Chromium/Chrome browsers.<br />
<br />
You can turn webGL on by editing {{ic|/usr/share/applications/chromium.desktop}} file and adding {{ic|--ignore-gpu-blacklist}} flag into the '''Exec''' line so it looks like this:<br />
<br />
Exec=chromium %U --ignore-gpu-blacklist<br />
<br />
You can also run chromium from console with the same {{ic|--ignore-gpu-blacklist}} flag:<br />
<br />
$ chromium --ignore-gpu-blacklist<br />
<br />
{{Warning|Catalyst does not support the GL_ARB_robustness extension, so it is possible that a malicious site could use WebGL to perform a DoS attack on your graphic card. For more info, read [http://www.h-online.com/security/news/item/WebGL-as-a-security-problem-1240567.html/ this].}}<br />
<br />
=== Laggs/freezes when watching flash videos via Adobe's flashplugin ===<br />
<br />
Edit {{ic|/etc/adobe/mms.cfg}} and make it look like this:<br />
<br />
#EnableLinuxHWVideoDecode=1<br />
OverrideGPUValidation=true<br />
<br />
If you are using KDE make sure that "Suspend desktop effects for fullscreen windows" is unchecked under System Settings->Workspace Appearance and Behaviour->Desktop Effects->Advanced.<br />
<br />
=== Laggs/slow windows movement in GNOME3 ===<br />
<br />
You can try this solution out, it's working for many people.<br />
<br />
Add this line into {{ic|~/.profile}} or into {{ic|/etc/profile}}:<br />
<br />
export CLUTTER_VBLANK=none<br />
<br />
Restart X server or reboot your system.<br />
<br />
=== Not using fullscreen resolution at 1920x1080 (underscanning) ===<br />
<br />
Using the amdcccle GUI you can select the display, go to adjustments, and set Underscan to 0% (aticonfig defaults to 15% underscan).<br />
<br />
Alternatively, you can use aticonfig to disable underscanning as well:<br />
<br />
aticonfig --set-pcs-val=MCIL,DigitalHDTVDefaultUnderscan,0<br />
<br />
For newer version (for example, 12.11), if Catalyst control center repeatedly fails to save the overscan setting, edit /etc/ati/amdpcsdb:<br />
<br />
TVEnableOverscan=V0<br />
<br />
Then logout and login.<br />
<br />
=== Dual Screen Setup: general problems with acceleration, OpenGL, compositing, performance ===<br />
Try to disable xinerama and xrandr12. Check out ie. this way:<br />
<br />
As root type those commands:<br />
aticonfig --initial<br />
aticonfig --set-pcs-str="DDX,EnableRandR12,FALSE"<br />
Then reboot your system. In /etc/X11/xorg.conf check that xinerama is disabled, if it's not disable it and reboot your system.<br />
<br />
Next run amdcccle and pick up amdcccle->display manager->multi-display->multidisplay desktop with display(s) 2.<br />
<br />
Reboot again and set up your display layout whatever you desire.<br />
<br />
=== Disabling VariBright Feature ===<br />
As root type command:<br />
aticonfig --set-pcs-u32=MCIL,PP_UserVariBrightEnable,0<br />
<br />
=== Hybrid/PowerXpress: turning off discrete GPU ===<br />
When you are using catalyst-total-pxp or catalyst-utils-pxp and you are switching to integrated GPU you may notice that discrete GPU is still working, consuming power and making your system's temperature higher. <br />
<br />
Sometimes ie. when your integrated GPU is intel's one you can use '''vgaswitcheroo''' to turn the discrete GPU off.<br />
Sometimes unfortunatelly, it's not working.<br />
<br />
Then you may check out [https://aur.archlinux.org/packages/?O=0&K=acpi_call acpi_call]. MrDeepPurple has prepared the script which he's using to perform 'turn off' task, he's calling script via systemd service while booting and resuming his system.<br />
Here's his script:<br />
#!/bin/sh<br />
libglx=$(/usr/lib/fglrx/switchlibglx query)<br />
modprobe acpi_call<br />
if [ "$libglx" = "intel" ]; then<br />
echo '\_SB.PCI0.PEG0.PEGP._OFF' > /proc/acpi/call<br />
fi</div>Mony