https://wiki.archlinux.org/api.php?action=feedcontributions&user=Lordheavy&feedformat=atomArchWiki - User contributions [en]2024-03-28T10:47:35ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=AMDGPU&diff=619659AMDGPU2020-06-13T09:25:25Z<p>Lordheavy: Undo revision 619658 by Lordheavy (talk)</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[de:AMDGPU]]<br />
[[ja:AMDGPU]]<br />
[[zh-hans:AMDGPU]]<br />
{{Related articles start}}<br />
{{Related|AMD Catalyst}}<br />
{{Related|ATI}}<br />
{{Related|Xorg}}<br />
{{Related|Vulkan}}<br />
{{Related articles end}}<br />
<br />
[[Wikipedia:AMDGPU|AMDGPU]] is the open source graphics driver for AMD Radeon graphics cards from the [[wikipedia:Graphics_Core_Next|Graphics Core Next]] family.<br />
<br />
== Selecting the right driver ==<br />
<br />
Depending on the card you have, find the right driver in [[Xorg#AMD]]. This page has instructions for '''AMDGPU''' and '''AMDGPU PRO'''. <br />
At the moment there is Xorg [[radeon]] driver support for [https://www.x.org/wiki/RadeonFeature/ Southern Islands (SI)] through Arctic Islands (AI) cards. AMD has no plans to support pre-GCN GPUs.<br />
Owners of unsupported GPUs may use the open source [[radeon]] or the [[AMD Catalyst]] driver .<br />
<br />
== Installation ==<br />
<br />
{{Note|If coming from the proprietary Catalyst driver, see [[AMD Catalyst#Uninstallation]] first.}}<br />
<br />
[[Install]] the {{Pkg|mesa}} package, which provides the DRI driver for 3D acceleration.<br />
<br />
* For 32-bit application support, also install the {{Pkg|lib32-mesa}} package from the [[multilib]] repostory.<br />
* For the DDX driver (which provides 2D acceleration in [[Xorg]]), install the {{Pkg|xf86-video-amdgpu}} package.<br />
* For [[Vulkan]] support, install the {{Pkg|vulkan-radeon}} package. Optionally install the {{Pkg|lib32-vulkan-radeon}} package for 32-bit application support.<br />
<br />
Support for [[#Video acceleration|accelerated video decoding]] is provided by {{Pkg|libva-mesa-driver}} and {{Pkg|lib32-libva-mesa-driver}} for VA-API and {{Pkg|mesa-vdpau}} and {{Pkg|lib32-mesa-vdpau}} packages for VDPAU.<br />
<br />
=== Experimental ===<br />
<br />
It may be worthwhile for some users to use the upstream experimental build of mesa, to enable features such as AMD Navi improvements that have not landed in the standard mesa packages.<br />
<br />
Install the {{AUR|mesa-git}} package, which provides the DRI driver for 3D acceleration.<br />
<br />
* For 32-bit application support, also install the {{AUR|lib32-mesa-git}} package from the ''mesa-git'' repository or the [[AUR]].<br />
* For the DDX driver (which provides 2D acceleration in [[Xorg]]), install the {{AUR|xf86-video-amdgpu-git}} package.<br />
* For [[Vulkan]] support using the ''mesa-git'' repository below, install the ''vulkan-radeon-git'' package. Optionally install the ''lib32-vulkan-radeon-git'' package for 32-bit application support. This should not be required if building {{AUR|mesa-git}} from the AUR.<br />
<br />
{{Note|It may be necessary to symlink LibLLVM for X to start. For example, {{ic|ln -s /usr/lib/libLLVM-10git.so /usr/lib/libLLVM-10svn.so}}}}<br />
<br />
{{Tip|Users who do not wish to go through the process of compiling the {{AUR|mesa-git}} package can use the [[Unofficial user repositories#mesa-git|mesa-git]] unofficial repository.}}<br />
<br />
=== Enable Southern Islands (SI) and Sea Islands (CIK) support ===<br />
<br />
The {{Pkg|linux}} package enables AMDGPU support for cards of the Southern Islands (SI) and Sea Islands (CIK). When building or compiling a [[kernel]], {{ic|1=CONFIG_DRM_AMDGPU_SI=Y}} and/or {{ic|1=CONFIG_DRM_AMDGPU_CIK=Y}} should be be set in the config.<br />
<br />
==== Specify the correct module order ====<br />
<br />
Even when AMDGPU support for SI/CIK has been enabled by the kernel, the [[radeon]] driver may be loaded before the {{ic|amdgpu}} driver.<br />
<br />
Make sure {{ic|amdgpu}} has been set as first module in the [[Mkinitcpio#MODULES]] array, e.g. {{ic|1=MODULES=(amdgpu radeon)}}.<br />
<br />
==== Set required module parameters ====<br />
<br />
The [[module parameters]] of both {{ic|amdgpu}} and {{ic|radeon}} modules are {{ic|1=cik_support=}} and {{ic|1=si_support=}}. <br />
<br />
They need to be set as kernel parameters or in a ''modprobe'' configuration file, and depend on the cards GCN version.<br />
<br />
{{Tip|[[dmesg]] may indicate the correct kernel parameter to use: {{ic|1=[..] amdgpu 0000:01:00.0: Use radeon.cik_support=0 amdgpu.cik_support=1 to override}}.}}<br />
<br />
===== Set module parameters in kernel command line =====<br />
<br />
Set one of the following [[kernel parameters]]:<br />
<br />
* Southern Islands (SI): {{ic|1=radeon.si_support=0 amdgpu.si_support=1}}<br />
* Sea Islands (CIK): {{ic|1=radeon.cik_support=0 amdgpu.cik_support=1}}<br />
<br />
===== Set module parameters in modprobe.d =====<br />
<br />
Create the configuration [[modprobe]] files in {{ic|/etc/modprobe.d/}}, see {{man|5|modprobe.d}} for syntax details.<br />
<br />
For Southern Islands (SI) use option {{ic|1=si_support=1}}, for Sea Islands (CIK) use option {{ic|1=cik_support=1}}, e.g.:<br />
<br />
{{hc|/etc/modprobe.d/amdgpu.conf|2=<br />
options amdgpu si_support=1<br />
options amdgpu cik_support=0<br />
}}<br />
<br />
{{hc|/etc/modprobe.d/radeon.conf|2=<br />
options radeon si_support=0<br />
options radeon cik_support=0<br />
}}<br />
<br />
Make sure {{ic|modconf}} is in the the {{ic|HOOKS}} array in {{ic|/etc/mkinitcpio.conf}} and [[regenerate the initramfs]].<br />
<br />
=== AMDGPU PRO ===<br />
<br />
AMD provides a proprietary, binary userland driver called ''AMDGPU PRO'', which works on top of the open-source AMDGPU kernel driver.<br />
<br />
From [http://www.phoronix.com/vr.php?view=27266 Radeon Software 18.50 vs Mesa 19 benchmarks] article: When it comes to OpenGL games, the RadeonSI Gallium3D driver simply dominates the proprietary AMD OpenGL driver.<br />
<br />
Install the {{AUR|amdgpu-pro-libgl}}. Optionally install the {{AUR|lib32-amdgpu-pro-libgl}} package for 32-bit application support.<br />
<br />
{{Note|Users of graphic cards other than Radeon Pro are [https://www.amd.com/en/support/kb/release-notes/amdgpu-installation advised to use the amdgpu graphics stack].}}<br />
<br />
=== ACO compiler ===<br />
<br />
The [https://steamcommunity.com/games/221410/announcements/detail/1602634609636894200 ACO compiler] is an open source shader compiler created and developed by [[wikipedia:Valve_Corporation|Valve Corporation]] to directly compete with the [http://llvm.org/ LLVM compiler], the [https://github.com/GPUOpen-Drivers/AMDVLK AMDVLK drivers], as well as [[wikipedia:Windows_10|Windows 10]]. It offers lesser compilation time and also performs better while gaming than LLVM and AMDVLK.<br />
<br />
Some benchmarks can be seen in [https://itsfoss.com/linux-games-performance-boost-amd-gpu/ It's FOSS] and Phoronix [https://www.phoronix.com/scan.php?page=article&item=radv-aco-llvm&num=1 (1)] [https://www.phoronix.com/scan.php?page=article&item=radv-aco-gcn10&num=1 (2)] [https://www.phoronix.com/scan.php?page=article&item=mesa20radv-aco-amdvlk&num=1 (3)].<br />
<br />
{{Warning|ACO is a very early development and still is marked as '''testing''', you may experience issues.}}<br />
<br />
Since {{Pkg|mesa}} version 19.3, the ACO compiler is available in the official package, but disabled by default. It can be enabled by [[Environment variables#Defining variables|exporting]] {{ic|1=RADV_PERFTEST=aco}} before starting an application.<br />
<br />
== Loading ==<br />
<br />
The {{ic|amdgpu}} kernel module should load fine automatically on system boot.<br />
<br />
If it does not happen, then:<br />
<br />
* Make sure to [[#Enable Southern Islands (SI) and Sea Islands (CIK) support]] when needed.<br />
* Make sure you have the latest {{Pkg|linux-firmware}} package installed. This driver requires the latest firmware for each model to successfully boot.<br />
* Make sure you do '''not''' have {{ic|nomodeset}} or {{ic|1=vga=}} as a [[kernel parameter]], since {{ic|amdgpu}} requires [[KMS]].<br />
* Check that you have not disabled {{ic|amdgpu}} by using any [[Kernel_modules#Blacklisting|kernel module blacklisting]].<br />
<br />
=== Enable early KMS ===<br />
<br />
See [[Kernel mode setting#Early KMS start]].<br />
<br />
== Xorg configuration ==<br />
<br />
[[Xorg]] will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-amdgpu.conf}}, and add the following:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-amdgpu.conf|2=<br />
Section "Device"<br />
Identifier "AMD"<br />
Driver "amdgpu"<br />
EndSection<br />
}}<br />
<br />
Using this section, you can enable features and tweak the driver settings, see {{man|4|amdgpu}} first before setting driver options.<br />
<br />
=== Tear free rendering ===<br />
<br />
''TearFree'' controls tearing prevention using the hardware page flipping mechanism. If this option is set, the default value of the property is 'on' or 'off' accordingly. If this option is not set, the default value of the property is auto, which means that TearFree is on for rotated outputs, outputs with RandR transforms applied and for RandR 1.4 slave outputs, otherwise off:<br />
<br />
Option "TearFree" "true"<br />
<br />
You can also enable TearFree temporarily with [[xrandr]]: <br />
<br />
$ xrandr --output ''output'' --set TearFree on<br />
<br />
Where {{ic|''output''}} should look like {{ic|DisplayPort-0}} or {{ic|HDMI-A-0}} and can be acquired by running {{ic|xrandr -q}}.<br />
<br />
=== DRI level ===<br />
<br />
''DRI'' sets the maximum level of DRI to enable. Valid values are ''2'' for DRI2 or ''3'' for DRI3. The default is ''3'' for DRI3 if the [[Xorg]] version is >= 1.18.3, otherwise DRI2 is used:<br />
<br />
Option "DRI" "3"<br />
<br />
=== Variable refresh rate ===<br />
<br />
See [[Variable refresh rate]].<br />
<br />
=== 10-bit color ===<br />
<br />
Newer AMD cards support 10bpc color, but the default is 24-bit color and 30-bit color must be explicitly enabled. Enabling it can reduce visible banding/artifacts in gradients, if the applications support this too. To check if your monitor supports it search for "EDID" in your [[Xorg#General|Xorg log file]] (e.g. {{ic|/var/log/Xorg.0.log}} or {{ic|~/.local/share/xorg/Xorg.0.log}}):<br />
<br />
[ 336.695] (II) AMDGPU(0): EDID for output DisplayPort-0<br />
[ 336.695] (II) AMDGPU(0): EDID for output DisplayPort-1<br />
[ 336.695] (II) AMDGPU(0): Manufacturer: DEL Model: a0ec Serial#: 123456789<br />
[ 336.695] (II) AMDGPU(0): Year: 2018 Week: 23<br />
[ 336.695] (II) AMDGPU(0): EDID Version: 1.4<br />
[ 336.695] (II) AMDGPU(0): Digital Display Input<br />
'''[ 336.695] (II) AMDGPU(0): 10 bits per channel'''<br />
<br />
To check whether it is currently enabled search for "Depth"):<br />
<br />
[ 336.618] (**) AMDGPU(0): Depth 30, (--) framebuffer bpp 32<br />
[ 336.618] (II) AMDGPU(0): Pixel depth = 30 bits stored in 4 bytes (32 bpp pixmaps)<br />
<br />
With the default configuration it will instead say the depth is 24, with 24 bits stored in 4 bytes.<br />
<br />
To check whether 10-bit works, exit Xorg if you have it running and run {{ic|Xorg -retro}} which will display a black and white grid, then press {{ic|Ctrl-Alt-F1}} and {{ic|Ctrl-C}} to exit X, and run {{ic|Xorg -depth 30 -retro}}. If this works fine, then 10-bit is working.<br />
<br />
To launch in 10-bit via {{ic|startx}}, use {{ic|startx -- -depth 30}}. To permanently enable it, create or add to:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-amdgpu.conf|2=<br />
Section "Screen"<br />
Identifier "asdf"<br />
DefaultDepth 30<br />
EndSection<br />
}}<br />
<br />
Various software may have graphical artifacts or crash with 10-bpc color.<br />
<br />
== Features ==<br />
<br />
=== Video acceleration ===<br />
<br />
See [[Hardware video acceleration]].<br />
<br />
=== Monitoring ===<br />
<br />
Monitoring your GPU is often used to check the temperature and also the P-states of your GPU.<br />
<br />
==== CLI (default) ====<br />
<br />
To check your GPU's P-states, execute:<br />
$ cat /sys/class/drm/card0/device/pp_od_clk_voltage<br />
To monitor your GPU, execute:<br />
$ watch -n 0.5 cat /sys/kernel/debug/dri/0/amdgpu_pm_info<br />
<br />
With [https://github.com/clbr/radeontop radeontop] utility you can view your GPU utilization, both for the total activity percent and individual blocks. It is included in {{Pkg|radeontool}} package.<br />
<br />
==== GUI ====<br />
<br />
* {{App|WattmanGTK|A GTK GUI tool to monitor your GPU's temperatures P-states|https://github.com/BoukeHaarsma23/WattmanGTK|{{AUR|wattman-gtk-git}}}}.<br />
* {{App|TuxClocker|A Qt5 monitoring and overclocking tool.|https://github.com/Lurkki14/tuxclocker|{{AUR|tuxclocker}} {{AUR|tuxclocker-git}}}}<br />
<br />
=== Overclocking ===<br />
<br />
Since Linux 4.17, it is possible to adjust clocks and voltages of the graphics card via {{Ic|1=/sys/class/drm/card0/device/pp_od_clk_voltage}}.<br />
<br />
==== Boot parameter ====<br />
<br />
It is required to unlock access to adjust clocks and voltages in sysfs by appending the [[Kernel parameter]] {{Ic|1=amdgpu.ppfeaturemask=0xffffffff}}.<br />
<br />
==== Manual (default) ====<br />
<br />
{{Note|In sysfs, paths like {{Ic|1=/sys/class/drm/...}} are just symlinks and may change between reboots. Persistent locations can be found in {{Ic|1=/sys/devices/}}, e.g. {{Ic|1=/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/}}. Adjust the commands accordingly for a reliable result.}}<br />
<br />
To set the GPU clock for the maximum P-state 7 on e.g. a Polaris GPU to 1209MHz and 900mV voltage, run:<br />
# echo "s 7 1209 900" > /sys/class/drm/card0/device/pp_od_clk_voltage<br />
The same procedure can be applied to the VRAM, e.g. maximum P-state 2 on Polaris 5xx series cards:<br />
# echo "m 2 1850 850" > /sys/class/drm/card0/device/pp_od_clk_voltage<br />
{{Warning|1=Double check the entered values, as mistakes might instantly cause fatal hardware damage!}}<br />
To apply, run<br />
# echo "c" > /sys/class/drm/card0/device/pp_od_clk_voltage<br />
To check if it worked out, read out clocks and voltage under 3D load:<br />
# watch -n 0.5 cat /sys/kernel/debug/dri/0/amdgpu_pm_info<br />
You can reset to the default values using this:<br />
# echo "r" > /sys/class/drm/card0/device/pp_od_clk_voltage<br />
<br />
It is also possible to forbid the driver so switch to certain P-states, e.g. to workaround problems with deep powersaving P-states like flickering artifacts or stutter. To force the highest VRAM P-state on a Polaris RX 5xx card, while still allowing the GPU itself to run with lower clocks, run:<br />
# echo "manual" > /sys/class/drm/card0/device/power_dpm_force_performance_level<br />
# echo "2" > /sys/class/drm/card0/device/pp_dpm_mclk<br />
Allow only the three highest GPU P-states:<br />
# echo "5 6 7" > /sys/class/drm/card0/device/pp_dpm_sclk<br />
<br />
To set the allowed maximum power consumption of the GPU to e.g. 50 Watts, run<br />
# echo 50000000 > /sys/class/drm/card0/device/hwmon/hwmon0/power1_cap<br />
Until Linux kernel 4.20, it will only be possible to decrease the value, not increase.<br />
<br />
{{Note|The above procedure was tested with a Polaris RX 560 card. There may be different behavior or bugs with different GPUs.}}<br />
<br />
==== Assisted ====<br />
<br />
If you are not inclined to fully manually overclock your GPU, there are some overclocking tools that are offered by the community to assist you to overclock and monitor your AMD GPU.<br />
<br />
===== CLI tools =====<br />
<br />
* {{App|amdgpu-clocks|A script that can be used to monitor and set custom power states for AMD GPUs. It also offers a Systemd service to apply the settings automatically upon boot.|https://github.com/sibradzic/amdgpu-clocks|{{AUR|amdgpu-clocks-git}}}}<br />
<br />
===== GUI tools =====<br />
<br />
* {{App|TuxClocker|A Qt5 monitoring and overclocking tool.|https://github.com/Lurkki14/tuxclocker|{{AUR|tuxclocker}} {{AUR|tuxclocker-git}}}}<br />
* {{App|CoreCtrl|A GUI overclocking tool with a WattMan-like UI that supports per-application profiles.|https://gitlab.com/corectrl/corectrl|{{AUR|corectrl}} {{AUR|corectrl-git}}}}<br />
<br />
==== Startup on boot ====<br />
<br />
If you want your settings to apply automatically upon boot, consider looking at this [https://www.reddit.com/r/Amd/comments/agwroj/how_to_overclock_your_amd_gpu_on_linux/ Reddit thread] to configure and apply your settings on boot.<br />
<br />
=== Enable GPU display scaling ===<br />
<br />
{{Move|xrandr|Not specific to AMDGPU.|section=Moving "Enable GPU display scaling" to xrandr}}<br />
<br />
To avoid the usage of the scaler which is built in the display, and use the GPU own scaler instead, when not using the native resolution of the monitor, execute:<br />
$ xrandr --output ''output'' --set "scaling mode" ''scaling_mode''<br />
Possible values for {{ic|"scaling mode"}} are: {{ic|None}}, {{ic|Full}}, {{ic|Center}}, {{ic|Full aspect}}.<br />
<br />
* To show the available outputs and settings, execute:<br />
$ xrandr --prop<br />
<br />
* To set {{ic|1=scaling mode = Full aspect}} for just every available output, execute:<br />
$ for output in $(xrandr --prop | grep -E -o -i "^[A-Z\-]+-[0-9]+"); do xrandr --output "$output" --set "scaling mode" "Full aspect"; done<br />
<br />
== Troubleshooting ==<br />
<br />
=== Xorg or applications will not start ===<br />
<br />
* "(EE) AMDGPU(0): [DRI2] DRI2SwapBuffers: drawable has no back or front?" error after opening glxgears, can open Xorg server but OpenGL apps crash.<br />
* "(EE) AMDGPU(0): Given depth (32) is not supported by amdgpu driver" error, Xorg will not start.<br />
<br />
Setting the screen's depth under Xorg to 16 or 32 will cause problems/crash. To avoid that, you should use a standard screen depth of 24 by adding this to your "screen" section:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/10-screen.conf|<br />
Section "Screen"<br />
Identifier "Screen"<br />
DefaultDepth 24<br />
SubSection "Display"<br />
Depth 24<br />
EndSubSection<br />
EndSection<br />
}}<br />
<br />
=== Screen artifacts and frequency problem ===<br />
<br />
[[ATI#Dynamic power management|Dynamic power management]] may cause screen artifacts to appear when displaying to monitors at higher frequencies (anything above 60Hz) due to issues in the way GPU clock speeds are managed[https://bugs.freedesktop.org/show_bug.cgi?id=96868][https://bugs.freedesktop.org/show_bug.cgi?id=102646].<br />
<br />
A workaround [https://bugs.freedesktop.org/show_bug.cgi?id=96868#c13] is saving {{ic|high}} or {{ic|low}} in {{ic|/sys/class/drm/card0/device/power_dpm_force_performance_level}}.<br />
<br />
There is also a GUI solution [https://github.com/marazmista/radeon-profile] where you can manage the "power_dpm" with {{aur|radeon-profile-git}} and {{aur|radeon-profile-daemon-git}}.<br />
<br />
=== R9 390 series poor performance and/or instability ===<br />
<br />
If you experience issues [https://bugs.freedesktop.org/show_bug.cgi?id=91880] with a AMD R9 390 series graphics card, set {{ic|1=radeon.cik_support=0 radeon.si_support=0 amdgpu.cik_support=1 amdgpu.si_support=1 amdgpu.dpm=1 amdgpu.dc=1}} as [[kernel parameters]] to force the use of amdgpu driver instead of radeon.<br />
<br />
If it still does not work, try disabling DPM, by setting the [[kernel parameters]] to: {{ic|1=radeon.cik_support=0 radeon.si_support=0 amdgpu.cik_support=1 amdgpu.si_support=1}}<br />
<br />
=== Freezes with "[drm] IP block:gmc_v8_0 is hung!" kernel error ===<br />
<br />
If you experience freezes and kernel crashes during a GPU intensive task with the kernel error " [drm] IP block:gmc_v8_0 is hung!" [https://bugs.freedesktop.org/show_bug.cgi?id=102322], a workaround is to set {{ic|1=amdgpu.vm_update_mode=3}} as [[kernel parameters]] to force the GPUVM page tables update to be done using the CPU. Downsides are listed here [https://bugs.freedesktop.org/show_bug.cgi?id=102322#c15].<br />
<br />
=== Cursor corruption ===<br />
<br />
If you experience issues with the mouse cursor sometimes not rendering properly, set {{ic|Option "SWCursor" "True"}} in the {{ic|"Device"}} section of the {{ic|/etc/X11/xorg.conf.d/20-amdgpu.conf}} configuration file.<br />
<br />
If you are using {{ic|xrandr}} for scaling and the cursor is flickering or disappearing, you may be able to fix it by setting the {{ic|TearFree}} property: {{ic|xrandr --output HDMI-A-0 --set TearFree on}}.<br />
<br />
=== System freeze or crash when gaming on Vega cards ===<br />
<br />
[[ATI#Dynamic power management|Dynamic power management]] may cause a complete system freeze whilst gaming due to issues in the way GPU clock speeds are managed. [https://bugs.freedesktop.org/show_bug.cgi?id=109955] A workaround is to disable dynamic power management, see [[ATI#Dynamic power management]] for details.<br />
<br />
=== Navi power consumption ===<br />
<br />
Some users have reported higher than usual idle power consumption when using kernel 5.3. There is a [https://cgit.freedesktop.org/~agd5f/linux/tag/?h=drm-next-5.4-2019-08-30 patch set] available for kernel 5.4 that appears to fix the issues.<br />
<br />
=== WebRenderer (Firefox) corruption ===<br />
<br />
Artifacts and other anomalies may present themselves (e.g. inability to select extension options) when [[Firefox/Tweaks#Enable_WebRender|WebRenderer]] is force enabled by the user. Workaround is to fall back to OpenGL compositing.</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=AMDGPU&diff=619658AMDGPU2020-06-13T09:24:07Z<p>Lordheavy: Add CoreCtrl tool</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[de:AMDGPU]]<br />
[[ja:AMDGPU]]<br />
[[zh-hans:AMDGPU]]<br />
{{Related articles start}}<br />
{{Related|AMD Catalyst}}<br />
{{Related|ATI}}<br />
{{Related|Xorg}}<br />
{{Related|Vulkan}}<br />
{{Related articles end}}<br />
<br />
[[Wikipedia:AMDGPU|AMDGPU]] is the open source graphics driver for AMD Radeon graphics cards from the [[wikipedia:Graphics_Core_Next|Graphics Core Next]] family.<br />
<br />
== Selecting the right driver ==<br />
<br />
Depending on the card you have, find the right driver in [[Xorg#AMD]]. This page has instructions for '''AMDGPU''' and '''AMDGPU PRO'''. <br />
At the moment there is Xorg [[radeon]] driver support for [https://www.x.org/wiki/RadeonFeature/ Southern Islands (SI)] through Arctic Islands (AI) cards. AMD has no plans to support pre-GCN GPUs.<br />
Owners of unsupported GPUs may use the open source [[radeon]] or the [[AMD Catalyst]] driver .<br />
<br />
== Installation ==<br />
<br />
{{Note|If coming from the proprietary Catalyst driver, see [[AMD Catalyst#Uninstallation]] first.}}<br />
<br />
[[Install]] the {{Pkg|mesa}} package, which provides the DRI driver for 3D acceleration.<br />
<br />
* For 32-bit application support, also install the {{Pkg|lib32-mesa}} package from the [[multilib]] repostory.<br />
* For the DDX driver (which provides 2D acceleration in [[Xorg]]), install the {{Pkg|xf86-video-amdgpu}} package.<br />
* For [[Vulkan]] support, install the {{Pkg|vulkan-radeon}} package. Optionally install the {{Pkg|lib32-vulkan-radeon}} package for 32-bit application support.<br />
<br />
Support for [[#Video acceleration|accelerated video decoding]] is provided by {{Pkg|libva-mesa-driver}} and {{Pkg|lib32-libva-mesa-driver}} for VA-API and {{Pkg|mesa-vdpau}} and {{Pkg|lib32-mesa-vdpau}} packages for VDPAU.<br />
<br />
=== Experimental ===<br />
<br />
It may be worthwhile for some users to use the upstream experimental build of mesa, to enable features such as AMD Navi improvements that have not landed in the standard mesa packages.<br />
<br />
Install the {{AUR|mesa-git}} package, which provides the DRI driver for 3D acceleration.<br />
<br />
* For 32-bit application support, also install the {{AUR|lib32-mesa-git}} package from the ''mesa-git'' repository or the [[AUR]].<br />
* For the DDX driver (which provides 2D acceleration in [[Xorg]]), install the {{AUR|xf86-video-amdgpu-git}} package.<br />
* For [[Vulkan]] support using the ''mesa-git'' repository below, install the ''vulkan-radeon-git'' package. Optionally install the ''lib32-vulkan-radeon-git'' package for 32-bit application support. This should not be required if building {{AUR|mesa-git}} from the AUR.<br />
<br />
{{Note|It may be necessary to symlink LibLLVM for X to start. For example, {{ic|ln -s /usr/lib/libLLVM-10git.so /usr/lib/libLLVM-10svn.so}}}}<br />
<br />
{{Tip|Users who do not wish to go through the process of compiling the {{AUR|mesa-git}} package can use the [[Unofficial user repositories#mesa-git|mesa-git]] unofficial repository.}}<br />
<br />
=== Enable Southern Islands (SI) and Sea Islands (CIK) support ===<br />
<br />
The {{Pkg|linux}} package enables AMDGPU support for cards of the Southern Islands (SI) and Sea Islands (CIK). When building or compiling a [[kernel]], {{ic|1=CONFIG_DRM_AMDGPU_SI=Y}} and/or {{ic|1=CONFIG_DRM_AMDGPU_CIK=Y}} should be be set in the config.<br />
<br />
==== Specify the correct module order ====<br />
<br />
Even when AMDGPU support for SI/CIK has been enabled by the kernel, the [[radeon]] driver may be loaded before the {{ic|amdgpu}} driver.<br />
<br />
Make sure {{ic|amdgpu}} has been set as first module in the [[Mkinitcpio#MODULES]] array, e.g. {{ic|1=MODULES=(amdgpu radeon)}}.<br />
<br />
==== Set required module parameters ====<br />
<br />
The [[module parameters]] of both {{ic|amdgpu}} and {{ic|radeon}} modules are {{ic|1=cik_support=}} and {{ic|1=si_support=}}. <br />
<br />
They need to be set as kernel parameters or in a ''modprobe'' configuration file, and depend on the cards GCN version.<br />
<br />
{{Tip|[[dmesg]] may indicate the correct kernel parameter to use: {{ic|1=[..] amdgpu 0000:01:00.0: Use radeon.cik_support=0 amdgpu.cik_support=1 to override}}.}}<br />
<br />
===== Set module parameters in kernel command line =====<br />
<br />
Set one of the following [[kernel parameters]]:<br />
<br />
* Southern Islands (SI): {{ic|1=radeon.si_support=0 amdgpu.si_support=1}}<br />
* Sea Islands (CIK): {{ic|1=radeon.cik_support=0 amdgpu.cik_support=1}}<br />
<br />
===== Set module parameters in modprobe.d =====<br />
<br />
Create the configuration [[modprobe]] files in {{ic|/etc/modprobe.d/}}, see {{man|5|modprobe.d}} for syntax details.<br />
<br />
For Southern Islands (SI) use option {{ic|1=si_support=1}}, for Sea Islands (CIK) use option {{ic|1=cik_support=1}}, e.g.:<br />
<br />
{{hc|/etc/modprobe.d/amdgpu.conf|2=<br />
options amdgpu si_support=1<br />
options amdgpu cik_support=0<br />
}}<br />
<br />
{{hc|/etc/modprobe.d/radeon.conf|2=<br />
options radeon si_support=0<br />
options radeon cik_support=0<br />
}}<br />
<br />
Make sure {{ic|modconf}} is in the the {{ic|HOOKS}} array in {{ic|/etc/mkinitcpio.conf}} and [[regenerate the initramfs]].<br />
<br />
=== AMDGPU PRO ===<br />
<br />
AMD provides a proprietary, binary userland driver called ''AMDGPU PRO'', which works on top of the open-source AMDGPU kernel driver.<br />
<br />
From [http://www.phoronix.com/vr.php?view=27266 Radeon Software 18.50 vs Mesa 19 benchmarks] article: When it comes to OpenGL games, the RadeonSI Gallium3D driver simply dominates the proprietary AMD OpenGL driver.<br />
<br />
Install the {{AUR|amdgpu-pro-libgl}}. Optionally install the {{AUR|lib32-amdgpu-pro-libgl}} package for 32-bit application support.<br />
<br />
{{Note|Users of graphic cards other than Radeon Pro are [https://www.amd.com/en/support/kb/release-notes/amdgpu-installation advised to use the amdgpu graphics stack].}}<br />
<br />
=== ACO compiler ===<br />
<br />
The [https://steamcommunity.com/games/221410/announcements/detail/1602634609636894200 ACO compiler] is an open source shader compiler created and developed by [[wikipedia:Valve_Corporation|Valve Corporation]] to directly compete with the [http://llvm.org/ LLVM compiler], the [https://github.com/GPUOpen-Drivers/AMDVLK AMDVLK drivers], as well as [[wikipedia:Windows_10|Windows 10]]. It offers lesser compilation time and also performs better while gaming than LLVM and AMDVLK.<br />
<br />
Some benchmarks can be seen in [https://itsfoss.com/linux-games-performance-boost-amd-gpu/ It's FOSS] and Phoronix [https://www.phoronix.com/scan.php?page=article&item=radv-aco-llvm&num=1 (1)] [https://www.phoronix.com/scan.php?page=article&item=radv-aco-gcn10&num=1 (2)] [https://www.phoronix.com/scan.php?page=article&item=mesa20radv-aco-amdvlk&num=1 (3)].<br />
<br />
{{Warning|ACO is a very early development and still is marked as '''testing''', you may experience issues.}}<br />
<br />
Since {{Pkg|mesa}} version 19.3, the ACO compiler is available in the official package, but disabled by default. It can be enabled by [[Environment variables#Defining variables|exporting]] {{ic|1=RADV_PERFTEST=aco}} before starting an application.<br />
<br />
== Loading ==<br />
<br />
The {{ic|amdgpu}} kernel module should load fine automatically on system boot.<br />
<br />
If it does not happen, then:<br />
<br />
* Make sure to [[#Enable Southern Islands (SI) and Sea Islands (CIK) support]] when needed.<br />
* Make sure you have the latest {{Pkg|linux-firmware}} package installed. This driver requires the latest firmware for each model to successfully boot.<br />
* Make sure you do '''not''' have {{ic|nomodeset}} or {{ic|1=vga=}} as a [[kernel parameter]], since {{ic|amdgpu}} requires [[KMS]].<br />
* Check that you have not disabled {{ic|amdgpu}} by using any [[Kernel_modules#Blacklisting|kernel module blacklisting]].<br />
<br />
=== Enable early KMS ===<br />
<br />
See [[Kernel mode setting#Early KMS start]].<br />
<br />
== Xorg configuration ==<br />
<br />
[[Xorg]] will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-amdgpu.conf}}, and add the following:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-amdgpu.conf|2=<br />
Section "Device"<br />
Identifier "AMD"<br />
Driver "amdgpu"<br />
EndSection<br />
}}<br />
<br />
Using this section, you can enable features and tweak the driver settings, see {{man|4|amdgpu}} first before setting driver options.<br />
<br />
=== Tear free rendering ===<br />
<br />
''TearFree'' controls tearing prevention using the hardware page flipping mechanism. If this option is set, the default value of the property is 'on' or 'off' accordingly. If this option is not set, the default value of the property is auto, which means that TearFree is on for rotated outputs, outputs with RandR transforms applied and for RandR 1.4 slave outputs, otherwise off:<br />
<br />
Option "TearFree" "true"<br />
<br />
You can also enable TearFree temporarily with [[xrandr]]: <br />
<br />
$ xrandr --output ''output'' --set TearFree on<br />
<br />
Where {{ic|''output''}} should look like {{ic|DisplayPort-0}} or {{ic|HDMI-A-0}} and can be acquired by running {{ic|xrandr -q}}.<br />
<br />
=== DRI level ===<br />
<br />
''DRI'' sets the maximum level of DRI to enable. Valid values are ''2'' for DRI2 or ''3'' for DRI3. The default is ''3'' for DRI3 if the [[Xorg]] version is >= 1.18.3, otherwise DRI2 is used:<br />
<br />
Option "DRI" "3"<br />
<br />
=== Variable refresh rate ===<br />
<br />
See [[Variable refresh rate]].<br />
<br />
=== 10-bit color ===<br />
<br />
Newer AMD cards support 10bpc color, but the default is 24-bit color and 30-bit color must be explicitly enabled. Enabling it can reduce visible banding/artifacts in gradients, if the applications support this too. To check if your monitor supports it search for "EDID" in your [[Xorg#General|Xorg log file]] (e.g. {{ic|/var/log/Xorg.0.log}} or {{ic|~/.local/share/xorg/Xorg.0.log}}):<br />
<br />
[ 336.695] (II) AMDGPU(0): EDID for output DisplayPort-0<br />
[ 336.695] (II) AMDGPU(0): EDID for output DisplayPort-1<br />
[ 336.695] (II) AMDGPU(0): Manufacturer: DEL Model: a0ec Serial#: 123456789<br />
[ 336.695] (II) AMDGPU(0): Year: 2018 Week: 23<br />
[ 336.695] (II) AMDGPU(0): EDID Version: 1.4<br />
[ 336.695] (II) AMDGPU(0): Digital Display Input<br />
'''[ 336.695] (II) AMDGPU(0): 10 bits per channel'''<br />
<br />
To check whether it is currently enabled search for "Depth"):<br />
<br />
[ 336.618] (**) AMDGPU(0): Depth 30, (--) framebuffer bpp 32<br />
[ 336.618] (II) AMDGPU(0): Pixel depth = 30 bits stored in 4 bytes (32 bpp pixmaps)<br />
<br />
With the default configuration it will instead say the depth is 24, with 24 bits stored in 4 bytes.<br />
<br />
To check whether 10-bit works, exit Xorg if you have it running and run {{ic|Xorg -retro}} which will display a black and white grid, then press {{ic|Ctrl-Alt-F1}} and {{ic|Ctrl-C}} to exit X, and run {{ic|Xorg -depth 30 -retro}}. If this works fine, then 10-bit is working.<br />
<br />
To launch in 10-bit via {{ic|startx}}, use {{ic|startx -- -depth 30}}. To permanently enable it, create or add to:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-amdgpu.conf|2=<br />
Section "Screen"<br />
Identifier "asdf"<br />
DefaultDepth 30<br />
EndSection<br />
}}<br />
<br />
Various software may have graphical artifacts or crash with 10-bpc color.<br />
<br />
== Features ==<br />
<br />
=== Video acceleration ===<br />
<br />
See [[Hardware video acceleration]].<br />
<br />
=== Monitoring ===<br />
<br />
Monitoring your GPU is often used to check the temperature and also the P-states of your GPU.<br />
<br />
==== CLI (default) ====<br />
<br />
To check your GPU's P-states, execute:<br />
$ cat /sys/class/drm/card0/device/pp_od_clk_voltage<br />
To monitor your GPU, execute:<br />
$ watch -n 0.5 cat /sys/kernel/debug/dri/0/amdgpu_pm_info<br />
<br />
With [https://github.com/clbr/radeontop radeontop] utility you can view your GPU utilization, both for the total activity percent and individual blocks. It is included in {{Pkg|radeontool}} package.<br />
<br />
==== GUI ====<br />
<br />
* {{App|WattmanGTK|A GTK GUI tool to monitor your GPU's temperatures P-states|https://github.com/BoukeHaarsma23/WattmanGTK|{{AUR|wattman-gtk-git}}}}.<br />
* {{App|TuxClocker|A Qt5 monitoring and overclocking tool.|https://github.com/Lurkki14/tuxclocker|{{AUR|tuxclocker}} {{AUR|tuxclocker-git}}}}<br />
* {{App|CoreCtrl|A Qt5 tool to control with ease your computer hardware using application profiles.|https://gitlab.com/corectrl/corectrl|{{AUR|corectrl}} {{AUR|corectrl-git}}}}<br />
<br />
=== Overclocking ===<br />
<br />
Since Linux 4.17, it is possible to adjust clocks and voltages of the graphics card via {{Ic|1=/sys/class/drm/card0/device/pp_od_clk_voltage}}.<br />
<br />
==== Boot parameter ====<br />
<br />
It is required to unlock access to adjust clocks and voltages in sysfs by appending the [[Kernel parameter]] {{Ic|1=amdgpu.ppfeaturemask=0xffffffff}}.<br />
<br />
==== Manual (default) ====<br />
<br />
{{Note|In sysfs, paths like {{Ic|1=/sys/class/drm/...}} are just symlinks and may change between reboots. Persistent locations can be found in {{Ic|1=/sys/devices/}}, e.g. {{Ic|1=/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/}}. Adjust the commands accordingly for a reliable result.}}<br />
<br />
To set the GPU clock for the maximum P-state 7 on e.g. a Polaris GPU to 1209MHz and 900mV voltage, run:<br />
# echo "s 7 1209 900" > /sys/class/drm/card0/device/pp_od_clk_voltage<br />
The same procedure can be applied to the VRAM, e.g. maximum P-state 2 on Polaris 5xx series cards:<br />
# echo "m 2 1850 850" > /sys/class/drm/card0/device/pp_od_clk_voltage<br />
{{Warning|1=Double check the entered values, as mistakes might instantly cause fatal hardware damage!}}<br />
To apply, run<br />
# echo "c" > /sys/class/drm/card0/device/pp_od_clk_voltage<br />
To check if it worked out, read out clocks and voltage under 3D load:<br />
# watch -n 0.5 cat /sys/kernel/debug/dri/0/amdgpu_pm_info<br />
You can reset to the default values using this:<br />
# echo "r" > /sys/class/drm/card0/device/pp_od_clk_voltage<br />
<br />
It is also possible to forbid the driver so switch to certain P-states, e.g. to workaround problems with deep powersaving P-states like flickering artifacts or stutter. To force the highest VRAM P-state on a Polaris RX 5xx card, while still allowing the GPU itself to run with lower clocks, run:<br />
# echo "manual" > /sys/class/drm/card0/device/power_dpm_force_performance_level<br />
# echo "2" > /sys/class/drm/card0/device/pp_dpm_mclk<br />
Allow only the three highest GPU P-states:<br />
# echo "5 6 7" > /sys/class/drm/card0/device/pp_dpm_sclk<br />
<br />
To set the allowed maximum power consumption of the GPU to e.g. 50 Watts, run<br />
# echo 50000000 > /sys/class/drm/card0/device/hwmon/hwmon0/power1_cap<br />
Until Linux kernel 4.20, it will only be possible to decrease the value, not increase.<br />
<br />
{{Note|The above procedure was tested with a Polaris RX 560 card. There may be different behavior or bugs with different GPUs.}}<br />
<br />
==== Assisted ====<br />
<br />
If you are not inclined to fully manually overclock your GPU, there are some overclocking tools that are offered by the community to assist you to overclock and monitor your AMD GPU.<br />
<br />
===== CLI tools =====<br />
<br />
* {{App|amdgpu-clocks|A script that can be used to monitor and set custom power states for AMD GPUs. It also offers a Systemd service to apply the settings automatically upon boot.|https://github.com/sibradzic/amdgpu-clocks|{{AUR|amdgpu-clocks-git}}}}<br />
<br />
===== GUI tools =====<br />
<br />
* {{App|TuxClocker|A Qt5 monitoring and overclocking tool.|https://github.com/Lurkki14/tuxclocker|{{AUR|tuxclocker}} {{AUR|tuxclocker-git}}}}<br />
* {{App|CoreCtrl|A GUI overclocking tool with a WattMan-like UI that supports per-application profiles.|https://gitlab.com/corectrl/corectrl|{{AUR|corectrl}} {{AUR|corectrl-git}}}}<br />
<br />
==== Startup on boot ====<br />
<br />
If you want your settings to apply automatically upon boot, consider looking at this [https://www.reddit.com/r/Amd/comments/agwroj/how_to_overclock_your_amd_gpu_on_linux/ Reddit thread] to configure and apply your settings on boot.<br />
<br />
=== Enable GPU display scaling ===<br />
<br />
{{Move|xrandr|Not specific to AMDGPU.|section=Moving "Enable GPU display scaling" to xrandr}}<br />
<br />
To avoid the usage of the scaler which is built in the display, and use the GPU own scaler instead, when not using the native resolution of the monitor, execute:<br />
$ xrandr --output ''output'' --set "scaling mode" ''scaling_mode''<br />
Possible values for {{ic|"scaling mode"}} are: {{ic|None}}, {{ic|Full}}, {{ic|Center}}, {{ic|Full aspect}}.<br />
<br />
* To show the available outputs and settings, execute:<br />
$ xrandr --prop<br />
<br />
* To set {{ic|1=scaling mode = Full aspect}} for just every available output, execute:<br />
$ for output in $(xrandr --prop | grep -E -o -i "^[A-Z\-]+-[0-9]+"); do xrandr --output "$output" --set "scaling mode" "Full aspect"; done<br />
<br />
== Troubleshooting ==<br />
<br />
=== Xorg or applications will not start ===<br />
<br />
* "(EE) AMDGPU(0): [DRI2] DRI2SwapBuffers: drawable has no back or front?" error after opening glxgears, can open Xorg server but OpenGL apps crash.<br />
* "(EE) AMDGPU(0): Given depth (32) is not supported by amdgpu driver" error, Xorg will not start.<br />
<br />
Setting the screen's depth under Xorg to 16 or 32 will cause problems/crash. To avoid that, you should use a standard screen depth of 24 by adding this to your "screen" section:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/10-screen.conf|<br />
Section "Screen"<br />
Identifier "Screen"<br />
DefaultDepth 24<br />
SubSection "Display"<br />
Depth 24<br />
EndSubSection<br />
EndSection<br />
}}<br />
<br />
=== Screen artifacts and frequency problem ===<br />
<br />
[[ATI#Dynamic power management|Dynamic power management]] may cause screen artifacts to appear when displaying to monitors at higher frequencies (anything above 60Hz) due to issues in the way GPU clock speeds are managed[https://bugs.freedesktop.org/show_bug.cgi?id=96868][https://bugs.freedesktop.org/show_bug.cgi?id=102646].<br />
<br />
A workaround [https://bugs.freedesktop.org/show_bug.cgi?id=96868#c13] is saving {{ic|high}} or {{ic|low}} in {{ic|/sys/class/drm/card0/device/power_dpm_force_performance_level}}.<br />
<br />
There is also a GUI solution [https://github.com/marazmista/radeon-profile] where you can manage the "power_dpm" with {{aur|radeon-profile-git}} and {{aur|radeon-profile-daemon-git}}.<br />
<br />
=== R9 390 series poor performance and/or instability ===<br />
<br />
If you experience issues [https://bugs.freedesktop.org/show_bug.cgi?id=91880] with a AMD R9 390 series graphics card, set {{ic|1=radeon.cik_support=0 radeon.si_support=0 amdgpu.cik_support=1 amdgpu.si_support=1 amdgpu.dpm=1 amdgpu.dc=1}} as [[kernel parameters]] to force the use of amdgpu driver instead of radeon.<br />
<br />
If it still does not work, try disabling DPM, by setting the [[kernel parameters]] to: {{ic|1=radeon.cik_support=0 radeon.si_support=0 amdgpu.cik_support=1 amdgpu.si_support=1}}<br />
<br />
=== Freezes with "[drm] IP block:gmc_v8_0 is hung!" kernel error ===<br />
<br />
If you experience freezes and kernel crashes during a GPU intensive task with the kernel error " [drm] IP block:gmc_v8_0 is hung!" [https://bugs.freedesktop.org/show_bug.cgi?id=102322], a workaround is to set {{ic|1=amdgpu.vm_update_mode=3}} as [[kernel parameters]] to force the GPUVM page tables update to be done using the CPU. Downsides are listed here [https://bugs.freedesktop.org/show_bug.cgi?id=102322#c15].<br />
<br />
=== Cursor corruption ===<br />
<br />
If you experience issues with the mouse cursor sometimes not rendering properly, set {{ic|Option "SWCursor" "True"}} in the {{ic|"Device"}} section of the {{ic|/etc/X11/xorg.conf.d/20-amdgpu.conf}} configuration file.<br />
<br />
If you are using {{ic|xrandr}} for scaling and the cursor is flickering or disappearing, you may be able to fix it by setting the {{ic|TearFree}} property: {{ic|xrandr --output HDMI-A-0 --set TearFree on}}.<br />
<br />
=== System freeze or crash when gaming on Vega cards ===<br />
<br />
[[ATI#Dynamic power management|Dynamic power management]] may cause a complete system freeze whilst gaming due to issues in the way GPU clock speeds are managed. [https://bugs.freedesktop.org/show_bug.cgi?id=109955] A workaround is to disable dynamic power management, see [[ATI#Dynamic power management]] for details.<br />
<br />
=== Navi power consumption ===<br />
<br />
Some users have reported higher than usual idle power consumption when using kernel 5.3. There is a [https://cgit.freedesktop.org/~agd5f/linux/tag/?h=drm-next-5.4-2019-08-30 patch set] available for kernel 5.4 that appears to fix the issues.<br />
<br />
=== WebRenderer (Firefox) corruption ===<br />
<br />
Artifacts and other anomalies may present themselves (e.g. inability to select extension options) when [[Firefox/Tweaks#Enable_WebRender|WebRenderer]] is force enabled by the user. Workaround is to fall back to OpenGL compositing.</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=Unofficial_user_repositories&diff=600448Unofficial user repositories2020-03-06T19:21:38Z<p>Lordheavy: Reverted edits by Lahwaacz (talk) to last revision by Lystor</p>
<hr />
<div>[[Category:Package management]]<br />
[[Category:Lists]]<br />
[[ja:非公式ユーザーリポジトリ]]<br />
[[zh-hans:Unofficial user repositories]]<br />
{{Related articles start}}<br />
{{Related|pacman-key}}<br />
{{Related|Official repositories}}<br />
{{Related articles end}}<br />
This article lists binary repositories freely created and shared by the community, often providing pre-built versions of PKGBUILDS found in the [[AUR]].<br />
<br />
In order to use these repositories, add them to {{ic|/etc/pacman.conf}}, as explained in [[pacman#Repositories and mirrors]]. If a repository is signed, you must obtain and locally sign the associated key, as explained in [[pacman/Package signing#Adding unofficial keys]].<br />
<br />
If you want to create your own custom repository, follow [[pacman/Tips and tricks#Custom local repository]].<br />
<br />
{{Warning|The official Arch Linux Developers and the Trusted Users do not perform tests of any sort to verify the contents of these repositories. You must decide whether to trust their maintainers and you take full responsibility for any consequences of using any unofficial repository.}}<br />
<br />
== Adding your repository to this page ==<br />
<br />
If you have your own repository, please add it to this page, so that all the other users will know where to find your packages. Please keep the following rules when adding new repositories:<br />
<br />
* Keep the lists in alphabetical order.<br />
* Include some information about the maintainer: include at least a (nick)name and some form of contact information (web site, email address, user page on ArchWiki or the forums, etc.).<br />
* If the repository is of the ''signed'' variety, please include a key-id, possibly using it as the anchor for a link to its keyserver; if the key is not on a keyserver, include a link to the key file.<br />
* Include some short description (e.g. the category of packages provided in the repository).<br />
* If there is a page (either on ArchWiki or external) containing more information about the repository, include a link to it.<br />
* If possible, avoid using comments in code blocks. The formatted description is much more readable. Users who want some comments in their {{ic|pacman.conf}} can easily create it on their own.<br />
<br />
Some repositories may also have packages for architectures beside x86_64. The {{ic|$arch}} variable will be set automatically by pacman.<br />
<br />
== Signed ==<br />
<br />
=== alerque ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/caleb Caleb Maclennan]<br />
* '''Description:''' Typesetting and publishing related tools such as SILE, CaSILE, fonts, and related dependencies including many Lua Rocks. Also mattermost, asterisk, and many of the [https://aur.archlinux.org/packages/?O=0&SeB=M&K=caleb&outdated=&SB=n&SO=a&PP=250&do_Search=Go AUR packages I (co-)maintain].<br />
* '''Key-ID:''' [https://pgp.mit.edu/pks/lookup?op=get&search=0x63CC496475267693 63CC496475267693]<br />
<br />
{{bc|<nowiki><br />
[alerque]<br />
https://arch.alerque.com/$arch<br />
</nowiki>}}<br />
<br />
=== andontie-aur ===<br />
<br />
* '''Maintainer:''' Holly M.<br />
* '''Description:''' A repo containing the most popular AUR packages, as well as some I use all the time. New packages can be requested on the upstream website.<br />
* '''Key-ID:''' EA50C866329648EE<br />
* '''Upstream page:''' https://aur.andontie.net<br />
<br />
{{bc|<nowiki><br />
[andontie-aur]<br />
Server = https://aur.andontie.net/$arch<br />
</nowiki>}}<br />
<br />
=== AniNIX ===<br />
* '''Maintainer:''' [http://foundation.aninix.net/DarkFeather DarkFeather]<br />
* '''Description:''' Self-written and AUR packages to support open-source cybersecurity research<br />
* ''''Key-ID:''' 904DE6275579CB589D85720C1CC1E3F4ED06F296<br />
* '''Upstream page:''' https://aninix.net<br />
* '''Git and issue tracking:''' https://foundation.aninix.net/<br />
* '''Contact:''' ircs://aninix.net:6697/#lobby<br />
<br />
{{bc|<nowiki><br />
[AniNIX]<br />
Server = https://maat.aninix.net/<br />
<br />
[aur]<br />
Server = https://maat.aninix.net/aur/<br />
</nowiki>}}<br />
<br />
=== arcanisrepo ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#arcanis arcanis]<br />
* '''Description:''' A repository with some AUR packages including packages from VCS<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[arcanisrepo]<br />
Server = https://repo.arcanis.me/repo/$arch<br />
</nowiki>}}<br />
<br />
(It is also available via FTP with the same URL.)<br />
<br />
=== arch4edu ===<br />
<br />
* '''Maintainers:''' [https://github.com/petronny Jingbei Li (petronny)], and [https://github.com/arch4edu/arch4edu/graphs/contributors others]<br />
* '''Description:''' arch4edu is a community repository for Archlinux and ArchlinuxARM that strives to provide the latest versions of most software used by college students.<br />
* '''Git Repo:''' https://github.com/arch4edu/arch4edu<br />
* '''Issue tracking:''' https://github.com/arch4edu/arch4edu/issues for packaging issues, out-of-date notifications, package requests, and related questions<br />
* '''Mirrors:''' https://github.com/arch4edu/arch4edu/wiki/Add-arch4edu-to-your-Archlinux<br />
* '''Key-ID:''' 7931B6D628C8D3BA<br />
<br />
{{bc|<nowiki><br />
[arch4edu]<br />
Server = https://mirrors.tuna.tsinghua.edu.cn/arch4edu/$arch<br />
## or other mirrors in https://github.com/arch4edu/arch4edu/wiki/Add-arch4edu-to-your-Archlinux<br />
</nowiki>}}<br />
<br />
=== archlinuxcn ===<br />
<br />
* '''Maintainers:''' [https://plus.google.com/+PhoenixNemo/ Phoenix Nemo (phoenixlzx)], [https://www.archlinux.org/people/developers/#fyan Felix Yan (felixonmars, dev)], [https://twitter.com/lilydjwg lilydjwg], [https://www.archlinux.org/people/trusted-users/#farseerfc farseerfc (TU)], and [https://github.com/archlinuxcn/repo/graphs/contributors others]<br />
* '''Description:''' Packages by the Chinese Arch Linux community, all signed. Be aware that i686 packages are not fully maintained and tested, create an issue if you find some problems.<br />
* '''Git Repo:''' https://github.com/archlinuxcn/repo<br />
* '''Issue tracking:''' https://github.com/archlinuxcn/repo/issues for packaging issues, out-of-date notifications, package requests, and related questions<br />
* '''Mirrors:''' https://github.com/archlinuxcn/mirrorlist-repo (Mostly for users in mainland China), or install ''archlinuxcn-mirrorlist-git'' from the repo.<br />
* '''Key-ID:''' Once the repo is added, ''archlinuxcn-keyring'' package must be installed before any other so you do not get errors about PGP signatures. ''archlinuxcn-keyring'' package itself is signed by TU.<br />
<br />
{{bc|<nowiki><br />
[archlinuxcn]<br />
Server = http://repo.archlinuxcn.org/$arch<br />
## or install archlinuxcn-mirrorlist-git and use the mirrorlist<br />
#Include = /etc/pacman.d/archlinuxcn-mirrorlist<br />
</nowiki>}}<br />
<br />
=== archstrike ===<br />
<br />
* '''Maintainer:''' [https://archstrike.org/team The ArchStrike Team]<br />
* '''Description:''' A repository for security professionals and enthusiasts<br />
* '''Upstream page:''' https://archstrike.org/<br />
* '''Key-ID:''' 9D5F1C051D146843CDA4858BDE64825E7CBC0D51<br />
<br />
{{Note|ArchStrike specific instructions can be found at https://archstrike.org/wiki/setup}}<br />
<br />
{{bc|<nowiki><br />
[archstrike]<br />
Server = https://mirror.archstrike.org/$arch/$repo<br />
</nowiki>}}<br />
<br />
=== archzfs ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/minextu Jan Houben (minextu)]<br />
* '''Description:''' Packages for ZFS on Arch Linux.<br />
* '''Upstream page:''' https://github.com/archzfs/archzfs<br />
* '''Key-ID:''' F75D9D76<br />
<br />
{{bc|<nowiki><br />
[archzfs]<br />
Server = http://archzfs.com/$repo/x86_64<br />
</nowiki>}}<br />
<br />
=== archzfs-kernels ===<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/endre/ Endre Szabo]<br />
* '''Description:''' Official kernel packages matching the most recent [[# archzfs|ZFS packages]] kernel version dependencies. Use this to be able to upgrade your kernel package every time whilst using ZFS packages above :)<br />
* '''Upstream page:''' https://end.re/archzfs-kernels/<br />
* '''Key-ID:''' Not needed as packages are from core repos and signed officially.<br />
<br />
{{bc|<nowiki><br />
[archzfs-kernels]<br />
Server = http://end.re/$repo/<br />
</nowiki>}}<br />
<br />
=== ashleyis ===<br />
<br />
* '''Maintainer:''' Ashley Towns ([https://aur.archlinux.org/account/ashleyis/ ashleyis])<br />
* '''Description:''' Debug versions of SDL, chipmunk, libtmx and other misc game libraries. also swift-lang and some other AUR packages <br />
* '''Key-ID:''' B1A4D311<br />
<br />
{{bc|<nowiki><br />
[ashleyis]<br />
Server = http://arch.ashleytowns.id.au/repo/$arch<br />
</nowiki>}}<br />
<br />
=== Bennix Repo ===<br />
<br />
* '''Maintainer:''' Ben P. Dorsi-Todaro ([https://techmeout.org Tech Me Out])<br />
* '''Description:''' Packages [http://ben-dorsi-todaro.com/ Ben P. Dorsi-Todaro] uses and are not listed in repos, or packages built by [http://www.bigbenshosting.com/ Big Ben's Web Hosting] <br />
* '''Key-ID:''' F14BB858F6253DA0<br />
<br />
{{bc|<nowiki><br />
[bigben-repo]<br />
SigLevel = Optional TrustAll<br />
Server = http://bennix.net/bigben-repo/<br />
</nowiki>}}<br />
<br />
=== blackeagle-pre-community ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#idevolder Ike Devolder]<br />
* '''Description:''' testing of the by me maintaned packages before moving to ''community'' repository<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[blackeagle-pre-community]<br />
Server = https://repo.herecura.be/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== chaotic-aur ===<br />
<br />
* '''Maintainer:''' [https://github.com/pedrohlc PedroHLC], and [https://github.com/librewish Librewish]<br />
* '''Description:''' Auto builds AUR packages the maintainer uses, update them hourly (a few are daily). Hosted in São Carlos, SP, Brazil. Has two mirrors (Germany and USA). x86_64 only. Has over 1600 packages.<br />
* '''Key-ID:''' [http://pool.sks-keyservers.net/pks/lookup?search=0x3056513887B78AEB&fingerprint=on&op=index], fingerprint {{ic|EF92 5EA6 0F33 D0CB 85C4 4AD1 3056 5138 87B7 8AEB }}<br />
* '''Note:''' See [https://lonewolf.pedrohlc.com/chaotic-aur maintainer's notes].<br />
{{bc|<nowiki><br />
[chaotic-aur]<br />
Server = http://lonewolf-builder.duckdns.org/$repo/x86_64<br />
Server = http://chaotic.bangl.de/$repo/x86_64<br />
Server = https://repo.kitsuna.net/x86_64<br />
</nowiki>}}<br />
<br />
=== catalyst ===<br />
<br />
* '''Maintainer:''' [[User:Vi0L0|Vi0l0]]<br />
* '''Description:''' ATI Catalyst proprietary drivers.<br />
* '''Key-ID:''' 653C3094<br />
<br />
{{bc|<nowiki><br />
[catalyst]<br />
Server = http://167.86.114.169/arch/catalyst/$arch<br />
</nowiki>}}<br />
<br />
=== catalyst-hd234k ===<br />
<br />
* '''Maintainer:''' [[User:Vi0L0|Vi0l0]]<br />
* '''Description:''' ATI Catalyst proprietary drivers.<br />
* '''Key-ID:''' 653C3094<br />
<br />
{{bc|<nowiki><br />
[catalyst-hd234k]<br />
Server = http://167.86.114.169/arch/catalyst-hd234k/$arch<br />
</nowiki>}}<br />
<br />
=== city ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#bgyorgy Balló György]<br />
* '''Description:''' Experimental/unpopular packages.<br />
* '''Upstream page:''' https://pkgbuild.com/~bgyorgy/city.html<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[city]<br />
Server = https://pkgbuild.com/~bgyorgy/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
=== coderkun-aur ===<br />
<br />
{{Out of date|Repository does not seem available anymore.}}<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/coderkun/ coderkun]<br />
* '''Description:''' AUR packages with random software. Supporting package deltas and package and database signing.<br />
* '''Upstream page:''' https://www.suruatoel.xyz/arch<br />
* '''Key-ID:''' 39E27199A6BEE374<br />
* '''Keyfile:''' [https://www.suruatoel.xyz/coderkun.asc https://www.suruatoel.xyz/coderkun.asc]{{Dead link|2020|02|26}}<br />
<br />
{{bc|<nowiki><br />
[coderkun-aur]<br />
Server = http://arch.suruatoel.xyz/$repo/$arch/<br />
</nowiki>}}<br />
<br />
=== coderkun-aur-audio ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/coderkun/ coderkun]<br />
* '''Description:''' AUR packages with audio-related (realtime kernels, lv2-plugins, …) software. Supporting package deltas and package and database signing.<br />
* '''Upstream page:''' https://www.suruatoel.xyz/arch<br />
* '''Key-ID:''' 39E27199A6BEE374<br />
* '''Keyfile:''' [https://www.suruatoel.xyz/coderkun.key https://www.suruatoel.xyz/coderkun.key]<br />
<br />
{{bc|<nowiki><br />
[coderkun-aur-audio]<br />
Server = http://arch.suruatoel.xyz/$repo/$arch/<br />
</nowiki>}}<br />
<br />
=== devkitpro ===<br />
<br />
* '''Maintainer:''' [https://devkitpro.org/ wintermute]<br />
* '''Description:''' Provides Homebrew toolchains for the Nintendo Wii, Gamecube, DS, GBA, Gamepark gp32 and Nintendo Switch<br />
* '''Upstream page:''' https://devkitpro.org/wiki/devkitPro_pacman<br />
* '''Key-ID:''' F7FD5492264BB9D0<br />
<br />
{{Note|Repository has its own additional keyring at https://downloads.devkitpro.org/devkitpro-keyring-r1.787e015-2-any.pkg.tar.xz.}}<br />
<br />
{{bc|<nowiki><br />
[dkp-libs]<br />
Server = https://downloads.devkitpro.org/packages<br />
[dkp-linux]<br />
Server = https://downloads.devkitpro.org/packages/linux<br />
</nowiki>}}<br />
<br />
=== disastrousaur ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/TheGoliath TheGoliath]<br />
* '''Description:''' Well known AUR package managers, many of the most popular packages available on the AUR, as well as those that I favor myself<br />
* '''Upstream page:''' https://mirror.repohost.de/disastrousaur<br />
* '''Key-ID:''' CBAE582A876533FD<br />
* '''Keyfile:''' [https://mirror.repohost.de/disastrousaur.key https://mirror.repohost.de/disastrousaur.key]<br />
{{Warning|disastrousaur and disastrousarm have now been merged under the disastrousaur name Please make sure you have changed the Server URL for your repos accordingly. Builds for other architectures may come out as I got enough time getting things running. }}<br />
{{bc|<nowiki><br />
[disastrousaur]<br />
Server = https://mirror.repohost.de/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== dvzrv ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/developers/#dvzrv David Runge]<br />
* '''Description:''' [[Realtime kernel patchset]] (aka. {{AUR|linux-rt}} and {{AUR|linux-rt-lts}})<br />
* '''Key-ID:''' Not needed, as maintainer is a developer/TU<br />
<br />
{{bc|<nowiki><br />
[dvzrv]<br />
Server = https://pkgbuild.com/~dvzrv/repo/$arch<br />
</nowiki>}}<br />
<br />
=== ear ===<br />
<br />
* '''Maintainer:''' [https://wardsegers.be Ward Segers], <br />
* '''Description:''' Editicalu's ArchLinux Repository. Contains precompiled AUR packages (mostly the ones maintained by editicalu)<br />
* '''Homepage:''' https://ear.wardsegers.be/<br />
* '''Upstream page:''' https://gitlab.com/editicalu/ear<br />
* '''Keyfile:''' https://ear.wardsegers.be/signingkey.asc<br />
* '''Key-ID:''' A9C4E7734638ACF8<br />
<br />
{{Note|Instructions can be found at https://ear.wardsegers.be}}<br />
<br />
{{bc|<nowiki><br />
[ear]<br />
Server = https://ear.wardsegers.be/$arch<br />
</nowiki>}}<br />
<br />
=== eatabrick ===<br />
<br />
* '''Maintainer:''' bentglasstube<br />
* '''Description:''' Packages for software written by (and a few just compiled by) bentglasstube.<br />
<br />
{{bc|<nowiki><br />
[eatabrick]<br />
Server = http://repo.eatabrick.org/$arch<br />
</nowiki>}}<br />
<br />
=== eschwartz ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#eschwartz Eli Schwartz]<br />
* '''Description:''' Personal repo with AUR packages and some core packages from git (including glibc and pacman). Contains debug packages.<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[eschwartz]<br />
Server = https://pkgbuild.com/~eschwartz/repo/$arch<br />
</nowiki>}}<br />
<br />
=== ffy00 ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#FFY00 Filipe Laíns]<br />
* '''Description:''' Personal repo. Contains some packages related to the D language.<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[ffy00]<br />
Server = https://pkgbuild.com/~ffy00/repo<br />
</nowiki>}}<br />
<br />
=== fusion809 ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/fusion809|Brenton Horne]] (brentonhorne77 at gmail dot com).<br />
* '''Description:''' Provides a few AUR and other packages I like. Like CodeLite and bleeding-edge (latest release within 1 day of its release) GVim (GTK 2 interface).<br />
* '''Package list:''' http://download.opensuse.org/repositories/home:/fusion809/Arch_Extra/x86_64/<br />
* '''Key-ID:''' 03264DDCD606DC98<br />
* '''Keyfile:''' https://download.opensuse.org/repositories/home:/fusion809/Arch_Extra/x86_64/home_fusion809_Arch_Extra.key<br />
<br />
{{bc|<nowiki><br />
[home_fusion809_Arch_Extra]<br />
Server = https://download.opensuse.org/repositories/home:/fusion809/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
=== grawlinson ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/grawlinson George Rawlinson]<br />
* '''Description:''' AUR packages maintained by the user as well as some experimental packages.<br />
* '''Package list:''' https://repo.nullpointer.io<br />
* '''Key-ID:''' 25EA6900D9EA5EBC<br />
* '''Keyfile:''' https://repo.nullpointer.io/grawlinson.key<br />
<br />
{{bc|<nowiki><br />
[grawlinson]<br />
Server = https://repo.nullpointer.io<br />
</nowiki>}}<br />
<br />
=== herecura ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#idevolder Ike Devolder]<br />
* '''Description:''' additional packages not found in the ''community'' repository<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[herecura]<br />
Server = https://repo.herecura.be/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== holo ===<br />
<br />
* '''Maintainer:''' Stefan Majewsky <holo-pacman@posteo.de> (please prefer to report issues at [https://github.com/majewsky/holo-pacman-repo/issues Github])<br />
* '''Description:''' Packages for [https://holocm.org Holo configuration management], including compatible plugins and tools.<br />
* '''Upstream page:''' https://github.com/majewsky/holo-pacman-repo<br />
* '''Package list:''' https://repo.holocm.org/archlinux/x86_64<br />
* '''Key-ID:''' 0xF7A9C9DC4631BD1A<br />
<br />
{{bc|<nowiki><br />
[holo]<br />
Server = https://repo.holocm.org/archlinux/x86_64<br />
</nowiki>}}<br />
<br />
=== ivasilev ===<br />
<br />
* '''Maintainer:''' [https://ivasilev.net Ianis G. Vasilev]<br />
* '''Description:''' A variety of packages, mostly my own software and AUR builds.<br />
* '''Upstream page:''' https://ivasilev.net/pacman<br />
* '''Key-ID:''' [https://pgp.mit.edu/pks/lookup?op=vindex&search=0xB77A3C8832838F1F80ADFD7E1D0507B417DAB671 17DAB671]<br />
<br />
{{bc|<nowiki><br />
[ivasilev]<br />
Server = https://ivasilev.net/pacman/$arch<br />
</nowiki>}}<br />
<br />
=== jlk ===<br />
<br />
* '''Maintainer:''' [[User:Lahwaacz|Jakub Klinkovský]]<br />
* '''Description:''' Various packages from the ABS and AUR. Modified packages are in the {{ic|modified}} group.<br />
* '''Upstream page:''' https://jlk.fjfi.cvut.cz/arch/repo/README.html<br />
* '''Key-ID:''' 932BA3FA0C86812A32D1F54DAB5964AEB9FEDDDC<br />
<br />
{{bc|<nowiki><br />
[jlk]<br />
Server = https://jlk.fjfi.cvut.cz/arch/repo<br />
</nowiki>}}<br />
<br />
=== markzz ===<br />
<br />
* '''Maintainer:''' [[User:Markzz|Mark Weiman (markzz)]]<br />
* '''Description:''' Packages that markzz maintains or uses on the AUR; this includes Linux with the vfio patchset ({{AUR|linux-vfio}} and {{AUR|linux-vfio-lts}}), and packages for analysis of network data.<br />
* '''Key ID:''' DEBB9EE4<br />
<br />
{{Note|If you want to add the key by installing the ''markzz-keyring'' package, temporarily add {{ic|1=SigLevel = Never}} into the repository section.}}<br />
<br />
{{bc|<nowiki><br />
[markzz]<br />
Server = https://repo.markzz.com/arch/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== maximbaz ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#maximbaz Maxim Baz]<br />
* '''Description:''' Personal repo with AUR packages.<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[maximbaz]<br />
Server = https://pkgbuild.com/~maximbaz/repo/<br />
</nowiki>}}<br />
<br />
=== me176c ===<br />
<br />
* '''Maintainer:''' [https://github.com/lambdadroid lambdadroid]<br />
* '''Description:''' Packages for [[ASUS MeMO Pad 7 (ME176C(X))]]<br />
* '''Key-ID:''' 2B1138A8BB59D786A3BF42AAD996DA70572407FB<br />
<br />
{{bc|<nowiki><br />
[me176c]<br />
Server = https://me176c.uber.space/archlinux<br />
</nowiki>}}<br />
<br />
=== miffe ===<br />
<br />
* '''Maintainer:''' [https://bbs.archlinux.org/profile.php?id=4059 miffe]<br />
* '''Description:''' AUR packages maintained by miffe, e.g. linux-mainline<br />
* '''Key ID:''' 313F5ABD<br />
<br />
{{bc|<nowiki><br />
[miffe]<br />
Server = https://arch.miffe.org/$arch/<br />
</nowiki>}}<br />
<br />
=== mikelpint ===<br />
<br />
* '''Maintainer:''' [[User:Mikelpint|Mikel Pintado (Mikelpint)]]<br />
* '''Description:''' Packages that mikelpint maintains in the AUR.<br />
* '''Key ID:''' 5CA78FC65B189E2B<br />
<br />
{{bc|<nowiki><br />
[mikelpint]<br />
Server = https://mikelpint.github.io/repository/archlinux/repo<br />
</nowiki>}}<br />
<br />
=== Minerva W Science ===<br />
<br />
* '''Maintainer:''' Minerva W<br />
* '''Description:''' [[OpenFOAM]] packages.<br />
* '''Key-ID:''' 3FF21B78117507DA<br />
* '''Keyfile:''' https://download.opensuse.org/repositories/home:/Minerva_W:/Science/Arch_Extra/x86_64/home_Minerva_W_Science_Arch_Extra.key<br />
<br />
{{bc|<nowiki><br />
[home_Minerva_W_Science_Arch_Extra]<br />
Server = https://download.opensuse.org/repositories/home:/Minerva_W:/Science/Arch_Extra/$arch <br />
</nowiki>}}<br />
<br />
=== mobile ===<br />
<br />
* '''Maintainer:''' [https://keybase.io/farwayer farwayer]<br />
* '''Description:''' React Native and Android development<br />
* '''Upstream page:''' https://keybase.pub/farwayer/arch/mobile/<br />
* '''Key ID:''' 7943315502A936D7<br />
<br />
{{bc|<nowiki><br />
[mobile]<br />
Server = https://farwayer.keybase.pub/arch/$repo<br />
</nowiki>}}<br />
<br />
=== nah ===<br />
<br />
* '''Maintainer:''' [https://yeah.nah.nz phillid]<br />
* '''Description:''' Pre-built versions of the (slow-to-build) graph-tool python libraries, mingw-w64<br />
* '''Key ID:''' 7BF3D17D0884BF5B<br />
<br />
{{bc|<nowiki><br />
[nah]<br />
Server = https://repo.nah.nz/$repo<br />
</nowiki>}}<br />
<br />
=== nickcao ===<br />
<br />
* '''Maintainer:''' [https://nichi.co/ NickCao]<br />
* '''Description:''' Some (useful for some) packages from me, and some aur packages I personally use.<br />
* '''Key-ID:''' 09CC69622E8D4EE343B4E8954D0BA456DF028C15<br />
<br />
{{bc|<nowiki><br />
[nickcao]<br />
Server = https://repo.nichi.co/$arch<br />
</nowiki>}}<br />
<br />
=== origincode ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/OriginCode OriginCode]<br />
* '''Description:''' A few staging or testing packages from [[#archlinuxcn]], and some daily use packages.<br />
* '''Key-ID:''' 0A5BAD445D80C1CC & 62BF97502AE10D22<br />
<br />
{{bc|<nowiki><br />
[origincode]<br />
Server = https://repo.origincode.me/repo/$arch<br />
</nowiki>}}<br />
<br />
=== oscloud ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/bionade24 bionade24]<br />
* '''Description:''' ROS Melodic packages and needed dependencies from the AUR.<br />
* '''Key-ID:''' 289AD6AA32857A04ABA587417EAC11ACDBCFBCEB<br />
<br />
{{bc|<nowiki><br />
[oscloud]<br />
Server = http://repo.oscloud.info/<br />
</nowiki>}}<br />
<br />
=== pkgbuilder ===<br />
<br />
* '''Maintainer:''' [https://chriswarrick.com/ Chris Warrick]<br />
* '''Description:''' A repository for PKGBUILDer, a Python AUR helper.<br />
* '''Upstream page:''' https://github.com/Kwpolska/pkgbuilder<br />
* '''Key-ID:''' 5EAAEA16<br />
<br />
{{bc|<nowiki><br />
[pkgbuilder]<br />
Server = https://pkgbuilder-repo.chriswarrick.com/<br />
</nowiki>}}<br />
<br />
=== post-factum kernels ===<br />
<br />
* '''Maintainer''': [https://aur.archlinux.org/account/post-factum Oleksandr Natalenko aka post-factum]<br />
* '''Upstream page''': https://gitlab.com/post-factum/pf-kernel/wikis/README<br />
* '''Description''': [[Kernel#Major_patchsets|pf-kernel]] packages by its developer, post-factum<br />
* '''Key-ID:''': 95C357D2AF5DA89D<br />
* '''Keyfile''': https://download.opensuse.org/repositories/home:/post-factum:/kernels/Arch/x86_64/home_post-factum_kernels_Arch.key<br />
<br />
{{bc|<nowiki><br />
[home_post-factum_kernels_Arch]<br />
Server = https://download.opensuse.org/repositories/home:/post-factum:/kernels/Arch/$arch<br />
</nowiki>}}<br />
<br />
=== QOwnNotes ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/pbek Patrizio Bekerle] (pbek), QOwnNotes author<br />
* '''Description:''' QOwnNotes is a open source notepad and todo list manager with markdown support and [[ownCloud]] integration.<br />
* '''Key-ID:''' FFC43FC94539B8B0<br />
* '''Keyfile:''' https://download.opensuse.org/repositories/home:/pbek:/QOwnNotes/Arch_Extra/x86_64/home_pbek_QOwnNotes_Arch_Extra.key<br />
<br />
{{bc|<nowiki><br />
[home_pbek_QOwnNotes_Arch_Extra]<br />
Server = https://download.opensuse.org/repositories/home:/pbek:/QOwnNotes/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
=== qt-debug ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/The-Compiler The Compiler]<br />
* '''Description:''' Qt/PyQt builds with debug symbols<br />
* '''Upstream page:''' https://github.com/qutebrowser/qt-debug-pkgbuild<br />
* '''Key-ID:''' D6A1C70FE80A0C82<br />
<br />
{{bc|<nowiki><br />
[qt-debug]<br />
Server = https://qutebrowser.org/qt-debug/$arch<br />
</nowiki>}}<br />
<br />
=== quarry ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/developers/#anatolik anatolik]<br />
* '''Description:''' Arch binary repository for [http://rubygems.org/ Rubygems] packages. See [https://bbs.archlinux.org/viewtopic.php?id=182729 forum announcement] for more information.<br />
* '''Sources:''' https://github.com/anatol/quarry<br />
* '''Key-ID:''' Not needed, as maintainer is a developer<br />
<br />
{{bc|<nowiki><br />
[quarry]<br />
Server = https://pkgbuild.com/~anatolik/quarry/x86_64/<br />
</nowiki>}}<br />
<br />
=== repo-ck ===<br />
<br />
Kernel and modules with Brain Fuck Scheduler and all the goodies in the ck1 patch set.<br />
<br />
See [[/Repo-ck]].<br />
<br />
=== seblu ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/developers/#seblu Sébastien Luttringer]<br />
* '''Description:''' All seblu useful pre-built packages, some homemade (linux-seblu-meta, zfs-dkms, spotify, masterpdfeditor, etc).<br />
* '''Key-ID:''' Not required, as maintainer is a Developer<br />
<br />
{{bc|<nowiki><br />
[seblu]<br />
Server = https://al1.seblu.net/$repo/$arch<br />
Server = https://al2.seblu.net/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== seiichiro ===<br />
<br />
* '''Maintainer:''' [https://www.seiichiro0185.org Stefan Brand (seiichiro0185)]<br />
* '''Description:''' AUR-packages I use frequently<br />
* '''Key-ID:''' 805517CC<br />
<br />
{{bc|<nowiki><br />
[seiichiro]<br />
Server = https://www.seiichiro0185.org/repo/$arch<br />
</nowiki>}}<br />
<br />
=== selinux ===<br />
<br />
* '''Maintainer:''' [https://github.com/swordfeng swordfeng]<br />
* '''Description:''' Unofficial (personal) builds for [[SELinux]] packages. PKGBUILDs are taken from AUR instead of the upstream GitHub repo.<br />
* '''Upstream page:''' https://github.com/archlinuxhardened/selinux<br />
* '''Key-ID:''' 7691FA63FE91CAFDD42A4AF08323B00E97DF0E6D (subkey B988167F59A3AF8368D55D65A7862FD48B72D83B is specifically used for signing packages)<br />
* '''Keyfile:''' https://repo.taiho.moe/key.asc<br />
<br />
{{bc|<nowiki><br />
[selinux]<br />
Server = https://repo.taiho.moe/$repo<br />
</nowiki>}}<br />
<br />
=== sergej-repo ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#spupykin Sergej Pupykin]<br />
* '''Description:''' psi-plus, owncloud-git, ziproxy, android, MySQL, and other stuff. Some packages also available for armv7h.<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[sergej-repo]<br />
Server = http://repo.p5n.pp.ru/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
=== siosm-aur ===<br />
<br />
* '''Maintainer:''' [https://tim.siosm.fr/about/ Timothee Ravier]<br />
* '''Description:''' packages also available in the Arch User Repository, sometimes with minor fixes<br />
* '''Upstream page:''' https://tim.siosm.fr/repositories/<br />
* '''Key-ID:''' 78688F83<br />
<br />
{{bc|<nowiki><br />
[siosm-aur]<br />
Server = http://siosm.fr/repo/$repo/<br />
</nowiki>}}<br />
<br />
=== slowbro ===<br />
<br />
* '''Maintainer:''' Katelyn Schiesser (slowbro)<br />
* '''Description:''' binary packages for {{AUR|linux-vfio}}<br />
* '''Key-ID:''' [http://pool.sks-keyservers.net/pks/lookup?op=get&search=0xAB3139C285186206 85186206]<br />
<br />
{{bc|<nowiki><br />
[slowbro]<br />
Server = http://www.slowbro.org/arch/$arch/<br />
</nowiki>}}<br />
<br />
=== sublime-text ===<br />
<br />
* '''Maintainer:''' Sublime Text developer<br />
* '''Description:''' Sublime Text editor packages from developer's repository<br />
* '''Upstream page:''' https://www.sublimetext.com/docs/3/linux_repositories.html#pacman<br />
* '''Key-ID:''' 8A8F901A<br />
<br />
{{bc|<nowiki><br />
[sublime-text]<br />
Server = https://download.sublimetext.com/arch/stable/x86_64<br />
</nowiki>}}<br />
<br />
=== subtitlecomposer ===<br />
<br />
* '''Maintainer:''' Mladen Milinkovic (maxrd2)<br />
* '''Description:''' Subtitle Composer stable and nightly builds<br />
* '''Upstream page:''' https://github.com/maxrd2/subtitlecomposer<br />
* '''Key-ID:''' EF9D9B26<br />
<br />
{{bc|<nowiki><br />
[subtitlecomposer]<br />
Server = https://smoothware.net/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== trinity ===<br />
<br />
* '''Maintainer:''' Michael J. Manley <mmanley@ntge.net><br />
* '''Description:''' [[Trinity]] Desktop Environment<br />
* '''Key-ID:''' 5F710C1E<br />
<br />
{{bc|<nowiki><br />
[trinity]<br />
Server = https://repo.nasutek.com/arch/contrib/trinity/x86_64<br />
</nowiki>}}<br />
<br />
=== valveaur ===<br />
<br />
* '''Maintainer:''' John Schoenick <johns@valvesoftware.com> (https://valvesoftware.com)<br />
* '''Description:''' A repository by Valve Software Providing The Linux-fsync kernel and modules, including the futex-wait-multiple patchset for testing with Proton fsync & Mesa with the ACO compiler patchset. <br />
* '''Upstream page:''' https://steamcommunity.com/linux<br />
* '''Key-ID:''' 8DC2CE3A3D245E64<br />
<br />
{{bc|<nowiki><br />
[valveaur]<br />
Server = http://repo.steampowered.com/arch/valveaur<br />
</nowiki>}}<br />
<br />
=== xuanrui ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/xuanruiqi Xuanrui Qi (xuanruiqi)]<br />
* '''Description:''' xuanruiqi's own packages and frequently-used packages, mainly of interest to functional programmers.<br />
* '''Upstream Page:''' https://www.xuanruiqi.com/linux.html<br />
* '''Key-ID:''' 6E06FBC8<br />
<br />
{{bc|<nowiki><br />
[xuanrui]<br />
Server = https://arch.xuanruiqi.com/repo<br />
</nowiki>}}<br />
<br />
=== xyne-x86_64 ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#xyne Xyne]<br />
* '''Description:''' A repository for Xyne's own projects.<br />
* '''Upstream page:''' http://xyne.archlinux.ca/projects/<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[xyne-x86_64]<br />
# Server = https://xyne.archlinux.ca/repos/xyne # It returns error 404 or 406 (varying). Use the line below:<br />
Server = http://xyne.archlinux.ca/bin/repo.php?file=<br />
</nowiki>}}<br />
<br />
=== home-thaodan ===<br />
<br />
* '''Maintainer''': [https://aur.archlinux.org/account/Thaodan Thaodan]<br />
* '''Upstream page''': https://gitlab.com/Thaodan/linux-pf<br />
* '''Description''': [[Kernel#Major_patchsets|pf-kernel]] and other packages by pf-kernel fork developer, Thaodan<br />
* '''Gitlab Project''': https://gitlab.com/Thaodan/repo-home-thaodan-repo<br />
* '''Key-ID:''': BBFE2FD421597395E4FC8C8DF6C85FEE79D661A4<br />
<br />
{{bc|<nowiki><br />
[home-thaodan]<br />
Server = https://thaodan.de/public/archlinux/home-thaodan/$arch<br />
</nowiki>}}<br />
<br />
== Unsigned ==<br />
<br />
{{Note|Users will need to add the following to these entries: {{ic|1=SigLevel = PackageOptional}}}}<br />
<br />
=== alucryd ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#alucryd Maxime Gauduin]<br />
* '''Description:''' Various packages Maxime Gauduin maintains (or not) in the AUR.<br />
<br />
{{bc|<nowiki><br />
[alucryd]<br />
Server = https://pkgbuild.com/~alucryd/$repo/x86_64<br />
</nowiki>}}<br />
<br />
=== alucryd-multilib ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#alucryd Maxime Gauduin]<br />
* '''Description:''' Various packages needed to run Steam without its runtime environment.<br />
<br />
{{bc|<nowiki><br />
[alucryd-multilib]<br />
Server = https://pkgbuild.com/~alucryd/$repo/x86_64<br />
</nowiki>}}<br />
<br />
=== andrwe ===<br />
<br />
* '''Maintainer:''' Andrwe Lord Weber<br />
* '''Description:''' contains programs I'm using on many systems<br />
* '''Upstream page:''' http://andrwe.org/linux/repository<br />
<br />
{{bc|<nowiki><br />
[andrwe]<br />
Server = http://repo.andrwe.org/$arch<br />
</nowiki>}}<br />
<br />
=== archgeotux ===<br />
<br />
* '''Maintainer:''' Samuel Mesa<br />
* '''Description:''' Geospatial and geographic information system applications<br />
* '''Upstream page:''' https://archgeotux.sourceforge.io/<br />
<br />
{{bc|<nowiki><br />
[archgeotux]<br />
Server = https://downloads.sourceforge.net/project/archgeotux/$arch<br />
</nowiki>}}<br />
<br />
=== archlinuxfr ===<br />
<br />
* '''Maintainer:'''<br />
* '''Description:'''<br />
* '''Upstream page:''' http://afur.archlinux.fr<br />
<br />
{{bc|<nowiki><br />
[archlinuxfr]<br />
Server = http://repo.archlinux.fr/$arch<br />
</nowiki>}}<br />
<br />
=== archlinuxgr ===<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' many interesting packages provided by the Hellenic (Greek) Arch Linux community<br />
<br />
{{bc|<nowiki><br />
[archlinuxgr]<br />
Server = http://archlinuxgr.tiven.org/archlinux/$arch<br />
</nowiki>}}<br />
<br />
=== archlinuxgr-kde4 ===<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' KDE4 packages (plasmoids, themes etc) provided by the Hellenic (Greek) Arch Linux community<br />
<br />
{{bc|<nowiki><br />
[archlinuxgr-kde4]<br />
Server = http://archlinuxgr.tiven.org/archlinux-kde4/$arch<br />
</nowiki>}}<br />
<br />
=== aur-av-bin ===<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/milk/ milkii] (ping me on Freenode)<br />
* '''Description:''' Precompiled Arch Linux binary packages of mostly audio and music related software from the AUR.<br />
* '''Upstream page:''' https://github.com/mxmilkb/aur-av-bin<br />
<br />
{{bc|<nowiki><br />
[aur-av-bin]<br />
SigLevel = PackageOptional<br />
Server = https://github.com/mxmilkb/aur-av-bin/releases/download/repository<br />
</nowiki>}}<br />
<br />
=== dx37essentials ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/DragonX256 DragonX256]<br />
* '''Description:''' Personal repository. Contains packages from AUR, which I using every day.<br />
* '''Git repo:''' https://gitlab.com/DX37/dx37essentials<br />
* '''Upstream page:''' https://dx37.gitlab.io/dx37essentials<br />
<br />
{{bc|<nowiki><br />
[dx37essentials]<br />
Server = https://dx37.gitlab.io/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== heftig ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/developers/#heftig Jan Steffens]<br />
* '''Description:''' Includes pulseaudio-git, pavucontrol-git, and firefox-developer-edition<br />
* '''Upstream page:''' https://bbs.archlinux.org/viewtopic.php?id=117157<br />
<br />
{{bc|<nowiki><br />
[heftig]<br />
Server = https://pkgbuild.com/~heftig/repo/$arch<br />
</nowiki>}}<br />
<br />
=== jkanetwork ===<br />
<br />
* '''Maintainer:''' kprkpr <kevin01010 at gmail dot com><br />
* '''Maintainer:''' Joselucross <jlgarrido97 at gmail dot com><br />
* '''Description:''' Packages of AUR like pimagizer,stepmania,yaourt,linux-mainline,wps-office,grub-customizer,some IDE.. Open for all that wants to contribute<br />
* '''Upstream page:''' http://repo.jkanetwork.com/<br />
<br />
{{bc|<nowiki><br />
[jkanetwork]<br />
Server = http://repo.jkanetwork.com/repo/$repo/<br />
</nowiki>}}<br />
<br />
=== juju ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/Juju Juju]<br />
* '''Description:''' Emulators and development tools for some retro computers such as the Commander X16 and the TI-84+, along with some of my packages I maintain on the AUR<br />
* '''Upstream page:''' http://repo.juju2143.ca/<br />
<br />
{{bc|<nowiki><br />
[juju]<br />
Server = https://repo.juju2143.ca/archlinux/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
=== kodi-devel-prebuilt ===<br />
<br />
* '''Maintainer:''' asm0dey <pavel.finkelshtein+AUR@gmail.com><br />
* '''Description:''' Prebuilt packages of kodi-devel from AUR<br />
* '''Upstream page:''' {{AUR|kodi-devel}}<br />
<br />
{{bc|<nowiki><br />
[kodi-devel-prebuilt]<br />
Server = https://asm0dey.github.io/$repo/$arch<br />
SigLevel = PackageOptional<br />
</nowiki>}}<br />
<br />
=== mesa-git ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#lcarlier Laurent Carlier]<br />
* '''Description:''' Mesa git builds for the ''testing'' and ''multilib-testing'' repositories<br />
<br />
{{bc|<nowiki><br />
[mesa-git]<br />
Server = https://pkgbuild.com/~lcarlier/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== oracle ===<br />
<br />
* '''Maintainer:''' [[User:Malvineous]]<br />
* '''Description:''' [[Oracle Database client]] and associated tools, built from AUR packages and hosted on AWS S3 using [https://github.com/Malvineous/archlinux-pacman-repo Makefile scripts].<br />
* '''Conditions:''' By using this repository you agree to the [http://www.oracle.com/technetwork/licenses/instant-client-lic-152016.html Oracle Technology Network Development and Distribution License Terms for Instant Client].<br />
{{bc|<nowiki><br />
[oracle]<br />
Server = http://linux.shikadi.net/arch/$repo/$arch/<br />
</nowiki>}}<br />
<br />
=== ownstuff ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/Martchus Martchus]<br />
* '''Description:''' A lot of packages from the AUR, e.g. a great number packages for mingw-w64 and Android cross compilation, fonts, Perl modules, tools like {{AUR|tageditor}}, {{AUR|syncthingtray}}, {{AUR|subtitlecomposer}} and {{AUR|qmplay2}}<br />
* '''Upstream page''': https://github.com/Martchus/PKGBUILDs (sources beside the AUR) and https://martchus.no-ip.biz/repoindex (package browser/search)<br />
<br />
{{bc|<nowiki><br />
[ownstuff-testing]<br />
Server = https://ftp.f3l.de/~martchus/$repo/os/$arch<br />
Server = https://martchus.no-ip.biz/repo/arch/$repo/os/$arch<br />
<br />
[ownstuff]<br />
Server = https://ftp.f3l.de/~martchus/$repo/os/$arch<br />
Server = https://martchus.no-ip.biz/repo/arch/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
{{Note|The testing repository is supposed to be used together with the official testing repositories.}}<br />
<br />
=== pantheon ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#alucryd Maxime Gauduin]<br />
* '''Description:''' Repository containing Pantheon-related packages<br />
<br />
{{bc|<nowiki><br />
[pantheon]<br />
Server = https://pkgbuild.com/~alucryd/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== pietma ===<br />
<br />
* '''Maintainer:''' MartiMcFly <martimcfly@autorisation.de><br />
* '''Description:''' Arch User Repository packages [https://aur.archlinux.org/packages/?K=martimcfly&SeB=m I create or maintain.].<br />
* '''Upstream page:''' http://pietma.com/tag/aur/<br />
<br />
{{bc|<nowiki><br />
[pietma]<br />
Server = http://repository.pietma.com/nexus/content/repositories/archlinux/$arch/$repo<br />
</nowiki>}}<br />
<br />
=== pnsft-pur ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/ponsfoot ponsfoot]<br />
* '''Description:''' Japanese input method packages Mozc (vanilla) and libkkc<br />
<br />
{{bc|<nowiki><br />
[pnsft-pur]<br />
Server = https://osdn.net/projects/ponsfoot-aur/storage/pur/x86_64/<br />
</nowiki>}}<br />
<br />
=== stx4 ===<br />
<br />
* '''Maintainer:''' StarterX4 <starterx4[at]gmail.com><br />
* '''Description:''' Any – some fonts and fakepkgs; x86_64 – archived yet might useful packages (like PacmanXG4) and some AUR soft (like OpenBoard).<br />
* '''Upstream Page:''' https://keybase.pub/starterx4/repos/arch/<br />
<br />
{{bc|<nowiki><br />
[stx4-any]<br />
SigLevel = Never<br />
Server = https://starterx4.keybase.pub/repos/arch/any/stx4<br />
<br />
[stx4-x86_64]<br />
SigLevel = Never<br />
Server = https://starterx4.keybase.pub/repos/arch/x86_64/stx4<br />
</nowiki>}}<br />
<br />
=== titanium ===<br />
<br />
* '''Maintainer:''' Pyrerune <pyrerune@gmail.com><br />
* '''Description:''' Repository containing software I develop.<br />
{{bc|<nowiki><br />
[titanium]<br />
Server = https://pyrerune.github.io/titanium/$arch<br />
</nowiki>}}<br />
<br />
=== userrepository ===<br />
<br />
* '''Maintainer:''' [https://twitter.com/brunomiguel Bruno Miguel] <brunoalexandremiguel@gmail.com><br />
* '''Description:''' Repository containing software from AUR<br />
{{bc|<nowiki><br />
[userrepository]<br />
Server = https://userrepository.eu<br />
</nowiki>}}<br />
<br />
== Packages Search ==<br />
Most of unofficial Arch Linux repositories are indexed on https://archlinux.pkgs.org/.<br />
<br />
It provides repositories browser and packages search.</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=KDE&diff=542150KDE2018-09-19T12:42:12Z<p>Lordheavy: typo</p>
<hr />
<div>[[Category:KDE]]<br />
[[ar:KDE]]<br />
[[cs:KDE]]<br />
[[de:Plasma]]<br />
[[es:KDE]]<br />
[[fa:KDE]]<br />
[[fr:KDE]]<br />
[[it:KDE]]<br />
[[ja:KDE]]<br />
[[pl:KDE]]<br />
[[ru:KDE]]<br />
[[zh-hans:KDE]]<br />
[[zh-hant:KDE]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Display manager}}<br />
{{Related|Window manager}}<br />
{{Related|Qt}}<br />
{{Related|SDDM}}<br />
{{Related|Dolphin}}<br />
{{Related|KDE Wallet}}<br />
{{Related|KDevelop}}<br />
{{Related|Trinity}}<br />
{{Related|Uniform Look for Qt and GTK Applications}}<br />
{{Related articles end}}<br />
<br />
KDE is a software project currently comprising of a [[desktop environment]] known as Plasma, a collection of libraries and frameworks (KDE Frameworks) and several applications (KDE Applications) as well. KDE upstream has a well maintained [https://userbase.kde.org/ UserBase wiki]. Detailed information about most KDE applications can be found there.<br />
<br />
== Installation ==<br />
<br />
=== Plasma ===<br />
<br />
Before installing Plasma, make sure you have a working [[Xorg]] installation on your system.<br />
<br />
[[Install]] the {{Pkg|plasma-meta}} meta-package or the {{Grp|plasma}} group. For differences between {{Pkg|plasma-meta}} and {{Grp|plasma}} reference [[Creating packages#Meta packages and groups]]. Alternatively, for a more minimal Plasma installation, install the {{Pkg|plasma-desktop}} package.<br />
<br />
To enable support for [[Wayland]] in Plasma, also install the {{Pkg|plasma-wayland-session}} package.<br />
<br />
=== KDE applications ===<br />
<br />
To install the full set of KDE Applications, install the {{Grp|kde-applications}} group or the {{Pkg|kde-applications-meta}} meta-package. Note that this will only install applications, it will not install any version of Plasma.<br />
<br />
=== Unstable releases ===<br />
<br />
See [[Official repositories#kde-unstable]]<br />
<br />
== Starting Plasma ==<br />
{{Note|Although it is possible to launch Plasma under [[Wayland]], there are some missing features and known problems as of Plasma 5.13. See the [https://community.kde.org/Plasma/5.13_Errata#Wayland Plasma 5.13 Errata] for a list of issues and the [https://phabricator.kde.org/project/board/99/ Plasma on Wayland workboard] for the current state of development. Use [[Xorg]] for the most complete and stable experience.}}<br />
<br />
Plasma can be started either using a [[display manager]], or from the console.<br />
<br />
=== Using a display manager ===<br />
<br />
* Select ''Plasma'' to launch a new session in [[Xorg]].<br />
* [[Install]] {{Pkg|plasma-wayland-session}} and select ''Plasma (Wayland)'' to launch a new session in [[Wayland]].<br />
<br />
{{Note|The [[NVIDIA]] proprietary driver implementation for Wayland requires EGLStreams. KDE have not implemented EGLStreams in their Wayland [https://blog.martin-graesslin.com/blog/2016/09/to-eglstream-or-not implementation]. The following workarounds are available:<br />
*Using the [[Nouveau]] driver.<br />
*Using the (default) Xorg session.<br />
}}<br />
<br />
=== From the console ===<br />
<br />
To start Plasma with [[xinit|xinit/startx]], append {{ic|exec startkde}} to your {{ic|.xinitrc}} file. If you want to start Xorg at login, please see [[Start X at login]]. To start a Plasma on Wayland session from a console, run {{ic|1=export XDG_SESSION_TYPE=wayland && export $(dbus-launch) && startplasmacompositor}}.[https://community.kde.org/KWin/Wayland#Start_a_Plasma_session_on_Wayland]<br />
<br />
== Configuration ==<br />
<br />
Most settings for KDE applications are stored in {{ic|~/.config/}}. However, configuring KDE is primarily done through the '''System Settings''' application. It can be started from a terminal by executing {{ic|systemsettings5}}.<br />
<br />
=== Personalization ===<br />
<br />
==== Plasma desktop ====<br />
<br />
===== Themes =====<br />
<br />
[https://store.kde.org/browse/cat/104/ Plasma themes] define the look of panels and plasmoids. For easy system-wide installation, some themes are available in both the official repositories and the [https://aur.archlinux.org/packages.php?K=plasma+theme AUR].<br />
<br />
Plasma themes can also be installed through ''System Settings > Workspace Theme > Desktop Theme > Get new Themes''.<br />
<br />
The [https://store.kde.org/ KDE-Store] offers more Plasma customization's, like [[SDDM]] themes and splash-screens.<br />
<br />
====== Qt and GTK+ Applications Appearance ======<br />
<br />
{{Tip|For Qt and GTK theme consistency, see [[Uniform look for Qt and GTK applications]].}}<br />
<br />
; Qt4<br />
Breeze is not directly available for Qt4 since it cannot be built without KDE 4 packages, which have been dropped from the extra repository in August 2018 ({{Bug|59784}}). However you can install {{Pkg|breeze-gtk}} and pick GTK+ as GUI Style by running {{ic|qtconfig-qt4}}.<br />
<br />
; GTK+<br />
<br />
The recommended theme for a pleasant appearance in GTK+ applications is {{Pkg|breeze-gtk}} or {{AUR|gnome-breeze-git}}, a GTK+ theme designed to mimic the appearance of Plasma's Breeze theme.<br />
Install {{Pkg|kde-gtk-config}} (part of the {{grp|plasma}} group) and select the installed GTK-theme for GTK2/GTK3-Theme in ''System Settings > Application Style > GNOME Application Style''.<br />
<br />
In some themes, tooltips in GTK+ applications have white text on white backgrounds making it difficult to read. To change the colors in GTK2 applications, find the section for tooltips in the {{ic|.gtkrc-2.0}} file and change it. For GTK3 application two files need to be changed, {{ic|gtk.css}} and {{ic|settings.ini}}.<br />
It might also help to uncheck the option to ''Apply colors to non-Qt applications'' under ''System Settings'' > ''Colors''.<br />
<br />
Some GTK2 programs like {{AUR|vuescan-bin}} still look hardly usable due to invisible checkboxes with the Breeze or Adwaita skin in a Plasma session. To workaround this, install and select e.g. the Numix-Frost-Light skin of the {{AUR|numix-frost-themes}} under ''System Settings'' > ''Application Style'' > ''GNOME Application Style (GTK)'' > ''Select a GTK2 Theme:''. Numix-Frost-Light looks similar to Breeze.<br />
<br />
===== Widgets =====<br />
<br />
Plasmoids are little scripted (plasmoid scripts) or coded (plasmoid binaries) KDE applications designed to enhance the functionality of your desktop.<br />
<br />
The easiest way to install plasmoid scripts is by right-clicking onto a panel or the desktop and choosing ''Add Widgets > Get new widgets > Download New Plasma Widgets''. This will present a nice frontend for https://store.kde.org/ that allows you to install, uninstall, or update third-party plasmoid scripts with literally just one click.<br />
<br />
Many Plasmoid binaries are available from the [https://aur.archlinux.org/packages.php?K=plasmoid AUR].<br />
<br />
===== Sound applet in the system tray =====<br />
<br />
[[Install]] {{Pkg|plasma-pa}} or {{Pkg|kmix}} (start Kmix from the Application Launcher). {{Pkg|plasma-pa}} is now installed by default with {{Grp|plasma}}, no further configuration needed.<br />
<br />
{{Note|1=To adjust the [https://bugs.kde.org/show_bug.cgi?id=313579#c28 step size of volume increments/decrements], add e.g. {{ic|1=VolumePercentageStep=1}} in the {{ic|[Global]}} section of {{ic|~/.config/kmixrc}}.}}<br />
<br />
===== Disable panel shadow =====<br />
<br />
As the Plasma panel is on top of other windows, its shadow is drawn over them. [https://bbs.archlinux.org/viewtopic.php?pid=1228394#p1228394] To disable this behaviour without impacting other shadows, [[install]] {{Pkg|xorg-xprop}} and run:<br />
<br />
$ xprop -remove _KDE_NET_WM_SHADOW<br />
<br />
then select the panel with the plus-sized cursor. [https://forum.kde.org/viewtopic.php?f=285&t=121592] For automation, install {{Pkg|xorg-xwininfo}} and create the following script:<br />
<br />
{{hc|/usr/local/bin/kde-no-shadow|<nowiki><br />
#!/bin/bash<br />
for WID in $(xwininfo -root -tree | sed '/"Plasma": ("plasmashell" "plasmashell")/!d; s/^ *\([^ ]*\) .*/\1/g'); do<br />
xprop -id $WID -remove _KDE_NET_WM_SHADOW<br />
done<br />
</nowiki>}}<br />
<br />
Set execution permissions for the script:<br />
<br />
# chmod 755 /usr/local/bin/kde-no-shadow<br />
<br />
The script can be run on login with ''Add Script'' in ''Autostart'':<br />
<br />
$ kcmshell5 autostart<br />
<br />
==== Window decorations ====<br />
<br />
[https://store.kde.org/browse/cat/114/ Window decorations] can be changed in ''System Settings > Application Style > Window Decorations''.<br />
<br />
There you can also directly download and install more themes with one click, and some are available in the [https://aur.archlinux.org/packages.php?K=kde+window+decoration AUR].<br />
<br />
==== Icon themes ====<br />
<br />
Icon themes can be installed and changed on ''System Settings > Icons''.<br />
<br />
{{Note|Although all modern Linux desktops share the same icon theme format, desktops like [[GNOME]] use fewer icons (esp. in menus and toolbars). Themes developed for such desktops usually lack icons required by Plasma and KDE apps. It is recommended to install Plasma compatible icon themes instead.}}<br />
<br />
{{Tip|Since some icon themes do not inherit from the default icon theme, some icons may be missing. <br />
To inherit from the Breeze, add {{ic|breeze}} to the {{ic|1=Inherits=}} array in {{ic|/usr/share/icon/''theme-name''/index.theme}}, for example: {{ic|1=Inherits=breeze,hicolor}}. You need to reapply this patch after every update to the icon theme, consider using [[Pacman hooks]] to automate the process.}}<br />
<br />
==== Space efficiency ====<br />
<br />
The Plasma Netbook shell has been dropped from Plasma 5, see the following [https://forum.kde.org/viewtopic.php?f=289&t=126631&p=335947&hilit=plasma+netbook#p335899 KDE forum post]. However, you can achieve something similar by editing the file {{ic|~/.config/kwinrc}} adding {{ic|1=BorderlessMaximizedWindows=true}} in the {{ic|[Windows]}} section.<br />
<br />
==== Thumbnail generation ====<br />
<br />
To allow thumbnail generation for media or document files on the desktop and in Dolphin, install {{Pkg|kdegraphics-thumbnailers}}, {{Pkg|ffmpegthumbs}} and {{AUR|kde-thumbnailer-odf}}.<br />
<br />
Then enable the thumbnail categories for the desktop via ''right click'' on the ''desktop background'' > ''Configure Desktop'' > ''Icons'' > ''More Preview Options...''.<br />
<br />
In ''Dolphin'', navigate to ''Control'' > ''General'' > ''Previews''.<br />
<br />
=== Printing ===<br />
<br />
{{Tip|Use the [[CUPS]] web interface for faster configuration. Printers configured in this way can be used in KDE applications. }}<br />
<br />
You can also configure printers in ''System Settings > Printers''. To use this method, you must first install {{Pkg|print-manager}} and {{Pkg|cups}}. See [[CUPS#Configuration]].<br />
<br />
=== Samba/Windows support ===<br />
<br />
If you want to have access to Windows services, install [[Samba]] (package {{Pkg|samba}}).<br />
<br />
The Dolphin share functionality requires the package {{Pkg|kdenetwork-filesharing}} and usershares, which the stock {{ic|smb.conf}} does not have enabled. Instructions to add them are in [[Samba#Enable usershares]], after which sharing in Dolphin should work out of the box after restarting Samba.<br />
<br />
{{Tip|Use {{ic|*}} (asterisk) for both username and password when accessing a Windows share without authentification in Dolphin's prompt.}}<br />
<br />
Unlike GTK file browsers which utilize GVfs also for the launched program, opening files from Samba shares in Dolphin via KIO makes Plasma copy the whole file to the local system first with most programs (VLC is an exception).<br />
To workaround this, you can use a GTK based file browser like {{Pkg|thunar}} with {{Pkg|gvfs}} and {{Pkg|gvfs-smb}} (and {{Pkg|gnome-keyring}} for saving login credentials) to access SMB shares in a more able way.<br />
<br />
Another possibility is to [[mount]] a Samba share via {{Pkg|cifs-utils}} to make it look to Plasma like if the SMB share was just a normal local folder and thus can be accessed normally.<br />
See [[Samba#Manual mounting]] and [[Samba#Automatic mounting]].<br />
<br />
An GUI solution is available with {{AUR|samba-mounter-git}}, which offers basically the same functionality via an easy to use option located at ''System Settings'' > ''Network Drivers''. However, it might break with new KDE Plasma versions.<br />
<br />
=== KDE Desktop activities ===<br />
<br />
[https://userbase.kde.org/Plasma#Activities KDE Desktop Activities] are special workspaces where you can select specific settings for each activity that apply only when you are using said activity.<br />
<br />
=== Power saving ===<br />
<br />
[[Install]] {{Pkg|powerdevil}} for an integrated power saving service called "'''Powerdevil Power Management'''", that may adjust the power saving profile of the system and/or the brightness of the screen (if supported).<br />
<br />
{{Accuracy|Regarding the note below, it might be that the problem is the logind setting ''LidSwitchIgnoreInhibited'' which defaults to ''yes''. [https://bbs.archlinux.org/viewtopic.php?pid&#61;1649022#p1649022]}}<br />
<br />
{{Note|Powerdevil may not [[Power management#Power managers|inhibit]] all logind settings (such as the lid close action for laptops). In these cases, the logind setting itself will need to be changed - see [[Power management#Power management with systemd]].}}<br />
<br />
=== Autostart ===<br />
<br />
Plasma can autostart applications and run scripts on startup and shutdown. To autostart an application, navigate to ''System Settings > Startup and Shutdown > Autostart'' and add the program or shell script of your choice. For applications, a ''.desktop'' file will be created, for shell scripts, a symlink will be created.<br />
<br />
{{Note|<br />
* Programs can be autostarted on login only, whilst shell scripts can also be run on shutdown or even before Plasma itself starts.<br />
* Shell scripts will only be run if they are marked [[executable]].<br />
}}<br />
<br />
* Place [[Desktop entries]] (i.e. ''.desktop'' files) in the appropriate [[XDG Autostart]] directory.<br />
<br />
* Place or symlink shell scripts in one of the following directories:<br />
<br />
:; {{ic|~/.config/plasma-workspace/env/}}: for executing scripts at login before launching Plasma.<br />
:; {{ic|~/.config/autostart-scripts/}}: for executing scripts at login.<br />
:; {{ic|~/.config/plasma-workspace/shutdown/}}: for executing scripts on shutdown.<br />
<br />
=== Phonon ===<br />
<br />
From [[Wikipedia:Phonon (software)|Wikipedia]]:<br />
<br />
:Phonon is the multimedia API provided by KDE and is the standard abstraction for handling multimedia streams within KDE software and also used by several Qt applications.<br />
<br />
:Phonon was originally created to allow KDE and Qt software to be independent of any single multimedia framework such as GStreamer or xine and to provide a stable API for a major version's lifetime.<br />
<br />
Phonon is being widely used within KDE, for both audio (e.g., the System notifications or KDE audio apps) and video (e.g., the [[Dolphin]] video thumbnails).<br />
<br />
==== Which backend should I choose? ====<br />
<br />
You can choose between backends based on [[GStreamer]] and [[VLC]] – each available in versions for Qt4 applications and Qt5 applications ({{AUR|phonon-qt4-gstreamer}}, {{Pkg|phonon-qt5-gstreamer}} – {{AUR|phonon-qt4-vlc}}, {{Pkg|phonon-qt5-vlc}}).<br />
<br />
[https://www.phoronix.com/scan.php?page=news_item&px=MTUwNDM Upstream prefers VLC] but prominent Linux distributions (Kubuntu and Fedora-KDE for example) prefer GStreamer because that allows them to easily leave out patented MPEG codecs from the default installation. Both backends have a slightly different [https://community.kde.org/Phonon/FeatureMatrix features set]. The Gstreamer backend has some optional codec dependency, install them as needed:<br />
<br />
* {{Pkg|gst-libav}} — Libav codecs.<br />
* {{Pkg|gst-plugins-good}} — PulseAudio support and additional codecs.<br />
* {{Pkg|gst-plugins-ugly}} — additional codecs.<br />
* {{Pkg|gst-plugins-bad}} — additional codecs.<br />
<br />
In the past other backends were developed as well but are no longer maintained and their AUR packages have been deleted.<br />
<br />
{{Note|1=<br><br />
* Multiple backends can be installed at once and prioritized at ''System Settings > Multimedia > Audio and Video > Backend''.<br />
* According to the [https://forum.kde.org/viewtopic.php?f=250&t=126476&p=335080 KDE forums], the VLC backend lacks support for [[wikipedia:ReplayGain|ReplayGain]].<br />
* If using the VLC backend, you may experience crashes every time Plasma wants to send you an audible warning and in quite a number of other cases as well [https://forum.kde.org/viewtopic.php?f=289&t=135956]. A possible fix is to rebuild the VLC plugins cache:<br />
{{bc|# /usr/lib/vlc/vlc-cache-gen /usr/lib/vlc/plugins}}<br />
}}<br />
<br />
== Applications ==<br />
<br />
The KDE project provides a suite of applications that integrate with the Plasma desktop. See the {{Grp|kde-applications}} group for a full listing of the available applications. Also see [[:Category:KDE]] for related KDE application pages.<br />
<br />
Aside from the programs provided in KDE Applications, there are many other applications available that can complement the Plasma desktop. Some of these are discussed below.<br />
<br />
=== System administration ===<br />
<br />
==== Terminate Xorg server through KDE System Settings ====<br />
<br />
Navigate to the submenu ''System Settings > Input Devices > Keyboard > Advanced (tab) > "Key Sequence to kill the X server"'' and ensure that the checkbox is ticked.<br />
<br />
==== KCM ====<br />
<br />
KCM stands for '''KC'''onfig '''M'''odule. KCMs can help you configure your system by providing interfaces in System Settings, or through the command line with ''kcmshell5''.<br />
<br />
* {{App|kde-gtk-config|GTK2 and GTK3 Configurator for KDE.|https://cgit.kde.org/kde-gtk-config.git|{{Pkg|kde-gtk-config}}}}<br />
* {{App|System policies|Set of configuration modules which allows administrator to change [[PolicyKit]] settings.|https://cgit.kde.org/polkit-kde-kcmodules-1.git|{{AUR|kcm-polkit-kde-git}}}}<br />
* {{App|wacom tablet|KDE GUI for the Wacom Linux Drivers.|https://www.linux-apps.com/p/1127862/|{{Pkg|kcm-wacomtablet}}}}<br />
* {{App|Kcmsystemd|systemd control module for KDE.|https://github.com/rthomsen/kcmsystemd|{{AUR|systemd-kcm}}}}<br />
<br />
More KCMs can be found at [https://www.linux-apps.com/search?projectSearchText=KCM linux-apps.com].<br />
<br />
=== Desktop search ===<br />
<br />
KDE implements desktop search with a software called [[Baloo]], a file indexing and searching solution.<br />
<br />
=== Web browsers ===<br />
<br />
The following web browsers can integrate with Plasma:<br />
<br />
* {{App|[[Wikipedia:Konqueror|Konqueror]]|Part of the KDE project, supports two rendering engines – KHTML and the [[Chromium]]-based Qt WebEngine.|https://konqueror.org/|{{Pkg|konqueror}}}}<br />
* {{App|[[Wikipedia:Falkon|Falkon]]|A Qt web browser with Plasma integration features, previously known as Qupzilla. It uses Qt WebEngine.|https://userbase.kde.org/Falkon/|{{Pkg|falkon}}}}<br />
* {{App|[[Chromium]]|Chromium and its proprietary variant Google Chrome have limited Plasma integration. [[KDE Wallet#KDE Wallet for Chrome and Chromium|They can use KWallet]] and KDE Open/Save windows.|https://www.chromium.org/|{{Pkg|chromium}}}}<br />
* {{App|[[Firefox]]|Firefox can be configured to better integrate with Plasma. See [[Firefox#KDE/GNOME integration|Firefox KDE integration]] for details.|https://mozilla.org/firefox|{{Pkg|firefox}}}}<br />
<br />
{{Tip|Starting from Plasma 5.13, one can integrate [[Firefox]] or [[Chrome]] with Plasma: providing media playback control from the Plasma tray, download notifications and find open tabs in KRunner. [[Install]] {{pkg|plasma-browser-integration}} and the corresponding browser add-on. Chrome/Chromium support should already be included, for Firefox add-on see [[Firefox#KDE/GNOME integration]].}}<br />
<br />
=== PIM ===<br />
<br />
KDE offers its own stack for personal information management. This includes emails, contacts, calendar, etc. To install all the PIM packages, you could use the meta-package {{Pkg|kdepim-meta}}.<br />
<br />
==== Akonadi ====<br />
<br />
Akonadi is a system meant to act as a local cache for PIM data, regardless of its origin, which can be then used by other applications. This includes the user's emails, contacts, calendars, events, journals, alarms, notes, and so on. Akonadi does not store any data by itself: the storage format depends on the nature of the data (for example, contacts may be stored in vCard format).<br />
<br />
Install {{Pkg|akonadi}}. For additional addons, install {{Pkg|kdepim-addons}}.<br />
<br />
{{Note|If you wish to use a database engine other than [[MySQL]], then when installing the {{Pkg|akonadi}} package, use the following command to skip installing the {{Pkg|mariadb}} dependencies:<br />
<br />
# pacman -S akonadi --assume-installed mariadb<br />
<br />
See also {{Bug|32878}}.<br />
}}<br />
<br />
===== PostgreSQL =====<br />
<br />
[[Install]] {{Pkg|postgresql}}.<br />
<br />
To use [[PostgreSQL]] edit Akonadi configuration file so that it has the following contents:<br />
<br />
{{hc|~/.config/akonadi/akonadiserverrc|<nowiki><br />
[%General]<br />
Driver=QPSQL<br />
<br />
[QPSQL]<br />
Host=<br />
InitDbPath=/usr/bin/initdb<br />
Name=akonadi<br />
ServerPath=/usr/bin/pg_ctl<br />
StartServer=true<br />
</nowiki>}}<br />
<br />
{{Note|The value for {{ic|1=Host=}} will get set by Akonadi when it starts for the first time.}}<br />
<br />
Start Akonadi with {{ic|akonadictl start}}, and check its status: {{ic|akonadictl status}}.<br />
<br />
===== SQLite =====<br />
<br />
To use [[SQLite]] edit Akonadi configuration file to match the configuration below:<br />
<br />
{{hc|~/.config/akonadi/akonadiserverrc|2=<br />
[%General]<br />
Driver=QSQLITE3<br />
<br />
[QSQLITE3]<br />
Name=/home/''username''/.local/share/akonadi/akonadi.db<br />
}}<br />
<br />
===== Disabling Akonadi =====<br />
<br />
See this [https://userbase.kde.org/Akonadi#Disabling_the_Akonadi_subsystem section in the KDE userbase].<br />
<br />
=== KDE Telepathy ===<br />
<br />
[https://community.kde.org/KTp KDE Telepathy] is a project with the goal to closely integrate Instant Messaging with the KDE desktop. It utilizes the Telepathy framework as a backend and is intended to replace Kopete.<br />
<br />
To install all Telepathy protocols, install the {{Grp|telepathy}} group.<br />
To use the KDE Telepathy client, install the {{Pkg|telepathy-kde-meta}} package that includes all the packages contained in the {{Grp|telepathy-kde}} group.<br />
<br />
==== Use Telegram with KDE Telepathy ====<br />
<br />
[[Telegram]] protocol is available using {{pkg|telepathy-haze}}, installing {{aur|telegram-purple}} or {{aur|telegram-purple-git}} and {{aur|telepathy-morse-git}}. The username is the Telegram account telephone number (complete with the national prefix {{ic|+''xx''}}, e.g. {{ic|+49}} for Germany).<br />
<br />
The configuration through the GUI may be tricky: if the phone number is not accepted when configuring a new account in the KDE Telepathy client (with an error message complaining about an invalid parameter which prevents the account creation), insert it between single quotes and then remove the quotes manually from the configuration file ({{ic|~/.local/share/telepathy/mission-control/accounts.cfg}}) after the account creation (if the quotes are not removed after, an authentication error should rise).<br />
<br />
{{Note|The configuration file should be edited manually when KDE Telepathy is not running, e.g. when there is no KDE desktop session active, otherwise manual changes may be overwritten by the software.}}<br />
<br />
=== KDE Connect ===<br />
<br />
[https://community.kde.org/KDEConnect KDE Connect] provides several features to connect your [[Android]] phone with your Linux desktop:<br />
<br />
* Share files and URLs to/from KDE from/to any app, without wires.<br />
* Touchpad emulation: Use your phone screen as your computer's touchpad.<br />
* Notifications sync (4.3+): Read your Android notifications from the desktop.<br />
* Shared clipboard: copy and paste between your phone and your computer.<br />
* Multimedia remote control: Use your phone as a remote for Linux media players.<br />
* WiFi connection: no usb wire or bluetooth needed.<br />
* RSA Encryption: your information is safe.<br />
<br />
You will need to install KDE Connect both on your computer and on your Android. For PC side, [[install]] {{Pkg|kdeconnect}} package. For Android side, install KDE Connect from [https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp Google Play] or from [https://f-droid.org/packages/org.kde.kdeconnect_tp/ F-Droid].<br />
<br />
It is possible to use KDE Connect even if you do not use the Plasma desktop. For desktop environments that use AppIndicators, such as Unity, install {{AUR|indicator-kdeconnect}} package as well. For GNOME users, better integration can be achieved by installing {{AUR|gnome-shell-extension-gsconnect}} instead of {{Pkg|kdeconnect}}.<br />
<br />
== Tips and tricks ==<br />
<br />
=== Use a different window manager ===<br />
<br />
The component chooser settings in Plasma does not allow changing the window manager anymore. [https://github.com/KDE/plasma-desktop/commit/2f83a4434a888cd17b03af1f9925cbb054256ade]<br />
In order to change the window manager used you need to set the {{ic|KDEWM}} [[environment variable]] before KDE startup. [https://wiki.haskell.org/Xmonad/Using_xmonad_in_KDE] To do that you can create a script called {{ic|set_window_manager.sh}} in {{ic|~/.config/plasma-workspace/env/}} and export the {{ic|KDEWM}} variable there. For example to use the i3 window manager :<br />
<br />
{{hc|~/.config/plasma-workspace/env/set_window_manager.sh|2=<br />
export KDEWM=/usr/bin/i3<br />
}}<br />
<br />
And then make it executable :<br />
<br />
{{bc|$ chmod +x ~/.config/plasma-workspace/env/set_window_manager.sh}}<br />
<br />
==== KDE/Openbox session ====<br />
<br />
The {{Pkg|openbox}} package provides a session for using KDE with [[Openbox]]. To make use of this session, select ''KDE/Openbox'' from the [[display manager]] menu.<br />
<br />
For those starting the session manually, add the following line to your [[xinit]] configuration:<br />
<br />
{{hc|~/.xinitrc|<br />
exec openbox-kde-session<br />
}}<br />
<br />
==== Re-enabling compositing effects ====<br />
<br />
When replacing Kwin with a window manager which does not provide a Compositor (such as Openbox), any desktop compositing effects e.g. transparency will be lost. In this case, install and run a separate Composite manager to provide the effects such as [[Xcompmgr]] or [[Compton]].<br />
<br />
=== Configuring monitor resolution / multiple monitors ===<br />
<br />
To enable display resolution management and multiple monitors in Plasma, install {{Pkg|kscreen}}. This adds the additional options to ''System Settings > Display and Monitor''.<br />
<br />
=== Disable opening application launcher with Super key (Windows key) ===<br />
<br />
To disable this feature you currently can run the following command:<br />
<br />
$ kwriteconfig5 --file kwinrc --group ModifierOnlyShortcuts --key Meta ""<br />
<br />
== Troubleshooting ==<br />
<br />
=== Fonts ===<br />
<br />
==== Fonts in a Plasma session look poor ====<br />
<br />
Try installing the {{Pkg|ttf-dejavu}} and {{Pkg|ttf-liberation}} packages.<br />
<br />
After the installation, be sure to log out and back in. You should not have to modify anything in ''System Settings > Fonts''. If you are using {{Pkg|qt5ct}}, the settings in Qt5 Configuration Tool may override the font settings in System Settings.<br />
<br />
If you have personally set up how your [[Fonts]] render, be aware that System Settings may alter their appearance. When you go ''System Settings > Fonts'' System Settings will likely alter your font configuration file ({{ic|fonts.conf}}).<br />
<br />
There is no way to prevent this, but, if you set the values to match your {{ic|fonts.conf}} file, the expected font rendering will return (it will require you to restart your application or in a few cases restart your desktop). Note that Gnome's Font Preferences also does this.<br />
<br />
==== Fonts are huge or seem disproportional ====<br />
<br />
Try to force font DPI to {{ic|'''96'''}} in ''System Settings > Fonts''.<br />
<br />
If that does not work, try setting the DPI directly in your Xorg configuration as documented in [[Xorg#Setting DPI manually]].<br />
<br />
=== Configuration related ===<br />
<br />
Many problems in KDE are related to its configuration.<br />
<br />
==== Plasma desktop behaves strangely ====<br />
<br />
Plasma problems are usually caused by unstable ''Plasma widgets'' (colloquially called ''plasmoids'') or ''Plasma themes''. First, find which was the last widget or theme you had installed and disable or uninstall it.<br />
<br />
So, if your desktop suddenly exhibits "locking up", this is likely caused by a faulty installed widget. If you cannot remember which widget you installed before the problem began (sometimes it can be an irregular problem), try to track it down by removing each widget until the problem ceases. Then you can uninstall the widget, and file a bug report on the [https://bugs.kde.org/ KDE bug tracker] '''only if it is an official widget'''. If it is not, it is recommended to find the entry on the [https://store.kde.org/ KDE Store] and inform the developer of that widget about the problem (detailing steps to reproduce, etc.).<br />
<br />
If you cannot find the problem, but you do not want ''all'' the settings to be lost, navigate to {{ic|~/.config/}} and run the following command:<br />
<br />
$ for j in plasma*; do mv -- "$j" "${j%}.bak"; done<br />
<br />
This command will rename '''all''' Plasma related configuration files to ''*.bak'' (e.g. {{ic|plasmarc.bak}}) of your user and when you will relogin into Plasma, you will have the default settings back. To undo that action, remove the ''.bak'' file extension. If you already have ''*.bak'' files, rename, move, or delete them first. It is highly recommended that you create regular backups anyway. See [[Synchronization and backup programs]] for a list of possible solutions.<br />
<br />
==== Clean cache to resolve upgrade problems ====<br />
<br />
The [https://bbs.archlinux.org/viewtopic.php?id=135301 problem] may be caused by old cache. Sometimes, after an upgrade, the old cache might introduce strange, hard to debug behaviour such as unkillable shells, hangs when changing various settings, Ark being unable to extract archives or Amarok not recognizing any of your music. This solution can also resolve problems with KDE and Qt applications looking bad after an update.<br />
<br />
Rebuild the cache using the following commands:<br />
<br />
$ rm ~/.config/Trolltech.conf<br />
$ kbuildsycoca5 --noincremental<br />
<br />
Optionally, empty the {{ic|~/.cache/}} folder contents, however, this will also clear the cache of other applications:<br />
<br />
$ rm -rf ~/.cache/*<br />
<br />
=== Graphical problems ===<br />
<br />
Make sure you have the proper driver for your GPU installed. See [[Xorg#Driver installation]] for more information. If you have an older card, it might help to [[#Disable desktop effects manually or automatically for defined applications]] or [[#Disable compositing]].<br />
<br />
==== Getting current state of KWin for support and debug purposes ====<br />
<br />
This command prints out a summary of the current state of KWin including used options, used compositing backend and relevant OpenGL driver capabilities. See more on [https://blog.martin-graesslin.com/blog/2012/03/on-getting-help-for-kwin-and-helping-kwin/ Martin's blog].<br />
<br />
$ qdbus org.kde.KWin /KWin supportInformation<br />
<br />
==== Disable desktop effects manually or automatically for defined applications ====<br />
<br />
Plasma has desktop effects enabled by default and e.g. not every game will disable them automatically. You can disable desktop effects in ''System Settings > Desktop Behavior > Desktop Effects'' and you can toggle desktop effects with {{ic|Alt+Shift+F12}}. <br />
<br />
Additionally, you can create custom KWin rules to automatically disable/enable compositing when a certain application/window starts under ''System Settings > Window Management > Window Rules''.<br />
<br />
==== Disable compositing ====<br />
<br />
In ''System Settings > Display and Monitor'', uncheck ''Enable compositor on startup'' and restart Plasma.<br />
<br />
==== Flickering in fullscreen when compositing is enabled ====<br />
<br />
In ''System Settings > Display and Monitor > Compositor'', uncheck ''Allow applications to block compositing''. This may harm performance.<br />
<br />
==== Screen tearing with NVIDIA ====<br />
<br />
See [[NVIDIA/Troubleshooting#Avoid screen tearing in KDE (KWin)]].<br />
<br />
==== Plasma cursor sometimes shown incorrectly ====<br />
<br />
Create the directory {{ic|~/.icons/default}} and inside a file named {{ic|index.theme}} with the following contents:<br />
<br />
{{hc|~/.icons/default/index.theme|2=<br />
[Icon Theme]<br />
Inherits=breeze_cursors<br />
}}<br />
<br />
Execute the following command:<br />
<br />
$ ln -s /usr/share/icons/breeze_cursors/cursors ~/.icons/default/cursors<br />
<br />
=== Sound problems ===<br />
<br />
{{Note|First make sure you have {{Pkg|alsa-utils}} installed.}}<br />
<br />
==== No sound after suspend ====<br />
<br />
If there is no sound after suspending and if KMix does not show audio devices which should be there, restarting plasmashell and pulseaudio may help:<br />
<br />
$ killall plasmashell<br />
$ systemctl --user restart pulseaudio.service<br />
$ plasmashell<br />
<br />
Some applications may also need to be restarted in order for sound to play from them again.<br />
<br />
==== MP3 files cannot be played when using the GStreamer Phonon backend ====<br />
<br />
This can be solved by installing the GStreamer libav plugin (package {{Pkg|gst-libav}}). If you still encounter problems, you can try changing the Phonon backend used by installing another such as {{AUR|phonon-qt4-vlc}} or {{Pkg|phonon-qt5-vlc}}.<br />
<br />
Then, make sure the backend is preferred via ''System Settings > Multimedia > Audio and Video > Backend''.<br />
<br />
=== Power management ===<br />
<br />
==== No Suspend/Hibernate options ====<br />
<br />
If your system is able to suspend or hibernate using [[systemd]] but do not have these options shown in KDE, make sure {{Pkg|powerdevil}} is installed.<br />
<br />
=== KMail ===<br />
<br />
==== Clean akonadi configuration to fix KMail ====<br />
<br />
First, make sure that KMail is not running. Then backup configuration:<br />
<br />
$ cp -a ~/.local/share/akonadi ~/.local/share/akonadi-old<br />
$ cp -a ~/.config/akonadi ~/.config/akonadi-old<br />
<br />
Start ''SystemSettings > Personal'' and remove all the resources. Go back to Dolphin and remove the original {{ic|~/.local/share/akonadi/}} and<br />
{{ic|~/.config/akonadi/}} - the copies you made ensure that you can back-track if necessary.<br />
<br />
Now go back to the System Settings page and carefully add the necessary resources. You should see the resource reading in your mail folders. Then start Kontact/KMail to see if it works properly.<br />
<br />
==== Empty IMAP inbox in KMail ====<br />
<br />
For some IMAP accounts KMail will show the inbox as a top-level container (so it will not be possible to read messages there) with all other folders of this account inside.[https://bugs.kde.org/show_bug.cgi?id=284172]. To solve this problem simply disable the server-side subscriptions in the KMail account settings.<br />
<br />
=== Networking ===<br />
<br />
==== Freezes when using Automount on a NFS volume ====<br />
<br />
Using [[Fstab#Automount with systemd]] on a [[NFS]] volume may cause freezes, see [https://bugs.kde.org/show_bug.cgi?id=354137 bug report upstream].<br />
<br />
=== Aggressive QXcbConnection journal logging ===<br />
<br />
See [[Qt#Disable/Change Qt journal logging behaviour]].<br />
<br />
=== KF5/Qt 5 applications do not display icons in i3/FVWM/awesome ===<br />
<br />
See [[Qt#Configuration of Qt5 apps under environments other than KDE Plasma]].<br />
<br />
=== Problems with saving credentials and persistently occurring KWallet dialogs ===<br />
<br />
It is not recommended to turn off the [[KWallet]] password saving system in the user settings as it is required to save encrypted credentials like WiFi passphrases for each user. Persistently occuring KWallet dialogs can be the consequence of turning it off.<br />
<br />
In case you find the dialogs to unlock the wallet annoying when applications want to access it, you can let the [[Display manager|display managers]] [[SDDM]] and [[LightDM]] unlock the wallet at login automatically, see [[KDE Wallet#Unlock KDE Wallet automatically on login]]. The first wallet needs to be generated by KWallet (and not user-generated) in order to be usable for system program credentials.<br />
<br />
In case you want the wallet credentials not to be opened in memory for every application, you can restrict applications from accessing it with {{Pkg|kwalletmanager}} in the KWallet settings.<br />
<br />
If you do not care for credential encryption at all, you can simply leave the password forms blank when KWallet asks for the password while creating a wallet. In this case, applications can access passwords without having to unlock the wallet first.<br />
<br />
=== Discover does not show any applications ===<br />
<br />
This can be solved by installing {{Pkg|packagekit-qt5}}.<br />
<br />
=== High CPU usage of kscreenlocker_greet with NVIDIA drivers ===<br />
<br />
As described in [https://bugs.kde.org/show_bug.cgi?id=347772 KDE Bug 347772] NVIDIA OpenGL drivers and QML may not play well together with Qt 5. This may lead {{ic|kscreenlocker_greet}} to high CPU usage after unlocking the session. To work around this issue, set the {{ic|QSG_RENDERER_LOOP}} [[environment variable]] to {{ic|basic}}.<br />
<br />
Then kill previous instances of the greeter with {{ic|killall kscreenlocker_greet}}.<br />
<br />
=== OS error 22 when running Akonadi on ZFS ===<br />
<br />
If your home directory is on a [[ZFS]] pool, create a {{ic|~/.config/akonadi/mysql-local.conf}} file with the following contents:<br />
<br />
[mysqld]<br />
innodb_use_native_aio = 0<br />
<br />
See [[MySQL#OS error 22 when running on ZFS]].<br />
<br />
=== Some programs are unable to scroll when their windows are inactive ===<br />
<br />
This is caused by the problematic way of GTK3 handling mouse scroll events. A workaround for this is to set [[environment variable]] {{ic|1=GDK_CORE_DEVICE_EVENTS=1}}. However, this workaround also breaks touchpad smooth scrolling and touchscreen scrolling.<br />
<br />
== See also ==<br />
<br />
* [https://www.kde.org/ KDE homepage]<br />
* [https://bugs.kde.org/ KDE bug tracker]<br />
* [https://blog.martin-graesslin.com/blog/kategorien/kde/ Martin Graesslin's blog]</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=Bumblebee&diff=469292Bumblebee2017-02-27T22:30:25Z<p>Lordheavy: *-libgl packages are not available anymore</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[es:Bumblebee]]<br />
[[fr:Bumblebee]]<br />
[[it:Bumblebee]]<br />
[[ja:Bumblebee]]<br />
[[ru:Bumblebee]]<br />
[[tr:Bumblebee]]<br />
[[zh-hans:Bumblebee]]<br />
{{Related articles start}}<br />
{{Related|NVIDIA Optimus}}<br />
{{Related|Nouveau}}<br />
{{Related|NVIDIA}}<br />
{{Related|Intel graphics}}<br />
{{Related articles end}}<br />
From Bumblebee's [https://github.com/Bumblebee-Project/Bumblebee/wiki/FAQ FAQ]:<br />
<br />
"''Bumblebee is an effort to make NVIDIA Optimus enabled laptops work in GNU/Linux systems. Such feature involves two graphics cards with two different power consumption profiles plugged in a layered way sharing a single framebuffer.''"<br />
<br />
== Bumblebee: Optimus for Linux ==<br />
<br />
[http://www.nvidia.com/object/optimus_technology.html Optimus Technology] is a ''[http://hybrid-graphics-linux.tuxfamily.org/index.php?title=Hybrid_graphics hybrid graphics]'' implementation without a hardware multiplexer. The integrated GPU manages the display while the dedicated GPU manages the most demanding rendering and ships the work to the integrated GPU to be displayed. When the laptop is running on battery supply, the dedicated GPU is turned off to save power and prolong the battery life. It has also been tested successfully with desktop machines with Intel integrated graphics and an nVidia dedicated graphics card. <br />
<br />
Bumblebee is a software implementation comprising of two parts:<br />
<br />
* Render programs off-screen on the dedicated video card and display it on the screen using the integrated video card. This bridge is provided by VirtualGL or primus (read further) and connects to a X server started for the discrete video card.<br />
* Disable the dedicated video card when it is not in use (see the [[#Power management]] section)<br />
<br />
It tries to mimic the Optimus technology behavior; using the dedicated GPU for rendering when needed and power it down when not in use. The present releases only support rendering on-demand, automatically starting a program with the discrete video card based on workload is not implemented.<br />
<br />
== Installation ==<br />
<br />
Before installing Bumblebee, check your BIOS and activate Optimus (older laptops call it "switchable graphics") if possible (BIOS doesn't have to provide this option). If neither "Optimus" or "switchable" is in the bios, still make sure both gpu's will be enabled and that the integrated graphics (igfx) is initial display (primary display). The display should be connected to the onboard integrated graphics, not the discrete graphics card. If integrated graphics had previously been disabled and discrete graphics drivers installed, be sure to remove {{ic|/etc/X11/xorg.conf}} or the conf file in {{ic|/etc/X11/xorg.conf.d}} related to the discrete graphics card.<br />
<br />
=== Installing Bumblebee with Intel/NVIDIA ===<br />
<br />
Install:<br />
* {{Pkg|bumblebee}} - The main package providing the daemon and client programs.<br />
* {{Pkg|mesa}} - An open-source implementation of the '''OpenGL''' specification.<br />
* {{Pkg|xf86-video-intel}} - Intel driver.<br />
* {{Pkg|nvidia}} or {{Pkg|nvidia-340xx}} or {{Pkg|nvidia-304xx}} - Install appropriate NVIDIA driver. For more information read [[NVIDIA#Installation]].<br />
<br />
For 32-bit ([[Multilib]] must be enabled) applications support on 64-bit machines, install:<br />
* {{Pkg|lib32-virtualgl}} - A render/display bridge for 32 bit applications.<br />
* {{Pkg|lib32-nvidia-utils}} or {{Pkg|lib32-nvidia-340xx-utils}} or {{Pkg|lib32-nvidia-304xx-utils}} - match the version of the 64 bit package.<br />
<br />
In order to use Bumblebee, it is necessary to add your regular ''user'' to the {{ic|bumblebee}} group:<br />
<br />
# gpasswd -a ''user'' bumblebee<br />
<br />
Also [[enable]] {{ic|bumblebeed.service}}. Reboot your system and follow [[#Usage]].<br />
<br />
=== Installing Bumblebee with Intel/Nouveau ===<br />
<br />
{{Warning|This method is deprecated and [https://github.com/Bumblebee-Project/Bumblebee/issues/773 will not work anymore]. Use the nvidia module instead. If you want nouveau, use [[PRIME]].}}<br />
<br />
Install:<br />
* {{Pkg|xf86-video-nouveau}} - experimental 3D acceleration driver.<br />
* {{Pkg|mesa}} - Mesa classic DRI with Gallium3D drivers and 3D graphics libraries.<br />
<br />
{{Note|1=If, when using {{ic|primusrun}} on a system with the nouveau driver, you are getting:<br />
primus: fatal: failed to load any of the libraries: /usr/$LIB/nvidia/libGL.so.1 <br />
/usr/$LIB/nvidia/libGL.so.1: Cannot open shared object file: No such file or directory<br />
<br />
You should add the following in {{ic|/usr/bin/primus}} after {{ic|PRIMUS_libGL}}:<br />
export PRIMUS_libGLa='/usr/$LIB/libGL.so.1'<br />
<br />
If you want, create a new script (for example ''primusnouveau'').<br />
}}<br />
<br />
== Usage ==<br />
<br />
=== Test ===<br />
<br />
Install {{Pkg|mesa-demos}} and use {{ic|glxgears}} to test if if Bumblebee works with your Optimus system:<br />
$ optirun glxgears -info<br />
<br />
If it fails, try the following commands:<br />
<br />
*64 bit system:<br />
$ optirun glxspheres64<br />
*32 bit system:<br />
$ optirun glxspheres32<br />
<br />
If the window with animation shows up, Optimus with Bumblebee is working.<br />
<br />
{{Note|If {{ic|glxgears}} failed, but {{ic|glxspheres''XX''}} worked, always replace "{{ic|glxgears}}" with "{{ic|glxspheres''XX''}}" in all cases.}}<br />
<br />
=== General usage ===<br />
<br />
$ optirun [options] ''application'' [application-parameters]<br />
<br />
For example, start Windows applications with Optimus:<br />
<br />
$ optirun wine application.exe<br />
<br />
For another example, open NVIDIA Settings panel with Optimus:<br />
<br />
$ optirun -b none nvidia-settings -c :8<br />
<br />
: {{Note|A patched version of {{Pkg|nvdock}} is available in the package {{AUR|nvdock-bumblebee}}}}<br />
<br />
For a list of the options for {{ic|optirun}}, view its manual page:<br />
<br />
$ man optirun<br />
<br />
== Configuration ==<br />
<br />
You can configure the behaviour of Bumblebee to fit your needs. Fine tuning like speed optimization, power management and other stuff can be configured in {{ic|/etc/bumblebee/bumblebee.conf}}<br />
<br />
=== Optimizing speed ===<br />
<br />
==== Using VirtualGL as bridge ====<br />
<br />
Bumblebee renders frames for your Optimus NVIDIA card in an invisible X Server with VirtualGL and transports them back to your visible X Server. Frames will be compressed before they are transported - this saves bandwidth and can be used for speed-up optimization of bumblebee:<br />
<br />
To use another compression method for a single application:<br />
<br />
$ optirun -c ''compress-method'' application<br />
<br />
The method of compress will affect performance in the GPU/CPU usage. Compressed methods will mostly load the CPU. However, uncompressed methods will mostly load the GPU.<br />
<br />
Compressed methods<br />
:*{{ic|jpeg}}<br />
:*{{ic|rgb}}<br />
:*{{ic|yuv}}<br />
<br />
Uncompressed methods<br />
:*{{ic|proxy}}<br />
:*{{ic|xv}}<br />
<br />
Here is a performance table tested with [[ASUS N550JV]] laptop and benchmark app {{AUR|unigine-heaven}}:<br />
<br />
{| class="wikitable"<br />
! Command !! FPS !! Score !! Min FPS !! Max FPS<br />
|-<br />
| optirun unigine-heaven || 25.0 || 630 || 16.4 || 36.1<br />
|-<br />
| optirun -c jpeg unigine-heaven || 24.2 || 610 || 9.5 || 36.8<br />
|-<br />
| optirun -c rgb unigine-heaven || 25.1 || 632 || 16.6 || 35.5<br />
|-<br />
| optirun -c yuv unigine-heaven || 24.9 || 626 || 16.5 || 35.8<br />
|-<br />
| optirun -c proxy unigine-heaven || 25.0 || 629 || 16.0 || 36.1<br />
|-<br />
| optirun -c xv unigine-heaven || 22.9 || 577 || 15.4 || 32.2<br />
|}<br />
{{Note|Lag spikes occurred when {{ic|jpeg}} compression method was used.}}<br />
<br />
To use a standard compression for all applications, set the {{ic|VGLTransport}} to {{ic|''compress-method''}} in {{ic|/etc/bumblebee/bumblebee.conf}}:<br />
<br />
{{hc|/etc/bumblebee/bumblebee.conf|2=<br />
[...]<br />
[optirun]<br />
VGLTransport=proxy<br />
[...]<br />
}}<br />
<br />
You can also play with the way VirtualGL reads back the pixels from your graphic card. Setting {{ic|VGL_READBACK}} environment variable to {{ic|pbo}} should increase the performance. Compare these two:<br />
<br />
# PBO should be faster.<br />
VGL_READBACK=pbo optirun glxgears<br />
# The default value is sync.<br />
VGL_READBACK=sync optirun glxgears<br />
<br />
{{Note|CPU frequency scaling will affect directly on render performance}}<br />
<br />
==== Primusrun ====<br />
<br />
{{Note|Since compositing hurts performance, invoking primus when a compositing WM is active is not recommended. See [[#Primus issues under compositing window managers]].}}<br />
{{ic|primusrun}} (from package {{Pkg|primus}}) is becoming the default choice, because it consumes less power and sometimes provides better performance than {{ic|optirun}}/{{ic|virtualgl}}. It may be run separately, but it does not accept options as {{ic|optirun}} does. Setting {{ic|primus}} as the bridge for {{ic|optirun}} provides more flexibility.<br />
<br />
For 32-bit applications support on 64-bit machines, install {{Pkg|lib32-primus}} ([[multilib]] must be enabled).<br />
<br />
Usage (run separately):<br />
$ primusrun glxgears<br />
<br />
Usage (as a bridge for {{ic|optirun}}):<br />
<br />
The default configuration sets {{ic|virtualgl}} as the bridge. Override that on the command line:<br />
$ optirun -b primus glxgears<br />
<br />
Or, set {{ic|1=Bridge=primus}} in {{ic|/etc/bumblebee/bumblebee.conf}} and you won't have to specify it on the command line.<br />
<br />
{{Tip|Refer to [[#Primusrun mouse delay (disable VSYNC)]] if you want to disable {{ic|VSYNC}}. It can also remove mouse input delay lag and slightly increase the performance.}}<br />
<br />
=== Power management ===<br />
<br />
The goal of the power management feature is to turn off the NVIDIA card when it is not used by Bumblebee any more. If {{Pkg|bbswitch}} (or {{Pkg|bbswitch-dkms}}) is installed, it will be detected automatically when the Bumblebee daemon starts. No additional configuration is necessary. However, {{Pkg|bbswitch}} is for [https://bugs.launchpad.net/ubuntu/+source/bbswitch/+bug/1338404/comments/6 Optimus laptops only and will not work on desktop computers]. So, Bumblebee power management is not available for desktop computers, and there is no reason to install {{Pkg|bbswitch}} on a desktop. (Nevertheless, the other features of Bumblebee do work on some desktop computers.)<br />
<br />
==== Default power state of NVIDIA card using bbswitch ====<br />
<br />
The default behavior of bbswitch is to leave the card power state unchanged. {{ic|bumblebeed}} does disable the card when started, so the following is only necessary if you use bbswitch without bumblebeed.<br />
<br />
Set {{ic|load_state}} and {{ic|unload_state}} module options according to your needs (see [https://github.com/Bumblebee-Project/bbswitch bbswitch documentation]).<br />
{{hc|/etc/modprobe.d/bbswitch.conf|2=<br />
options bbswitch load_state=0 unload_state=1<br />
}}<br />
<br />
==== Enable NVIDIA card during shutdown ====<br />
On some laptops, the NVIDIA card may not correctly initialize during boot if the card was powered off when the system was last shutdown. Therefore the Bumblebee daemon will power on the GPU when stopping the daemon (e.g. on shutdown) due to the (default) setting {{ic|TurnCardOffAtExit&#61;false}} in {{ic|/etc/bumblebee/bumblebee.conf}}. Note that this setting does not influence power state while the daemon is running, so if all {{ic|optirun}} or {{ic|primusrun}} programs have exited, the GPU will still be powered off.<br />
<br />
When you stop the daemon manually, you might want to keep the card powered off while still powering it on on shutdown. To achieve the latter, add the following [[systemd]] service (if using {{pkg|bbswitch}}):<br />
<br />
{{hc|/etc/systemd/system/nvidia-enable.service|2=<br />
[Unit]<br />
Description=Enable NVIDIA card<br />
DefaultDependencies=no<br />
<br />
[Service]<br />
Type=oneshot<br />
ExecStart=/bin/sh -c 'echo ON > /proc/acpi/bbswitch'<br />
<br />
[Install]<br />
WantedBy=shutdown.target<br />
}}<br />
<br />
Then enable the service by running {{ic|systemctl enable nvidia-enable.service}} at the root prompt.<br />
<br />
==== Enable NVIDIA card after waking from suspend ====<br />
The bumblebee daemon may fail to activate the graphics card after suspending. A possible fix involves setting {{Pkg|bbswitch}} as the default method for power management in {{ic|/etc/bumblebee/bumblebee.conf}}:<br />
<br />
{{hc|/etc/bumblebee/bumblebee.conf|2=<br />
[driver-nvidia]<br />
PMMethod=bbswitch<br />
<br />
# ...<br />
<br />
[driver-nouveau]<br />
PMMethod=bbswitch<br />
}}<br />
<br />
{{Note|This fix seems to work only after rebooting the system. Restarting the bumblebee service is not enough.}}<br />
<br />
=== Multiple monitors ===<br />
<br />
==== Outputs wired to the Intel chip ====<br />
<br />
If the port (DisplayPort/HDMI/VGA) is wired to the Intel chip, you can set up multiple monitors with xorg.conf. Set them to use the Intel card, but Bumblebee can still use the NVIDIA card. One example configuration is below for two identical screens with 1080p resolution and using the HDMI out.<br />
<br />
{{hc|/etc/X11/xorg.conf|2=<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "intelgpu0"<br />
Monitor "Monitor0"<br />
DefaultDepth 24<br />
Option "TwinView" "0"<br />
SubSection "Display"<br />
Depth 24<br />
Modes "1920x1080_60.00"<br />
EndSubSection<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "Screen1"<br />
Device "intelgpu1"<br />
Monitor "Monitor1"<br />
DefaultDepth 24<br />
Option "TwinView" "0"<br />
SubSection "Display"<br />
Depth 24<br />
Modes "1920x1080_60.00"<br />
EndSubSection<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
Option "Enable" "true"<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "Monitor1"<br />
Option "Enable" "true"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "intelgpu0"<br />
Driver "intel"<br />
Option "XvMC" "true"<br />
Option "UseEvents" "true"<br />
Option "AccelMethod" "UXA"<br />
BusID "PCI:0:2:0"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "intelgpu1"<br />
Driver "intel"<br />
Option "XvMC" "true"<br />
Option "UseEvents" "true"<br />
Option "AccelMethod" "UXA"<br />
BusID "PCI:0:2:0"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "nvidiagpu1"<br />
Driver "nvidia"<br />
BusID "PCI:0:1:0"<br />
EndSection<br />
<br />
}}<br />
<br />
You need to probably change the BusID for both the Intel and the NVIDIA card.<br />
<br />
{{hc|<nowiki>$ lspci | grep VGA</nowiki>|<br />
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)<br />
}}<br />
<br />
The BusID is 0:2:0<br />
<br />
==== Output wired to the NVIDIA chip ====<br />
<br />
On some notebooks, the digital Video Output (HDMI or DisplayPort) is hardwired to the NVIDIA chip. If you want to use all the displays on such a system simultaneously, you have to run 2 X Servers. The first will be using the Intel driver for the notebooks panel and a display connected on VGA. The second will be started through optirun on the NVIDIA card, and drives the digital display.<br />
<br />
''intel-virtual-output'' is a tool provided in the {{Pkg|xf86-video-intel}} driver set, as of v2.99. Commandline usage is as follows:<br />
<br />
{{hc|$ intel-virtual-output [OPTION]... [TARGET_DISPLAY]...|<br />
-d <source display> source display<br />
-f keep in foreground (do not detach from console and daemonize)<br />
-b start bumblebee<br />
-a connect to all local displays (e.g. :1, :2, etc)<br />
-S disable use of a singleton and launch a fresh intel-virtual-output process<br />
-v all verbose output, implies -f<br />
-V <category> specific verbose output, implies -f<br />
-h this help}}<br />
<br />
If no target displays are parsed on the commandline, ''intel-virtual-output'' will attempt to connect to any local display. The detected displays will be manageable via any desktop display manager such as xrandr or KDE Display. <br />
<br />
The tool will also start bumblebee (which may be left as default install). See the [https://github.com/Bumblebee-Project/Bumblebee/wiki/Multi-monitor-setup Bumblebee wiki page] for more information.<br />
<br />
{{Note|In {{ic|/etc/bumblebee/xorg.conf.nvidia}} change the lines {{ic|UseEDID}} and {{ic|Option "AutoAddDevices" "false"}} to {{ic|"true"}}, if you are having trouble with device resolution detection. You will also need to comment out the line {{ic|Option "UseDisplayDevices" "none"}} in order to use the display connected to the NVIDIA GPU.}}<br />
<br />
When run in a terminal, it will daemonize itself unless the {{ic|-f}} switch is used. The advantage of using it in foreground mode is that once the external display is disconnected, ''intel-virtual-output'' can then be killed and bumblebee will disable the nvidia chip. Games can be run on the external screen by first exporting the display {{ic|1=export DISPLAY=:8}}, and then running the game with {{ic|optirun ''game_bin''}}, however, cursor and keyboard are not fully captured. Use {{ic|1=export DISPLAY=:0}} to revert back to standard operation.<br />
<br />
== CUDA without Bumblebee==<br />
<br />
You can use CUDA without bumblebee. All you need to do is ensure that the nvidia card is on:<br />
<br />
# tee /proc/acpi/bbswitch <<< ON<br />
<br />
Now when you start a CUDA application it is going to automatically load all the necessary modules.<br />
<br />
To turn off the nvidia card after using CUDA do:<br />
<br />
# rmmod nvidia_uvm<br />
# rmmod nvidia<br />
# tee /proc/acpi/bbswitch <<< OFF<br />
<br />
== Troubleshooting ==<br />
<br />
{{Note|Please report bugs at [https://github.com/Bumblebee-Project/Bumblebee Bumblebee-Project]'s GitHub tracker as described in its [https://github.com/Bumblebee-Project/Bumblebee/wiki/Reporting-Issues wiki].}}<br />
<br />
=== [VGL] ERROR: Could not open display :8 ===<br />
<br />
There is a known problem with some wine applications that fork and kill the parent process without keeping track of it (for example the free to play online game "Runes of Magic")<br />
<br />
This is a known problem with VirtualGL. As of bumblebee 3.1, so long as you have it installed, you can use Primus as your render bridge:<br />
<br />
$ optirun -b primus wine ''windows program''.exe<br />
<br />
If this does not work, an alternative walkaround for this problem is:<br />
<br />
$ optirun bash<br />
$ optirun wine ''windows program''.exe<br />
<br />
If using NVIDIA drivers a fix for this problem is to edit {{ic|/etc/bumblebee/xorg.conf.nvidia}} and change Option {{ic|ConnectedMonitor}} to {{ic|CRT-0}}.<br />
<br />
=== Xlib: extension "GLX" missing on display ":0.0" ===<br />
<br />
If you tried to install the NVIDIA driver from NVIDIA website, this is not going to work.<br />
<br />
1. Uninstall that driver in the similar way:<br />
# ./NVIDIA-Linux-*.run --uninstall<br />
2. Remove generated by NVIDIA Xorg configuration file:<br />
# rm /etc/X11/xorg.conf<br />
3. (Re)install the correct NVIDIA driver: [[#Installing Bumblebee with Intel/NVIDIA]]<br />
<br />
=== [ERROR]Cannot access secondary GPU: No devices detected ===<br />
<br />
In some instances, running {{ic|optirun}} will return:<br />
<br />
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected.<br />
[ERROR]Aborting because fallback start is disabled.<br />
<br />
In this case, you will need to move the file {{ic|/etc/X11/xorg.conf.d/20-intel.conf}} to somewhere else, [[restart]] the bumblebeed daemon and it should work. If you do need to change some features for the Intel module, a workaround is to merge {{ic|/etc/X11/xorg.conf.d/20-intel.conf}} to {{ic|/etc/X11/xorg.conf}}.<br />
<br />
It could be also necessary to comment the driver line in {{ic|/etc/X11/xorg.conf.d/10-monitor.conf}}.<br />
<br />
If you're using the {{ic|nouveau}} driver you could try switching to the {{ic|nvidia}} driver.<br />
<br />
You might need to define the NVIDIA card somewhere (e.g. file {{ic|/etc/X11/xorg.conf.d}}), using the correct {{ic|BusID}} according to {{ic|lspci}} output:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "nvidiagpu1"<br />
Driver "nvidia"<br />
BusID "PCI:0:1:0"<br />
EndSection<br />
}}<br />
<br />
Observe that the format of {{ic|lspci}} output is in HEX, while in xorg it is in decimals. So if the output of {{ic|lspci}} is, for example, {{ic|0a:00.0}} the {{ic|BusID}} should be {{ic|PCI:10:0:0}}.<br />
<br />
<br />
==== NVIDIA(0): Failed to assign any connected display devices to X screen 0 ====<br />
<br />
If the console output is:<br />
<br />
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) NVIDIA(0): Failed to assign any connected display devices to X screen 0<br />
[ERROR]Aborting because fallback start is disabled.<br />
<br />
You can change this line in {{ic|/etc/bumblebee/xorg.conf.nvidia}}:<br />
<br />
Option "ConnectedMonitor" "DFP"<br />
<br />
to:<br />
<br />
Option "ConnectedMonitor" "CRT"<br />
<br />
==== Failed to initialize the NVIDIA GPU at PCI:1:0:0 (GPU fallen off the bus / RmInitAdapter failed!) ====<br />
<br />
Add {{ic|1=rcutree.rcu_idle_gp_delay=1}} to the [[kernel parameters]] of the [[bootloader]] configuration (see also the original [https://bbs.archlinux.org/viewtopic.php?id=169742 BBS post] for a configuration example).<br />
<br />
==== Could not load GPU driver ====<br />
<br />
If the console output is:<br />
<br />
[ERROR]Cannot access secondary GPU - error: Could not load GPU driver<br />
<br />
and if you try to load the nvidia module you get:<br />
<br />
modprobe nvidia<br />
modprobe: ERROR: could not insert 'nvidia': Exec format error<br />
<br />
This could be because the nvidia driver is out of sync with the Linux kernel, for example if you installed the latest nvidia driver and haven't updated the kernel in a while. A full system update might resolve the issue. If the problem persists you should try manually compiling the nvidia packages against your current kernel, for example with {{Pkg|nvidia-dkms}} or by compiling {{pkg|nvidia}} from the [[ABS]].<br />
<br />
==== NOUVEAU(0): [drm] failed to set drm interface version ====<br />
<br />
Consider switching to the official nvidia driver. As commented [https://github.com/Bumblebee-Project/Bumblebee/issues/438#issuecomment-22005923 here], nouveau driver has some issues with some cards and bumblebee.<br />
<br />
=== /dev/dri/card0: failed to set DRM interface version 1.4: Permission denied ===<br />
<br />
This could be worked around by appending following lines in {{ic|/etc/bumblebee/xorg.conf.nvidia}} (see [https://github.com/Bumblebee-Project/Bumblebee/issues/580 here]):<br />
{{bc|<br />
Section "Screen"<br />
Identifier "Default Screen"<br />
Device "DiscreteNvidia"<br />
EndSection<br />
}}<br />
<br />
=== ERROR: ld.so: object 'libdlfaker.so' from LD_PRELOAD cannot be preloaded: ignored ===<br />
<br />
You probably want to start a 32-bit application with bumblebee on a 64-bit system. See the "For 32-bit..." section in [[#Installation]]. If the problem persists or if it is a 64-bit application, try using the [[#Primusrun|primus bridge]].<br />
<br />
=== Fatal IO error 11 (Resource temporarily unavailable) on X server ===<br />
<br />
Change {{ic|KeepUnusedXServer}} in {{ic|/etc/bumblebee/bumblebee.conf}} from {{ic|false}} to {{ic|true}}. Your program forks into background and bumblebee don't know anything about it.<br />
<br />
=== Video tearing ===<br />
<br />
Video tearing is a somewhat common problem on Bumblebee. To fix it, you need to enable vsync. It should be enabled by default on the Intel card, but verify that from Xorg logs. To check whether or not it is enabled for NVIDIA, run: <br />
<br />
$ optirun nvidia-settings -c :8<br />
<br />
{{ic|1=X Server XVideo Settings -> Sync to VBlank}} and {{ic|1=OpenGL Settings -> Sync to VBlank}} should both be enabled. The Intel card has in general less tearing, so use it for video playback. Especially use VA-API for video decoding (e.g. {{ic|mplayer-vaapi}} and with {{ic|-vsync}} parameter).<br />
<br />
Refer to the [[Intel#Video_tearing|Intel]]{{Broken section link}} article on how to fix tearing on the Intel card.<br />
<br />
If it is still not fixed, try to disable compositing from your desktop environment. Try also disabling triple buffering.<br />
<br />
=== Bumblebee cannot connect to socket ===<br />
<br />
You might get something like:<br />
<br />
$ optirun glxspheres64<br />
or (for 32 bit):<br />
{{hc|$ optirun glxspheres32|<br />
[ 1648.179533] [ERROR]You've no permission to communicate with the Bumblebee daemon. Try adding yourself to the 'bumblebee' group<br />
[ 1648.179628] [ERROR]Could not connect to bumblebee daemon - is it running?<br />
}}<br />
<br />
If you are already in the {{ic|bumblebee}} group ({{ic|<nowiki>$ groups | grep bumblebee</nowiki>}}), you may try [https://bbs.archlinux.org/viewtopic.php?pid=1178729#p1178729 removing the socket] {{ic|/var/run/bumblebeed.socket}}.<br />
<br />
Another reason for this error could be that you haven't actually turned on both gpu's in your bios, and as a result, the Bumblebee daemon is in fact not running. Check the bios settings carefully and be sure intel graphics (integrated graphics - may be abbreviated in bios as something like igfx) has been enabled or set to auto, and that it's the primary gpu. Your display should be connected to the onboard integrated graphics, not the discrete graphics card.<br />
<br />
If you mistakenly had the display connected to the discrete graphics card and intel graphics was disabled, you probably installed Bumblebee after first trying to run Nvidia alone. In this case, be sure to remove the /etc/X11/xorg.conf or .../20-nvidia... configuration files. If Xorg is instructed to use Nvidia in a conf file, X will fail.<br />
<br />
=== Running X.org from console after login (rootless X.org) ===<br />
<br />
See [[Xorg#Rootless Xorg (v1.16)]].<br />
<br />
=== Primusrun mouse delay (disable VSYNC) ===<br />
<br />
For {{ic|primusrun}}, {{ic|VSYNC}} is enabled by default and as a result, it could make mouse input delay lag or even slightly decrease performance. Test {{ic|primusrun}} with {{ic|VSYNC}} disabled:<br />
<br />
$ vblank_mode=0 primusrun glxgears<br />
<br />
If you are satisfied with the above setting, create an [[alias]] (e.g. {{ic|1=alias primusrun="vblank_mode=0 primusrun"}}).<br />
<br />
Performance comparison:<br />
<br />
{| class="wikitable"<br />
! VSYNC enabled !! FPS !! Score !! Min FPS !! Max FPS<br />
|-<br />
| FALSE || 31.5 || 793 || 22.3 || 54.8<br />
|-<br />
| TRUE || 31.4 || 792 || 18.7 || 54.2<br />
|}<br />
''Tested with [[ASUS N550JV]] notebook and benchmark app {{AUR|unigine-heaven}}.''<br />
<br />
{{Note|To disable vertical synchronization system-wide, see [[Intel graphics#Disable Vertical Synchronization (VSYNC)]].}}<br />
<br />
=== Primus issues under compositing window managers ===<br />
<br />
Since compositing hurts performance, invoking primus when a compositing WM is active is not recommended.[https://github.com/amonakov/primus#issues-under-compositing-wms]<br />
If you need to use primus with compositing and see flickering or bad performance, synchronizing primus' display thread with the application's rendering thread may help:<br />
<br />
$ PRIMUS_SYNC=1 primusrun ...<br />
<br />
This makes primus display the previously rendered frame.<br />
<br />
=== Problems with bumblebee after resuming from standby ===<br />
<br />
In some systems, it can happens that the nvidia module is loaded after resuming from standby.<br />
The solution for this, is to install the {{pkg|acpi_call}} and {{pkg|acpi}} package.<br />
<br />
=== Optirun doesn't work, no debug output ===<br />
<br />
Users are reporting that in some cases, even though Bumblebee was installed correctly, running <br />
<br />
$ optirun glxgears -info<br />
<br />
gives no output at all, and the glxgears window does not appear. Any programs that need 3d acceleration crashes:<br />
<br />
$ optirun bash<br />
$ glxgears<br />
Segmentation fault (core dumped)<br />
<br />
Apparently it is a bug of some versions of virtualgl. So a workaround is to [[install]] {{Pkg|primus}} and {{Pkg|lib32-primus}} and use it instead:<br />
<br />
$ primusrun glxspheres64<br />
$ optirun -b primus glxspheres64<br />
<br />
By default primus locks the framerate to the vrate of your monitor (usually 60 fps), if needed it can be unlocked by passing the {{ic|vblank_mode&#61;0}} environment variable.<br />
<br />
$ vblank_mode=0 primusrun glxspheres64<br />
<br />
Usually there is no need to display more frames han your monitor can handle, but you might want to for benchmarking or to have faster reactions in games (e.g., if a game need 3 frames to react to a mouse movement with {{ic|vblank_mode&#61;0}} the reaction will be as quick as your system can handle, without it will always need 1/20 of second).<br />
<br />
You might want to edit {{ic|/etc/bumblebee/bumblebee.conf}} to use the primus render as default. If after an update you want to check if the bug has been fixed just use {{ic|optirun -b virtualgl}}.<br />
<br />
See [https://bbs.archlinux.org/viewtopic.php?pid=1643609 this forum post] for more information.<br />
<br />
=== Broken power management with kernel 4.8 ===<br />
{{Out of date|Fixed on nvidia 375.26+}}<br />
If you have a newer laptop (BIOS date 2015 or newer), then Linux 4.8 might break bbswitch ([https://github.com/Bumblebee-Project/bbswitch/issues/140 bbswitch issue 140]) since bbswitch does not support the newer, recommended power management method. As a result, the dGPU may fail to power on, fail to power off or worse.<br />
<br />
As a workaround, add {{ic|1=pcie_port_pm=off}} to your [[Kernel parameters]].<br />
<br />
Alternatively, if you are only interested in power saving (and perhaps use of external monitors), remove bbswitch and rely on [[Nouveau]] runtime power-management (which supports the new method).<br />
<br />
=== Lockup issue (lspci hangs) ===<br />
See [[NVIDIA_Optimus#Lockup_issue_.28lspci_hangs.29]]] for an issue that affects new laptops with a GTX 965M (or alike).<br />
<br />
== See also ==<br />
<br />
* [http://www.bumblebee-project.org Bumblebee project repository]<br />
* [http://wiki.bumblebee-project.org/ Bumblebee project wiki]<br />
* [https://github.com/Bumblebee-Project/bbswitch Bumblebee project bbswitch repository]<br />
<br />
Join us at #bumblebee at freenode.net.</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=ATI&diff=457543ATI2016-11-23T13:16:15Z<p>Lordheavy: Glamor is expected to work with R600 ans later chipsets, not R300</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[de:ATI]]<br />
[[es:ATI]]<br />
[[fr:ATI]]<br />
[[it:ATI]]<br />
[[ja:ATI]]<br />
[[pl:ATI]]<br />
[[ru:ATI]]<br />
[[tr:ATI]]<br />
[[zh-CN:ATI]]<br />
{{Related articles start}}<br />
{{Related|AMD Catalyst}}<br />
{{Related|AMDGPU}}<br />
{{Related|Xorg}}<br />
{{Related articles end}}<br />
<br />
Owners of '''AMD''' (previously '''ATI''') video cards have a choice between [[AMD Catalyst|proprietary driver]] ({{AUR|catalyst}}) and the open source drivers ([[ATI]] for older or [[AMDGPU]] for newer cards). This article covers the '''ATI'''/[https://wiki.freedesktop.org/xorg/radeon/ Radeon] open source driver for older cards.<br />
<br />
The open source driver is ''on par'' performance-wise with the proprietary driver for many cards. (See this [http://www.phoronix.com/scan.php?page=article&item=radeonsi-cat-wow&num=1 benchmark].)<br />
<br />
If unsure, try the open source driver first, it will suit most needs and is generally less problematic. See the [http://www.x.org/wiki/RadeonFeature feature matrix] to know what is supported for the GPU.<br />
<br />
== Selecting the right driver ==<br />
<br />
Depending on the card you have, find the right driver in [[Xorg#AMD]]. This page has instructions for '''ATI'''.<br />
<br />
== Naming conventions ==<br />
<br />
The [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).<br />
<br />
For a table of core and product series, see [[Wikipedia:Radeon]] and [[Wikipedia:List of AMD graphics processing units]].<br />
<br />
== Installation ==<br />
<br />
{{Note|If coming from the proprietary Catalyst driver, see [[AMD Catalyst#Uninstallation]] first.}}<br />
<br />
[[Install]] the {{Pkg|xf86-video-ati}} package. It provides the DDX driver for 2D acceleration and it pulls in {{Pkg|mesa}} as a dependency, providing the DRI driver for 3D acceleration.<br />
<br />
To enable OpenGL support, also install {{Pkg|mesa-libgl}}. If you are on x86_64 and need 32-bit support, also install {{Pkg|lib32-mesa-libgl}} from the [[multilib]] repository.<br />
<br />
Support for [[#Enabling video acceleration|accelerated video decoding]] is provided by {{Pkg|mesa-vdpau}} and {{Pkg|lib32-mesa-vdpau}} packages.<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Loading ==<br />
<br />
The radeon kernel module should load fine automatically on system boot.<br />
<br />
If it does not happen, then:<br />
<br />
* Make sure you do '''not''' have {{ic|nomodeset}} or {{ic|1=vga=}} as a [[kernel parameter]], since radeon requires [[KMS]].<br />
* Also, check that you have not disabled radeon by using any [[Kernel_modules#Blacklisting|kernel module blacklisting]].<br />
<br />
=== Enable early KMS ===<br />
<br />
{{Tip|If you have problems with the resolution, [[Kernel mode setting#Forcing modes and EDID]] may help.}}<br />
<br />
[[Kernel mode setting]] (KMS) is supported by the radeon driver and is mandatory and enabled by default. <br />
<br />
KMS is typically initialized after the [[Arch boot process#initramfs|initramfs stage]]. It is possible, however, to enable KMS during the initramfs stage. To do this, add the {{ic|radeon}} module to the {{ic|MODULES}} line in {{ic|/etc/mkinitcpio.conf}}:<br />
<br />
MODULES="... radeon ..."<br />
<br />
Now, regenerate the initramfs:<br />
<br />
# mkinitcpio -p linux<br />
<br />
The change takes effect at the next reboot.<br />
<br />
== Performance tuning ==<br />
=== Enabling video acceleration ===<br />
<br />
See [[Hardware video acceleration]].<br />
<br />
=== Driver options ===<br />
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.<br />
<br />
Please read {{ic|man radeon}} and [http://www.x.org/wiki/RadeonFeature/#index4h2 RadeonFeature] first before applying driver options.<br />
<br />
'''ColorTiling''' and '''ColorTiling2D''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU:<br />
<br />
Option "ColorTiling" "on"<br />
Option "ColorTiling2D" "on"<br />
<br />
'''DRI3''' is enabled by default [http://www.phoronix.com/scan.php?page=news_item&px=Radeon-AMDGPU-1.19-Updates since xf86-video-ati 7.8.0]. For older drivers, which use DRI2 by default, switch to DRI3 with the following option:<br />
<br />
Option "DRI" "3"<br />
<br />
'''TearFree''' is a tearing prevention using the hardware page flipping mechanism. Enabling this option currently disables Option "EnablePageFlip":<br />
<br />
Option "TearFree" "on"<br />
<br />
'''Acceleration architecture'''; Glamor is available as 2D acceleration method implement through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R600.<br />
Since xf86-video-ati 7.2.0, it is automatically enabled with radeonsi drivers (Southern Islands and superior GFX cards); on other graphic cards the method can be forced by adding AccelMethod '''glamor''' to the configuration file:<br />
<br />
Option "AccelMethod" "glamor"<br />
<br />
When using Glamor as acceleration architecture it is possible to enable the option '''ShadowPrimary''', enables a so-called "shadow primary" buffer for fast CPU access to pixel data, and separate scanout buf‐fers for each display controller (CRTC). This may improve performance for some 2D workloads, potentially at the expense of other (e.g. 3D, video) workloads. Note that enabling this option currently disables Option "EnablePageFlip":<br />
<br />
Option "ShadowPrimary" "on"<br />
<br />
'''EXAVSync ''' is only available when using EXA and can be enabled to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips:<br />
<br />
Option "EXAVSync" "yes"<br />
<br />
Below is a sample configuration file of {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "AccelMethod" "glamor"<br />
Option "DRI" "3"<br />
Option "TearFree" "on"<br />
EndSection<br />
}}<br />
<br />
{{Tip|{{Pkg|driconf}} is a tool that allows to modify several settings: vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).}}<br />
<br />
=== Kernel parameters ===<br />
{{Tip|You may want to debug the newly parameters with {{ic|systool}} as stated in [[Kernel modules#Obtaining information]].}}<br />
<br />
Defining the '''gartsize''', if not autodetected, can be done by adding {{ic|1=radeon.gartsize=32}} into [[kernel parameters]].<br />
<br />
{{Note|Setting this parameter should not be needed anymore with modern AMD videocards:<br />
{{bc|<nowiki><br />
[drm] Detected VRAM RAM=2048M, BAR=256M<br />
[drm] radeon: 2048M of VRAM memory ready<br />
[drm] radeon: 2048M of GTT memory ready.<br />
</nowiki>}}<br />
}}<br />
<br />
The changes take effect at the next reboot.<br />
<br />
==== Deactivating PCIe 2.0 ====<br />
<br />
Since kernel 3.6, PCI Express 2.0 in '''radeon''' is turned on by default.<br />
<br />
It may be unstable with some motherboards, deactivation can be done by adding {{ic|1=radeon.pcie_gen2=0}} as a [[kernel parameters]].<br />
<br />
See [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article] for more information.<br />
<br />
=== Gallium Heads-Up Display ===<br />
<br />
The radeonsi driver supports activating a heads up display which can draw transparent graphs and text on top of applications that are rendering such as games. These can show such values as the current frame rate or the CPU load for each CPU core or an average of all of them. The HUD is controlled by the GALLIUM_HUD environment variable, and can be passed the following list of parameters among others:<br />
*"fps" - displays current frames per second<br />
*"cpu" - displays the average CPU load<br />
*"cpu0" - displays the CPU load for the first CPU core<br />
*"cpu0+cpu1" - displays the CPU load for the first two CPU cores<br />
*"draw-calls" - displays how many times each material in an object is drawn to the screen<br />
*"requested-VRAM" - displayed how much VRAM is being used on the GPU<br />
*"pixels-rendered" - displays how many pixels are being displayed<br />
<br />
To see a full list of parameters as well as some notes on operating GALLIUM_HUD you can also pass the "help" parameter to a simple application such as glxgears and see the corresponding terminal output:<br />
{{bc|1=# GALLIUM_HUD="help" glxgears }}<br />
<br />
More information can be found from this [http://lists.freedesktop.org/archives/mesa-dev/2013-March/036586.html mailing list post] or [https://kparal.wordpress.com/2014/03/03/fraps-like-fps-overlay-for-linux/ this blog post].<br />
<br />
== Hybrid graphics/AMD Dynamic Switchable Graphics ==<br />
<br />
It is the technology used on recent laptops equiped with two GPUs, one power-efficent (generally Intel integrated card) and one more powerful and more power-hungry (generally Radeon or Nvidia). There are two ways to get it work:<br />
<br />
* If it is not required to run 'GPU-hungry' applications, it is possible to disable the discrete card (see [https://help.ubuntu.com/community/HybridGraphics#Using_vga_switcheroo Ubuntu wiki]): {{ic|echo OFF > /sys/kernel/debug/vgaswitcheroo/switch}}.<br />
* [[PRIME]]: Is a proper way to use hybrid graphics on Linux, but still requires a bit of manual intervention from the user.<br />
<br />
== Powersaving ==<br />
{{Note|Power management is supported on all chips that include the appropriate power state tables in the vbios (R1xx and newer). "dpm" is only supported on R6xx and newer chips.}}<br />
<br />
With the radeon driver, power saving is disabled by default and has to be enabled manually if desired.<br />
<br />
You can choose between three different methods:<br />
<br />
# [[#Dynamic power management|dpm]] (enabled by default since kernel 3.13)<br />
# [[#Dynamic frequency switching|dynpm]]<br />
# [[#Profile-based frequency switching|profile]]<br />
<br />
See http://www.x.org/wiki/RadeonFeature/#index3h2 for more details.<br />
<br />
=== Dynamic power management ===<br />
<br />
Since kernel 3.13, DPM is enabled by default for [http://kernelnewbies.org/Linux_3.13#head-f95c198f6fdc7defe36f470dc8369cf0e16898df lots of AMD Radeon hardware]. If you want to disable it, add the parameter {{ic|1=radeon.dpm=0}} to the [[kernel parameters]].<br />
<br />
Unlike [[#Dynamic frequency switching|dynpm]], the "dpm" method uses hardware on the GPU to dynamically change the clocks and voltage based on GPU load. It also enables clock and power gating.<br />
<br />
There are 3 operation modes to choose from:<br />
<br />
* {{ic|battery}} lowest power consumption<br />
* {{ic|balanced}} sane default<br />
* {{ic|performance}} highest performance<br />
<br />
They can be changed via sysfs<br />
# echo battery > /sys/class/drm/card0/device/power_dpm_state<br />
<br />
For testing or debugging purposes, you can force the card to run in a set performance mode:<br />
<br />
* {{ic|auto}} default; uses all levels in the power state<br />
* {{ic|low}} enforces the lowest performance level<br />
* {{ic|high}} enforces the highest performance level<br />
<br />
# echo low > /sys/class/drm/card0/device/power_dpm_force_performance_level<br />
<br />
==== Commandline Tools ====<br />
<br />
* [https://github.com/superjamie/snippets/blob/master/radcard radcard] - A script to get and set DPM power states and levels<br />
<br />
=== Old methods ===<br />
<br />
==== Dynamic frequency switching ====<br />
<br />
This method dynamically changes the frequency depending on GPU load, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.<br />
<br />
It can be activated by simply running the following command:<br />
<br />
# echo dynpm > /sys/class/drm/card0/device/power_method<br />
<br />
==== Profile-based frequency switching ====<br />
<br />
This method will allow you to select one of the five profiles (described below). Different profiles, for the most part, end up changing the frequency/voltage of the GPU. This method is not as aggressive, but is more stable and flicker free and works with multiple heads active.<br />
<br />
To activate the method, run the following command:<br />
<br />
# echo profile > /sys/class/drm/card0/device/power_method<br />
<br />
Select one of the available profiles:<br />
* {{ic|default}} uses the default clocks and does not change the power state. This is the default behaviour.<br />
* {{ic|auto}} selects between {{ic|mid}} and {{ic|high}} power states based on the whether the system is on battery power or not.<br />
* {{ic|low}} forces the gpu to be in the {{ic|low}} power state all the time. Note that {{ic|low}} can cause display problems on some laptops, which is why {{ic|auto}} only uses {{ic|low}} when monitors are off. Selected on other profiles when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|mid}} forces the gpu to be in the {{ic|mid}} power state all the time.<br />
* {{ic|high}} forces the gpu to be in the {{ic|high}} power state all the time.<br />
<br />
As an example, we will activate the {{ic|low}} profile (replace {{ic|low}} with any of the aforementioned profiles as necessary):<br />
<br />
# echo low > /sys/class/drm/card0/device/power_profile<br />
<br />
==== Persistent configuration ====<br />
<br />
The activation described above is not persistent, it will not last when the computer is rebooted. To make it persistent, you can use [[systemd#Temporary files|systemd-tmpfiles]] (example for [[#Dynamic frequency switching]]):<br />
<br />
{{hc|/etc/tmpfiles.d/radeon-pm.conf|<nowiki><br />
w /sys/class/drm/card0/device/power_method - - - - dynpm<br />
</nowiki>}}<br />
<br />
Alternatively, you may use this [[udev]] rule instead (example for [[#Profile-based frequency switching]]):<br />
<br />
{{hc|/etc/udev/rules.d/30-radeon-pm.rules|<nowiki><br />
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low"<br />
</nowiki>}}<br />
<br />
{{Note|If the above rule is failing, try removing the {{ic|dri/}} prefix.}}<br />
<br />
==== Graphical tools ====<br />
<br />
* {{App|Radeon-tray|A small program to control the power profiles of your Radeon card via systray icon. It is written in PyQt4 and is suitable for non-Gnome users.|https://github.com/StuntsPT/Radeon-tray|{{AUR|radeon-tray}}}}<br />
<br />
=== Other notes ===<br />
<br />
To view the speed that the GPU is running at, perform the following command and you will get something like this output:<br />
<br />
{{hc|# cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki><br />
state: PM_STATE_ENABLED<br />
default engine clock: 300000 kHz<br />
current engine clock: 300720 kHz<br />
default memory clock: 200000 kHz<br />
</nowiki>}}<br />
<br />
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.<br />
<br />
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via [[lm_sensors]] tools or via sysfs in {{ic|/sys/class/hwmon}}.<br />
<br />
== Fan Speed ==<br />
<br />
While the power saving features above should handle fan speeds quite well, some cards may still be too noisy in their idle state. In this case, and when your card supports it, you can change the fan speed manually.<br />
<br />
{{Warning|<br />
* Keep in mind that the following method sets the fan speed to a fixed value, hence it will not adjust with the stress of the GPU, which can lead to overheating under heavy load.<br />
* Check GPU temperature when applying lower than standard values.<br />
}}<br />
<br />
Issue the following command to enable the manual adjustment of the fan speed of your graphics card (or the first GPU in case of a multi GPU setup). <br />
<br />
# echo 1 > /sys/class/drm/card0/device/hwmon/hwmon0/pwm1_enable<br />
<br />
Then set your desired fan speed from 0 to 255, which corresponds to 0-100% fan speed (the following command sets it to roughly 20%):<br />
<br />
# echo 55 > /sys/class/drm/card0/device/hwmon/hwmon0/pwm1<br />
<br />
For persistence, use [[systemd#Temporary files|systemd-tmpfiles]] as shown above by the example with power profiles.<br />
<br />
If a fixed value isn't desired, there are possibilities to define a custom fan curve manually by, for example, writing a script in which fan speeds are set depending on the current temperature (current value in {{ic|/sys/class/drm/card0/device/hwmon/hwmon0/temp1_input}}).<br />
<br />
A GUI solution is available by installing {{AUR|radeon-profile-git}}.<br />
<br />
== TV out ==<br />
<br />
First, check that you have an S-video output: {{ic|xrandr}} should give you something like<br />
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200<br />
...<br />
S-video disconnected (normal left inverted right x axis y axis)<br />
<br />
Now we should tell Xorg that it is actually connected (it ''is'', right?)<br />
xrandr --output S-video --set "load detection" 1<br />
<br />
Setting TV standard to use:<br />
xrandr --output S-video --set "tv standard" ntsc<br />
<br />
Adding a mode for it (currently supports only 800x600):<br />
xrandr --addmode S-video 800x600<br />
<br />
Clone mode:<br />
xrandr --output S-video --same-as VGA-0<br />
<br />
Now let us try to see what we have:<br />
xrandr --output S-video --mode 800x600<br />
<br />
At this point you should see a 800x600 version of your desktop on your TV.<br />
<br />
To disable the output, do<br />
xrandr --output S-video --off<br />
<br />
=== Force TV-out in KMS ===<br />
<br />
The kernel can recognize {{ic|1=video=}} parameter in following form (see [[KMS]] for more details):<br />
<br />
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]<br />
<br />
For example:<br />
<br />
video=DVI-I-1:1280x1024-24@60e<br />
<br />
Parameters with whitespaces must be quoted:<br />
<br />
"video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
Current mkinitcpio implementation also requires {{ic|#}} in front. For example:<br />
<br />
root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
* [[GRUB Legacy]] can pass such command line as is.<br />
* [[LILO]] needs backslashes for doublequotes (append {{ic|1=# \"video=9-pin DIN-1:1024x768-24@60e\"}})<br />
<br />
You can get list of your video outputs with following command:<br />
<br />
{{bc|<nowiki>$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-</nowiki>}}<br />
<br />
== HDMI audio ==<br />
<br />
HDMI audio is supported in the {{Pkg|xf86-video-ati}} video driver. To disable HDMI audio add {{ic|1=radeon.audio=0}} to your [[kernel parameters]].<br />
<br />
If there is no video after boot up, the driver option has to be disabled.<br />
<br />
{{Note|<br />
* If HDMI audio does not work after installing the driver, test your setup with the procedure at [[Advanced Linux Sound Architecture/Troubleshooting#HDMI Output does not work]].<br />
* If the sound is distorted in PulseAudio try setting {{ic|1=tsched=0}} as described in [[PulseAudio/Troubleshooting#Glitches, skips or crackling]] and make sure {{ic|rtkit}} daemon is running.<br />
* Your sound card might use the same module, since HDA compliant hardware is pretty common. [[Advanced Linux Sound Architecture#Set the default sound card]] using one of the suggested methods, which include using the {{ic|defaults}} node in alsa configuration.<br />
}}<br />
<br />
== Multihead setup ==<br />
<br />
=== Using the RandR extension ===<br />
<br />
See [[Multihead#RandR]] how to setup multiple monitors by using [[Wikipedia:RandR|RandR]].<br />
<br />
=== Independent X screens ===<br />
<br />
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice:<br />
{{hc|/etc/X11/xorg.conf.d/20-radeon.conf|<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "radeon"<br />
Option "ZaphodHeads" "VGA-0"<br />
VendorName "ATI"<br />
BusID "PCI:1:0:0"<br />
Screen 0<br />
EndSection<br />
}}<br />
<br />
This can be a life-saver, when using videocards that have more than two outputs. For instance one HDMI out, one DVI, one VGA, will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitly specify {{ic|"ZaphodHeads" "VGA-0"}}.<br />
<br />
== Turn vsync off ==<br />
{{Out of date|Is this still valid with DRI3? (which is default)}}<br />
The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create {{ic|~/.drirc}} (or edit it if it already exists) and add the following section:<br />
{{hc|~/.drirc|<nowiki><br />
<driconf><br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0" /><br />
</application><br />
</device><br />
<!-- Other devices ... --><br />
</driconf><br />
</nowiki>}}<br />
Make sure the driver is '''dri2''', not your video card code (like r600).<br />
<br />
{{Accuracy|If the above does not work, please file a bug report. Also, why is the {{ic|SwapbuffersWait}} option relevant here?}}<br />
<br />
If vsync is still enabled, you can try to disable it by editing the xf86-video-ati configuration :<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-radeon.conf|<nowiki><br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "EXAVSync" "off"<br />
Option "SwapbuffersWait" "false" <br />
EndSection<br />
</nowiki>}}<br />
<br />
== Troubleshooting ==<br />
<br />
=== Performance and/or artifacts issues when using EXA ===<br />
{{Note|Glamor is nowadays recommended over EXA, try forcing this acceleration architecture first (if unsupported).}}<br />
<br />
If having 2D performance issues, like slow scrolling in a terminal or webbrowser, adding {{ic|Option "MigrationHeuristic" "greedy"}} as device option may solve the issue.<br />
<br />
In addition disabling EXAPixmaps may solve artifacts issues, although this is generally not recommended and may cause other issues.<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-radeon.conf|<nowiki><br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "AccelMethod" "exa"<br />
Option "MigrationHeuristic" "greedy"<br />
#Option "EXAPixmaps" "off"<br />
EndSection<br />
</nowiki>}}<br />
<br />
=== Adding undetected/unsupported resolutions ===<br />
<br />
See [[Xrandr#Adding_undetected_resolutions]].<br />
<br />
=== TV showing a black border around the screen ===<br />
{{Note|Make sure the tv has been setup correctly (see manual) before attempting the following solution.}}<br />
<br />
When connecting a TV using the HDMI port, the TV may show a blurry picture with a 2-3cm border around it. This protects against overscanning (see [[Wikipedia:Overscan]]), but can be turned off using xrandr:<br />
xrandr --output HDMI-0 --set underscan off<br />
<br />
=== Black screen and no console, but X works in KMS ===<br />
<br />
This is a solution to the no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to the wrong framebuffer device that exists on the wrong card. This can be fixed by adding this to the kernel boot line:<br />
fbcon=map:1<br />
This will tell the fbcon to map itself to the {{ic|/dev/fb1}} framebuffer dev and not the {{ic|/dev/fb0}}, that in our case exists on the wrong graphics card. If that does not fix your problem, try booting with<br />
fbcon=map:0<br />
instead.<br />
<br />
=== ATI X1600 (RV530 series) 3D application show black windows ===<br />
<br />
There are three possible solutions:<br />
* Try adding {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].<br />
* If this does not work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.<br />
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{pkg|driconf}} and set that option in {{ic|~/.drirc}}.<br />
<br />
=== Cursor corruption after coming out of sleep ===<br />
<br />
If the cursor becomes corrupted like it's repeating itself vertically after the monitor(s) comes out of sleep, set {{ic|"SWCursor" "True"}} in the {{ic|"Device"}} section of the {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} configuration file.<br />
<br />
=== DisplayPort stays black on multimonitor mode ===<br />
<br />
Try booting with the [[kernel parameter]] {{ic|1=radeon.audio=0}}.<br />
<br />
=== R9-390 Poor Performance and/or Instability ===<br />
<br />
Firmware issues with R9-390 series cards include poor performance and crashes (frequently caused by gaming or using Google Maps) possibly related DPM. Comment 115 of this bug [https://bugs.freedesktop.org/show_bug.cgi?id=91880 report] includes instructions for a fix.</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=PKGBUILD&diff=454973PKGBUILD2016-10-24T15:53:17Z<p>Lordheavy: Add the ability to add a library as a dependency (see man PKGBUILD)</p>
<hr />
<div>[[Category:Package development]]<br />
[[cs:PKGBUILD]]<br />
[[da:PKGBUILD]]<br />
[[el:PKGBUILD]]<br />
[[es:PKGBUILD]]<br />
[[fa:PKGBUILD]]<br />
[[fr:PKGBUILD]]<br />
[[it:PKGBUILD]]<br />
[[ja:PKGBUILD]]<br />
[[pl:PKGBUILD]]<br />
[[ru:PKGBUILD]]<br />
[[sr:PKGBUILD]]<br />
[[zh-CN:PKGBUILD]]<br />
[[zh-TW:PKGBUILD]]<br />
{{Related articles start}}<br />
{{Related|Arch packaging standards}}<br />
{{Related|Arch Build System}}<br />
{{Related|Creating packages}}<br />
{{Related|.SRCINFO}}<br />
{{Related|:Category:Package development}}<br />
{{Related|Pacman tips}}<br />
{{Related|Arch User Repository}}<br />
{{Related|makepkg}}<br />
{{Related|pacman}}<br />
{{Related articles end}}<br />
<br />
This article discusses variables definable by the maintainer in a PKGBUILD. For information on the PKGBUILD functions and creating packages in general, refer to [[Creating packages]]. Also read {{ic|man PKGBUILD}}.<br />
<br />
A PKGBUILD is a shell script containing the build information required by [[Arch Linux]] packages.<br />
<br />
Packages in Arch Linux are built using the [[makepkg]] utility. When ''makepkg'' is run, it searches for a {{ic|PKGBUILD}} file in the current directory and follows the instructions therein to either compile or otherwise acquire the files to build a package archive ({{ic|''pkgname''.pkg.tar.xz}}). The resulting package contains binary files and installation instructions, readily installable with [[pacman]].<br />
<br />
Mandatory variables are {{ic|pkgname}}, {{ic|pkgver}}, {{ic|pkgrel}}, and {{ic|arch}}. {{ic|license}} is not strictly necessary to build a package, but is recommended for any PKGBUILDs shared with others, as ''makepkg'' will produce a warning if not present.<br />
<br />
It is a common practice to define the variables in the PKGBUILD in same order as given here. However, this is not mandatory, as long as correct [[Bash]] syntax is used.<br />
<br />
== Package name ==<br />
<br />
=== pkgbase ===<br />
<br />
An optional global directive is available when building a split package. {{ic|pkgbase}} is used to refer to the group of packages in the output of ''makepkg'' and in the naming of source-only tarballs. If not specified, the first element in the {{ic|pkgname}} array is used. The variable is not allowed to begin with a hyphen. All values for split packages default to the global ones given in the PKGBUILD. Everything, except [[#makedepends]], [[#Sources]], and [[#Integrity]] variables can be overridden within each split package's {{ic|package()}} function.<br />
<br />
=== pkgname ===<br />
<br />
The name(s) of the package(s). This should consist of lowercase alphanumerics and any of the following characters: {{ic|@}}, {{ic|.}}, {{ic|_}}, {{ic|+}}, {{ic|-}} (at symbol, dot, underscore, plus, hyphen). Names are not allowed to start with hyphens. For the sake of consistency, {{ic|pkgname}} should match the name of the source tarball of the software: for instance, if the software is in {{ic|foobar-2.5.tar.gz}}, use {{ic|1=pkgname=foobar}}. The name of the directory containing the PKGBUILD should also match the {{ic|pkgname}}.<br />
<br />
Split packages should be defined as an array, e.g. {{ic|1=pkgname=('foo' 'bar')}}.<br />
<br />
== Version ==<br />
<br />
=== pkgver ===<br />
<br />
The version of the package. This should be the same as the version released by the author of the package. It can contain letters, numbers, periods and underscores, but '''not''' a hyphen ({{ic|-}}). If the author of the software uses one, replace it with an underscore ({{ic|_}}). If the {{ic|pkgver}} variable is used later in the PKGBUILD, then the underscore can easily be substituted for a hyphen, e.g. {{ic|1=source=("$pkgname-${pkgver//_/-}.tar.gz")}}.<br />
<br />
{{Note|If upstream uses a timestamp versioning such as {{ic|30102014}}, ensure to use the reversed date, i.e. {{ic|20141030}} ([[Wikipedia:ISO 8601|ISO 8601]] format). Otherwise it will not appear as a newer version.}}<br />
<br />
{{Tip|<br />
* The ordering of uncommon values can be tested with [https://www.archlinux.org/pacman/vercmp.8.html vercmp], which is provided by the [[pacman]] package.<br />
* [[makepkg]] can automatically [http://allanmcrae.com/2013/04/pacman-4-1-released/ update] this variable by defining a {{ic|pkgver()}} function in the PKGBUILD. See [[VCS package guidelines#The pkgver() function]] for details.<br />
}}<br />
<br />
=== pkgrel ===<br />
<br />
The release number. This is usually a positive integer number that allows to differentiate between consecutive builds of the same version of a package. As fixes and additional features are added to the PKGBUILD that influence the resulting package, the {{ic|pkgrel}} should be incremented by 1. When a new version of the software is released, this value must be reset to 1. In exceptional cases other formats can be found in use, such as ''major.minor''.<br />
<br />
=== epoch ===<br />
<br />
{{Warning|{{ic|epoch}} should only be used when absolutely required to do so.}}<br />
<br />
Used to force the package to be seen as newer than any previous version with a lower epoch. This value is required to be a positive integer; the default is 0. It is used when the version numbering scheme of a package changes (or is alphanumeric), breaking normal version comparison logic. For example:<br />
<br />
{{hc|1=<br />
pkgver=5.13<br />
pkgrel=2<br />
epoch=1<br />
|2=<br />
1:5.13-2<br />
}}<br />
<br />
See [https://www.archlinux.org/pacman/pacman.8.html pacman(8)] for more information on version comparisons.<br />
<br />
== Generic ==<br />
<br />
=== pkgdesc ===<br />
<br />
The description of the package. This is recommended to be 80 characters or less and should not include the package name in a self-referencing way, unless the application name differs from the package name. For example, use {{ic|1=pkgdesc="Text editor for X11"}} instead of {{ic|1=pkgdesc="Nedit is a text editor for X11"}}.<br />
<br />
Also it is important to use keywords wisely to increase the chances of appearing in relevant search queries.<br />
<br />
=== arch ===<br />
<br />
An array of architectures that the PKGBUILD is intended to build and work on. Arch officially supports only {{ic|i686}} and {{ic|x86_64}}, but projects like [http://archlinuxarm.org/ Arch Linux ARM] provide support for other architectures such as {{ic|arm}} for armv5, {{ic|armv6h}} for armv6 hardfloat, {{ic|armv7h}} for armv7 hardfloat, and {{ic|aarch64}} for armv8 64bit.<br />
<br />
If a package is architecture-independent in its compiled state (shell scripts, fonts, themes, many types of extensions, etc.) then use {{ic|1=arch=('any')}}. Please note that, as this is intended for packages that can be built once and used on any architecture, it will cause the package to be labeled {{ic|-any}} as opposed to {{ic|-i686}}, {{ic|-x86_64}}, etc.<br />
<br />
If instead a package can be compiled for any architecture, but is architecture-specific once compiled, specify all architectures officially supported by Arch, i.e. {{ic|1=arch=('i686' 'x86_64')}}.<br />
<br />
The target architecture can be accessed with the variable {{ic|$CARCH}} during a build.<br />
<br />
=== url ===<br />
The URL of the official site of the software being packaged.<br />
<br />
=== license ===<br />
The license under which the software is distributed. The {{pkg|licenses}} package contains many commonly used licenses, which are installed to {{ic|/usr/share/licenses/common}}. If a package is licensed under one of these licenses, the value should be set to the directory name, e.g. {{ic|1=license=('GPL')}}. If the appropriate license is not included, several things must be done:<br />
<br />
# Add {{ic|custom}} to the {{ic|license}} array. Optionally, you can replace {{ic|custom}} with {{ic|custom:''name of license''}}. Once a license is used in two or more packages in an official repository (including {{ic|[community]}}), it becomes a part of the {{Pkg|licenses}} package.<br />
# Install the license in: {{ic|/usr/share/licenses/''pkgname''/}}, e.g. {{ic|/usr/share/licenses/foobar/LICENSE}}.<br />
# If the license is only found in a website, then you need to separately include it in the package.<br />
<br />
* The [[Wikipedia:BSD License|BSD]], [[Wikipedia:MIT License|MIT]], [[Wikipedia:ZLIB license|zlib/png]] and [[Wikipedia:Python License|Python]] licenses are special cases and could not be included in the {{pkg|licenses}} package. For the sake of the {{ic|license}} array, it is treated as a common license ({{ic|1=license=('BSD')}}, {{ic|1=license=('MIT')}}, {{ic|1=license=('ZLIB')}} and {{ic|1=license=('Python')}}), but technically each one is a custom license, because each one has its own copyright line. Any packages licensed under these four should have its own unique license stored in {{ic|/usr/share/licenses/''pkgname''}}. Some packages may not be covered by a single license. In these cases, multiple entries may be made in the {{ic|license}} array, e.g. {{ic|1=license=('GPL' 'custom:''name of license''')}}.<br />
* (L)GPL has many versions and permutations of those versions. For (L)GPL software, the convention is:<br />
** (L)GPL — (L)GPLv2 or any later version<br />
** (L)GPL2 — (L)GPL2 only<br />
** (L)GPL3 — (L)GPL3 or any later version<br />
* If after researching the issue no license can be determined, [https://projects.archlinux.org/pacman.git/tree/proto/PKGBUILD.proto PKGBUILD.proto] suggests using {{ic|unknown}}. However, upstream should be contacted about the conditions under which the software is (and is not) available.<br />
<br />
{{Tip|Some software authors do not provide separate license file and describe distribution rules in section of common {{ic|ReadMe.txt}}. This information can be extracted to a separate file during {{ic|build()}} with something like {{ic|sed -n '/'''This software'''/,/''' thereof.'''/p' ReadMe.txt > LICENSE}}}}<br />
<br />
=== groups ===<br />
<br />
The [[Creating packages#Meta packages and groups|group]] the package belongs in. For instance, when installing the {{Grp|kdebase}} package, it installs all packages belonging in that group.<br />
<br />
== Dependencies ==<br />
<br />
{{Note|Additional architecture-specific arrays can be added by appending an underscore and the architecture name, e.g. {{ic|1=depends_i686=()}}, {{ic|1=optdepends_x86_64=()}}.<br />
}}<br />
<br />
=== depends ===<br />
An array of packages that must be installed before the software can be run. Version restrictions can be specified with comparison operators, e.g. {{ic|1=depends=('foobar>=1.8.0')}}; if multiple restrictions are needed, the dependency can be repeated for each, e.g. {{ic|1=depends=('foobar>=1.8.0' 'foobar<2.0.0')}}. <br />
<br />
Dependencies that are provided by other dependencies do not need to be listed. For instance, if a package ''foo'' depends on both ''bar'' and ''baz'', and the ''bar'' package depends in turn on ''baz'' too, ''baz'' does not need to be included in ''foo'''s {{ic|depends}} array.<br />
<br />
If the dependency name appears to be a library, e.g. {{ic|1=depends=('libfoobar.so')}}, makepkg will try to find a binary that depends on the library in the built package and append the version needed by the binary. Appending the version yourself disables automatic detection, e.g. {{ic|1=depends=('libfoobar.so=2')}}.<br />
<br />
=== optdepends ===<br />
<br />
An array of packages that are not needed for the software to function, but provide additional features. This may imply that not all executables provided by a package will function without the respective optdepends.[https://lists.archlinux.org/pipermail/arch-general/2014-December/038124.html] If the software works on multiple alternative dependencies, all of them can be listed here, instead of the {{ic|depends}} array.<br />
<br />
A short description of the extra functionality each optdepend provides should also be noted:<br />
<br />
optdepends=('cups: printing support'<br />
'sane: scanners support'<br />
'libgphoto2: digital cameras support'<br />
'alsa-lib: sound support'<br />
'giflib: GIF images support'<br />
'libjpeg: JPEG images support'<br />
'libpng: PNG images support')<br />
<br />
=== makedepends ===<br />
An array of packages that are '''only''' required to build the software. The minimum dependency version can be specified in the same format as in the {{ic|depends}} array. The packages in the {{ic|depends}} array are implicitly required to build the package, they should not be duplicated here.<br />
<br />
{{Tip|The following can be used to see if a particular package is either in the {{Grp|base-devel}} group or pulled in by a members of the group:<br />
<br />
<nowiki>$ LC_ALL=C pacman -Si $(pactree -rl ''package'') 2>/dev/null | grep -q "^Groups *:.*base-devel"</nowiki><br />
<br />
}}<br />
<br />
{{Note|The group {{Grp|base-devel}} is assumed to be already installed when building with ''makepkg''. Members of this group '''should not''' be included in {{ic|makedepends}} array.}}<br />
<br />
=== checkdepends ===<br />
An array of packages that the software depends on to run its test suite, but are not needed at runtime. Packages in this list follow the same format as {{ic|depends}}. These dependencies are only considered when the [[Creating packages#check()|check()]] function is present and is to be run by makepkg. <br />
<br />
{{Note|The group {{Grp|base-devel}} is assumed to be already installed when building with ''makepkg''. Members of this group '''should not''' be included in {{ic|checkdepends}} array.}}<br />
<br />
== Package relations ==<br />
<br />
{{Note|Additional architecture-specific arrays can be added by appending an underscore and the architecture name, e.g. {{ic|1=provides_i686=()}}, {{ic|1=conflicts_x86_64=()}}.}}<br />
<br />
=== provides ===<br />
An array of additional packages that the software provides the features of (or a virtual package such as {{Ic|cron}} or {{Ic|sh}}). Packages providing the same item can be installed side-by-side, unless at least one of them uses a {{ic|conflicts}} array.<br />
<br />
{{Warning|A version that the package provides should be mentioned ({{ic|pkgver}} and perhaps the {{ic|pkgrel}}), if packages needing the software may require one. For instance, a modified ''qt'' package version 3.3.8, named ''qt-foobar'', should use {{ic|1=provides=('qt=3.3.8')}}; using {{ic|1=provides=('qt')}} would cause the dependencies that require a specific version of ''qt'' to fail. Do not add {{ic|pkgname}} to the {{ic|provides}} array, as it is done automatically.}}<br />
<br />
=== conflicts ===<br />
<br />
An array of packages that conflict with, or cause problems with the package, if installed. All these packages and packages providing this item will need to be removed. The version properties of the conflicting packages can also be specified in the same format as the {{ic|depends}} array.<br />
<br />
=== replaces ===<br />
An array of obsolete packages that are replaced by the package, e.g. {{pkg|wireshark-gtk}} uses {{ic|1=replaces=('wireshark')}}. When syncing, ''pacman'' will immediately replace an installed package upon encountering another package with the matching {{ic|replaces}} in the repositories. If providing an alternate version of an already existing package or uploading to the [[AUR]], use the {{ic|conflicts}} and {{ic|provides}} arrays, which are only evaluated when actually installing the conflicting package.<br />
<br />
== Others ==<br />
<br />
=== backup ===<br />
<br />
An array of files that can contain user-made changes and should be preserved during upgrade or removal of a package, primarily intended for configuration files in {{ic|/etc}}.<br />
<br />
Files in this array should use '''relative''' paths without the leading slash ({{ic|/}}) (e.g. {{ic|etc/pacman.conf}}, instead of {{ic|/etc/pacman.conf}}).<br />
<br />
When updating, new versions may be saved as {{ic|file.pacnew}} to avoid overwriting a file which already exists and was previously modified by the user. Similarly, when the package is removed, user-modified files will be preserved as {{ic|file.pacsave}} unless the package was removed with the {{ic|pacman -Rn}} command.<br />
<br />
See also [[Pacnew and Pacsave files]].<br />
<br />
=== options ===<br />
This array allows overriding some of the default behavior of ''makepkg'', defined in {{Ic|/etc/makepkg.conf}}. To set an option, include the name in the array. To reverse the default behavior, place an '''{{ic|!}}''' at the front.<br />
<br />
The full list of the available options can be found in [https://www.archlinux.org/pacman/PKGBUILD.5.html PKGBUILD(5)].<br />
<br />
=== install ===<br />
The name of the {{ic|.install}} script to be included in the package. This should be the same as {{ic|pkgname}}. ''pacman'' has the ability to store and execute a package-specific script when it installs, removes or upgrades a package. The script contains the following functions which run at different times:<br />
<br />
* {{ic|pre_install}} — The script is run right before files are extracted. One argument is passed: new package version.<br />
* {{ic|post_install}} — The script is run right after files are extracted. One argument is passed: new package version.<br />
* {{ic|pre_upgrade}} — The script is run right before files are extracted. Two arguments are passed in the following order: new package version, old package version.<br />
* {{ic|post_upgrade}} — The script is run right after files are extracted. Two arguments are passed in the following order: new package version, old package version.<br />
* {{ic|pre_remove}} — The script is run right before files are removed. One argument is passed: old package version.<br />
* {{ic|post_remove}} — The script is run right after files are removed. One argument is passed: old package version.<br />
<br />
Each function is run [[chroot]]ed inside the ''pacman'' install directory. See [https://bbs.archlinux.org/viewtopic.php?pid=913891 this thread].<br />
<br />
{{Tip|A prototype {{ic|.install}} is provided at [https://projects.archlinux.org/pacman.git/plain/proto/proto.install /usr/share/pacman/proto.install].}}<br />
<br />
{{Note|Do not end the script with {{ic|exit}}. This would prevent the contained functions from executing.}}<br />
<br />
=== changelog ===<br />
<br />
The name of the package changelog. To view changelogs for installed packages (that have this file):<br />
<br />
$ pacman -Qc ''pkgname''<br />
<br />
== Sources ==<br />
<br />
=== source ===<br />
<br />
{{Note|Additional architecture-specific arrays can be added by appending an underscore and the architecture name, e.g. {{ic|1=source_i686=()}}. There must be a corresponding integrity array with checksums, e.g. {{ic|1=sha256sums_x86_64=()}}.}}<br />
<br />
An array of files needed to build the package. It must contain the location of the software source, which in most cases is a full HTTP or FTP URL. The previously set variables {{ic|pkgname}} and {{ic|pkgver}} can be used effectively here (e.g. {{ic|<nowiki>source=("https://example.com/$pkgname-$pkgver.tar.gz")</nowiki>}}).<br />
<br />
Files can also be supplied directly in the location of the {{ic|PKGBUILD}} and added to this array. These paths are resolved relative to the directory of the {{ic|PKGBUILD}}. Before the actual build process is started, all of the files referenced in this array will be downloaded or checked for existence, and ''makepkg'' will not proceed, if any are missing.<br />
<br />
''.install'' files are recognized automatically by ''makepkg'' and should not be included in the source array. Files in the source array with extensions ''.sig'', ''.sign'', or ''.asc'' are recognized by ''makepkg'' as PGP signatures and will be automatically used to verify the integrity of the corresponding source file.<br />
<br />
{{Note|File names of downloaded sources should be globally unique, because the [[makepkg#Package_output|SRCDEST]] variable could be the same directory for all packages. This can be ensured by specifying an alternative source name with the syntax {{ic|1=source=(<nowiki>'</nowiki>''filename''::''fileuri''<nowiki>'</nowiki>)}}, where the chosen {{ic|''filename''}} should be related to the package name:<br />
<br />
{{bc|<nowiki>source=("project_name::hg+https://googlefontdirectory.googlecode.com/hg/")</nowiki>}}}}<br />
<br />
=== noextract ===<br />
<br />
An array of files listed under {{ic|source}}, which should not be extracted from their archive format by ''makepkg''. This can be used with archives that cannot be handled by {{ic|/usr/bin/bsdtar}} or those that need to be installed as-is. If an alternative unarchiving tool is used (e.g. {{Pkg|lrzip}}), it should be added in the {{ic|makedepends}} array and the first line of the [[Creating packages#prepare()|prepare()]] function should extract the source archive manually; for example:<br />
<br />
prepare() {<br />
lrzip -d ''source''.tar.lrz<br />
}<br />
<br />
Note that while the {{ic|source}} array accepts URLs, {{ic|noextract}} is '''just''' the file name portion:<br />
<br />
<nowiki>source=("http://foo.org/bar/foobar.tar.xz")</nowiki><br />
noextract=('foobar.tar.xz')<br />
<br />
To extract ''nothing'', you can do something like this:<br />
<br />
* If {{ic|source}} contains only plain URLs without custom file names, strip the source array before the last slash:<br />
: {{bc|1=noextract=("${source[@]##*/}")}}<br />
* If {{ic|source}} contains only entries with custom file names, strip the source array after the {{ic|::}} separator (taken from [https://projects.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/firefox-i18n#n123 firefox-i18n's PKGBUILD]):<br />
: {{bc|1=noextract=("${source[@]%%::*}")}}<br />
<br />
=== validpgpkeys ===<br />
An array of PGP fingerprints. If used, ''makepkg'' will only accept signatures from the keys listed here and will ignore the trust values from the keyring. If the source file was signed with a subkey, ''makepkg'' will still use the primary key for comparison.<br />
<br />
Only full fingerprints are accepted. They must be uppercase and must not contain whitespace characters.<br />
<br />
{{note|You can use {{ic|gpg --list-keys --fingerprint <KEYID>}} to find out the fingerprint of the appropriate key.}}<br />
<br />
== Integrity ==<br />
<br />
{{Note|Additional architecture-specific arrays can be added by appending an underscore and the architecture name, e.g. {{ic|1=md5sums_i686=()}}, {{ic|1=sha256sums_x86_64=()}}.<br />
}}<br />
<br />
These variables are arrays whose items are checksum strings that will be used to verify the integrity of the respective files in the [[#source|source]] array. You can also insert {{ic|SKIP}} for a particular file, and its checksum will not be tested.<br />
<br />
Checksums are intended to verify the ''integrity'' of the downloaded files, '''not''' their ''authenticity'': for this reason, even though the MD5 algorithm is known to have considerable [[Wikipedia:MD5#Security|vulnerabilities]] when used for other purposes, it is recommended for file integrity as a faster alternative to SHA-2 hashes, especially when large files are present in the {{ic|source}} array. If possible, however, always test the authenticity of the files by adding their signatures to the {{ic|source}} array: in this case you will also be able to safely skip their checksum verification altogether, as described above.<br />
<br />
The values for these variables can be auto-generated by [[makepkg]]'s {{ic|-g}}/{{ic|--geninteg}} option, then commonly appended with {{ic|makepkg -g >> PKGBUILD}}. The {{ic|updpkgsums}} command is able to update the variables wherever they are in the PKGBUILD. Both tools will use the variable that is already set in the PKGBUILD, or fall back to {{ic|md5sums}} if none is set.<br />
<br />
The file integrity checks to use can be set up with the {{ic|INTEGRITY_CHECK}} option in {{ic|/etc/makepkg.conf}}. See [https://www.archlinux.org/pacman/makepkg.conf.5.html makepkg.conf(5)].<br />
<br />
=== md5sums ===<br />
<br />
An array of 128-bit [[Wikipedia:MD5|MD5]] checksums of the files listed in the {{ic|source}} array.<br />
<br />
=== sha1sums ===<br />
<br />
An array of 160-bit [[Wikipedia:SHA-1|SHA-1]] checksums of the files listed in the {{ic|source}} array.<br />
<br />
=== sha256sums ===<br />
<br />
An array of [[Wikipedia:SHA-2|SHA-2]] checksums with digest size of 256 bits.<br />
<br />
=== sha224sums, sha384sums, sha512sums ===<br />
<br />
An array of SHA-2 checksums with digest sizes 224, 384, and 512 bits, respectively. These are less common alternatives to {{ic|sha256sums}}.<br />
<br />
== See also ==<br />
*[https://www.archlinux.org/pacman/PKGBUILD.5.html PKGBUILD(5) Manual Page]<br />
*[https://projects.archlinux.org/pacman.git/plain/proto/PKGBUILD.proto Example PKGBUILD file]</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_X230&diff=441839Lenovo ThinkPad X2302016-07-17T11:02:40Z<p>Lordheavy: </p>
<hr />
<div>[[Category:Lenovo]]<br />
{{Related articles start}}<br />
{{Related|fprint}}<br />
{{Related|TrackPoint}}<br />
{{Related|HiDPI}}<br />
{{Related articles end}}<br />
<br />
[http://www.lenovo.com/hk/en/productcatalog/pdf/X230-datasheet.pdf Lenovo ThinkPad X230]<br />
<br />
== Configuration ==<br />
<br />
=== Kernel ===<br />
<br />
{{hc|/etc/mkinitcpio.conf|2=<nowiki><br />
MODULES="i915"<br />
</nowiki><br />
}}<br />
<br />
After saving the above files, make sure to regenerate your init ram image by the command {{ic|mkinitcpio -p linux}}, and follow the steps in [[kernel parameters]].<br />
<br />
=== Screen ===<br />
<br />
X230 has IPS or TN screen with 125.37 DPI. Refer to [[HiDPI]] page for more information.<br />
<br />
=== Touchpad ===<br />
<br />
The original configuration renders the touchpad quite useless, as it behaves very jumpily. [https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-synaptics/+bug/1042069/comments/5 Ubuntu Bugtracker] offers a solution for this issue. Add the following<br />
<br />
{{hc|/etc/X11/xorg.conf.d/50-synaptics.conf|2=<nowiki><br />
Section "InputClass"<br />
Identifier "touchpad"<br />
MatchProduct "SynPS/2 Synaptics TouchPad"<br />
# MatchTag "lenovo_x230_all"<br />
Driver "synaptics"<br />
# fix touchpad resolution<br />
Option "VertResolution" "100"<br />
Option "HorizResolution" "65"<br />
# disable synaptics driver pointer acceleration<br />
Option "MinSpeed" "1"<br />
Option "MaxSpeed" "1"<br />
# tweak the X-server pointer acceleration<br />
Option "AccelerationProfile" "2"<br />
Option "AdaptiveDeceleration" "16"<br />
Option "ConstantDeceleration" "16"<br />
Option "VelocityScale" "20"<br />
Option "AccelerationNumerator" "30"<br />
Option "AccelerationDenominator" "10"<br />
Option "AccelerationThreshold" "10"<br />
# Disable two fingers right mouse click<br />
Option "TapButton2" "0"<br />
Option "HorizHysteresis" "100"<br />
Option "VertHysteresis" "100"<br />
EndSection<br />
</nowiki><br />
}}<br />
<br />
Setting e.g. the motion-acceleration value in dconf to 2.8 works nicely.<br />
<br />
=== Backlight control keys ===<br />
<br />
{{Note| On most X230 models, backlight works by default without any issues. Use below only in case of any problems.}}<br />
<br />
Due to an issue with the firmware of several ThinkPads the backlight control keys (fn + F8/F9 on the X230) don't work correctly. Setting the brightness via e.g. the GNOME power control panel or altering the brightness value in sysfs is possible.<br />
<br />
The issue can be temporarily and partially fixed in adding the acpi_osi="!Windows 2012" [[kernel parameter]]. The fix is partial in that only 8 steps are accessible via the keys. See [https://bugzilla.kernel.org/show_bug.cgi?id=51231] for details.<br />
<br />
=== Suspend to ram ===<br />
<br />
There is an issue with system shutdown with power saving tools that cannot distinguish sys devices. You will need to add to the systemd shutdown trigger on this machine or else you'll get a system reboot when you shutdown the machine. Put this in /etc/rc.local.shutdown and update and enable its service, if not already.<br />
<br />
{{hc|/etc/rc.local.shutdown|2=<nowiki><br />
#!/bin/bash<br />
# /etc/rc.local.shutdown: Local shutdown script.<br />
# A script to act as a workaround for the bug in the runtime power management module, which causes thinkpad laptops to restart after shutting down. <br />
# Bus list for the runtime power management module.<br />
buslist="pci i2c"<br />
for bus in $buslist; do <br />
for i in /sys/bus/$bus/devices/*/power/control; do <br />
echo on > $i<br />
done<br />
done<br />
</nowiki><br />
}}<br />
<br />
{{hc|/usr/lib/systemd/system/rc-local-shutdown.service|2=<nowiki><br />
[Unit]<br />
Description=/etc/rc.local.shutdown Compatibility<br />
ConditionFileIsExecutable=/etc/rc.local.shutdown<br />
DefaultDependencies=no<br />
After=rc-local.service basic.target<br />
Before=shutdown.target<br />
<br />
[Service]<br />
Type=oneshot<br />
ExecStart=/etc/rc.local.shutdown<br />
StandardInput=tty<br />
RemainAfterExit=yes<br />
</nowiki><br />
}}<br />
<br />
=== Microphone ===<br />
<br />
If the built-in microphone is not detected when using PulseAudio, the steps here may fix the issue: [[PulseAudio/Troubleshooting#Microphone not detected by PulseAudio]].<br />
<br />
== Power Saving ==<br />
<br />
Follow the main article: [[Power saving]]<br />
<br />
Power saving [[kernel parameters]] in addition to graphics card power saving, are shown below. {{ic|<nowiki>acpi_backlight=vendor</nowiki>}} loads the vendor specific [[Backlight#ACPI]] driver (i.e. thinkpad_acpi) so the brightness keys (Fn + F8 and Fn + F9) work correctly.<br />
<br />
Note that the {{ic|<nowiki>acpi_backlight=vendor</nowiki>}} kernel option also works with the standard Arch kernel (currently 3.7.10-1) and has the additional bonus that (Fn + spacebar) controls the keyboard lighting.<br />
<br />
=== TLP ===<br />
<br />
Users of [[TLP]] need to pay attention to a hardware bug according to which it is recommended to only use either the upper or lower charging threshold. The following configuration is recommended by the developer of TLP.[http://thinkpad-forum.de/threads/184510-elementary-OS-Thinkpad-X230-einrichten?p=1865345&viewfull=1#post1865345 [1]] <br />
<br />
{{hc|/etc/default/tlp|2=<nowiki><br />
START_CHARGE_THRESH_BAT0=67<br />
STOP_CHARGE_THRESH_BAT0=100<br />
</nowiki><br />
}}<br />
<br />
== x230T (tablet version) ==<br />
<br />
=== Multitouch screen for the x230t (tablet version) ===<br />
<br />
{{Note| Some x230t models have a multitouch screen in addition to the wacom tablet.}}<br />
<br />
Works out of the box with {{Pkg|xf86-input-libinput}}.<br />
<br />
=== Wacom tablet input ===<br />
<br />
Works out of the box with {{Pkg|xf86-input-wacom}}. See [[Wacom Tablet]]<br />
<br />
== Not Working ==<br />
<br />
* Microphone on-off key does not work out of the box<br />
<br />
{{Note| It works out of the box with GNOME.}}<br />
<br />
== See also ==<br />
<br />
* [https://gist.github.com/bassu/8478346 A Hacker's Ongoing Review for Lenovo ThinkPad X230]</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=Touchpad_Synaptics&diff=438264Touchpad Synaptics2016-06-16T11:46:45Z<p>Lordheavy: </p>
<hr />
<div>[[Category:Input devices]]<br />
[[de:Synaptics Touchpad Treiber]]<br />
[[es:Touchpad Synaptics]]<br />
[[fr:Touchpad Synaptics]]<br />
[[it:Touchpad Synaptics]]<br />
[[ja:Touchpad Synaptics]]<br />
[[ru:Touchpad Synaptics]]<br />
[[zh-CN:Touchpad Synaptics]]<br />
{{Related articles start}}<br />
{{Related|Xorg}}<br />
{{Related articles end}}<br />
{{Out of date|synaptics driver is now on maintenance mode, [[libinput]] driver is prefered over}}<br />
This article details the installation and configuration process of the '''''Synaptics input driver''''' for Synaptics (and ALPS) touchpads found on most notebooks.<br />
<br />
== Installation ==<br />
<br />
The Synaptics driver can be [[installed]] with the package {{Pkg|xf86-input-synaptics}}.<br />
<br />
{{Tip|An alternative touchpad driver is [[libinput]]. It implements a different approach to recognize and process multitouch features.}}<br />
<br />
== Configuration ==<br />
<br />
The primary method of configuration for the touchpad is through an [[Xorg]] server configuration file. After installation of {{ic|xf86-input-synaptics}}, a default configuration file is located at {{ic|/usr/share/X11/xorg.conf.d/70-synaptics.conf}}. Users can copy this file to {{ic|/etc/X11/xorg.conf.d/}} and edit it to configure the various driver options available. Refer to the {{ic|synaptics(4)}} manual page for a complete list of available options. Machine-specific options can be discovered using [[#Synclient|synclient]].<br />
<br />
=== Frequently used options ===<br />
<br />
The following lists options that many users may wish to configure. This example configuration file enables vertical, horizontal and circular scrolling as well as touchpad tap to click:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/70-synaptics.conf|<nowiki><br />
Section "InputClass"<br />
Identifier "touchpad"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
Option "TapButton1" "1"<br />
Option "TapButton2" "3"<br />
Option "TapButton3" "2"<br />
Option "VertEdgeScroll" "on"<br />
Option "VertTwoFingerScroll" "on"<br />
Option "HorizEdgeScroll" "on"<br />
Option "HorizTwoFingerScroll" "on"<br />
Option "CircularScrolling" "on"<br />
Option "CircScrollTrigger" "2"<br />
Option "EmulateTwoFingerMinZ" "40"<br />
Option "EmulateTwoFingerMinW" "8"<br />
Option "CoastingSpeed" "0"<br />
Option "FingerLow" "30"<br />
Option "FingerHigh" "50"<br />
Option "MaxTapTime" "125"<br />
...<br />
EndSection<br />
</nowiki>}}<br />
<br />
; '''TapButton1''': (integer) configures which mouse-button is reported on a non-corner, one finger tap.<br />
; '''TapButton2''': (integer) configures which mouse-button is reported on a non-corner, two finger tap<br />
; '''TapButton3''': (integer) configures which mouse-button is reported on a non-corner, three finger tap<br />
; '''RBCornerButton''': (integer) configures which mouse-button is reported on a right bottom corner, one finger tap (use {{ic|Option "RBCornerButton" "3"}} to achieve Ubuntu style tap behaviour for right mouse button in lower right corner)<br />
; '''RTCornerButton''': (integer) as above, but for top right corner, one finger tap.<br />
; '''VertEdgeScroll''': (boolean) enables vertical scrolling while dragging across the right edge of the touch pad.<br />
; '''HorizEdgeScroll''': (boolean) enables horizontal scrolling while dragging across the bottom edge of the touch pad.<br />
; '''VertTwoFingerScroll''': (boolean) enables vertical scrolling using two fingers.<br />
; '''HorizTwoFingerScroll''': (boolean) enables horizontal scrolling using two fingers.<br />
; '''EmulateTwoFingerMinZ/W''': (integer) play with this value to set the precision of two finger scroll.<br />
; '''FingerLow''': (integer) when finger pressure drops below this value, the driver counts it as a release.<br />
; '''FingerHigh''': (integer) when finger pressure goes above this value, the driver counts it as a touch.<br />
; '''MaxTapTime''': Determines how "crisp" a tap must be to be considered a real tap. Decrease the value to require a more crisp tap. Properly adjusting this parameter can reduce false positives when the hands hover over or lightly touch the pad.<br />
; '''VertScrollDelta''' and '''HorizScrollDelta''': (integer) configures the speed of scrolling, it is a bit counter-intuitive because higher values produce greater precision and thus slower scrolling. Negative values cause natural scrolling like in OS X.<br />
<br />
{{Note|<br />
* If you find that your hand frequently brushes your touchpad, causing the TapButton2 option to be triggered (which will more than likely paste from your clipboard), and you do not mind losing two-finger-tap functionality, set {{ic|TapButton2}} to 0.<br />
* Recent versions include a "Coasting" feature, enabled by default, which may have the undesired effect of continuing almost any scrolling until the next tap or click, even if you are no longer touching the touchpad. This means that to scroll just a bit, you need to scroll (by using the edge, or a multitouch option) and then almost immediately tap the touchpad, otherwise scrolling will continue forever. If wish to avoid this, set {{ic|CoastingSpeed}} to 0.<br />
* If your touchpad is too sensitive, use higher values for {{ic|FingerLow}} and {{ic|FingerHigh}} and vice versa. Remember that {{ic|FingerLow}} should be smaller than {{ic|FingerHigh}}<br />
}}<br />
<br />
=== Configuration on the fly ===<br />
<br />
Next to the traditional method of configuration, the Synaptics driver also supports on the fly configuration. This means that users can set certain options through a software application, these options are applied immediately without needing a restart of Xorg. This is useful to test configuration options before you include them in the configuration file.<br />
<br />
{{Warning|On-the-fly configuration is non-permanent and will not remain active through a reboot, suspend/resume, or restart of Xorg. This should only be used to test, fine-tune or script configuration features.}}<br />
<br />
==== Console tools ====<br />
<br />
* {{App|[[#Synclient|Synclient]] (Recommended)|command line utility to configure and query Synaptics driver settings on a live system, the tool is developed by the synaptics driver maintainers and is provided with the synaptics driver|http://xorg.freedesktop.org/|{{Pkg|xf86-input-synaptics}}}}<br />
* {{App|[[#Using xinput to determine touchpad capabilities|xinput]]|small general-purpose CLI tool to configure devices|http://xorg.freedesktop.org/|{{Pkg|xorg-xinput}}}}<br />
<br />
==== Graphical tools ====<br />
<br />
* {{App|GPointing Device Settings|provides graphical on the fly configuration for several pointing devices connected to the system, including your synaptics touch pad. This application replaces GSynaptics as the preferred tool for graphical touchpad configuration through the synaptics driver|https://wiki.gnome.org/Attic/GPointingDeviceSettings|{{Pkg|gpointing-device-settings}}}}<br />
* {{App|kcm-touchpad|A new touchpad configuration tool for [[KDE]], provides a module under input devices in system settings. Released in February 2014, works under KDE SC 4.12+. It is to be considered a replacement for {{AUR|synaptiks}}{{Broken package link|{{aur-mirror|synaptiks}}}} and {{AUR|kcm_touchpad}}{{Broken package link|{{aur-mirror|kcm_touchpad}}}}.|https://projects.kde.org/projects/kde/workspace/kcm-touchpad/repository|{{Pkg|kcm-touchpad}}{{Broken package link|{{aur-mirror|kcm-touchpad}}}}}}<br />
<br />
=== Xfce4/Cinnamon ===<br />
<br />
To change these settings in ''XFCE 4''':<br />
# Open ''System Settings''.<br />
# Click ''Mouse and Touchpad''.<br />
# Change the settings on the ''Touchpad'' tab.<br />
<br />
To change these settings in '''Cinnamon''':<br />
# Open ''Cinnamon System Settings''.<br />
# Click ''Mouse and Touchpad''.<br />
# Change the settings on the ''Touchpad'' tab.<br />
<br />
=== MATE ===<br />
<br />
It is possible configure the way MATE handles the touchpad:<br />
<br />
# Run {{ic|dconf-editor}}<br />
# Edit the keys in the {{ic|org.mate.peripherals-touchpad}} folder.<br />
<br />
To prevent Mate settings daemon from overriding existing settings, do as follows:<br />
# Run {{ic|dconf-editor}}<br />
# Edit {{ic|org.mate.SettingsDaemon.plugins.mouse}}<br />
# Uncheck the '''active''' setting.<br />
<br />
== Advanced configuration ==<br />
<br />
=== Using xinput to determine touchpad capabilities ===<br />
<br />
Depending on your model, synaptic touchpads may have or lack capabilities. We can determine which capabilities your hardware supports by using {{ic|xinput}}.<br />
* left, middle and right hardware buttons<br />
* two finger detection<br />
* three finger detection<br />
* configurable resolution<br />
<br />
First, find the name of your touchpad:<br />
<br />
$ xinput -list<br />
<br />
You can now use {{ic|xinput}} to find your touchpad's capabilities:<br />
<br />
$ xinput list-props "SynPS/2 Synaptics TouchPad" | grep Capabilities<br />
<br />
Synaptics Capabilities (309): 1, 0, 1, 0, 0, 1, 1<br />
<br />
From left to right, this shows:<br />
* (1) device has a physical left button<br />
* (0) device does not have a physical middle button<br />
* (1) device has a physical right button<br />
* (0) device does not support two-finger detection<br />
* (0) device does not support three-finger detection<br />
* (1) device can configure vertical resolution<br />
* (1) device can configure horizontal resolution<br />
<br />
Use {{ic|xinput list-props "SynPS/2 Synaptics TouchPad"}} to list all device properties.<br />
<br />
=== Synclient ===<br />
<br />
Synclient can configure every option available to the user as documented in {{ic|$ man synaptics}}. A full list of the current user settings can be brought up:<br />
<br />
$ synclient -l<br />
<br />
Every listed configuration option can be controlled through synclient, for example:<br />
<br />
* Enable palm detection: {{ic|1=$ synclient PalmDetect=1}} <br />
* Configure button events (right button event for two finger tap here): {{ic|1=$ synclient TapButton2=3}} <br />
* Disable the touchpad: {{ic|1=$ synclient TouchpadOff=1}} <br />
<br />
After you have successfully tried and tested your options through synclient, you can make these changes permanent by adding them to {{ic|/etc/X11/xorg.conf.d/50-synaptics.conf}}.<br />
<br />
=== evtest ===<br />
<br />
The tool {{Pkg|evtest}} can display pressure and placement on the touchpad in real-time, allowing further refinement of the default Synaptics settings. The evtest monitoring can be started with:<br />
<br />
$ evtest /dev/input/event''X''<br />
<br />
''X'' denotes the touchpad's ID. It can be found by looking at the output of {{ic|cat /proc/bus/input/devices}}.<br />
<br />
evtest needs exclusive access to the device which means it cannot be run together with an X server instance. You can either kill the X server or run evtest from a different virtual terminal (e.g., by pressing {{ic|Ctrl+Alt+2}}).<br />
<br />
=== xev ===<br />
<br />
The tool {{Pkg|xorg-xev}} can display taps, clicks, pressure, placement and other measured parameters in real-time, allowing still further refinement of the default Synaptics settings. xev can be run in X and needs no specifics. using the "-event" parameter, it is possible to restrict the types of events that are reported.<br />
<br />
=== Circular Scrolling ===<br />
<br />
Circular scrolling is a feature that Synaptics offers which closely resembles the behaviour of iPods. Instead of (or additional to) scrolling horizontally or vertically, you can scroll circularly. Some users find this faster and more precise.<br />
To enable circular scrolling, add the following options to the touchpad device section of {{ic|/etc/X11/xorg.conf.d/50-synaptics.conf}}:<br />
{{hc|/etc/X11/xorg.conf.d/50-synaptics.conf|<nowiki><br />
Section "InputClass"<br />
...<br />
Option "CircularScrolling" "on"<br />
Option "CircScrollTrigger" "0"<br />
...<br />
EndSection<br />
</nowiki>}}<br />
<br />
The option '''CircScrollTrigger''' may be one of the following values, determining which edge circular scrolling should start:<br />
<br />
0 All Edges<br />
1 Top Edge<br />
2 Top Right Corner<br />
3 Right Edge<br />
4 Bottom Right Corner<br />
5 Bottom Edge<br />
6 Bottom Left Corner<br />
7 Left Edge<br />
8 Top Left Corner<br />
<br />
Specifying something different from zero may be useful if you want to use circular scrolling in conjunction with horizontal and/or vertical scrolling. If you do so, the type of scrolling is determined by the edge you start from.<br />
<br />
To scroll fast, draw small circles in the center of your touchpad. To scroll slowly and more precise, draw large circles.<br />
<br />
=== Natural scrolling ===<br />
<br />
It is possible to enable natural scrolling through synaptics. Simply use negative values for {{ic|VertScrollDelta}} and {{ic|HorizScrollDelta}} like so:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/50-synaptics.conf|<nowiki><br />
Section "InputClass"<br />
...<br />
Option "VertScrollDelta" "-111"<br />
Option "HorizScrollDelta" "-111"<br />
...<br />
EndSection<br />
</nowiki>}}<br />
<br />
=== Software toggle ===<br />
<br />
You might want to turn the touchpad on and off with a simple button click or shortcut. This can be done by binding the following ''xinput''-based script to a keyboard event as explained in [[Extra keyboard keys in Xorg]]:<br />
<br />
{{hc|/usr/local/bin/touchpad_toggle.sh|2=<nowiki><br />
#!/bin/bash<br />
<br />
declare -i ID<br />
ID=`xinput list | grep -Eio '(touchpad|glidepoint)\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}'`<br />
declare -i STATE<br />
STATE=`xinput list-props $ID|grep 'Device Enabled'|awk '{print $4}'`<br />
if [ $STATE -eq 1 ]<br />
then<br />
xinput disable $ID<br />
# echo "Touchpad disabled."<br />
# notify-send 'Touchpad' 'Disabled' -i /usr/share/icons/Adwaita/48x48/devices/input-touchpad.png<br />
else<br />
xinput enable $ID<br />
# echo "Touchpad enabled."<br />
# notify-send 'Touchpad' 'Enabled' -i /usr/share/icons/Adwaita/48x48/devices/input-touchpad.png<br />
fi<br />
</nowiki>}}<br />
<br />
{{Tip|When using external monitors with [[bumblebee]], the touchpad can be configured on the second X server by prepending {{ic|1=DISPLAY=:8}} to the command.}} <br />
<br />
Alternatively, {{ic|synclient}} can be used to toggle the touchpad. However, it can only turn off touch events but not physical clickpad button usage:<br />
<br />
{{hc|/usr/local/bin/touchpad.sh|<nowiki><br />
#!/bin/bash<br />
<br />
synclient TouchpadOff=$(synclient -l | grep -c 'TouchpadOff.*=.*0')<br />
</nowiki>}}<br />
<br />
=== Disable trackpad while typing ===<br />
<br />
==== Using the driver's automatic palm detection ====<br />
<br />
First of all you should test if it works properly for your trackpad and if the settings are accurate. Enable palm detection with<br />
<br />
$ synclient PalmDetect=1<br />
<br />
Then test the typing. You can tweak the detection by setting the minimum width for the touch to be considered a palm, for example<br />
<br />
$ synclient PalmMinWidth=8<br />
<br />
And you can tweak the minimum pressure required for the touch to be considered a palm, for example<br />
<br />
$ synclient PalmMinZ=100<br />
<br />
{{Tip|To help find the best values for palm detection, you can use {{pkg|evtest}} to see the width and Z values reported during touchpad use.}}<br />
<br />
Once you have found the correct settings, you can add them to your [[#Configuration|config file]]:<br />
<br />
{{bc|<nowiki><br />
Option "PalmDetect" "1"<br />
Option "PalmMinWidth" "8"<br />
Option "PalmMinZ" "100"<br />
</nowiki>}}<br />
<br />
{{Warning|1=For some touchpads, an [https://bugzilla.kernel.org/show_bug.cgi?id=77161 issue] with the kernel can cause the palm width to always be reported as 0. This breaks palm detection in a majority of cases. Pending an actual fix, you can [https://gist.github.com/silverhammermba/a231c8156ecaa63c86f1 patch] the synaptics package to use only Z for palm detection.}}<br />
<br />
{{Tip|If you experience problems with consistent palm detection for your hardware, an alternative to try is [[libinput]].}}<br />
<br />
==== Using syndaemon ====<br />
<br />
{{ic|syndaemon}} monitors keyboard activity and disables the touchpad while typing. It has several options to control when the disabling occurs. View them with<br />
<br />
$ syndaemon -h<br />
<br />
For example, to disable tapping and scrolling for 2 seconds after each keypress (ignoring modifier keys like Ctrl), use<br />
<br />
$ syndaemon -i 2 -t -k <br />
<br />
Once you have determined the options you like, you should use your login manager or [[xinitrc]] to have it run automatically when X starts. The {{ic|-d}} option will make it start in the background as a daemon.<br />
<br />
=== Disable touchpad on mouse detection ===<br />
<br />
With the assistance of [[udev]], it is possible to automatically disable the touchpad if an external mouse has been plugged in. To achieve this, use one of the following rules.<br />
<br />
==== Basic desktop ====<br />
<br />
This is a basic rule generally for non-"desktop environment" sessions:<br />
<br />
{{hc|/etc/udev/rules.d/01-touchpad.rules|2=<br />
SUBSYSTEM=="input", KERNEL=="mouse[0-9]*", ACTION=="add", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/''username''/.Xauthority", RUN+="/usr/bin/synclient TouchpadOff=1"<br />
SUBSYSTEM=="input", KERNEL=="mouse[0-9]*", ACTION=="remove", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/''username''/.Xauthority", RUN+="/usr/bin/synclient TouchpadOff=0"<br />
}}<br />
<br />
==== GDM ====<br />
<br />
{{Accuracy|saying that GDM ''usually'' does something does not make sense}}<br />
<br />
GDM usually stores the Xauthority files in {{ic|/var/run/gdm}} in a randomly-named directory. You should find your actual path to the Xauthority file which can be done using {{ic|ps ax}}. For some reason multiple authority files may appear for a user, so a rule like will be necessary:<br />
<br />
{{hc|/etc/udev/rules.d/01-touchpad.rules|2=<br />
SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ACTION=="add", PROGRAM="/usr/bin/find /var/run/gdm -name ''username'' -print0 -quit", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="$result/database", RUN+="/usr/bin/synclient TouchpadOff=1"<br />
SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ACTION=="remove", PROGRAM="/usr/bin/find /var/run/gdm -name ''username'' -print0 -quit", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="$result/database", RUN+="/usr/bin/synclient TouchpadOff=0"<br />
}}<br />
<br />
Furthermore, you should validate that your udev script is running properly! You can check for the conditions using {{ic| udevadm monitor -p}} which must be run as root.<br />
<br />
===== With syndeamon running =====<br />
<br />
{{ic|syndaemon}} whether started by the [[#Using syndaemon|user]] or the desktop environment can conflict with synclient and will need to be disabled. A rule like this will be needed:<br />
<br />
{{hc|/etc/udev/rules.d/01-touchpad.rules|2=<br />
SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ACTION=="add", PROGRAM="/usr/bin/find /var/run/gdm -name ''username'' -print -quit", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="$result/database", RUN+="/bin/sh -c '/usr/bin/synclient TouchpadOff=1 ; sleep 1; /bin/killall syndaemon; '"<br />
}}<br />
<br />
===== touchpad-state =====<br />
<br />
An AUR package {{aur|touchpad-state-git}} has been created around the udev rules above. It includes a udev rule and script:<br />
<br />
touchpad-state [--off] [--on]<br />
<br />
==== GNOME ====<br />
<br />
GNOME users can install GNOME shell extension [https://extensions.gnome.org/extension/131/touchpad-indicator/ Touchpad Indicator], change "Switch Method" to "Synclient" and enable "Automatically switch Touchpad On/Off" in its preferences.<br />
<br />
==== KDE ====<br />
<br />
If using KDE, the package {{pkg|kcm-touchpad}}{{Broken package link|{{aur-mirror|kcm-touchpad}}}} can be set to disable the touchpad on mouse detection.<br />
<br />
If using Plasma, the package {{Pkg|kcm-touchpad-frameworks}}{{Broken package link|replaced by {{Pkg|plasma-desktop}}}} can be used to manage the touchpad.<br />
<br />
==== System with multiple X sessions ====<br />
<br />
{{Accuracy|Hard-coded {{ic|DISPLAY}} variable does not work with multiple X sessions.}} <br />
<br />
For an environment where multiple users are present, a slightly different approach is needed to detect the current users X environment. This script will help achieving this:<br />
<br />
{{hc|/usr/bin/mouse-pnp-event-handler.sh|<nowiki><br />
#!/bin/sh<br />
## $1 = "add" / "remove"<br />
## $2 = %k from udev <br />
<br />
## Set TRACKPAD_NAME according to your configuration. <br />
## Check your trackpad name with: <br />
## find /sys/class/input/ -name mouse* -exec udevadm info -a {} \; | grep 'ATTRS{name}'<br />
TRACKPAD_NAME="SynPS/2 Synaptics TouchPad"<br />
<br />
USERLIST=$(w -h | cut -d' ' -f1 | sort | uniq)<br />
MOUSELIST=$(find /sys/class/input/ -name mouse*)<br />
<br />
for CUR_USER in ${USERLIST}; do<br />
CUR_USER_XAUTH="$(sudo -Hiu ${CUR_USER} env | grep -e "^HOME=" | cut -d'=' -f2)/.Xauthority"<br />
<br />
<br />
## Can't find a way to get another users DISPLAY variable from an isolated root environment. Have to set it manually.<br />
#CUR_USER_DISPL="$(sudo -Hiu ${CUR_USER} env | grep -e "^DISPLAY=" | cut -d'=' -f2)"<br />
CUR_USER_DISPL=":0"<br />
<br />
export XAUTHORITY="${CUR_USER_XAUTH}"<br />
export DISPLAY="${CUR_USER_DISPL}"<br />
<br />
if [ -f "${CUR_USER_XAUTH}" ]; then<br />
case "$1" in<br />
"add")<br />
/usr/bin/synclient TouchpadOff=1<br />
/usr/bin/logger "USB mouse plugged. Disabling touchpad for $CUR_USER. ($XAUTHORITY - $DISPLAY)"<br />
;;<br />
"remove")<br />
## Only execute synclient if there are no external USB mice connected to the system.<br />
EXT_MOUSE_FOUND="0"<br />
for CUR_MOUSE in ${MOUSELIST}; do<br />
if [ "$(cat ${CUR_MOUSE}/device/name)" != "${TRACKPAD_NAME}" ]; then<br />
EXT_MOUSE_FOUND="1"<br />
fi<br />
done<br />
if [ "${EXT_MOUSE_FOUND}" == "0" ]; then<br />
/usr/bin/synclient TouchpadOff=0<br />
/usr/bin/logger "No additional external mice found. Enabling touchpad for $CUR_USER."<br />
else<br />
logger "Additional external mice found. Won't enable touchpad yet for $CUR_USER."<br />
fi<br />
;;<br />
esac<br />
fi<br />
done<br />
</nowiki>}}<br />
<br />
Update the {{ic|TRACKPAD_NAME}} variable for your system configuration.<br />
Run {{ic|<nowiki>find /sys/class/input/ -name mouse* -exec udevadm info -a {} \; | grep 'ATTRS{name}'</nowiki>}} to get a list of useful mice-names. Choose the one for your trackpad.<br />
<br />
Then have udev run this script when USB mices are plugged in or out, with these udev rules:<br />
<br />
{{hc|/etc/udev/rules.d/01-touchpad.rules|2=<br />
SUBSYSTEM=="input", KERNEL=="mouse[0-9]*", ACTION=="add", RUN+="/usr/bin/mouse-pnp-event-handler.sh add %k"<br />
SUBSYSTEM=="input", KERNEL=="mouse[0-9]*", ACTION=="remove", RUN+="/usr/bin/mouse-pnp-event-handler.sh remove %k"<br />
}}<br />
<br />
=== Buttonless touchpads (aka ClickPads) ===<br />
<br />
Ever more laptops have a special kind of touchpad which has a single mouse button as part of the tracking plate, instead of external buttons. For example, the 2015 Dell XPS 13, HP series 4500 ProBooks, ThinkPad X220 and X1 ThinkPad series have this kind of a touchpad. By default, the whole button area is detected as a left button, so right and middle-click functions and click + drag will not work. It is possible to define two and three finger clicks as right and middle button clicks, and/or to define parts of the click pad surface as right and middle buttons. Note that although the driver registers multiple touches, it does not track individual fingers (as of version 1.7.1) which results in confusing behavior when using physical buttons of a clickpad for drag-and-drop and other gestures: you have to click with two or three fingers but then only move one of them while holding the button down with another. You can look into the {{AUR|xf86-input-mtrack}} driver for better multitouch support.<br />
<br />
Some desktop environments (KDE and GNOME at least) define sane and useful default configurations for clickpads, providing a right button at the bottom right of the pad, recognising two and three-finger clicks anywhere on the pad as right and middle clicks, and providing configuration options to define two and three-finger taps as right and middle clicks. If your desktop does not do this, or if you want more control, you can modify the touchpad section in {{ic|/etc/X11/xorg.conf.d/50-synaptics.conf}} (or better, of your custom synaptics configuration file prefixed with a higher number). For example:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/50-synaptics.conf|<nowiki><br />
Section "InputClass"<br />
Identifier "touchpad"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
# Enable clickpad/multitouch support<br />
Option "ClickPad" "true"<br />
# Middle-button emulation is not supported<br />
Option "EmulateMidButtonTime" "0"<br />
# Define right soft button at the bottom<br />
Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0"<br />
EndSection<br />
</nowiki>}}<br />
<br />
The format for the SoftButtonAreas option is (from {{ic|man 4 synaptics}}):<br />
{{bc|RightButtonAreaLeft RightButtonAreaRight RightButtonAreaTop RightButtonAreaBottom MiddleButtonAreaLeft MiddleButtonAreaRight MiddleButtonAreaTop MiddleButtonAreaBottom}}<br />
<br />
The above "SoftButtonAreas" option is commonly found in documentation or synaptics packages, and it defines the right half of the bottom 18% of the touchpad as a right button. There is '''no middle button''' defined. If you want to define a middle button remember one key piece of information from the manual; '''edge set to 0 extends to infinity in that direction.'''<br />
<br />
In the following example the right button will occupy the rightmost 40% of the button area and the middle button 20% of it in the center. The leftmost 40% remains as a left button (as does the rest of the clickpad):<br />
<br />
...<br />
Option "SoftButtonAreas" "60% 0 82% 0 40% 59% 82% 0"<br />
...<br />
<br />
You can use {{ic|<nowiki>synclient</nowiki>}} to check the soft button areas: <br />
<br />
{{hc|<nowiki>$ synclient -l | grep -i ButtonArea</nowiki>|<nowiki><br />
RightButtonAreaLeft = 3914<br />
RightButtonAreaRight = 0<br />
RightButtonAreaTop = 3918<br />
RightButtonAreaBottom = 0<br />
MiddleButtonAreaLeft = 3100<br />
MiddleButtonAreaRight = 3873<br />
MiddleButtonAreaTop = 3918<br />
MiddleButtonAreaBottom = 0<br />
</nowiki>}}<br />
<br />
If your buttons are not working, soft button areas are not changing, ensure you do not have a synaptics configuration file distributed by a package which is overriding your custom settings (ie. some AUR packages distribute configurations prefixed with very high numbers).<br />
<br />
These settings cannot be modified on the fly with {{ic|<nowiki>synclient</nowiki>}}, however, {{ic|<nowiki>xinput</nowiki>}} works:<br />
<br />
xinput set-prop "SynPS/2 Synaptics TouchPad" "Synaptics Soft Button Areas" 4000 0 4063 0 3000 4000 4063 0<br />
<br />
You cannot use percentages with this command, so look at {{ic|/var/log/Xorg.0.log}} to figure out the touchpad x and y-axis ranges.<br />
<br />
==== Bottom edge correction ====<br />
<br />
In some cases, for example Toshiba Satellite P50, everything work out of the box except often your click are seen as mouse movement and the cursor will jump away just before registering the click.<br />
This can be easily solved running<br />
<br />
$ synclient -l | grep BottomEdge<br />
<br />
take the BottomEdge value and subtract a the wanted height of your button, then temporary apply with<br />
<br />
$ synclient AreaBottomEdge=4000<br />
<br />
when a good value has been found make it a fixed correction with<br />
<br />
{{hc|/etc/X11/xorg.conf.d/50-synaptics.conf|<nowiki><br />
...<br />
Option "AreaBottomEdge" "4000"<br />
...<br />
</nowiki>}}<br />
<br />
{{Note|The area will not act as touchpad if the touch '''begins''' in that area, but it can still be used if the touch has originated outside.}}<br />
<br />
== Troubleshooting ==<br />
<br />
=== Touchpad does not work after resuming from hibernate/suspend ===<br />
Occasionally touchpads will fail to work when the computer resumes from sleep or hibernation. This can often be corrected without rebooting by<br />
* Switching to a console and back again,<br />
* entering sleep mode again, and resuming again, or<br />
* locating the correct kernel module, then removing it and inserting it again. <br />
{{Note|You can use Ctrl-Alt-F1 through F8 to switch to a console without using the mouse.}}<br />
modprobe -r psmouse #psmouse happens to be the kernel module for my touchpad (Alps DualPoint)<br />
modprobe psmouse<br />
Now switch back to the tty that X is running on. If you chose the right module, your touchpad should be working again.<br />
<br />
=== xorg.conf.d/50-synaptics.conf does not seem to apply under GNOME and MATE ===<br />
<br />
[[GNOME]] and [[MATE]], by default, will overwrite various options for your touch-pad. This includes configurable features for which there is no graphical configuration within GNOME's system control panel. This may cause it to appear that {{ic|/etc/X11/xorg.conf.d/50-synaptics.conf}} is not applied. Please refer to the GNOME section in this article to prevent this behavior.<br />
<br />
* [[#Xfce4/Cinnamon]]<br />
<br />
=== The touchpad is not working, Xorg.0.log shows "Query no Synaptics: 6003C8" ===<br />
<br />
Due to the way synaptics is currently set-up, 2 instances of the synaptics module are loaded. We can recognize this situation by opening the xorg log file ({{ic|/var/log/Xorg.0.log}}) and noticing this:<br />
<br />
{{hc|/var/log/Xorg.0.log|<nowiki><br />
[ 9304.803] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "evdev touchpad catchall"<br />
[ 9304.803] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "touchpad catchall"<br />
</nowiki>}}<br />
<br />
Notice how 2 differently named instances of the module are being loaded. In some cases, this causes the touchpad to become nonfunctional.<br />
<br />
We can prevent this double loading by adding {{ic|MatchDevicePath "/dev/input/event*"}} to our {{ic|/etc/X11/xorg.conf.d/50-synaptics.conf}} file:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/50-synaptics.conf|<nowiki><br />
Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "TapButton1" "1"<br />
Option "TapButton2" "2"<br />
Option "TapButton3" "3"<br />
EndSection <br />
</nowiki>}}<br />
<br />
Restart X and check xorg logs again, the error should be gone and the touchpad should be functional.<br />
<br />
related bugreport: {{Bug|20830}}<br />
<br />
related forum topics:<br />
* https://bbs.archlinux.org/viewtopic.php?id=104769<br />
* https://bbs.archlinux.org/viewtopic.php?pid=825690<br />
<br />
=== Touchpad detected as "PS/2 Generic Mouse" or "Logitech PS/2 mouse" ===<br />
<br />
This can be caused by a number of issues;<br />
<br />
==== Elantech touchpads ====<br />
This can happen with some laptops with an Elantech touchpad, for example the ASUS x53s. In this situation you need {{AUR|psmouse-alps-driver}}{{Broken package link|{{aur-mirror|psmouse-alps-driver}}}} package from [[AUR]].<br />
<br />
==== Laptops with touchscreen & touchpad ====<br />
There also seems to be a problem with laptops which have both a touchscreen & a touchpad, such as the Dell XPS 12 or Dell XPS 13. To fix this, you can [[blacklisting|blacklist]] the {{ic|i2c_hid}} driver, this does have the side-effect of disabling the touchscreen though.<br />
<br />
This [http://www.spinics.net/lists/linux-input/msg27768.html seems to be a known problem]. Also see [https://bbs.archlinux.org/viewtopic.php?pid=1419078 this thread].<br />
<br />
Post kernel 3.15, having the module blacklisted may cause touchpad to stop working completely. Removing the blacklist should allow this to start working with limited functionality, see {{Bug|40921}}.<br />
<br />
=== Non-functional Synaptics special abilities (multi-tap, scrolling, etc.) ===<br />
<br />
In some cases Synaptics touchpads only work partially. Features like two-finger scrolling or two-finger middle-click do not work even if properly enabled. This is probably related to the [[#The touchpad is not working, Xorg.0.log shows "Query no Synaptics: 6003C8"|The touchpad is not working]] problem mentioned above. Fix is the same, prevent double module loading.<br />
<br />
If preventing the module from loading twice does not solve your issue, try commenting out the toggle "MatchIsTouchpad" (which is now included by default in the synaptics config).<br />
<br />
If clicking with either 2 or 3 fingers is interpreted as a right-click, so you cannot get a middle click either way regardless of configuration, this bug is probably the culprit: https://bugs.freedesktop.org/show_bug.cgi?id=55365<br />
<br />
=== Cursor jump ===<br />
<br />
Some users have their cursor inexplicably ''jump'' around the screen. There currently no patch for this, but the developers are aware of the problem and are working on it.<br />
<br />
Another posibility is that you are experiencing ''IRQ losses'' related to the i8042 controller (this device handles the keyboard and the touchpad of many laptops), so you have two posibilities here:<br />
<br />
1. rmmod && insmod the psmouse module.<br />
2. append i8042.nomux=1 to your [[kernel parameters]] and reboot your machine.<br />
<br />
=== Touchpad device is not located at {{ic|/dev/input/*}} ===<br />
<br />
If that is the case, you can use this command to display information about your input devices:<br />
<br />
$ cat /proc/bus/input/devices<br />
<br />
Search for an input device which has the name "SynPS/2 Synaptics TouchPad". The "Handlers" section of the output specifies what device you need to specify.<br />
<br />
'''Example output:'''<br />
<br />
{{hc|$ cat /proc/bus/input/devices|<nowiki><br />
I: Bus=0011 Vendor=0002 Product=0007 Version=0000<br />
N: Name="SynPS/2 Synaptics TouchPad"<br />
P: Phys=isa0060/serio4/input0<br />
S: Sysfs=/class/input/input1<br />
H: Handlers=mouse0 event1<br />
B: EV=b<br />
B: KEY=6420 0 7000f 0<br />
</nowiki>}}<br />
<br />
In this case, the {{ic|Handlers}} are {{ic|mouse0}} and {{ic|event1}}, so {{ic|/dev/input/mouse0}} would be used.<br />
<br />
{{Expansion|TODO: explain how to apply this in {{ic|/etc/X11/xorg.conf.d/50-synaptics.conf}}}}<br />
<br />
=== Firefox and special touchpad events ===<br />
<br />
You can enable/disable some special events that Firefox handles upon tapping or scrolling certain parts of your touchpad by editing the settings of those actions.<br />
Type '''about:config''' in your Firefox address bar.<br />
To alter options, double-click on the line in question.<br />
<br />
==== Firefox 17.0 and later ====<br />
<br />
Horizontal scrolling will now by default scroll through pages and not through your history. To reenable Mac-style forward/backward with two-finger swiping, edit:<br />
<br />
mousewheel.default.action.override_x = 2<br />
<br />
You may encounter accidental forwards/backwards while scrolling vertically. To change Firefox's sensitivity to horizontal swipes, edit:<br />
<br />
mousewheel.default.delta_multiplier_x<br />
<br />
The optimum value will depend on your touchpad and how you use it, try starting with {{ic|10}}. A negative value will reverse the swipe directions.<br />
<br />
=== Opera: horizontal scrolling issues ===<br />
<br />
Same as above.<br />
To fix it, go to ''Tools > Preferences > Advanced > Shortcuts''. Select "Opera Standard" mouse setup and click "Edit". In "Application" section:<br />
{{Accuracy|Description here is not so clear and i don't use Opera,Please make it clear :)}}<br />
* assign key "Button 6" to command "Scroll left"<br />
* assign key "Button 7" to command "Scroll right"<br />
<br />
=== Scrolling and multiple actions with Synaptics on LG laptops ===<br />
<br />
These problems seem to be occurring on several models of LG laptops.<br />
Symptoms include: when pressing Mouse Button 1, Synaptics interprets it as ScrollUP and a regular button 1 click; same goes for button 2.<br />
<br />
The scrolling issue can be resolved by entering in {{ic|xorg.conf}}:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/xorg.conf|Option "UpDownScrolling" "0"}}<br />
<br />
{{Note|This will make Synaptics interpret one button push as three. There is a patch written by Oskar Sandberg[http://www.math.chalmers.se/~ossa/linux/lg_tx_express.html] that removes these clicks.}}<br />
<br />
Apparently, when trying to compile this against the latest version of Synaptics it fails. The solution to this is using the GIT repository for Synaptics[http://web.telia.com/~u89404340/touchpad/synaptics/.git].<br />
<br />
There is also a package build file in the AUR to automate this: {{AUR|xf86-input-synaptics-lg}}{{Broken package link|{{aur-mirror|xf86-input-synaptics-lg}}}}.<br />
<br />
To build the package after downloading the tarball and unpacking it, execute:<br />
<br />
$ cd synaptics-git<br />
$ makepkg<br />
<br />
=== Other external mouse issues ===<br />
<br />
First, make sure your section describing the external mouse contains this line (or that the line looks like this):<br />
<br />
{{hc|/etc/X11/xorg.conf.d/xorg.conf|Option "Device" "/dev/input/mice"}}<br />
<br />
If the "Device" line is different, change it to the above and try to restart X. If this does not solve your problem, make your '''touchpad''' is the CorePointer in the "Server Layout" section:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/xorg.conf|InputDevice "Touchpad" "CorePointer"}}<br />
<br />
and make your external device "SendCoreEvents":<br />
<br />
{{hc|/etc/X11/xorg.conf.d/xorg.conf|InputDevice "USB Mouse" "SendCoreEvents"}}<br />
<br />
finally add this to your external device's section:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/xorg.conf|Option "SendCoreEvents" "true"}}<br />
<br />
If all of the above does not work for you, please check relevant bug trackers for possible bugs, or go through the forums to see if anyone has found a better solution.<br />
<br />
=== Touchpad synchronization issues ===<br />
<br />
{{Out of date|section=Outdated "Touchpad synchronization issues" section}}<br />
<br />
Sometimes the cursor may freeze for several seconds or start acting on its own for no apparent reason. This behavior is accompanied by records in {{ic|/var/log/messages.log}}<br />
<br />
{{hc|/var/log/messages.log|psmouse.c: TouchPad at isa0060/serio1/input0 lost synchronization, throwing 3 bytes away}}<br />
<br />
This problem has no general solution, but there are several possible workarounds.<br />
* If you use CPU frequency scaling, avoid using the "ondemand" governor and use the "performance" governor when possible, as the touchpad may lose sync when the CPU frequency changes.<br />
* Avoid using an ACPI battery monitor.<br />
* Attempt to load psmouse with "proto=imps" option. To do that, add this line to your {{ic|/etc/modprobe.d/modprobe.conf}}:<br />
<br />
{{hc|/etc/modprobe.d/modprobe.conf|2=options psmouse proto=imps}}<br />
<br />
* Try another desktop environment. Some users report that this problem only occurs when using XFCE or GNOME, for whatever reason<br />
<br />
===Xorg.log.0 shows SynPS/2 Synaptics touchpad can not grab event device, errno=16 ===<br />
<br />
If you are using Xorg 7.4, you may get a warning like this from {{ic|/var/log/Xorg.0.log}}, thais is because the driver will grab the event device for exclusive use when using the Linux 2.6 event protocol. When it fails, X will return this error message.<br />
<br />
Grabbing the event device means that no other user space or kernel space program sees the touchpad events. This is desirable if the X config file includes {{ic|/dev/input/mice}} as an input device, but is undesirable if you want to monitor the device from user space.<br />
<br />
If you want to control it, add or modify the "GrabEventDevice" option in you touchpad section in {{ic|/etc/X11/xorg.conf.d/50-synaptics.conf}}:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/50-synaptics.conf|2=<br />
...<br />
Option "GrabEventDevice" "''boolean''"<br />
...<br />
}}<br />
<br />
This will come into effect when X is restarted, though you can also change it by using synclient. When changing this parameter with the synclient program, the change will not take effect until the Synaptics driver is disabled and re-enabled. This can be achieved by switching to a text console and then switching back to X.<br />
<br />
=== Synaptics loses multitouch detection after rebooting from Windows ===<br />
<br />
Many drivers include a firmware that is loaded into flash memory when the computer boots. This firmware is not necessarily cleared upon shutdown, and is not always compatible with Linux drivers. The only way to clear the flash memory is to shutdown completely rather than using reboot. It is generally considered best practice to never use reboot when switching between operating systems.<br />
<br />
=== Touchpad not recognized after shutdown from Arch ===<br />
Certain touchpads (elantech in particular) will fail to be recognized as a device of any sort after a standard shutdown from Arch linux. There are multiple possible solutions to this problem:<br />
* Boot into a Windows partition/install disk and shutdown from there.<br />
* Wait approximately 1 minute before turning on the computer after shutdown.<br />
* As discussed in https://bugzilla.kernel.org/show_bug.cgi?id=81331#c186 a patch has been merged into the stable kernel that provides a fix for Elantech touchpads. Gigabyte P34, P35v2 and X3 models are supported by default, for others (especially rebranded Gigabyte laptops, like XMG's) {{ic|1=i8042.kbdreset=1}} can be set as kernel parameter.<br />
<br />
=== Trackpoint and Clickpad ===<br />
Newer Thinkpads do not have physical buttons for their Trackpoint anymore and instead use the upper area of the Clickpad for buttons (Left, Middle, Right). <br />
Apart from the ergonomic viewpoint this works quite well with current Xorg. Unfortunately mouse wheel emulation using the middle button is not supported yet. Install {{AUR|xf86-input-evdev-trackpoint}} from the AUR for a patched and properly configured version if you intend to use the Trackpoint.<br />
<br />
=== ASUS Touchpads only recognised as PS/2 FocalTech emulated mouse ===<br />
<br />
# Install the linux header for your kernel<br />
# Install the focaltech-dkms from https://github.com/hanipouspilot/focaltech-dkms<br />
# Restart your computer<br />
# Edit your settings in the "Mouse and Trackpad" settings.<br />
<br />
=== Trouble with touchpad settings under GNOME ===<br />
<br />
Synaptics is no longer supported under GNOME. Migrate to [[libinput]]. See [https://bugzilla.gnome.org/show_bug.cgi?id=764257#c12 this bug report].<br />
<br />
== See also ==<br />
<br />
* [http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/ Synaptics touchpad driver]<br />
* [http://www.x.org/archive/X11R7.5/doc/man/man4/synaptics.4.html Synaptics manual on x.org ]</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=Talk:ATI&diff=414838Talk:ATI2016-01-09T22:14:08Z<p>Lordheavy: removing from talk page, this is related to kernel module, not xorg, and this page isn't for support</p>
<hr />
<div>== Move ==<br />
<br />
So this page now covers {{Pkg|xf86-video-ati}} and {{Pkg|xf86-video-amdgpu}}. As I understand they are closely related and share quite some code, so it makes sense to keep them on the same page.<br />
<br />
The name of the page doesn't seem appropriate anymore however. I am thinking something like "[[AMD graphics]]", like [[Intel graphics]], although that might not make clear that this is about the open source driver. On the other hand, [[AMD graphics (open-source)]] or [[AMD open-source graphics]] might be too long.<br />
<br />
What do other people think? Should we move the page? What should be the new name? Thanks. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 16:15, 24 November 2015 (UTC)<br />
<br />
:How much differences are between kernel/module parameters, etc.?<br />
:Don't forget troubleshooting, debugging, tools, etc. may differ.<br />
:I like the name AMD graphics, and I would prefer this for the ('official') AMD driver.<br />
:A separate page would be something I prefer, but if they are '80/90%' the same, it may be more clear to keep using this page.<br />
:[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 20:53, 25 November 2015 (UTC)<br />
<br />
::I am not really sure about the differences to be honest, it might well be that there is quite a lot of difference. There is a lot of information on [https://www.phoronix.com/scan.php?page=search&q=AMDGPU Phoronix], but a lot is still unclear to me. It would be nice to get some input from someone who has some more experience with it.<br />
::"AMD graphics" indeed is too ambiguous to use for the open-source driver. If we decide to split off the AMDGPU stuff, we can just keep this at [[ATI]] and the new page at [[AMDGPU]], I think.<br />
::[[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 21:36, 25 November 2015 (UTC)<br />
<br />
:::Although Phoronix daily publish articles about the new driver, it would be better to have a more 'reliable' source.<br />
:::Maybe we need to wait for users upgrading their cards and also give (the) AMD (module) a bit more time to develop.<br />
:::See my other question about the architect/GPU's that need or could upgrade.<br />
:::Is it supposed to replace the xf86-video-ati driver?<br />
:::[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 21:52, 25 November 2015 (UTC)<br />
<br />
== Adding xf86-video-amdgpu ==<br />
<br />
I would like to know what cards should use xf86-video-amdgpu instead of xf86-video-ati; if I understand correctly it is possible (some) older cards are also compatible with this driver.<br />
Is there an official status page (like if DPM works, what is supported, etc.)?<br />
<br />
Thanks!<br />
<br />
[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 20:44, 25 November 2015 (UTC)<br />
<br />
:The [http://www.x.org/wiki/RadeonFeature/ feature matrix] says only "Volcanic Islands" GPUs are supported, I believe that that is the codename for Graphics Core Next (GCN) 1.2. You can find all cards that are based on GCN 1.2 at [[Wikipedia:List of AMD graphics processing units]]. The feature matrix also lists what features are supported.<br />
:I am not sure about older cards, but I think this is as "official" as it's going to get. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 21:19, 25 November 2015 (UTC)<br />
<br />
::Thanks for the reply. :)<br />
::I've read a few reports of users that the driver works on older GCN's, but this should need more testing.<br />
::How much stable and complete is the new driver? I think we need more info before adding a new wiki page.<br />
::[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 22:00, 25 November 2015 (UTC)</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=ATI&diff=414835ATI2016-01-09T22:04:33Z<p>Lordheavy: the driver is radeonsi for mesa/OpenGL, not radeon</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[de:ATI]]<br />
[[es:ATI]]<br />
[[fr:ATI]]<br />
[[it:ATI]]<br />
[[ja:ATI]]<br />
[[pl:ATI]]<br />
[[ru:ATI]]<br />
[[tr:ATI]]<br />
[[zh-CN:ATI]]<br />
{{Related articles start}}<br />
{{Related|AMD Catalyst}}<br />
{{Related|Xorg}}<br />
{{Related articles end}}<br />
<br />
{{Out of date|Owners of newer cards need {{Pkg|xf86-video-amdgpu}} instead of {{Pkg|xf86-video-ati}}.|section=Adding xf86-video-amdgpu}}<br />
<br />
Owners of '''AMD''' (previously '''ATI''') video cards have a choice between AMD's [[AMD Catalyst|proprietary driver]] ({{AUR|catalyst}}) and the open source driver ({{Pkg|xf86-video-ati}}). This article covers the open source driver.<br />
<br />
The open source driver is ''on par'' performance-wise with the proprietary driver for many cards. (See this [http://www.phoronix.com/scan.php?page=article&item=radeonsi-cat-wow&num=1 benchmark].) It also has good dual-head support but worse TV-out support. Newer cards support might be lagging behind Catalyst.<br />
<br />
If unsure, try the open source driver first, it will suit most needs and is generally less problematic. (See the [http://www.x.org/wiki/RadeonFeature feature matrix] to know what is supported for the GPU.)<br />
<br />
== Naming conventions ==<br />
<br />
The [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).<br />
<br />
For a table of core and product series, see [[Wikipedia:Radeon]] and [[Wikipedia:List of AMD graphics processing units]].<br />
<br />
== Overview ==<br />
*Latest Fiji and Tonga based graphics cards (Volcanic Islands/GCN 1.2) utilizing the new amdgpu kernel driver currently lack reclocking support, preventing the system to access the full performance. Reclocking is expected after Kernel release 4.4.<br />
*Radeons in the Rx 300 (except for R9 380), Rx 200 and HD 7xxx (Sea/Southern Islands or GCN 1.1/1.0) series and newer (except maybe the latest series) have almost complete feature coverage and offer best performance.<br />
*Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D accelerations are provided.<br />
*Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides. Performance varies from medicore for some cards to excellent for others.<br />
*Support of DRI1, RandR 1.2/1.3/1.4, Glamor, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2.<br />
<br />
Check the [http://www.x.org/wiki/RadeonFeature feature matrix] for more details.<br />
<br />
Generally, '''xf86-video-ati''' should be your first choice, no matter which AMD/ATI card you own. In case you need to use a driver for newer AMD cards, you should consider the proprietary '''catalyst''' driver.<br />
<br />
{{Note|'''xf86-video-ati''' is specified as '''''radeon''''' for the kernel and in {{ic|xorg.conf}}. }}<br />
<br />
== Installation ==<br />
<br />
{{Note|If coming from the proprietary Catalyst driver, see [[AMD Catalyst#Uninstallation]] first.}}<br />
<br />
[[Install]] the {{Pkg|xf86-video-ati}} package. It provides the DDX driver for 2D acceleration and it pulls in {{Pkg|mesa}} as a dependency, providing the DRI driver for 3D acceleration.<br />
<br />
To enable OpenGL support, also install {{Pkg|mesa-libgl}}. If you are on x86_64 and need 32-bit support, also install {{Pkg|lib32-mesa-libgl}} from the [[multilib]] repository.<br />
<br />
Support for [[#Enabling video acceleration|accelerated video decoding]] is provided by {{Pkg|mesa-vdpau}} and {{Pkg|lib32-mesa-vdpau}} packages.<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Loading ==<br />
<br />
The radeon kernel module should load fine automatically on system boot.<br />
<br />
If it does not happen, then:<br />
<br />
* Make sure you do '''not''' have {{ic|nomodeset}} or {{ic|1=vga=}} as a [[kernel parameter]], since radeon requires kernel mode-setting.<br />
* Also, check that you have not disabled radeon by using any [[Kernel_modules#Blacklisting|kernel module blacklisting]].<br />
<br />
=== Enable early KMS ===<br />
<br />
{{Tip|If you have problems with the resolution, [[Kernel mode setting#Forcing modes and EDID]] may help.}}<br />
<br />
[[Kernel mode setting]] (KMS) is supported by the radeon driver and is mandatory and enabled by default. <br />
<br />
KMS is typically initialized after the [[Arch boot process#initramfs|initramfs stage]]. It is possible, however, to enable KMS during the initramfs stage. To do this, add the {{ic|radeon}} module to the {{ic|MODULES}} line in {{ic|/etc/mkinitcpio.conf}}:<br />
<br />
MODULES="... radeon ..."<br />
<br />
Now, regenerate the initramfs:<br />
<br />
# mkinitcpio -p linux<br />
<br />
The change takes effect at the next reboot.<br />
<br />
== Performance tuning ==<br />
=== Enabling video acceleration ===<br />
[[VA-API]] and [[VDPAU]] can be installed to provide hardware accelerated video encoding and decoding.<br />
<br />
=== Driver Options ===<br />
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.<br />
<br />
Please read {{ic|man radeon}} and [http://www.x.org/wiki/RadeonFeature/#index4h2 RadeonFeature] first before applying driver options.<br />
<br />
'''ColorTiling''' and '''ColorTiling2D''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU:<br />
<br />
Option "ColorTiling" "on"<br />
Option "ColorTiling2D" "on"<br />
<br />
'''DRI3''' support can be enabled, instead of using the default '''DRI2'''. You may want to read the following benchmark by [http://www.phoronix.com/scan.php?page=article&item=radeon-dri3-perf&num=1 Phoronix] to give you an idea of the performance of DRI2 vs DRI3:<br />
<br />
Option "DRI" "3"<br />
<br />
'''TearFree''' is a tearing prevention using the hardware page flipping mechanism. Enabling this<br />
option currently disables Option "EnablePageFlip":<br />
<br />
Option "TearFree" "on"<br />
<br />
'''Acceleration architecture'''; Glamor is available as 2D acceleration method implement through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.<br />
Since xf86-video-ati driver-1:7.2.0-1, it is automatically enabled with radeonsi drivers (Southern Islands and superior GFX cards); on other graphic cards the method can be forced by adding AccelMethod '''glamor''' to the config file:<br />
<br />
Option "AccelMethod" "glamor"<br />
<br />
When using Glamor as acceleration architecture it is possible to enable the option '''ShadowPrimary''', enables a so-called "shadow primary" buffer for fast CPU access to pixel data, and separate scanout buf‐fers for each display controller (CRTC). This may improve performance for some 2D workloads, potentially at the expense of other (e.g. 3D, video) workloads. Note that enabling this option currently disables Option "EnablePageFlip":<br />
<br />
Option "ShadowPrimary" "on"<br />
<br />
'''EXAVSync ''' is only available when using EXA and can be enabled to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips:<br />
<br />
Option "EXAVSync" "yes"<br />
<br />
Below is a sample config file of {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "AccelMethod" "Glamor"<br />
Option "DRI" "3"<br />
Option "TearFree" "on"<br />
EndSection<br />
}}<br />
<br />
{{Tip|{{Pkg|driconf}} is a tool that allows to modify several settings: vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).}}<br />
<br />
=== Kernel Parameters ===<br />
{{Tip|You may want to debug the newly parameters with {{ic|systool}} as stated in [[Kernel modules#Obtaining information]].}}<br />
Useful [[kernel parameters]] may be {{ic|1=radeon.bapm=1}} [https://www.phoronix.com/scan.php?page=news_item&px=MTczMzI], {{ic|1=radeon.disp_priority=2}} [http://lists.freedesktop.org/pipermail/xorg/2013-February/055477.html], {{ic|1=radeon.hw_i2c=1}} [https://superuser.com/questions/723760/does-radeon-hw-i2c-1-has-any-thing-to-do-with-temperature-readings], {{ic|1=radeon.mst=1}} [https://www.phoronix.com/scan.php?page=news_item&px=Linux-4.1-Radeon-DP-MST], {{ic|1=radeon.msi=1}} (force-enable MSI-support), {{ic|1=radeon.audio=0}} (force-disable GPU audio) and/or {{ic|1=radeon.tv=0}} (disable TV-out).<br />
<br />
Defining the '''gartsize''', if not autodetected, can be done by adding {{ic|1=radeon.gartsize=32}} into [[kernel parameters]].<br />
<br />
{{Note|Setting this parameter should not be needed anymore with modern AMD videocards:<br />
{{bc|<nowiki><br />
[drm] Detected VRAM RAM=2048M, BAR=256M<br />
[drm] radeon: 2048M of VRAM memory ready<br />
[drm] radeon: 2048M of GTT memory ready.<br />
</nowiki>}}<br />
}}<br />
<br />
The changes take effect at the next reboot.<br />
<br />
==== Deactivating PCI-E 2.0 ====<br />
<br />
Since kernel 3.6, PCI-E v2.0 in '''radeon''' is turned on by default.<br />
<br />
It may be unstable with some motherboards, deactivation can be done by adding {{ic|1=radeon.pcie_gen2=0}} as a [[kernel parameters]].<br />
<br />
See [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article] for more information.<br />
<br />
=== Gallium Heads-Up Display ===<br />
<br />
The radeonsi driver supports activating a heads up display which can draw transparent graphs and text on top of applications that are rendering such as games. These can show such values as the current frame rate or the CPU load for each CPU core or an average of all of them. The HUD is controlled by the GALLIUM_HUD environment variable, and can be passed the following list of parameters among others:<br />
*"fps" - displays current frames per second<br />
*"cpu" - displays the average CPU load<br />
*"cpu0" - displays the CPU load for the first CPU core<br />
*"cpu0+cpu1" - displays the CPU load for the first two CPU cores<br />
*"draw-calls" - displays how many times each material in an object is drawn to the screen<br />
*"requested-VRAM" - displayed how much VRAM is being used on the GPU<br />
*"pixels-rendered" - displays how many pixels are being displayed<br />
<br />
To see a full list of parameters as well as some notes on operating GALLIUM_HUD you can also pass the "help" parameter to a simple application such as glxgears and see the corresponding terminal output:<br />
{{bc|1=# GALLIUM_HUD="help" glxgears }}<br />
<br />
More information can be found from this [http://lists.freedesktop.org/archives/mesa-dev/2013-March/036586.html mailing list post] or [https://kparal.wordpress.com/2014/03/03/fraps-like-fps-overlay-for-linux/ this blog post].<br />
<br />
== Hybrid graphics/AMD Dynamic Switchable Graphics ==<br />
<br />
It is the technology used on recent laptops equiped with two GPUs, one power-efficent (generally Intel integrated card) and one more powerful and more power-hungry (generally Radeon or Nvidia). There are two ways to get it work:<br />
<br />
* If it is not required to run 'GPU-hungry' applications, it is possible to disable the discrete card (see [https://help.ubuntu.com/community/HybridGraphics#Using_vga_switcheroo Ubuntu wiki]): {{ic|echo OFF > /sys/kernel/debug/vgaswitcheroo/switch}}.<br />
* [[PRIME]]: Is a proper way to use hybrid graphics on Linux, but still requires a bit of manual intervention from the user.<br />
<br />
== Powersaving ==<br />
{{Note|Power management is supported on all chips that include the appropriate power state tables in the vbios (R1xx and newer). "dpm" is only supported on R6xx and newer chips.}}<br />
<br />
With the radeon driver, power saving is disabled by default and has to be enabled manually if desired.<br />
<br />
You can choose between three different methods:<br />
<br />
# [[#Dynamic power management|dpm]] (enabled by default since kernel 3.13)<br />
# [[#Dynamic frequency switching|dynpm]]<br />
# [[#Profile-based frequency switching|profile]]<br />
<br />
'''It is hard to say which is the best for you, so you have to try it yourself!'''<br />
<br />
See http://www.x.org/wiki/RadeonFeature/#index3h2 for more details.<br />
<br />
=== Dynamic power management ===<br />
<br />
Since kernel 3.13, DPM is enabled by default for [http://kernelnewbies.org/Linux_3.13#head-f95c198f6fdc7defe36f470dc8369cf0e16898df lots of AMD Radeon hardware]. If you want to disable it, add the parameter {{ic|1=radeon.dpm=0}} to the [[kernel parameters]].<br />
<br />
Unlike [[#Dynamic frequency switching|dynpm]], the "dpm" method uses hardware on the GPU to dynamically change the clocks and voltage based on GPU load. It also enables clock and power gating.<br />
<br />
There are 3 operation modes to choose from:<br />
<br />
* {{ic|battery}} lowest power consumption<br />
* {{ic|balanced}} sane default<br />
* {{ic|performance}} highest performance<br />
<br />
They can be changed via sysfs<br />
# echo battery > /sys/class/drm/card0/device/power_dpm_state<br />
<br />
For testing or debugging purposes, you can force the card to run in a set performance mode:<br />
<br />
* {{ic|auto}} default; uses all levels in the power state<br />
* {{ic|low}} enforces the lowest performance level<br />
* {{ic|high}} enforces the highest performance level<br />
<br />
# echo low > /sys/class/drm/card0/device/power_dpm_force_performance_level<br />
<br />
=== Old methods ===<br />
<br />
==== Dynamic frequency switching ====<br />
<br />
This method dynamically changes the frequency depending on GPU load, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.<br />
<br />
It can be activated by simply running the following command:<br />
<br />
# echo dynpm > /sys/class/drm/card0/device/power_method<br />
<br />
==== Profile-based frequency switching ====<br />
<br />
This method will allow you to select one of the five profiles (described below). Different profiles, for the most part, end up changing the frequency/voltage of the GPU. This method is not as aggressive, but is more stable and flicker free and works with multiple heads active.<br />
<br />
To activate the method, run the following command:<br />
<br />
# echo profile > /sys/class/drm/card0/device/power_method<br />
<br />
Select one of the available profiles:<br />
* {{ic|default}} uses the default clocks and does not change the power state. This is the default behaviour.<br />
* {{ic|auto}} selects between {{ic|mid}} and {{ic|high}} power states based on the whether the system is on battery power or not.<br />
* {{ic|low}} forces the gpu to be in the {{ic|low}} power state all the time. Note that {{ic|low}} can cause display problems on some laptops, which is why {{ic|auto}} only uses {{ic|low}} when monitors are off. Selected on other profiles when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|mid}} forces the gpu to be in the {{ic|mid}} power state all the time.<br />
* {{ic|high}} forces the gpu to be in the {{ic|high}} power state all the time.<br />
<br />
As an example, we will activate the {{ic|low}} profile (replace {{ic|low}} with any of the aforementioned profiles as necessary):<br />
<br />
# echo low > /sys/class/drm/card0/device/power_profile<br />
<br />
==== Persistent configuration ====<br />
<br />
The activation described above is not persistent, it will not last when the computer is rebooted. To make it persistent, you can use [[systemd#Temporary files|systemd-tmpfiles]] (example for [[#Dynamic frequency switching]]):<br />
<br />
{{hc|/etc/tmpfiles.d/radeon-pm.conf|<nowiki><br />
w /sys/class/drm/card0/device/power_method - - - - dynpm<br />
</nowiki>}}<br />
<br />
Alternatively, you may use this [[udev]] rule instead (example for [[#Profile-based frequency switching]]):<br />
<br />
{{hc|/etc/udev/rules.d/30-radeon-pm.rules|<nowiki><br />
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low"<br />
</nowiki>}}<br />
<br />
{{Note|If the above rule is failing, try removing the {{ic|dri/}} prefix.}}<br />
<br />
==== Graphical tools ====<br />
<br />
* {{App|Radeon-tray|A small program to control the power profiles of your Radeon card via systray icon. It is written in PyQt4 and is suitable for non-Gnome users.|https://github.com/StuntsPT/Radeon-tray|{{AUR|radeon-tray}}}}<br />
* {{App|power-play-switcher|A gui for changing powerplay setting of the open source driver for ati radeon video cards.|https://code.google.com/p/power-play-switcher/|{{AUR|power-play-switcher}}{{Broken package link|{{aur-mirror|power-play-switcher}}}}}}<br />
* {{App|Gnome-shell-extension-Radeon-Power-Profile-Manager|A small extension for Gnome-shell that will allow you to change the power profile of your radeon card when using the open source drivers.|https://github.com/StuntsPT/shell-extension-radeon-power-profile-manager|{{AUR|gnome-shell-extension-radeon-ppm}}{{Broken package link|{{aur-mirror|gnome-shell-extension-radeon-ppm}}}} {{AUR|gnome-shell-extension-radeon-power-profile-manager-git}}{{Broken package link|{{aur-mirror|gnome-shell-extension-radeon-power-profile-manager-git}}}}}}<br />
<br />
=== Other notes ===<br />
<br />
To view the speed that the GPU is running at, perform the following command and you will get something like this output:<br />
<br />
{{hc|# cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki><br />
state: PM_STATE_ENABLED<br />
default engine clock: 300000 kHz<br />
current engine clock: 300720 kHz<br />
default memory clock: 200000 kHz<br />
</nowiki>}}<br />
<br />
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.<br />
<br />
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via [[lm_sensors]] tools or via sysfs in {{ic|/sys/class/hwmon}}.<br />
<br />
== Fan Speed ==<br />
<br />
While the power saving features above should handle fan speeds quite well, some cards may still be too noisy in their idle state. In this case, and when your card supports it, you can change the fan speed manually.<br />
<br />
{{Note|<br />
* Keep in mind that the following method sets the fan speed to a fixed value, hence it will not adjust with the stress of your gpu, which can lead to overheating under heavy load.<br />
* Better check your gpu temperature when applying lower than standard values. <br />
}}<br />
<br />
First, issue the following command to enable the manual adjustment of the fan speed of your graphics card (or your first gpu in case of a multi gpu setup). <br />
<br />
# echo 1 > /sys/class/drm/card0/device/hwmon/hwmon2/pwm1_enable<br />
<br />
Then set your desired fan speed from 0 to 255, which corresponds to 0-100% fan speed (The following command sets it to roughly 20%). <br />
<br />
# echo 55 > /sys/class/drm/card0/device/hwmon/hwmon2/pwm1<br />
<br />
For persistence, use [[systemd#Temporary files|systemd-tmpfiles]] as shown above by the example with power profiles.<br />
<br />
If a fixed value isn't desired, there are possibilities to define a custom fan curve manually by, for example, writing a script in which fan speeds are set depending on the current temperature (current value in /sys/class/drm/card0/device/hwmon/hwmon2/temp1_input), preferably with hystereses. There is also a gui solution: http://github.com/marazmista/radeon-profile{{AUR|radeon-profile-git}}.<br />
<br />
== TV out ==<br />
<br />
First, check that you have an S-video output: {{ic|xrandr}} should give you something like<br />
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200<br />
...<br />
S-video disconnected (normal left inverted right x axis y axis)<br />
<br />
Now we should tell Xorg that it is actually connected (it ''is'', right?)<br />
xrandr --output S-video --set "load detection" 1<br />
<br />
Setting TV standard to use:<br />
xrandr --output S-video --set "tv standard" ntsc<br />
<br />
Adding a mode for it (currently supports only 800x600):<br />
xrandr --addmode S-video 800x600<br />
<br />
Clone mode:<br />
xrandr --output S-video --same-as VGA-0<br />
<br />
Now let us try to see what we have:<br />
xrandr --output S-video --mode 800x600<br />
<br />
At this point you should see a 800x600 version of your desktop on your TV.<br />
<br />
To disable the output, do<br />
xrandr --output S-video --off<br />
<br />
Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.<br />
<br />
To send the output to the TV, do:<br />
xvattr -a XV_CRTC -v 1<br />
<br />
{{Note| you need to install {{AUR|xvattr}}{{Broken package link|{{aur-mirror|xvattr}}}} to execute this command.}}<br />
<br />
To switch back to the monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.<br />
<br />
Please see [http://www.x.org/wiki/radeonTV Enabling TV-Out Statically] for how to enable TV-out in your xorg configuration file.<br />
<br />
=== Force TV-out in KMS ===<br />
<br />
The kernel can recognize {{ic|1=video=}} parameter in following form (see [[KMS]] for more details):<br />
<br />
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]<br />
<br />
For example:<br />
<br />
video=DVI-I-1:1280x1024-24@60e<br />
<br />
Parameters with whitespaces must be quoted:<br />
<br />
"video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
Current mkinitcpio implementation also requires {{ic|#}} in front. For example:<br />
<br />
root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
* Grub can pass such command line as is.<br />
* Lilo needs backslashes for doublequotes (append {{ic|1=# \"video=9-pin DIN-1:1024x768-24@60e\"}})<br />
* Grub2: TODO<br />
<br />
You can get list of your video outputs with following command:<br />
<br />
{{bc|<nowiki>$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-</nowiki>}}<br />
<br />
== HDMI audio ==<br />
<br />
HDMI audio is supported in the {{Pkg|xf86-video-ati}} video driver. By default HDMI audio is disabled in the driver kernel versions >=3.0 because it can be problematic. To enable HDMI audio add {{ic|1=radeon.audio=1}} to your [[kernel parameters]].<br />
<br />
If there is no video after boot up, the driver option has to be disabled.<br />
<br />
{{Note|<br />
* If HDMI audio does not work after installing the driver, test your setup with the procedure at [[Advanced Linux Sound Architecture/Troubleshooting#HDMI Output does not work]].<br />
* If the sound is distorted in PulseAudio try setting {{ic|1=tsched=0}} as described in [[PulseAudio/Troubleshooting#Glitches, skips or crackling]] and make sure {{ic|rtkit}} daemon is running.<br />
* Your sound card might use the same module, since HDA compliant hardware is pretty common. [[Advanced_Linux_Sound_Architecture#Set_the_default_sound_card|Change the default sound card]] using one of the suggested methods, which include using the {{ic|defaults}} node in alsa configuration.<br />
}}<br />
<br />
== Dual Head setup ==<br />
<br />
=== Independent X screens ===<br />
<br />
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "radeon"<br />
Option "ZaphodHeads" "VGA-0"<br />
VendorName "ATI"<br />
BusID "PCI:1:0:0"<br />
Screen 0<br />
EndSection<br />
<br />
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads" "VGA-0"}}.<br />
<br />
== Turn vsync off ==<br />
<br />
The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create {{ic|~/.drirc}} (or edit it if it already exists) and add the following section:<br />
{{hc|~/.drirc|<nowiki><br />
<driconf><br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0" /><br />
</application><br />
</device><br />
<!-- Other devices ... --><br />
</driconf><br />
</nowiki>}}<br />
Make sure the driver is '''dri2''', not your video card code (like r600).<br />
<br />
{{Accuracy|If the above does not work, please file a bug report. Also, why is the {{ic|SwapbuffersWait}} option relevant here?}}<br />
<br />
If vsync is still enabled, you can try to disable it by editing the xf86-video-ati configuration :<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-radeon.con|<nowiki><br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "EXAVSync" "off"<br />
Option "SwapbuffersWait" "false" <br />
EndSection<br />
</nowiki>}}<br />
<br />
== Troubleshooting ==<br />
<br />
=== Artifacts upon logging in ===<br />
<br />
If encountering artifacts, first try starting X without {{ic|/etc/X11/xorg.conf}}. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured {{ic|xorg.conf}} files are known to cause trouble.<br />
<br />
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.<br />
<br />
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EXAPixmaps" "off"<br />
EndSection<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
Please see the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].<br />
<br />
=== AGP is disabled (with KMS) ===<br />
<br />
If you experience poor performance and dmesg shows something like this<br />
[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19<br />
then check if the agp driver for your motherboard (e.g., {{ic|via_agp}}, {{ic|intel_agp}} etc.) is loaded before the {{ic|radeon}} module, see [[#Enabling KMS|Enabling KMS]].<br />
<br />
=== TV showing a black border around the screen ===<br />
<br />
When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see [[Wikipedia:Overscan]]) can be turned off using xrandr:<br />
xrandr --output HDMI-0 --set underscan off<br />
<br />
=== Black screen with mouse cursor on resume from suspend in X ===<br />
<br />
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance tuning|performance tuning]] for more information.<br />
<br />
=== No desktop effects in KDE4 with X1300 and Radeon driver ===<br />
<br />
A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}. <br />
<br />
Add:<br />
DisableChecks=true<br />
<br />
To the [Compositing] section. Ensure that compositing is enabled with:<br />
Enabled=true<br />
<br />
=== Black screen and no console, but X works in KMS ===<br />
<br />
This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:<br />
fbcon=map:1<br />
This will tell the fbcon to map itself to the {{ic|/dev/fb1}} framebuffer dev and not the {{ic|/dev/fb0}}, that in our case exist on the wrong graphics card. If that does not fix your problem, try booting with<br />
fbcon=map:0<br />
instead.<br />
<br />
=== 2D performance (e.g. scrolling) is slow ===<br />
<br />
If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.<br />
<br />
{{Note|This only applies to EXA.}}<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "MigrationHeuristic" "greedy"<br />
EndSection<br />
}}<br />
<br />
=== Monitor rotation works for cursor but not windows/content ===<br />
<br />
Users with newer graphics boards who have enabled EXA instead of glamor may find that rotating their monitor with xrandr causes the cursor and monitor dimensions to rotate, but windows and other content stay in their normal orientation. Additionally, the cursor moves according to normal rotation when the user moves the mouse. Look for the following line in your {{ic|/var/log/Xorg.0.log}} when you issue the xrandr rotate command:<br />
{{bc|<br />
(EE) RADEON(0): Rotation requires acceleration!<br />
}}<br />
Acceleration is disabled when using EXA on newer graphics cards (source: [https://bugs.freedesktop.org/show_bug.cgi?id=73420#c17 comment 17]). You must choose between enabling EXA ([[#Glamor|detailed above in the glamor section]]) and the ability to rotate.<br />
<br />
=== ATI X1600 (RV530 series) 3D application show black windows ===<br />
<br />
There are three possible solutions:<br />
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].<br />
* If this does not work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.<br />
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{pkg|driconf}} and set that option in {{ic|~/.drirc}}.<br />
<br />
=== Cursor corruption after coming out of sleep ===<br />
<br />
If the cursor becomes corrupted like it's repeating itself vertically after the monitor(s) comes out of sleep, set {{ic|"SWCursor" "True"}} in the {{ic|"Device"}} section of the {{ic|20-radeon.conf}} configuration file.<br />
<br />
=== DisplayPort stays black on multimonitor mode ===<br />
<br />
Try booting with the [[kernel parameter]] {{ic|1=radeon.audio=0}}.<br />
<br />
=== Low 2D performance in console and X ===<br />
<br />
Since kernel 4.1.4, [[#Dynamic power management|dpm]] is broken on certain R9 270X cards (chip device number 6810, subsystem 174b:e271, shown as Curacao XT, PC Partner Limited / Sapphire Technology Device e271 in lspci). The regression is caused by a [https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=ea039f927524e36c15b5905b4c9469d788591932 fix] for cards with the same PCI ids. Disabling dpm (add {{ic|1=radeon.dpm=0}} to the [[kernel parameters]]) solves the problem.</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:Roll_Call&diff=411019DeveloperWiki:Roll Call2015-12-06T03:20:34Z<p>Lordheavy: /* Trusted Users */</p>
<hr />
<div>[[Category:DeveloperWiki]]<br />
<br />
==Developers==<br />
* Aaron Griffin<br />
<br />
* Allan McRae<br />
** Packaging (toolchain)<br />
** Pacman development<br />
<br />
* Anatol Pomozov<br />
* Andreas Radke<br />
* Andrew Gregory<br />
** Pacman development<br />
* Ángel Velásquez<br />
* Antonio Rojas<br />
* Bartłomiej Piotrowski<br />
* Dan McGee<br />
* Daniel Isenmann<br />
* Dave Reisner<br />
* Eric Bélanger<br />
* Evangelos Foutras<br />
** Packaging (Xfce)<br />
** Might be inactive for some period in 2016 and/or 2017<br />
* Felix Yan<br />
* Florian Pritz<br />
** Packaging<br />
** Serveradmin<br />
** Mirrors<br />
** Mailinglists<br />
* Gaetan Bisson<br />
** Packaging<br />
* Gerardo Pozzi<br />
* Giovanni Scafora<br />
* Guillaume Alaux<br />
* Ionuț Mircea Bîru<br />
* Jan de Groot<br />
* Jan Steffens<br />
* Jürgen Hötzel<br />
* Laurent Carlier<br />
** Packaging (mesa, xorg)<br />
* Lukas Fleischer<br />
* Maxime Gauduin<br />
* Pierre Schmitz<br />
* Ray Rashif<br />
* Rémy Oudompheng<br />
* Ronald van Haren<br />
* Sébastien Luttringer<br />
* Sven-Hendrik Haase<br />
** Packaging (NVIDIA stuff, multimedia stuff)<br />
* Thomas Bächler<br />
* Thomas Dziedzic<br />
* Tobias Powalowski<br />
* Tom Gundersen<br />
<br />
==Trusted Users==<br />
* Alexander Rødseth<br />
* Alexandre Filgueira<br />
* Anatol Pomozov<br />
* Andrzej Giniewicz<br />
* Antonio Rojas<br />
* Balló György<br />
* Bartłomiej Piotrowski<br />
* Christian Hesse<br />
* Connor Behan<br />
* Daniel Micay<br />
* Daniel Wallace<br />
* Evgeniy Alekseev<br />
* Fabio Castelli<br />
** Packaging<br />
* Felix Yan<br />
* Ike Devolder<br />
* Jakob Gruber<br />
* Jan Steffens<br />
* Jaroslav Lichtblau<br />
* Jelle van der Waa<br />
* Jerome Leclanche<br />
* Jiachen Yang<br />
* Johannes Löthberg<br />
* Jonathan Steel<br />
* Kyle Keen<br />
* Laurent Carlier<br />
** Packaging<br />
* Levente Polyak<br />
** Packaging<br />
** Security team<br />
** Reproducible builds<br />
* Lukas Fleischer<br />
* Lukas Jirkovsky<br />
* Martin Wimpress<br />
* Massimiliano Torromeo<br />
* Maxime Gauduin<br />
* Pierre Neidhardt<br />
* Ray Rashif<br />
* Sébastien Luttringer<br />
* Sergej Pupykin<br />
* speps<br />
* Thomas Dziedzic<br />
* Thorsten Töpper<br />
* Timothy Redaelli<br />
* Xyne<br />
* Михаил Страшун<br />
<br />
==Support Staff==<br />
* Christian Rebischke<br />
* Doug Newgard<br />
* Eric Waller<br />
* Jakob Wadsager<br />
* Jason Ryan<br />
** Forum Administration and Moderation<br />
** Wiki Administration<br />
* Johannes Löthberg<br />
* Levente Polyak<br />
** See above (TU)<br />
* Remi Gacogne<br />
* tigrmesh<br />
* WorMzy Tykashi<br />
** Forum moderation<br />
* Xyne</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:Roll_Call&diff=411018DeveloperWiki:Roll Call2015-12-06T03:20:09Z<p>Lordheavy: /* Developers */</p>
<hr />
<div>[[Category:DeveloperWiki]]<br />
<br />
==Developers==<br />
* Aaron Griffin<br />
<br />
* Allan McRae<br />
** Packaging (toolchain)<br />
** Pacman development<br />
<br />
* Anatol Pomozov<br />
* Andreas Radke<br />
* Andrew Gregory<br />
** Pacman development<br />
* Ángel Velásquez<br />
* Antonio Rojas<br />
* Bartłomiej Piotrowski<br />
* Dan McGee<br />
* Daniel Isenmann<br />
* Dave Reisner<br />
* Eric Bélanger<br />
* Evangelos Foutras<br />
** Packaging (Xfce)<br />
** Might be inactive for some period in 2016 and/or 2017<br />
* Felix Yan<br />
* Florian Pritz<br />
** Packaging<br />
** Serveradmin<br />
** Mirrors<br />
** Mailinglists<br />
* Gaetan Bisson<br />
** Packaging<br />
* Gerardo Pozzi<br />
* Giovanni Scafora<br />
* Guillaume Alaux<br />
* Ionuț Mircea Bîru<br />
* Jan de Groot<br />
* Jan Steffens<br />
* Jürgen Hötzel<br />
* Laurent Carlier<br />
** Packaging (mesa, xorg)<br />
* Lukas Fleischer<br />
* Maxime Gauduin<br />
* Pierre Schmitz<br />
* Ray Rashif<br />
* Rémy Oudompheng<br />
* Ronald van Haren<br />
* Sébastien Luttringer<br />
* Sven-Hendrik Haase<br />
** Packaging (NVIDIA stuff, multimedia stuff)<br />
* Thomas Bächler<br />
* Thomas Dziedzic<br />
* Tobias Powalowski<br />
* Tom Gundersen<br />
<br />
==Trusted Users==<br />
* Alexander Rødseth<br />
* Alexandre Filgueira<br />
* Anatol Pomozov<br />
* Andrzej Giniewicz<br />
* Antonio Rojas<br />
* Balló György<br />
* Bartłomiej Piotrowski<br />
* Christian Hesse<br />
* Connor Behan<br />
* Daniel Micay<br />
* Daniel Wallace<br />
* Evgeniy Alekseev<br />
* Fabio Castelli<br />
** Packaging<br />
* Felix Yan<br />
* Ike Devolder<br />
* Jakob Gruber<br />
* Jan Steffens<br />
* Jaroslav Lichtblau<br />
* Jelle van der Waa<br />
* Jerome Leclanche<br />
* Jiachen Yang<br />
* Johannes Löthberg<br />
* Jonathan Steel<br />
* Kyle Keen<br />
* Laurent Carlier<br />
* Levente Polyak<br />
** Packaging<br />
** Security team<br />
** Reproducible builds<br />
* Lukas Fleischer<br />
* Lukas Jirkovsky<br />
* Martin Wimpress<br />
* Massimiliano Torromeo<br />
* Maxime Gauduin<br />
* Pierre Neidhardt<br />
* Ray Rashif<br />
* Sébastien Luttringer<br />
* Sergej Pupykin<br />
* speps<br />
* Thomas Dziedzic<br />
* Thorsten Töpper<br />
* Timothy Redaelli<br />
* Xyne<br />
* Михаил Страшун<br />
<br />
==Support Staff==<br />
* Christian Rebischke<br />
* Doug Newgard<br />
* Eric Waller<br />
* Jakob Wadsager<br />
* Jason Ryan<br />
** Forum Administration and Moderation<br />
** Wiki Administration<br />
* Johannes Löthberg<br />
* Levente Polyak<br />
** See above (TU)<br />
* Remi Gacogne<br />
* tigrmesh<br />
* WorMzy Tykashi<br />
** Forum moderation<br />
* Xyne</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=SSH_keys&diff=394105SSH keys2015-08-27T14:32:21Z<p>Lordheavy: /* envoy */</p>
<hr />
<div>[[Category:Secure Shell]]<br />
[[es:SSH keys]]<br />
[[it:SSH Keys]]<br />
[[ja:SSH 鍵]]<br />
[[ru:SSH keys]]<br />
[[sr:SSH Keys]]<br />
[[tr:SSH Anahtarları]]<br />
[[zh-CN:SSH Keys]]<br />
SSH keys serve as a means of identifying yourself to an SSH server using [[Wikipedia:Public-key cryptography|public-key cryptography]] and [[Wikipedia:Challenge-response authentication|challenge-response authentication]]. One immediate advantage this method has over traditional password authentication is that you can be authenticated by the server without ever having to send your password over the network. Anyone eavesdropping on your connection will not be able to intercept and crack your password because it is never actually transmitted. Additionally, using SSH keys for authentication virtually eliminates the risk posed by brute-force password attacks by drastically reducing the chances of the attacker correctly guessing the proper credentials.<br />
<br />
As well as offering additional security, SSH key authentication can be more convenient than the more traditional password authentication. When used with a program known as an SSH agent, SSH keys can allow you to connect to a server, or multiple servers, without having to remember or enter your password for each system.<br />
<br />
SSH keys are not without their drawbacks and may not be appropriate for all environments, but in many circumstances they can offer some strong advantages. A general understanding of how SSH keys work will help you decide how and when to use them to meet your needs. This article assumes you already have a basic understanding of the [[Secure Shell]] protocol and have installed the {{Pkg|openssh}} package, available in the [[official repositories]].<br />
<br />
==Background==<br />
SSH keys always come in pairs, one private and the other public. The private key is known only to you and it should be safely guarded. By contrast, the public key can be shared freely with any SSH server to which you would like to connect.<br />
<br />
When an SSH server has your public key on file and sees you requesting a connection, it uses your public key to construct and send you a challenge. This challenge is like a coded message and it must be met with the appropriate response before the server will grant you access. What makes this coded message particularly secure is that it can only be understood by someone with the private key. While the public key can be used to encrypt the message, it cannot be used to decrypt that very same message. Only you, the holder of the private key, will be able to correctly understand the challenge and produce the correct response.<br />
<br />
This challenge-response phase happens behind the scenes and is invisible to the user. As long as you hold the private key, which is typically stored in the {{ic|~/.ssh/}} directory, your SSH client should be able to reply with the appropriate response to the server.<br />
<br />
Because private keys are considered sensitive information, they are often stored on disk in an encrypted form. In this case, when the private key is required, a passphrase must first be entered in order to decrypt it. While this might superficially appear the same as entering a login password on the SSH server, it is only used to decrypt the private key on the local system. This passphrase is not, and should not be, transmitted over the network.<br />
<br />
==Generating an SSH key pair==<br />
An SSH key pair can be generated by running the {{ic|ssh-keygen}} command:<br />
<br />
{{hc<br />
|$ ssh-keygen -t rsa -b 4096 -C "$(whoami)@$(hostname)-$(date -I)"<br />
|<nowiki>Generating public/private rsa key pair.<br />
Enter file in which to save the key (/home/username/.ssh/id_rsa):<br />
Enter passphrase (empty for no passphrase):<br />
Enter same passphrase again:<br />
Your identification has been saved in /home/username/.ssh/id_rsa.<br />
Your public key has been saved in /home/username/.ssh/id_rsa.pub.<br />
The key fingerprint is:<br />
dd:15:ee:24:20:14:11:01:b8:72:a2:0f:99:4c:79:7f username@localhost-2014-11-22<br />
The key's randomart image is:<br />
+--[RSA 4096]---+<br />
| ..oB=. . |<br />
| . . . . . |<br />
| . . . + |<br />
| oo.o . . = |<br />
|o+.+. S . . . |<br />
|=. . E |<br />
| o . |<br />
| . |<br />
| |<br />
+-----------------+</nowiki>}}<br />
<br />
In the above example, {{ic|ssh-keygen}} generates a 4096 bit long ({{ic|-b 4096}}) public/private RSA ({{ic|-t rsa}}) key pair with an extended comment including the data ({{ic|-C "$(whoami)@$(hostname)-$(date -I)"}}). The [http://www.cs.berkeley.edu/~dawnsong/papers/randomart.pdf randomart image] was introduced in OpenSSH 5.1 as an easier means of visually identifying the key fingerprint.<br />
<br />
===Choosing the type of encryption===<br />
The Elliptic Curve Digital Signature Algorithm (ECDSA) provides smaller key sizes and faster operations for equivalent estimated security to the previous methods. It was introduced as the preferred algorithm for authentication in OpenSSH 5.7, see [http://www.openssh.com/txt/release-5.7 OpenSSH 5.7 Release Notes]. '''ECDSA keys might not be compatible with systems that ship old versions of OpenSSH.''' Some vendors also disable the required implementations due to potential patent issues.<br />
{{Warning|There is [http://safecurves.cr.yp.to/rigid.html reason to be suspicious] of the NIST curves used to generate ECDSA keys. Depending on the threat model, it might be advisable to use [http://ed25519.cr.yp.to/ Ed25519] or RSA.}}<br />
{{Note|As of December 28, 2013, the Windows SSH client PuTTY does not support ECDSA and cannot connect to a server that uses ECDSA keys.}}<br />
{{Note|1=As of July 10, 2015, [[GNOME Keyring]] does not handle ECDSA[https://bugzilla.gnome.org/show_bug.cgi?id=641082] and Ed25519[https://bugzilla.gnome.org/show_bug.cgi?id=723274] keys. Users will have to turn to other [[#SSH_agents|SSH agents]].}}<br />
<br />
As of OpenSSH 6.5 Ed25519 keys are supported: "Ed25519 is a elliptic curve signature scheme that offers better security than ECDSA and DSA and good performance."[http://www.openssh.com/txt/release-6.5] <br />
They can be generated by {{ic|ssh-keygen -t ed25519}}. There is no need to set the key size, as all Ed25519 keys are 256 bits.<br />
<br />
If you choose to create an RSA (2048-16384 bit) or DSA (2048 bit) key pair instead, use the {{ic|-t rsa}} or {{ic|-t dsa}} switches in your {{ic|ssh-keygen}} command and do not forget to increase the key size. Running {{ic|ssh-keygen}} without the {{ic|-b}} switch should provide reasonable defaults.<br />
<br />
{{Note|These keys are used only to authenticate you; choosing stronger keys will not increase CPU load when transferring data over SSH.}}<br />
<br />
===Choosing the key location and passphrase===<br />
Upon issuing the {{ic|ssh-keygen}} command, you will be prompted for the desired name and location of your private key. By default, keys are stored in the {{ic|~/.ssh/}} directory and named according to the type of encryption used. You are advised to accept the default name and location in order for later code examples in this article to work properly.<br />
<br />
When prompted for a passphrase, choose something that will be hard to guess if you have the security of your private key in mind. A longer, more random password will generally be stronger and harder to crack should it fall into the wrong hands.<br />
<br />
It is also possible to create your private key without a passphrase. While this can be convenient, you need to be aware of the associated risks. Without a passphrase, your private key will be stored on disk in an unencrypted form. Anyone who gains access to your private key file will then be able to assume your identity on any SSH server to which you connect using key-based authentication. Furthermore, without a passphrase, you must also trust the root user, as he can bypass file permissions and will be able to access your unencrypted private key file at any time.<br />
<br />
====Changing the private key's passphrase without changing the key====<br />
If the originally chosen SSH key passphrase is undesirable or must be changed, one can use the {{ic|ssh-keygen}} command to change the passphrase without changing the actual key.<br />
<br />
To change the passphrase for the private RSA key, run the following command:<br />
$ ssh-keygen -f ~/.ssh/id_rsa -p<br />
<br />
====Managing multiple keys====<br />
It is possible, and common. to use the same SSH key for multiple host computers. However, if you would like to have a separate key for each host computer, you can create the file {{ic|~/.ssh/config}}. Below is an example of the file.<br />
Host SERVERNAME1<br />
IdentitiesOnly yes<br />
IdentityFile ~/.ssh/id_rsa_SERVER1<br />
# CheckHostIP yes<br />
# Port 22<br />
Host SERVERNAME2<br />
IdentitiesOnly yes<br />
IdentityFile ~/.ssh/id_rsa_SERVER2<br />
# CheckHostIP no<br />
# Port 2177<br />
ControlMaster auto<br />
ControlPath /tmp/%r@%h:%p<br />
For a full list of options, look at the following man page.<br />
$ man ssh_config<br />
<br />
==Copying the public key to the remote server==<br />
Once you have generated a key pair, you will need to copy the public key to the remote server so that it will use SSH key authentication. The public key file shares the same name as the private key except that it is appended with a {{ic|.pub}} extension. Note that the private key is not shared and remains on the local machine.<br />
<br />
===Simple method===<br />
<br />
{{Note|1=This method might fail if the remote server uses a non-{{ic|sh}} shell such as {{ic|tcsh}} as default and uses OpenSSH older than 6.6.1p1. See [https://bugzilla.redhat.com/show_bug.cgi?id=1045191 this bug report].}}<br />
<br />
If your key file is {{ic|~/.ssh/id_rsa.pub}} you can simply enter the following command.<br />
$ ssh-copy-id remote-server.org<br />
<br />
If your username differs on remote machine, be sure to prepend the username followed by {{ic|@}} to the server name.<br />
$ ssh-copy-id username@remote-server.org<br />
<br />
If your public key filename is anything other than the default of {{ic|~/.ssh/id_rsa.pub}} you will get an error stating {{ic|/usr/bin/ssh-copy-id: ERROR: No identities found}}. In this case, you must explicitly provide the location of the public key.<br />
$ ssh-copy-id -i ~/.ssh/id_ed25519.pub username@remote-server.org<br />
<br />
If the ssh server is listening on a port other than default of 22, be sure to include it within the host argument.<br />
$ ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 221 username@remote-server.org<br />
<br />
===Manual method===<br />
By default, for OpenSSH, the public key needs to be concatenated with {{ic|~/.ssh/authorized_keys}}. Begin by copying the public key to the remote server.<br />
<br />
$ scp ~/.ssh/id_ecdsa.pub username@remote-server.org:<br />
<br />
The above example copies the public key ({{ic|id_ecdsa.pub}}) to your home directory on the remote server via {{ic|scp}}. Do not forget to include the {{ic|:}} at the end of the server address. Also note that the name of your public key may differ from the example given.<br />
<br />
On the remote server, you will need to create the {{ic|~/.ssh}} directory if it does not yet exist and append your public key to the {{ic|authorized_keys}} file.<br />
<br />
$ ssh username@remote-server.org<br />
username@remote-server.org's password:<br />
$ mkdir ~/.ssh<br />
$ chmod 700 ~/.ssh<br />
$ cat ~/id_ecdsa.pub >> ~/.ssh/authorized_keys<br />
$ rm ~/id_ecdsa.pub<br />
$ chmod 600 ~/.ssh/authorized_keys<br />
<br />
The last two commands remove the public key file from the server and set the permissions on the {{ic|authorized_keys}} file such that it is only readable and writable by you, the owner.<br />
<br />
==Security==<br />
<br />
===Securing the authorized_keys file===<br />
<br />
For additional protection, you can prevent users from adding new public keys and connecting from them.<br />
<br />
In the server, make the {{ic|authorized_keys}} file read-only for the user and deny all other permissions:<br />
$ chmod 400 ~/.ssh/authorized_keys<br />
<br />
To keep the user from simply changing the permissions back, [[File permissions and attributes#chattr and lsattr|set the immutable bit]] on the {{ic|authorized_keys}} file. After that the user could rename the {{ic|~/.ssh}} directory to something else and create a new {{ic|~/.ssh}} directory and {{ic|authorized_keys}} file. To prevent this, set the immutable bit on the {{ic|~/.ssh}} directory too.<br />
<br />
{{Note|If you find yourself needing to add a new key, you will first have to remove the immutable bit from {{ic|authorized_keys}} and make it writable. Follow the steps above to secure it again.}}<br />
<br />
===Disabling password logins===<br />
While copying your public key to the remote SSH server eliminates the need to transmit your password over the network, it does not give any added protection against a brute-force password attack. In the absence of a private key, the SSH server will fall back to password authentication by default, thus allowing a malicious user to attempt to gain access by guessing your password. To disable this behavior, edit the following lines in the {{ic|/etc/ssh/sshd_config}} file on the remote server.<br />
<br />
{{hc|/etc/ssh/sshd_config|<br />
PasswordAuthentication no<br />
ChallengeResponseAuthentication no}}<br />
<br />
=== Two-factor authentication and public keys ===<br />
<br />
Since OpenSSH 6.2, you can add your own chain to authenticate with using the {{ic|AuthenticationMethods}} option. This enables you to use public keys as well as a two-factor authorization.<br />
<br />
See [[Google Authenticator]] to set up Google Authenticator.<br />
<br />
To use PAM with OpenSSH, edit the following files:<br />
<br />
{{hc|/etc/ssh/sshd_config|<br />
ChallengeResponseAuthentication yes<br />
AuthenticationMethods publickey keyboard-interactive:pam<br />
}}<br />
<br />
Then you can log in with either a publickey '''or''' the user authentication as required by your PAM setup.<br />
<br />
If, on the other hand, you want to authenticate the user on both a publickey '''and''' the user authentication as required by your PAM setup, use a comma instead of a space to separate the AuthenticationMethods:<br />
<br />
{{hc|/etc/ssh/sshd_config|<br />
ChallengeResponseAuthentication yes<br />
AuthenticationMethods publickey,keyboard-interactive:pam<br />
}}<br />
<br />
==SSH agents==<br />
If your private key is encrypted with a passphrase, this passphrase must be entered every time you attempt to connect to an SSH server using public-key authentication. Each individual invocation of {{ic|ssh}} or {{ic|scp}} will need the passphrase in order to decrypt your private key before authentication can proceed.<br />
<br />
An SSH agent is a program which caches your decrypted private keys and provides them to SSH client programs on your behalf. In this arrangement, you must only provide your passphrase once, when adding your private key to the agent's cache. This facility can be of great convenience when making frequent SSH connections.<br />
<br />
An agent is typically configured to run automatically upon login and persist for the duration of your login session. A variety of agents, front-ends, and configurations exist to achieve this effect. This section provides an overview of a number of different solutions which can be adapted to meet your specific needs.<br />
<br />
===ssh-agent===<br />
{{ic|ssh-agent}} is the default agent included with OpenSSH. It can be used directly or serve as the back-end to a few of the front-end solutions mentioned later in this section. When {{ic|ssh-agent}} is run, it forks to background and prints necessary environment variables. E.g.<br />
<br />
{{hc|$ ssh-agent|2=<br />
SSH_AUTH_SOCK=/tmp/ssh-vEGjCM2147/agent.2147; export SSH_AUTH_SOCK;<br />
SSH_AGENT_PID=2148; export SSH_AGENT_PID;<br />
echo Agent pid 2148;<br />
}}<br />
<br />
To make use of these variables, run the command through the {{ic|eval}} command.<br />
<br />
{{hc|$ eval $(ssh-agent)|<br />
Agent pid 2157<br />
}}<br />
<br />
Once {{ic|ssh-agent}} is running, you will need to add your private key to its cache:<br />
<br />
{{hc|$ ssh-add ~/.ssh/id_ecdsa|<br />
Enter passphrase for /home/user/.ssh/id_ecdsa:<br />
Identity added: /home/user/.ssh/id_ecdsa (/home/user/.ssh/id_ecdsa)<br />
}}<br />
<br />
If your private key is encrypted, {{ic|ssh-add}} will prompt you to enter your passphrase. Once your private key has been successfully added to the agent you will be able to make SSH connections without having to enter your passphrase.<br />
<br />
In order to have all this happen automatically, and make sure that only one {{ic|ssh-agent}} process runs at a time, add the following to your {{ic|~/.bashrc}}:<br />
<br />
<nowiki>if ! pgrep ssh-agent > /dev/null; then<br />
ssh-agent > ~/.ssh-agent-thing<br />
fi<br />
if [[ "$SSH_AGENT_PID" == "" ]]; then<br />
eval $(<~/.ssh-agent-thing)<br />
fi<br />
ssh-add -l >/dev/null || alias ssh='ssh-add -l >/dev/null || ssh-add && unalias ssh; ssh'</nowiki><br />
<br />
This will run a {{ic|ssh-agent}} process if there isn't one already, and save the output thereof. If there is one running already, we retrieve the cached {{ic|ssh-agent}} output and evaluate it which will set the necessary environment variables. Also, if needed, we create an alias around {{ic|ssh}} to add the key to the agent, then remove the alias. One downside to this approach is that the key will not be added by commands that use the private key other than {{ic|ssh}}, such as {{ic|git}}.<br />
<br />
There also exist a number of front-ends to {{ic|ssh-agent}} and alternative agents described later in this section which avoid this problem.<br />
<br />
====Start ssh-agent with systemd user====<br />
<br />
It is possible to use the [[systemd/User]] facilities to start the agent.<br />
<br />
{{hc|~/.config/systemd/user/ssh-agent.service|<nowiki><br />
[Unit]<br />
Description=SSH key agent<br />
<br />
[Service]<br />
Type=forking<br />
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket<br />
ExecStart=/usr/bin/ssh-agent -a $SSH_AUTH_SOCK<br />
<br />
[Install]<br />
WantedBy=</nowiki>''default''.target<br />
}}<br />
<br />
Add {{ic|1=export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"}} to your shell's startup file, for example {{ic|.bash_profile}} for [[Bash]]. Then enable or start the service.<br />
<br />
====ssh-agent as a wrapper program====<br />
An alternative way to start ssh-agent (with, say, each X session) is described in [http://upc.lbl.gov/docs/user/sshagent.shtml this ssh-agent tutorial by UC Berkeley Labs]. A basic use case is if you normally begin X with the {{ic|startx}} command, you can instead prefix it with {{ic|ssh-agent}} like so:<br />
<br />
$ ssh-agent startx<br />
<br />
And so you do not even need to think about it you can put an alias in your {{ic|.bash_aliases}} file or equivalent:<br />
<br />
alias startx='ssh-agent startx'<br />
<br />
Doing it this way avoids the problem of having extraneous {{ic|ssh-agent}} instances floating around between login sessions. Exactly one instance will live and die with the entire X session.<br />
<br />
{{note|You can also add {{ic|eval $(ssh-agent)}} to {{ic|~/.xinitrc}}.}}<br />
<br />
See [[#Calling_x11-ssh-askpass_with_ssh-add|the below notes on using x11-ssh-askpass with ssh-add]] for an idea on how to immediately add your key to the agent.<br />
<br />
===GnuPG Agent===<br />
<br />
{{Merge|GnuPG#gpg-agent|This section should just refer to the main article.}}<br />
<br />
The [[GnuPG]] agent, distributed with the {{Pkg|gnupg}} package, available in the [[official repositories]], has OpenSSH agent emulation. If you already use the GnuPG suite, you might consider using its agent to also cache your SSH keys. Additionally, some users may prefer the PIN entry dialog GnuPG agent provides as part of its passphrase management.<br />
<br />
{{Note|If you are using KDE and have {{Pkg|kde-agent}}{{Broken package link|package not found}} installed you only need to set {{ic|enable-ssh-support}} into {{ic|~/.gnupg/gpg-agent.conf}}! Otherwise, continue reading.}}<br />
<br />
To start using GnuPG agent for your SSH keys, you should enable {{ic|enable-ssh-support}} in the {{ic|~/.gnupg/gpg-agent.conf}} file.<br />
<br />
{{hc|~/.gnupg/gpg-agent.conf|<br />
# Enable SSH support<br />
enable-ssh-support<br />
}}<br />
<br />
Next, start ''gpg-agent'' when using {{ic|gpg-connect-agent}}, set {{ic|SSH_AUTH_SOCK}} so that SSH will use ''gpg-agent'' instead of ''ssh-agent'', set the GPG TTY and refresh the TTY in case user has switched into an X session. Example:<br />
{{hc|~/.bashrc|<nowiki><br />
#!/bin/sh<br />
<br />
# Start the gpg-agent if not already running<br />
if ! pgrep -x -u "${USER}" gpg-agent >/dev/null 2>&1; then<br />
gpg-connect-agent /bye >/dev/null 2>&1<br />
fi<br />
<br />
# Set SSH to use gpg-agent<br />
unset SSH_AGENT_PID<br />
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then<br />
export SSH_AUTH_SOCK="${HOME}/.gnupg/S.gpg-agent.ssh"<br />
fi<br />
<br />
# Set GPG TTY<br />
GPG_TTY=$(tty)<br />
export GPG_TTY<br />
<br />
# Refresh gpg-agent tty in case user switches into an X session<br />
gpg-connect-agent updatestartuptty /bye >/dev/null<br />
</nowiki>}}<br />
<br />
Once ''gpg-agent'' is running you can use ''ssh-add'' to approve keys, just like you did with plain ''ssh-agent''. The list of approved keys is stored in the {{ic|~/.gnupg/sshcontrol}} file. Once your key is approved, you will get a PIN entry dialog every time your passphrase is needed. You can control passphrase caching in the {{ic|~/.gnupg/gpg-agent.conf}} file. The following example would have ''gpg-agent'' cache your keys for 3 hours: <br />
{{hc|~/.gnupg/gpg-agent.conf|<br />
# Cache settings<br />
default-cache-ttl 10800<br />
default-cache-ttl-ssh 10800<br />
}}<br />
Other useful settings for this file include the PIN entry program (GTK, QT, or ncurses version), keyboard grabbing, and so on...<br />
<br />
{{hc|~/.gnupg/gpg-agent.conf|<nowiki><br />
# Keyboard control<br />
#no-grab<br />
<br />
# PIN entry program<br />
#pinentry-program /usr/bin/pinentry-curses<br />
#pinentry-program /usr/bin/pinentry-qt4<br />
#pinentry-program /usr/bin/pinentry-kwallet<br />
#pinentry-program /usr/bin/pinentry-gtk-2<br />
</nowiki>}}<br />
<br />
=== Keychain ===<br />
<br />
[http://www.funtoo.org/Keychain Keychain] is a program designed to help you easily manage your SSH keys with minimal user interaction. It is implemented as a shell script which drives both ''ssh-agent'' and ''ssh-add''. A notable feature of Keychain is that it can maintain a single ''ssh-agent'' process across multiple login sessions. This means that you only need to enter your passphrase once each time your local machine is booted.<br />
<br />
[[Install]] the {{Pkg|keychain}} package available from the [[official repositories]] and add a line similar to the following (if using [[Bash]]):<br />
<br />
{{hc|~/.bashrc|<br />
eval $(keychain --eval -Q --quiet id_ed25519 id_rsa ~/.keys/my_custom_key)<br />
}}<br />
<br />
In the above example,<br />
* the {{ic|--eval}} switch outputs lines to be evaluated by the opening {{ic|eval}} command; this sets the necessary environments variables for SSH client to be able to find your agent.<br />
* {{ic|-Q (--quick)}} avoids locking when possible by reusing an already running {{ic|ssh-agent}} process, so that multiple terminals can be opened simultaneously without waiting on each other.<br />
* {{ic|--quiet}} will limit output to warnings, errors, and user prompts.<br />
<br />
Multiple keys can be specified on the command line, as shown in the example. By default keychain will look for key pairs in the {{ic|~/.ssh/}} directory, but absolute path can be used for keys in non-standard location.<br />
<br />
{{Tip|You may also use the {{ic|--confhost}} option to inform keychain to look in {{ic|~/.ssh/config}} for {{ic|IdentityFile}} settings defined for particular hosts, and use these paths to locate keys.}}<br />
<br />
For those using a non-Bash compatible shell, see {{ic|keychain --help}} or {{ic|man keychain}} for details on other shells.<br />
<br />
To test Keychain, simply open a new terminal emulator or log out and back in your session. It should prompt you for the passphrase of the specified private key(s) (if applicable), either using the program set in {{ic|$SSH_ASKPASS}} or on the terminal.<br />
<br />
{{Tip|To disable the graphical prompt and always enter your passphrase on the terminal, use the {{ic|--nogui}} option. This allows to copy-paste long passphrase from a password manager for example.}}<br />
<br />
Because Keychain reuses the same ''ssh-agent'' process on successive logins, you should not have to enter your passphrase the next time you log in or open a new terminal. You will only be prompted for your passphrase once each time the machine is rebooted.<br />
<br />
Finally, if you do not want to be immediately prompted for unlocking the keys but rather wait until they are needed, use the {{ic|--noask}} option.<br />
<br />
{{Tip|Keychain is able to manage GPG keys in the same fashion. By default it attempts to start ''ssh-agent'' only, but you can modify this behavior using the {{ic|--agents}} option, ''e.g.'' {{ic|--agents ssh,gpg}}. See {{ic|man keychain}}.}}<br />
<br />
===envoy===<br />
<br />
An alternative to keychain is [https://github.com/vodik/envoy envoy]. Envoy is available as {{Pkg|envoy}} , or the Git version as {{AUR|envoy-git}}.<br />
<br />
After installing it, set up the envoy socket by [[enabling]] {{ic|envoy@ssh-agent.socket}}.<br />
<br />
And add to your shell's rc file:<br />
<br />
envoy -t ssh-agent -a ''ssh_key''<br />
source <(envoy -p)<br />
<br />
If the key is {{ic|~/.ssh/id_rsa}}, {{ic|~/.ssh/id_dsa}}, {{ic|~/.ssh/id_ecdsa}}, or {{ic|~/.ssh/identity}}, the {{ic|-a ''ssh_key''}} parameter is not needed.<br />
<br />
====envoy with key passphrases stored in kwallet====<br />
<br />
If you have long passphrases for your SSH keys, remembering them can be a pain. So let us tell kwallet to store them!<br />
Along with {{Pkg|envoy}}, install {{Pkg|ksshaskpass}} and {{Pkg|kwalletmanager}} from the [[official repositories]]. Next, enable the envoy socket in systemd (see above).<br />
<br />
{{Note|As of April 30, 2015, if after installation {{Pkg|ksshaskpass}} keeps asking for access to your wallet even after having submitted the password, you might have [[https://bbs.archlinux.org/viewtopic.php?id=192862 this]] problem. The proposed solution is to install {{Aur|ksshaskpass4}}, though this might break your login.}}<br />
<br />
First, you will add this script to {{ic|~/.kde4/Autostart/ssh-agent.sh}}:<br />
#!/bin/sh<br />
envoy -t ssh-agent -a ''ssh_key''<br />
Then, make sure the script is executable by running: {{ic|chmod +x ~/.kde4/Autostart/ssh-agent.sh}}<br />
<br />
And add this to {{ic|~/.kde4/env/ssh-agent.sh}}:<br />
#!/bin/sh<br />
eval $(envoy -p)<br />
<br />
When you log into KDE, it will execute the {{ic|ssh-agent.sh}} script. This will call ''ksshaskpass'', which will prompt you for your kwallet password when envoy calls ''ssh-agent''.<br />
<br />
===x11-ssh-askpass===<br />
The {{pkg|x11-ssh-askpass}} package provides a graphical dialog for entering your passhrase when running an X session. ''x11-ssh-askpass'' depends only on the {{Pkg|libx11}} and {{Pkg|libxt}} libraries, and the appearance of ''x11-ssh-askpass'' is customizable. While it can be invoked by the ''ssh-add'' program, which will then load your decrypted keys into [[#ssh-agent|ssh-agent]], the following instructions will, instead, configure ''x11-ssh-askpass'' to be invoked by the aforementioned [[#Keychain|Keychain]] script.<br />
<br />
Install {{Pkg|keychain}} and {{Pkg|x11-ssh-askpass}}, both available in the [[official repositories]].<br />
<br />
Edit your {{ic|~/.xinitrc}} file to include the following lines, replacing the name and location of your private key if necessary. Be sure to place these commands '''before''' the line which invokes your window manager.<br />
<br />
{{hc|~/.xinitrc|<br />
keychain ~/.ssh/id_ecdsa<br />
[ -f ~/.keychain/$HOSTNAME-sh ] && . ~/.keychain/$HOSTNAME-sh 2>/dev/null<br />
[ -f ~/.keychain/$HOSTNAME-sh-gpg ] && . ~/.keychain/$HOSTNAME-sh-gpg 2>/dev/null<br />
...<br />
exec openbox-session}}<br />
<br />
In the above example, the first line invokes ''keychain'' and passes the name and location of your private key. If this is not the first time ''keychain'' was invoked, the following two lines load the contents of {{ic|$HOSTNAME-sh}} and {{ic|$HOSTNAME-sh-gpg}}, if they exist. These files store the environment variables of the previous instance of ''keychain''.<br />
<br />
====Calling x11-ssh-askpass with ssh-add====<br />
The ''ssh-add'' manual page specifies that, in addition to needing the {{ic|DISPLAY}} variable defined, you also need {{ic|SSH_ASKPASS}} set to the name of your askpass program (in this case ''x11-ssh-askpass''). It bears keeping in mind that the default Arch Linux installation places the ''x11-ssh-askpass'' binary in {{ic|/usr/lib/ssh/}}, which will not be in most people's {{ic|PATH}}. This is a little annoying, not only when declaring the {{ic|SSH_ASKPASS}} variable, but also when theming. You have to specify the full path everywhere. Both inconveniences can be solved simultaneously by symlinking:<br />
<br />
$ ln -sv /usr/lib/ssh/x11-ssh-askpass ~/bin/ssh-askpass<br />
<br />
This is assuming that {{ic|~/bin}} is in your {{ic|PATH}}. So now in your {{ic|.xinitrc}}, before calling your window manager, one just needs to export the {{ic|SSH_ASKPASS}} environment variable:<br />
<br />
$ export SSH_ASKPASS=ssh-askpass<br />
<br />
and your [[X resources]] will contain something like:<br />
<br />
ssh-askpass*background: #000000<br />
<br />
Doing it this way works well with [[#ssh-agent_as_a_wrapper_program|the above method on using ''ssh-agent'' as a wrapper program]]. You start X with {{ic|ssh-agent startx}} and then add ''ssh-add'' to your window manager's list of start-up programs.<br />
<br />
====Theming====<br />
The appearance of the ''x11-ssh-askpass'' dialog can be customized by setting its associated [[X resources]]. The ''x11-ssh-askpass'' [http://www.jmknoble.net/software/x11-ssh-askpass/ home page]{{Dead link|2015|04|01}} presents some [http://www.jmknoble.net/software/x11-ssh-askpass/screenshots.html example themes]{{Dead link|2015|04|01}}. See the ''x11-ssh-askpass'' manual page for full details.<br />
<br />
====Alternative passphrase dialogs====<br />
There are other passphrase dialog programs which can be used instead of ''x11-ssh-askpass''. The following list provides some alternative solutions.<br />
<br />
* {{Pkg|ksshaskpass}} is available in the official repositories. It is dependent on {{Pkg|kdelibs}} and is suitable for the [[KDE]] Desktop Environment.<br />
<br />
* {{Pkg|openssh-askpass}} depends on the {{Pkg|qt4}} libraries and is available from the official repositories.<br />
<br />
===pam_ssh===<br />
The [http://pam-ssh.sourceforge.net/ pam_ssh] project exists to provide a [[Wikipedia:Pluggable authentication module|Pluggable Authentication Module]] (PAM) for SSH private keys. This module can provide single sign-on behavior for your SSH connections. On login, your SSH private key passphrase can be entered in place of, or in addition to, your traditional system password. Once you have been authenticated, the pam_ssh module spawns ssh-agent to store your decrypted private key for the duration of the session.<br />
<br />
To enable single sign-on behavior at the tty login prompt, install the unofficial {{AUR|pam_ssh}} package, available in the [[Arch User Repository]]. <br />
<br />
{{Note|pam_ssh 2.0 now requires that all private keys used in the authentication process be located under {{ic|~/.ssh/login-keys.d/}}.}}<br />
<br />
Create a symlink to your private key file and place it in {{ic|~/.ssh/login-keys.d/}}. Replace the {{ic|id_rsa}} in the example below with the name of your own private key file.<br />
<br />
$ mkdir ~/.ssh/login-keys.d/<br />
$ cd ~/.ssh/login-keys.d/<br />
$ ln -s ../id_rsa<br />
<br />
Edit the {{ic|/etc/pam.d/login}} configuration file to include the text highlighted in bold in the example below. The order in which these lines appear is significiant and can affect login behavior.<br />
<br />
{{Warning|Misconfiguring PAM can leave the system in a state where all users become locked out. Before making any changes, you should have an understanding of how PAM configuration works as well as a backup means of accessing the PAM configuration files, such as an Arch Live CD, in case you become locked out and need to revert any changes. An IBM developerWorks [http://www.ibm.com/developerworks/linux/library/l-pam/index.html article] is available which explains PAM configuration in further detail.}}<br />
<br />
{{hc|/etc/pam.d/login|2=<br />
#%PAM-1.0<br />
<br />
auth required pam_securetty.so<br />
auth requisite pam_nologin.so<br />
auth include system-local-login<br />
'''auth optional pam_ssh.so try_first_pass'''<br />
account include system-local-login<br />
session include system-local-login<br />
'''session optional pam_ssh.so'''<br />
}}<br />
<br />
In the above example, login authentication initially proceeds as it normally would, with the user being prompted to enter his user password. The additional {{ic|auth}} authentication rule added to the end of the authentication stack then instructs the pam_ssh module to try to decrypt any private keys found in the {{ic|~/.ssh/login-keys.d}} directory. The {{ic|try_first_pass}} option is passed to the pam_ssh module, instructing it to first try to decrypt any SSH private keys using the previously entered user password. If the user's private key passphrase and user password are the same, this should succeed and the user will not be prompted to enter the same password twice. In the case where the user's private key passphrase user password differ, the pam_ssh module will prompt the user to enter the SSH passphrase after the user password has been entered. The {{ic|optional}} control value ensures that users without an SSH private key are still able to log in. In this way, the use of pam_ssh will be transparent to users without an SSH private key.<br />
<br />
If you use another means of logging in, such as an X11 display manager like [[SLiM]] or [[XDM]] and you would like it to provide similar functionality, you must edit its associated PAM configuration file in a similar fashion. Packages providing support for PAM typically place a default configuration file in the {{ic|/etc/pam.d/}} directory.<br />
<br />
Further details on how to use pam_ssh and a list of its options can be found in the pam_ssh man page.<br />
<br />
====Known issues with pam_ssh====<br />
Work on the pam_ssh project is infrequent and the documentation provided is sparse. You should be aware of some of its limitations which are not mentioned in the package itself.<br />
<br />
* Versions of pam_ssh prior to version 2.0 do not support SSH keys employing the newer option of ECDSA (elliptic curve) cryptography. If you are using earlier versions of pam_ssh you must use either RSA or DSA keys.<br />
<br />
* The {{ic|ssh-agent}} process spawned by pam_ssh does not persist between user logins. If you like to keep a [[GNU Screen]] session active between logins you may notice when reattaching to your screen session that it can no longer communicate with ssh-agent. This is because the GNU Screen environment and those of its children will still reference the instance of ssh-agent which existed when GNU Screen was invoked but was subsequently killed in a previous logout. The [[#Keychain|Keychain]] front-end avoids this problem by keeping the ssh-agent process alive between logins.<br />
<br />
===GNOME Keyring===<br />
If you use the [[GNOME]] desktop, the [[GNOME Keyring]] tool can be used as an SSH agent. See the [[GNOME Keyring]] article for further details.<br />
<br />
===Store SSH keys with Kwallet===<br />
For instructions on how to use kwallet to store your SSH keys, see [[KDE Wallet#Using the KDE Wallet to store ssh keys]].<br />
<br />
==Troubleshooting==<br />
<br />
=== Key ignored by the server ===<br />
<br />
If it appears that the SSH server is ignoring your keys, ensure that you have the proper permissions set on all relevant files.<br /><br />
For the local machine:<br />
<br />
$ chmod 700 ~/<br />
$ chmod 700 ~/.ssh<br />
$ chmod 600 ~/.ssh/id_ecdsa<br />
<br />
For the remote machine:<br />
<br />
$ chmod 700 ~/<br />
$ chmod 700 ~/.ssh<br />
$ chmod 600 ~/.ssh/authorized_keys<br />
<br />
If that does not solve the problem you may try temporarily setting {{ic|StrictModes}} to {{ic|no}} in {{ic|sshd_config}}. If authentication with StrictModes off is successful, it is likely an issue with file permissions persists.<br />
{{Tip|Do not forget to set {{ic|StrictModes}} to {{ic|yes}} for added security.}}<br />
Make sure the remote machine supports the type of keys you are using. Try using RSA or DSA keys instead [[#Generating an SSH key pair]]<br />
Some servers do not support ECDSA keys. <br />
<br />
Failing this, run the sshd in debug mode and monitor the output while connecting:<br />
<br />
# /usr/bin/sshd -d<br />
<br />
=== Using KDM ===<br />
KDM does not launch the ''ssh-agent'' process directly, {{Pkg|kde-agent}}{{Broken package link|package not found}} used to start ''ssh-agent'' on login, but since version 20140102-1 it got [https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/kde-agent&id=1070467b0f74b2339ceca2b9471d1c4e2b9c9c8f removed].<br />
<br />
In order to start ''ssh-agent'' on KDE startup for a user, create scripts to start ''ssh-agent'' on startup and one to kill it on logoff:<br />
$ echo -e '#!/bin/sh\n[ -n "$SSH_AGENT_PID" ] || eval "$(ssh-agent -s)"' > ~/.kde4/env/ssh-agent-startup.sh<br />
$ echo -e '#!/bin/sh\n[ -z "$SSH_AGENT_PID" ] || eval "$(ssh-agent -k)"' > ~/.kde4/shutdown/ssh-agent-shutdown.sh<br />
$ chmod 755 ~/.kde4/env/ssh-agent-startup.sh ~/.kde4/shutdown/ssh-agent-shutdown.sh<br />
<br />
If you are using [[KDE#Plasma_5|Plasma 5]], you must create the scripts in the {{ic|~/.config/plasma-workspace/}} directory, instead of {{ic|~/.kde4}}:<br />
<br />
$ echo -e '#!/bin/sh\n[ -n "$SSH_AGENT_PID" ] || eval "$(ssh-agent -s)"' > ~/.config/plasma-workspace/env/ssh-agent-startup.sh<br />
$ echo -e '#!/bin/sh\n[ -z "$SSH_AGENT_PID" ] || eval "$(ssh-agent -k)"' > ~/.config/plasma-workspace/shutdown/ssh-agent-shutdown.sh<br />
$ chmod 755 ~/.config/plasma-workspace/env/ssh-agent-startup.sh ~/.config/plasma-workspace/shutdown/ssh-agent-shutdown.sh<br />
<br />
==See also==<br />
* [http://www.ibm.com/developerworks/linux/library/l-keyc.html OpenSSH key management, Part 1]<br />
* [http://www.ibm.com/developerworks/linux/library/l-keyc2/ OpenSSH key management, Part 2]<br />
* [http://www.ibm.com/developerworks/library/l-keyc3/ OpenSSH key management, Part 3]<br />
* [http://kimmo.suominen.com/docs/ssh/ Getting started with SSH]<br />
* [http://www.openssh.com/txt/release-5.7 OpenSSH 5.7 Release Notes]<br />
* [https://stribika.github.io/2015/01/04/secure-secure-shell.html Secure Secure Shell]</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=ATI&diff=338568ATI2014-10-03T20:51:37Z<p>Lordheavy: /* Installation */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[de:ATI]]<br />
[[es:ATI]]<br />
[[fr:ATI]]<br />
[[it:ATI]]<br />
[[ja:ATI]]<br />
[[pl:ATI]]<br />
[[ru:ATI]]<br />
[[tr:ATI]]<br />
[[zh-CN:ATI]]<br />
{{Related articles start}}<br />
{{Related|AMD Catalyst}}<br />
{{Related|Xorg}}<br />
{{Related articles end}}<br />
<br />
Owners of '''AMD''' (previously '''ATI''') video cards have a choice between AMD's [[AMD Catalyst|proprietary driver]] ({{AUR|catalyst}}) and the open source driver ({{Pkg|xf86-video-ati}}). This article covers the open source driver.<br />
<br />
The open source driver is currently not ''on par'' with the proprietary driver in terms of 3D performance on newer cards or reliable TV-out support. It does, however, offer better dual-head support, excellent 2D acceleration, and provide sufficient 3D acceleration for OpenGL-accelerated [[window manager]]s, such as [[Compiz]] or KWin.<br />
<br />
If unsure, try the open source driver first, it will suit most needs and is generally less problematic (see the [http://www.x.org/wiki/RadeonFeature feature matrix] for details).<br />
<br />
== Naming conventions ==<br />
<br />
The [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).<br />
<br />
For a table of core and product series, see [[Wikipedia:Comparison of AMD graphics processing units]].<br />
<br />
== Overview ==<br />
<br />
The {{ic|xf86-video-ati}} (radeon) driver:<br />
*Works with Radeon chipsets up to HD 6xxx and 7xxxM (latest Northern Islands chipsets).<br />
**Radeons in the HD 77xx (Southern Islands) series are mostly supported. Check the [http://www.x.org/wiki/RadeonFeature feature matrix] for unsupported features.<br />
**Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D acceleration are provided.<br />
**Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides.<br />
*Supports DRI1, RandR 1.2/1.3/1.4, Glamor, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2.<br />
<br />
Generally, '''xf86-video-ati''' should be your first choice, no matter which AMD/ATI card you own. In case you need to use a driver for newer AMD cards, you should consider the proprietary '''catalyst''' driver.<br />
<br />
{{Note|'''xf86-video-ati''' is specified as '''''radeon''''' for the kernel and in {{ic|xorg.conf}}. }}<br />
<br />
== Installation ==<br />
<br />
{{Note|If coming from the proprietary Catalyst driver, see [[AMD Catalyst#Uninstallation]] first.}}<br />
<br />
[[pacman|Install]] the {{Pkg|xf86-video-ati}} package from the [[official repositories]]. It provides the DDX driver for 2D acceleration and it pulls in {{Pkg|mesa-dri}} as a dependency, you should also install {{Pkg|mesa-libgl}} package to get the DRI driver for 3D acceleration.<br />
<br />
For 32-bit 3D support on x86_64, also install {{Pkg|lib32-mesa-dri}} and {{Pkg|lib32-mesa-libgl}} from the [[multilib]] repository.<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Loading ==<br />
<br />
The radeon kernel module should load fine automatically on system boot.<br />
<br />
If it does not happen, then:<br />
<br />
* Make sure you do '''not''' have {{ic|nomodeset}} or {{ic|1=vga=}} as a [[Kernel parameters|kernel parameter]], since radeon requires kernel mode-setting.<br />
* Also, check that you have not disabled radeon by using any modprobe blacklisting within {{ic|/etc/modprobe.d/}} or {{ic|/usr/lib/modprobe.d/}}.<br />
<br />
=== Enable early KMS ===<br />
<br />
{{Tip|If you have problems with the resolution, you can check whether [[Kernel Mode Setting#Forcing modes and EDID|enforcing the mode]] helps.}}<br />
<br />
[[KMS|Kernel Mode Setting]] (KMS) is supported by the radeon driver and is mandatory and enabled by default. <br />
<br />
KMS is typically initialized after the [[Arch boot process#initramfs|initramfs stage]]. It is possible, however, to enable KMS during the initramfs stage. To do this, add the {{ic|radeon}} module to the {{ic|MODULES}} line in {{ic|/etc/mkinitcpio.conf}}:<br />
<br />
MODULES="... radeon ..."<br />
<br />
Now, regenerate the initramfs:<br />
<br />
# mkinitcpio -p linux<br />
<br />
The change takes effect at the next reboot.<br />
<br />
== Performance tuning ==<br />
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.<br />
<br />
'''ColorTiling''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU<br />
<br />
Option "ColorTiling" "on"<br />
<br />
'''Acceleration architecture'''; this will work only on '''newer''' cards. If you enable this and then cannot get back into X, remove it. <br />
<br />
Option "AccelMethod" "EXA"<br />
<br />
'''Page Flip''' is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA.<br />
<br />
Option "EnablePageFlip" "on"<br />
<br />
'''EXAVSync ''' option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips.<br />
Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled.<br />
<br />
Option "EXAVSync" "yes"<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default<br />
Option "EnablePageFlip" "on" #supported on all R/RV/RS4xx and older hardware, and set on by default<br />
Option "AccelMethod" "EXA" #valid options are XAA, EXA and Glamor. Default value varies per-GPU.<br />
Option "RenderAccel" "on" #enabled by default on all radeon hardware<br />
Option "ColorTiling" "on" #enabled by default on RV300 and later radeon cards<br />
Option "EXAVSync" "off" #default is off, otherwise on. Only works '''if EXA activated'''<br />
Option "EXAPixmaps" "on" #when on icreases 2D performance, but may also cause artifacts on some old cards. Only works '''if EXA activated'''<br />
Option "AccelDFS" "on" #default is off, read the radeon manpage for more information<br />
EndSection<br />
}}<br />
<br />
Defining the '''gartsize''', if not autodetected, can be done by adding {{ic|1=radeon.gartsize=32}} into [[kernel parameters]]. Size is in megabytes and 32 is for RV280 cards.<br />
<br />
Alternatively, do it with a modprobe option in {{ic|/etc/modprobe.d/radeon.conf}}:<br />
<br />
options radeon gartsize=32<br />
<br />
'''For further information and other options, read the radeon manpage and the module's info page''': {{ic|man radeon}}, {{ic|modinfo radeon}}.<br />
<br />
A fine tool to try is {{Pkg|driconf}}. It will allow you to modify several settings, like vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).<br />
<br />
=== Deactivating PCI-E 2.0 ===<br />
<br />
Since kernel 3.6, PCI-E v2.0 in '''radeon''' is turned on by default.<br />
<br />
It can be unstable with some motherboards, so it can be deactivated by adding {{ic|1=radeon.pcie_gen2=0}} on the [[Kernel parameters|kernel command line]].<br />
<br />
See [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article] for more information.<br />
<br />
=== Glamor ===<br />
<br />
Glamor is a 2D acceleration method implemented through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.<br />
<br />
Since xf86-video-ati driver-1:7.2.0-1, glamor is automatically enabled with radeonsi drivers (Southern Islands and superior GFX cards); with other graphic cards you can use it by adding the AccelMethod glamor to your xorg.conf config file in the Device section:<br />
<br />
Option "AccelMethod" "glamor"<br />
<br />
In order to enable EXA (which is an alternative to glamor until the above bug is fixed), the following configuration is [https://bugs.freedesktop.org/show_bug.cgi?id=68524#c14 suggested] in that bug report:<br />
{{bc|<br />
Section "Device"<br />
Identifier "hd_7970"<br />
Driver "radeon"<br />
Option "AccelMethod" "EXA"<br />
Option "EXAVSync" "off"<br />
Option "EXAPixmaps" "on"<br />
Option "AccelDFS" "on"<br />
EndSection<br />
}}<br />
<br />
== Hybrid graphics/AMD Dynamic Switchable Graphics ==<br />
<br />
It is the technology used on recent laptops equiped with two GPUs, one power-efficent (generally Intel integrated card) and one more powerful and more power-hungry (generally Radeon or Nvidia). There are three ways to get it work:<br />
<br />
* If you do not need to run any GPU-hungry application, you can plainly disable the discrete card: {{ic|echo OFF > /sys/kernel/debug/vgaswitcheroo/switch}}. You can do more things with vgaswitcheroo (see [https://help.ubuntu.com/community/HybridGraphics#Using_vga_switcheroo Ubuntu wiki] for more information) but ultimately at best one card is bound to one graphic session, you cannot use both on one graphic session.<br />
* You can use [[PRIME]]. It is the proper way to use hybrid graphics on Linux but still requires a bit of manual intervention from the user.<br />
* You can also use [[bumblebee]] with radeon, there is a {{AUR|bumblebee-amd-git}} package on [[AUR]].<br />
<br />
== Powersaving ==<br />
<br />
With the radeon driver, power saving is disabled by default and has to be enabled manually if desired.<br />
<br />
You can choose between three different methods:<br />
<br />
# [[#Dynamic frequency switching|dynpm]]<br />
# [[#Profile-based frequency switching|profile]]<br />
# [[#Dynamic power management|dpm]] (enabled by default since kernel 3.13)<br />
<br />
'''It is hard to say which is the best for you, so you have to try it yourself!'''<br />
<br />
Power management is supported on all chips that include the appropriate power state tables in the vbios (R1xx and newer). "dpm" is only supported on R6xx and newer chips.<br />
<br />
See http://www.x.org/wiki/RadeonFeature/#index3h2 for details.<br />
<br />
=== Old methods ===<br />
<br />
==== Dynamic frequency switching ====<br />
<br />
This method dynamically changes the frequency depending on GPU load, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.<br />
<br />
It can be activated by simply running the following command:<br />
<br />
# echo dynpm > /sys/class/drm/card0/device/power_method<br />
<br />
==== Profile-based frequency switching ====<br />
<br />
This method will allow you to select one of the five profiles (described below). Different profiles, for the most part, end up changing the frequency/voltage of the GPU. This method is not as aggressive, but is more stable and flicker free and works with multiple heads active.<br />
<br />
To activate the method, run the following command:<br />
<br />
# echo profile > /sys/class/drm/card0/device/power_method<br />
<br />
Select one of the available profiles:<br />
* {{ic|default}} uses the default clocks and does not change the power state. This is the default behaviour.<br />
* {{ic|auto}} selects between {{ic|mid}} and {{ic|high}} power states based on the whether the system is on battery power or not.<br />
* {{ic|low}} forces the gpu to be in the {{ic|low}} power state all the time. Note that {{ic|low}} can cause display problems on some laptops, which is why {{ic|auto}} only uses {{ic|low}} when monitors are off. Selected on other profiles when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|mid}} forces the gpu to be in the {{ic|mid}} power state all the time.<br />
* {{ic|high}} forces the gpu to be in the {{ic|high}} power state all the time.<br />
<br />
As an example, we will activate the {{ic|low}} profile (replace {{ic|low}} with any of the aforementioned profiles as necessary):<br />
<br />
# echo low > /sys/class/drm/card0/device/power_profile<br />
<br />
==== Persistent configuration ====<br />
<br />
The activation described above is not persistent, it will not last when the computer is rebooted. To make it persistent, you can use [[systemd#Temporary files|systemd-tmpfiles]] (example for [[#Dynamic frequency switching]]):<br />
<br />
{{hc|/etc/tmpfiles.d/radeon-pm.conf|<nowiki><br />
w /sys/class/drm/card0/device/power_method - - - - dynpm<br />
</nowiki>}}<br />
<br />
Alternatively, you may use this [[udev]] rule instead (example for [[#Profile-based frequency switching]]):<br />
<br />
{{hc|/etc/udev/rules.d/30-radeon-pm.rules|<nowiki><br />
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low"<br />
</nowiki>}}<br />
<br />
{{Note|If the above rule is failing, try removing the {{ic|dri/}} prefix.}}<br />
<br />
==== Graphical tools ====<br />
<br />
* {{App|Radeon-tray|A small program to control the power profiles of your Radeon card via systray icon. It is written in PyQt4 and is suitable for non-Gnome users.|https://github.com/StuntsPT/Radeon-tray|{{AUR|radeon-tray}}}}<br />
* {{App|power-play-switcher|A gui for changing powerplay setting of the open source driver for ati radeon video cards.|https://code.google.com/p/power-play-switcher/|{{AUR|power-play-switcher}}}}<br />
* {{App|Gnome-shell-extension-Radeon-Power-Profile-Manager|A small extension for Gnome-shell that will allow you to change the power profile of your radeon card when using the open source drivers.|https://github.com/StuntsPT/shell-extension-radeon-power-profile-manager|{{AUR|gnome-shell-extension-radeon-ppm}} {{AUR|gnome-shell-extension-radeon-power-profile-manager-git}}}}<br />
<br />
=== Dynamic power management ===<br />
<br />
Since kernel 3.13, DPM is enabled by default for [http://kernelnewbies.org/Linux_3.13#head-f95c198f6fdc7defe36f470dc8369cf0e16898df lots of AMD Radeon hardware]. If you want to disable it, add the parameter {{ic|1=radeon.dpm=0}} to the [[kernel parameters]].<br />
<br />
Unlike [[#Dynamic frequency switching|dynpm]], the "dpm" method uses hardware on the GPU to dynamically change the clocks and voltage based on GPU load. It also enables clock and power gating.<br />
<br />
There are 3 operation modes to choose from:<br />
<br />
* {{ic|battery}} lowest power consumption<br />
* {{ic|balanced}} sane default<br />
* {{ic|performance}} highest performance<br />
<br />
They can be changed via sysfs<br />
# echo battery > /sys/class/drm/card0/device/power_dpm_state<br />
<br />
For testing or debugging purposes, you can force the card to run in a set performance mode:<br />
<br />
* {{ic|auto}} default; uses all levels in the power state<br />
* {{ic|low}} enforces the lowest performance level<br />
* {{ic|high}} enforces the highest performance level<br />
<br />
# echo low > /sys/class/drm/card0/device/power_dpm_force_performance_level<br />
<br />
==== Graphical tools ====<br />
<br />
* {{App|Gnome-shell-extension-Radeon-Power-Profile-Manager by lalmeras|This GNOME Shell extension (forked from StuntsPT's one) allows to switch easily between battery, balanced and performance dpm settings. This extension supports setups with multiple cards.|https://github.com/lalmeras/shell-extension-radeon-power-profile-manager|not packaged}}<br />
<br />
=== Other notes ===<br />
<br />
To view the speed that the GPU is running at, perform the following command and you will get something like this output:<br />
<br />
{{hc|$ cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki><br />
state: PM_STATE_ENABLED<br />
default engine clock: 300000 kHz<br />
current engine clock: 300720 kHz<br />
default memory clock: 200000 kHz<br />
</nowiki>}}<br />
<br />
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.<br />
<br />
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via [[lm_sensors]] tools or via sysfs in {{ic|/sys/class/hwmon}}.<br />
<br />
== TV out ==<br />
<br />
First, check that you have an S-video output: {{ic|xrandr}} should give you something like<br />
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200<br />
...<br />
S-video disconnected (normal left inverted right x axis y axis)<br />
<br />
Now we should tell Xorg that it is actually connected (it ''is'', right?)<br />
xrandr --output S-video --set "load detection" 1<br />
<br />
Setting TV standard to use:<br />
xrandr --output S-video --set "tv standard" ntsc<br />
<br />
Adding a mode for it (currently supports only 800x600):<br />
xrandr --addmode S-video 800x600<br />
<br />
Clone mode:<br />
xrandr --output S-video --same-as VGA-0<br />
<br />
Now let us try to see what we have:<br />
xrandr --output S-video --mode 800x600<br />
<br />
At this point you should see a 800x600 version of your desktop on your TV.<br />
<br />
To disable the output, do<br />
xrandr --output S-video --off<br />
<br />
Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.<br />
<br />
To send the output to the TV, do:<br />
xvattr -a XV_CRTC -v 1<br />
<br />
{{Note| you need to install {{AUR|xvattr}} to execute this command.}}<br />
<br />
To switch back to the monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.<br />
<br />
Please see [http://www.x.org/wiki/radeonTV Enabling TV-Out Statically] for how to enable TV-out in your xorg configuration file.<br />
<br />
=== Force TV-out in KMS ===<br />
<br />
The kernel can recognize {{ic|1=video=}} parameter in following form (see [[KMS]] for more details):<br />
<br />
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]<br />
<br />
For example:<br />
<br />
video=DVI-I-1:1280x1024-24@60e<br />
<br />
Parameters with whitespaces must be quoted:<br />
<br />
"video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
Current mkinitcpio implementation also requires {{ic|#}} in front. For example:<br />
<br />
root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
* Grub can pass such command line as is.<br />
* Lilo needs backslashes for doublequotes (append {{ic|1=# \"video=9-pin DIN-1:1024x768-24@60e\"}})<br />
* Grub2: TODO<br />
<br />
You can get list of your video outputs with following command:<br />
<br />
{{bc|<nowiki>$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-</nowiki>}}<br />
<br />
== HDMI audio ==<br />
<br />
HDMI audio is supported in the {{Pkg|xf86-video-ati}} video driver. By default HDMI audio is disabled in the driver kernel versions >=3.0 because it can be problematic. To enable HDMI audio add {{ic|1=radeon.audio=1}} to your [[kernel parameters]].<br />
<br />
If there is no video after boot up, the driver option has to be disabled.<br />
<br />
{{Note|<br />
* If HDMI audio does not work after installing the driver, test your setup with the procedure at [[Advanced Linux Sound Architecture#HDMI output does not work]].<br />
* If the sound is distorted in PulseAudio try setting {{ic|1=tsched=0}} as described in [[PulseAudio#Glitches, skips or crackling]] and make sure {{ic|rtkit}} daemon is running.<br />
* Your sound card might use the same module, since HDA compliant hardware is pretty common. [[Advanced_Linux_Sound_Architecture#Set_the_default_sound_card|Change the default sound card]] using one of the suggested methods, which include using the {{ic|defaults}} node in alsa configuration.<br />
}}<br />
<br />
== Dual Head setup ==<br />
<br />
=== Independent X screens ===<br />
<br />
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "radeon"<br />
Option "ZaphodHeads" "VGA-0"<br />
VendorName "ATI"<br />
BusID "PCI:1:0:0"<br />
Screen 0<br />
EndSection<br />
<br />
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads" "VGA-0"}}.<br />
<br />
== Enabling video acceleration ==<br />
<br />
Latest {{Pkg|mesa}} package added support for MPEG1/2 decoding to free drivers, exported via {{Pkg|libvdpau}} and are automatically detected.<br />
<br />
In case it did not automatically use it, you can force the use of the driver by assigning environment variable {{Ic|LIBVA_DRIVER_NAME}} to {{Ic|vdpau}} and {{Ic|VDPAU_DRIVER}} to the name of driver core, e.g.:<br />
<br />
{{hc|1=~/.bashrc|2=<br />
export LIBVA_DRIVER_NAME=vdpau<br />
export VDPAU_DRIVER=r600<br />
}}<br />
<br />
for r600-based+ cards (all available VDPAU drivers are in {{Ic|/usr/lib/vdpau/}}).<br />
<br />
== Turn vsync off ==<br />
<br />
The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create {{ic|~/.drirc}} (or edit it if it already exists) and add the following section:<br />
{{hc|~/.drirc|<nowiki><br />
<driconf><br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0" /><br />
</application><br />
</device><br />
<!-- Other devices ... --><br />
</driconf><br />
</nowiki>}}<br />
Make sure the driver is '''dri2''', not your video card code (like r600).<br />
<br />
== Troubleshooting ==<br />
<br />
=== Artifacts upon logging in ===<br />
<br />
If encountering artifacts, first try starting X without {{ic|/etc/X11/xorg.conf}}. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured {{ic|xorg.conf}} files are known to cause trouble.<br />
<br />
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.<br />
<br />
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EXAPixmaps" "off"<br />
EndSection<br />
<br />
Further tweaking could be done by disabling {{ic|AccelDFS}}:<br />
<br />
Option "AccelDFS" "off"<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
e.g. When EDID fails on a DisplayPort connection. <br />
<br />
This issue is covered on the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].<br />
<br />
=== AGP is disabled (with KMS) ===<br />
<br />
If you experience poor performance and dmesg shows something like this<br />
[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19<br />
then check if the agp driver for your motherboard (e.g., {{ic|via_agp}}, {{ic|intel_agp}} etc.) is loaded before the {{ic|radeon}} module, see [[ATI#Enabling KMS|Enabling KMS]].<br />
<br />
=== TV showing a black border around the screen ===<br />
<br />
When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see [[Wikipedia:Overscan]]) can be turned off using xrandr:<br />
xrandr --output HDMI-0 --set underscan off<br />
<br />
=== Black screen with mouse cursor on resume from suspend in X ===<br />
<br />
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance tuning|performance tuning]] for more information.<br />
<br />
=== No desktop effects in KDE4 with X1300 and Radeon driver ===<br />
<br />
A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}. <br />
<br />
Add:<br />
DisableChecks=true<br />
<br />
To the [Compositing] section. Ensure that compositing is enabled with:<br />
Enabled=true<br />
<br />
=== Black screen and no console, but X works in KMS ===<br />
<br />
This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:<br />
fbcon=map:1<br />
This will tell the fbcon to map itself to the {{ic|/dev/fb1}} framebuffer dev and not the {{ic|/dev/fb0}}, that in our case exist on the wrong graphics card.<br />
<br />
=== 2D performance (e.g. scrolling) is slow ===<br />
<br />
If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.<br />
This only applies to EXA.<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "MigrationHeuristic" "greedy"<br />
EndSection<br />
}}<br />
<br />
Users with newer graphics boards (HD 77** and above) may experience slow scrolling due to the glamor bug [[ATI#glamor|described here]]. Enabling EXA as described in that section should fix the issue.<br />
<br />
=== Monitor rotation works for cursor but not windows/content ===<br />
<br />
Users with newer graphics boards who have enabled EXA instead of glamor may find that rotating their monitor with xrandr causes the cursor and monitor dimensions to rotate, but windows and other content stay in their normal orientation. Additionally, the cursor moves according to normal rotation when the user moves the mouse. Look for the following line in your {{ic|/var/log/Xorg.0.log}} when you issue the xrandr rotate command:<br />
{{bc|<br />
(EE) RADEON(0): Rotation requires acceleration!<br />
}}<br />
Acceleration is disabled when using EXA on newer graphics cards (source: [https://bugs.freedesktop.org/show_bug.cgi?id=73420#c17 comment 17]). You must choose between enabling EXA ([[#Glamor|detailed above in the glamor section]]) and the ability to rotate.<br />
<br />
=== ATI X1600 (RV530 series) 3D application show black windows ===<br />
<br />
There are three possible solutions:<br />
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].<br />
* If this does not work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.<br />
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{pkg|driconf}} and set that option in {{ic|~/.drirc}}.</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=ATI&diff=338567ATI2014-10-03T20:50:25Z<p>Lordheavy: update in regards of new dependencies</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[de:ATI]]<br />
[[es:ATI]]<br />
[[fr:ATI]]<br />
[[it:ATI]]<br />
[[ja:ATI]]<br />
[[pl:ATI]]<br />
[[ru:ATI]]<br />
[[tr:ATI]]<br />
[[zh-CN:ATI]]<br />
{{Related articles start}}<br />
{{Related|AMD Catalyst}}<br />
{{Related|Xorg}}<br />
{{Related articles end}}<br />
<br />
Owners of '''AMD''' (previously '''ATI''') video cards have a choice between AMD's [[AMD Catalyst|proprietary driver]] ({{AUR|catalyst}}) and the open source driver ({{Pkg|xf86-video-ati}}). This article covers the open source driver.<br />
<br />
The open source driver is currently not ''on par'' with the proprietary driver in terms of 3D performance on newer cards or reliable TV-out support. It does, however, offer better dual-head support, excellent 2D acceleration, and provide sufficient 3D acceleration for OpenGL-accelerated [[window manager]]s, such as [[Compiz]] or KWin.<br />
<br />
If unsure, try the open source driver first, it will suit most needs and is generally less problematic (see the [http://www.x.org/wiki/RadeonFeature feature matrix] for details).<br />
<br />
== Naming conventions ==<br />
<br />
The [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).<br />
<br />
For a table of core and product series, see [[Wikipedia:Comparison of AMD graphics processing units]].<br />
<br />
== Overview ==<br />
<br />
The {{ic|xf86-video-ati}} (radeon) driver:<br />
*Works with Radeon chipsets up to HD 6xxx and 7xxxM (latest Northern Islands chipsets).<br />
**Radeons in the HD 77xx (Southern Islands) series are mostly supported. Check the [http://www.x.org/wiki/RadeonFeature feature matrix] for unsupported features.<br />
**Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D acceleration are provided.<br />
**Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides.<br />
*Supports DRI1, RandR 1.2/1.3/1.4, Glamor, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2.<br />
<br />
Generally, '''xf86-video-ati''' should be your first choice, no matter which AMD/ATI card you own. In case you need to use a driver for newer AMD cards, you should consider the proprietary '''catalyst''' driver.<br />
<br />
{{Note|'''xf86-video-ati''' is specified as '''''radeon''''' for the kernel and in {{ic|xorg.conf}}. }}<br />
<br />
== Installation ==<br />
<br />
{{Note|If coming from the proprietary Catalyst driver, see [[AMD Catalyst#Uninstallation]] first.}}<br />
<br />
[[pacman|Install]] the {{Pkg|xf86-video-ati}} package from the [[official repositories]]. It provides the DDX driver for 2D acceleration and it pulls in {{Pkg|mesa-dri}} as a dependency, you should also install {{Pkg|mesa-libgl}} package to get the DRI driver for 3D acceleration.<br />
<br />
For 32-bit 3D support on x86_64, also install {{Pkg|lib32-mesa}} and {{Pkg|lib32-mesa-libgl}} from the [[multilib]] repository.<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Loading ==<br />
<br />
The radeon kernel module should load fine automatically on system boot.<br />
<br />
If it does not happen, then:<br />
<br />
* Make sure you do '''not''' have {{ic|nomodeset}} or {{ic|1=vga=}} as a [[Kernel parameters|kernel parameter]], since radeon requires kernel mode-setting.<br />
* Also, check that you have not disabled radeon by using any modprobe blacklisting within {{ic|/etc/modprobe.d/}} or {{ic|/usr/lib/modprobe.d/}}.<br />
<br />
=== Enable early KMS ===<br />
<br />
{{Tip|If you have problems with the resolution, you can check whether [[Kernel Mode Setting#Forcing modes and EDID|enforcing the mode]] helps.}}<br />
<br />
[[KMS|Kernel Mode Setting]] (KMS) is supported by the radeon driver and is mandatory and enabled by default. <br />
<br />
KMS is typically initialized after the [[Arch boot process#initramfs|initramfs stage]]. It is possible, however, to enable KMS during the initramfs stage. To do this, add the {{ic|radeon}} module to the {{ic|MODULES}} line in {{ic|/etc/mkinitcpio.conf}}:<br />
<br />
MODULES="... radeon ..."<br />
<br />
Now, regenerate the initramfs:<br />
<br />
# mkinitcpio -p linux<br />
<br />
The change takes effect at the next reboot.<br />
<br />
== Performance tuning ==<br />
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.<br />
<br />
'''ColorTiling''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU<br />
<br />
Option "ColorTiling" "on"<br />
<br />
'''Acceleration architecture'''; this will work only on '''newer''' cards. If you enable this and then cannot get back into X, remove it. <br />
<br />
Option "AccelMethod" "EXA"<br />
<br />
'''Page Flip''' is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA.<br />
<br />
Option "EnablePageFlip" "on"<br />
<br />
'''EXAVSync ''' option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips.<br />
Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled.<br />
<br />
Option "EXAVSync" "yes"<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default<br />
Option "EnablePageFlip" "on" #supported on all R/RV/RS4xx and older hardware, and set on by default<br />
Option "AccelMethod" "EXA" #valid options are XAA, EXA and Glamor. Default value varies per-GPU.<br />
Option "RenderAccel" "on" #enabled by default on all radeon hardware<br />
Option "ColorTiling" "on" #enabled by default on RV300 and later radeon cards<br />
Option "EXAVSync" "off" #default is off, otherwise on. Only works '''if EXA activated'''<br />
Option "EXAPixmaps" "on" #when on icreases 2D performance, but may also cause artifacts on some old cards. Only works '''if EXA activated'''<br />
Option "AccelDFS" "on" #default is off, read the radeon manpage for more information<br />
EndSection<br />
}}<br />
<br />
Defining the '''gartsize''', if not autodetected, can be done by adding {{ic|1=radeon.gartsize=32}} into [[kernel parameters]]. Size is in megabytes and 32 is for RV280 cards.<br />
<br />
Alternatively, do it with a modprobe option in {{ic|/etc/modprobe.d/radeon.conf}}:<br />
<br />
options radeon gartsize=32<br />
<br />
'''For further information and other options, read the radeon manpage and the module's info page''': {{ic|man radeon}}, {{ic|modinfo radeon}}.<br />
<br />
A fine tool to try is {{Pkg|driconf}}. It will allow you to modify several settings, like vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).<br />
<br />
=== Deactivating PCI-E 2.0 ===<br />
<br />
Since kernel 3.6, PCI-E v2.0 in '''radeon''' is turned on by default.<br />
<br />
It can be unstable with some motherboards, so it can be deactivated by adding {{ic|1=radeon.pcie_gen2=0}} on the [[Kernel parameters|kernel command line]].<br />
<br />
See [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article] for more information.<br />
<br />
=== Glamor ===<br />
<br />
Glamor is a 2D acceleration method implemented through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.<br />
<br />
Since xf86-video-ati driver-1:7.2.0-1, glamor is automatically enabled with radeonsi drivers (Southern Islands and superior GFX cards); with other graphic cards you can use it by adding the AccelMethod glamor to your xorg.conf config file in the Device section:<br />
<br />
Option "AccelMethod" "glamor"<br />
<br />
In order to enable EXA (which is an alternative to glamor until the above bug is fixed), the following configuration is [https://bugs.freedesktop.org/show_bug.cgi?id=68524#c14 suggested] in that bug report:<br />
{{bc|<br />
Section "Device"<br />
Identifier "hd_7970"<br />
Driver "radeon"<br />
Option "AccelMethod" "EXA"<br />
Option "EXAVSync" "off"<br />
Option "EXAPixmaps" "on"<br />
Option "AccelDFS" "on"<br />
EndSection<br />
}}<br />
<br />
== Hybrid graphics/AMD Dynamic Switchable Graphics ==<br />
<br />
It is the technology used on recent laptops equiped with two GPUs, one power-efficent (generally Intel integrated card) and one more powerful and more power-hungry (generally Radeon or Nvidia). There are three ways to get it work:<br />
<br />
* If you do not need to run any GPU-hungry application, you can plainly disable the discrete card: {{ic|echo OFF > /sys/kernel/debug/vgaswitcheroo/switch}}. You can do more things with vgaswitcheroo (see [https://help.ubuntu.com/community/HybridGraphics#Using_vga_switcheroo Ubuntu wiki] for more information) but ultimately at best one card is bound to one graphic session, you cannot use both on one graphic session.<br />
* You can use [[PRIME]]. It is the proper way to use hybrid graphics on Linux but still requires a bit of manual intervention from the user.<br />
* You can also use [[bumblebee]] with radeon, there is a {{AUR|bumblebee-amd-git}} package on [[AUR]].<br />
<br />
== Powersaving ==<br />
<br />
With the radeon driver, power saving is disabled by default and has to be enabled manually if desired.<br />
<br />
You can choose between three different methods:<br />
<br />
# [[#Dynamic frequency switching|dynpm]]<br />
# [[#Profile-based frequency switching|profile]]<br />
# [[#Dynamic power management|dpm]] (enabled by default since kernel 3.13)<br />
<br />
'''It is hard to say which is the best for you, so you have to try it yourself!'''<br />
<br />
Power management is supported on all chips that include the appropriate power state tables in the vbios (R1xx and newer). "dpm" is only supported on R6xx and newer chips.<br />
<br />
See http://www.x.org/wiki/RadeonFeature/#index3h2 for details.<br />
<br />
=== Old methods ===<br />
<br />
==== Dynamic frequency switching ====<br />
<br />
This method dynamically changes the frequency depending on GPU load, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.<br />
<br />
It can be activated by simply running the following command:<br />
<br />
# echo dynpm > /sys/class/drm/card0/device/power_method<br />
<br />
==== Profile-based frequency switching ====<br />
<br />
This method will allow you to select one of the five profiles (described below). Different profiles, for the most part, end up changing the frequency/voltage of the GPU. This method is not as aggressive, but is more stable and flicker free and works with multiple heads active.<br />
<br />
To activate the method, run the following command:<br />
<br />
# echo profile > /sys/class/drm/card0/device/power_method<br />
<br />
Select one of the available profiles:<br />
* {{ic|default}} uses the default clocks and does not change the power state. This is the default behaviour.<br />
* {{ic|auto}} selects between {{ic|mid}} and {{ic|high}} power states based on the whether the system is on battery power or not.<br />
* {{ic|low}} forces the gpu to be in the {{ic|low}} power state all the time. Note that {{ic|low}} can cause display problems on some laptops, which is why {{ic|auto}} only uses {{ic|low}} when monitors are off. Selected on other profiles when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|mid}} forces the gpu to be in the {{ic|mid}} power state all the time.<br />
* {{ic|high}} forces the gpu to be in the {{ic|high}} power state all the time.<br />
<br />
As an example, we will activate the {{ic|low}} profile (replace {{ic|low}} with any of the aforementioned profiles as necessary):<br />
<br />
# echo low > /sys/class/drm/card0/device/power_profile<br />
<br />
==== Persistent configuration ====<br />
<br />
The activation described above is not persistent, it will not last when the computer is rebooted. To make it persistent, you can use [[systemd#Temporary files|systemd-tmpfiles]] (example for [[#Dynamic frequency switching]]):<br />
<br />
{{hc|/etc/tmpfiles.d/radeon-pm.conf|<nowiki><br />
w /sys/class/drm/card0/device/power_method - - - - dynpm<br />
</nowiki>}}<br />
<br />
Alternatively, you may use this [[udev]] rule instead (example for [[#Profile-based frequency switching]]):<br />
<br />
{{hc|/etc/udev/rules.d/30-radeon-pm.rules|<nowiki><br />
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low"<br />
</nowiki>}}<br />
<br />
{{Note|If the above rule is failing, try removing the {{ic|dri/}} prefix.}}<br />
<br />
==== Graphical tools ====<br />
<br />
* {{App|Radeon-tray|A small program to control the power profiles of your Radeon card via systray icon. It is written in PyQt4 and is suitable for non-Gnome users.|https://github.com/StuntsPT/Radeon-tray|{{AUR|radeon-tray}}}}<br />
* {{App|power-play-switcher|A gui for changing powerplay setting of the open source driver for ati radeon video cards.|https://code.google.com/p/power-play-switcher/|{{AUR|power-play-switcher}}}}<br />
* {{App|Gnome-shell-extension-Radeon-Power-Profile-Manager|A small extension for Gnome-shell that will allow you to change the power profile of your radeon card when using the open source drivers.|https://github.com/StuntsPT/shell-extension-radeon-power-profile-manager|{{AUR|gnome-shell-extension-radeon-ppm}} {{AUR|gnome-shell-extension-radeon-power-profile-manager-git}}}}<br />
<br />
=== Dynamic power management ===<br />
<br />
Since kernel 3.13, DPM is enabled by default for [http://kernelnewbies.org/Linux_3.13#head-f95c198f6fdc7defe36f470dc8369cf0e16898df lots of AMD Radeon hardware]. If you want to disable it, add the parameter {{ic|1=radeon.dpm=0}} to the [[kernel parameters]].<br />
<br />
Unlike [[#Dynamic frequency switching|dynpm]], the "dpm" method uses hardware on the GPU to dynamically change the clocks and voltage based on GPU load. It also enables clock and power gating.<br />
<br />
There are 3 operation modes to choose from:<br />
<br />
* {{ic|battery}} lowest power consumption<br />
* {{ic|balanced}} sane default<br />
* {{ic|performance}} highest performance<br />
<br />
They can be changed via sysfs<br />
# echo battery > /sys/class/drm/card0/device/power_dpm_state<br />
<br />
For testing or debugging purposes, you can force the card to run in a set performance mode:<br />
<br />
* {{ic|auto}} default; uses all levels in the power state<br />
* {{ic|low}} enforces the lowest performance level<br />
* {{ic|high}} enforces the highest performance level<br />
<br />
# echo low > /sys/class/drm/card0/device/power_dpm_force_performance_level<br />
<br />
==== Graphical tools ====<br />
<br />
* {{App|Gnome-shell-extension-Radeon-Power-Profile-Manager by lalmeras|This GNOME Shell extension (forked from StuntsPT's one) allows to switch easily between battery, balanced and performance dpm settings. This extension supports setups with multiple cards.|https://github.com/lalmeras/shell-extension-radeon-power-profile-manager|not packaged}}<br />
<br />
=== Other notes ===<br />
<br />
To view the speed that the GPU is running at, perform the following command and you will get something like this output:<br />
<br />
{{hc|$ cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki><br />
state: PM_STATE_ENABLED<br />
default engine clock: 300000 kHz<br />
current engine clock: 300720 kHz<br />
default memory clock: 200000 kHz<br />
</nowiki>}}<br />
<br />
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.<br />
<br />
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via [[lm_sensors]] tools or via sysfs in {{ic|/sys/class/hwmon}}.<br />
<br />
== TV out ==<br />
<br />
First, check that you have an S-video output: {{ic|xrandr}} should give you something like<br />
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200<br />
...<br />
S-video disconnected (normal left inverted right x axis y axis)<br />
<br />
Now we should tell Xorg that it is actually connected (it ''is'', right?)<br />
xrandr --output S-video --set "load detection" 1<br />
<br />
Setting TV standard to use:<br />
xrandr --output S-video --set "tv standard" ntsc<br />
<br />
Adding a mode for it (currently supports only 800x600):<br />
xrandr --addmode S-video 800x600<br />
<br />
Clone mode:<br />
xrandr --output S-video --same-as VGA-0<br />
<br />
Now let us try to see what we have:<br />
xrandr --output S-video --mode 800x600<br />
<br />
At this point you should see a 800x600 version of your desktop on your TV.<br />
<br />
To disable the output, do<br />
xrandr --output S-video --off<br />
<br />
Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.<br />
<br />
To send the output to the TV, do:<br />
xvattr -a XV_CRTC -v 1<br />
<br />
{{Note| you need to install {{AUR|xvattr}} to execute this command.}}<br />
<br />
To switch back to the monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.<br />
<br />
Please see [http://www.x.org/wiki/radeonTV Enabling TV-Out Statically] for how to enable TV-out in your xorg configuration file.<br />
<br />
=== Force TV-out in KMS ===<br />
<br />
The kernel can recognize {{ic|1=video=}} parameter in following form (see [[KMS]] for more details):<br />
<br />
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]<br />
<br />
For example:<br />
<br />
video=DVI-I-1:1280x1024-24@60e<br />
<br />
Parameters with whitespaces must be quoted:<br />
<br />
"video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
Current mkinitcpio implementation also requires {{ic|#}} in front. For example:<br />
<br />
root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
* Grub can pass such command line as is.<br />
* Lilo needs backslashes for doublequotes (append {{ic|1=# \"video=9-pin DIN-1:1024x768-24@60e\"}})<br />
* Grub2: TODO<br />
<br />
You can get list of your video outputs with following command:<br />
<br />
{{bc|<nowiki>$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-</nowiki>}}<br />
<br />
== HDMI audio ==<br />
<br />
HDMI audio is supported in the {{Pkg|xf86-video-ati}} video driver. By default HDMI audio is disabled in the driver kernel versions >=3.0 because it can be problematic. To enable HDMI audio add {{ic|1=radeon.audio=1}} to your [[kernel parameters]].<br />
<br />
If there is no video after boot up, the driver option has to be disabled.<br />
<br />
{{Note|<br />
* If HDMI audio does not work after installing the driver, test your setup with the procedure at [[Advanced Linux Sound Architecture#HDMI output does not work]].<br />
* If the sound is distorted in PulseAudio try setting {{ic|1=tsched=0}} as described in [[PulseAudio#Glitches, skips or crackling]] and make sure {{ic|rtkit}} daemon is running.<br />
* Your sound card might use the same module, since HDA compliant hardware is pretty common. [[Advanced_Linux_Sound_Architecture#Set_the_default_sound_card|Change the default sound card]] using one of the suggested methods, which include using the {{ic|defaults}} node in alsa configuration.<br />
}}<br />
<br />
== Dual Head setup ==<br />
<br />
=== Independent X screens ===<br />
<br />
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "radeon"<br />
Option "ZaphodHeads" "VGA-0"<br />
VendorName "ATI"<br />
BusID "PCI:1:0:0"<br />
Screen 0<br />
EndSection<br />
<br />
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads" "VGA-0"}}.<br />
<br />
== Enabling video acceleration ==<br />
<br />
Latest {{Pkg|mesa}} package added support for MPEG1/2 decoding to free drivers, exported via {{Pkg|libvdpau}} and are automatically detected.<br />
<br />
In case it did not automatically use it, you can force the use of the driver by assigning environment variable {{Ic|LIBVA_DRIVER_NAME}} to {{Ic|vdpau}} and {{Ic|VDPAU_DRIVER}} to the name of driver core, e.g.:<br />
<br />
{{hc|1=~/.bashrc|2=<br />
export LIBVA_DRIVER_NAME=vdpau<br />
export VDPAU_DRIVER=r600<br />
}}<br />
<br />
for r600-based+ cards (all available VDPAU drivers are in {{Ic|/usr/lib/vdpau/}}).<br />
<br />
== Turn vsync off ==<br />
<br />
The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create {{ic|~/.drirc}} (or edit it if it already exists) and add the following section:<br />
{{hc|~/.drirc|<nowiki><br />
<driconf><br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0" /><br />
</application><br />
</device><br />
<!-- Other devices ... --><br />
</driconf><br />
</nowiki>}}<br />
Make sure the driver is '''dri2''', not your video card code (like r600).<br />
<br />
== Troubleshooting ==<br />
<br />
=== Artifacts upon logging in ===<br />
<br />
If encountering artifacts, first try starting X without {{ic|/etc/X11/xorg.conf}}. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured {{ic|xorg.conf}} files are known to cause trouble.<br />
<br />
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.<br />
<br />
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EXAPixmaps" "off"<br />
EndSection<br />
<br />
Further tweaking could be done by disabling {{ic|AccelDFS}}:<br />
<br />
Option "AccelDFS" "off"<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
e.g. When EDID fails on a DisplayPort connection. <br />
<br />
This issue is covered on the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].<br />
<br />
=== AGP is disabled (with KMS) ===<br />
<br />
If you experience poor performance and dmesg shows something like this<br />
[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19<br />
then check if the agp driver for your motherboard (e.g., {{ic|via_agp}}, {{ic|intel_agp}} etc.) is loaded before the {{ic|radeon}} module, see [[ATI#Enabling KMS|Enabling KMS]].<br />
<br />
=== TV showing a black border around the screen ===<br />
<br />
When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see [[Wikipedia:Overscan]]) can be turned off using xrandr:<br />
xrandr --output HDMI-0 --set underscan off<br />
<br />
=== Black screen with mouse cursor on resume from suspend in X ===<br />
<br />
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance tuning|performance tuning]] for more information.<br />
<br />
=== No desktop effects in KDE4 with X1300 and Radeon driver ===<br />
<br />
A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}. <br />
<br />
Add:<br />
DisableChecks=true<br />
<br />
To the [Compositing] section. Ensure that compositing is enabled with:<br />
Enabled=true<br />
<br />
=== Black screen and no console, but X works in KMS ===<br />
<br />
This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:<br />
fbcon=map:1<br />
This will tell the fbcon to map itself to the {{ic|/dev/fb1}} framebuffer dev and not the {{ic|/dev/fb0}}, that in our case exist on the wrong graphics card.<br />
<br />
=== 2D performance (e.g. scrolling) is slow ===<br />
<br />
If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.<br />
This only applies to EXA.<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "MigrationHeuristic" "greedy"<br />
EndSection<br />
}}<br />
<br />
Users with newer graphics boards (HD 77** and above) may experience slow scrolling due to the glamor bug [[ATI#glamor|described here]]. Enabling EXA as described in that section should fix the issue.<br />
<br />
=== Monitor rotation works for cursor but not windows/content ===<br />
<br />
Users with newer graphics boards who have enabled EXA instead of glamor may find that rotating their monitor with xrandr causes the cursor and monitor dimensions to rotate, but windows and other content stay in their normal orientation. Additionally, the cursor moves according to normal rotation when the user moves the mouse. Look for the following line in your {{ic|/var/log/Xorg.0.log}} when you issue the xrandr rotate command:<br />
{{bc|<br />
(EE) RADEON(0): Rotation requires acceleration!<br />
}}<br />
Acceleration is disabled when using EXA on newer graphics cards (source: [https://bugs.freedesktop.org/show_bug.cgi?id=73420#c17 comment 17]). You must choose between enabling EXA ([[#Glamor|detailed above in the glamor section]]) and the ability to rotate.<br />
<br />
=== ATI X1600 (RV530 series) 3D application show black windows ===<br />
<br />
There are three possible solutions:<br />
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].<br />
* If this does not work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.<br />
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{pkg|driconf}} and set that option in {{ic|~/.drirc}}.</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=Steam/Game-specific_troubleshooting&diff=333906Steam/Game-specific troubleshooting2014-09-05T07:21:14Z<p>Lordheavy: Bug is fixed for some times</p>
<hr />
<div>[[Category:Gaming]]<br />
[[ja:Steam/Game-specific troubleshooting]]<br />
{{Note|[[Steam]] installs library dependencies of a game to a library directory, but some are missing at the moment. Report bugs involving missing libraries on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GitHub page] before adding workarounds here, and then provide a link to the bug so it can be removed as the problems are fixed.}}<br />
{{Tip|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 />
==Amnesia: The Dark Descent==<br />
===Dependencies===<br />
* {{AUR|lib32-freealut}}<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxmu}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
<br />
==And Yet It Moves==<br />
===Dependencies===<br />
* {{Pkg|lib32-libtheora}}<br />
* {{AUR|lib32-libjpeg6}}<br />
* {{AUR|lib32-libtiff4}}<br />
* {{pkg|lib32-libpng12}}<br />
<br />
===Compatibility===<br />
Game refuses to launch and one of the following messages can be observed on console<br />
readlink: extra operand ‘Yet’<br />
Try 'readlink --help' for more information.<br />
OR<br />
This script must be run as a user with write priviledges to game directory<br />
To fix this, use:<br />
{{hc|~/.steam/root/SteamApps/common/And Yet It Moves/AndYetItMovesSteam.sh|<nowiki><br />
#ayim_dir="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"<br />
ayim_dir="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"<br />
</nowiki>}}<br />
<br />
==Anodyne==<br />
===Dependencies===<br />
* {{AUR|adobe-air-sdk}}<br />
* {{pkg|xterm}} (probably not actually required)<br />
<br />
===Compatibility===<br />
Follow the same steps as [[#Troubleshooting_3|Defender's Quest]]<br />
<br />
==Aquaria==<br />
===Troubleshooting===<br />
====Mouse pointer gets stuck in one direction====<br />
If the mouse pointer gets stuck in any one direction, the game becomes unplayable. You may try:<br />
{{hc|~/.local/share/Steam/SteamApps/common/Aquaria/usersettings.xml|<nowiki><br />
#<JoystickEnabled on=”1″ /><br />
<JoystickEnabled on=”0″ /></nowiki>}}<br />
<br />
If that does not fix the issue, unplug any joystick or joystick adapter devices you may have plugged in.<br />
<br />
==Cities in Motion 2==<br />
===Troubleshooting===<br />
====Dialog boxes fail to display properly ====<br />
You won't be able to read or see anything and you'll have this in your logs:<br />
Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 69: non-double matrix element<br />
Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 69: wrong number of matrix elements<br />
<br />
Workaround for the bug {{Bug|35039}} is available [here http://bpaste.net/show/167019/] (replace {{ic|/etc/fonts/conf.d/10-scale-bitmap-fonts.conf}}).<br />
<br />
==Civilization V==<br />
===Troubleshooting===<br />
====Stuttering sound with Pulse Audio====<br />
Uncomment and modify the default fragment size msec to this value:<br />
{{hc|/etc/pulse/daemon.conf|<nowiki><br />
default-fragment-size-msec = 5</nowiki>}}<br />
Restart Pulse Audio and the sound should now play properly.<br />
<br />
==Crusader Kings II==<br />
Game is installed into {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II}}.<br />
Game can be started directly, without need of running Steam on background, using command {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II/ck2}}.<br />
<br />
Saves are stored in {{ic|$HOME/Documents/Paradox Interactive/Crusader Kings II/save games/}}.<br />
In the newest version 2.03 savefiles seem to be stored to {{ic|$HOME/.paradoxinteractive/Crusader Kings II/}}, if your documents folder is empty, try looking there.<br />
<br />
===Mods===<br />
Linux version doesn't have a launcher in opposite of Windows one.<br />
<br />
For using mods, you need to put them into game settings directory ({{ic|~/Documents/Paradox Interactive/Crusader Kings II/mod/}}) and launch the game with special key {{ic|1=-mod=<mod_path>}}.<br />
For example: <br />
-mod=mod/CK2_rus_full_v1.092.mod -mod=mod/Extendedtitlesmod.mod<br />
If mods don't load for you, try creating a mod folder in {{ic|$HOME/.paradoxinteractive/Crusader Kings II/}} and put your mods there. <br />
<br />
===DLC===<br />
All DLC that you have bought on Steam is enabled by default. As with mods, due to lack of a launcher you need to use a launch option to disable one. The option is {{ic|-exclude-dlc}} with an argument of the corresponding {{ic|.dlc}} file in {{ic|~/.steam/steam/SteamApps/common/Crusader Kings II/dlc/}}. For example, to disable Sunset Invasion, use:<br />
-exclude-dlc=dlc/dlc018.dlc<br />
<br />
===Troubleshooting===<br />
====No audio====<br />
The default audio driver used by Crusader Kings 2 is for [[PulseAudio]], so an override is necessary:<br />
<br />
{{hc|~/.pam_environment|2=SDL_AUDIODRIVER=alsa}}<br />
<br />
==Defender's Quest: Valley of the Forgotten==<br />
===Dependencies===<br />
* {{AUR|adobe-air-sdk}}<br />
* {{pkg|xterm}}<br />
* {{pkg|lib32-libcanberra}}<br />
<br />
===Troubleshooting===<br />
====Game does not start====<br />
* Package {{AUR|adobe-air-sdk}} installs Adobe Air not in the place where the game expects it to be, fix this by creating a symlink (requires root permissions):<br />
{{bc|$ ln -s /opt/adobe-air-sdk/runtimes/air/linux/Adobe\ AIR /opt/Adobe\ AIR}}<br />
<br />
* Adobe AIR will want to check whether the EULA was accepeted and fail in doing so. To fix it, issue the following commands (from under your user, not under root):<br />
{{bc|$ mkdir -p ~/.appdata/Adobe/AIR<br />
$ echo 2 > ~/.appdata/Adobe/AIR/eulaAccepted}}<br />
{{Note|By issuing these commands you're accepting Adobe Air's EULA.}}<br />
<br />
==Don't Starve==<br />
===Dependencies (x86_64)===<br />
* {{pkg|lib32-flashplugin}}<br />
* {{pkg|lib32-alsa-plugins}} (Looks like it fixes sound in some cases. See [https://github.com/ValveSoftware/steam-for-linux/issues/2968 this github issue] for details)<br />
===Troubleshooting===<br />
====No sound====<br />
Right click on Don't Starve on your game list, click on Properties, click on SET LAUNCH OPTIONS, then add this: <br />
LD_LIBRARY_PATH="/usr/lib:$LD_LIBRARY_PATH" %command%<br />
<br />
On the game, go to the option and set all audio to the proper volume.<br />
<br />
==Dota 2==<br />
===Dependencies (x86_64)===<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|lib32-libpulse}} (if you use PulseAudio)<br />
<br />
===Troubleshooting===<br />
====In-game font is unreadable====<br />
Start Steam (or Dota 2) with the environment variable:<br />
MESA_GL_VERSION_OVERRIDE=2.1<br />
<br />
====Everything seems OK but the game doesn't start====<br />
If you run the game from the terminal and, although no error is shown, the '''disabling''': ''Steam > Settings > In-Game > Enable Steam Community In-Game''.<br />
Apparently the game [[#The Book of Unwritten Tales|The Book of Unwritten Tales]] has the same problem. It also describes a workaround that is untested in Dota 2.<br />
<br />
====Game runs on the wrong screen====<br />
:[https://github.com/ValveSoftware/Dota-2/issues/11 GitHub Dota 2 issue #11]<br />
<br />
==== Game does not start with libxcb-dri3 error message ====<br />
After a recent Mesa update, Dota 2 stopped working. The error message is:<br />
SDL_GL_LoadLibrary(NULL) failed: Failed loading libGL.so.1: /usr/lib32/libxcb-dri3.so.0: undefined symbol: xcb_send_fd<br />
Simply remove the bundled libxcb to force Steam to use the system-wide version. Restart Steam to apply.<br />
$ find ~/.local/share/Steam -name 'libxcb*' -type f | grep -v installed | xargs rm<br />
:[https://github.com/ValveSoftware/steam-for-linux/issues/3204 GitHub Steam issue #3204]<br />
<br />
==== Steam overlay ====<br />
Steam distributes a copy of libxcb which is incompatible with the latest xorg libxcb. If you're having issues with steam overlay and on recent xorg try removing the bundled lib.<br />
mv ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libxcb.so.1 /tmp/libxcb.so.1.bak<br />
See more information here:<br />
:[https://github.com/ValveSoftware/steam-for-linux/issues/3199]<br />
:[https://github.com/ValveSoftware/steam-for-linux/issues/3093]<br />
<br />
==Dwarfs F2P==<br />
===Dependencies===<br />
* {{AUR|lib32-libgdiplus}}<br />
<br />
===Troubleshooting===<br />
====Game does not start====<br />
There was a bug that stopped Steam from fetching all the needed files. It should be resolved, if you still bump into this problem, try verifying integrity of game cache from game properties, local files tab.<br />
<br />
If the game still crashes at startup, edit {{ic|~/.local/share/Steam/SteamApps/common/Dwarfs - F2P/Run.sh}} and change<br />
export LD_LIBRARY_PATH=.:${LD_LIBRARY_PATH}<br />
to<br />
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:.<br />
{{Note|This file may be overwritten by updates or by verifying integrity of game cache. You may need to modify it again.}}<br />
<br />
If these do not help, you may have outdated libraries in the game installation folder that are crashing the game on startup. Try moving/removing the following files out of {{ic|~/.local/share/Steam/SteamApps/common/Dwarfs - F2P/}} to fix it:<br />
<br />
libX11.so.6, libsteam.so libtier0_s.so, libvstdlib_s.so, steamclient.so<br />
<br />
====Game crashes====<br />
In some cases, the game crashes about 2 minutes before the end of every arcade. This bug has been reported, but there's no known solution to it.<br />
<br />
==Dynamite Jack==<br />
===Dependencies===<br />
* {{pkg|lib32-sdl}}<br />
<br />
===Troubleshooting===<br />
====Sound Issues====<br />
When running on 64-bit Arch Linux, there may be "pops and hisses" when running Dynamite Jack. This could be caused by not having {{ic|1=STEAM_RUNTIME=0}} set. (However, even with {{ic|1=STEAM_RUNTIME=0}} set, the game may still sometimes start with this issue. Exiting and restarting the game seems to make the problem go away.)<br />
<br />
====Game does not start====<br />
If running steam with the {{ic|1=STEAM_RUNTIME=0}}, Dynamite Jack may have a problem starting. Check the steam error messages for this message:<br />
/home/<USER>/.local/share/Steam/SteamApps/common/Dynamite Jack/bin/main: error while loading shared libraries: libSDL-1.2.so.0: cannot open shared object file: No such file or directory<br />
Install {{pkg|lib32-sdl}} from [[multilib]] and Dynamite Jack should start up.<br />
<br />
==Football Manager 2014==<br />
This game will not run when installed on an XFS or reiserfs filesystem. Workaround is to install on an ext4 filesystem.<br />
<br />
==FORCED==<br />
This game has 32-bit and 64-bit binaries. For unknown reason, steam will launch the 32-bit binary even on 64-bit Arch Linux.<br />
When manually launching the 64-bit binary, the game starts, but cannot connect to Steam account, so you cannot play.<br />
So install 32-bits dependencies, and launch the game from Steam.<br />
<br />
===Dependencies===<br />
* {{pkg|lib32-alsa-plugins}}<br />
* {{pkg|lib32-glu}}<br />
<br />
==FTL: Faster than Light==<br />
===Dependencies===<br />
Libraries are downloaded and and placed in the game's data directory for both architectures. As long as you run FTL by the launcher script (or via the shortcut in Steam) you should not need to download any further libraries.<br />
<br />
===Compatibility===<br />
After installation, FTL may fail to run due to a 'Text file busy' error (characterised in Steam by your portrait border going green then blue again). The easiest way to mend this is to just reboot your system. Upon logging back in FTL should run.<br />
<br />
The Steam overlay in FTL does not function as it is not a 3D accelerated game. Because of this the desktop notifications will be visible. If playing in fullscreen, therefore, these notifications in some systems may steal focus and revert you back to windowed mode with no way of going back to fullscreen without relaunching. The binaries for FTL on Steam have no DRM and it is possible to run the game ''without'' Steam running, so in some cases that may be optimum - just ensure that you launch FTL via the launcher script in {{ic|~/.steam/root/SteamApps/common/FTL Faster than Light/data/}} rather than the FTL binary in the $arch directory.<br />
<br />
===Problems with open-source video driver===<br />
FTL may fail to run if you are using an opensource driver for your video card. There are two solutions: install a proprietary video driver or delete (rename if you are unsure) the library "libstdc++.so.6" inside {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/amd64/lib}}. This is if you are using a 64bit system. In case you are using a 32bit system you have to remove (rename) the same library located into {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/x86/lib}}.<br />
<br />
==Game Dev Tycoon==<br />
===Troubleshooting===<br />
====Game does not start====<br />
Error about missing libudev.so.0 might appear, solution:<br />
# ln -s /lib/libudev.so /lib/libudev.so.0<br />
<br />
==Garry's Mod==<br />
===Troubleshooting===<br />
====Game does not start====<br />
Error about missing client.so might appear, solution:<br />
cd SteamLibrary/SteamApps/common/GarrysMod/bin/<br />
ln -s libawesomium-1-7.so.0 libawesomium-1-7.so.2<br />
ln -s ../garrysmod/bin/client.so ./<br />
<br />
==Half-Life 2 & episodes==<br />
===Cyrillic fonts problem===<br />
This problem can be solved by deleting "Helvetica" font.<br />
<br />
==Hammerwatch==<br />
===Troubleshooting===<br />
====The game not starting from Steam GUI====<br />
Right click on Hammerwatch on your game list, click on Properties, click on SET LAUNCH OPTIONS, then add this: <br />
LD_LIBRARY_PATH="/usr/lib:$LD_LIBRARY_PATH" %command%<br />
====No sound====<br />
Hammerwatch opens with a popup: "Sound Error" -- "Could not initialize OpenAL, no sounds will be played. Try updating your OpenAL drivers."<br />
<br />
OpenAL, which Hammerwatch uses, defaults to Pulseaudio. To change that, add the following line to ''/etc/openal/alsoft.conf'':<br />
<br />
drivers=alsa,pulse<br />
<br />
This way, Hammerwatch will use alsa. This solution was found [https://stackoverflow.com/questions/9547396/what-does-al-lib-pulseaudio-c612-context-did-not-connect-access-denied-me here].<br />
<br />
==Harvest: Massive Encounter==<br />
===Dependencies===<br />
* {{pkg|lib32-gtk2}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-openal}}<br />
* {{Pkg|lib32-nvidia-cg-toolkit}}<br />
* {{AUR|lib32-libjpeg6}}<br />
<br />
===Compatibility===<br />
Game refuses to launch and throws you to library installer loop. Just edit {{ic| ~/.steam/root/SteamApps/common/Harvest Massive Encounter/run_harvest}} and remove everything but<br />
#!/bin/bash<br />
exec ./Harvest<br />
<br />
==Joe Danger 2: The Movie==<br />
===Dependencies===<br />
* {{pkg|lib32-libpulse}}<br />
* {{pkg|lib32-alsa-plugins}}<br />
<br />
===Compatibility===<br />
Game only worked after obtaining from the [https://www.humblebundle.com/ Humble Bundle] directly and {{pkg|lib32-libpulse}} was installed.<br />
<br />
==[[Kerbal Space Program]]==<br />
===Troubleshooting===<br />
=== Game never progresses past initial loading ===<br />
To fix this, set:<br />
LC_ALL=C<br />
<br />
=== No text display ===<br />
The game requires Arial and Arial Black fonts, provided in the {{AUR|ttf-ms-fonts}} [[AUR]] package.<br />
<br />
=== Graphics flickering when using primusrun ===<br />
Run with PRIMUS_SYNC=2 (but you will get reduced frame rate this way)<br />
<br />
=== Game crashes when accessing settings or saves on 64 bit systems on Steam ===<br />
In the properties for Kerbal Space program, set a launch option of:<br />
LC_ALL=C %command%_64<br />
<br />
=== Locale settings ===<br />
See https://bugs.kerbalspaceprogram.com/issues/504 if you have troubles with building Ships.<br />
<br />
=== No audio on 64-bit systems ===<br />
<br />
Run the 64-bit executable.<br />
<br />
Steam launches the KSP.x86 executable vs. the KSP.x86_64 executable. <br />
Navigate to:<br />
/home/$USER/.local/share/Steam/SteamApps/common/Kerbal\ Space\ Program/ <br />
Launch with:<br />
./KSP.x86_64<br />
<br />
Or you can simply right click on "Kerbal Space Program" in your game list, click ''Properties'', click ''SET LAUNCH OPTIONS'', then add this: <br />
LD_LIBRARY_PATH="/usr/lib:$LD_LIBRARY_PATH" LC_ALL=C %command%_64<br />
<br />
==Killing Floor==<br />
===Troubleshooting===<br />
====Screen resolution====<br />
Killing Floor runs pretty much from scratch, although you might have to change in-game resolution screen as the default one is '''800x600''' and a '''4:3''' screen format.<br />
If you try to modify screen resolution in-game, it might crash your desktop enviroment.<br />
To fix this, please set the desired resolution screen size by modifing your {{ic|~/.killingfloor/System/KillingFloor.ini}} with your prefered editor.<br />
{{hc|~/.killingfloor/System/KillingFloor.ini|<nowiki><br />
...<br />
<br />
[WinDrv.WindowsClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=???<br />
MenuViewportY=???<br />
<br />
...<br />
<br />
[SDLDrv.SDLClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=????<br />
MenuViewportY=????<br />
<br />
...<br />
</nowiki>}}<br />
{{Note|Replace all the {{ic|????}} with the corresponding numbers according the desired resolution. If you have an 1366x768 screen and want to use it at it's fullest, change all the Viewport fields to something like {{ic|ViewportX&#61;1366}} and {{ic|ViewportY&#61;768}} in the corresponding areas.}}<br />
{{Note| The dots in the middle indicate that there are more fields in that .ini file. But for screen resolution troubleshooting, you do not need to modify anything else.}}<br />
<br />
Save the file and restart the game, it should work now.<br />
<br />
====Windowed mode====<br />
Uncheck fullscreen in the options menu, and use {{ic|Ctrl+g}} to stop mouse capturing (that was non-obvious to discover..). This way you can easily minimize it and do other other things..and let your WM handle things.<br />
<br />
==Metro: Last Light==<br />
This game is not allowing to change its resolution on a multimonitor setup on GNOME with Catalyst drivers. <br />
===Attempted fixes===<br />
Various changes to the games config file was tried without success.<br />
{{ic|wmctrl}} was not able to force the games resolution.<br />
<br />
===Hacky solution===<br />
Disabled the side monitors.<br />
<br />
===Possible solutions===<br />
Jason over at [http://unencumberedbyfacts.com/2013/11/20/multiple-monitor-gaming-on-linux/ unencumbered by fact] is using Nvidia drivers on his multimonitor setup. However he notes he is using a single display server setup. This is being explored.<br />
<br />
==Multiwinia==<br />
===Dependencies===<br />
* {{pkg|lib32-openal}}<br />
<br />
==Penumbra: Overture==<br />
===Dependencies===<br />
(Taken from {{AUR|penumbra-collection}} and {{AUR|penumbra-overture-ep1-demo}})<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxft}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
* {{pkg|lib32-sdl_image}}<br />
<br />
===Troubleshooting===<br />
====Windowed mode====<br />
There is no in-game option to change to the windowed mode, you will have to edit {{ic|~/.frictionalgames/Penumbra/Overture/settings.cfg}} to activate it.<br />
Find {{ic|FullScreen&#61;"true"}} and change it to {{ic|FullScreen&#61;"false"}}, after this the game should start in windowed mode.<br />
<br />
==Portal 2==<br />
===Troubleshooting===<br />
====Game does not start====<br />
If you get the error {{ic|PROBLEM: You appear to have OpenGL 1.4.0, but we need at least 2.0.0!}},<br />
<br />
Re/move {{ic|~/.local/share/Steam/SteamApps/common/Portal\ 2/bin/libstdc++.so.6}}.<br />
<br />
==Natural Selection 2==<br />
Game mostly works out of the box.<br />
===No Sound===<br />
If there is no sound in-game. Try installing {{pkg|lib32-sdl}}, {{pkg|lib32-sdl2}}, and {{pkg|lib32-alsa-plugins}}<br />
<br />
If this fails, try setting the game's launch options in Steam to:<br />
LD_LIBRARY_PATH="/usr/lib32:$LD_LIBRARY_PATH" %command%<br />
<br />
==Redshirt==<br />
===Dependencies (x86_64)===<br />
* {{pkg|lib32-libpulse}} (if you use PulseAudio)<br />
<br />
==Revenge of the Titans==<br />
===Dependencies===<br />
* {{pkg|libxtst}} and {{pkg|lib32-libxtst}}<br />
<br />
==Serious Sam 3: BFE==<br />
===Dependencies===<br />
* {{pkg|lib32-alsa-plugins}}<br />
<br />
===Troubleshooting===<br />
====No audio====<br />
Try running:<br />
# mkdir -p /usr/lib/i386-linux-gnu/alsa-lib/<br />
# ln -s /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so /usr/lib/i386-linux-gnu/alsa-lib/<br />
<br />
If that does not work, try tweaking {{ic|~/.alsoftrc}} as proposed by the [http://steamcommunity.com/app/221410/discussions/3/846940248238406974/ Steam community] (Serious Sam 3: BFE uses OpenAL to output sound). If you are not using Pulse Audio, you may want to write the following configuration:<br />
<br />
{{hc|~/.alsoftrc|<nowiki><br />
[general]<br />
drivers = alsa<br />
[alsa]<br />
device = default<br />
capture = default<br />
mmap = true<br />
</nowiki>}}<br />
<br />
==Sir, you are being hunted==<br />
===Dependencies===<br />
* {{pkg|lib32-alsa-plugins}}<br />
<br />
==Spacechem==<br />
===Dependencies===<br />
* {{pkg|lib32-sqlite}}<br />
* {{pkg|lib32-sdl_image}}<br />
* {{AUR|lib32-sdl_mixer}}<br />
<br />
===Troubleshooting===<br />
====Game crash====<br />
The shipped x86 version of Spacechem does not work on x64 with the game's own libSDL* files, and crashes with some strange output.<br />
<br />
To solve this just remove or move the three files {{ic|libSDL-1.2.so.0}}, {{ic|libSDL_image-1.2.so.0}}, {{ic|libSDL_mixer-1.2.so.0}} from {{ic|~/.steam/root/SteamApps/common/SpaceChem}}<br />
<br />
==Space Pirates and Zombies==<br />
===Dependencies===<br />
* {{pkg|lib32-alsa-plugins}}<br />
* {{pkg|lib32-openal}}<br />
<br />
===Troubleshooting===<br />
====No audio====<br />
Try running:<br />
# mkdir -p /usr/lib/i386-linux-gnu/alsa-lib/<br />
# ln -s /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so /usr/lib/i386-linux-gnu/alsa-lib/<br />
<br />
If that does not work, try tweaking {{ic|~/.alsoftrc}} as proposed by the Steam community (Serious Sam 3: BFE uses OpenAL to output sound). If you are not using Pulse Audio, you may want to write the following configuration:<br />
{{hc|~/.alsoftrc|<nowiki><br />
[general]<br />
drivers = alsa<br />
[alsa]<br />
device = default<br />
capture = default<br />
mmap = true<br />
</nowiki>}}<br />
<br />
==Splice==<br />
Splice comes with both x86 and x64 binaries. Steam does not have to be running to launch this game.<br />
===Dependencies===<br />
* {{pkg|glu}}<br />
<br />
==Steel Storm: Burning Retribution==<br />
===Troubleshooting===<br />
====Start with black screen====<br />
The game tries to launch in 1024x768 resolution with fullscreen mode by default. It is impossible on some devices.<br />
(for example laptop Samsung Series9 with intel hd4000 video).<br />
<br />
You can launch the game in windowed mode. To do this open game Properties in Steam, in General tab select "Set launch options..." and type "-window".<br />
<br />
Now you can change the resolution in game.<br />
<br />
====No English fonts====<br />
If you use Intel video card, just disable S3TC in DriConf.<br />
<br />
==Strike Suite Zero==<br />
===Dependencies===<br />
* {{pkg|lib32-alsa-plugins}}<br />
<br />
==Superbrothers: Sword & Sworcery EP==<br />
===Dependencies===<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-alsa-plugins}}<br />
* {{pkg|lib32-libpulse}} (if you use PulseAudio)<br />
<br />
==Team Fortress 2 ==<br />
===Dependencies===<br />
* {{pkg|lib32-libpng12}}<br />
<br />
===Making HRTF work===<br />
Assuming HRTF has been set up properly in the operating system, hrtf won't be enabled unless you disable the original processing. To do so, use<br />
dsp_slow_cpu 1<br />
For best results, also change the following:<br />
snd_spatialize_roundrobin 1<br />
dsp_enhance_stereo 0<br />
snd_pitchquality 1<br />
<br />
===Troubleshooting===<br />
====Loading screen freeze====<br />
If you are a non-english (speaking) user, you have to enable "en_US.UTF-8" in the locale.gen! Generate a new locale after that.<br />
<br />
====No audio====<br />
It happens if there is no PulseAudio in your system.<br />
If you want to use [[ALSA]], you need to launch Steam or the game directly with {{ic|1=SDL_AUDIODRIVER=alsa}} <br />
(From [http://steamcommunity.com/app/221410/discussions/0/882966056462819091/#c882966056470753683 SteamCommunity]).<br />
<br />
If it still does not work, you may also need to set the environment variable AUDIODEV. For instance {{ic|1=AUDIODEV=Live}}. Use {{ic|aplay -l}} to list the available sound cards.<br />
<br />
====Slow loading textures====<br />
If you are using Chris' FPS Configs or any other FPS config, you may have set {{ic|mat_picmip}} to {{ic|2}}. This spawns multiple threads for texture loading, which may cause more jittering and lag on Linux, especially on alternative kernels. Try setting it to {{ic|-1}}, the default.<br />
<br />
==The Book of Unwritten Tales==<br />
If the game does not start, uncheck: ''Properties > Enable Steam Community In-Game''.<br />
<br />
The game may segfault upon clicking the Setting menu and possibly during or before gameplay. This is a known problem and you will unfortunately have to wait for a fix from the developer. A workaround (taken from the [http://steamcommunity.com/app/221410/discussions/3/846939071081758230/#p2 Steam forums]) is to replace the game's RenderSystem_GL.so with one from Debian's repositories. To do that download this [https://launchpad.net/ubuntu/+archive/primary/+files/libogre-1.7.4_1.7.4-3_i386.deb deb file], extract it (with {{ic|{{AUR|dpkg}} -x libogre-*.deb outdir}}) and replace {{ic|~/.local/share/Steam/SteamApps/common/The Book of Unwritten Tales/lib/32/RenderSystem_GL.so}} with the one that comes with the {{ic|.deb}} package.<br />
<br />
===Dependencies===<br />
* {{AUR|lib32-libxaw}}<br />
* {{AUR|lib32-jasper}}<br />
<br />
==The Book of Unwritten Tales: The Critter Chronicles==<br />
Because it's based on the same engine, the things that apply to ''The Book of Unwritten Tales'' also apply for this game.<br />
<br />
==The Clockwork Man==<br />
===Dependencies===<br />
* {{pkg|lib32-libidn}}<br />
<br />
==The Polynomial==<br />
===Dependencies===<br />
* {{AUR|ilmbase102-libs}}<br />
* {{AUR|openexr170-libs}}<br />
[https://github.com/ValveSoftware/steam-for-linux/issues/2721 Steam for Linux issue #2721]<br />
<br />
===Troubleshooting===<br />
====Segfaults during program start on 64-bit systems====<br />
The game segfaults during program start because of the {{ic|LD_LIBRARY_PATH}} setting in the launcher script. Edit {{ic|~/.local/share/Steam/SteamApps/common/ThePolynomial/Polynomial64}}, and comment out the {{ic|LD_LIBRARY_PATH}} variable. Make sure to put the {{ic|./bin/Polynomial64 "$@"}} command on a new line.<br />
<br />
==Towns / Towns Demo==<br />
===Crash on launch===<br />
Ensure you have [[Java]] installed.<br />
<br />
==Trine 2==<br />
===Dependencies===<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxxf86vm}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|xorg-xwininfo}}<br />
<br />
===Troubleshooting===<br />
* If colors are wrong with FOSS drivers (r600g at least), try to run the game in windowed mode, rendering will be corrected. ([https://bugs.freedesktop.org/show_bug.cgi?id=60553 bugreport])<br />
* If sound plays choppy, try:<br />
{{hc|/etc/openal/alsoft.conf|<nowiki><br />
drivers=pulse,alsa<br />
frequency=48000<br />
</nowiki>}}<br />
<br />
* If the game resolution is wrong when using a dual monitor setup and you can't see the whole window edit {{ic|~/.frozenbyte/Trine2/options.txt}} and change the options {{ic|ForceFullscreenWidth}} and {{ic|ForceFullscreenHeight}} to the resolution of your monitor on which you want to play the game.<br />
<br />
==Unity of Command==<br />
===Dependencies===<br />
* {{pkg|lib32-pango}}<br />
* {{pkg|lib32-alsa-plugins}}<br />
<br />
===Troubleshooting===<br />
* If squares are shown instead of text, try removing {{ic|$HOME/Steam/SteamApps/common/Unity of Command/bin/libpangoft2-1.0.so.0}}.<br />
<br />
====No audio====<br />
If you get this error:<br />
ALSA lib dlmisc.c:254:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/i386-linux-gnu/alsa-lib/libasound_module_pcm_pulse.so<br />
<br />
Try running:<br />
# mkdir -p /usr/lib/i386-linux-gnu/alsa-lib/<br />
# ln -s /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so /usr/lib/i386-linux-gnu/alsa-lib/<br />
<br />
== Witcher 2: Assassin of Kings ==<br />
<br />
=== Dependencies ===<br />
<br />
* {{Pkg|lib32-sdl2}}<br />
* {{Pkg|lib32-freetype2}}<br />
* {{Pkg|lib32-curl}}<br />
<br />
[[AUR]]:<br />
<br />
* {{AUR|lib32-sdl2_image}}<br />
* {{AUR|lib32-gnutls}}<br />
* {{AUR|lib32-libcurl-gnutls}}<br />
<br />
=== Troubleshooting ===<br />
<br />
If the game does not run, enable error messages:<br />
<br />
cd "${HOME}/.local/share/Steam/SteamApps/common/the witcher 2"<br />
LIBGL_DEBUG=verbose ./witcher2<br />
<br />
If {{ic|libGL}} fails to load because {{ic|swrast_dri.so}} has problems, go back and double check if multilib is enabled and the 32-bit opengl libraries are installed.<br />
<br />
==Wizardry 6: Bane of the Cosmic Forge==<br />
===Dependencies===<br />
* {{pkg|dosbox}}<br />
<br />
To fix the crash at start, edit {{ic|~/.local/share/Steam/SteamApps/common/Wizardry6/dosbox_linux/launch_wizardry6.sh}} and change<br />
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./libs<br />
exec ./dosbox -conf dosbox_wiz6.conf -conf dosbox_wiz6_launch_linux.conf -noconsole "$@"<br />
to<br />
#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./libs<br />
exec dosbox -conf dosbox_wiz6.conf -conf dosbox_wiz6_launch_linux.conf -noconsole "$@"<br />
<br />
==World of Goo==<br />
===Changing resolution===<br />
* To change the game resolution edit the section "Graphics display" in the configuration file {{ic|$HOME/Steam/SteamApps/common/World of Goo/properties/config.txt}}. For example, see below:<br />
<!-- Graphics display --><br />
<param name="screen_width" value="1680" /><br />
<param name="screen_height" value="1050" /><br />
<param name="color_depth" value="0" /><br />
<param name="fullscreen" value="true" /><br />
<param name="ui_inset" value="10" /><br />
<br />
==Worms Reloaded==<br />
===Dependencies===<br />
* {{pkg|lib32-alsa-plugins}}<br />
<br />
==XCOM==<br />
===Hangs on startup===<br />
Steam ships its own versions of some libraries, and they sometimes are too old to work with archlinux system libraries.<br />
Removing the library supplied by Steam means Steam has to use the newer arch-specific version. [https://bbs.archlinux.org/viewtopic.php?pid=1428375#p1428375].<br />
<br />
{{bc|rm ~.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libgcc_s.so.1<br />
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6}}</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=Touchpad_Synaptics&diff=331787Touchpad Synaptics2014-08-21T22:00:06Z<p>Lordheavy: /* Frequently used options */</p>
<hr />
<div>[[de:Synaptics Touchpad Treiber]]<br />
[[es:Touchpad Synaptics]]<br />
[[fr:Touchpad Synaptics]]<br />
[[it:Touchpad Synaptics]]<br />
[[ja:Touchpad Synaptics]]<br />
[[ru:Touchpad Synaptics]]<br />
[[zh-CN:Touchpad Synaptics]]<br />
[[Category:Input devices]]<br />
{{Related articles start}}<br />
{{Related|Xorg}}<br />
{{Related|Touchpad Synaptics/10-synaptics.conf example}}<br />
{{Related articles end}}<br />
This article details the installation and configuration process of the '''''Synaptics input driver''''' for Synaptics (and ALPS) touchpads found on most notebooks.<br />
<br />
== Installation ==<br />
<br />
The Synaptics driver can be [[pacman|installed]] with the package {{Pkg|xf86-input-synaptics}}, available in the [[official repositories]].<br />
<br />
== Configuration ==<br />
<br />
The primary method of configuration for the touchpad is through an [[Xorg]] server configuration file. After installation of {{ic|xf86-input-synaptics}}, a default configuration file is located at {{ic|/etc/X11/xorg.conf.d/50-synaptics.conf}}.<br />
<br />
Users can edit this file to configure the various driver options available, for a complete list of all available options users should refer to the synaptics manual page:<br />
<br />
$ man synaptics<br />
<br />
=== Frequently used options ===<br />
<br />
The following lists options that many users may wish to configure. Note that all these options can simply be added to the main configuration file in {{ic|/etc/X11/xorg.conf.d/50-synaptics.conf}} (copied from {{ic|/usr/share/X11/xorg.conf.d/}}), as shown in this example configuration file where we have enabled vertical, horizontal and circular scrolling:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/50-synaptics.conf|<nowiki><br />
Section "InputClass"<br />
Identifier "touchpad"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
Option "TapButton1" "1"<br />
Option "TapButton2" "2"<br />
Option "TapButton3" "3"<br />
Option "VertEdgeScroll" "on"<br />
Option "VertTwoFingerScroll" "on"<br />
Option "HorizEdgeScroll" "on"<br />
Option "HorizTwoFingerScroll" "on"<br />
Option "CircularScrolling" "on"<br />
Option "CircScrollTrigger" "2"<br />
Option "EmulateTwoFingerMinZ" "40"<br />
Option "EmulateTwoFingerMinW" "8"<br />
Option "CoastingSpeed" "0"<br />
Option "FingerLow" "35"<br />
Option "FingerHigh" "40"<br />
...<br />
EndSection<br />
</nowiki>}}<br />
<br />
; '''TapButton1''': (integer) configures which mouse-button is reported on a non-corner, one finger tap.<br />
; '''TapButton2''': (integer) configures which mouse-button is reported on a non-corner, two finger tap<br />
; '''TapButton3''': (integer) configures which mouse-button is reported on a non-corner, three finger tap<br />
; '''RBCornerButton''': (integer) configures which mouse-button is reported on a right bottom corner, one finger tap (use {{ic|Option "RBCornerButton" "3"}} to achieve Ubuntu style tap behaviour for right mouse button in lower right corner)<br />
; '''RTCornerButton''': (integer) as above, but for top right corner, one finger tap.<br />
; '''VertEdgeScroll''': (boolean) enables vertical scrolling while dragging across the right edge of the touch pad.<br />
; '''HorizEdgeScroll''': (boolean) enables horizontal scrolling while dragging across the bottom edge of the touch pad.<br />
; '''VertTwoFingerScroll''': (boolean) enables vertical scrolling using two fingers.<br />
; '''HorizTwoFingerScroll''': (boolean) enables horizontal scrolling using two fingers.<br />
; '''EmulateTwoFingerMinZ/W''': (integer) play with this value to set the precision of two finger scroll.<br />
; '''FingerLow''': (integer) when finger pressure drops below this value, the driver counts it as a release.<br />
; '''FingerHigh''': (integer) when finger pressure goes above this value, the driver counts it as a touch.<br />
<br />
[[Touchpad Synaptics/10-synaptics.conf example|An example]] with a brief description of all options. As usual settings will vary between machines. It is recommended that you discover your own options using [[Touchpad_Synaptics#Synclient|synclient]].<br />
<br />
{{Note|<br />
* If you find that your hand frequently brushes your touchpad, causing the TapButton2 option to be triggered (which will more than likely paste from your clipboard), and you do not mind losing two-finger-tap functionality, set {{ic|TapButton2}} to -1.<br />
* Recent versions include a "Coasting" feature, enabled by default, which may have the undesired effect of continuing almost any scrolling until the next tap or click, even if you are no longer touching the touchpad. This means that to scroll just a bit, you need to scroll (by using the edge, or a multitouch option) and then almost immediately tap the touchpad, otherwise scrolling will continue forever. If wish to avoid this, set {{ic|CoastingSpeed}} to 0.<br />
* If your touchpad is too sensitive, use higher values for {{ic|FingerLow}} and {{ic|FingerHigh}} and vice versa. Remember that {{ic|FingerLow}} should be smaller than {{ic|FingerHigh}}<br />
}}<br />
<br />
=== Other options ===<br />
<br />
; '''VertScrollDelta''' and '''HorizScrollDelta''': (integer) configures the speed of scrolling, it's a bit counter-intuitive because higher values produce greater precision and thus slower scrolling. Negative values cause natural scrolling like in OS X.<br />
<br />
=== GNOME/Cinnamon ===<br />
<br />
Users of [[GNOME]] may have to edit its configuration as well, because in default it is set to disable tapping to click, horizontal scrolling and not to allow touchpad disabling while typing.<br />
<br />
To change these settings in '''Gnome 2''':<br />
# Run {{ic|gconf-editor}}<br />
# Edit the keys in the {{ic|/desktop/gnome/peripherals/touchpad/}} folder.<br />
<br />
To change these settings in '''Gnome 3''':<br />
# Open ''System Settings''.<br />
# Click ''Mouse and Touchpad''.<br />
# Change the settings on the ''Touchpad'' tab.<br />
<br />
To change these settings in '''Cinnamon''':<br />
# Open ''Cinnamon System Settings''.<br />
# Click ''Mouse and Touchpad''.<br />
# Change the settings on the ''Touchpad'' tab.<br />
<br />
Gnome settings daemon may override existing settings (for example ones set in {{ic|xorg.conf.d}}) for which there is no equivalent in any of the graphical configuration utilities. It is possible to stop gnome from touching mouse settings at all:<br />
# Run {{ic|dconf-editor}}<br />
# Edit {{ic|/org/gnome/settings-daemon/plugins/mouse/}} (or {{ic|/org/cinnamon/settings-daemon/plugins/mouse/}} for cinnamon)<br />
# Uncheck the '''active''' setting<br />
It will now respect your system's existing synaptics configuration.<br />
<br />
'''Remember''': Since Gnome works on a user by user basis, when you run dconf-editor or gconf-editor, this should be done in your current user session. Repeat this procedure for each and every user you have for this computer.<br />
<br />
=== MATE ===<br />
<br />
As with [[GNOME]], it is possible configure the way MATE handles the touchpad:<br />
<br />
# Run {{ic|dconf-editor}}<br />
# Edit the keys in the {{ic|org.mate.peripherals-touchpad}} folder.<br />
<br />
To prevent Mate settings daemon from overriding existing settings, do as follows:<br />
# Run {{ic|dconf-editor}}<br />
# Edit {{ic|org.mate.SettingsDaemon.plugins.mouse}}<br />
# Uncheck the '''active''' setting.<br />
<br />
=== Configuration on the fly ===<br />
<br />
Next to the traditional method of configuration, the Synaptics driver also supports on the fly configuration. This means that users can set certain options through a software application, these options are applied immediately without needing a restart of Xorg. This is useful to test configuration options before you include them in the configuration file.<br />
<br />
{{Warning|On-the-fly configuration is non-permanent and will not remain active through a reboot, suspend/resume, or restart of Xorg. This should only be used to test, fine-tune or script configuration features.}}<br />
<br />
==== Console tools ====<br />
<br />
* {{App|[[Touchpad_Synaptics#Synclient|Synclient]] (Recommended)|command line utility to configure and query Synaptics driver settings on a live system, the tool is developed by the synaptics driver maintainers and is provided with the synaptics driver|http://xorg.freedesktop.org/|{{Pkg|xf86-input-synaptics}}}}<br />
* {{App|[[Touchpad_Synaptics#xinput|xinput]]|small general-purpose CLI tool to configure devices|http://xorg.freedesktop.org/|{{Pkg|xorg-xinput}}}}<br />
<br />
==== Graphical tools ====<br />
<br />
{{Warning|Some of the tools below still require the obsolete {{ic|SHMConfig}} mode, and will not work with current {{Pkg|xf86-input-synaptics}} driver. Please remove outdated tools from the list.}}<br />
<br />
* {{App|GPointing Device Settings|provides graphical on the fly configuration for several pointing devices connected to the system, including your synaptics touch pad. This application replaces GSynaptics as the preferred tool for graphical touchpad configuration through the synaptics driver|http://live.gnome.org/GPointingDeviceSettings|{{Pkg|gpointing-device-settings}}}}<br />
:{{Note|For GPointingDeviceSettings to work with Synaptics touchpads both {{Pkg|xf86-input-synaptics}} and {{Pkg|libsynaptics}} have to be installed.}}<br />
<br />
* {{App|Synaptiks (unmaintained)|touchpad configuration and management tool for [[KDE]]. It provides a System Settings module to configure basic and advanced features of the touchpad. Additionally it comes with a little system tray application, which can switch the touchpad automatically off, while an external mouse is plugged or while you are typing. This utility is currently unmaintained; moreover it seems to crash under KDE 4.11.|https://github.com/synaptiks/synaptiks|{{AUR|synaptiks}}}}<br />
<br />
* {{App|kcm_touchpad|touchpad configuration tool for [[KDE]]. It provides a System Settings module to configure basic and advanced features of the touchpad. Additionally it comes with a little system tray application (plasmoid), which can switch the touchpad manual or automatically off, while an external mouse is plugged or while you are typing.|https://github.com/mishaaq/kcm_touchpad|{{AUR|kcm_touchpad}}}}<br />
<br />
* {{App|kcm-touchpad|A new touchpad configuration tool for [[KDE]]. Released in February 2014, works under KDE SC 4.12+|https://projects.kde.org/projects/playground/utils/kcm-touchpad/repository|{{Pkg|kcm-touchpad}}}}<br />
<br />
== Advanced configuration ==<br />
<br />
=== Using xinput to determine touchpad capabilities ===<br />
<br />
Depending on your model, synaptic touchpads may have or lack capabilities. We can determine which capabilities your hardware supports by using {{ic|xinput}}.<br />
* left, middle and right hardware buttons<br />
* two finger detection<br />
* three finger detection<br />
* configurable resolution<br />
<br />
First, find the name of your touchpad:<br />
<br />
$ xinput -list<br />
<br />
You can now use {{ic|xinput}} to find your touchpad's capabilities:<br />
<br />
$ xinput list-props "SynPS/2 Synaptics TouchPad" | grep Capabilities<br />
<br />
Synaptics Capabilities (309): 1, 0, 1, 0, 0, 1, 1<br />
<br />
From left to right, this shows:<br />
* (1) device has a physical left button<br />
* (0) device does not have a physical middle button<br />
* (1) device has a physical right button<br />
* (0) device does not support two-finger detection<br />
* (0) device does not support three-finger detection<br />
* (1) device can configure vertical resolution<br />
* (1) device can configure horizontal resolution<br />
<br />
Use {{ic|xinput list-props "SynPS/2 Synaptics TouchPad"}} to list all device properties.<br />
<br />
=== Synclient ===<br />
<br />
Synclient can configure every option available to the user as documented in {{ic|$ man synaptics}}. A full list of the current user settings can be brought up:<br />
<br />
$ synclient -l<br />
<br />
Every listed configuration option can be controlled through synclient, for example:<br />
<br />
* Enable palm detection: {{ic|1=$ synclient PalmDetect=1}} <br />
* Configure button events (right button event for two finger tap here): {{ic|1=$ synclient TapButton2=3}} <br />
* Disable the touchpad: {{ic|1=$ synclient TouchpadOff=1}} <br />
<br />
After you have successfully tried and tested your options through synclient, you can make these changes permanent by adding them to {{ic|/etc/X11/xorg.conf.d/50-synaptics.conf}}.<br />
<br />
=== evtest ===<br />
<br />
The tool {{AUR|evtest}} can display pressure and placement on the touchpad in real-time, allowing further refinement of the default Synaptics settings. The evtest monitoring can be started with:<br />
<br />
$ evtest /dev/input/event''X''<br />
<br />
''X'' denotes the touchpad's ID. It can be found by looking at the output of {{ic|cat /proc/bus/input/devices}}.<br />
<br />
evtest needs exclusive access to the device which means it cannot be run together with an X server instance. You can either kill the X server or run evtest from a different virtual terminal (e.g., by pressing {{ic|Ctrl+Alt+2}}).<br />
<br />
=== Circular Scrolling ===<br />
<br />
Circular scrolling is a feature that Synaptics offers which closely resembles the behaviour of iPods. Instead of (or additional to) scrolling horizontally or vertically, you can scroll circularly. Some users find this faster and more precise.<br />
To enable circular scrolling, add the following options to the touchpad device section of {{ic|/etc/X11/xorg.conf.d/50-synaptics.conf}}:<br />
{{hc|/etc/X11/xorg.conf.d/50-synaptics.conf|<nowiki><br />
Section "InputClass"<br />
...<br />
Option "CircularScrolling" "on"<br />
Option "CircScrollTrigger" "0"<br />
...<br />
EndSection<br />
</nowiki>}}<br />
<br />
The option '''CircScrollTrigger''' may be one of the following values, determining which edge circular scrolling should start:<br />
<br />
0 All Edges<br />
1 Top Edge<br />
2 Top Right Corner<br />
3 Right Edge<br />
4 Bottom Right Corner<br />
5 Bottom Edge<br />
6 Bottom Left Corner<br />
7 Left Edge<br />
8 Top Left Corner<br />
<br />
Specifying something different from zero may be useful if you want to use circular scrolling in conjunction with horizontal and/or vertical scrolling. If you do so, the type of scrolling is determined by the edge you start from.<br />
<br />
To scroll fast, draw small circles in the center of your touchpad. To scroll slowly and more precise, draw large circles.<br />
<br />
=== Natural scrolling ===<br />
<br />
It is possible to enable natural scrolling through synaptics. Simply use negative values for {{ic|VertScrollDelta}} and {{ic|HorizScrollDelta}} like so:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/50-synaptics.conf|<nowiki><br />
Section "InputClass"<br />
...<br />
Option "VertScrollDelta" "-111"<br />
Option "HorizScrollDelta" "-111"<br />
...<br />
EndSection<br />
</nowiki>}}<br />
<br />
=== Software toggle ===<br />
<br />
You may find it useful to have a software toggle that will turn on or off your touchpad, especially if it is extremely sensitive and you are doing a lot of typing. Please also see [[#Disable touchpad upon external mouse detection]] as that may be better solution, a matter of choice. The advantage here is you have the control, while the other solution has a daemon determine when to turn off the trackpad.<br />
<br />
You will want to grab [[xbindkeys]] if you do not already have key binding software.<br />
<br />
Then save this script to something such as {{ic|/usr/bin/trackpad-toggle.sh}}:<br />
<br />
{{hc|/usr/bin/trackpad-toggle.sh|<nowiki><br />
#!/bin/bash<br />
<br />
synclient TouchpadOff=$(synclient -l | grep -c 'TouchpadOff.*=.*0')<br />
</nowiki>}}<br />
<br />
Then finally add a key binding to use the script. It is best to call with xbindkeys like so (file {{ic|~/.xbindkeysrc}}):<br />
<br />
{{hc|~/.xbindkeysrc|<nowiki><br />
"/usr/bin/trackpad-toggle.sh"<br />
m:0x5 + c:65<br />
Control+Shift + space<br />
</nowiki>}}<br />
<br />
Copy ''either one of the last two lines'', do not copy both. Now just (re)start {{ic|xbindkeys}} and {{ic|Ctrl+Shift+Space}} will now toggle your trackpad.<br />
<br />
Of course you could easily use any other keybinding software, such as the ones provided by Xfce4 and GNOME.<br />
<br />
=== Disable trackpad while typing ===<br />
<br />
==== Using automatic palm detection ====<br />
<br />
First of all you should test if it works properly for your trackpad and if the settings are accurate:<br />
<br />
$ synclient PalmDetect=1<br />
<br />
Then test the typing. You can tweak the detection with:<br />
<br />
$ synclient PalmMinWidth=<br />
<br />
which is the width of the area your hand touches, and<br />
<br />
$ synclient PalmMinZ=<br />
<br />
which is the minimum Z distance at which the detection is performed.<br />
<br />
Once you have found the correct settings, save them into {{ic|/etc/X11/xorg.conf.d/50-synaptics.conf}} like this:<br />
<br />
{{bc|<nowiki><br />
#synclient PalmDetect=1<br />
Option "PalmDetect" "1"<br />
#synclient PalmMinWidth=10<br />
Option "PalmMinWidth" "10"<br />
#synclient PalmMinZ=200<br />
Option "PalmMinZ" "200"<br />
</nowiki>}}<br />
<br />
{{Warning|1=For some touchpads, an [https://bugzilla.kernel.org/show_bug.cgi?id=77161 issue] with the kernel can cause the palm width to always be reported as 0. This breaks palm detection in a majority of cases. Pending an actual fix, you can [https://gist.github.com/silverhammermba/a231c8156ecaa63c86f1 patch] the synaptics package to use only Z for palm detection.}}<br />
<br />
==== Using .xinitrc ====<br />
<br />
To have the touchpad disabled automatically when you begin typing, add the following line to your {{ic|~/.xinitrc}} (before any line starting with {{ic|exec}}, otherwise the command will not be executed):<br />
<br />
$ syndaemon -t -k -i 2 &<br />
<br />
; '''-i 2''': sets the idle time to 2 seconds. The idle time specifies how many seconds to wait after the last key-press before enabling the touchpad again.<br />
; '''-t''': tells the daemon not to disable mouse movement when typing and only disable tapping and scrolling.<br />
; '''-k''': tells the daemon to ignore modifier keys when monitoring keyboard activity (e.g.: allows Ctrl+Left Click).<br />
<br />
More details are available in the man page:<br />
<br />
$ man syndaemon<br />
<br />
If you are using a login manager, you will need to specify the command where your DE allows you to do so.<br />
<br />
==== Using a login manager ====<br />
<br />
The {{ic|-d}} option is necessary to start syndaemon as a background process for post login instructions.<br />
<br />
'''For GNOME: (GDM)'''<br />
<br />
To start syndaemon you need to use Gnome's Startup Applications Preferences program. Login to Gnome and go to '''System > Preferences > Startup Applications''', or from terminal (Gnome 3): {{ic|§ gnome-session-properties}}<br />
Next '''Add''' an entry, with the following in the command field: <br />
<br />
syndaemon -t -k -i 2 -d &<br />
<br />
close the dialogue and re-login to check. <br />
<br />
'''For KDE: (KDM)'''<br />
<br />
Goto '''System Settings > Startup and Shutdown > Autostart''', then click '''Add Program''', enter:<br />
<br />
$ syndaemon -t -k -i 2 -d &<br />
<br />
Then check '''Run in terminal'''.<br />
<br />
=== Disable touchpad upon external mouse detection ===<br />
<br />
With the assistance of [[udev]], it is possible to automatically disable the touchpad if an external mouse has been plugged in. To achieve this, add the following udev rules:<br />
<br />
{{hc|/etc/udev/rules.d/01-touchpad.rules|2=<br />
SUBSYSTEM=="input", KERNEL=="mouse[0-9]*", ACTION=="add", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/''username''/.Xauthority", RUN+="/usr/bin/synclient TouchpadOff=1"<br />
SUBSYSTEM=="input", KERNEL=="mouse[0-9]*", ACTION=="remove", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/''username''/.Xauthority", RUN+="/usr/bin/synclient TouchpadOff=0"<br />
}}<br />
<br />
GDM stores Xauthority files in {{ic|/var/run/gdm}} in a randomly-named directory. For some reason also multiple authority files may appear for a user. So you need udev rules like these:<br />
<br />
{{hc|/etc/udev/rules.d/01-touchpad.rules|2=<br />
SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ACTION=="add", PROGRAM="/usr/bin/find /var/run/gdm -name ''username'' -print -quit", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="$result/database", RUN+="/usr/bin/synclient TouchpadOff=1"<br />
SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ACTION=="remove", PROGRAM="/usr/bin/find /var/run/gdm -name ''username'' -print -quit", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="$result/database", RUN+="/usr/bin/synclient TouchpadOff=0"<br />
}}<br />
<br />
However, these udev rules conflict with [[#Using .xinitrc|syndaemon]]. To disable touchpad and simultaneously kill ''syndaemon'', you can use a rule like this:<br />
<br />
{{hc|/etc/udev/rules.d/01-touchpad.rules|2=<br />
SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ACTION=="add", PROGRAM="/usr/bin/find /var/run/gdm -name ''username'' -print -quit", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="$result/database", RUN+="/bin/sh -c '/usr/bin/synclient TouchpadOff=1 ; sleep 1; /bin/killall syndaemon; '"<br />
}}<br />
<br />
If ''syndaemon'' starts automatically with mouse removal, then you can combine this with the remove rule above. If you need to start ''syndaemon'' yourself, then alter the command accordingly with your favourite ''syndaemon'' options.<br />
<br />
==== System with multiple X sessions ====<br />
<br />
For an environment where multiple users are present, a slightly different approach is needed to detect the current users X environment. This script will help achieving this:<br />
<br />
{{hc|/usr/bin/mouse-pnp-event-handler.sh|<nowiki><br />
#!/bin/sh<br />
## $1 = "add" / "remove"<br />
## $2 = %k from udev <br />
<br />
## Set TRACKPAD_NAME according to your configuration. <br />
## Check your trackpad name with: <br />
## find /sys/class/input/ -name mouse* -exec udevadm info -a {} \; | grep 'ATTRS{name}'<br />
TRACKPAD_NAME="SynPS/2 Synaptics TouchPad"<br />
<br />
<br />
USERLIST=$(w -h | cut -d' ' -f1 | sort | uniq)<br />
MOUSELIST=$(find /sys/class/input/ -name mouse*)<br />
<br />
for CUR_USER in ${USERLIST}; do<br />
CUR_USER_XAUTH="$(sudo -Hiu ${CUR_USER} env | grep -e "^HOME=" | cut -d'=' -f2)/.Xauthority"<br />
<br />
<br />
## Can't find a way to get another users DISPLAY variable from an isolated root environment. Have to set it manually.<br />
#CUR_USER_DISPL="$(sudo -Hiu ${CUR_USER} env | grep -e "^DISPLAY=" | cut -d'=' -f2)"<br />
CUR_USER_DISPL=":0"<br />
<br />
export XAUTHORITY="${CUR_USER_XAUTH}"<br />
export DISPLAY="${CUR_USER_DISPL}"<br />
<br />
if [ -f "${CUR_USER_XAUTH}" ]; then<br />
case "$1" in<br />
"add")<br />
/usr/bin/synclient TouchpadOff=1<br />
/usr/bin/logger "USB mouse plugged. Disabling touchpad for $CUR_USER. ($XAUTHORITY - $DISPLAY)"<br />
;;<br />
"remove")<br />
## Only execute synclient if there are no external USB mice connected to the system.<br />
EXT_MOUSE_FOUND="0"<br />
for CUR_MOUSE in ${MOUSELIST}; do<br />
if [ "$(cat ${CUR_MOUSE}/device/name)" != "${TRACKPAD_NAME}" ]; then<br />
EXT_MOUSE_FOUND="1"<br />
fi<br />
done<br />
if [ "${EXT_MOUSE_FOUND}" == "0" ]; then<br />
/usr/bin/synclient TouchpadOff=0<br />
/usr/bin/logger "No additional external mice found. Enabling touchpad for $CUR_USER."<br />
else<br />
logger "Additional external mice found. Won't enable touchpad yet for $CUR_USER."<br />
fi<br />
;;<br />
esac<br />
fi<br />
done<br />
</nowiki>}}<br />
<br />
Update the {{ic|TRACKPAD_NAME}} variable for your system configuration.<br />
Run {{ic|<nowiki>find /sys/class/input/ -name mouse* -exec udevadm info -a {} \; | grep 'ATTRS{name}'</nowiki>}} to get a list of useful mice-names. Choose the one for your trackpad.<br />
<br />
Then have udev run this script when USB mices are plugged in or out, with these udev rules:<br />
<br />
{{hc|/etc/udev/rules.d/01-touchpad.rules|2=<br />
SUBSYSTEM=="input", KERNEL=="mouse[0-9]*", ACTION=="add", RUN+="/usr/bin/mouse-pnp-event-handler.sh add %k"<br />
SUBSYSTEM=="input", KERNEL=="mouse[0-9]*", ACTION=="remove", RUN+="/usr/bin/mouse-pnp-event-handler.sh remove %k"<br />
}}<br />
<br />
== Troubleshooting ==<br />
<br />
=== Touchpad does not work after resuming from hibernate/suspend ===<br />
Occasionally touchpads will fail to work when the computer resumes from sleep or hibernation. This can often be corrected without rebooting by<br />
* Switching to a console and back again,<br />
* entering sleep mode again, and resuming again, or<br />
* locating the correct kernel module, then removing it and inserting it again. <br />
{{Note|You can use Ctrl-Alt-F1 through F8 to switch to a console without using the mouse.}}<br />
modprobe -r psmouse #psmouse happens to be the kernel module for my touchpad (Alps DualPoint)<br />
modprobe psmouse<br />
Now switch back to the tty that X is running on. If you chose the right module, your touchpad should be working again.<br />
<br />
=== Emulate middle (3rd) mouse button ===<br />
Add this:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/10-evdev.conf|<nowiki><br />
Section "InputClass"<br />
Identifier "Emulate Middle Butten"<br />
MatchIsPointer "on"<br />
Option "Emulate3Buttons" "on"<br />
EndSection<br />
</nowiki>}}<br />
<br />
to your /etc/X11/xorg.conf.d/10-evdev.conf (or any Xorg conf you want) and you will have middle click emulation.<br />
<br />
[https://bbs.archlinux.org/viewtopic.php?pid=847309#p847309 Thx to augegr]<br />
=== xorg.conf.d/50-synaptics.conf doesn't seem to apply under GNOME and MATE ===<br />
<br />
[[GNOME]] and [[MATE]], by default, will overwrite various options for your touch-pad. This includes configurable features for which there is no graphical configuration within GNOME's system control panel. This may cause it to appear that {{ic|/etc/X11/xorg.conf.d/50-synaptics.conf}} isn't applied. Please refer to the GNOME section in this article to prevent this behavior.<br />
<br />
* [[Touchpad_Synaptics#GNOME.2FCinnamon]]<br />
<br />
=== ALPS Touchpads ===<br />
<br />
{{Expansion}}<br />
{{Out of date|needs to be rewritten for udev}}<br />
<br />
For ALPS Touchpads, if the above configuration does not provide the desired results, try the following configuration instead:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/50-synaptics.conf|<br />
Section "ServerLayout"<br />
...<br />
InputDevice "USB Mouse" "CorePointer"<br />
InputDevice "Touchpad" "SendCoreEvents"<br />
EndSection<br />
<br />
Section "InputDevice"<br />
Identifier "Touchpad"<br />
Driver "synaptics"<br />
Option "Device" "/dev/input/mouse0"<br />
Option "Protocol" "auto-dev"<br />
Option "LeftEdge" "130"<br />
Option "RightEdge" "840"<br />
Option "TopEdge" "130"<br />
Option "BottomEdge" "640"<br />
Option "FingerLow" "7"<br />
Option "FingerHigh" "8"<br />
Option "MaxTapTime" "180"<br />
Option "MaxTapMove" "110"<br />
Option "EmulateMidButtonTime" "75"<br />
Option "VertScrollDelta" "20"<br />
Option "HorizScrollDelta" "20"<br />
Option "MinSpeed" "0.25"<br />
Option "MaxSpeed" "0.50"<br />
Option "AccelFactor" "0.010"<br />
Option "EdgeMotionMinSpeed" "200"<br />
Option "EdgeMotionMaxSpeed" "200"<br />
Option "UpDownScrolling" "1"<br />
Option "CircularScrolling" "1"<br />
Option "CircScrollDelta" "0.1"<br />
Option "CircScrollTrigger" "2"<br />
Option "Emulate3Buttons" "on"<br />
EndSection<br />
}}<br />
<br />
=== The touchpad is not working, Xorg.0.log shows "Query no Synaptics: 6003C8" ===<br />
<br />
Due to the way synaptics is currently set-up, 2 instances of the synaptics module are loaded. We can recognize this situation by opening the xorg log file ({{ic|/var/log/Xorg.0.log}}) and noticing this:<br />
<br />
{{hc|/var/log/Xorg.0.log|<nowiki><br />
[ 9304.803] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "evdev touchpad catchall"<br />
[ 9304.803] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "touchpad catchall"<br />
</nowiki>}}<br />
<br />
Notice how 2 differently named instances of the module are being loaded. In some cases, this causes the touchpad to become nonfunctional.<br />
<br />
We can prevent this double loading by adding {{ic|MatchDevicePath "/dev/input/event*"}} to our {{ic|/etc/X11/xorg.conf.d/50-synaptics.conf}} file:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/50-synaptics.conf|<nowiki><br />
Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "TapButton1" "1"<br />
Option "TapButton2" "2"<br />
Option "TapButton3" "3"<br />
EndSection <br />
</nowiki>}}<br />
<br />
Restart X and check xorg logs again, the error should be gone and the touchpad should be functional.<br />
<br />
related bugreport: {{Bug|20830}}<br />
<br />
related forum topics:<br />
* https://bbs.archlinux.org/viewtopic.php?id=104769<br />
* https://bbs.archlinux.org/viewtopic.php?pid=825690<br />
<br />
=== Touchpad detected as "PS/2 Generic Mouse" or "Logitech PS/2 mouse" ===<br />
<br />
This can be caused by a number of issues;<br />
<br />
==== ALPS touchpads ====<br />
This is caused by a [https://bugzilla.kernel.org/show_bug.cgi?id=27442 kernel bug] which was fixed in kernel version 3.3. Wrongly detected touchpads cannot be configured with the Synaptic input driver. To fix this, simply install the [[AUR]] package {{AUR|psmouse-alps-driver}}.<br />
<br />
Among the affected notebooks are the following models:<br />
<br />
* Acer Aspire 7750G<br />
* Dell Latitude E6230, E6520, E6430 and E6530 (ALPS DualPoint TouchPad), Inspiron N5110 (ALPS GlidePoint), Inspiron 14R 5420/Turbo SE7420/SE7520 (ALPS GlidePoint)<br />
* Samsung NC110/NF210/QX310/QX410/QX510/SF310/SF410/SF510/RF410/RF510/RF710/RV515<br />
<br />
More information can be found in [https://bbs.archlinux.org/viewtopic.php?id=117109 this thread].<br />
<br />
You can also try installing this: https://github.com/he1per/psmouse-dkms-alpsv7<br />
<br />
==== Elantech touchpads ====<br />
This can happen with some laptops with an Elantech touchpad, for example the ASUS x53s. In this situation you need {{AUR|psmouse-alps-driver}} package from [[AUR]].<br />
<br />
==== Laptops with touchscreen & touchpad ====<br />
There also seems to be a problem with laptops which have both a touchscreen & a touchpad, such as the Dell XPS 12 or Dell XPS 13. To fix this, you can [[blacklisting|blacklist]] the {{ic|i2c_hid}} driver, this does have the side-effect of disabeling the touchscreen though.<br />
<br />
This [http://www.spinics.net/lists/linux-input/msg27768.html seems to be a known problem]. Also see [https://bbs.archlinux.org/viewtopic.php?pid=1419078 this thread].<br />
<br />
Post kernel 3.15, having the module blacklisted may cause touchpad to stop working completely. Removing the blacklist should allow this to start working with limited functionality, see {{Bug|40921}}.<br />
<br />
=== Non-functional Synaptics special abilities (multi-tap, scrolling, etc.) ===<br />
<br />
In some cases Synaptics touchpads only work partially. Features like two-finger scrolling or two-finger middle-click do not work even if properly enabled. This is probably related to the [[#The_touchpad_is_not_working.2C_Xorg.0.log_shows_.22Query_no_Synaptics:_6003C8.22|The touchpad is not working]] problem mentioned above. Fix is the same, prevent double module loading.<br />
<br />
If preventing the module from loading twice does not solve your issue, try commenting out the toggle "MatchIsTouchpad" (which is now included by default in the synaptics config).<br />
<br />
If clicking with either 2 or 3 fingers is interpreted as a right-click, so you cannot get a middle click either way regardless of configuration, this bug is probably the culprit: https://bugs.freedesktop.org/show_bug.cgi?id=55365<br />
<br />
=== Cursor jump ===<br />
<br />
Some users have their cursor inexplicably ''jump'' around the screen. There currently no patch for this, but the developers are aware of the problem and are working on it.<br />
<br />
Another posibility is that you're experiencing ''IRQ losses'' related to the i8042 controller (this device handles the keyboard and the touchpad of many laptops), so you have two posibilities here:<br />
<br />
1. rmmod && insmod the psmouse module.<br />
2. append i8042.nomux=1 to the boot line and reboot your machine.<br />
<br />
=== Touchpad device is not located at {{ic|/dev/input/*}} ===<br />
<br />
If that is the case, you can use this command to display information about your input devices:<br />
<br />
$ cat /proc/bus/input/devices<br />
<br />
Search for an input device which has the name "SynPS/2 Synaptics TouchPad". The "Handlers" section of the output specifies what device you need to specify.<br />
<br />
'''Example output:'''<br />
<br />
{{hc|$ cat /proc/bus/input/devices|<nowiki><br />
I: Bus=0011 Vendor=0002 Product=0007 Version=0000<br />
N: Name="SynPS/2 Synaptics TouchPad"<br />
P: Phys=isa0060/serio4/input0<br />
S: Sysfs=/class/input/input1<br />
H: Handlers=mouse0 event1<br />
B: EV=b<br />
B: KEY=6420 0 7000f 0<br />
</nowiki>}}<br />
<br />
In this case, the {{ic|Handlers}} are {{ic|mouse0}} and {{ic|event1}}, so {{ic|/dev/input/mouse0}} would be used.<br />
<br />
{{Expansion|TODO: explain how to apply this in {{ic|/etc/X11/xorg.conf.d/50-synaptics.conf}}}}<br />
<br />
=== Firefox and special touchpad events ===<br />
<br />
You can enable/disable some special events that Firefox handles upon tapping or scrolling certain parts of your touchpad by editing the settings of those actions.<br />
Type '''about:config''' in your Firefox address bar.<br />
To alter options, double-click on the line in question.<br />
<br />
==== Firefox 16.0 and earlier ====<br />
<br />
To prevent Firefox from scrolling (backward/forward) through browser history and instead scroll through pages, edit these settings as shown:<br />
<br />
mousewheel.horizscroll.withnokey.action = 1<br />
mousewheel.horizscroll.withnokey.sysnumlines = true<br />
<br />
To prevent Firefox from redirecting you to URLs formed from your clipboard content upon tapping the upper-right corner of your touchpad (or middle mouse button), set the following option to "false":<br />
middlemouse.contentLoadURL = false<br />
<br />
==== Firefox 17.0 and later ====<br />
<br />
Horizontal scrolling will now by default scroll through pages and not through your history. To reenable Mac-style forward/backward with two-finger swiping, edit:<br />
<br />
mousewheel.default.action.override_x = 2<br />
<br />
You may encounter accidental forwards/backwards while scrolling vertically. To change Firefox's sensitivity to horizontal swipes, edit:<br />
<br />
mousewheel.default.delta_multiplier_x<br />
<br />
The optimum value will depend on your touchpad and how you use it, try starting with <code>10</code>. A negative value will reverse the swipe directions.<br />
<br />
=== Opera: horizontal scrolling issues ===<br />
<br />
Same as above.<br />
To fix it, go to ''Tools > Preferences > Advanced > Shortcuts''. Select "Opera Standard" mouse setup and click "Edit". In "Application" section:<br />
{{Accuracy|Description here is not so clear and i don't use Opera,Please make it clear :)}}<br />
* assign key "Button 6" to command "Scroll left"<br />
* assign key "Button 7" to command "Scroll right"<br />
<br />
=== Scrolling and multiple actions with Synaptics on LG laptops ===<br />
<br />
These problems seem to be occurring on several models of LG laptops.<br />
Symptoms include: when pressing Mouse Button 1, Synaptics interprets it as ScrollUP and a regular button 1 click; same goes for button 2.<br />
<br />
The scrolling issue can be resolved by entering in {{ic|xorg.conf}}:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/xorg.conf|Option "UpDownScrolling" "0"}}<br />
<br />
{{Note|This will make Synaptics interpret one button push as three. There is a patch written by Oskar Sandberg[http://www.math.chalmers.se/~ossa/linux/lg_tx_express.html] that removes these clicks.}}<br />
<br />
Apparently, when trying to compile this against the latest version of Synaptics it fails. The solution to this is using the GIT repository for Synaptics[http://web.telia.com/~u89404340/touchpad/synaptics/.git].<br />
<br />
There is also a package build file in the AUR to automate this: {{AUR|xf86-input-synaptics-lg}}.<br />
<br />
To build the package after downloading the tarball and unpacking it, execute:<br />
<br />
$ cd synaptics-git<br />
$ makepkg<br />
<br />
=== Other external mouse issues ===<br />
<br />
First, make sure your section describing the external mouse contains this line (or that the line looks like this):<br />
<br />
{{hc|/etc/X11/xorg.conf.d/xorg.conf|Option "Device" "/dev/input/mice"}}<br />
<br />
If the "Device" line is different, change it to the above and try to restart X. If this does not solve your problem, make your '''touchpad''' is the CorePointer in the "Server Layout" section:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/xorg.conf|InputDevice "Touchpad" "CorePointer"}}<br />
<br />
and make your external device "SendCoreEvents":<br />
<br />
{{hc|/etc/X11/xorg.conf.d/xorg.conf|InputDevice "USB Mouse" "SendCoreEvents"}}<br />
<br />
finally add this to your external device's section:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/xorg.conf|Option "SendCoreEvents" "true"}}<br />
<br />
If all of the above does not work for you, please check relevant bug trackers for possible bugs, or go through the forums to see if anyone has found a better solution.<br />
<br />
=== Touchpad synchronization issues ===<br />
<br />
Sometimes the cursor may freeze for several seconds or start acting on its own for no apparent reason. This behavior is accompanied by records in {{ic|/var/log/messages.log}}<br />
<br />
{{hc|/var/log/messages.log|psmouse.c: TouchPad at isa0060/serio1/input0 lost synchronization, throwing 3 bytes away}}<br />
<br />
This problem has no general solution, but there are several possible workarounds.<br />
* If you use CPU frequency scaling, avoid using the "ondemand" governor and use the "performance" governor when possible, as the touchpad may lose sync when the CPU frequency changes.<br />
* Avoid using an ACPI battery monitor.<br />
* Attempt to load psmouse with "proto=imps" option. To do that, add this line to your {{ic|/etc/modprobe.d/modprobe.conf}}:<br />
<br />
{{hc|/etc/modprobe.d/modprobe.conf|2=options psmouse proto=imps}}<br />
<br />
* Try another desktop environment. Some users report that this problem only occurs when using XFCE or GNOME, for whatever reason<br />
<br />
=== Delay between a button tap and the actual click ===<br />
<br />
{{Out of date|On Synaptics Driver 1.7.1, the {{ic|FastTaps}} option has been removed.}}<br />
<br />
If you experience a delay between the tap on the touchpad and the actual click that is registered you need to enable FastTaps:<br />
<br />
To do so, you should add '''Option "FastTaps" "1"''' to {{ic|/etc/X11/xorg.conf.d/50-synaptics.conf}} so that you have:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/50-synaptics.conf|<nowiki><br />
Section "InputClass"<br />
Identifier "Synaptics Touchpad"<br />
Driver "synaptics"<br />
...<br />
Option "FastTaps" "1"<br />
...<br />
EndSection<br />
</nowiki>}}<br />
<br />
===Xorg.log.0 shows SynPS/2 Synaptics touchpad can not grab event device, errno=16 ===<br />
<br />
If you are using Xorg 7.4, you may get a warning like this from {{ic|/var/log/Xorg.0.log}}, thais is because the driver will grab the event device for exclusive use when using the Linux 2.6 event protocol. When it fails, X will return this error message.<br />
<br />
Grabbing the event device means that no other user space or kernel space program sees the touchpad events. This is desirable if the X config file includes {{ic|/dev/input/mice}} as an input device, but is undesirable if you want to monitor the device from user space.<br />
<br />
If you want to control it, add or modify the "GrabEventDevice" option in you touchpad section in {{ic|/etc/X11/xorg.conf.d/50-synaptics.conf}}:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/50-synaptics.conf|2=<br />
...<br />
Option "GrabEventDevice" "''boolean''"<br />
...<br />
}}<br />
<br />
This will come into effect when X is restarted, though you can also change it by using synclient. When changing this parameter with the synclient program, the change will not take effect until the Synaptics driver is disabled and re-enabled. This can be achieved by switching to a text console and then switching back to X.<br />
<br />
=== Synaptics loses multitouch detection after rebooting from Windows ===<br />
<br />
Many drivers include a firmware that is loaded into flash memory when the computer boots. This firmware is not necessarily cleared upon shutdown, and is not always compatible with Linux drivers. The only way to clear the flash memory is to shutdown completely rather than using reboot. It is generally considered best practice to never use reboot when switching between operating systems.<br />
<br />
=== Buttonless touchpads (aka ClickPads) ===<br />
<br />
Some laptops have a special kind of touchpad which has the mouse buttons as part of the tracking plate, instead of being external buttons. For example HP series 4500 ProBooks, ThinkPad X220 and X1 ThinkPad series have this kind of a touchpad. By default whole button area is detected as a left button resulting in the second mouse button being unusable and click + drag will not work. Previously support for such devices was achieved by using third party patches, but from version 1.6.0 the synaptics driver has native multitouch support (using the ''mtdev'' library). Note that although the driver registers multiple touches, it does not track individual fingers (as of version 1.7.1) which results in confusing behavior when using physical buttons of a clickpad for drag-and-drop and other gestures. You can look into the {{AUR|xf86-input-mtrack}} driver for better multitouch support.<br />
<br />
To enable other buttons modify the touchpad section in {{ic|/etc/X11/xorg.conf.d/50-synaptics.conf}} (or better, of your custom synaptics configuration file prefixed with a higher number):<br />
<br />
{{hc|/etc/X11/xorg.conf.d/50-synaptics.conf|<nowiki><br />
...<br />
Option "ClickPad" "true"<br />
Option "EmulateMidButtonTime" "0"<br />
Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0"<br />
...<br />
</nowiki>}}<br />
<br />
These three options are the key, first one will enable multitouch support, second will disable middle button emulation (not supported for ClickPads), and third will define the button areas. <br />
<br />
Format for the SoftButtonAreas option is (from {{ic|man 4 synaptics}}):<br />
{{bc|RightButtonAreaLeft RightButtonAreaRight RightButtonAreaTop RightButtonAreaBottom MiddleButtonAreaLeft MiddleButtonAreaRight MiddleButtonAreaTop MiddleButtonAreaBottom}}<br />
<br />
The above example is commonly found in documentation or synaptics packages, and it translates to right half of the bottom 18% of the touchpad to be a right button. There is '''no middle button''' defined. If you want to define a middle button remember one key piece of information from the manual; '''edge set to 0 extends to infinity in that direction.'''<br />
<br />
In the following example right button will occupy 40% of the rightmost part of the button area. We then proceed to setup the middle button to occupy 20% of the touchpad in a small area in the center.<br />
<br />
...<br />
Option "SoftButtonAreas" "60% 0 82% 0 40% 59% 82% 0"<br />
...<br />
<br />
You can use {{ic|<nowiki>synclient</nowiki>}} to check the new soft button areas: <br />
<br />
{{hc|<nowiki>$ synclient -l | grep -i ButtonArea</nowiki>|<nowiki><br />
RightButtonAreaLeft = 3914<br />
RightButtonAreaRight = 0<br />
RightButtonAreaTop = 3918<br />
RightButtonAreaBottom = 0<br />
MiddleButtonAreaLeft = 3100<br />
MiddleButtonAreaRight = 3873<br />
MiddleButtonAreaTop = 3918<br />
MiddleButtonAreaBottom = 0<br />
</nowiki>}}<br />
<br />
If your buttons aren't working, soft button areas are not changing, ensure you do not have a synaptics configuration file distributed by a package which is overriding your custom settings (ie. some AUR packages distribute configurations prefixed with very high numbers).<br />
<br />
These settings cannot be modified on the fly with {{ic|<nowiki>synclient</nowiki>}}, however, {{ic|<nowiki>xinput</nowiki>}} works:<br />
<br />
xinput set-prop "SynPS/2 Synaptics TouchPad" "Synaptics Soft Button Areas" 4000 0 4063 0 3000 4000 4063 0<br />
<br />
You cannot use percentages with this command, so look at {{ic|/var/log/Xorg.0.log}} to figure out the touchpad x and y-axis ranges.<br />
<br />
=== Trackpoint and Clickpad ===<br />
Newer Thinkpads don’t have physical buttons for their Trackpoint anymore and instead use the upper area of the Clickpad for buttons (Left, Middle, Right). <br />
Apart from the ergonomic viewpoint this works quite well with current Xorg. Unfortunately mouse wheel emulation using the middle button is not supported yet. Install {{AUR|xf86-input-evdev-trackpoint}} from the AUR for a patched and properly configured version if you intend to use the Trackpoint.<br />
<br />
== See also ==<br />
<br />
* [http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/ Synaptics touchpad driver]<br />
* [http://www.x.org/archive/X11R7.5/doc/man/man4/synaptics.4.html Synaptics manual on x.org ]</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=Twm&diff=329379Twm2014-08-08T22:24:41Z<p>Lordheavy: /* Configuration (editing your .twmrc) */ file must be created, it doesn't exist at first step</p>
<hr />
<div>[[Category:Stacking WMs]]<br />
[[it:Twm]]<br />
Twm is a window manager for X11. It is a small program, being built against Xlib rather than using a widget library, and as such, it is very light on system resources. Though simple, it is highly configurable; fonts, colours, border widths, title bar buttons, etc. can all be set by the user.<br />
<br />
=== Twm creation and name ===<br />
<br />
Twm was written by Tom LaStrange, a developer who was frustrated by the limitations of [https://en.wikipedia.org/wiki/UWM_(computing) uwm (Ultrix Window Manager)][[http://www.linuxplanet.com/linuxplanet/reports/3000/2/], the only window manager around when X11 was first released. Twm supplanted uwm as the default window manager supplied with X11 from the X11R4 release in 1989[https://en.wikipedia.org/wiki/UWM_(computing)].<br />
<br />
Twm has stood for ''Tom's Window Manager'', ''Tab Window Manager'' and more recently ''Timeless Window Manager''[https://en.wikipedia.org/wiki/Twm].<br />
<br />
== Installation ==<br />
<br />
Twm is part of the Arch Linux [[official repositories]] and is provided by the package {{Pkg|xorg-twm}}.<br />
<br />
== Start twm with X ==<br />
<br />
In order for twm to be run as your window manager, edit the file {{Ic|~/.xinitrc}} so the final line is:<br />
exec twm<br />
If you now type:<br />
startx<br />
at the command prompt, [[Xorg|X]] will start using twm as its window manager.<br />
<br />
If you would like to configure X (and twm) to start on boot (or when you login), read the wiki page [[Start X at Login]] to find out how.<br />
<br />
== Configuration (editing your .twmrc) ==<br />
<br />
By default, twm looks very dated and unintuitive. By creating the file {{Ic|~/.twmrc}}, you can customize twm to make it more friendly.<br />
<br />
== Resources ==<br />
<br />
* The twm man page gives full details of the commands which can be used in your {{Ic|~/.twmrc}} file. It can be viewed online[http://linux.die.net/man/1/twm] or accessed once twm is installed by typing the following at a command prompt:<br />
man twm<br />
* Many {{Ic|~/.twmrc}} files have been posted online[http://physics.wm.edu/unix_intro/loginmht/twmrc.html]. The site xwinman[http://xwinman.org/vtwm.php] has several {{Ic|~/.twmrc}} files with screenshots which might provide inspiration. A Google search for "twmrc" can be used to find new ideas[https://www.google.com/search?q=twmrc].<br />
* More information about twm can be found on the twm Wikipedia page[https://en.wikipedia.org/wiki/Twm].<br />
* There is a patched version, not in the repositories, with updated features such as transparency. A description and build script is available on the xorg mailing list.[http://lists.x.org/archives/xorg/2010-January/048401.html] It can be tried out by installing [[xcompmgr]], running the build script, putting the resulting {{Ic|twm}} and {{Ic|dot.twmrc}} files in a convenient directory, and editing the {{Ic|~/.xinitrc}} file so that the last two lines are<br />
xcompmgr -o 0.3 -c -r 8 -t -10 -l -12 &<br />
/path-to-directory/twm -visual TrueColor -depth 32 -f /path-to-directory/dot.twmrc<br />
<br />
== References ==<br />
# Proffitt, Brian. "[http://www.linuxplanet.com/linuxplanet/reports/3000/2/ From the Desktop: Tom LaStrange Speaks!]", ''LinuxPlanet'', February 6, 2001. Retrieved October 22, 2009.<br />
# "[https://en.wikipedia.org/wiki/UWM_(computing) UWM (computing)]", ''Wikipedia''. Retrieved October 22, 2009.<br />
# "[https://en.wikipedia.org/wiki/Twm Twm]", ''Wikipedia''. Retrieved October 22, 2009.<br />
# "[http://linux.die.net/man/1/twm Twm man page]", ''linux.die.net''. Retrieved October 22, 2009.<br />
# "[http://www.custompc.plus.com/twm/configs/twmrc09 Sample twmrc]", ''custompc.plus.com''. Retrieved August 12, 2013.<br />
# "[http://xwinman.org/vtwm.php Window Managers for X: TWM/VTWM]", ''xwinman.org''. Retrieved October 22, 2009.<br />
# "[https://www.google.com/search?q=twmrc Google search for twmrc]", ''google.com''. Retrieved October 22, 2009.<br />
# Kask, Eeri. "[http://lists.x.org/archives/xorg/2010-January/048401.html TWM -- Revised Edition -- Again]", ''lists.x.org'', January 3, 2010.</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=Xorg&diff=326872Xorg2014-07-26T05:47:07Z<p>Lordheavy: /* Configuration */</p>
<hr />
<div>[[Category:X Server]]<br />
[[Category:Graphics]]<br />
[[cs:Xorg]]<br />
[[da:Xorg]]<br />
[[de:X]]<br />
[[el:Xorg]]<br />
[[es:Xorg]]<br />
[[fr:Xorg]]<br />
[[it:Xorg]]<br />
[[ja:Xorg]]<br />
[[nl:Xorg]]<br />
[[pl:Xorg]]<br />
[[pt:Xorg]]<br />
[[ro:Xorg]]<br />
[[ru:Xorg]]<br />
[[tr:X_Sunucusu]]<br />
[[zh-CN:Xorg]]<br />
[[zh-TW:Xorg]]<br />
{{Related articles start}}<br />
{{Related|Start X at Login}}<br />
{{Related|Autostarting}}<br />
{{Related|Display manager}}<br />
{{Related|Window manager}}<br />
{{Related|Font configuration}}<br />
{{Related|Cursor Themes}}<br />
{{Related|Desktop environment}}<br />
{{Related|Wayland}}<br />
{{Related|Mir}}<br />
{{Related articles end}}<br />
From http://www.x.org/wiki/:<br />
:''The X.Org project provides an open source implementation of the X Window System. The development work is being done in conjunction with the freedesktop.org community. The X.Org Foundation is the educational non-profit corporation whose Board serves this effort, and whose Members lead this work.''<br />
<br />
'''Xorg''' is the public, open-source implementation of the X window system version 11. Since Xorg is the most popular choice among Linux users, its ubiquity has led to making it an ever-present requisite for GUI applications, resulting in massive adoption from most distributions. See the [[Wikipedia:X.Org Server|Xorg]] Wikipedia article or visit the [http://www.x.org/wiki/ Xorg website] for more details.<br />
<br />
== Installation ==<br />
<br />
You will need to [[pacman|install]] the essential package {{Pkg|xorg-server}}, available in the [[official repositories]].<br />
<br />
Additionally, the {{Pkg|xorg-server-utils}} meta-package pulls in the most useful packages for certain configuration tasks, they are pointed out in the relevant sections. Some other useful packages are part of the {{Grp|xorg-apps}} group.<br />
<br />
{{Tip|The default X environment is rather bare, and you will typically seek to install a [[Window manager|window manager]] or a [[Desktop environment|desktop environment]] to supplement X.}}<br />
<br />
=== Driver installation ===<br />
<br />
The Linux kernel includes open-source video drivers and support for hardware accelerated framebuffers. However, userland support is required for OpenGL and 2D acceleration in X11.<br />
<br />
First, identify your card:<br />
<br />
$ lspci | grep VGA<br />
<br />
{{Note| if you don't get any output, try looking for a 3D controller instead <br />
$ lspci <nowiki>|</nowiki> grep 3D<br />
}}<br />
<br />
Then install an appropriate driver. You can search the package database for a complete list of open-source video drivers:<br />
<br />
$ pacman -Ss xf86-video<br />
<br />
The default graphics driver is ''vesa'' (package {{Pkg|xf86-video-vesa}}), which handles a large number of chipsets but does not include any 2D or 3D acceleration. If a better driver cannot be found or fails to load, Xorg will fall back to ''vesa''.<br />
<br />
In order for video acceleration to work, and often to expose all the modes that the GPU can set, a proper video driver is required:<br />
<br />
{{Note| If you have a NVIDIA Optimus enabled laptop; one that uses an integrated video card combined with a dedicated GPU, then you might want to look at [[Bumblebee]].}}<br />
<br />
{| class="wikitable" style="text-align:center"<br />
|-<br />
! Brand !! Type !! Driver !! [[Multilib]] Package<br><span style="font-weight: normal; font-size: 0.8em;">(for 32-bit applications on Arch x86_64)</span> !! &nbsp;Documentation&nbsp;<br />
|-<br />
| rowspan="2" bgcolor=#f7e3e3| '''<span style="color: #e62c2c;">&nbsp;AMD/ATI&nbsp;</span>'''<br />
| &nbsp;Open source&nbsp; || {{Pkg|xf86-video-ati}} || {{Pkg|lib32-ati-dri}} || [[ATI]]<br />
|-<br />
| Proprietary || {{AUR|catalyst}} || {{AUR|lib32-catalyst-utils}} || [[AMD Catalyst]]<br />
|-<br />
| bgcolor=#e3ecf7| '''<span style="color: #2a6dc8;">Intel</span>'''<br />
| Open source<br />
| {{Pkg|xf86-video-intel}} || {{Pkg|lib32-intel-dri}} || [[Intel Graphics]]<br />
|-<br />
| rowspan="5" bgcolor=#e3f7e6| '''<span style="color: #409044;">Nvidia</span>'''<br />
| Open source<br />
| {{Pkg|xf86-video-nouveau}} || {{Pkg|lib32-nouveau-dri}} || [[Nouveau]]<br />
|-<br />
| rowspan="4"| Proprietary || {{Pkg|nvidia}} || {{Pkg|lib32-nvidia-libgl}} || rowspan="4"| [[NVIDIA]]<br />
|-<br />
| {{Pkg|nvidia-304xx}} || {{Pkg|lib32-nvidia-304xx-libgl}}<br />
|-<br />
| {{AUR|nvidia-173xx}} || {{AUR|lib32-nvidia-173xx-utils}}<br />
|-<br />
| {{AUR|nvidia-96xx}} || {{AUR|lib32-nvidia-96xx-utils}}<br />
|-<br />
| bgcolor=#f7f2e3| '''<span style="color: #9a4e16;">VIA</span>'''<br />
| Open source || {{Pkg|xf86-video-openchrome}} || – || [[Via|VIA]]<br />
|}<br />
<br />
Xorg should run smoothly without closed source drivers, which are typically needed only for advanced features such as fast 3D-accelerated rendering for games, dual-screen setups, and TV-out.<br />
<br />
== Running ==<br />
<br />
=== Display manager ===<br />
<br />
A convenient way to start X, but one that requires an additional application and dependencies, is by using a [[display manager]] such as [[GDM]], [[KDM]] or [[SLiM]].<br />
<br />
=== Manually ===<br />
<br />
If you want to start X without a display manager, install the package {{Pkg|xorg-xinit}} which provides the ''startx'' and ''xinit'' commands (the ''startx'' script is merely a front end to the ''xinit'' command).<br />
<br />
To determine the client to run, ''startx''/''xinit'' will first try to parse a {{ic|~/.xinitrc}} file in the user's home directory. In the absence of {{ic|~/.xinitrc}}, ''startx''/''xinit'' defaults to parsing the global file {{ic|/etc/X11/xinit/xinitrc}}, which starts a basic environment with the [[Twm]] window manager, [[Wikipedia:Xclock|Xclock]] and [[Xterm]]: this requires the packages {{Pkg|xorg-twm}}, {{Pkg|xorg-xclock}} and {{Pkg|xterm}} to be installed. See [[xinitrc]] for information on how to initialize and configure it.<br />
<br />
To launch the X server and clients, simply run:<br />
<br />
$ startx<br />
<br />
{{Tip|You can exploit the global file {{ic|/etc/X11/xinit/xinitrc}} to quickly test X in a minimal environment, especially immediately after installing it or for other debugging purposes: simply rename your {{ic|~/.xinitrc}} file to temporarily disable it. After running {{ic|startx}}, a few movable windows should show up, and your mouse should work. To quit this environment, issue the {{ic|exit}} command into the terminals until you return to the virtual console.}}<br />
<br />
See also [[Start X at Login]].<br />
<br />
{{Note|<br />
* By default, due to permissions on console devices, the X display needs to be on the same tty where the login occurred. This is handled by the default {{ic|/etc/X11/xinit/xserverrc}}. See [[General troubleshooting#Session permissions]] for details.<br />
* If you wish to have the X display on a separate console from the one where the server is invoked, you can do so by using the X server wrapper provided by {{ic|/usr/lib/systemd/systemd-multi-seat-x}}. For convenience, ''startx'' can be set up to use this wrapper by modifying your {{ic|~/.xserverrc}}.<br />
* If you choose to use ''xinit'' instead of ''startx'', you are responsible for passing {{ic|-nolisten tcp}} and ensuring the session does not break by starting X on a different tty.<br />
}}<br />
<br />
{{Moveto|#Troubleshooting|The following notes are for troubleshooting, maybe they belong better there. We could provide a link to such section here instead. Note there's also [[#Common problems]] there.}}<br />
<br />
{{Note|<br />
* If a problem occurs, then view the log at {{ic|/var/log/Xorg.0.log}}. Be on the lookout for any lines beginning with {{ic|(EE)}}, which represent errors, and also {{ic|(WW)}}, which are warnings that could indicate other issues.<br />
* If there is an ''empty'' {{ic|.xinitrc}} file in your {{ic|$HOME}}, either delete or edit it in order for X to start properly. If you do not do this X will show a blank screen with what appears to be no errors in your {{ic|Xorg.0.log}}. Simply deleting it will get it running with a default X environment.<br />
* If the screen goes black, you may still attempt to switch to a different virtual console (e.g. {{ic|Ctrl+Alt+F2}}), and blindly log in as root. You can do this by typing "root" (press {{ic|Enter}} after typing it) and entering the root password (again, press {{ic|Enter}} after typing it).<br />
<br />
: You may also attempt to kill the X server with:<br />
: {{bc|# pkill X}}<br />
: If this does not work, reboot blindly with:<br />
: {{bc|# reboot}}<br />
}}<br />
<br />
== Configuration ==<br />
<br />
{{Note|Arch supplies default configuration files in {{ic|/usr/share/X11/xorg.conf.d}}, and no extra configuration is necessary for most setups.}}<br />
<br />
Xorg uses a configuration file called {{ic|xorg.conf}} and files ending in the suffix {{ic|.conf}} for its initial setup: the complete list of the folders where these files are searched can be found at [http://www.x.org/releases/current/doc/man/man5/xorg.conf.5.xhtml] or by running {{ic|man xorg.conf}}, together with a detailed explanation of all the available options.<br />
<br />
=== Using .conf files ===<br />
<br />
The {{ic|/etc/X11/xorg.conf.d/}} directory stores host-specific configuration. You are free to add configuration files there, but they must have a {{ic|.conf}} suffix: the files are read in ASCII order, and by convention their names start with {{ic|''XX''-}} (two digits and a hyphen, so that for example 10 is read before 20). These files are parsed by the X server upon startup and are treated like part of the traditional {{ic|xorg.conf}} configuration file. The X server essentially treats the collection of configuration files as one big file with entries from {{ic|xorg.conf}} at the end.<br />
<br />
=== Using xorg.conf ===<br />
<br />
Xorg can also be configured via {{ic|/etc/X11/xorg.conf}} or {{ic|/etc/xorg.conf}}. You can also generate a skeleton for {{ic|xorg.conf}} with:<br />
<br />
# Xorg :0 -configure<br />
<br />
This should create a {{ic|xorg.conf.new}} file in {{ic|/root/}} that you can copy over to {{ic|/etc/X11/xorg.conf}}.<br />
<br />
Alternatively, your proprietary video card drivers may come with a tool to automatically configure Xorg: see the article of your video driver, [[NVIDIA]] or [[AMD Catalyst]], for more details.<br />
<br />
{{Note|Configuration file keywords are case insensitive, and "_" characters are ignored. Most strings (including Option names) are also case insensitive, and insensitive to white space and "_" characters.}}<br />
<br />
=== Sample configurations ===<br />
<br />
* {{ic|xorg.conf}}<br />
: [http://pastebin.com/raw.php?i=EuSKahkn Sample 1]<br />
: {{Note|Sample configuration file using {{ic|/etc/X11/xorg.conf.d/10-evdev.conf}} for the keyboard layouts. Note the commented out {{ic|InputDevice}} sections.}}<br />
* {{ic|/etc/X11/xorg.conf.d/10-evdev.conf}}<br />
: [http://pastebin.com/raw.php?i=4mPY35Mw Sample 1]<br />
: {{Note|This is the {{ic|10-evdev.conf}} file that goes with the xorg.conf sample 1.}}<br />
* {{ic|/etc/X11/xorg.conf.d/10-monitor.conf}}<br />
:# [http://pastebin.com/raw.php?i=fJv8EXGb VMware]<br />
:# [http://pastebin.com/raw.php?i=NRz7v0Kn KVM]<br />
:# [https://gist.github.com/daemox/6325050 NVIDIA]<br />
: {{Note|nvidia-ck binary drivers (v325); Dual GPU, Dual Monitor, Dual Screen; No Twinview, No Xinerama; Rotated and vertically placed screen1 above screen0.}}<br />
<br />
== Input devices ==<br />
<br />
[[Udev]] will detect your hardware and [[Wikipedia:evdev|evdev]] will act as the hotplugging input driver for almost all devices. Udev is provided by {{Pkg|systemd}} and {{Pkg|xf86-input-evdev}} is required by {{Pkg|xorg-server}}, so there is no need to explicitly install those packages. If evdev does not support your device, install the needed driver from the {{Grp|xorg-drivers}} group.<br />
<br />
You should have {{ic|10-evdev.conf}} in the {{ic|/etc/X11/xorg.conf.d/}} directory, which manages keyboards, mice, touchpads and touchscreens.<br />
<br />
See the following pages for specific instructions, or the [https://fedoraproject.org/wiki/Input_device_configuration Fedora wiki] entry for more examples.<br />
<br />
=== Mouse acceleration ===<br />
<br />
See the main page: [[Mouse acceleration]]<br />
<br />
=== Extra mouse buttons ===<br />
<br />
See the main page: [[All Mouse Buttons Working]]<br />
<br />
=== Touchpad Synaptics ===<br />
<br />
See the main page: [[Touchpad Synaptics]]<br />
<br />
=== Keyboard settings ===<br />
<br />
See the main page: [[Keyboard configuration in Xorg]]<br />
<br />
== Monitor settings ==<br />
<br />
=== Getting started ===<br />
<br />
{{Note|Newer versions of Xorg are auto-configuring, you should not need to use this.}}<br />
<br />
First, create a new config file, such as {{ic|/etc/X11/xorg.conf.d/10-monitor.conf}}.<br />
<br />
{{hc|/etc/X11/xorg.conf.d/10-monitor.conf|<nowiki><br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "vesa" #Choose the driver used for this monitor<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "Screen0" #Collapse Monitor and Device section to Screen section<br />
Device "Device0"<br />
Monitor "Monitor0"<br />
DefaultDepth 16 #Choose the depth (16||24)<br />
SubSection "Display"<br />
Depth 16<br />
Modes "1024x768_75.00" #Choose the resolution<br />
EndSubSection<br />
EndSection<br />
</nowiki>}}<br />
<br />
=== Multiple monitors ===<br />
<br />
See main article [[Multihead]] for general information.<br />
<br />
See also GPU-specific instructions:<br />
* [[NVIDIA#Multiple monitors]]<br />
* [[Nouveau#Dual Head]]<br />
* [[AMD Catalyst#Double Screen (Dual Head / Dual Screen / Xinerama)]]<br />
* [[ATI#Dual Head setup]]<br />
<br />
==== More than one graphics card ====<br />
<br />
You must define the correct driver to use and put the bus ID of your graphic cards.<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "Screen0"<br />
Driver "nouveau"<br />
BusID "PCI:0:12:0"<br />
EndSection<br />
<br />
Section "Device"<br />
Identifier "Screen1"<br />
Driver "radeon"<br />
BusID "PCI:1:0:0"<br />
EndSection<br />
}}<br />
<br />
To get your bus ID:<br />
<br />
{{hc|<nowiki>$ lspci | grep VGA</nowiki>|<nowiki><br />
01:00.0 VGA compatible controller: nVidia Corporation G96 [GeForce 9600M GT] (rev a1)<br />
</nowiki>}}<br />
<br />
The bus ID here is 1:0:0.<br />
<br />
=== Display size and DPI ===<br />
<br />
{{Accuracy|1=Xorg always sets dpi to 96. See [https://bugs.freedesktop.org/show_bug.cgi?id=23705 this], [https://bugs.freedesktop.org/show_bug.cgi?id=41115 this] and finally [http://pastebin.com/vtzyBK6e this].}}<br />
<br />
The DPI of the X server is determined in the following manner:<br />
# The -dpi command line option has highest priority.<br />
# If this is not used, the DisplaySize setting in the X config file is used to derive the DPI, given the screen resolution.<br />
# If no DisplaySize is given, the monitor size values from DDC are used to derive the DPI, given the screen resolution.<br />
# If DDC does not specify a size, 75 DPI is used by default.<br />
<br />
In order to get correct dots per inch (DPI) set, the display size must be recognized or set. Having the correct DPI is especially necessary where fine detail is required (like font rendering). Previously, manufacturers tried to create a standard for 96 DPI (a 10.3" diagonal monitor would be 800x600, a 13.2" monitor 1024x768). These days, screen DPIs vary and may not be equal horizontally and vertically. For example, a 19" widescreen LCD at 1440x900 may have a DPI of 89x87. To be able to set the DPI, the Xorg server attempts to auto-detect your monitor's physical screen size through the graphic card with [[wikipedia:Display_Data_Channel|DDC]]. <s>When the Xorg server knows the physical screen size, it will be able to set the correct DPI depending on resolution size.</s><br />
<br />
To see if your display size and DPI are detected/calculated correctly:<br />
<br />
$ xdpyinfo | grep -B2 resolution<br />
<br />
Check that the dimensions match your display size. If the Xorg server is not able to correctly calculate the screen size, it will default to 75x75 DPI and you will have to calculate it yourself.<br />
<br />
If you have specifications on the physical size of the screen, they can be entered in the Xorg configuration file so that the proper DPI is calculated:<br />
<br />
{{bc|<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
DisplaySize 286 179 # In millimeters<br />
EndSection<br />
}}<br />
<br />
If you only want to enter the specification of your monitor '''without''' creating a full xorg.conf create a new config file. For example ({{ic|/etc/X11/xorg.conf.d/90-monitor.conf}}):<br />
<br />
{{bc|<br />
Section "Monitor"<br />
Identifier "<default monitor>"<br />
DisplaySize 286 179 # In millimeters<br />
EndSection<br />
}}<br />
<br />
If you do not have specifications for physical screen width and height (most specifications these days only list by diagonal size), you can use the monitor's native resolution (or aspect ratio) and diagonal length to calculate the horizontal and vertical physical dimensions. Using the Pythagorean theorem on a 13.3" diagonal length screen with a 1280x800 native resolution (or 16:10 aspect ratio):<br />
<br />
$ echo 'scale=5;sqrt(1280^2+800^2)' | bc # 1509.43698<br />
<br />
This will give the pixel diagonal length and with this value you can discover the physical horizontal and vertical lengths (and convert them to millimeters):<br />
<br />
$ echo 'scale=5;(13.3/1509)*1280*25.4' | bc # 286.43072<br />
$ echo 'scale=5;(13.3/1509)*800*25.4' | bc # 179.01920<br />
<br />
{{Note|This calculation works for monitors with square pixels; however, there is the seldom monitor that may compress aspect ratio (e.g 16:10 aspect resolution to a 16:9 monitor). If this is the case, you should measure your screen size manually.}}<br />
<br />
==== Setting DPI manually ====<br />
<br />
{{Accuracy|The following option is reported to work only with [[NVIDIA]] proprietary drivers.|Talk:Xorg#Setting_DPI_manually}}<br />
<br />
DPI can be set manually if you only plan to use one resolution ([http://pxcalc.com/ DPI calculator]):<br />
<br />
{{bc|<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
Option "DPI" "96 x 96"<br />
EndSection<br />
}}<br />
<br />
If you use an NVIDIA card, you can manually set the DPI adding the options bellow on {{ic|/etc/X11/xorg.conf.d/20-nvidia.conf}} (inside '''Device''' section):<br />
<br />
Option "UseEdidDpi" "False"<br />
Option "DPI" "96 x 96"<br />
<br />
For RandR compliant drivers, you can set it by:<br />
<br />
$ xrandr --dpi 96<br />
<br />
See [[Execute commands after X start]] to make it permanent.<br />
<br />
{{Note|While you can set any dpi you like and applications using Qt and GTK will scale accordingly, it's recommended to set it to 96, 120 (25% higher), 144 (50% higher), 168 (75% higher), 192 (100% higher) etc., to reduce scaling artifacts to GUI that use bitmaps. Reducing it below 96 dpi may not reduce size of graphical elements of GUI as typically the lowest dpi the icons are made for is 96.}}<br />
<br />
=== DPMS ===<br />
<br />
DPMS (Display Power Management Signaling) is a technology that allows power saving behaviour of monitors when the computer is not in use. This will allow you to have your monitors automatically go into standby after a predefined period of time. See: [[DPMS]]<br />
<br />
== Composite ==<br />
<br />
The Composite extension for X causes an entire sub-tree of the window hierarchy to be rendered to an off-screen buffer. Applications can then take the contents of that buffer and do whatever they like. The off-screen buffer can be automatically merged into the parent window or merged by external programs, called compositing managers. See the wikipedia article [[Wikipedia:Compositing window manager]] for more information.<br />
<br />
=== List of composite managers ===<br />
<br />
* {{App|[[Xcompmgr]]|Composite Window-effects manager for X.org.|http://cgit.freedesktop.org/xorg/app/xcompmgr/|{{Pkg|xcompmgr}}}}<br />
* {{App|[[Compiz]]|Composite manager for Aiglx and Xgl, with plugins and CCSM|http://www.compiz.org/|{{AUR|compiz-core-devel}}}}<br />
* {{App|[[Compton]]|X Compositor (a fork of xcompmgr-dana)|https://github.com/chjj/compton|{{AUR|compton}}}}<br />
* {{App|[[Cairo Compmgr|Cairo Composite Manager]]|Cairo based composite manager|http://cairo-compmgr.tuxfamily.org/|{{AUR|cairo-compmgr-git}}}}<br />
<br />
== Tips and tricks ==<br />
<br />
=== X startup tweaking (startx) ===<br />
<br />
{{Accuracy|{{ic|/usr/bin/startx}} should not be modified, ''startx'' recognises the options as command line arguments}}<br />
<br />
For X's option reference see:<br />
$ man Xserver<br />
<br />
The following options have to be appended to the variable {{ic|"defaultserverargs"}} in the {{ic|/usr/bin/startx}} file:<br />
<br />
* Enable deferred glyph loading for 16 bit fonts:<br />
-deferglyphs 16<br />
<br />
{{Note|If you start X with kdm, the startx script does not seem to be executed. X options must be appended to the variable {{ic|ServerArgsLocal}} in the {{ic|/usr/share/config/kdm/kdmrc}} file.}}<br />
<br />
=== Nested X session ===<br />
<br />
{{Expansion|mention [[Awesome#Using_Xephyr|xephyr]]}}<br />
<br />
To run a nested session of another desktop environment:<br />
$ /usr/bin/Xnest :1 -geometry 1024x768+0+0 -ac -name Windowmaker & wmaker -display :1<br />
<br />
This will launch a Window Maker session in a 1024 by 768 window within your current X session.<br />
<br />
This needs the package {{Pkg|xorg-server-xnest}} to be installed.<br />
<br />
=== Starting GUI programs remotely ===<br />
<br />
See main article: [[SSH#X11 forwarding]].<br />
<br />
=== On-demand disabling and enabling of input sources ===<br />
<br />
With the help of ''xinput'' you can temporarily disable or enable input sources. This might be useful, for example, on systems that have more than one mouse, such as the ThinkPads and you would rather use just one to avoid unwanted mouse clicks.<br />
<br />
[[pacman|Install]] the {{Pkg|xorg-xinput}} package from the [[official repositories]].<br />
<br />
Find the ID of the device you want to disable:<br />
<br />
$ xinput<br />
<br />
For example in a Lenovo ThinkPad T500, the output looks like this:<br />
<br />
{{hc|$ xinput|<nowiki><br />
⎡ Virtual core pointer id=2 [master pointer (3)]<br />
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]<br />
⎜ ↳ TPPS/2 IBM TrackPoint id=11 [slave pointer (2)]<br />
⎜ ↳ SynPS/2 Synaptics TouchPad id=10 [slave pointer (2)]<br />
⎣ Virtual core keyboard id=3 [master keyboard (2)]<br />
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]<br />
↳ Power Button id=6 [slave keyboard (3)]<br />
↳ Video Bus id=7 [slave keyboard (3)]<br />
↳ Sleep Button id=8 [slave keyboard (3)]<br />
↳ AT Translated Set 2 keyboard id=9 [slave keyboard (3)]<br />
↳ ThinkPad Extra Buttons id=12 [slave keyboard (3)]<br />
</nowiki>}}<br />
<br />
Disable the device with {{ic|xinput --disable ''device_id''}}, where ''device_id'' is the device ID you want to disable. In this example we will disable the Synaptics Touchpad, with the ID 10:<br />
<br />
$ xinput --disable 10<br />
<br />
To re-enable the device, just issue the opposite command:<br />
<br />
$ xinput --enable 10<br />
<br />
== Troubleshooting ==<br />
<br />
=== Common problems ===<br />
<br />
If Xorg will not start, the screen is completely black, the keyboard and mouse are not working, etc., first take these simple steps:<br />
*Check the log file: {{ic|cat /var/log/Xorg.0.log}}<br />
*Check specific pages in [[:Category:Input devices]] if you have issues with keyboard, mouse, touchpad etc.<br />
*Finally, search for common problems in [[ATI]], [[Intel]] and [[NVIDIA]] articles.<br />
<br />
=== CTRL right key does not work with oss keymap ===<br />
<br />
{{Accuracy|The file will be overwritten on {{Pkg|xkeyboard-config}} update; for such simple task should be used [[Xmodmap]].}}<br />
<br />
Edit as root {{ic|/usr/share/X11/xkb/symbols/fr}}, and change the line:<br />
<br />
include "level5(rctrl_switch)"<br />
<br />
to<br />
<br />
// include "level5(rctrl_switch)"<br />
<br />
Then restart X, reboot or run<br />
<br />
setxkbmap fr oss<br />
<br />
=== X clients started with "su" fail ===<br />
<br />
If you are getting "Client is not authorized to connect to server", try adding the line:<br />
<br />
session optional pam_xauth.so<br />
<br />
to {{ic|/etc/pam.d/su}}. {{ic|pam_xauth}} will then properly set environment variables and handle {{ic|xauth}} keys.<br />
<br />
=== Program requests "font '(null)'" ===<br />
<br />
* Error message: "''unable to load font `(null)'.''"<br />
Some programs only work with bitmap fonts. Two major packages with bitmap fonts are available, {{Pkg|xorg-fonts-75dpi}} and {{Pkg|xorg-fonts-100dpi}}. You do not need both; one should be enough. To find out which one would be better in your case, try this:<br />
<br />
$ xdpyinfo | grep resolution<br />
<br />
and use what is closer to you (75 or 100 instead of XX)<br />
<br />
# pacman -S xorg-fonts-XXdpi<br />
<br />
=== Frame-buffer mode problems ===<br />
<br />
If X fails to start with the following log messages,<br />
<br />
{{bc|<nowiki><br />
(WW) Falling back to old probe method for fbdev<br />
(II) Loading sub module "fbdevhw"<br />
(II) LoadModule: "fbdevhw"<br />
(II) Loading /usr/lib/xorg/modules/linux//libfbdevhw.so<br />
(II) Module fbdevhw: vendor="X.Org Foundation"<br />
compiled for 1.6.1, module version=0.0.2<br />
ABI class: X.Org Video Driver, version 5.0<br />
(II) FBDEV(1): using default device<br />
<br />
Fatal server error:<br />
Cannot run in framebuffer mode. Please specify busIDs for all framebuffer devices<br />
</nowiki>}}<br />
<br />
uninstall fbdev:<br />
<br />
# pacman -R xf86-video-fbdev<br />
<br />
=== DRI with Matrox cards stops working ===<br />
<br />
If you use a Matrox card and DRI stops working after upgrading to Xorg, try adding the line:<br />
<br />
Option "OldDmaInit" "On"<br />
<br />
to the Device section that references the video card in {{ic|xorg.conf}}.<br />
<br />
=== Recovery: disabling Xorg before GUI login ===<br />
<br />
If Xorg is set to boot up automatically and for some reason you need to prevent it from starting up before the login/display manager appears (if the system is wrongly configured and Xorg does not recognize your mouse or keyboard input, for instance), you can accomplish this task with two methods.<br />
<br />
* Change default target to rescue.target. See [[systemd#Change default target to boot into]].<br />
* If you have not only a faulty system that makes Xorg unusable, but you have also set the GRUB menu wait time to zero, or cannot otherwise use GRUB to prevent Xorg from booting, you can use the Arch Linux live CD. Boot up the live CD and log in as root. You need a mount point, such as {{ic|/mnt}}, and you need to know the name of the partition you want to mount.<br />
<br />
You can use the command,<br />
<br />
# fdisk -l<br />
<br />
to see your partitions. Usually, the one you want will be resembling {{ic|/dev/sda1}}. Then, to mount this to {{ic|/mnt}}, use<br />
<br />
# mount /dev/sda1 /mnt<br />
<br />
Then your filesystem will show up under {{ic|/mnt}}. From here you can delete the {{ic|gdm}} daemon to prevent Xorg from booting up normally or make any other necessary changes to the configuration.<br />
<br />
=== X failed to start: Keyboard initialization failed ===<br />
<br />
If your hard disk is full, startx will fail. {{ic|/var/log/Xorg.0.log}} will end with:<br />
<br />
{{bc|<br />
(EE) Error compiling keymap (server-0)<br />
(EE) XKB: Could not compile keymap<br />
(EE) XKB: Failed to load keymap. Loading default keymap instead.<br />
(EE) Error compiling keymap (server-0)<br />
(EE) XKB: Could not compile keymap<br />
XKB: Failed to compile keymap<br />
Keyboard initialization failed. This could be a missing or incorrect setup of xkeyboard-config.<br />
Fatal server error:<br />
Failed to activate core devices.<br />
Please consult the The X.Org Foundation support at http://wiki.x.org<br />
for help.<br />
Please also check the log file at "/var/log/Xorg.0.log" for additional information.<br />
(II) AIGLX: Suspending AIGLX clients for VT switch<br />
}}<br />
<br />
Make some free space on your root partition and X will start.<br />
<br />
=== Black screen, No protocol specified.., Resource temporarily unavailable for all or some users ===<br />
<br />
X creates configuration and temporary files in current user's home directory. Make sure there is free disk space available on the partition your home directory resides in. Unfortunately, X server does not provide any more obvious information about lack of disk space in this case.</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=User_talk:Lordheavy&diff=274262User talk:Lordheavy2013-09-03T16:57:50Z<p>Lordheavy: /* Edit summary */</p>
<hr />
<div>== Edit summary ==<br />
<br />
Please use [[Help:Style#Edit_summary|edit summary]] for '''all''' your future edits, especially when removing content.<sup>[https://wiki.archlinux.org/index.php?title=ATI&diff=274211&oldid=273206][https://wiki.archlinux.org/index.php?title=ATI&diff=274240&oldid=274211][https://wiki.archlinux.org/index.php?title=ATI&diff=274243&oldid=274242]</sup> Though I agree with those edits, proper explanation '''why''' you did it makes it much easier for others to understand it. Thanks. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 16:03, 3 September 2013 (UTC)<br />
<br />
Done</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=ATI&diff=274260ATI2013-09-03T16:44:36Z<p>Lordheavy: Remove outdated information about UMS mode, not supported upstream, prepare for new powersaving mode, introduced with kernel 3.11.0</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[cs:ATI]]<br />
[[de:ATI]]<br />
[[es:ATI]]<br />
[[fr:ATI]]<br />
[[it:ATI]]<br />
[[ja:ATI]]<br />
[[pl:ATI]]<br />
[[ru:ATI]]<br />
[[tr:ATI]]<br />
[[zh-CN:ATI]]<br />
{{Article summary start}}<br />
{{Article summary text|An overview of the open source ATI/AMD video card driver.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|AMD Catalyst}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary end}}<br />
<br />
Owners of '''ATI/AMD''' video cards have a choice between AMD's [[AMD Catalyst|proprietary driver]] ({{AUR|catalyst}}) and the open source driver ({{Pkg|xf86-video-ati}}). This article covers the open source driver.<br />
<br />
The open source driver is currently not ''on par'' with the proprietary driver in terms of 3D performance on newer cards or reliable TV-out support. It does, however, offer better dual-head support, excellent 2D acceleration, and provide sufficient 3D acceleration for OpenGL-accelerated [[window manager]]s, such as [[Compiz]] or KWin.<br />
<br />
If unsure, try the open source driver first, it will suit most needs and is generally less problematic (see the [http://www.x.org/wiki/RadeonFeature feature matrix] for details).<br />
<br />
== Naming conventions ==<br />
<br />
ATI's [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).<br />
<br />
For a table of core and product series, see [[Wikipedia:Comparison of AMD graphics processing units]].<br />
<br />
== Overview ==<br />
<br />
The {{ic|xf86-video-ati}} (radeon) driver:<br />
*Works with Radeon chipsets up to HD 6xxx and 7xxxM (latest Northern Islands chipsets).<br />
**Radeons in the HD 77xx (Southern Islands) series are partially supported. Check the [http://www.x.org/wiki/RadeonFeature feature matrix] for unsupported features.<br />
**Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D acceleration are provided.<br />
**Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides.<br />
*Supports DRI1, RandR 1.2/1.3, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2 (with the latest Linux kernel, libdrm and Mesa versions).<br />
<br />
Generally, '''xf86-video-ati''' should be your first choice, no matter which ATI card you own. In case you need to use a driver for newer ATI cards, you should consider the proprietary '''catalyst''' driver.<br />
<br />
{{Note|'''xf86-video-ati''' is specified as '''''radeon''''' for the kernel and in {{ic|xorg.conf}}. }}<br />
<br />
== Installation ==<br />
<br />
If Catalyst/{{ic|fglrx}} has been previously installed, see [[ATI Catalyst#Uninstallation|here]].<br />
<br />
=== Installing xf86-video-ati ===<br />
<br />
[[pacman|Install]] {{Pkg|xf86-video-ati}}, available in the [[official repositories]]. <br />
<br />
The -git version of the driver and other needed packages (linux-git, etc) can be found in the [https://bbs.archlinux.org/viewtopic.php?id=79509&p=1 radeon repository] or the [[AUR]].<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Kernel mode-setting (KMS) ==<br />
<br />
{{Tip|If you have problems with the resolution, check [[Kernel_Mode_Setting#Forcing_modes_and_EDID|this page]].}}<br />
<br />
[[KMS]] enables native resolution in the framebuffer and allows for instant console (tty) switching. KMS also enables newer technologies (such as DRI2) which will help reduce artifacts and increase 3D performance, even kernel space power-saving.<br />
<br />
KMS for ATI video cards requires the [[Xorg]] free video user space driver {{Pkg|xf86-video-ati}}.<br />
<br />
{{Note| KMS is '''enabled''' by default for autodetected ATI/AMD cards. This section remains for configurations outside stock. }}<br />
<br />
==== Early start ====<br />
<br />
''These two methods will start KMS as early as possible in the [[boot process]].''<br />
<br />
1. Remove all conflicting UMS drivers from kernel command line:<br />
* Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. <br />
* AGP speed can be set with {{ic|<nowiki>radeon.agpmode=x</nowiki>}} kernel option, where x is 1, 2, 4, 8 (AGP speed) or -1 (PCI mode).<br />
<br />
2. Otherwise, when the [[initramfs]] is loaded:<br />
* If you have a special kernel outside of stock {{ic|-ARCH}} (e.g. linux-zen), remember to use a separate ''mkinitcpio'' configuration file (e.g. {{ic|/etc/mkinitcpio-zen.conf}}) and not {{ic|/etc/mkinitcpio.conf}}.<br />
* Remove any framebuffer related modules from your ''mkinitcpio'' file.<br />
* Add {{ic|radeon}} to {{ic|MODULES}} array in your ''mkinitcpio'' file. For AGP support, it is necessary to add {{ic|intel_agp}} (or {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, {{ic|amd64_agp}} etc.) before the {{ic|radeon}} module.<br />
* Re-generate your [[mkinitcpio#Image_creation_and_activation | initramfs]].<br />
<br />
Finally, '''Reboot''' the system.<br />
<br />
==== Late start ====<br />
<br />
''With this choice, KMS will be enabled when modules are loaded during the [[boot process]].''<br />
<br />
If you have a special kernel (e.g. linux-zen), remember to use appropriate mkinitcpio configuration file, e.g. {{ic|/etc/mkinitcpio-zen.conf}}. These instructions are written for the default kernel ({{Pkg|linux}}).<br />
{{Note| For AGP support, it may be necessary to add {{ic|intel_agp}}, {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, or {{ic|amd64_agp}}) to appropriate .conf files in {{ic|/etc/modules-load.d}}.}}<br />
<br />
# Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. Remove any framebuffer related modules from {{ic|/etc/mkinitcpio.conf}}. {{ic|<nowiki>video=</nowiki>}} can now be used in conjunction with KMS.<br />
# '''Reboot''' the system.<br />
<br />
== Performance tuning ==<br />
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.<br />
<br />
'''ColorTiling''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU<br />
<br />
Option "ColorTiling" "on"<br />
<br />
'''Acceleration architecture'''; this will work only on '''newer''' cards. If you enable this and then cannot get back into X, remove it. <br />
<br />
Option "AccelMethod" "EXA"<br />
<br />
'''Page Flip''' is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA.<br />
<br />
Option "EnablePageFlip" "on"<br />
<br />
'''EXAVSync ''' option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips.<br />
Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled.<br />
<br />
Option "EXAVSync" "yes"<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default<br />
Option "EnablePageFlip" "on" #supported on all R/RV/RS4xx and older hardware, and set on by default<br />
Option "AccelMethod" "EXA" #valid options are XAA, EXA and Glamor. EXA is the default<br />
Option "RenderAccel" "on" #enabled by default on all radeon hardware<br />
Option "ColorTiling" "on" #enabled by default on RV300 and later radeon cards<br />
Option "EXAVSync" "off" #default is off, otherwise on. Only works '''if EXA activated'''<br />
Option "EXAPixmaps" "on" #when on icreases 2D performance, but may also cause artifacts on some old cards. Only works '''if EXA activated'''<br />
Option "AccelDFS" "on" #default is off, read the radeon manpage for more information<br />
EndSection<br />
}}<br />
<br />
Defining the '''gartsize''', if not autodetected, can be done by adding {{ic|1=radeon.gartsize=32}} into [[kernel parameters]]. Size is in megabytes and 32 is for RV280 cards.<br />
<br />
Alternatively, do it with a modprobe option in {{ic|/etc/modprobe.d/radeon.conf}}:<br />
<br />
options radeon gartsize=32<br />
<br />
'''For further information and other options, read the radeon manpage and the module's info page''': {{ic|man radeon}}, {{ic|modinfo radeon}}.<br />
<br />
A fine tool to try is {{Pkg|driconf}}. It will allow you to modify several settings, like vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).<br />
<br />
=== Deactivating PCI-E 2.0 ===<br />
<br />
Since kernel 3.6, PCI-E v2.0 in '''radeon''' is turned on by default.<br />
<br />
It can be unstable with some motherboards, so it can be deactivated by adding {{ic|1=radeon.pcie_gen2=0}} on the [[Kernel parameters|kernel command line]].<br />
<br />
See [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article] for more information.<br />
<br />
=== Glamor ===<br />
<br />
Glamor is a 2D acceleration method implemented through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.<br />
<br />
Since xf86-video-ati driver-1:7.2.0-1, glamor is automaticaly enabled with radeonsi drivers (Southern Island and superior GFX cards); with other graphic cards you can use it by adding the AccelMethod glamor to your xorg.conf config file in the Device section:<br />
<br />
Option "AccelMethod" "glamor"<br />
<br />
However, you need to add the following section before:<br />
{{bc|<br />
Section "Module"<br />
Load "dri2"<br />
Load "glamoregl" <br />
EndSection<br />
}}<br />
<br />
== Hybrid graphics/AMD Dynamic Switchable Graphics ==<br />
<br />
It is the technology used on recent laptops equiped with two GPUs, one power-efficent (generally Intel integrated card) and one more powerful and more power-hungry (generally Radeon or Nvidia). There are three ways to get it work:<br />
<br />
* If you do not need to run any GPU-hungry application, you can plainly disable the discrete card: {{ic|echo OFF > /sys/kernel/debug/vgaswitcheroo/switch}}. You can do more things with vgaswitcheroo (see [https://help.ubuntu.com/community/HybridGraphics#Using_vga_switcheroo Ubuntu wiki] for more information) but ultimately at best one card is bound to one graphic session, you cannot use both on one graphic session.<br />
* You can use [[PRIME]]. It is the proper way to use hybrid graphics on Linux but still requires a bit of manual intervention from the user.<br />
* You can also use [[bumblebee]] with radeon, there is a {{AUR|bumblebee-amd-git}} package on [[AUR]].<br />
<br />
==Powersaving==<br />
<br />
=== With kernel prior to 3.11.0 ===<br />
<br />
With the radeon driver, power saving is disabled by default but the kernel provides a method to enable it using sysfs.<br />
<br />
You can choose between two different methods. It's hard to say which is the best, you have to try it yourself.<br />
<br />
==== Dynamic frequency switching ====<br />
<br />
This method dynamically changes the frequency depending on GPU load, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.<br />
<br />
It can be activated by simply running the following command:<br />
<br />
# echo dynpm > /sys/class/drm/card0/device/power_method<br />
<br />
==== Profile-based frequency switching ====<br />
<br />
This method will allow you to select one of the five profiles (described below). Different profiles, for the most part, end up changing the frequency/voltage of the GPU. This method is not as aggressive, but is more stable and flicker free and works with multiple heads active.<br />
<br />
To activate the method, run the following command:<br />
<br />
# echo profile > /sys/class/drm/card0/device/power_method<br />
<br />
Select one of the available profiles:<br />
* {{ic|default}} uses the default clocks and does not change the power state. This is the default behaviour.<br />
* {{ic|auto}} selects between {{ic|mid}} and {{ic|high}} power states based on the whether the system is on battery power or not. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|low}} forces the gpu to be in the {{ic|low}} power state all the time. Note that {{ic|low}} can cause display problems on some laptops, which is why {{ic|auto}} only uses {{ic|low}} when monitors are off.<br />
* {{ic|mid}} forces the gpu to be in the {{ic|mid}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|high}} forces the gpu to be in the {{ic|high}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
<br />
As an example, we will activate the {{ic|low}} profile (replace {{ic|low}} with any of the aforementioned profiles as necessary):<br />
<br />
# echo low > /sys/class/drm/card0/device/power_profile<br />
<br />
==== Persistent configuration ====<br />
<br />
The activation described above is not persistent, it will not last when the computer is rebooted. To make it persistent, you can use [[systemd#Temporary files|systemd-tmpfiles]] (example for [[#Dynamic frequency switching]]):<br />
<br />
{{hc|/etc/tmpfiles.d/radeon-pm.conf|<nowiki><br />
w /sys/class/drm/card0/device/power_method - - - - dynpm<br />
</nowiki>}}<br />
<br />
Alternatively, you may use this [[udev]] rule instead (example for [[#Profile-based frequency switching]]):<br />
<br />
{{hc|/etc/udev/rules.d/30-radeon-pm.rules|<nowiki><br />
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low"<br />
</nowiki>}}<br />
<br />
{{Note|If the above rule is failing, try removing the {{ic|dri/}} prefix.}}<br />
<br />
==== Graphical tools ====<br />
<br />
* {{App|Radeon-tray|A small program to control the power profiles of your Radeon card via systray icon. It is written in PyQt4 and is suitable for non-Gnome users.|https://github.com/StuntsPT/Radeon-tray|}}<br />
* {{App|power-play-switcher|A gui for changing powerplay setting of the open source driver for ati radeon video cards.|https://code.google.com/p/power-play-switcher/|{{AUR|power-play-switcher}}}}<br />
* {{App|Gnome-shell-extension-Radeon-Power-Profile-Manager|A small extension for Gnome-shell that will allow you to change the power profile of your radeon card when using the open source drivers.|https://github.com/StuntsPT/shell-extension-radeon-power-profile-manager|{{AUR|gnome-shell-extension-radeon-ppm}} {{AUR|gnome-shell-extension-radeon-power-profile-manager-git}}}}<br />
<br />
==== Other notes ====<br />
<br />
Power management is supported on all asics (r1xx-evergreen) that include the appropriate power state tables in the vbios; not all boards do (especially older desktop cards).<br />
<br />
To view the speed that the GPU is running at, perform the following command and you will get something like this output:<br />
<br />
{{hc|$ cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki><br />
state: PM_STATE_ENABLED<br />
default engine clock: 300000 kHz<br />
current engine clock: 300720 kHz<br />
default memory clock: 200000 kHz<br />
</nowiki>}}<br />
<br />
If {{ic|/sys/kernel/debug}} is empty, run this command:<br />
<br />
# mount -t debugfs none /sys/kernel/debug<br />
<br />
To permanently mount, add the following line to {{ic|/etc/fstab}}:<br />
<br />
debugfs /sys/kernel/debug debugfs defaults 0 0<br />
<br />
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.<br />
<br />
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via [[lm_sensors]] tools or via sysfs in {{ic|/sys/class/hwmon}}.<br />
<br />
== TV out ==<br />
<br />
{{out of date}}<br />
Since August 2007, there is TV-out support for all Radeons with integrated TV-out.<br />
<br />
It is somewhat limited for now, it does not always autodetect the output correctly and only NTSC mode works.<br />
<br />
First, check that you have an S-video output: {{ic|xrandr}} should give you something like<br />
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200<br />
...<br />
S-video disconnected (normal left inverted right x axis y axis)<br />
<br />
Setting tv standard to use:<br />
xrandr --output S-video --set "tv standard" ntsc<br />
<br />
Adding a mode for it (currently it supports only 800x600):<br />
xrandr --addmode S-video 800x600<br />
<br />
I will go for a clone mode:<br />
xrandr --output S-video --same-as VGA-0<br />
<br />
So far so good. Now let us try to see what we have:<br />
xrandr --output S-video --mode 800x600<br />
<br />
At this point you should see a 800x600 version of your desktop on your TV.<br />
<br />
To disable the output, do<br />
xrandr --output S-video --off<br />
<br />
Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.<br />
<br />
To send the output to the TV, I do<br />
xvattr -a XV_CRTC -v 1<br />
<br />
{{Note| you need to install {{AUR|xvattr}} to execute this command.}}<br />
<br />
To switch back to my monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.<br />
<br />
Please see [http://www.x.org/wiki/radeonTV Enabling TV-Out Statically] for how to enable TV-out in your xorg configuration file.<br />
<br />
=== Force TV-out in KMS ===<br />
<br />
Kernel can recognize {{ic|1=video=}} parameter in following form (see [[KMS]] for more details):<br />
<br />
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]<br />
<br />
For example:<br />
<br />
video=DVI-I-1:1280x1024-24@60e<br />
<br />
Parameters with whitespaces must be quoted:<br />
<br />
"video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
Current mkinitcpio implementation also requires {{ic|#}} in front. For example:<br />
<br />
root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
* Grub can pass such command line as is.<br />
* Lilo needs backslashes for doublequotes (append {{ic|1=# \"video=9-pin DIN-1:1024x768-24@60e\"}})<br />
* Grub2: TODO<br />
<br />
You can get list of your video outputs with following command:<br />
<br />
{{bc|<nowiki>$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-</nowiki>}}<br />
<br />
== HDMI audio ==<br />
<br />
HDMI audio is supported by the {{Pkg|xf86-video-ati}} video driver. By default, the necessary kernel module is disabled in kernel versions &gt;&#61;3.0. However, if your Radeon card is listed in the [http://www.x.org/wiki/RadeonFeature Radeon Feature Matrix], you can add {{ic|radeon.audio&#61;1}} to your [[Kernel parameters]]. For example:<br />
<br />
{{hc|/boot/syslinux/syslinux.cfg|<br />
LABEL arch<br />
MENU LABEL Arch Linux<br />
LINUX ../vmlinuz-linux<br />
APPEND root&#61;/dev/sda1 ro radeon.audio&#61;1<br />
INITRD ../initramfs-linux.img<br />
}}<br />
<br />
If HDMI audio doesn't simply work after installing the driver, test your setup with the procedure at [[Advanced_Linux_Sound_Architecture#HDMI_Output_Does_Not_Work]].<br />
<br />
{{note|As of this writing (2013-05-20), drivers for the [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names Southern Islands] cards don't support HDMI Audio.}}<br />
<br />
* The {{ic|radeon.audio}} kernel module only works if [[#Kernel_mode-setting_(KMS)]] is enabled. By default, '''xf86-video-ati''' enables KMS.<br />
* If the sound is distorted try [[PulseAudio#Glitches, skips or crackling|setting {{ic|1=tsched=0}}]] and make sure {{ic|rtkit}} daemon is running.<br />
<br />
== Dual Head setup ==<br />
<br />
=== Independent X screens ===<br />
<br />
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "radeon"<br />
Option "ZaphodHeads" "VGA-0"<br />
VendorName "ATI"<br />
BusID "PCI:1:0:0"<br />
Screen 0<br />
EndSection<br />
<br />
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads" "VGA-0"}}.<br />
<br />
Moreover, this option allows you to easily select the screen you want to mark as primary.<br />
<br />
== Enabling video acceleration ==<br />
<br />
Latest {{Pkg|mesa}} package added support for MPEG1/2 decoding to free drivers, exported via {{Pkg|libvdpau}} and are automaticaly detected.<br />
<br />
You can force used driver by assigning environment variable {{Ic|LIBVA_DRIVER_NAME}} to {{Ic|vdpau}} and {{Ic|VDPAU_DRIVER}} to the name of driver core, e.g.:<br />
<br />
{{hc|1=~/.bashrc|2=<br />
export LIBVA_DRIVER_NAME=vdpau<br />
export VDPAU_DRIVER=r600<br />
}}<br />
<br />
for r600-based cards (all available VDPAU drivers are in {{Ic|/usr/lib/vdpau/}}).<br />
<br />
== Turn vsync off ==<br />
<br />
The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create {{ic|~/.drirc}} (or edit it if it already exists) and add the following section:<br />
{{hc|~/.drirc|<nowiki><br />
<driconf><br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0" /><br />
</application><br />
</device><br />
<!-- Other devices ... --><br />
</driconf><br />
</nowiki>}}<br />
It is effectively '''dri2''', not your video card code (like r600).<br />
<br />
== Troubleshooting ==<br />
<br />
=== Artifacts upon logging in ===<br />
<br />
If encountering artifacts, first try starting X without {{ic|/etc/X11/xorg.conf}}. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured {{ic|xorg.conf}} files are known to cause trouble.<br />
<br />
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.<br />
<br />
Artifacts may also be related to [[kernel mode setting]]. Consider [[#Disable KMS|disabling KMS]].<br />
<br />
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EXAPixmaps" "off"<br />
EndSection<br />
<br />
Further tweaking could be done by disabling {{ic|AccelDFS}}:<br />
<br />
Option "AccelDFS" "off"<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
e.g. When EDID fails on a DisplayPort connection. <br />
<br />
This issue is covered on the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].<br />
<br />
=== Slow performance with open-source drivers ===<br />
<br />
{{Note|Make sure you are member of '''video''' group.}}<br />
<br />
Some cards can be installed by default trying to use [[ATI#AMD/Ati cards and kernel mode-setting (KMS)|KMS]]. You can check whether this is your case running:<br />
dmesg | egrep "drm|radeon"<br />
<br />
This command might show something like this, meaning it is trying to default to KMS:<br />
[drm] radeon default to kernel modesetting.<br />
...<br />
[drm:radeon_driver_load_kms] *ERROR* Failed to initialize radeon, disabling IOCTL<br />
<br />
If your card is not supported by KMS (anything older than r100), then you can [[ATI#Disable KMS|disable KMS]]. This should fix the problem.<br />
<br />
=== AGP is disabled (with KMS) ===<br />
<br />
If you experience poor performance and dmesg shows something like this<br />
[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19<br />
then check if the agp driver for your motherboard (e.g., {{ic|via_agp}}, {{ic|intel_agp}} etc.) is loaded before the {{ic|radeon}} module, see [[ATI#Enabling KMS|Enabling KMS]].<br />
<br />
=== TV showing a black border around the screen ===<br />
<br />
When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see [[Wikipedia:Overscan]]) can be turned off using xrandr:<br />
xrandr --output HDMI-0 --set underscan off<br />
<br />
=== Black screen with mouse cursor on resume from suspend in X ===<br />
<br />
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance_tuning|performance tuning]] for more information.<br />
<br />
=== No desktop effects in KDE4 with X1300 and Radeon driver ===<br />
<br />
A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}. <br />
<br />
Add:<br />
DisableChecks=true<br />
<br />
To the [Compositing] section. Ensure that compositing is enabled with:<br />
Enabled=true<br />
<br />
=== Black screen and no console, but X works in KMS ===<br />
<br />
This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:<br />
fbcon=map:1<br />
This will tell the fbcon to map itself to the {{ic|/dev/fb1}} framebuffer dev and not the {{ic|/dev/fb0}}, that in our case exist on the wrong graphics card.<br />
<br />
=== Some 3D applications show textures as all black or crash ===<br />
<br />
You might need texture compression support, which is not included with the open source driver. Install {{Pkg|libtxc_dxtn}} (and {{Pkg|lib32-libtxc_dxtn}} for multilib systems).<br />
<br />
=== 2D performance (e.g. scrolling) is slow ===<br />
<br />
If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.<br />
<br />
Bellow is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "MigrationHeuristic" "greedy"<br />
EndSection<br />
}}<br />
<br />
=== ATI X1600 (RV530 series) 3D application show black windows ===<br />
<br />
There are three possible solutions:<br />
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].<br />
* If this doesn't work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.<br />
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{ic|driconf}} via pacman and set that option in {{ic|~/.drirc}}.<br />
<br />
=== Vertical colored stripes on chipset RS482 (Xpress 200M Series) with/out KMS ===<br />
<br />
The bug :With the graphical chipset Xpress 200M Series (Radeon Xpress 1150), booting with KMS gives you sometimes, as soon as Xorg boots, a screen with many vertical colored stripes. You cannot {{ic|Alt+Sys+K}} or do anything. Take a look {{Bug|21918}} for more information,<br />
How to fixed ? : disable dri (needn't to disable kms)<br />
Side effert: if i disable "dri" and use no kernel options (no "nomodeset") i see the vertical stripes at boot, only for 5 seconds, before having kdm displayed. Then, i have the same results.<br />
If I start for example KDE Desktop Effects, i will see again the vertical stripes for 5 seconds...and return to kdm ! :)</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=ATI&diff=274257ATI2013-09-03T16:37:02Z<p>Lordheavy: These option aren't available anymore with radeon xorg module (man radeon), so remove them</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[cs:ATI]]<br />
[[de:ATI]]<br />
[[es:ATI]]<br />
[[fr:ATI]]<br />
[[it:ATI]]<br />
[[ja:ATI]]<br />
[[pl:ATI]]<br />
[[ru:ATI]]<br />
[[tr:ATI]]<br />
[[zh-CN:ATI]]<br />
{{Article summary start}}<br />
{{Article summary text|An overview of the open source ATI/AMD video card driver.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|AMD Catalyst}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary end}}<br />
<br />
Owners of '''ATI/AMD''' video cards have a choice between AMD's [[AMD Catalyst|proprietary driver]] ({{AUR|catalyst}}) and the open source driver ({{Pkg|xf86-video-ati}}). This article covers the open source driver.<br />
<br />
The open source driver is currently not ''on par'' with the proprietary driver in terms of 3D performance on newer cards or reliable TV-out support. It does, however, offer better dual-head support, excellent 2D acceleration, and provide sufficient 3D acceleration for OpenGL-accelerated [[window manager]]s, such as [[Compiz]] or KWin.<br />
<br />
If unsure, try the open source driver first, it will suit most needs and is generally less problematic (see the [http://www.x.org/wiki/RadeonFeature feature matrix] for details).<br />
<br />
== Naming conventions ==<br />
<br />
ATI's [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).<br />
<br />
For a table of core and product series, see [[Wikipedia:Comparison of AMD graphics processing units]].<br />
<br />
== Overview ==<br />
<br />
The {{ic|xf86-video-ati}} (radeon) driver:<br />
*Works with Radeon chipsets up to HD 6xxx and 7xxxM (latest Northern Islands chipsets).<br />
**Radeons in the HD 77xx (Southern Islands) series are partially supported. Check the [http://www.x.org/wiki/RadeonFeature feature matrix] for unsupported features.<br />
**Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D acceleration are provided.<br />
**Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides.<br />
*Supports DRI1, RandR 1.2/1.3, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2 (with the latest Linux kernel, libdrm and Mesa versions).<br />
<br />
Generally, '''xf86-video-ati''' should be your first choice, no matter which ATI card you own. In case you need to use a driver for newer ATI cards, you should consider the proprietary '''catalyst''' driver.<br />
<br />
{{Note|'''xf86-video-ati''' is specified as '''''radeon''''' for the kernel and in {{ic|xorg.conf}}. }}<br />
<br />
== Installation ==<br />
<br />
If Catalyst/{{ic|fglrx}} has been previously installed, see [[ATI Catalyst#Uninstallation|here]].<br />
<br />
=== Installing xf86-video-ati ===<br />
<br />
[[pacman|Install]] {{Pkg|xf86-video-ati}}, available in the [[official repositories]]. <br />
<br />
The -git version of the driver and other needed packages (linux-git, etc) can be found in the [https://bbs.archlinux.org/viewtopic.php?id=79509&p=1 radeon repository] or the [[AUR]].<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Kernel mode-setting (KMS) ==<br />
<br />
{{Tip|If you have problems with the resolution, check [[Kernel_Mode_Setting#Forcing_modes_and_EDID|this page]].}}<br />
<br />
[[KMS]] enables native resolution in the framebuffer and allows for instant console (tty) switching. KMS also enables newer technologies (such as DRI2) which will help reduce artifacts and increase 3D performance, even kernel space power-saving.<br />
<br />
KMS for ATI video cards requires the [[Xorg]] free video user space driver {{Pkg|xf86-video-ati}} version 6.12.4 or later.<br />
<br />
=== Enabling KMS ===<br />
<br />
{{Note| Since Linux kernel v.2.6.33, KMS is '''enabled''' by default for autodetected ATI/AMD cards. This section remains for configurations outside stock. }}<br />
<br />
==== Early start ====<br />
<br />
''These two methods will start KMS as early as possible in the [[boot process]].''<br />
<br />
1. The earliest point is to append the kernel line in your bootloader with {{ic|1= radeon.modeset=1}}. See your bootloader's page for info on how to do this.<br />
* Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. <br />
* AGP speed can be set with {{ic|<nowiki>radeon.agpmode=x</nowiki>}} kernel option, where x is 1, 2, 4, 8 (AGP speed) or -1 (PCI mode).<br />
<br />
2. Otherwise, when the [[initramfs]] is loaded:<br />
* If you have a special kernel outside of stock {{ic|-ARCH}} (e.g. linux-zen), remember to use a separate ''mkinitcpio'' configuration file (e.g. {{ic|/etc/mkinitcpio-zen.conf}}) and not {{ic|/etc/mkinitcpio.conf}}.<br />
* Remove any framebuffer related modules from your ''mkinitcpio'' file.<br />
* Add {{ic|radeon}} to {{ic|MODULES}} array in your ''mkinitcpio'' file. For AGP support, it is necessary to add {{ic|intel_agp}} (or {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, {{ic|amd64_agp}} etc.) before the {{ic|radeon}} module.<br />
* Re-generate your [[mkinitcpio#Image_creation_and_activation | initramfs]].<br />
<br />
Finally, '''Reboot''' the system.<br />
<br />
==== Late start ====<br />
<br />
''With this choice, KMS will be enabled when modules are loaded during the [[boot process]].''<br />
<br />
If you have a special kernel (e.g. linux-zen), remember to use appropriate mkinitcpio configuration file, e.g. {{ic|/etc/mkinitcpio-zen.conf}}. These instructions are written for the default kernel ({{Pkg|linux}}).<br />
{{Note| For AGP support, it may be necessary to add {{ic|intel_agp}}, {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, or {{ic|amd64_agp}}) to appropriate .conf files in {{ic|/etc/modules-load.d}}.}}<br />
<br />
# Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. Remove any framebuffer related modules from {{ic|/etc/mkinitcpio.conf}}. {{ic|<nowiki>video=</nowiki>}} can now be used in conjunction with KMS.<br />
# Add {{ic|<nowiki>options radeon modeset=1</nowiki>}} to {{ic|/etc/modprobe.d/modprobe.conf}}. <br />
# '''Reboot''' the system.<br />
<br />
=== Troubleshooting KMS ===<br />
<br />
==== Disable KMS ====<br />
<br />
As of Linux 3.9, the {{ic|radeon}} driver '''requires''' kernel mode-setting (the old user mode-setting can still be enabled as a kernel compile option).<br />
<br />
If you have {{ic|<nowiki>radeon.modeset=0</nowiki>}} (or {{ic|nomodeset}}) in the kernel options line in the bootloader, remove it. If you have {{ic|<nowiki>options radeon modeset=0</nowiki>}} anywhere in {{ic|/etc/modprobe.d}}, remove it.<br />
<br />
==== Renaming {{ic|xorg.conf}} ====<br />
<br />
Renaming {{ic|/etc/X11/xorg.conf}}, which may include options that conflict with KMS, will force Xorg to autodetect hardware with sane defaults. After renaming, '''restart''' Xorg.<br />
<br />
== Performance tuning ==<br />
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.<br />
<br />
'''ColorTiling''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU<br />
<br />
Option "ColorTiling" "on"<br />
<br />
'''Acceleration architecture'''; this will work only on '''newer''' cards. If you enable this and then cannot get back into X, remove it. <br />
<br />
Option "AccelMethod" "EXA"<br />
<br />
'''Page Flip''' is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA.<br />
<br />
Option "EnablePageFlip" "on"<br />
<br />
'''EXAVSync ''' option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips.<br />
Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled.<br />
<br />
Option "EXAVSync" "yes"<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default<br />
Option "EnablePageFlip" "on" #supported on all R/RV/RS4xx and older hardware, and set on by default<br />
Option "AccelMethod" "EXA" #valid options are XAA, EXA and Glamor. EXA is the default<br />
Option "RenderAccel" "on" #enabled by default on all radeon hardware<br />
Option "ColorTiling" "on" #enabled by default on RV300 and later radeon cards<br />
Option "EXAVSync" "off" #default is off, otherwise on. Only works '''if EXA activated'''<br />
Option "EXAPixmaps" "on" #when on icreases 2D performance, but may also cause artifacts on some old cards. Only works '''if EXA activated'''<br />
Option "AccelDFS" "on" #default is off, read the radeon manpage for more information<br />
EndSection<br />
}}<br />
<br />
Defining the '''gartsize''', if not autodetected, can be done by adding {{ic|1=radeon.gartsize=32}} into [[kernel parameters]]. Size is in megabytes and 32 is for RV280 cards.<br />
<br />
Alternatively, do it with a modprobe option in {{ic|/etc/modprobe.d/radeon.conf}}:<br />
<br />
options radeon gartsize=32<br />
<br />
'''For further information and other options, read the radeon manpage and the module's info page''': {{ic|man radeon}}, {{ic|modinfo radeon}}.<br />
<br />
A fine tool to try is {{Pkg|driconf}}. It will allow you to modify several settings, like vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).<br />
<br />
=== Deactivating PCI-E 2.0 ===<br />
<br />
Since kernel 3.6, PCI-E v2.0 in '''radeon''' is turned on by default.<br />
<br />
It can be unstable with some motherboards, so it can be deactivated by adding {{ic|1=radeon.pcie_gen2=0}} on the [[Kernel parameters|kernel command line]].<br />
<br />
See [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article] for more information.<br />
<br />
=== Glamor ===<br />
<br />
Glamor is a 2D acceleration method implemented through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.<br />
<br />
Since xf86-video-ati driver-1:7.2.0-1, glamor is automaticaly enabled with radeonsi drivers (Southern Island and superior GFX cards); with other graphic cards you can use it by adding the AccelMethod glamor to your xorg.conf config file in the Device section:<br />
<br />
Option "AccelMethod" "glamor"<br />
<br />
However, you need to add the following section before:<br />
{{bc|<br />
Section "Module"<br />
Load "dri2"<br />
Load "glamoregl" <br />
EndSection<br />
}}<br />
<br />
== Hybrid graphics/AMD Dynamic Switchable Graphics ==<br />
<br />
It is the technology used on recent laptops equiped with two GPUs, one power-efficent (generally Intel integrated card) and one more powerful and more power-hungry (generally Radeon or Nvidia). There are three ways to get it work:<br />
<br />
* If you do not need to run any GPU-hungry application, you can plainly disable the discrete card: {{ic|echo OFF > /sys/kernel/debug/vgaswitcheroo/switch}}. You can do more things with vgaswitcheroo (see [https://help.ubuntu.com/community/HybridGraphics#Using_vga_switcheroo Ubuntu wiki] for more information) but ultimately at best one card is bound to one graphic session, you cannot use both on one graphic session.<br />
* You can use [[PRIME]]. It is the proper way to use hybrid graphics on Linux but still requires a bit of manual intervention from the user.<br />
* You can also use [[bumblebee]] with radeon, there is a {{AUR|bumblebee-amd-git}} package on [[AUR]].<br />
<br />
==Powersaving==<br />
<br />
The powersaving part is totally different with and without KMS.<br />
<br />
=== With KMS enabled ===<br />
<br />
{{Note|Power saving through KMS is still a work in progress, some chips may have problems with it.}}<br />
<br />
With the radeon driver, power saving is disabled by default but the kernel provides a method to enable it using sysfs.<br />
<br />
You can choose between two different methods. It's hard to say which is the best, you have to try it yourself.<br />
<br />
==== Dynamic frequency switching ====<br />
<br />
This method dynamically changes the frequency depending on GPU load, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.<br />
<br />
It can be activated by simply running the following command:<br />
<br />
# echo dynpm > /sys/class/drm/card0/device/power_method<br />
<br />
==== Profile-based frequency switching ====<br />
<br />
This method will allow you to select one of the five profiles (described below). Different profiles, for the most part, end up changing the frequency/voltage of the GPU. This method is not as aggressive, but is more stable and flicker free and works with multiple heads active.<br />
<br />
To activate the method, run the following command:<br />
<br />
# echo profile > /sys/class/drm/card0/device/power_method<br />
<br />
Select one of the available profiles:<br />
* {{ic|default}} uses the default clocks and does not change the power state. This is the default behaviour.<br />
* {{ic|auto}} selects between {{ic|mid}} and {{ic|high}} power states based on the whether the system is on battery power or not. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|low}} forces the gpu to be in the {{ic|low}} power state all the time. Note that {{ic|low}} can cause display problems on some laptops, which is why {{ic|auto}} only uses {{ic|low}} when monitors are off.<br />
* {{ic|mid}} forces the gpu to be in the {{ic|mid}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|high}} forces the gpu to be in the {{ic|high}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
<br />
As an example, we will activate the {{ic|low}} profile (replace {{ic|low}} with any of the aforementioned profiles as necessary):<br />
<br />
# echo low > /sys/class/drm/card0/device/power_profile<br />
<br />
==== Persistent configuration ====<br />
<br />
The activation described above is not persistent, it will not last when the computer is rebooted. To make it persistent, you can use [[systemd#Temporary files|systemd-tmpfiles]] (example for [[#Dynamic frequency switching]]):<br />
<br />
{{hc|/etc/tmpfiles.d/radeon-pm.conf|<nowiki><br />
w /sys/class/drm/card0/device/power_method - - - - dynpm<br />
</nowiki>}}<br />
<br />
Alternatively, you may use this [[udev]] rule instead (example for [[#Profile-based frequency switching]]):<br />
<br />
{{hc|/etc/udev/rules.d/30-radeon-pm.rules|<nowiki><br />
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low"<br />
</nowiki>}}<br />
<br />
{{Note|If the above rule is failing, try removing the {{ic|dri/}} prefix.}}<br />
<br />
==== Graphical tools ====<br />
<br />
* {{App|Radeon-tray|A small program to control the power profiles of your Radeon card via systray icon. It is written in PyQt4 and is suitable for non-Gnome users.|https://github.com/StuntsPT/Radeon-tray|}}<br />
* {{App|power-play-switcher|A gui for changing powerplay setting of the open source driver for ati radeon video cards.|https://code.google.com/p/power-play-switcher/|{{AUR|power-play-switcher}}}}<br />
* {{App|Gnome-shell-extension-Radeon-Power-Profile-Manager|A small extension for Gnome-shell that will allow you to change the power profile of your radeon card when using the open source drivers.|https://github.com/StuntsPT/shell-extension-radeon-power-profile-manager|{{AUR|gnome-shell-extension-radeon-ppm}} {{AUR|gnome-shell-extension-radeon-power-profile-manager-git}}}}<br />
<br />
==== Other notes ====<br />
<br />
Power management is supported on all asics (r1xx-evergreen) that include the appropriate power state tables in the vbios; not all boards do (especially older desktop cards).<br />
<br />
To view the speed that the GPU is running at, perform the following command and you will get something like this output:<br />
<br />
{{hc|$ cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki><br />
state: PM_STATE_ENABLED<br />
default engine clock: 300000 kHz<br />
current engine clock: 300720 kHz<br />
default memory clock: 200000 kHz<br />
</nowiki>}}<br />
<br />
If {{ic|/sys/kernel/debug}} is empty, run this command:<br />
<br />
# mount -t debugfs none /sys/kernel/debug<br />
<br />
To permanently mount, add the following line to {{ic|/etc/fstab}}:<br />
<br />
debugfs /sys/kernel/debug debugfs defaults 0 0<br />
<br />
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.<br />
<br />
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via [[lm_sensors]] tools or via sysfs in {{ic|/sys/class/hwmon}}.<br />
<br />
=== Without KMS ===<br />
<br />
In your {{ic|xorg.conf}} file, add 2 lines to "Device" Section:<br />
Option "DynamicPM" "on"<br />
Option "ClockGating" "on"<br />
<br />
If the two options are enabled successfully, you will see following lines in /var/log/Xorg.0.log:<br />
<br />
(**) RADEON(0): Option "ClockGating" "on"<br />
(**) RADEON(0): Option "DynamicPM" "on"<br />
<br />
Static power management enable success<br />
(II) RADEON(0): Dynamic Clock Gating Enabled<br />
(II) RADEON(0): Dynamic Power Management Enabled<br />
<br />
If you desire low power cost, you can add an extra line to "Device" Section of {{ic|xorg.conf}}:<br />
Option "ForceLowPowerMode" "on"<br />
<br />
== TV out ==<br />
<br />
{{out of date}}<br />
Since August 2007, there is TV-out support for all Radeons with integrated TV-out.<br />
<br />
It is somewhat limited for now, it does not always autodetect the output correctly and only NTSC mode works.<br />
<br />
First, check that you have an S-video output: {{ic|xrandr}} should give you something like<br />
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200<br />
...<br />
S-video disconnected (normal left inverted right x axis y axis)<br />
<br />
Setting tv standard to use:<br />
xrandr --output S-video --set "tv standard" ntsc<br />
<br />
Adding a mode for it (currently it supports only 800x600):<br />
xrandr --addmode S-video 800x600<br />
<br />
I will go for a clone mode:<br />
xrandr --output S-video --same-as VGA-0<br />
<br />
So far so good. Now let us try to see what we have:<br />
xrandr --output S-video --mode 800x600<br />
<br />
At this point you should see a 800x600 version of your desktop on your TV.<br />
<br />
To disable the output, do<br />
xrandr --output S-video --off<br />
<br />
Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.<br />
<br />
To send the output to the TV, I do<br />
xvattr -a XV_CRTC -v 1<br />
<br />
{{Note| you need to install {{AUR|xvattr}} to execute this command.}}<br />
<br />
To switch back to my monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.<br />
<br />
Please see [http://www.x.org/wiki/radeonTV Enabling TV-Out Statically] for how to enable TV-out in your xorg configuration file.<br />
<br />
=== Force TV-out in KMS ===<br />
<br />
Kernel can recognize {{ic|1=video=}} parameter in following form (see [[KMS]] for more details):<br />
<br />
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]<br />
<br />
For example:<br />
<br />
video=DVI-I-1:1280x1024-24@60e<br />
<br />
Parameters with whitespaces must be quoted:<br />
<br />
"video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
Current mkinitcpio implementation also requires {{ic|#}} in front. For example:<br />
<br />
root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
* Grub can pass such command line as is.<br />
* Lilo needs backslashes for doublequotes (append {{ic|1=# \"video=9-pin DIN-1:1024x768-24@60e\"}})<br />
* Grub2: TODO<br />
<br />
You can get list of your video outputs with following command:<br />
<br />
{{bc|<nowiki>$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-</nowiki>}}<br />
<br />
== HDMI audio ==<br />
<br />
HDMI audio is supported by the {{Pkg|xf86-video-ati}} video driver. By default, the necessary kernel module is disabled in kernel versions &gt;&#61;3.0. However, if your Radeon card is listed in the [http://www.x.org/wiki/RadeonFeature Radeon Feature Matrix], you can add {{ic|radeon.audio&#61;1}} to your [[Kernel parameters]]. For example:<br />
<br />
{{hc|/boot/syslinux/syslinux.cfg|<br />
LABEL arch<br />
MENU LABEL Arch Linux<br />
LINUX ../vmlinuz-linux<br />
APPEND root&#61;/dev/sda1 ro radeon.audio&#61;1<br />
INITRD ../initramfs-linux.img<br />
}}<br />
<br />
If HDMI audio doesn't simply work after installing the driver, test your setup with the procedure at [[Advanced_Linux_Sound_Architecture#HDMI_Output_Does_Not_Work]].<br />
<br />
{{note|As of this writing (2013-05-20), drivers for the [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names Southern Islands] cards don't support HDMI Audio.}}<br />
<br />
* The {{ic|radeon.audio}} kernel module only works if [[#Kernel_mode-setting_(KMS)]] is enabled. By default, '''xf86-video-ati''' enables KMS.<br />
* If the sound is distorted try [[PulseAudio#Glitches, skips or crackling|setting {{ic|1=tsched=0}}]] and make sure {{ic|rtkit}} daemon is running.<br />
<br />
== Dual Head setup ==<br />
<br />
=== Independent X screens ===<br />
<br />
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "radeon"<br />
Option "ZaphodHeads" "VGA-0"<br />
VendorName "ATI"<br />
BusID "PCI:1:0:0"<br />
Screen 0<br />
EndSection<br />
<br />
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads" "VGA-0"}}.<br />
<br />
Moreover, this option allows you to easily select the screen you want to mark as primary.<br />
<br />
== Enabling video acceleration ==<br />
<br />
Latest {{Pkg|mesa}} package added support for MPEG1/2 decoding to free drivers, exported via {{Pkg|libvdpau}} and are automaticaly detected.<br />
<br />
You can force used driver by assigning environment variable {{Ic|LIBVA_DRIVER_NAME}} to {{Ic|vdpau}} and {{Ic|VDPAU_DRIVER}} to the name of driver core, e.g.:<br />
<br />
{{hc|1=~/.bashrc|2=<br />
export LIBVA_DRIVER_NAME=vdpau<br />
export VDPAU_DRIVER=r600<br />
}}<br />
<br />
for r600-based cards (all available VDPAU drivers are in {{Ic|/usr/lib/vdpau/}}).<br />
<br />
== Turn vsync off ==<br />
<br />
The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create {{ic|~/.drirc}} (or edit it if it already exists) and add the following section:<br />
{{hc|~/.drirc|<nowiki><br />
<driconf><br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0" /><br />
</application><br />
</device><br />
<!-- Other devices ... --><br />
</driconf><br />
</nowiki>}}<br />
It is effectively '''dri2''', not your video card code (like r600).<br />
<br />
== Troubleshooting ==<br />
<br />
=== Artifacts upon logging in ===<br />
<br />
If encountering artifacts, first try starting X without {{ic|/etc/X11/xorg.conf}}. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured {{ic|xorg.conf}} files are known to cause trouble.<br />
<br />
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.<br />
<br />
Artifacts may also be related to [[kernel mode setting]]. Consider [[#Disable KMS|disabling KMS]].<br />
<br />
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EXAPixmaps" "off"<br />
EndSection<br />
<br />
Further tweaking could be done by disabling {{ic|AccelDFS}}:<br />
<br />
Option "AccelDFS" "off"<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
e.g. When EDID fails on a DisplayPort connection. <br />
<br />
This issue is covered on the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].<br />
<br />
=== Slow performance with open-source drivers ===<br />
<br />
{{Note|Make sure you are member of '''video''' group.}}<br />
<br />
Some cards can be installed by default trying to use [[ATI#AMD/Ati cards and kernel mode-setting (KMS)|KMS]]. You can check whether this is your case running:<br />
dmesg | egrep "drm|radeon"<br />
<br />
This command might show something like this, meaning it is trying to default to KMS:<br />
[drm] radeon default to kernel modesetting.<br />
...<br />
[drm:radeon_driver_load_kms] *ERROR* Failed to initialize radeon, disabling IOCTL<br />
<br />
If your card is not supported by KMS (anything older than r100), then you can [[ATI#Disable KMS|disable KMS]]. This should fix the problem.<br />
<br />
=== AGP is disabled (with KMS) ===<br />
<br />
If you experience poor performance and dmesg shows something like this<br />
[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19<br />
then check if the agp driver for your motherboard (e.g., {{ic|via_agp}}, {{ic|intel_agp}} etc.) is loaded before the {{ic|radeon}} module, see [[ATI#Enabling KMS|Enabling KMS]].<br />
<br />
=== TV showing a black border around the screen ===<br />
<br />
When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see [[Wikipedia:Overscan]]) can be turned off using xrandr:<br />
xrandr --output HDMI-0 --set underscan off<br />
<br />
=== Black screen with mouse cursor on resume from suspend in X ===<br />
<br />
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance_tuning|performance tuning]] for more information.<br />
<br />
=== No desktop effects in KDE4 with X1300 and Radeon driver ===<br />
<br />
A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}. <br />
<br />
Add:<br />
DisableChecks=true<br />
<br />
To the [Compositing] section. Ensure that compositing is enabled with:<br />
Enabled=true<br />
<br />
=== Black screen and no console, but X works in KMS ===<br />
<br />
This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:<br />
fbcon=map:1<br />
This will tell the fbcon to map itself to the {{ic|/dev/fb1}} framebuffer dev and not the {{ic|/dev/fb0}}, that in our case exist on the wrong graphics card.<br />
<br />
=== Some 3D applications show textures as all black or crash ===<br />
<br />
You might need texture compression support, which is not included with the open source driver. Install {{Pkg|libtxc_dxtn}} (and {{Pkg|lib32-libtxc_dxtn}} for multilib systems).<br />
<br />
=== 2D performance (e.g. scrolling) is slow ===<br />
<br />
If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.<br />
<br />
Bellow is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "MigrationHeuristic" "greedy"<br />
EndSection<br />
}}<br />
<br />
=== ATI X1600 (RV530 series) 3D application show black windows ===<br />
<br />
There are three possible solutions:<br />
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].<br />
* If this doesn't work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.<br />
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{ic|driconf}} via pacman and set that option in {{ic|~/.drirc}}.<br />
<br />
=== Vertical colored stripes on chipset RS482 (Xpress 200M Series) with/out KMS ===<br />
<br />
The bug :With the graphical chipset Xpress 200M Series (Radeon Xpress 1150), booting with KMS gives you sometimes, as soon as Xorg boots, a screen with many vertical colored stripes. You cannot {{ic|Alt+Sys+K}} or do anything. Take a look {{Bug|21918}} for more information,<br />
How to fixed ? : disable dri (needn't to disable kms)<br />
Side effert: if i disable "dri" and use no kernel options (no "nomodeset") i see the vertical stripes at boot, only for 5 seconds, before having kdm displayed. Then, i have the same results.<br />
If I start for example KDE Desktop Effects, i will see again the vertical stripes for 5 seconds...and return to kdm ! :)</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=ATI&diff=274246ATI2013-09-03T15:23:43Z<p>Lordheavy: /* Powersaving */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[cs:ATI]]<br />
[[de:ATI]]<br />
[[es:ATI]]<br />
[[fr:ATI]]<br />
[[it:ATI]]<br />
[[ja:ATI]]<br />
[[pl:ATI]]<br />
[[ru:ATI]]<br />
[[tr:ATI]]<br />
[[zh-CN:ATI]]<br />
{{Article summary start}}<br />
{{Article summary text|An overview of the open source ATI/AMD video card driver.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|AMD Catalyst}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary end}}<br />
<br />
Owners of '''ATI/AMD''' video cards have a choice between AMD's [[AMD Catalyst|proprietary driver]] ({{AUR|catalyst}}) and the open source driver ({{Pkg|xf86-video-ati}}). This article covers the open source driver.<br />
<br />
The open source driver is currently not ''on par'' with the proprietary driver in terms of 3D performance on newer cards or reliable TV-out support. It does, however, offer better dual-head support, excellent 2D acceleration, and provide sufficient 3D acceleration for OpenGL-accelerated [[window manager]]s, such as [[Compiz]] or KWin.<br />
<br />
If unsure, try the open source driver first, it will suit most needs and is generally less problematic (see the [http://www.x.org/wiki/RadeonFeature feature matrix] for details).<br />
<br />
== Naming conventions ==<br />
<br />
ATI's [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).<br />
<br />
For a table of core and product series, see [[Wikipedia:Comparison of AMD graphics processing units]].<br />
<br />
== Overview ==<br />
<br />
The {{ic|xf86-video-ati}} (radeon) driver:<br />
*Works with Radeon chipsets up to HD 6xxx and 7xxxM (latest Northern Islands chipsets).<br />
**Radeons in the HD 77xx (Southern Islands) series are partially supported. Check the [http://www.x.org/wiki/RadeonFeature feature matrix] for unsupported features.<br />
**Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D acceleration are provided.<br />
**Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides.<br />
*Supports DRI1, RandR 1.2/1.3, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2 (with the latest Linux kernel, libdrm and Mesa versions).<br />
<br />
Generally, '''xf86-video-ati''' should be your first choice, no matter which ATI card you own. In case you need to use a driver for newer ATI cards, you should consider the proprietary '''catalyst''' driver.<br />
<br />
{{Note|'''xf86-video-ati''' is specified as '''''radeon''''' for the kernel and in {{ic|xorg.conf}}. }}<br />
<br />
== Installation ==<br />
<br />
If Catalyst/{{ic|fglrx}} has been previously installed, see [[ATI Catalyst#Uninstallation|here]].<br />
<br />
=== Installing xf86-video-ati ===<br />
<br />
[[pacman|Install]] {{Pkg|xf86-video-ati}}, available in the [[official repositories]]. <br />
<br />
The -git version of the driver and other needed packages (linux-git, etc) can be found in the [https://bbs.archlinux.org/viewtopic.php?id=79509&p=1 radeon repository] or the [[AUR]].<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Kernel mode-setting (KMS) ==<br />
<br />
{{Tip|If you have problems with the resolution, check [[Kernel_Mode_Setting#Forcing_modes_and_EDID|this page]].}}<br />
<br />
[[KMS]] enables native resolution in the framebuffer and allows for instant console (tty) switching. KMS also enables newer technologies (such as DRI2) which will help reduce artifacts and increase 3D performance, even kernel space power-saving.<br />
<br />
KMS for ATI video cards requires the [[Xorg]] free video user space driver {{Pkg|xf86-video-ati}}.<br />
<br />
{{Note| KMS is '''enabled''' by default for autodetected ATI/AMD cards. This section remains for configurations outside stock. }}<br />
<br />
==== Early start ====<br />
<br />
''These two methods will start KMS as early as possible in the [[boot process]].''<br />
<br />
1. Remove all conflicting UMS drivers from kernel command line:<br />
* Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. <br />
* AGP speed can be set with {{ic|<nowiki>radeon.agpmode=x</nowiki>}} kernel option, where x is 1, 2, 4, 8 (AGP speed) or -1 (PCI mode).<br />
<br />
2. Otherwise, when the [[initramfs]] is loaded:<br />
* If you have a special kernel outside of stock {{ic|-ARCH}} (e.g. linux-zen), remember to use a separate ''mkinitcpio'' configuration file (e.g. {{ic|/etc/mkinitcpio-zen.conf}}) and not {{ic|/etc/mkinitcpio.conf}}.<br />
* Remove any framebuffer related modules from your ''mkinitcpio'' file.<br />
* Add {{ic|radeon}} to {{ic|MODULES}} array in your ''mkinitcpio'' file. For AGP support, it is necessary to add {{ic|intel_agp}} (or {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, {{ic|amd64_agp}} etc.) before the {{ic|radeon}} module.<br />
* Re-generate your [[mkinitcpio#Image_creation_and_activation | initramfs]].<br />
<br />
Finally, '''Reboot''' the system.<br />
<br />
==== Late start ====<br />
<br />
''With this choice, KMS will be enabled when modules are loaded during the [[boot process]].''<br />
<br />
If you have a special kernel (e.g. linux-zen), remember to use appropriate mkinitcpio configuration file, e.g. {{ic|/etc/mkinitcpio-zen.conf}}. These instructions are written for the default kernel ({{Pkg|linux}}).<br />
{{Note| For AGP support, it may be necessary to add {{ic|intel_agp}}, {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, or {{ic|amd64_agp}}) to appropriate .conf files in {{ic|/etc/modules-load.d}}.}}<br />
<br />
# Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. Remove any framebuffer related modules from {{ic|/etc/mkinitcpio.conf}}. {{ic|<nowiki>video=</nowiki>}} can now be used in conjunction with KMS.<br />
# '''Reboot''' the system.<br />
<br />
== Performance tuning ==<br />
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.<br />
<br />
'''ColorTiling''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU<br />
<br />
Option "ColorTiling" "on"<br />
<br />
'''Acceleration architecture'''; this will work only on '''newer''' cards. If you enable this and then cannot get back into X, remove it. <br />
<br />
Option "AccelMethod" "EXA"<br />
<br />
'''Page Flip''' is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA.<br />
<br />
Option "EnablePageFlip" "on"<br />
<br />
'''EXAVSync ''' option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips.<br />
Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled.<br />
<br />
Option "EXAVSync" "yes"<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default<br />
Option "EnablePageFlip" "on" #supported on all R/RV/RS4xx and older hardware, and set on by default<br />
Option "AccelMethod" "EXA" #valid options are XAA, EXA and Glamor. EXA is the default<br />
Option "RenderAccel" "on" #enabled by default on all radeon hardware<br />
Option "ColorTiling" "on" #enabled by default on RV300 and later radeon cards<br />
Option "EXAVSync" "off" #default is off, otherwise on. Only works '''if EXA activated'''<br />
Option "EXAPixmaps" "on" #when on icreases 2D performance, but may also cause artifacts on some old cards. Only works '''if EXA activated'''<br />
Option "AccelDFS" "on" #default is off, read the radeon manpage for more information<br />
EndSection<br />
}}<br />
<br />
Defining the '''gartsize''', if not autodetected, can be done by adding {{ic|1=radeon.gartsize=32}} into [[kernel parameters]]. Size is in megabytes and 32 is for RV280 cards.<br />
<br />
Alternatively, do it with a modprobe option in {{ic|/etc/modprobe.d/radeon.conf}}:<br />
<br />
options radeon gartsize=32<br />
<br />
'''For further information and other options, read the radeon manpage and the module's info page''': {{ic|man radeon}}, {{ic|modinfo radeon}}.<br />
<br />
A fine tool to try is {{Pkg|driconf}}. It will allow you to modify several settings, like vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).<br />
<br />
=== Deactivating PCI-E 2.0 ===<br />
<br />
Since kernel 3.6, PCI-E v2.0 in '''radeon''' is turned on by default.<br />
<br />
It can be unstable with some motherboards, so it can be deactivated by adding {{ic|1=radeon.pcie_gen2=0}} on the [[Kernel parameters|kernel command line]].<br />
<br />
See [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article] for more information.<br />
<br />
=== Glamor ===<br />
<br />
Glamor is a 2D acceleration method implemented through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.<br />
<br />
Since xf86-video-ati driver-1:7.2.0-1, glamor is automaticaly enabled with radeonsi drivers (Southern Island and superior GFX cards); with other graphic cards you can use it by adding the AccelMethod glamor to your xorg.conf config file in the Device section:<br />
<br />
Option "AccelMethod" "glamor"<br />
<br />
However, you need to add the following section before:<br />
{{bc|<br />
Section "Module"<br />
Load "dri2"<br />
Load "glamoregl" <br />
EndSection<br />
}}<br />
<br />
== Hybrid graphics/AMD Dynamic Switchable Graphics ==<br />
<br />
It is the technology used on recent laptops equiped with two GPUs, one power-efficent (generally Intel integrated card) and one more powerful and more power-hungry (generally Radeon or Nvidia). There are three ways to get it work:<br />
<br />
* If you do not need to run any GPU-hungry application, you can plainly disable the discrete card: {{ic|echo OFF > /sys/kernel/debug/vgaswitcheroo/switch}}. You can do more things with vgaswitcheroo (see [https://help.ubuntu.com/community/HybridGraphics#Using_vga_switcheroo Ubuntu wiki] for more information) but ultimately at best one card is bound to one graphic session, you cannot use both on one graphic session.<br />
* You can use [[PRIME]]. It is the proper way to use hybrid graphics on Linux but still requires a bit of manual intervention from the user.<br />
* You can also use [[bumblebee]] with radeon, there is a {{AUR|bumblebee-amd-git}} package on [[AUR]].<br />
<br />
==Powersaving==<br />
<br />
=== With kernel prior to 3.11.x ===<br />
<br />
With the radeon driver, power saving is disabled by default but the kernel provides a method to enable it using sysfs.<br />
<br />
You can choose between two different methods. It's hard to say which is the best, you have to try it yourself.<br />
<br />
==== Dynamic frequency switching ====<br />
<br />
This method dynamically changes the frequency depending on GPU load, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.<br />
<br />
It can be activated by simply running the following command:<br />
<br />
# echo dynpm > /sys/class/drm/card0/device/power_method<br />
<br />
==== Profile-based frequency switching ====<br />
<br />
This method will allow you to select one of the five profiles (described below). Different profiles, for the most part, end up changing the frequency/voltage of the GPU. This method is not as aggressive, but is more stable and flicker free and works with multiple heads active.<br />
<br />
To activate the method, run the following command:<br />
<br />
# echo profile > /sys/class/drm/card0/device/power_method<br />
<br />
Select one of the available profiles:<br />
* {{ic|default}} uses the default clocks and does not change the power state. This is the default behaviour.<br />
* {{ic|auto}} selects between {{ic|mid}} and {{ic|high}} power states based on the whether the system is on battery power or not. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|low}} forces the gpu to be in the {{ic|low}} power state all the time. Note that {{ic|low}} can cause display problems on some laptops, which is why {{ic|auto}} only uses {{ic|low}} when monitors are off.<br />
* {{ic|mid}} forces the gpu to be in the {{ic|mid}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|high}} forces the gpu to be in the {{ic|high}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
<br />
As an example, we will activate the {{ic|low}} profile (replace {{ic|low}} with any of the aforementioned profiles as necessary):<br />
<br />
# echo low > /sys/class/drm/card0/device/power_profile<br />
<br />
==== Persistent configuration ====<br />
<br />
The activation described above is not persistent, it will not last when the computer is rebooted. To make it persistent, you can use [[systemd#Temporary files|systemd-tmpfiles]] (example for [[#Dynamic frequency switching]]):<br />
<br />
{{hc|/etc/tmpfiles.d/radeon-pm.conf|<nowiki><br />
w /sys/class/drm/card0/device/power_method - - - - dynpm<br />
</nowiki>}}<br />
<br />
Alternatively, you may use this [[udev]] rule instead (example for [[#Profile-based frequency switching]]):<br />
<br />
{{hc|/etc/udev/rules.d/30-radeon-pm.rules|<nowiki><br />
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low"<br />
</nowiki>}}<br />
<br />
{{Note|If the above rule is failing, try removing the {{ic|dri/}} prefix.}}<br />
<br />
==== Graphical tools ====<br />
<br />
* {{App|Radeon-tray|A small program to control the power profiles of your Radeon card via systray icon. It is written in PyQt4 and is suitable for non-Gnome users.|https://github.com/StuntsPT/Radeon-tray|}}<br />
* {{App|power-play-switcher|A gui for changing powerplay setting of the open source driver for ati radeon video cards.|https://code.google.com/p/power-play-switcher/|{{AUR|power-play-switcher}}}}<br />
* {{App|Gnome-shell-extension-Radeon-Power-Profile-Manager|A small extension for Gnome-shell that will allow you to change the power profile of your radeon card when using the open source drivers.|https://github.com/StuntsPT/shell-extension-radeon-power-profile-manager|{{AUR|gnome-shell-extension-radeon-ppm}} {{AUR|gnome-shell-extension-radeon-power-profile-manager-git}}}}<br />
<br />
==== Other notes ====<br />
<br />
Power management is supported on all asics (r1xx-evergreen) that include the appropriate power state tables in the vbios; not all boards do (especially older desktop cards).<br />
<br />
To view the speed that the GPU is running at, perform the following command and you will get something like this output:<br />
<br />
{{hc|$ cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki><br />
state: PM_STATE_ENABLED<br />
default engine clock: 300000 kHz<br />
current engine clock: 300720 kHz<br />
default memory clock: 200000 kHz<br />
</nowiki>}}<br />
<br />
If {{ic|/sys/kernel/debug}} is empty, run this command:<br />
<br />
# mount -t debugfs none /sys/kernel/debug<br />
<br />
To permanently mount, add the following line to {{ic|/etc/fstab}}:<br />
<br />
debugfs /sys/kernel/debug debugfs defaults 0 0<br />
<br />
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.<br />
<br />
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via [[lm_sensors]] tools or via sysfs in {{ic|/sys/class/hwmon}}.<br />
<br />
== TV out ==<br />
<br />
{{out of date}}<br />
Since August 2007, there is TV-out support for all Radeons with integrated TV-out.<br />
<br />
It is somewhat limited for now, it does not always autodetect the output correctly and only NTSC mode works.<br />
<br />
First, check that you have an S-video output: {{ic|xrandr}} should give you something like<br />
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200<br />
...<br />
S-video disconnected (normal left inverted right x axis y axis)<br />
<br />
Setting tv standard to use:<br />
xrandr --output S-video --set "tv standard" ntsc<br />
<br />
Adding a mode for it (currently it supports only 800x600):<br />
xrandr --addmode S-video 800x600<br />
<br />
I will go for a clone mode:<br />
xrandr --output S-video --same-as VGA-0<br />
<br />
So far so good. Now let us try to see what we have:<br />
xrandr --output S-video --mode 800x600<br />
<br />
At this point you should see a 800x600 version of your desktop on your TV.<br />
<br />
To disable the output, do<br />
xrandr --output S-video --off<br />
<br />
Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.<br />
<br />
To send the output to the TV, I do<br />
xvattr -a XV_CRTC -v 1<br />
<br />
{{Note| you need to install {{AUR|xvattr}} to execute this command.}}<br />
<br />
To switch back to my monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.<br />
<br />
Please see [http://www.x.org/wiki/radeonTV Enabling TV-Out Statically] for how to enable TV-out in your xorg configuration file.<br />
<br />
=== Force TV-out in KMS ===<br />
<br />
Kernel can recognize {{ic|1=video=}} parameter in following form (see [[KMS]] for more details):<br />
<br />
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]<br />
<br />
For example:<br />
<br />
video=DVI-I-1:1280x1024-24@60e<br />
<br />
Parameters with whitespaces must be quoted:<br />
<br />
"video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
Current mkinitcpio implementation also requires {{ic|#}} in front. For example:<br />
<br />
root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
* Grub can pass such command line as is.<br />
* Lilo needs backslashes for doublequotes (append {{ic|1=# \"video=9-pin DIN-1:1024x768-24@60e\"}})<br />
* Grub2: TODO<br />
<br />
You can get list of your video outputs with following command:<br />
<br />
{{bc|<nowiki>$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-</nowiki>}}<br />
<br />
== HDMI audio ==<br />
<br />
HDMI audio is supported by the {{Pkg|xf86-video-ati}} video driver. By default, the necessary kernel module is disabled in kernel versions &gt;&#61;3.0. However, if your Radeon card is listed in the [http://www.x.org/wiki/RadeonFeature Radeon Feature Matrix], you can add {{ic|radeon.audio&#61;1}} to your [[Kernel parameters]]. For example:<br />
<br />
{{hc|/boot/syslinux/syslinux.cfg|<br />
LABEL arch<br />
MENU LABEL Arch Linux<br />
LINUX ../vmlinuz-linux<br />
APPEND root&#61;/dev/sda1 ro radeon.audio&#61;1<br />
INITRD ../initramfs-linux.img<br />
}}<br />
<br />
If HDMI audio doesn't simply work after installing the driver, test your setup with the procedure at [[Advanced_Linux_Sound_Architecture#HDMI_Output_Does_Not_Work]].<br />
<br />
{{note|As of this writing (2013-05-20), drivers for the [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names Southern Islands] cards don't support HDMI Audio.}}<br />
<br />
* The {{ic|radeon.audio}} kernel module only works if [[#Kernel_mode-setting_(KMS)]] is enabled. By default, '''xf86-video-ati''' enables KMS.<br />
* If the sound is distorted try [[PulseAudio#Glitches, skips or crackling|setting {{ic|1=tsched=0}}]] and make sure {{ic|rtkit}} daemon is running.<br />
<br />
== Dual Head setup ==<br />
<br />
=== Independent X screens ===<br />
<br />
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "radeon"<br />
Option "ZaphodHeads" "VGA-0"<br />
VendorName "ATI"<br />
BusID "PCI:1:0:0"<br />
Screen 0<br />
EndSection<br />
<br />
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads" "VGA-0"}}.<br />
<br />
Moreover, this option allows you to easily select the screen you want to mark as primary.<br />
<br />
== Enabling video acceleration ==<br />
<br />
Latest {{Pkg|mesa}} package added support for MPEG1/2 decoding to free drivers, exported via {{Pkg|libvdpau}} and are automaticaly detected.<br />
<br />
You can force used driver by assigning environment variable {{Ic|LIBVA_DRIVER_NAME}} to {{Ic|vdpau}} and {{Ic|VDPAU_DRIVER}} to the name of driver core, e.g.:<br />
<br />
{{hc|1=~/.bashrc|2=<br />
export LIBVA_DRIVER_NAME=vdpau<br />
export VDPAU_DRIVER=r600<br />
}}<br />
<br />
for r600-based cards (all available VDPAU drivers are in {{Ic|/usr/lib/vdpau/}}).<br />
<br />
== Turn vsync off ==<br />
<br />
The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create {{ic|~/.drirc}} (or edit it if it already exists) and add the following section:<br />
{{hc|~/.drirc|<nowiki><br />
<driconf><br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0" /><br />
</application><br />
</device><br />
<!-- Other devices ... --><br />
</driconf><br />
</nowiki>}}<br />
It is effectively '''dri2''', not your video card code (like r600).<br />
<br />
== Troubleshooting ==<br />
<br />
=== Artifacts upon logging in ===<br />
<br />
If encountering artifacts, first try starting X without {{ic|/etc/X11/xorg.conf}}. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured {{ic|xorg.conf}} files are known to cause trouble.<br />
<br />
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.<br />
<br />
Artifacts may also be related to [[kernel mode setting]]. Consider [[#Disable KMS|disabling KMS]].<br />
<br />
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EXAPixmaps" "off"<br />
EndSection<br />
<br />
Further tweaking could be done by disabling {{ic|AccelDFS}}:<br />
<br />
Option "AccelDFS" "off"<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
e.g. When EDID fails on a DisplayPort connection. <br />
<br />
This issue is covered on the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].<br />
<br />
=== Slow performance with open-source drivers ===<br />
<br />
{{Note|Make sure you are member of '''video''' group.}}<br />
<br />
Some cards can be installed by default trying to use [[ATI#AMD/Ati cards and kernel mode-setting (KMS)|KMS]]. You can check whether this is your case running:<br />
dmesg | egrep "drm|radeon"<br />
<br />
This command might show something like this, meaning it is trying to default to KMS:<br />
[drm] radeon default to kernel modesetting.<br />
...<br />
[drm:radeon_driver_load_kms] *ERROR* Failed to initialize radeon, disabling IOCTL<br />
<br />
If your card is not supported by KMS (anything older than r100), then you can [[ATI#Disable KMS|disable KMS]]. This should fix the problem.<br />
<br />
=== AGP is disabled (with KMS) ===<br />
<br />
If you experience poor performance and dmesg shows something like this<br />
[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19<br />
then check if the agp driver for your motherboard (e.g., {{ic|via_agp}}, {{ic|intel_agp}} etc.) is loaded before the {{ic|radeon}} module, see [[ATI#Enabling KMS|Enabling KMS]].<br />
<br />
=== TV showing a black border around the screen ===<br />
<br />
When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see [[Wikipedia:Overscan]]) can be turned off using xrandr:<br />
xrandr --output HDMI-0 --set underscan off<br />
<br />
=== Black screen with mouse cursor on resume from suspend in X ===<br />
<br />
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance_tuning|performance tuning]] for more information.<br />
<br />
=== No desktop effects in KDE4 with X1300 and Radeon driver ===<br />
<br />
A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}. <br />
<br />
Add:<br />
DisableChecks=true<br />
<br />
To the [Compositing] section. Ensure that compositing is enabled with:<br />
Enabled=true<br />
<br />
=== Black screen and no console, but X works in KMS ===<br />
<br />
This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:<br />
fbcon=map:1<br />
This will tell the fbcon to map itself to the {{ic|/dev/fb1}} framebuffer dev and not the {{ic|/dev/fb0}}, that in our case exist on the wrong graphics card.<br />
<br />
=== Some 3D applications show textures as all black or crash ===<br />
<br />
You might need texture compression support, which is not included with the open source driver. Install {{Pkg|libtxc_dxtn}} (and {{Pkg|lib32-libtxc_dxtn}} for multilib systems).<br />
<br />
=== 2D performance (e.g. scrolling) is slow ===<br />
<br />
If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.<br />
<br />
Bellow is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "MigrationHeuristic" "greedy"<br />
EndSection<br />
}}<br />
<br />
=== ATI X1600 (RV530 series) 3D application show black windows ===<br />
<br />
There are three possible solutions:<br />
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].<br />
* If this doesn't work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.<br />
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{ic|driconf}} via pacman and set that option in {{ic|~/.drirc}}.<br />
<br />
=== Vertical colored stripes on chipset RS482 (Xpress 200M Series) with/out KMS ===<br />
<br />
The bug :With the graphical chipset Xpress 200M Series (Radeon Xpress 1150), booting with KMS gives you sometimes, as soon as Xorg boots, a screen with many vertical colored stripes. You cannot {{ic|Alt+Sys+K}} or do anything. Take a look {{Bug|21918}} for more information,<br />
How to fixed ? : disable dri (needn't to disable kms)<br />
Side effert: if i disable "dri" and use no kernel options (no "nomodeset") i see the vertical stripes at boot, only for 5 seconds, before having kdm displayed. Then, i have the same results.<br />
If I start for example KDE Desktop Effects, i will see again the vertical stripes for 5 seconds...and return to kdm ! :)</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=ATI&diff=274245ATI2013-09-03T15:23:27Z<p>Lordheavy: /* With kernel prior to 3.11.x */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[cs:ATI]]<br />
[[de:ATI]]<br />
[[es:ATI]]<br />
[[fr:ATI]]<br />
[[it:ATI]]<br />
[[ja:ATI]]<br />
[[pl:ATI]]<br />
[[ru:ATI]]<br />
[[tr:ATI]]<br />
[[zh-CN:ATI]]<br />
{{Article summary start}}<br />
{{Article summary text|An overview of the open source ATI/AMD video card driver.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|AMD Catalyst}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary end}}<br />
<br />
Owners of '''ATI/AMD''' video cards have a choice between AMD's [[AMD Catalyst|proprietary driver]] ({{AUR|catalyst}}) and the open source driver ({{Pkg|xf86-video-ati}}). This article covers the open source driver.<br />
<br />
The open source driver is currently not ''on par'' with the proprietary driver in terms of 3D performance on newer cards or reliable TV-out support. It does, however, offer better dual-head support, excellent 2D acceleration, and provide sufficient 3D acceleration for OpenGL-accelerated [[window manager]]s, such as [[Compiz]] or KWin.<br />
<br />
If unsure, try the open source driver first, it will suit most needs and is generally less problematic (see the [http://www.x.org/wiki/RadeonFeature feature matrix] for details).<br />
<br />
== Naming conventions ==<br />
<br />
ATI's [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).<br />
<br />
For a table of core and product series, see [[Wikipedia:Comparison of AMD graphics processing units]].<br />
<br />
== Overview ==<br />
<br />
The {{ic|xf86-video-ati}} (radeon) driver:<br />
*Works with Radeon chipsets up to HD 6xxx and 7xxxM (latest Northern Islands chipsets).<br />
**Radeons in the HD 77xx (Southern Islands) series are partially supported. Check the [http://www.x.org/wiki/RadeonFeature feature matrix] for unsupported features.<br />
**Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D acceleration are provided.<br />
**Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides.<br />
*Supports DRI1, RandR 1.2/1.3, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2 (with the latest Linux kernel, libdrm and Mesa versions).<br />
<br />
Generally, '''xf86-video-ati''' should be your first choice, no matter which ATI card you own. In case you need to use a driver for newer ATI cards, you should consider the proprietary '''catalyst''' driver.<br />
<br />
{{Note|'''xf86-video-ati''' is specified as '''''radeon''''' for the kernel and in {{ic|xorg.conf}}. }}<br />
<br />
== Installation ==<br />
<br />
If Catalyst/{{ic|fglrx}} has been previously installed, see [[ATI Catalyst#Uninstallation|here]].<br />
<br />
=== Installing xf86-video-ati ===<br />
<br />
[[pacman|Install]] {{Pkg|xf86-video-ati}}, available in the [[official repositories]]. <br />
<br />
The -git version of the driver and other needed packages (linux-git, etc) can be found in the [https://bbs.archlinux.org/viewtopic.php?id=79509&p=1 radeon repository] or the [[AUR]].<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Kernel mode-setting (KMS) ==<br />
<br />
{{Tip|If you have problems with the resolution, check [[Kernel_Mode_Setting#Forcing_modes_and_EDID|this page]].}}<br />
<br />
[[KMS]] enables native resolution in the framebuffer and allows for instant console (tty) switching. KMS also enables newer technologies (such as DRI2) which will help reduce artifacts and increase 3D performance, even kernel space power-saving.<br />
<br />
KMS for ATI video cards requires the [[Xorg]] free video user space driver {{Pkg|xf86-video-ati}}.<br />
<br />
{{Note| KMS is '''enabled''' by default for autodetected ATI/AMD cards. This section remains for configurations outside stock. }}<br />
<br />
==== Early start ====<br />
<br />
''These two methods will start KMS as early as possible in the [[boot process]].''<br />
<br />
1. Remove all conflicting UMS drivers from kernel command line:<br />
* Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. <br />
* AGP speed can be set with {{ic|<nowiki>radeon.agpmode=x</nowiki>}} kernel option, where x is 1, 2, 4, 8 (AGP speed) or -1 (PCI mode).<br />
<br />
2. Otherwise, when the [[initramfs]] is loaded:<br />
* If you have a special kernel outside of stock {{ic|-ARCH}} (e.g. linux-zen), remember to use a separate ''mkinitcpio'' configuration file (e.g. {{ic|/etc/mkinitcpio-zen.conf}}) and not {{ic|/etc/mkinitcpio.conf}}.<br />
* Remove any framebuffer related modules from your ''mkinitcpio'' file.<br />
* Add {{ic|radeon}} to {{ic|MODULES}} array in your ''mkinitcpio'' file. For AGP support, it is necessary to add {{ic|intel_agp}} (or {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, {{ic|amd64_agp}} etc.) before the {{ic|radeon}} module.<br />
* Re-generate your [[mkinitcpio#Image_creation_and_activation | initramfs]].<br />
<br />
Finally, '''Reboot''' the system.<br />
<br />
==== Late start ====<br />
<br />
''With this choice, KMS will be enabled when modules are loaded during the [[boot process]].''<br />
<br />
If you have a special kernel (e.g. linux-zen), remember to use appropriate mkinitcpio configuration file, e.g. {{ic|/etc/mkinitcpio-zen.conf}}. These instructions are written for the default kernel ({{Pkg|linux}}).<br />
{{Note| For AGP support, it may be necessary to add {{ic|intel_agp}}, {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, or {{ic|amd64_agp}}) to appropriate .conf files in {{ic|/etc/modules-load.d}}.}}<br />
<br />
# Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. Remove any framebuffer related modules from {{ic|/etc/mkinitcpio.conf}}. {{ic|<nowiki>video=</nowiki>}} can now be used in conjunction with KMS.<br />
# '''Reboot''' the system.<br />
<br />
== Performance tuning ==<br />
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.<br />
<br />
'''ColorTiling''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU<br />
<br />
Option "ColorTiling" "on"<br />
<br />
'''Acceleration architecture'''; this will work only on '''newer''' cards. If you enable this and then cannot get back into X, remove it. <br />
<br />
Option "AccelMethod" "EXA"<br />
<br />
'''Page Flip''' is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA.<br />
<br />
Option "EnablePageFlip" "on"<br />
<br />
'''EXAVSync ''' option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips.<br />
Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled.<br />
<br />
Option "EXAVSync" "yes"<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default<br />
Option "EnablePageFlip" "on" #supported on all R/RV/RS4xx and older hardware, and set on by default<br />
Option "AccelMethod" "EXA" #valid options are XAA, EXA and Glamor. EXA is the default<br />
Option "RenderAccel" "on" #enabled by default on all radeon hardware<br />
Option "ColorTiling" "on" #enabled by default on RV300 and later radeon cards<br />
Option "EXAVSync" "off" #default is off, otherwise on. Only works '''if EXA activated'''<br />
Option "EXAPixmaps" "on" #when on icreases 2D performance, but may also cause artifacts on some old cards. Only works '''if EXA activated'''<br />
Option "AccelDFS" "on" #default is off, read the radeon manpage for more information<br />
EndSection<br />
}}<br />
<br />
Defining the '''gartsize''', if not autodetected, can be done by adding {{ic|1=radeon.gartsize=32}} into [[kernel parameters]]. Size is in megabytes and 32 is for RV280 cards.<br />
<br />
Alternatively, do it with a modprobe option in {{ic|/etc/modprobe.d/radeon.conf}}:<br />
<br />
options radeon gartsize=32<br />
<br />
'''For further information and other options, read the radeon manpage and the module's info page''': {{ic|man radeon}}, {{ic|modinfo radeon}}.<br />
<br />
A fine tool to try is {{Pkg|driconf}}. It will allow you to modify several settings, like vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).<br />
<br />
=== Deactivating PCI-E 2.0 ===<br />
<br />
Since kernel 3.6, PCI-E v2.0 in '''radeon''' is turned on by default.<br />
<br />
It can be unstable with some motherboards, so it can be deactivated by adding {{ic|1=radeon.pcie_gen2=0}} on the [[Kernel parameters|kernel command line]].<br />
<br />
See [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article] for more information.<br />
<br />
=== Glamor ===<br />
<br />
Glamor is a 2D acceleration method implemented through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.<br />
<br />
Since xf86-video-ati driver-1:7.2.0-1, glamor is automaticaly enabled with radeonsi drivers (Southern Island and superior GFX cards); with other graphic cards you can use it by adding the AccelMethod glamor to your xorg.conf config file in the Device section:<br />
<br />
Option "AccelMethod" "glamor"<br />
<br />
However, you need to add the following section before:<br />
{{bc|<br />
Section "Module"<br />
Load "dri2"<br />
Load "glamoregl" <br />
EndSection<br />
}}<br />
<br />
== Hybrid graphics/AMD Dynamic Switchable Graphics ==<br />
<br />
It is the technology used on recent laptops equiped with two GPUs, one power-efficent (generally Intel integrated card) and one more powerful and more power-hungry (generally Radeon or Nvidia). There are three ways to get it work:<br />
<br />
* If you do not need to run any GPU-hungry application, you can plainly disable the discrete card: {{ic|echo OFF > /sys/kernel/debug/vgaswitcheroo/switch}}. You can do more things with vgaswitcheroo (see [https://help.ubuntu.com/community/HybridGraphics#Using_vga_switcheroo Ubuntu wiki] for more information) but ultimately at best one card is bound to one graphic session, you cannot use both on one graphic session.<br />
* You can use [[PRIME]]. It is the proper way to use hybrid graphics on Linux but still requires a bit of manual intervention from the user.<br />
* You can also use [[bumblebee]] with radeon, there is a {{AUR|bumblebee-amd-git}} package on [[AUR]].<br />
<br />
==Powersaving==<br />
<br />
The powersaving part is totally different with and without KMS.<br />
<br />
=== With kernel prior to 3.11.x ===<br />
<br />
With the radeon driver, power saving is disabled by default but the kernel provides a method to enable it using sysfs.<br />
<br />
You can choose between two different methods. It's hard to say which is the best, you have to try it yourself.<br />
<br />
==== Dynamic frequency switching ====<br />
<br />
This method dynamically changes the frequency depending on GPU load, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.<br />
<br />
It can be activated by simply running the following command:<br />
<br />
# echo dynpm > /sys/class/drm/card0/device/power_method<br />
<br />
==== Profile-based frequency switching ====<br />
<br />
This method will allow you to select one of the five profiles (described below). Different profiles, for the most part, end up changing the frequency/voltage of the GPU. This method is not as aggressive, but is more stable and flicker free and works with multiple heads active.<br />
<br />
To activate the method, run the following command:<br />
<br />
# echo profile > /sys/class/drm/card0/device/power_method<br />
<br />
Select one of the available profiles:<br />
* {{ic|default}} uses the default clocks and does not change the power state. This is the default behaviour.<br />
* {{ic|auto}} selects between {{ic|mid}} and {{ic|high}} power states based on the whether the system is on battery power or not. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|low}} forces the gpu to be in the {{ic|low}} power state all the time. Note that {{ic|low}} can cause display problems on some laptops, which is why {{ic|auto}} only uses {{ic|low}} when monitors are off.<br />
* {{ic|mid}} forces the gpu to be in the {{ic|mid}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|high}} forces the gpu to be in the {{ic|high}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
<br />
As an example, we will activate the {{ic|low}} profile (replace {{ic|low}} with any of the aforementioned profiles as necessary):<br />
<br />
# echo low > /sys/class/drm/card0/device/power_profile<br />
<br />
==== Persistent configuration ====<br />
<br />
The activation described above is not persistent, it will not last when the computer is rebooted. To make it persistent, you can use [[systemd#Temporary files|systemd-tmpfiles]] (example for [[#Dynamic frequency switching]]):<br />
<br />
{{hc|/etc/tmpfiles.d/radeon-pm.conf|<nowiki><br />
w /sys/class/drm/card0/device/power_method - - - - dynpm<br />
</nowiki>}}<br />
<br />
Alternatively, you may use this [[udev]] rule instead (example for [[#Profile-based frequency switching]]):<br />
<br />
{{hc|/etc/udev/rules.d/30-radeon-pm.rules|<nowiki><br />
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low"<br />
</nowiki>}}<br />
<br />
{{Note|If the above rule is failing, try removing the {{ic|dri/}} prefix.}}<br />
<br />
==== Graphical tools ====<br />
<br />
* {{App|Radeon-tray|A small program to control the power profiles of your Radeon card via systray icon. It is written in PyQt4 and is suitable for non-Gnome users.|https://github.com/StuntsPT/Radeon-tray|}}<br />
* {{App|power-play-switcher|A gui for changing powerplay setting of the open source driver for ati radeon video cards.|https://code.google.com/p/power-play-switcher/|{{AUR|power-play-switcher}}}}<br />
* {{App|Gnome-shell-extension-Radeon-Power-Profile-Manager|A small extension for Gnome-shell that will allow you to change the power profile of your radeon card when using the open source drivers.|https://github.com/StuntsPT/shell-extension-radeon-power-profile-manager|{{AUR|gnome-shell-extension-radeon-ppm}} {{AUR|gnome-shell-extension-radeon-power-profile-manager-git}}}}<br />
<br />
==== Other notes ====<br />
<br />
Power management is supported on all asics (r1xx-evergreen) that include the appropriate power state tables in the vbios; not all boards do (especially older desktop cards).<br />
<br />
To view the speed that the GPU is running at, perform the following command and you will get something like this output:<br />
<br />
{{hc|$ cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki><br />
state: PM_STATE_ENABLED<br />
default engine clock: 300000 kHz<br />
current engine clock: 300720 kHz<br />
default memory clock: 200000 kHz<br />
</nowiki>}}<br />
<br />
If {{ic|/sys/kernel/debug}} is empty, run this command:<br />
<br />
# mount -t debugfs none /sys/kernel/debug<br />
<br />
To permanently mount, add the following line to {{ic|/etc/fstab}}:<br />
<br />
debugfs /sys/kernel/debug debugfs defaults 0 0<br />
<br />
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.<br />
<br />
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via [[lm_sensors]] tools or via sysfs in {{ic|/sys/class/hwmon}}.<br />
<br />
== TV out ==<br />
<br />
{{out of date}}<br />
Since August 2007, there is TV-out support for all Radeons with integrated TV-out.<br />
<br />
It is somewhat limited for now, it does not always autodetect the output correctly and only NTSC mode works.<br />
<br />
First, check that you have an S-video output: {{ic|xrandr}} should give you something like<br />
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200<br />
...<br />
S-video disconnected (normal left inverted right x axis y axis)<br />
<br />
Setting tv standard to use:<br />
xrandr --output S-video --set "tv standard" ntsc<br />
<br />
Adding a mode for it (currently it supports only 800x600):<br />
xrandr --addmode S-video 800x600<br />
<br />
I will go for a clone mode:<br />
xrandr --output S-video --same-as VGA-0<br />
<br />
So far so good. Now let us try to see what we have:<br />
xrandr --output S-video --mode 800x600<br />
<br />
At this point you should see a 800x600 version of your desktop on your TV.<br />
<br />
To disable the output, do<br />
xrandr --output S-video --off<br />
<br />
Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.<br />
<br />
To send the output to the TV, I do<br />
xvattr -a XV_CRTC -v 1<br />
<br />
{{Note| you need to install {{AUR|xvattr}} to execute this command.}}<br />
<br />
To switch back to my monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.<br />
<br />
Please see [http://www.x.org/wiki/radeonTV Enabling TV-Out Statically] for how to enable TV-out in your xorg configuration file.<br />
<br />
=== Force TV-out in KMS ===<br />
<br />
Kernel can recognize {{ic|1=video=}} parameter in following form (see [[KMS]] for more details):<br />
<br />
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]<br />
<br />
For example:<br />
<br />
video=DVI-I-1:1280x1024-24@60e<br />
<br />
Parameters with whitespaces must be quoted:<br />
<br />
"video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
Current mkinitcpio implementation also requires {{ic|#}} in front. For example:<br />
<br />
root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
* Grub can pass such command line as is.<br />
* Lilo needs backslashes for doublequotes (append {{ic|1=# \"video=9-pin DIN-1:1024x768-24@60e\"}})<br />
* Grub2: TODO<br />
<br />
You can get list of your video outputs with following command:<br />
<br />
{{bc|<nowiki>$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-</nowiki>}}<br />
<br />
== HDMI audio ==<br />
<br />
HDMI audio is supported by the {{Pkg|xf86-video-ati}} video driver. By default, the necessary kernel module is disabled in kernel versions &gt;&#61;3.0. However, if your Radeon card is listed in the [http://www.x.org/wiki/RadeonFeature Radeon Feature Matrix], you can add {{ic|radeon.audio&#61;1}} to your [[Kernel parameters]]. For example:<br />
<br />
{{hc|/boot/syslinux/syslinux.cfg|<br />
LABEL arch<br />
MENU LABEL Arch Linux<br />
LINUX ../vmlinuz-linux<br />
APPEND root&#61;/dev/sda1 ro radeon.audio&#61;1<br />
INITRD ../initramfs-linux.img<br />
}}<br />
<br />
If HDMI audio doesn't simply work after installing the driver, test your setup with the procedure at [[Advanced_Linux_Sound_Architecture#HDMI_Output_Does_Not_Work]].<br />
<br />
{{note|As of this writing (2013-05-20), drivers for the [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names Southern Islands] cards don't support HDMI Audio.}}<br />
<br />
* The {{ic|radeon.audio}} kernel module only works if [[#Kernel_mode-setting_(KMS)]] is enabled. By default, '''xf86-video-ati''' enables KMS.<br />
* If the sound is distorted try [[PulseAudio#Glitches, skips or crackling|setting {{ic|1=tsched=0}}]] and make sure {{ic|rtkit}} daemon is running.<br />
<br />
== Dual Head setup ==<br />
<br />
=== Independent X screens ===<br />
<br />
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "radeon"<br />
Option "ZaphodHeads" "VGA-0"<br />
VendorName "ATI"<br />
BusID "PCI:1:0:0"<br />
Screen 0<br />
EndSection<br />
<br />
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads" "VGA-0"}}.<br />
<br />
Moreover, this option allows you to easily select the screen you want to mark as primary.<br />
<br />
== Enabling video acceleration ==<br />
<br />
Latest {{Pkg|mesa}} package added support for MPEG1/2 decoding to free drivers, exported via {{Pkg|libvdpau}} and are automaticaly detected.<br />
<br />
You can force used driver by assigning environment variable {{Ic|LIBVA_DRIVER_NAME}} to {{Ic|vdpau}} and {{Ic|VDPAU_DRIVER}} to the name of driver core, e.g.:<br />
<br />
{{hc|1=~/.bashrc|2=<br />
export LIBVA_DRIVER_NAME=vdpau<br />
export VDPAU_DRIVER=r600<br />
}}<br />
<br />
for r600-based cards (all available VDPAU drivers are in {{Ic|/usr/lib/vdpau/}}).<br />
<br />
== Turn vsync off ==<br />
<br />
The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create {{ic|~/.drirc}} (or edit it if it already exists) and add the following section:<br />
{{hc|~/.drirc|<nowiki><br />
<driconf><br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0" /><br />
</application><br />
</device><br />
<!-- Other devices ... --><br />
</driconf><br />
</nowiki>}}<br />
It is effectively '''dri2''', not your video card code (like r600).<br />
<br />
== Troubleshooting ==<br />
<br />
=== Artifacts upon logging in ===<br />
<br />
If encountering artifacts, first try starting X without {{ic|/etc/X11/xorg.conf}}. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured {{ic|xorg.conf}} files are known to cause trouble.<br />
<br />
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.<br />
<br />
Artifacts may also be related to [[kernel mode setting]]. Consider [[#Disable KMS|disabling KMS]].<br />
<br />
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EXAPixmaps" "off"<br />
EndSection<br />
<br />
Further tweaking could be done by disabling {{ic|AccelDFS}}:<br />
<br />
Option "AccelDFS" "off"<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
e.g. When EDID fails on a DisplayPort connection. <br />
<br />
This issue is covered on the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].<br />
<br />
=== Slow performance with open-source drivers ===<br />
<br />
{{Note|Make sure you are member of '''video''' group.}}<br />
<br />
Some cards can be installed by default trying to use [[ATI#AMD/Ati cards and kernel mode-setting (KMS)|KMS]]. You can check whether this is your case running:<br />
dmesg | egrep "drm|radeon"<br />
<br />
This command might show something like this, meaning it is trying to default to KMS:<br />
[drm] radeon default to kernel modesetting.<br />
...<br />
[drm:radeon_driver_load_kms] *ERROR* Failed to initialize radeon, disabling IOCTL<br />
<br />
If your card is not supported by KMS (anything older than r100), then you can [[ATI#Disable KMS|disable KMS]]. This should fix the problem.<br />
<br />
=== AGP is disabled (with KMS) ===<br />
<br />
If you experience poor performance and dmesg shows something like this<br />
[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19<br />
then check if the agp driver for your motherboard (e.g., {{ic|via_agp}}, {{ic|intel_agp}} etc.) is loaded before the {{ic|radeon}} module, see [[ATI#Enabling KMS|Enabling KMS]].<br />
<br />
=== TV showing a black border around the screen ===<br />
<br />
When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see [[Wikipedia:Overscan]]) can be turned off using xrandr:<br />
xrandr --output HDMI-0 --set underscan off<br />
<br />
=== Black screen with mouse cursor on resume from suspend in X ===<br />
<br />
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance_tuning|performance tuning]] for more information.<br />
<br />
=== No desktop effects in KDE4 with X1300 and Radeon driver ===<br />
<br />
A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}. <br />
<br />
Add:<br />
DisableChecks=true<br />
<br />
To the [Compositing] section. Ensure that compositing is enabled with:<br />
Enabled=true<br />
<br />
=== Black screen and no console, but X works in KMS ===<br />
<br />
This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:<br />
fbcon=map:1<br />
This will tell the fbcon to map itself to the {{ic|/dev/fb1}} framebuffer dev and not the {{ic|/dev/fb0}}, that in our case exist on the wrong graphics card.<br />
<br />
=== Some 3D applications show textures as all black or crash ===<br />
<br />
You might need texture compression support, which is not included with the open source driver. Install {{Pkg|libtxc_dxtn}} (and {{Pkg|lib32-libtxc_dxtn}} for multilib systems).<br />
<br />
=== 2D performance (e.g. scrolling) is slow ===<br />
<br />
If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.<br />
<br />
Bellow is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "MigrationHeuristic" "greedy"<br />
EndSection<br />
}}<br />
<br />
=== ATI X1600 (RV530 series) 3D application show black windows ===<br />
<br />
There are three possible solutions:<br />
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].<br />
* If this doesn't work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.<br />
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{ic|driconf}} via pacman and set that option in {{ic|~/.drirc}}.<br />
<br />
=== Vertical colored stripes on chipset RS482 (Xpress 200M Series) with/out KMS ===<br />
<br />
The bug :With the graphical chipset Xpress 200M Series (Radeon Xpress 1150), booting with KMS gives you sometimes, as soon as Xorg boots, a screen with many vertical colored stripes. You cannot {{ic|Alt+Sys+K}} or do anything. Take a look {{Bug|21918}} for more information,<br />
How to fixed ? : disable dri (needn't to disable kms)<br />
Side effert: if i disable "dri" and use no kernel options (no "nomodeset") i see the vertical stripes at boot, only for 5 seconds, before having kdm displayed. Then, i have the same results.<br />
If I start for example KDE Desktop Effects, i will see again the vertical stripes for 5 seconds...and return to kdm ! :)</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=ATI&diff=274244ATI2013-09-03T15:23:10Z<p>Lordheavy: /* With KMS enabled */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[cs:ATI]]<br />
[[de:ATI]]<br />
[[es:ATI]]<br />
[[fr:ATI]]<br />
[[it:ATI]]<br />
[[ja:ATI]]<br />
[[pl:ATI]]<br />
[[ru:ATI]]<br />
[[tr:ATI]]<br />
[[zh-CN:ATI]]<br />
{{Article summary start}}<br />
{{Article summary text|An overview of the open source ATI/AMD video card driver.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|AMD Catalyst}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary end}}<br />
<br />
Owners of '''ATI/AMD''' video cards have a choice between AMD's [[AMD Catalyst|proprietary driver]] ({{AUR|catalyst}}) and the open source driver ({{Pkg|xf86-video-ati}}). This article covers the open source driver.<br />
<br />
The open source driver is currently not ''on par'' with the proprietary driver in terms of 3D performance on newer cards or reliable TV-out support. It does, however, offer better dual-head support, excellent 2D acceleration, and provide sufficient 3D acceleration for OpenGL-accelerated [[window manager]]s, such as [[Compiz]] or KWin.<br />
<br />
If unsure, try the open source driver first, it will suit most needs and is generally less problematic (see the [http://www.x.org/wiki/RadeonFeature feature matrix] for details).<br />
<br />
== Naming conventions ==<br />
<br />
ATI's [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).<br />
<br />
For a table of core and product series, see [[Wikipedia:Comparison of AMD graphics processing units]].<br />
<br />
== Overview ==<br />
<br />
The {{ic|xf86-video-ati}} (radeon) driver:<br />
*Works with Radeon chipsets up to HD 6xxx and 7xxxM (latest Northern Islands chipsets).<br />
**Radeons in the HD 77xx (Southern Islands) series are partially supported. Check the [http://www.x.org/wiki/RadeonFeature feature matrix] for unsupported features.<br />
**Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D acceleration are provided.<br />
**Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides.<br />
*Supports DRI1, RandR 1.2/1.3, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2 (with the latest Linux kernel, libdrm and Mesa versions).<br />
<br />
Generally, '''xf86-video-ati''' should be your first choice, no matter which ATI card you own. In case you need to use a driver for newer ATI cards, you should consider the proprietary '''catalyst''' driver.<br />
<br />
{{Note|'''xf86-video-ati''' is specified as '''''radeon''''' for the kernel and in {{ic|xorg.conf}}. }}<br />
<br />
== Installation ==<br />
<br />
If Catalyst/{{ic|fglrx}} has been previously installed, see [[ATI Catalyst#Uninstallation|here]].<br />
<br />
=== Installing xf86-video-ati ===<br />
<br />
[[pacman|Install]] {{Pkg|xf86-video-ati}}, available in the [[official repositories]]. <br />
<br />
The -git version of the driver and other needed packages (linux-git, etc) can be found in the [https://bbs.archlinux.org/viewtopic.php?id=79509&p=1 radeon repository] or the [[AUR]].<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Kernel mode-setting (KMS) ==<br />
<br />
{{Tip|If you have problems with the resolution, check [[Kernel_Mode_Setting#Forcing_modes_and_EDID|this page]].}}<br />
<br />
[[KMS]] enables native resolution in the framebuffer and allows for instant console (tty) switching. KMS also enables newer technologies (such as DRI2) which will help reduce artifacts and increase 3D performance, even kernel space power-saving.<br />
<br />
KMS for ATI video cards requires the [[Xorg]] free video user space driver {{Pkg|xf86-video-ati}}.<br />
<br />
{{Note| KMS is '''enabled''' by default for autodetected ATI/AMD cards. This section remains for configurations outside stock. }}<br />
<br />
==== Early start ====<br />
<br />
''These two methods will start KMS as early as possible in the [[boot process]].''<br />
<br />
1. Remove all conflicting UMS drivers from kernel command line:<br />
* Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. <br />
* AGP speed can be set with {{ic|<nowiki>radeon.agpmode=x</nowiki>}} kernel option, where x is 1, 2, 4, 8 (AGP speed) or -1 (PCI mode).<br />
<br />
2. Otherwise, when the [[initramfs]] is loaded:<br />
* If you have a special kernel outside of stock {{ic|-ARCH}} (e.g. linux-zen), remember to use a separate ''mkinitcpio'' configuration file (e.g. {{ic|/etc/mkinitcpio-zen.conf}}) and not {{ic|/etc/mkinitcpio.conf}}.<br />
* Remove any framebuffer related modules from your ''mkinitcpio'' file.<br />
* Add {{ic|radeon}} to {{ic|MODULES}} array in your ''mkinitcpio'' file. For AGP support, it is necessary to add {{ic|intel_agp}} (or {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, {{ic|amd64_agp}} etc.) before the {{ic|radeon}} module.<br />
* Re-generate your [[mkinitcpio#Image_creation_and_activation | initramfs]].<br />
<br />
Finally, '''Reboot''' the system.<br />
<br />
==== Late start ====<br />
<br />
''With this choice, KMS will be enabled when modules are loaded during the [[boot process]].''<br />
<br />
If you have a special kernel (e.g. linux-zen), remember to use appropriate mkinitcpio configuration file, e.g. {{ic|/etc/mkinitcpio-zen.conf}}. These instructions are written for the default kernel ({{Pkg|linux}}).<br />
{{Note| For AGP support, it may be necessary to add {{ic|intel_agp}}, {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, or {{ic|amd64_agp}}) to appropriate .conf files in {{ic|/etc/modules-load.d}}.}}<br />
<br />
# Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. Remove any framebuffer related modules from {{ic|/etc/mkinitcpio.conf}}. {{ic|<nowiki>video=</nowiki>}} can now be used in conjunction with KMS.<br />
# '''Reboot''' the system.<br />
<br />
== Performance tuning ==<br />
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.<br />
<br />
'''ColorTiling''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU<br />
<br />
Option "ColorTiling" "on"<br />
<br />
'''Acceleration architecture'''; this will work only on '''newer''' cards. If you enable this and then cannot get back into X, remove it. <br />
<br />
Option "AccelMethod" "EXA"<br />
<br />
'''Page Flip''' is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA.<br />
<br />
Option "EnablePageFlip" "on"<br />
<br />
'''EXAVSync ''' option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips.<br />
Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled.<br />
<br />
Option "EXAVSync" "yes"<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default<br />
Option "EnablePageFlip" "on" #supported on all R/RV/RS4xx and older hardware, and set on by default<br />
Option "AccelMethod" "EXA" #valid options are XAA, EXA and Glamor. EXA is the default<br />
Option "RenderAccel" "on" #enabled by default on all radeon hardware<br />
Option "ColorTiling" "on" #enabled by default on RV300 and later radeon cards<br />
Option "EXAVSync" "off" #default is off, otherwise on. Only works '''if EXA activated'''<br />
Option "EXAPixmaps" "on" #when on icreases 2D performance, but may also cause artifacts on some old cards. Only works '''if EXA activated'''<br />
Option "AccelDFS" "on" #default is off, read the radeon manpage for more information<br />
EndSection<br />
}}<br />
<br />
Defining the '''gartsize''', if not autodetected, can be done by adding {{ic|1=radeon.gartsize=32}} into [[kernel parameters]]. Size is in megabytes and 32 is for RV280 cards.<br />
<br />
Alternatively, do it with a modprobe option in {{ic|/etc/modprobe.d/radeon.conf}}:<br />
<br />
options radeon gartsize=32<br />
<br />
'''For further information and other options, read the radeon manpage and the module's info page''': {{ic|man radeon}}, {{ic|modinfo radeon}}.<br />
<br />
A fine tool to try is {{Pkg|driconf}}. It will allow you to modify several settings, like vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).<br />
<br />
=== Deactivating PCI-E 2.0 ===<br />
<br />
Since kernel 3.6, PCI-E v2.0 in '''radeon''' is turned on by default.<br />
<br />
It can be unstable with some motherboards, so it can be deactivated by adding {{ic|1=radeon.pcie_gen2=0}} on the [[Kernel parameters|kernel command line]].<br />
<br />
See [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article] for more information.<br />
<br />
=== Glamor ===<br />
<br />
Glamor is a 2D acceleration method implemented through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.<br />
<br />
Since xf86-video-ati driver-1:7.2.0-1, glamor is automaticaly enabled with radeonsi drivers (Southern Island and superior GFX cards); with other graphic cards you can use it by adding the AccelMethod glamor to your xorg.conf config file in the Device section:<br />
<br />
Option "AccelMethod" "glamor"<br />
<br />
However, you need to add the following section before:<br />
{{bc|<br />
Section "Module"<br />
Load "dri2"<br />
Load "glamoregl" <br />
EndSection<br />
}}<br />
<br />
== Hybrid graphics/AMD Dynamic Switchable Graphics ==<br />
<br />
It is the technology used on recent laptops equiped with two GPUs, one power-efficent (generally Intel integrated card) and one more powerful and more power-hungry (generally Radeon or Nvidia). There are three ways to get it work:<br />
<br />
* If you do not need to run any GPU-hungry application, you can plainly disable the discrete card: {{ic|echo OFF > /sys/kernel/debug/vgaswitcheroo/switch}}. You can do more things with vgaswitcheroo (see [https://help.ubuntu.com/community/HybridGraphics#Using_vga_switcheroo Ubuntu wiki] for more information) but ultimately at best one card is bound to one graphic session, you cannot use both on one graphic session.<br />
* You can use [[PRIME]]. It is the proper way to use hybrid graphics on Linux but still requires a bit of manual intervention from the user.<br />
* You can also use [[bumblebee]] with radeon, there is a {{AUR|bumblebee-amd-git}} package on [[AUR]].<br />
<br />
==Powersaving==<br />
<br />
The powersaving part is totally different with and without KMS.<br />
<br />
=== With kernel prior to 3.11.x ===<br />
<br />
{{Note|Power saving through KMS is still a work in progress, some chips may have problems with it.}}<br />
<br />
With the radeon driver, power saving is disabled by default but the kernel provides a method to enable it using sysfs.<br />
<br />
You can choose between two different methods. It's hard to say which is the best, you have to try it yourself.<br />
<br />
==== Dynamic frequency switching ====<br />
<br />
This method dynamically changes the frequency depending on GPU load, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.<br />
<br />
It can be activated by simply running the following command:<br />
<br />
# echo dynpm > /sys/class/drm/card0/device/power_method<br />
<br />
==== Profile-based frequency switching ====<br />
<br />
This method will allow you to select one of the five profiles (described below). Different profiles, for the most part, end up changing the frequency/voltage of the GPU. This method is not as aggressive, but is more stable and flicker free and works with multiple heads active.<br />
<br />
To activate the method, run the following command:<br />
<br />
# echo profile > /sys/class/drm/card0/device/power_method<br />
<br />
Select one of the available profiles:<br />
* {{ic|default}} uses the default clocks and does not change the power state. This is the default behaviour.<br />
* {{ic|auto}} selects between {{ic|mid}} and {{ic|high}} power states based on the whether the system is on battery power or not. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|low}} forces the gpu to be in the {{ic|low}} power state all the time. Note that {{ic|low}} can cause display problems on some laptops, which is why {{ic|auto}} only uses {{ic|low}} when monitors are off.<br />
* {{ic|mid}} forces the gpu to be in the {{ic|mid}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|high}} forces the gpu to be in the {{ic|high}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
<br />
As an example, we will activate the {{ic|low}} profile (replace {{ic|low}} with any of the aforementioned profiles as necessary):<br />
<br />
# echo low > /sys/class/drm/card0/device/power_profile<br />
<br />
==== Persistent configuration ====<br />
<br />
The activation described above is not persistent, it will not last when the computer is rebooted. To make it persistent, you can use [[systemd#Temporary files|systemd-tmpfiles]] (example for [[#Dynamic frequency switching]]):<br />
<br />
{{hc|/etc/tmpfiles.d/radeon-pm.conf|<nowiki><br />
w /sys/class/drm/card0/device/power_method - - - - dynpm<br />
</nowiki>}}<br />
<br />
Alternatively, you may use this [[udev]] rule instead (example for [[#Profile-based frequency switching]]):<br />
<br />
{{hc|/etc/udev/rules.d/30-radeon-pm.rules|<nowiki><br />
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low"<br />
</nowiki>}}<br />
<br />
{{Note|If the above rule is failing, try removing the {{ic|dri/}} prefix.}}<br />
<br />
==== Graphical tools ====<br />
<br />
* {{App|Radeon-tray|A small program to control the power profiles of your Radeon card via systray icon. It is written in PyQt4 and is suitable for non-Gnome users.|https://github.com/StuntsPT/Radeon-tray|}}<br />
* {{App|power-play-switcher|A gui for changing powerplay setting of the open source driver for ati radeon video cards.|https://code.google.com/p/power-play-switcher/|{{AUR|power-play-switcher}}}}<br />
* {{App|Gnome-shell-extension-Radeon-Power-Profile-Manager|A small extension for Gnome-shell that will allow you to change the power profile of your radeon card when using the open source drivers.|https://github.com/StuntsPT/shell-extension-radeon-power-profile-manager|{{AUR|gnome-shell-extension-radeon-ppm}} {{AUR|gnome-shell-extension-radeon-power-profile-manager-git}}}}<br />
<br />
==== Other notes ====<br />
<br />
Power management is supported on all asics (r1xx-evergreen) that include the appropriate power state tables in the vbios; not all boards do (especially older desktop cards).<br />
<br />
To view the speed that the GPU is running at, perform the following command and you will get something like this output:<br />
<br />
{{hc|$ cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki><br />
state: PM_STATE_ENABLED<br />
default engine clock: 300000 kHz<br />
current engine clock: 300720 kHz<br />
default memory clock: 200000 kHz<br />
</nowiki>}}<br />
<br />
If {{ic|/sys/kernel/debug}} is empty, run this command:<br />
<br />
# mount -t debugfs none /sys/kernel/debug<br />
<br />
To permanently mount, add the following line to {{ic|/etc/fstab}}:<br />
<br />
debugfs /sys/kernel/debug debugfs defaults 0 0<br />
<br />
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.<br />
<br />
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via [[lm_sensors]] tools or via sysfs in {{ic|/sys/class/hwmon}}.<br />
<br />
== TV out ==<br />
<br />
{{out of date}}<br />
Since August 2007, there is TV-out support for all Radeons with integrated TV-out.<br />
<br />
It is somewhat limited for now, it does not always autodetect the output correctly and only NTSC mode works.<br />
<br />
First, check that you have an S-video output: {{ic|xrandr}} should give you something like<br />
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200<br />
...<br />
S-video disconnected (normal left inverted right x axis y axis)<br />
<br />
Setting tv standard to use:<br />
xrandr --output S-video --set "tv standard" ntsc<br />
<br />
Adding a mode for it (currently it supports only 800x600):<br />
xrandr --addmode S-video 800x600<br />
<br />
I will go for a clone mode:<br />
xrandr --output S-video --same-as VGA-0<br />
<br />
So far so good. Now let us try to see what we have:<br />
xrandr --output S-video --mode 800x600<br />
<br />
At this point you should see a 800x600 version of your desktop on your TV.<br />
<br />
To disable the output, do<br />
xrandr --output S-video --off<br />
<br />
Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.<br />
<br />
To send the output to the TV, I do<br />
xvattr -a XV_CRTC -v 1<br />
<br />
{{Note| you need to install {{AUR|xvattr}} to execute this command.}}<br />
<br />
To switch back to my monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.<br />
<br />
Please see [http://www.x.org/wiki/radeonTV Enabling TV-Out Statically] for how to enable TV-out in your xorg configuration file.<br />
<br />
=== Force TV-out in KMS ===<br />
<br />
Kernel can recognize {{ic|1=video=}} parameter in following form (see [[KMS]] for more details):<br />
<br />
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]<br />
<br />
For example:<br />
<br />
video=DVI-I-1:1280x1024-24@60e<br />
<br />
Parameters with whitespaces must be quoted:<br />
<br />
"video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
Current mkinitcpio implementation also requires {{ic|#}} in front. For example:<br />
<br />
root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
* Grub can pass such command line as is.<br />
* Lilo needs backslashes for doublequotes (append {{ic|1=# \"video=9-pin DIN-1:1024x768-24@60e\"}})<br />
* Grub2: TODO<br />
<br />
You can get list of your video outputs with following command:<br />
<br />
{{bc|<nowiki>$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-</nowiki>}}<br />
<br />
== HDMI audio ==<br />
<br />
HDMI audio is supported by the {{Pkg|xf86-video-ati}} video driver. By default, the necessary kernel module is disabled in kernel versions &gt;&#61;3.0. However, if your Radeon card is listed in the [http://www.x.org/wiki/RadeonFeature Radeon Feature Matrix], you can add {{ic|radeon.audio&#61;1}} to your [[Kernel parameters]]. For example:<br />
<br />
{{hc|/boot/syslinux/syslinux.cfg|<br />
LABEL arch<br />
MENU LABEL Arch Linux<br />
LINUX ../vmlinuz-linux<br />
APPEND root&#61;/dev/sda1 ro radeon.audio&#61;1<br />
INITRD ../initramfs-linux.img<br />
}}<br />
<br />
If HDMI audio doesn't simply work after installing the driver, test your setup with the procedure at [[Advanced_Linux_Sound_Architecture#HDMI_Output_Does_Not_Work]].<br />
<br />
{{note|As of this writing (2013-05-20), drivers for the [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names Southern Islands] cards don't support HDMI Audio.}}<br />
<br />
* The {{ic|radeon.audio}} kernel module only works if [[#Kernel_mode-setting_(KMS)]] is enabled. By default, '''xf86-video-ati''' enables KMS.<br />
* If the sound is distorted try [[PulseAudio#Glitches, skips or crackling|setting {{ic|1=tsched=0}}]] and make sure {{ic|rtkit}} daemon is running.<br />
<br />
== Dual Head setup ==<br />
<br />
=== Independent X screens ===<br />
<br />
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "radeon"<br />
Option "ZaphodHeads" "VGA-0"<br />
VendorName "ATI"<br />
BusID "PCI:1:0:0"<br />
Screen 0<br />
EndSection<br />
<br />
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads" "VGA-0"}}.<br />
<br />
Moreover, this option allows you to easily select the screen you want to mark as primary.<br />
<br />
== Enabling video acceleration ==<br />
<br />
Latest {{Pkg|mesa}} package added support for MPEG1/2 decoding to free drivers, exported via {{Pkg|libvdpau}} and are automaticaly detected.<br />
<br />
You can force used driver by assigning environment variable {{Ic|LIBVA_DRIVER_NAME}} to {{Ic|vdpau}} and {{Ic|VDPAU_DRIVER}} to the name of driver core, e.g.:<br />
<br />
{{hc|1=~/.bashrc|2=<br />
export LIBVA_DRIVER_NAME=vdpau<br />
export VDPAU_DRIVER=r600<br />
}}<br />
<br />
for r600-based cards (all available VDPAU drivers are in {{Ic|/usr/lib/vdpau/}}).<br />
<br />
== Turn vsync off ==<br />
<br />
The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create {{ic|~/.drirc}} (or edit it if it already exists) and add the following section:<br />
{{hc|~/.drirc|<nowiki><br />
<driconf><br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0" /><br />
</application><br />
</device><br />
<!-- Other devices ... --><br />
</driconf><br />
</nowiki>}}<br />
It is effectively '''dri2''', not your video card code (like r600).<br />
<br />
== Troubleshooting ==<br />
<br />
=== Artifacts upon logging in ===<br />
<br />
If encountering artifacts, first try starting X without {{ic|/etc/X11/xorg.conf}}. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured {{ic|xorg.conf}} files are known to cause trouble.<br />
<br />
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.<br />
<br />
Artifacts may also be related to [[kernel mode setting]]. Consider [[#Disable KMS|disabling KMS]].<br />
<br />
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EXAPixmaps" "off"<br />
EndSection<br />
<br />
Further tweaking could be done by disabling {{ic|AccelDFS}}:<br />
<br />
Option "AccelDFS" "off"<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
e.g. When EDID fails on a DisplayPort connection. <br />
<br />
This issue is covered on the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].<br />
<br />
=== Slow performance with open-source drivers ===<br />
<br />
{{Note|Make sure you are member of '''video''' group.}}<br />
<br />
Some cards can be installed by default trying to use [[ATI#AMD/Ati cards and kernel mode-setting (KMS)|KMS]]. You can check whether this is your case running:<br />
dmesg | egrep "drm|radeon"<br />
<br />
This command might show something like this, meaning it is trying to default to KMS:<br />
[drm] radeon default to kernel modesetting.<br />
...<br />
[drm:radeon_driver_load_kms] *ERROR* Failed to initialize radeon, disabling IOCTL<br />
<br />
If your card is not supported by KMS (anything older than r100), then you can [[ATI#Disable KMS|disable KMS]]. This should fix the problem.<br />
<br />
=== AGP is disabled (with KMS) ===<br />
<br />
If you experience poor performance and dmesg shows something like this<br />
[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19<br />
then check if the agp driver for your motherboard (e.g., {{ic|via_agp}}, {{ic|intel_agp}} etc.) is loaded before the {{ic|radeon}} module, see [[ATI#Enabling KMS|Enabling KMS]].<br />
<br />
=== TV showing a black border around the screen ===<br />
<br />
When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see [[Wikipedia:Overscan]]) can be turned off using xrandr:<br />
xrandr --output HDMI-0 --set underscan off<br />
<br />
=== Black screen with mouse cursor on resume from suspend in X ===<br />
<br />
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance_tuning|performance tuning]] for more information.<br />
<br />
=== No desktop effects in KDE4 with X1300 and Radeon driver ===<br />
<br />
A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}. <br />
<br />
Add:<br />
DisableChecks=true<br />
<br />
To the [Compositing] section. Ensure that compositing is enabled with:<br />
Enabled=true<br />
<br />
=== Black screen and no console, but X works in KMS ===<br />
<br />
This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:<br />
fbcon=map:1<br />
This will tell the fbcon to map itself to the {{ic|/dev/fb1}} framebuffer dev and not the {{ic|/dev/fb0}}, that in our case exist on the wrong graphics card.<br />
<br />
=== Some 3D applications show textures as all black or crash ===<br />
<br />
You might need texture compression support, which is not included with the open source driver. Install {{Pkg|libtxc_dxtn}} (and {{Pkg|lib32-libtxc_dxtn}} for multilib systems).<br />
<br />
=== 2D performance (e.g. scrolling) is slow ===<br />
<br />
If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.<br />
<br />
Bellow is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "MigrationHeuristic" "greedy"<br />
EndSection<br />
}}<br />
<br />
=== ATI X1600 (RV530 series) 3D application show black windows ===<br />
<br />
There are three possible solutions:<br />
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].<br />
* If this doesn't work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.<br />
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{ic|driconf}} via pacman and set that option in {{ic|~/.drirc}}.<br />
<br />
=== Vertical colored stripes on chipset RS482 (Xpress 200M Series) with/out KMS ===<br />
<br />
The bug :With the graphical chipset Xpress 200M Series (Radeon Xpress 1150), booting with KMS gives you sometimes, as soon as Xorg boots, a screen with many vertical colored stripes. You cannot {{ic|Alt+Sys+K}} or do anything. Take a look {{Bug|21918}} for more information,<br />
How to fixed ? : disable dri (needn't to disable kms)<br />
Side effert: if i disable "dri" and use no kernel options (no "nomodeset") i see the vertical stripes at boot, only for 5 seconds, before having kdm displayed. Then, i have the same results.<br />
If I start for example KDE Desktop Effects, i will see again the vertical stripes for 5 seconds...and return to kdm ! :)</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=ATI&diff=274243ATI2013-09-03T15:22:45Z<p>Lordheavy: /* Powersaving */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[cs:ATI]]<br />
[[de:ATI]]<br />
[[es:ATI]]<br />
[[fr:ATI]]<br />
[[it:ATI]]<br />
[[ja:ATI]]<br />
[[pl:ATI]]<br />
[[ru:ATI]]<br />
[[tr:ATI]]<br />
[[zh-CN:ATI]]<br />
{{Article summary start}}<br />
{{Article summary text|An overview of the open source ATI/AMD video card driver.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|AMD Catalyst}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary end}}<br />
<br />
Owners of '''ATI/AMD''' video cards have a choice between AMD's [[AMD Catalyst|proprietary driver]] ({{AUR|catalyst}}) and the open source driver ({{Pkg|xf86-video-ati}}). This article covers the open source driver.<br />
<br />
The open source driver is currently not ''on par'' with the proprietary driver in terms of 3D performance on newer cards or reliable TV-out support. It does, however, offer better dual-head support, excellent 2D acceleration, and provide sufficient 3D acceleration for OpenGL-accelerated [[window manager]]s, such as [[Compiz]] or KWin.<br />
<br />
If unsure, try the open source driver first, it will suit most needs and is generally less problematic (see the [http://www.x.org/wiki/RadeonFeature feature matrix] for details).<br />
<br />
== Naming conventions ==<br />
<br />
ATI's [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).<br />
<br />
For a table of core and product series, see [[Wikipedia:Comparison of AMD graphics processing units]].<br />
<br />
== Overview ==<br />
<br />
The {{ic|xf86-video-ati}} (radeon) driver:<br />
*Works with Radeon chipsets up to HD 6xxx and 7xxxM (latest Northern Islands chipsets).<br />
**Radeons in the HD 77xx (Southern Islands) series are partially supported. Check the [http://www.x.org/wiki/RadeonFeature feature matrix] for unsupported features.<br />
**Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D acceleration are provided.<br />
**Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides.<br />
*Supports DRI1, RandR 1.2/1.3, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2 (with the latest Linux kernel, libdrm and Mesa versions).<br />
<br />
Generally, '''xf86-video-ati''' should be your first choice, no matter which ATI card you own. In case you need to use a driver for newer ATI cards, you should consider the proprietary '''catalyst''' driver.<br />
<br />
{{Note|'''xf86-video-ati''' is specified as '''''radeon''''' for the kernel and in {{ic|xorg.conf}}. }}<br />
<br />
== Installation ==<br />
<br />
If Catalyst/{{ic|fglrx}} has been previously installed, see [[ATI Catalyst#Uninstallation|here]].<br />
<br />
=== Installing xf86-video-ati ===<br />
<br />
[[pacman|Install]] {{Pkg|xf86-video-ati}}, available in the [[official repositories]]. <br />
<br />
The -git version of the driver and other needed packages (linux-git, etc) can be found in the [https://bbs.archlinux.org/viewtopic.php?id=79509&p=1 radeon repository] or the [[AUR]].<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Kernel mode-setting (KMS) ==<br />
<br />
{{Tip|If you have problems with the resolution, check [[Kernel_Mode_Setting#Forcing_modes_and_EDID|this page]].}}<br />
<br />
[[KMS]] enables native resolution in the framebuffer and allows for instant console (tty) switching. KMS also enables newer technologies (such as DRI2) which will help reduce artifacts and increase 3D performance, even kernel space power-saving.<br />
<br />
KMS for ATI video cards requires the [[Xorg]] free video user space driver {{Pkg|xf86-video-ati}}.<br />
<br />
{{Note| KMS is '''enabled''' by default for autodetected ATI/AMD cards. This section remains for configurations outside stock. }}<br />
<br />
==== Early start ====<br />
<br />
''These two methods will start KMS as early as possible in the [[boot process]].''<br />
<br />
1. Remove all conflicting UMS drivers from kernel command line:<br />
* Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. <br />
* AGP speed can be set with {{ic|<nowiki>radeon.agpmode=x</nowiki>}} kernel option, where x is 1, 2, 4, 8 (AGP speed) or -1 (PCI mode).<br />
<br />
2. Otherwise, when the [[initramfs]] is loaded:<br />
* If you have a special kernel outside of stock {{ic|-ARCH}} (e.g. linux-zen), remember to use a separate ''mkinitcpio'' configuration file (e.g. {{ic|/etc/mkinitcpio-zen.conf}}) and not {{ic|/etc/mkinitcpio.conf}}.<br />
* Remove any framebuffer related modules from your ''mkinitcpio'' file.<br />
* Add {{ic|radeon}} to {{ic|MODULES}} array in your ''mkinitcpio'' file. For AGP support, it is necessary to add {{ic|intel_agp}} (or {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, {{ic|amd64_agp}} etc.) before the {{ic|radeon}} module.<br />
* Re-generate your [[mkinitcpio#Image_creation_and_activation | initramfs]].<br />
<br />
Finally, '''Reboot''' the system.<br />
<br />
==== Late start ====<br />
<br />
''With this choice, KMS will be enabled when modules are loaded during the [[boot process]].''<br />
<br />
If you have a special kernel (e.g. linux-zen), remember to use appropriate mkinitcpio configuration file, e.g. {{ic|/etc/mkinitcpio-zen.conf}}. These instructions are written for the default kernel ({{Pkg|linux}}).<br />
{{Note| For AGP support, it may be necessary to add {{ic|intel_agp}}, {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, or {{ic|amd64_agp}}) to appropriate .conf files in {{ic|/etc/modules-load.d}}.}}<br />
<br />
# Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. Remove any framebuffer related modules from {{ic|/etc/mkinitcpio.conf}}. {{ic|<nowiki>video=</nowiki>}} can now be used in conjunction with KMS.<br />
# '''Reboot''' the system.<br />
<br />
== Performance tuning ==<br />
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.<br />
<br />
'''ColorTiling''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU<br />
<br />
Option "ColorTiling" "on"<br />
<br />
'''Acceleration architecture'''; this will work only on '''newer''' cards. If you enable this and then cannot get back into X, remove it. <br />
<br />
Option "AccelMethod" "EXA"<br />
<br />
'''Page Flip''' is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA.<br />
<br />
Option "EnablePageFlip" "on"<br />
<br />
'''EXAVSync ''' option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips.<br />
Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled.<br />
<br />
Option "EXAVSync" "yes"<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default<br />
Option "EnablePageFlip" "on" #supported on all R/RV/RS4xx and older hardware, and set on by default<br />
Option "AccelMethod" "EXA" #valid options are XAA, EXA and Glamor. EXA is the default<br />
Option "RenderAccel" "on" #enabled by default on all radeon hardware<br />
Option "ColorTiling" "on" #enabled by default on RV300 and later radeon cards<br />
Option "EXAVSync" "off" #default is off, otherwise on. Only works '''if EXA activated'''<br />
Option "EXAPixmaps" "on" #when on icreases 2D performance, but may also cause artifacts on some old cards. Only works '''if EXA activated'''<br />
Option "AccelDFS" "on" #default is off, read the radeon manpage for more information<br />
EndSection<br />
}}<br />
<br />
Defining the '''gartsize''', if not autodetected, can be done by adding {{ic|1=radeon.gartsize=32}} into [[kernel parameters]]. Size is in megabytes and 32 is for RV280 cards.<br />
<br />
Alternatively, do it with a modprobe option in {{ic|/etc/modprobe.d/radeon.conf}}:<br />
<br />
options radeon gartsize=32<br />
<br />
'''For further information and other options, read the radeon manpage and the module's info page''': {{ic|man radeon}}, {{ic|modinfo radeon}}.<br />
<br />
A fine tool to try is {{Pkg|driconf}}. It will allow you to modify several settings, like vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).<br />
<br />
=== Deactivating PCI-E 2.0 ===<br />
<br />
Since kernel 3.6, PCI-E v2.0 in '''radeon''' is turned on by default.<br />
<br />
It can be unstable with some motherboards, so it can be deactivated by adding {{ic|1=radeon.pcie_gen2=0}} on the [[Kernel parameters|kernel command line]].<br />
<br />
See [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article] for more information.<br />
<br />
=== Glamor ===<br />
<br />
Glamor is a 2D acceleration method implemented through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.<br />
<br />
Since xf86-video-ati driver-1:7.2.0-1, glamor is automaticaly enabled with radeonsi drivers (Southern Island and superior GFX cards); with other graphic cards you can use it by adding the AccelMethod glamor to your xorg.conf config file in the Device section:<br />
<br />
Option "AccelMethod" "glamor"<br />
<br />
However, you need to add the following section before:<br />
{{bc|<br />
Section "Module"<br />
Load "dri2"<br />
Load "glamoregl" <br />
EndSection<br />
}}<br />
<br />
== Hybrid graphics/AMD Dynamic Switchable Graphics ==<br />
<br />
It is the technology used on recent laptops equiped with two GPUs, one power-efficent (generally Intel integrated card) and one more powerful and more power-hungry (generally Radeon or Nvidia). There are three ways to get it work:<br />
<br />
* If you do not need to run any GPU-hungry application, you can plainly disable the discrete card: {{ic|echo OFF > /sys/kernel/debug/vgaswitcheroo/switch}}. You can do more things with vgaswitcheroo (see [https://help.ubuntu.com/community/HybridGraphics#Using_vga_switcheroo Ubuntu wiki] for more information) but ultimately at best one card is bound to one graphic session, you cannot use both on one graphic session.<br />
* You can use [[PRIME]]. It is the proper way to use hybrid graphics on Linux but still requires a bit of manual intervention from the user.<br />
* You can also use [[bumblebee]] with radeon, there is a {{AUR|bumblebee-amd-git}} package on [[AUR]].<br />
<br />
==Powersaving==<br />
<br />
The powersaving part is totally different with and without KMS.<br />
<br />
=== With KMS enabled ===<br />
<br />
{{Note|Power saving through KMS is still a work in progress, some chips may have problems with it.}}<br />
<br />
With the radeon driver, power saving is disabled by default but the kernel provides a method to enable it using sysfs.<br />
<br />
You can choose between two different methods. It's hard to say which is the best, you have to try it yourself.<br />
<br />
==== Dynamic frequency switching ====<br />
<br />
This method dynamically changes the frequency depending on GPU load, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.<br />
<br />
It can be activated by simply running the following command:<br />
<br />
# echo dynpm > /sys/class/drm/card0/device/power_method<br />
<br />
==== Profile-based frequency switching ====<br />
<br />
This method will allow you to select one of the five profiles (described below). Different profiles, for the most part, end up changing the frequency/voltage of the GPU. This method is not as aggressive, but is more stable and flicker free and works with multiple heads active.<br />
<br />
To activate the method, run the following command:<br />
<br />
# echo profile > /sys/class/drm/card0/device/power_method<br />
<br />
Select one of the available profiles:<br />
* {{ic|default}} uses the default clocks and does not change the power state. This is the default behaviour.<br />
* {{ic|auto}} selects between {{ic|mid}} and {{ic|high}} power states based on the whether the system is on battery power or not. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|low}} forces the gpu to be in the {{ic|low}} power state all the time. Note that {{ic|low}} can cause display problems on some laptops, which is why {{ic|auto}} only uses {{ic|low}} when monitors are off.<br />
* {{ic|mid}} forces the gpu to be in the {{ic|mid}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|high}} forces the gpu to be in the {{ic|high}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
<br />
As an example, we will activate the {{ic|low}} profile (replace {{ic|low}} with any of the aforementioned profiles as necessary):<br />
<br />
# echo low > /sys/class/drm/card0/device/power_profile<br />
<br />
==== Persistent configuration ====<br />
<br />
The activation described above is not persistent, it will not last when the computer is rebooted. To make it persistent, you can use [[systemd#Temporary files|systemd-tmpfiles]] (example for [[#Dynamic frequency switching]]):<br />
<br />
{{hc|/etc/tmpfiles.d/radeon-pm.conf|<nowiki><br />
w /sys/class/drm/card0/device/power_method - - - - dynpm<br />
</nowiki>}}<br />
<br />
Alternatively, you may use this [[udev]] rule instead (example for [[#Profile-based frequency switching]]):<br />
<br />
{{hc|/etc/udev/rules.d/30-radeon-pm.rules|<nowiki><br />
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low"<br />
</nowiki>}}<br />
<br />
{{Note|If the above rule is failing, try removing the {{ic|dri/}} prefix.}}<br />
<br />
==== Graphical tools ====<br />
<br />
* {{App|Radeon-tray|A small program to control the power profiles of your Radeon card via systray icon. It is written in PyQt4 and is suitable for non-Gnome users.|https://github.com/StuntsPT/Radeon-tray|}}<br />
* {{App|power-play-switcher|A gui for changing powerplay setting of the open source driver for ati radeon video cards.|https://code.google.com/p/power-play-switcher/|{{AUR|power-play-switcher}}}}<br />
* {{App|Gnome-shell-extension-Radeon-Power-Profile-Manager|A small extension for Gnome-shell that will allow you to change the power profile of your radeon card when using the open source drivers.|https://github.com/StuntsPT/shell-extension-radeon-power-profile-manager|{{AUR|gnome-shell-extension-radeon-ppm}} {{AUR|gnome-shell-extension-radeon-power-profile-manager-git}}}}<br />
<br />
==== Other notes ====<br />
<br />
Power management is supported on all asics (r1xx-evergreen) that include the appropriate power state tables in the vbios; not all boards do (especially older desktop cards).<br />
<br />
To view the speed that the GPU is running at, perform the following command and you will get something like this output:<br />
<br />
{{hc|$ cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki><br />
state: PM_STATE_ENABLED<br />
default engine clock: 300000 kHz<br />
current engine clock: 300720 kHz<br />
default memory clock: 200000 kHz<br />
</nowiki>}}<br />
<br />
If {{ic|/sys/kernel/debug}} is empty, run this command:<br />
<br />
# mount -t debugfs none /sys/kernel/debug<br />
<br />
To permanently mount, add the following line to {{ic|/etc/fstab}}:<br />
<br />
debugfs /sys/kernel/debug debugfs defaults 0 0<br />
<br />
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.<br />
<br />
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via [[lm_sensors]] tools or via sysfs in {{ic|/sys/class/hwmon}}.<br />
<br />
== TV out ==<br />
<br />
{{out of date}}<br />
Since August 2007, there is TV-out support for all Radeons with integrated TV-out.<br />
<br />
It is somewhat limited for now, it does not always autodetect the output correctly and only NTSC mode works.<br />
<br />
First, check that you have an S-video output: {{ic|xrandr}} should give you something like<br />
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200<br />
...<br />
S-video disconnected (normal left inverted right x axis y axis)<br />
<br />
Setting tv standard to use:<br />
xrandr --output S-video --set "tv standard" ntsc<br />
<br />
Adding a mode for it (currently it supports only 800x600):<br />
xrandr --addmode S-video 800x600<br />
<br />
I will go for a clone mode:<br />
xrandr --output S-video --same-as VGA-0<br />
<br />
So far so good. Now let us try to see what we have:<br />
xrandr --output S-video --mode 800x600<br />
<br />
At this point you should see a 800x600 version of your desktop on your TV.<br />
<br />
To disable the output, do<br />
xrandr --output S-video --off<br />
<br />
Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.<br />
<br />
To send the output to the TV, I do<br />
xvattr -a XV_CRTC -v 1<br />
<br />
{{Note| you need to install {{AUR|xvattr}} to execute this command.}}<br />
<br />
To switch back to my monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.<br />
<br />
Please see [http://www.x.org/wiki/radeonTV Enabling TV-Out Statically] for how to enable TV-out in your xorg configuration file.<br />
<br />
=== Force TV-out in KMS ===<br />
<br />
Kernel can recognize {{ic|1=video=}} parameter in following form (see [[KMS]] for more details):<br />
<br />
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]<br />
<br />
For example:<br />
<br />
video=DVI-I-1:1280x1024-24@60e<br />
<br />
Parameters with whitespaces must be quoted:<br />
<br />
"video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
Current mkinitcpio implementation also requires {{ic|#}} in front. For example:<br />
<br />
root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
* Grub can pass such command line as is.<br />
* Lilo needs backslashes for doublequotes (append {{ic|1=# \"video=9-pin DIN-1:1024x768-24@60e\"}})<br />
* Grub2: TODO<br />
<br />
You can get list of your video outputs with following command:<br />
<br />
{{bc|<nowiki>$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-</nowiki>}}<br />
<br />
== HDMI audio ==<br />
<br />
HDMI audio is supported by the {{Pkg|xf86-video-ati}} video driver. By default, the necessary kernel module is disabled in kernel versions &gt;&#61;3.0. However, if your Radeon card is listed in the [http://www.x.org/wiki/RadeonFeature Radeon Feature Matrix], you can add {{ic|radeon.audio&#61;1}} to your [[Kernel parameters]]. For example:<br />
<br />
{{hc|/boot/syslinux/syslinux.cfg|<br />
LABEL arch<br />
MENU LABEL Arch Linux<br />
LINUX ../vmlinuz-linux<br />
APPEND root&#61;/dev/sda1 ro radeon.audio&#61;1<br />
INITRD ../initramfs-linux.img<br />
}}<br />
<br />
If HDMI audio doesn't simply work after installing the driver, test your setup with the procedure at [[Advanced_Linux_Sound_Architecture#HDMI_Output_Does_Not_Work]].<br />
<br />
{{note|As of this writing (2013-05-20), drivers for the [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names Southern Islands] cards don't support HDMI Audio.}}<br />
<br />
* The {{ic|radeon.audio}} kernel module only works if [[#Kernel_mode-setting_(KMS)]] is enabled. By default, '''xf86-video-ati''' enables KMS.<br />
* If the sound is distorted try [[PulseAudio#Glitches, skips or crackling|setting {{ic|1=tsched=0}}]] and make sure {{ic|rtkit}} daemon is running.<br />
<br />
== Dual Head setup ==<br />
<br />
=== Independent X screens ===<br />
<br />
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "radeon"<br />
Option "ZaphodHeads" "VGA-0"<br />
VendorName "ATI"<br />
BusID "PCI:1:0:0"<br />
Screen 0<br />
EndSection<br />
<br />
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads" "VGA-0"}}.<br />
<br />
Moreover, this option allows you to easily select the screen you want to mark as primary.<br />
<br />
== Enabling video acceleration ==<br />
<br />
Latest {{Pkg|mesa}} package added support for MPEG1/2 decoding to free drivers, exported via {{Pkg|libvdpau}} and are automaticaly detected.<br />
<br />
You can force used driver by assigning environment variable {{Ic|LIBVA_DRIVER_NAME}} to {{Ic|vdpau}} and {{Ic|VDPAU_DRIVER}} to the name of driver core, e.g.:<br />
<br />
{{hc|1=~/.bashrc|2=<br />
export LIBVA_DRIVER_NAME=vdpau<br />
export VDPAU_DRIVER=r600<br />
}}<br />
<br />
for r600-based cards (all available VDPAU drivers are in {{Ic|/usr/lib/vdpau/}}).<br />
<br />
== Turn vsync off ==<br />
<br />
The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create {{ic|~/.drirc}} (or edit it if it already exists) and add the following section:<br />
{{hc|~/.drirc|<nowiki><br />
<driconf><br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0" /><br />
</application><br />
</device><br />
<!-- Other devices ... --><br />
</driconf><br />
</nowiki>}}<br />
It is effectively '''dri2''', not your video card code (like r600).<br />
<br />
== Troubleshooting ==<br />
<br />
=== Artifacts upon logging in ===<br />
<br />
If encountering artifacts, first try starting X without {{ic|/etc/X11/xorg.conf}}. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured {{ic|xorg.conf}} files are known to cause trouble.<br />
<br />
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.<br />
<br />
Artifacts may also be related to [[kernel mode setting]]. Consider [[#Disable KMS|disabling KMS]].<br />
<br />
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EXAPixmaps" "off"<br />
EndSection<br />
<br />
Further tweaking could be done by disabling {{ic|AccelDFS}}:<br />
<br />
Option "AccelDFS" "off"<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
e.g. When EDID fails on a DisplayPort connection. <br />
<br />
This issue is covered on the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].<br />
<br />
=== Slow performance with open-source drivers ===<br />
<br />
{{Note|Make sure you are member of '''video''' group.}}<br />
<br />
Some cards can be installed by default trying to use [[ATI#AMD/Ati cards and kernel mode-setting (KMS)|KMS]]. You can check whether this is your case running:<br />
dmesg | egrep "drm|radeon"<br />
<br />
This command might show something like this, meaning it is trying to default to KMS:<br />
[drm] radeon default to kernel modesetting.<br />
...<br />
[drm:radeon_driver_load_kms] *ERROR* Failed to initialize radeon, disabling IOCTL<br />
<br />
If your card is not supported by KMS (anything older than r100), then you can [[ATI#Disable KMS|disable KMS]]. This should fix the problem.<br />
<br />
=== AGP is disabled (with KMS) ===<br />
<br />
If you experience poor performance and dmesg shows something like this<br />
[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19<br />
then check if the agp driver for your motherboard (e.g., {{ic|via_agp}}, {{ic|intel_agp}} etc.) is loaded before the {{ic|radeon}} module, see [[ATI#Enabling KMS|Enabling KMS]].<br />
<br />
=== TV showing a black border around the screen ===<br />
<br />
When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see [[Wikipedia:Overscan]]) can be turned off using xrandr:<br />
xrandr --output HDMI-0 --set underscan off<br />
<br />
=== Black screen with mouse cursor on resume from suspend in X ===<br />
<br />
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance_tuning|performance tuning]] for more information.<br />
<br />
=== No desktop effects in KDE4 with X1300 and Radeon driver ===<br />
<br />
A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}. <br />
<br />
Add:<br />
DisableChecks=true<br />
<br />
To the [Compositing] section. Ensure that compositing is enabled with:<br />
Enabled=true<br />
<br />
=== Black screen and no console, but X works in KMS ===<br />
<br />
This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:<br />
fbcon=map:1<br />
This will tell the fbcon to map itself to the {{ic|/dev/fb1}} framebuffer dev and not the {{ic|/dev/fb0}}, that in our case exist on the wrong graphics card.<br />
<br />
=== Some 3D applications show textures as all black or crash ===<br />
<br />
You might need texture compression support, which is not included with the open source driver. Install {{Pkg|libtxc_dxtn}} (and {{Pkg|lib32-libtxc_dxtn}} for multilib systems).<br />
<br />
=== 2D performance (e.g. scrolling) is slow ===<br />
<br />
If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.<br />
<br />
Bellow is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "MigrationHeuristic" "greedy"<br />
EndSection<br />
}}<br />
<br />
=== ATI X1600 (RV530 series) 3D application show black windows ===<br />
<br />
There are three possible solutions:<br />
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].<br />
* If this doesn't work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.<br />
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{ic|driconf}} via pacman and set that option in {{ic|~/.drirc}}.<br />
<br />
=== Vertical colored stripes on chipset RS482 (Xpress 200M Series) with/out KMS ===<br />
<br />
The bug :With the graphical chipset Xpress 200M Series (Radeon Xpress 1150), booting with KMS gives you sometimes, as soon as Xorg boots, a screen with many vertical colored stripes. You cannot {{ic|Alt+Sys+K}} or do anything. Take a look {{Bug|21918}} for more information,<br />
How to fixed ? : disable dri (needn't to disable kms)<br />
Side effert: if i disable "dri" and use no kernel options (no "nomodeset") i see the vertical stripes at boot, only for 5 seconds, before having kdm displayed. Then, i have the same results.<br />
If I start for example KDE Desktop Effects, i will see again the vertical stripes for 5 seconds...and return to kdm ! :)</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=ATI&diff=274242ATI2013-09-03T15:19:46Z<p>Lordheavy: /* Early start */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[cs:ATI]]<br />
[[de:ATI]]<br />
[[es:ATI]]<br />
[[fr:ATI]]<br />
[[it:ATI]]<br />
[[ja:ATI]]<br />
[[pl:ATI]]<br />
[[ru:ATI]]<br />
[[tr:ATI]]<br />
[[zh-CN:ATI]]<br />
{{Article summary start}}<br />
{{Article summary text|An overview of the open source ATI/AMD video card driver.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|AMD Catalyst}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary end}}<br />
<br />
Owners of '''ATI/AMD''' video cards have a choice between AMD's [[AMD Catalyst|proprietary driver]] ({{AUR|catalyst}}) and the open source driver ({{Pkg|xf86-video-ati}}). This article covers the open source driver.<br />
<br />
The open source driver is currently not ''on par'' with the proprietary driver in terms of 3D performance on newer cards or reliable TV-out support. It does, however, offer better dual-head support, excellent 2D acceleration, and provide sufficient 3D acceleration for OpenGL-accelerated [[window manager]]s, such as [[Compiz]] or KWin.<br />
<br />
If unsure, try the open source driver first, it will suit most needs and is generally less problematic (see the [http://www.x.org/wiki/RadeonFeature feature matrix] for details).<br />
<br />
== Naming conventions ==<br />
<br />
ATI's [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).<br />
<br />
For a table of core and product series, see [[Wikipedia:Comparison of AMD graphics processing units]].<br />
<br />
== Overview ==<br />
<br />
The {{ic|xf86-video-ati}} (radeon) driver:<br />
*Works with Radeon chipsets up to HD 6xxx and 7xxxM (latest Northern Islands chipsets).<br />
**Radeons in the HD 77xx (Southern Islands) series are partially supported. Check the [http://www.x.org/wiki/RadeonFeature feature matrix] for unsupported features.<br />
**Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D acceleration are provided.<br />
**Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides.<br />
*Supports DRI1, RandR 1.2/1.3, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2 (with the latest Linux kernel, libdrm and Mesa versions).<br />
<br />
Generally, '''xf86-video-ati''' should be your first choice, no matter which ATI card you own. In case you need to use a driver for newer ATI cards, you should consider the proprietary '''catalyst''' driver.<br />
<br />
{{Note|'''xf86-video-ati''' is specified as '''''radeon''''' for the kernel and in {{ic|xorg.conf}}. }}<br />
<br />
== Installation ==<br />
<br />
If Catalyst/{{ic|fglrx}} has been previously installed, see [[ATI Catalyst#Uninstallation|here]].<br />
<br />
=== Installing xf86-video-ati ===<br />
<br />
[[pacman|Install]] {{Pkg|xf86-video-ati}}, available in the [[official repositories]]. <br />
<br />
The -git version of the driver and other needed packages (linux-git, etc) can be found in the [https://bbs.archlinux.org/viewtopic.php?id=79509&p=1 radeon repository] or the [[AUR]].<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Kernel mode-setting (KMS) ==<br />
<br />
{{Tip|If you have problems with the resolution, check [[Kernel_Mode_Setting#Forcing_modes_and_EDID|this page]].}}<br />
<br />
[[KMS]] enables native resolution in the framebuffer and allows for instant console (tty) switching. KMS also enables newer technologies (such as DRI2) which will help reduce artifacts and increase 3D performance, even kernel space power-saving.<br />
<br />
KMS for ATI video cards requires the [[Xorg]] free video user space driver {{Pkg|xf86-video-ati}}.<br />
<br />
{{Note| KMS is '''enabled''' by default for autodetected ATI/AMD cards. This section remains for configurations outside stock. }}<br />
<br />
==== Early start ====<br />
<br />
''These two methods will start KMS as early as possible in the [[boot process]].''<br />
<br />
1. Remove all conflicting UMS drivers from kernel command line:<br />
* Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. <br />
* AGP speed can be set with {{ic|<nowiki>radeon.agpmode=x</nowiki>}} kernel option, where x is 1, 2, 4, 8 (AGP speed) or -1 (PCI mode).<br />
<br />
2. Otherwise, when the [[initramfs]] is loaded:<br />
* If you have a special kernel outside of stock {{ic|-ARCH}} (e.g. linux-zen), remember to use a separate ''mkinitcpio'' configuration file (e.g. {{ic|/etc/mkinitcpio-zen.conf}}) and not {{ic|/etc/mkinitcpio.conf}}.<br />
* Remove any framebuffer related modules from your ''mkinitcpio'' file.<br />
* Add {{ic|radeon}} to {{ic|MODULES}} array in your ''mkinitcpio'' file. For AGP support, it is necessary to add {{ic|intel_agp}} (or {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, {{ic|amd64_agp}} etc.) before the {{ic|radeon}} module.<br />
* Re-generate your [[mkinitcpio#Image_creation_and_activation | initramfs]].<br />
<br />
Finally, '''Reboot''' the system.<br />
<br />
==== Late start ====<br />
<br />
''With this choice, KMS will be enabled when modules are loaded during the [[boot process]].''<br />
<br />
If you have a special kernel (e.g. linux-zen), remember to use appropriate mkinitcpio configuration file, e.g. {{ic|/etc/mkinitcpio-zen.conf}}. These instructions are written for the default kernel ({{Pkg|linux}}).<br />
{{Note| For AGP support, it may be necessary to add {{ic|intel_agp}}, {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, or {{ic|amd64_agp}}) to appropriate .conf files in {{ic|/etc/modules-load.d}}.}}<br />
<br />
# Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. Remove any framebuffer related modules from {{ic|/etc/mkinitcpio.conf}}. {{ic|<nowiki>video=</nowiki>}} can now be used in conjunction with KMS.<br />
# '''Reboot''' the system.<br />
<br />
== Performance tuning ==<br />
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.<br />
<br />
'''ColorTiling''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU<br />
<br />
Option "ColorTiling" "on"<br />
<br />
'''Acceleration architecture'''; this will work only on '''newer''' cards. If you enable this and then cannot get back into X, remove it. <br />
<br />
Option "AccelMethod" "EXA"<br />
<br />
'''Page Flip''' is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA.<br />
<br />
Option "EnablePageFlip" "on"<br />
<br />
'''EXAVSync ''' option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips.<br />
Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled.<br />
<br />
Option "EXAVSync" "yes"<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default<br />
Option "EnablePageFlip" "on" #supported on all R/RV/RS4xx and older hardware, and set on by default<br />
Option "AccelMethod" "EXA" #valid options are XAA, EXA and Glamor. EXA is the default<br />
Option "RenderAccel" "on" #enabled by default on all radeon hardware<br />
Option "ColorTiling" "on" #enabled by default on RV300 and later radeon cards<br />
Option "EXAVSync" "off" #default is off, otherwise on. Only works '''if EXA activated'''<br />
Option "EXAPixmaps" "on" #when on icreases 2D performance, but may also cause artifacts on some old cards. Only works '''if EXA activated'''<br />
Option "AccelDFS" "on" #default is off, read the radeon manpage for more information<br />
EndSection<br />
}}<br />
<br />
Defining the '''gartsize''', if not autodetected, can be done by adding {{ic|1=radeon.gartsize=32}} into [[kernel parameters]]. Size is in megabytes and 32 is for RV280 cards.<br />
<br />
Alternatively, do it with a modprobe option in {{ic|/etc/modprobe.d/radeon.conf}}:<br />
<br />
options radeon gartsize=32<br />
<br />
'''For further information and other options, read the radeon manpage and the module's info page''': {{ic|man radeon}}, {{ic|modinfo radeon}}.<br />
<br />
A fine tool to try is {{Pkg|driconf}}. It will allow you to modify several settings, like vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).<br />
<br />
=== Deactivating PCI-E 2.0 ===<br />
<br />
Since kernel 3.6, PCI-E v2.0 in '''radeon''' is turned on by default.<br />
<br />
It can be unstable with some motherboards, so it can be deactivated by adding {{ic|1=radeon.pcie_gen2=0}} on the [[Kernel parameters|kernel command line]].<br />
<br />
See [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article] for more information.<br />
<br />
=== Glamor ===<br />
<br />
Glamor is a 2D acceleration method implemented through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.<br />
<br />
Since xf86-video-ati driver-1:7.2.0-1, glamor is automaticaly enabled with radeonsi drivers (Southern Island and superior GFX cards); with other graphic cards you can use it by adding the AccelMethod glamor to your xorg.conf config file in the Device section:<br />
<br />
Option "AccelMethod" "glamor"<br />
<br />
However, you need to add the following section before:<br />
{{bc|<br />
Section "Module"<br />
Load "dri2"<br />
Load "glamoregl" <br />
EndSection<br />
}}<br />
<br />
== Hybrid graphics/AMD Dynamic Switchable Graphics ==<br />
<br />
It is the technology used on recent laptops equiped with two GPUs, one power-efficent (generally Intel integrated card) and one more powerful and more power-hungry (generally Radeon or Nvidia). There are three ways to get it work:<br />
<br />
* If you do not need to run any GPU-hungry application, you can plainly disable the discrete card: {{ic|echo OFF > /sys/kernel/debug/vgaswitcheroo/switch}}. You can do more things with vgaswitcheroo (see [https://help.ubuntu.com/community/HybridGraphics#Using_vga_switcheroo Ubuntu wiki] for more information) but ultimately at best one card is bound to one graphic session, you cannot use both on one graphic session.<br />
* You can use [[PRIME]]. It is the proper way to use hybrid graphics on Linux but still requires a bit of manual intervention from the user.<br />
* You can also use [[bumblebee]] with radeon, there is a {{AUR|bumblebee-amd-git}} package on [[AUR]].<br />
<br />
==Powersaving==<br />
<br />
The powersaving part is totally different with and without KMS.<br />
<br />
=== With KMS enabled ===<br />
<br />
{{Note|Power saving through KMS is still a work in progress, some chips may have problems with it.}}<br />
<br />
With the radeon driver, power saving is disabled by default but the kernel provides a method to enable it using sysfs.<br />
<br />
You can choose between two different methods. It's hard to say which is the best, you have to try it yourself.<br />
<br />
==== Dynamic frequency switching ====<br />
<br />
This method dynamically changes the frequency depending on GPU load, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.<br />
<br />
It can be activated by simply running the following command:<br />
<br />
# echo dynpm > /sys/class/drm/card0/device/power_method<br />
<br />
==== Profile-based frequency switching ====<br />
<br />
This method will allow you to select one of the five profiles (described below). Different profiles, for the most part, end up changing the frequency/voltage of the GPU. This method is not as aggressive, but is more stable and flicker free and works with multiple heads active.<br />
<br />
To activate the method, run the following command:<br />
<br />
# echo profile > /sys/class/drm/card0/device/power_method<br />
<br />
Select one of the available profiles:<br />
* {{ic|default}} uses the default clocks and does not change the power state. This is the default behaviour.<br />
* {{ic|auto}} selects between {{ic|mid}} and {{ic|high}} power states based on the whether the system is on battery power or not. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|low}} forces the gpu to be in the {{ic|low}} power state all the time. Note that {{ic|low}} can cause display problems on some laptops, which is why {{ic|auto}} only uses {{ic|low}} when monitors are off.<br />
* {{ic|mid}} forces the gpu to be in the {{ic|mid}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|high}} forces the gpu to be in the {{ic|high}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
<br />
As an example, we will activate the {{ic|low}} profile (replace {{ic|low}} with any of the aforementioned profiles as necessary):<br />
<br />
# echo low > /sys/class/drm/card0/device/power_profile<br />
<br />
==== Persistent configuration ====<br />
<br />
The activation described above is not persistent, it will not last when the computer is rebooted. To make it persistent, you can use [[systemd#Temporary files|systemd-tmpfiles]] (example for [[#Dynamic frequency switching]]):<br />
<br />
{{hc|/etc/tmpfiles.d/radeon-pm.conf|<nowiki><br />
w /sys/class/drm/card0/device/power_method - - - - dynpm<br />
</nowiki>}}<br />
<br />
Alternatively, you may use this [[udev]] rule instead (example for [[#Profile-based frequency switching]]):<br />
<br />
{{hc|/etc/udev/rules.d/30-radeon-pm.rules|<nowiki><br />
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low"<br />
</nowiki>}}<br />
<br />
{{Note|If the above rule is failing, try removing the {{ic|dri/}} prefix.}}<br />
<br />
==== Graphical tools ====<br />
<br />
* {{App|Radeon-tray|A small program to control the power profiles of your Radeon card via systray icon. It is written in PyQt4 and is suitable for non-Gnome users.|https://github.com/StuntsPT/Radeon-tray|}}<br />
* {{App|power-play-switcher|A gui for changing powerplay setting of the open source driver for ati radeon video cards.|https://code.google.com/p/power-play-switcher/|{{AUR|power-play-switcher}}}}<br />
* {{App|Gnome-shell-extension-Radeon-Power-Profile-Manager|A small extension for Gnome-shell that will allow you to change the power profile of your radeon card when using the open source drivers.|https://github.com/StuntsPT/shell-extension-radeon-power-profile-manager|{{AUR|gnome-shell-extension-radeon-ppm}} {{AUR|gnome-shell-extension-radeon-power-profile-manager-git}}}}<br />
<br />
==== Other notes ====<br />
<br />
Power management is supported on all asics (r1xx-evergreen) that include the appropriate power state tables in the vbios; not all boards do (especially older desktop cards).<br />
<br />
To view the speed that the GPU is running at, perform the following command and you will get something like this output:<br />
<br />
{{hc|$ cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki><br />
state: PM_STATE_ENABLED<br />
default engine clock: 300000 kHz<br />
current engine clock: 300720 kHz<br />
default memory clock: 200000 kHz<br />
</nowiki>}}<br />
<br />
If {{ic|/sys/kernel/debug}} is empty, run this command:<br />
<br />
# mount -t debugfs none /sys/kernel/debug<br />
<br />
To permanently mount, add the following line to {{ic|/etc/fstab}}:<br />
<br />
debugfs /sys/kernel/debug debugfs defaults 0 0<br />
<br />
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.<br />
<br />
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via [[lm_sensors]] tools or via sysfs in {{ic|/sys/class/hwmon}}.<br />
<br />
=== Without KMS ===<br />
<br />
In your {{ic|xorg.conf}} file, add 2 lines to "Device" Section:<br />
Option "DynamicPM" "on"<br />
Option "ClockGating" "on"<br />
<br />
If the two options are enabled successfully, you will see following lines in /var/log/Xorg.0.log:<br />
<br />
(**) RADEON(0): Option "ClockGating" "on"<br />
(**) RADEON(0): Option "DynamicPM" "on"<br />
<br />
Static power management enable success<br />
(II) RADEON(0): Dynamic Clock Gating Enabled<br />
(II) RADEON(0): Dynamic Power Management Enabled<br />
<br />
If you desire low power cost, you can add an extra line to "Device" Section of {{ic|xorg.conf}}:<br />
Option "ForceLowPowerMode" "on"<br />
<br />
== TV out ==<br />
<br />
{{out of date}}<br />
Since August 2007, there is TV-out support for all Radeons with integrated TV-out.<br />
<br />
It is somewhat limited for now, it does not always autodetect the output correctly and only NTSC mode works.<br />
<br />
First, check that you have an S-video output: {{ic|xrandr}} should give you something like<br />
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200<br />
...<br />
S-video disconnected (normal left inverted right x axis y axis)<br />
<br />
Setting tv standard to use:<br />
xrandr --output S-video --set "tv standard" ntsc<br />
<br />
Adding a mode for it (currently it supports only 800x600):<br />
xrandr --addmode S-video 800x600<br />
<br />
I will go for a clone mode:<br />
xrandr --output S-video --same-as VGA-0<br />
<br />
So far so good. Now let us try to see what we have:<br />
xrandr --output S-video --mode 800x600<br />
<br />
At this point you should see a 800x600 version of your desktop on your TV.<br />
<br />
To disable the output, do<br />
xrandr --output S-video --off<br />
<br />
Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.<br />
<br />
To send the output to the TV, I do<br />
xvattr -a XV_CRTC -v 1<br />
<br />
{{Note| you need to install {{AUR|xvattr}} to execute this command.}}<br />
<br />
To switch back to my monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.<br />
<br />
Please see [http://www.x.org/wiki/radeonTV Enabling TV-Out Statically] for how to enable TV-out in your xorg configuration file.<br />
<br />
=== Force TV-out in KMS ===<br />
<br />
Kernel can recognize {{ic|1=video=}} parameter in following form (see [[KMS]] for more details):<br />
<br />
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]<br />
<br />
For example:<br />
<br />
video=DVI-I-1:1280x1024-24@60e<br />
<br />
Parameters with whitespaces must be quoted:<br />
<br />
"video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
Current mkinitcpio implementation also requires {{ic|#}} in front. For example:<br />
<br />
root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
* Grub can pass such command line as is.<br />
* Lilo needs backslashes for doublequotes (append {{ic|1=# \"video=9-pin DIN-1:1024x768-24@60e\"}})<br />
* Grub2: TODO<br />
<br />
You can get list of your video outputs with following command:<br />
<br />
{{bc|<nowiki>$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-</nowiki>}}<br />
<br />
== HDMI audio ==<br />
<br />
HDMI audio is supported by the {{Pkg|xf86-video-ati}} video driver. By default, the necessary kernel module is disabled in kernel versions &gt;&#61;3.0. However, if your Radeon card is listed in the [http://www.x.org/wiki/RadeonFeature Radeon Feature Matrix], you can add {{ic|radeon.audio&#61;1}} to your [[Kernel parameters]]. For example:<br />
<br />
{{hc|/boot/syslinux/syslinux.cfg|<br />
LABEL arch<br />
MENU LABEL Arch Linux<br />
LINUX ../vmlinuz-linux<br />
APPEND root&#61;/dev/sda1 ro radeon.audio&#61;1<br />
INITRD ../initramfs-linux.img<br />
}}<br />
<br />
If HDMI audio doesn't simply work after installing the driver, test your setup with the procedure at [[Advanced_Linux_Sound_Architecture#HDMI_Output_Does_Not_Work]].<br />
<br />
{{note|As of this writing (2013-05-20), drivers for the [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names Southern Islands] cards don't support HDMI Audio.}}<br />
<br />
* The {{ic|radeon.audio}} kernel module only works if [[#Kernel_mode-setting_(KMS)]] is enabled. By default, '''xf86-video-ati''' enables KMS.<br />
* If the sound is distorted try [[PulseAudio#Glitches, skips or crackling|setting {{ic|1=tsched=0}}]] and make sure {{ic|rtkit}} daemon is running.<br />
<br />
== Dual Head setup ==<br />
<br />
=== Independent X screens ===<br />
<br />
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "radeon"<br />
Option "ZaphodHeads" "VGA-0"<br />
VendorName "ATI"<br />
BusID "PCI:1:0:0"<br />
Screen 0<br />
EndSection<br />
<br />
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads" "VGA-0"}}.<br />
<br />
Moreover, this option allows you to easily select the screen you want to mark as primary.<br />
<br />
== Enabling video acceleration ==<br />
<br />
Latest {{Pkg|mesa}} package added support for MPEG1/2 decoding to free drivers, exported via {{Pkg|libvdpau}} and are automaticaly detected.<br />
<br />
You can force used driver by assigning environment variable {{Ic|LIBVA_DRIVER_NAME}} to {{Ic|vdpau}} and {{Ic|VDPAU_DRIVER}} to the name of driver core, e.g.:<br />
<br />
{{hc|1=~/.bashrc|2=<br />
export LIBVA_DRIVER_NAME=vdpau<br />
export VDPAU_DRIVER=r600<br />
}}<br />
<br />
for r600-based cards (all available VDPAU drivers are in {{Ic|/usr/lib/vdpau/}}).<br />
<br />
== Turn vsync off ==<br />
<br />
The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create {{ic|~/.drirc}} (or edit it if it already exists) and add the following section:<br />
{{hc|~/.drirc|<nowiki><br />
<driconf><br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0" /><br />
</application><br />
</device><br />
<!-- Other devices ... --><br />
</driconf><br />
</nowiki>}}<br />
It is effectively '''dri2''', not your video card code (like r600).<br />
<br />
== Troubleshooting ==<br />
<br />
=== Artifacts upon logging in ===<br />
<br />
If encountering artifacts, first try starting X without {{ic|/etc/X11/xorg.conf}}. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured {{ic|xorg.conf}} files are known to cause trouble.<br />
<br />
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.<br />
<br />
Artifacts may also be related to [[kernel mode setting]]. Consider [[#Disable KMS|disabling KMS]].<br />
<br />
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EXAPixmaps" "off"<br />
EndSection<br />
<br />
Further tweaking could be done by disabling {{ic|AccelDFS}}:<br />
<br />
Option "AccelDFS" "off"<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
e.g. When EDID fails on a DisplayPort connection. <br />
<br />
This issue is covered on the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].<br />
<br />
=== Slow performance with open-source drivers ===<br />
<br />
{{Note|Make sure you are member of '''video''' group.}}<br />
<br />
Some cards can be installed by default trying to use [[ATI#AMD/Ati cards and kernel mode-setting (KMS)|KMS]]. You can check whether this is your case running:<br />
dmesg | egrep "drm|radeon"<br />
<br />
This command might show something like this, meaning it is trying to default to KMS:<br />
[drm] radeon default to kernel modesetting.<br />
...<br />
[drm:radeon_driver_load_kms] *ERROR* Failed to initialize radeon, disabling IOCTL<br />
<br />
If your card is not supported by KMS (anything older than r100), then you can [[ATI#Disable KMS|disable KMS]]. This should fix the problem.<br />
<br />
=== AGP is disabled (with KMS) ===<br />
<br />
If you experience poor performance and dmesg shows something like this<br />
[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19<br />
then check if the agp driver for your motherboard (e.g., {{ic|via_agp}}, {{ic|intel_agp}} etc.) is loaded before the {{ic|radeon}} module, see [[ATI#Enabling KMS|Enabling KMS]].<br />
<br />
=== TV showing a black border around the screen ===<br />
<br />
When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see [[Wikipedia:Overscan]]) can be turned off using xrandr:<br />
xrandr --output HDMI-0 --set underscan off<br />
<br />
=== Black screen with mouse cursor on resume from suspend in X ===<br />
<br />
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance_tuning|performance tuning]] for more information.<br />
<br />
=== No desktop effects in KDE4 with X1300 and Radeon driver ===<br />
<br />
A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}. <br />
<br />
Add:<br />
DisableChecks=true<br />
<br />
To the [Compositing] section. Ensure that compositing is enabled with:<br />
Enabled=true<br />
<br />
=== Black screen and no console, but X works in KMS ===<br />
<br />
This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:<br />
fbcon=map:1<br />
This will tell the fbcon to map itself to the {{ic|/dev/fb1}} framebuffer dev and not the {{ic|/dev/fb0}}, that in our case exist on the wrong graphics card.<br />
<br />
=== Some 3D applications show textures as all black or crash ===<br />
<br />
You might need texture compression support, which is not included with the open source driver. Install {{Pkg|libtxc_dxtn}} (and {{Pkg|lib32-libtxc_dxtn}} for multilib systems).<br />
<br />
=== 2D performance (e.g. scrolling) is slow ===<br />
<br />
If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.<br />
<br />
Bellow is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "MigrationHeuristic" "greedy"<br />
EndSection<br />
}}<br />
<br />
=== ATI X1600 (RV530 series) 3D application show black windows ===<br />
<br />
There are three possible solutions:<br />
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].<br />
* If this doesn't work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.<br />
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{ic|driconf}} via pacman and set that option in {{ic|~/.drirc}}.<br />
<br />
=== Vertical colored stripes on chipset RS482 (Xpress 200M Series) with/out KMS ===<br />
<br />
The bug :With the graphical chipset Xpress 200M Series (Radeon Xpress 1150), booting with KMS gives you sometimes, as soon as Xorg boots, a screen with many vertical colored stripes. You cannot {{ic|Alt+Sys+K}} or do anything. Take a look {{Bug|21918}} for more information,<br />
How to fixed ? : disable dri (needn't to disable kms)<br />
Side effert: if i disable "dri" and use no kernel options (no "nomodeset") i see the vertical stripes at boot, only for 5 seconds, before having kdm displayed. Then, i have the same results.<br />
If I start for example KDE Desktop Effects, i will see again the vertical stripes for 5 seconds...and return to kdm ! :)</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=ATI&diff=274241ATI2013-09-03T15:17:42Z<p>Lordheavy: /* Late start */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[cs:ATI]]<br />
[[de:ATI]]<br />
[[es:ATI]]<br />
[[fr:ATI]]<br />
[[it:ATI]]<br />
[[ja:ATI]]<br />
[[pl:ATI]]<br />
[[ru:ATI]]<br />
[[tr:ATI]]<br />
[[zh-CN:ATI]]<br />
{{Article summary start}}<br />
{{Article summary text|An overview of the open source ATI/AMD video card driver.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|AMD Catalyst}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary end}}<br />
<br />
Owners of '''ATI/AMD''' video cards have a choice between AMD's [[AMD Catalyst|proprietary driver]] ({{AUR|catalyst}}) and the open source driver ({{Pkg|xf86-video-ati}}). This article covers the open source driver.<br />
<br />
The open source driver is currently not ''on par'' with the proprietary driver in terms of 3D performance on newer cards or reliable TV-out support. It does, however, offer better dual-head support, excellent 2D acceleration, and provide sufficient 3D acceleration for OpenGL-accelerated [[window manager]]s, such as [[Compiz]] or KWin.<br />
<br />
If unsure, try the open source driver first, it will suit most needs and is generally less problematic (see the [http://www.x.org/wiki/RadeonFeature feature matrix] for details).<br />
<br />
== Naming conventions ==<br />
<br />
ATI's [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).<br />
<br />
For a table of core and product series, see [[Wikipedia:Comparison of AMD graphics processing units]].<br />
<br />
== Overview ==<br />
<br />
The {{ic|xf86-video-ati}} (radeon) driver:<br />
*Works with Radeon chipsets up to HD 6xxx and 7xxxM (latest Northern Islands chipsets).<br />
**Radeons in the HD 77xx (Southern Islands) series are partially supported. Check the [http://www.x.org/wiki/RadeonFeature feature matrix] for unsupported features.<br />
**Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D acceleration are provided.<br />
**Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides.<br />
*Supports DRI1, RandR 1.2/1.3, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2 (with the latest Linux kernel, libdrm and Mesa versions).<br />
<br />
Generally, '''xf86-video-ati''' should be your first choice, no matter which ATI card you own. In case you need to use a driver for newer ATI cards, you should consider the proprietary '''catalyst''' driver.<br />
<br />
{{Note|'''xf86-video-ati''' is specified as '''''radeon''''' for the kernel and in {{ic|xorg.conf}}. }}<br />
<br />
== Installation ==<br />
<br />
If Catalyst/{{ic|fglrx}} has been previously installed, see [[ATI Catalyst#Uninstallation|here]].<br />
<br />
=== Installing xf86-video-ati ===<br />
<br />
[[pacman|Install]] {{Pkg|xf86-video-ati}}, available in the [[official repositories]]. <br />
<br />
The -git version of the driver and other needed packages (linux-git, etc) can be found in the [https://bbs.archlinux.org/viewtopic.php?id=79509&p=1 radeon repository] or the [[AUR]].<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Kernel mode-setting (KMS) ==<br />
<br />
{{Tip|If you have problems with the resolution, check [[Kernel_Mode_Setting#Forcing_modes_and_EDID|this page]].}}<br />
<br />
[[KMS]] enables native resolution in the framebuffer and allows for instant console (tty) switching. KMS also enables newer technologies (such as DRI2) which will help reduce artifacts and increase 3D performance, even kernel space power-saving.<br />
<br />
KMS for ATI video cards requires the [[Xorg]] free video user space driver {{Pkg|xf86-video-ati}}.<br />
<br />
{{Note| KMS is '''enabled''' by default for autodetected ATI/AMD cards. This section remains for configurations outside stock. }}<br />
<br />
==== Early start ====<br />
<br />
''These two methods will start KMS as early as possible in the [[boot process]].''<br />
<br />
1. The earliest point is to append the kernel line in your bootloader with {{ic|1= radeon.modeset=1}}. See your bootloader's page for info on how to do this.<br />
* Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. <br />
* AGP speed can be set with {{ic|<nowiki>radeon.agpmode=x</nowiki>}} kernel option, where x is 1, 2, 4, 8 (AGP speed) or -1 (PCI mode).<br />
<br />
2. Otherwise, when the [[initramfs]] is loaded:<br />
* If you have a special kernel outside of stock {{ic|-ARCH}} (e.g. linux-zen), remember to use a separate ''mkinitcpio'' configuration file (e.g. {{ic|/etc/mkinitcpio-zen.conf}}) and not {{ic|/etc/mkinitcpio.conf}}.<br />
* Remove any framebuffer related modules from your ''mkinitcpio'' file.<br />
* Add {{ic|radeon}} to {{ic|MODULES}} array in your ''mkinitcpio'' file. For AGP support, it is necessary to add {{ic|intel_agp}} (or {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, {{ic|amd64_agp}} etc.) before the {{ic|radeon}} module.<br />
* Re-generate your [[mkinitcpio#Image_creation_and_activation | initramfs]].<br />
<br />
Finally, '''Reboot''' the system.<br />
<br />
==== Late start ====<br />
<br />
''With this choice, KMS will be enabled when modules are loaded during the [[boot process]].''<br />
<br />
If you have a special kernel (e.g. linux-zen), remember to use appropriate mkinitcpio configuration file, e.g. {{ic|/etc/mkinitcpio-zen.conf}}. These instructions are written for the default kernel ({{Pkg|linux}}).<br />
{{Note| For AGP support, it may be necessary to add {{ic|intel_agp}}, {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, or {{ic|amd64_agp}}) to appropriate .conf files in {{ic|/etc/modules-load.d}}.}}<br />
<br />
# Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. Remove any framebuffer related modules from {{ic|/etc/mkinitcpio.conf}}. {{ic|<nowiki>video=</nowiki>}} can now be used in conjunction with KMS.<br />
# '''Reboot''' the system.<br />
<br />
== Performance tuning ==<br />
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.<br />
<br />
'''ColorTiling''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU<br />
<br />
Option "ColorTiling" "on"<br />
<br />
'''Acceleration architecture'''; this will work only on '''newer''' cards. If you enable this and then cannot get back into X, remove it. <br />
<br />
Option "AccelMethod" "EXA"<br />
<br />
'''Page Flip''' is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA.<br />
<br />
Option "EnablePageFlip" "on"<br />
<br />
'''EXAVSync ''' option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips.<br />
Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled.<br />
<br />
Option "EXAVSync" "yes"<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default<br />
Option "EnablePageFlip" "on" #supported on all R/RV/RS4xx and older hardware, and set on by default<br />
Option "AccelMethod" "EXA" #valid options are XAA, EXA and Glamor. EXA is the default<br />
Option "RenderAccel" "on" #enabled by default on all radeon hardware<br />
Option "ColorTiling" "on" #enabled by default on RV300 and later radeon cards<br />
Option "EXAVSync" "off" #default is off, otherwise on. Only works '''if EXA activated'''<br />
Option "EXAPixmaps" "on" #when on icreases 2D performance, but may also cause artifacts on some old cards. Only works '''if EXA activated'''<br />
Option "AccelDFS" "on" #default is off, read the radeon manpage for more information<br />
EndSection<br />
}}<br />
<br />
Defining the '''gartsize''', if not autodetected, can be done by adding {{ic|1=radeon.gartsize=32}} into [[kernel parameters]]. Size is in megabytes and 32 is for RV280 cards.<br />
<br />
Alternatively, do it with a modprobe option in {{ic|/etc/modprobe.d/radeon.conf}}:<br />
<br />
options radeon gartsize=32<br />
<br />
'''For further information and other options, read the radeon manpage and the module's info page''': {{ic|man radeon}}, {{ic|modinfo radeon}}.<br />
<br />
A fine tool to try is {{Pkg|driconf}}. It will allow you to modify several settings, like vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).<br />
<br />
=== Deactivating PCI-E 2.0 ===<br />
<br />
Since kernel 3.6, PCI-E v2.0 in '''radeon''' is turned on by default.<br />
<br />
It can be unstable with some motherboards, so it can be deactivated by adding {{ic|1=radeon.pcie_gen2=0}} on the [[Kernel parameters|kernel command line]].<br />
<br />
See [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article] for more information.<br />
<br />
=== Glamor ===<br />
<br />
Glamor is a 2D acceleration method implemented through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.<br />
<br />
Since xf86-video-ati driver-1:7.2.0-1, glamor is automaticaly enabled with radeonsi drivers (Southern Island and superior GFX cards); with other graphic cards you can use it by adding the AccelMethod glamor to your xorg.conf config file in the Device section:<br />
<br />
Option "AccelMethod" "glamor"<br />
<br />
However, you need to add the following section before:<br />
{{bc|<br />
Section "Module"<br />
Load "dri2"<br />
Load "glamoregl" <br />
EndSection<br />
}}<br />
<br />
== Hybrid graphics/AMD Dynamic Switchable Graphics ==<br />
<br />
It is the technology used on recent laptops equiped with two GPUs, one power-efficent (generally Intel integrated card) and one more powerful and more power-hungry (generally Radeon or Nvidia). There are three ways to get it work:<br />
<br />
* If you do not need to run any GPU-hungry application, you can plainly disable the discrete card: {{ic|echo OFF > /sys/kernel/debug/vgaswitcheroo/switch}}. You can do more things with vgaswitcheroo (see [https://help.ubuntu.com/community/HybridGraphics#Using_vga_switcheroo Ubuntu wiki] for more information) but ultimately at best one card is bound to one graphic session, you cannot use both on one graphic session.<br />
* You can use [[PRIME]]. It is the proper way to use hybrid graphics on Linux but still requires a bit of manual intervention from the user.<br />
* You can also use [[bumblebee]] with radeon, there is a {{AUR|bumblebee-amd-git}} package on [[AUR]].<br />
<br />
==Powersaving==<br />
<br />
The powersaving part is totally different with and without KMS.<br />
<br />
=== With KMS enabled ===<br />
<br />
{{Note|Power saving through KMS is still a work in progress, some chips may have problems with it.}}<br />
<br />
With the radeon driver, power saving is disabled by default but the kernel provides a method to enable it using sysfs.<br />
<br />
You can choose between two different methods. It's hard to say which is the best, you have to try it yourself.<br />
<br />
==== Dynamic frequency switching ====<br />
<br />
This method dynamically changes the frequency depending on GPU load, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.<br />
<br />
It can be activated by simply running the following command:<br />
<br />
# echo dynpm > /sys/class/drm/card0/device/power_method<br />
<br />
==== Profile-based frequency switching ====<br />
<br />
This method will allow you to select one of the five profiles (described below). Different profiles, for the most part, end up changing the frequency/voltage of the GPU. This method is not as aggressive, but is more stable and flicker free and works with multiple heads active.<br />
<br />
To activate the method, run the following command:<br />
<br />
# echo profile > /sys/class/drm/card0/device/power_method<br />
<br />
Select one of the available profiles:<br />
* {{ic|default}} uses the default clocks and does not change the power state. This is the default behaviour.<br />
* {{ic|auto}} selects between {{ic|mid}} and {{ic|high}} power states based on the whether the system is on battery power or not. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|low}} forces the gpu to be in the {{ic|low}} power state all the time. Note that {{ic|low}} can cause display problems on some laptops, which is why {{ic|auto}} only uses {{ic|low}} when monitors are off.<br />
* {{ic|mid}} forces the gpu to be in the {{ic|mid}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|high}} forces the gpu to be in the {{ic|high}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
<br />
As an example, we will activate the {{ic|low}} profile (replace {{ic|low}} with any of the aforementioned profiles as necessary):<br />
<br />
# echo low > /sys/class/drm/card0/device/power_profile<br />
<br />
==== Persistent configuration ====<br />
<br />
The activation described above is not persistent, it will not last when the computer is rebooted. To make it persistent, you can use [[systemd#Temporary files|systemd-tmpfiles]] (example for [[#Dynamic frequency switching]]):<br />
<br />
{{hc|/etc/tmpfiles.d/radeon-pm.conf|<nowiki><br />
w /sys/class/drm/card0/device/power_method - - - - dynpm<br />
</nowiki>}}<br />
<br />
Alternatively, you may use this [[udev]] rule instead (example for [[#Profile-based frequency switching]]):<br />
<br />
{{hc|/etc/udev/rules.d/30-radeon-pm.rules|<nowiki><br />
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low"<br />
</nowiki>}}<br />
<br />
{{Note|If the above rule is failing, try removing the {{ic|dri/}} prefix.}}<br />
<br />
==== Graphical tools ====<br />
<br />
* {{App|Radeon-tray|A small program to control the power profiles of your Radeon card via systray icon. It is written in PyQt4 and is suitable for non-Gnome users.|https://github.com/StuntsPT/Radeon-tray|}}<br />
* {{App|power-play-switcher|A gui for changing powerplay setting of the open source driver for ati radeon video cards.|https://code.google.com/p/power-play-switcher/|{{AUR|power-play-switcher}}}}<br />
* {{App|Gnome-shell-extension-Radeon-Power-Profile-Manager|A small extension for Gnome-shell that will allow you to change the power profile of your radeon card when using the open source drivers.|https://github.com/StuntsPT/shell-extension-radeon-power-profile-manager|{{AUR|gnome-shell-extension-radeon-ppm}} {{AUR|gnome-shell-extension-radeon-power-profile-manager-git}}}}<br />
<br />
==== Other notes ====<br />
<br />
Power management is supported on all asics (r1xx-evergreen) that include the appropriate power state tables in the vbios; not all boards do (especially older desktop cards).<br />
<br />
To view the speed that the GPU is running at, perform the following command and you will get something like this output:<br />
<br />
{{hc|$ cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki><br />
state: PM_STATE_ENABLED<br />
default engine clock: 300000 kHz<br />
current engine clock: 300720 kHz<br />
default memory clock: 200000 kHz<br />
</nowiki>}}<br />
<br />
If {{ic|/sys/kernel/debug}} is empty, run this command:<br />
<br />
# mount -t debugfs none /sys/kernel/debug<br />
<br />
To permanently mount, add the following line to {{ic|/etc/fstab}}:<br />
<br />
debugfs /sys/kernel/debug debugfs defaults 0 0<br />
<br />
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.<br />
<br />
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via [[lm_sensors]] tools or via sysfs in {{ic|/sys/class/hwmon}}.<br />
<br />
=== Without KMS ===<br />
<br />
In your {{ic|xorg.conf}} file, add 2 lines to "Device" Section:<br />
Option "DynamicPM" "on"<br />
Option "ClockGating" "on"<br />
<br />
If the two options are enabled successfully, you will see following lines in /var/log/Xorg.0.log:<br />
<br />
(**) RADEON(0): Option "ClockGating" "on"<br />
(**) RADEON(0): Option "DynamicPM" "on"<br />
<br />
Static power management enable success<br />
(II) RADEON(0): Dynamic Clock Gating Enabled<br />
(II) RADEON(0): Dynamic Power Management Enabled<br />
<br />
If you desire low power cost, you can add an extra line to "Device" Section of {{ic|xorg.conf}}:<br />
Option "ForceLowPowerMode" "on"<br />
<br />
== TV out ==<br />
<br />
{{out of date}}<br />
Since August 2007, there is TV-out support for all Radeons with integrated TV-out.<br />
<br />
It is somewhat limited for now, it does not always autodetect the output correctly and only NTSC mode works.<br />
<br />
First, check that you have an S-video output: {{ic|xrandr}} should give you something like<br />
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200<br />
...<br />
S-video disconnected (normal left inverted right x axis y axis)<br />
<br />
Setting tv standard to use:<br />
xrandr --output S-video --set "tv standard" ntsc<br />
<br />
Adding a mode for it (currently it supports only 800x600):<br />
xrandr --addmode S-video 800x600<br />
<br />
I will go for a clone mode:<br />
xrandr --output S-video --same-as VGA-0<br />
<br />
So far so good. Now let us try to see what we have:<br />
xrandr --output S-video --mode 800x600<br />
<br />
At this point you should see a 800x600 version of your desktop on your TV.<br />
<br />
To disable the output, do<br />
xrandr --output S-video --off<br />
<br />
Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.<br />
<br />
To send the output to the TV, I do<br />
xvattr -a XV_CRTC -v 1<br />
<br />
{{Note| you need to install {{AUR|xvattr}} to execute this command.}}<br />
<br />
To switch back to my monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.<br />
<br />
Please see [http://www.x.org/wiki/radeonTV Enabling TV-Out Statically] for how to enable TV-out in your xorg configuration file.<br />
<br />
=== Force TV-out in KMS ===<br />
<br />
Kernel can recognize {{ic|1=video=}} parameter in following form (see [[KMS]] for more details):<br />
<br />
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]<br />
<br />
For example:<br />
<br />
video=DVI-I-1:1280x1024-24@60e<br />
<br />
Parameters with whitespaces must be quoted:<br />
<br />
"video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
Current mkinitcpio implementation also requires {{ic|#}} in front. For example:<br />
<br />
root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
* Grub can pass such command line as is.<br />
* Lilo needs backslashes for doublequotes (append {{ic|1=# \"video=9-pin DIN-1:1024x768-24@60e\"}})<br />
* Grub2: TODO<br />
<br />
You can get list of your video outputs with following command:<br />
<br />
{{bc|<nowiki>$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-</nowiki>}}<br />
<br />
== HDMI audio ==<br />
<br />
HDMI audio is supported by the {{Pkg|xf86-video-ati}} video driver. By default, the necessary kernel module is disabled in kernel versions &gt;&#61;3.0. However, if your Radeon card is listed in the [http://www.x.org/wiki/RadeonFeature Radeon Feature Matrix], you can add {{ic|radeon.audio&#61;1}} to your [[Kernel parameters]]. For example:<br />
<br />
{{hc|/boot/syslinux/syslinux.cfg|<br />
LABEL arch<br />
MENU LABEL Arch Linux<br />
LINUX ../vmlinuz-linux<br />
APPEND root&#61;/dev/sda1 ro radeon.audio&#61;1<br />
INITRD ../initramfs-linux.img<br />
}}<br />
<br />
If HDMI audio doesn't simply work after installing the driver, test your setup with the procedure at [[Advanced_Linux_Sound_Architecture#HDMI_Output_Does_Not_Work]].<br />
<br />
{{note|As of this writing (2013-05-20), drivers for the [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names Southern Islands] cards don't support HDMI Audio.}}<br />
<br />
* The {{ic|radeon.audio}} kernel module only works if [[#Kernel_mode-setting_(KMS)]] is enabled. By default, '''xf86-video-ati''' enables KMS.<br />
* If the sound is distorted try [[PulseAudio#Glitches, skips or crackling|setting {{ic|1=tsched=0}}]] and make sure {{ic|rtkit}} daemon is running.<br />
<br />
== Dual Head setup ==<br />
<br />
=== Independent X screens ===<br />
<br />
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "radeon"<br />
Option "ZaphodHeads" "VGA-0"<br />
VendorName "ATI"<br />
BusID "PCI:1:0:0"<br />
Screen 0<br />
EndSection<br />
<br />
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads" "VGA-0"}}.<br />
<br />
Moreover, this option allows you to easily select the screen you want to mark as primary.<br />
<br />
== Enabling video acceleration ==<br />
<br />
Latest {{Pkg|mesa}} package added support for MPEG1/2 decoding to free drivers, exported via {{Pkg|libvdpau}} and are automaticaly detected.<br />
<br />
You can force used driver by assigning environment variable {{Ic|LIBVA_DRIVER_NAME}} to {{Ic|vdpau}} and {{Ic|VDPAU_DRIVER}} to the name of driver core, e.g.:<br />
<br />
{{hc|1=~/.bashrc|2=<br />
export LIBVA_DRIVER_NAME=vdpau<br />
export VDPAU_DRIVER=r600<br />
}}<br />
<br />
for r600-based cards (all available VDPAU drivers are in {{Ic|/usr/lib/vdpau/}}).<br />
<br />
== Turn vsync off ==<br />
<br />
The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create {{ic|~/.drirc}} (or edit it if it already exists) and add the following section:<br />
{{hc|~/.drirc|<nowiki><br />
<driconf><br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0" /><br />
</application><br />
</device><br />
<!-- Other devices ... --><br />
</driconf><br />
</nowiki>}}<br />
It is effectively '''dri2''', not your video card code (like r600).<br />
<br />
== Troubleshooting ==<br />
<br />
=== Artifacts upon logging in ===<br />
<br />
If encountering artifacts, first try starting X without {{ic|/etc/X11/xorg.conf}}. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured {{ic|xorg.conf}} files are known to cause trouble.<br />
<br />
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.<br />
<br />
Artifacts may also be related to [[kernel mode setting]]. Consider [[#Disable KMS|disabling KMS]].<br />
<br />
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EXAPixmaps" "off"<br />
EndSection<br />
<br />
Further tweaking could be done by disabling {{ic|AccelDFS}}:<br />
<br />
Option "AccelDFS" "off"<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
e.g. When EDID fails on a DisplayPort connection. <br />
<br />
This issue is covered on the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].<br />
<br />
=== Slow performance with open-source drivers ===<br />
<br />
{{Note|Make sure you are member of '''video''' group.}}<br />
<br />
Some cards can be installed by default trying to use [[ATI#AMD/Ati cards and kernel mode-setting (KMS)|KMS]]. You can check whether this is your case running:<br />
dmesg | egrep "drm|radeon"<br />
<br />
This command might show something like this, meaning it is trying to default to KMS:<br />
[drm] radeon default to kernel modesetting.<br />
...<br />
[drm:radeon_driver_load_kms] *ERROR* Failed to initialize radeon, disabling IOCTL<br />
<br />
If your card is not supported by KMS (anything older than r100), then you can [[ATI#Disable KMS|disable KMS]]. This should fix the problem.<br />
<br />
=== AGP is disabled (with KMS) ===<br />
<br />
If you experience poor performance and dmesg shows something like this<br />
[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19<br />
then check if the agp driver for your motherboard (e.g., {{ic|via_agp}}, {{ic|intel_agp}} etc.) is loaded before the {{ic|radeon}} module, see [[ATI#Enabling KMS|Enabling KMS]].<br />
<br />
=== TV showing a black border around the screen ===<br />
<br />
When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see [[Wikipedia:Overscan]]) can be turned off using xrandr:<br />
xrandr --output HDMI-0 --set underscan off<br />
<br />
=== Black screen with mouse cursor on resume from suspend in X ===<br />
<br />
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance_tuning|performance tuning]] for more information.<br />
<br />
=== No desktop effects in KDE4 with X1300 and Radeon driver ===<br />
<br />
A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}. <br />
<br />
Add:<br />
DisableChecks=true<br />
<br />
To the [Compositing] section. Ensure that compositing is enabled with:<br />
Enabled=true<br />
<br />
=== Black screen and no console, but X works in KMS ===<br />
<br />
This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:<br />
fbcon=map:1<br />
This will tell the fbcon to map itself to the {{ic|/dev/fb1}} framebuffer dev and not the {{ic|/dev/fb0}}, that in our case exist on the wrong graphics card.<br />
<br />
=== Some 3D applications show textures as all black or crash ===<br />
<br />
You might need texture compression support, which is not included with the open source driver. Install {{Pkg|libtxc_dxtn}} (and {{Pkg|lib32-libtxc_dxtn}} for multilib systems).<br />
<br />
=== 2D performance (e.g. scrolling) is slow ===<br />
<br />
If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.<br />
<br />
Bellow is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "MigrationHeuristic" "greedy"<br />
EndSection<br />
}}<br />
<br />
=== ATI X1600 (RV530 series) 3D application show black windows ===<br />
<br />
There are three possible solutions:<br />
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].<br />
* If this doesn't work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.<br />
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{ic|driconf}} via pacman and set that option in {{ic|~/.drirc}}.<br />
<br />
=== Vertical colored stripes on chipset RS482 (Xpress 200M Series) with/out KMS ===<br />
<br />
The bug :With the graphical chipset Xpress 200M Series (Radeon Xpress 1150), booting with KMS gives you sometimes, as soon as Xorg boots, a screen with many vertical colored stripes. You cannot {{ic|Alt+Sys+K}} or do anything. Take a look {{Bug|21918}} for more information,<br />
How to fixed ? : disable dri (needn't to disable kms)<br />
Side effert: if i disable "dri" and use no kernel options (no "nomodeset") i see the vertical stripes at boot, only for 5 seconds, before having kdm displayed. Then, i have the same results.<br />
If I start for example KDE Desktop Effects, i will see again the vertical stripes for 5 seconds...and return to kdm ! :)</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=ATI&diff=274240ATI2013-09-03T15:17:07Z<p>Lordheavy: /* Kernel mode-setting (KMS) */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[cs:ATI]]<br />
[[de:ATI]]<br />
[[es:ATI]]<br />
[[fr:ATI]]<br />
[[it:ATI]]<br />
[[ja:ATI]]<br />
[[pl:ATI]]<br />
[[ru:ATI]]<br />
[[tr:ATI]]<br />
[[zh-CN:ATI]]<br />
{{Article summary start}}<br />
{{Article summary text|An overview of the open source ATI/AMD video card driver.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|AMD Catalyst}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary end}}<br />
<br />
Owners of '''ATI/AMD''' video cards have a choice between AMD's [[AMD Catalyst|proprietary driver]] ({{AUR|catalyst}}) and the open source driver ({{Pkg|xf86-video-ati}}). This article covers the open source driver.<br />
<br />
The open source driver is currently not ''on par'' with the proprietary driver in terms of 3D performance on newer cards or reliable TV-out support. It does, however, offer better dual-head support, excellent 2D acceleration, and provide sufficient 3D acceleration for OpenGL-accelerated [[window manager]]s, such as [[Compiz]] or KWin.<br />
<br />
If unsure, try the open source driver first, it will suit most needs and is generally less problematic (see the [http://www.x.org/wiki/RadeonFeature feature matrix] for details).<br />
<br />
== Naming conventions ==<br />
<br />
ATI's [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).<br />
<br />
For a table of core and product series, see [[Wikipedia:Comparison of AMD graphics processing units]].<br />
<br />
== Overview ==<br />
<br />
The {{ic|xf86-video-ati}} (radeon) driver:<br />
*Works with Radeon chipsets up to HD 6xxx and 7xxxM (latest Northern Islands chipsets).<br />
**Radeons in the HD 77xx (Southern Islands) series are partially supported. Check the [http://www.x.org/wiki/RadeonFeature feature matrix] for unsupported features.<br />
**Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D acceleration are provided.<br />
**Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides.<br />
*Supports DRI1, RandR 1.2/1.3, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2 (with the latest Linux kernel, libdrm and Mesa versions).<br />
<br />
Generally, '''xf86-video-ati''' should be your first choice, no matter which ATI card you own. In case you need to use a driver for newer ATI cards, you should consider the proprietary '''catalyst''' driver.<br />
<br />
{{Note|'''xf86-video-ati''' is specified as '''''radeon''''' for the kernel and in {{ic|xorg.conf}}. }}<br />
<br />
== Installation ==<br />
<br />
If Catalyst/{{ic|fglrx}} has been previously installed, see [[ATI Catalyst#Uninstallation|here]].<br />
<br />
=== Installing xf86-video-ati ===<br />
<br />
[[pacman|Install]] {{Pkg|xf86-video-ati}}, available in the [[official repositories]]. <br />
<br />
The -git version of the driver and other needed packages (linux-git, etc) can be found in the [https://bbs.archlinux.org/viewtopic.php?id=79509&p=1 radeon repository] or the [[AUR]].<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Kernel mode-setting (KMS) ==<br />
<br />
{{Tip|If you have problems with the resolution, check [[Kernel_Mode_Setting#Forcing_modes_and_EDID|this page]].}}<br />
<br />
[[KMS]] enables native resolution in the framebuffer and allows for instant console (tty) switching. KMS also enables newer technologies (such as DRI2) which will help reduce artifacts and increase 3D performance, even kernel space power-saving.<br />
<br />
KMS for ATI video cards requires the [[Xorg]] free video user space driver {{Pkg|xf86-video-ati}}.<br />
<br />
{{Note| KMS is '''enabled''' by default for autodetected ATI/AMD cards. This section remains for configurations outside stock. }}<br />
<br />
==== Early start ====<br />
<br />
''These two methods will start KMS as early as possible in the [[boot process]].''<br />
<br />
1. The earliest point is to append the kernel line in your bootloader with {{ic|1= radeon.modeset=1}}. See your bootloader's page for info on how to do this.<br />
* Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. <br />
* AGP speed can be set with {{ic|<nowiki>radeon.agpmode=x</nowiki>}} kernel option, where x is 1, 2, 4, 8 (AGP speed) or -1 (PCI mode).<br />
<br />
2. Otherwise, when the [[initramfs]] is loaded:<br />
* If you have a special kernel outside of stock {{ic|-ARCH}} (e.g. linux-zen), remember to use a separate ''mkinitcpio'' configuration file (e.g. {{ic|/etc/mkinitcpio-zen.conf}}) and not {{ic|/etc/mkinitcpio.conf}}.<br />
* Remove any framebuffer related modules from your ''mkinitcpio'' file.<br />
* Add {{ic|radeon}} to {{ic|MODULES}} array in your ''mkinitcpio'' file. For AGP support, it is necessary to add {{ic|intel_agp}} (or {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, {{ic|amd64_agp}} etc.) before the {{ic|radeon}} module.<br />
* Re-generate your [[mkinitcpio#Image_creation_and_activation | initramfs]].<br />
<br />
Finally, '''Reboot''' the system.<br />
<br />
==== Late start ====<br />
<br />
''With this choice, KMS will be enabled when modules are loaded during the [[boot process]].''<br />
<br />
If you have a special kernel (e.g. linux-zen), remember to use appropriate mkinitcpio configuration file, e.g. {{ic|/etc/mkinitcpio-zen.conf}}. These instructions are written for the default kernel ({{Pkg|linux}}).<br />
{{Note| For AGP support, it may be necessary to add {{ic|intel_agp}}, {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, or {{ic|amd64_agp}}) to appropriate .conf files in {{ic|/etc/modules-load.d}}.}}<br />
<br />
# Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. Remove any framebuffer related modules from {{ic|/etc/mkinitcpio.conf}}. {{ic|<nowiki>video=</nowiki>}} can now be used in conjunction with KMS.<br />
# Add {{ic|<nowiki>options radeon modeset=1</nowiki>}} to {{ic|/etc/modprobe.d/modprobe.conf}}. <br />
# '''Reboot''' the system.<br />
<br />
== Performance tuning ==<br />
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.<br />
<br />
'''ColorTiling''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU<br />
<br />
Option "ColorTiling" "on"<br />
<br />
'''Acceleration architecture'''; this will work only on '''newer''' cards. If you enable this and then cannot get back into X, remove it. <br />
<br />
Option "AccelMethod" "EXA"<br />
<br />
'''Page Flip''' is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA.<br />
<br />
Option "EnablePageFlip" "on"<br />
<br />
'''EXAVSync ''' option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips.<br />
Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled.<br />
<br />
Option "EXAVSync" "yes"<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default<br />
Option "EnablePageFlip" "on" #supported on all R/RV/RS4xx and older hardware, and set on by default<br />
Option "AccelMethod" "EXA" #valid options are XAA, EXA and Glamor. EXA is the default<br />
Option "RenderAccel" "on" #enabled by default on all radeon hardware<br />
Option "ColorTiling" "on" #enabled by default on RV300 and later radeon cards<br />
Option "EXAVSync" "off" #default is off, otherwise on. Only works '''if EXA activated'''<br />
Option "EXAPixmaps" "on" #when on icreases 2D performance, but may also cause artifacts on some old cards. Only works '''if EXA activated'''<br />
Option "AccelDFS" "on" #default is off, read the radeon manpage for more information<br />
EndSection<br />
}}<br />
<br />
Defining the '''gartsize''', if not autodetected, can be done by adding {{ic|1=radeon.gartsize=32}} into [[kernel parameters]]. Size is in megabytes and 32 is for RV280 cards.<br />
<br />
Alternatively, do it with a modprobe option in {{ic|/etc/modprobe.d/radeon.conf}}:<br />
<br />
options radeon gartsize=32<br />
<br />
'''For further information and other options, read the radeon manpage and the module's info page''': {{ic|man radeon}}, {{ic|modinfo radeon}}.<br />
<br />
A fine tool to try is {{Pkg|driconf}}. It will allow you to modify several settings, like vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).<br />
<br />
=== Deactivating PCI-E 2.0 ===<br />
<br />
Since kernel 3.6, PCI-E v2.0 in '''radeon''' is turned on by default.<br />
<br />
It can be unstable with some motherboards, so it can be deactivated by adding {{ic|1=radeon.pcie_gen2=0}} on the [[Kernel parameters|kernel command line]].<br />
<br />
See [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article] for more information.<br />
<br />
=== Glamor ===<br />
<br />
Glamor is a 2D acceleration method implemented through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.<br />
<br />
Since xf86-video-ati driver-1:7.2.0-1, glamor is automaticaly enabled with radeonsi drivers (Southern Island and superior GFX cards); with other graphic cards you can use it by adding the AccelMethod glamor to your xorg.conf config file in the Device section:<br />
<br />
Option "AccelMethod" "glamor"<br />
<br />
However, you need to add the following section before:<br />
{{bc|<br />
Section "Module"<br />
Load "dri2"<br />
Load "glamoregl" <br />
EndSection<br />
}}<br />
<br />
== Hybrid graphics/AMD Dynamic Switchable Graphics ==<br />
<br />
It is the technology used on recent laptops equiped with two GPUs, one power-efficent (generally Intel integrated card) and one more powerful and more power-hungry (generally Radeon or Nvidia). There are three ways to get it work:<br />
<br />
* If you do not need to run any GPU-hungry application, you can plainly disable the discrete card: {{ic|echo OFF > /sys/kernel/debug/vgaswitcheroo/switch}}. You can do more things with vgaswitcheroo (see [https://help.ubuntu.com/community/HybridGraphics#Using_vga_switcheroo Ubuntu wiki] for more information) but ultimately at best one card is bound to one graphic session, you cannot use both on one graphic session.<br />
* You can use [[PRIME]]. It is the proper way to use hybrid graphics on Linux but still requires a bit of manual intervention from the user.<br />
* You can also use [[bumblebee]] with radeon, there is a {{AUR|bumblebee-amd-git}} package on [[AUR]].<br />
<br />
==Powersaving==<br />
<br />
The powersaving part is totally different with and without KMS.<br />
<br />
=== With KMS enabled ===<br />
<br />
{{Note|Power saving through KMS is still a work in progress, some chips may have problems with it.}}<br />
<br />
With the radeon driver, power saving is disabled by default but the kernel provides a method to enable it using sysfs.<br />
<br />
You can choose between two different methods. It's hard to say which is the best, you have to try it yourself.<br />
<br />
==== Dynamic frequency switching ====<br />
<br />
This method dynamically changes the frequency depending on GPU load, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.<br />
<br />
It can be activated by simply running the following command:<br />
<br />
# echo dynpm > /sys/class/drm/card0/device/power_method<br />
<br />
==== Profile-based frequency switching ====<br />
<br />
This method will allow you to select one of the five profiles (described below). Different profiles, for the most part, end up changing the frequency/voltage of the GPU. This method is not as aggressive, but is more stable and flicker free and works with multiple heads active.<br />
<br />
To activate the method, run the following command:<br />
<br />
# echo profile > /sys/class/drm/card0/device/power_method<br />
<br />
Select one of the available profiles:<br />
* {{ic|default}} uses the default clocks and does not change the power state. This is the default behaviour.<br />
* {{ic|auto}} selects between {{ic|mid}} and {{ic|high}} power states based on the whether the system is on battery power or not. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|low}} forces the gpu to be in the {{ic|low}} power state all the time. Note that {{ic|low}} can cause display problems on some laptops, which is why {{ic|auto}} only uses {{ic|low}} when monitors are off.<br />
* {{ic|mid}} forces the gpu to be in the {{ic|mid}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|high}} forces the gpu to be in the {{ic|high}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
<br />
As an example, we will activate the {{ic|low}} profile (replace {{ic|low}} with any of the aforementioned profiles as necessary):<br />
<br />
# echo low > /sys/class/drm/card0/device/power_profile<br />
<br />
==== Persistent configuration ====<br />
<br />
The activation described above is not persistent, it will not last when the computer is rebooted. To make it persistent, you can use [[systemd#Temporary files|systemd-tmpfiles]] (example for [[#Dynamic frequency switching]]):<br />
<br />
{{hc|/etc/tmpfiles.d/radeon-pm.conf|<nowiki><br />
w /sys/class/drm/card0/device/power_method - - - - dynpm<br />
</nowiki>}}<br />
<br />
Alternatively, you may use this [[udev]] rule instead (example for [[#Profile-based frequency switching]]):<br />
<br />
{{hc|/etc/udev/rules.d/30-radeon-pm.rules|<nowiki><br />
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low"<br />
</nowiki>}}<br />
<br />
{{Note|If the above rule is failing, try removing the {{ic|dri/}} prefix.}}<br />
<br />
==== Graphical tools ====<br />
<br />
* {{App|Radeon-tray|A small program to control the power profiles of your Radeon card via systray icon. It is written in PyQt4 and is suitable for non-Gnome users.|https://github.com/StuntsPT/Radeon-tray|}}<br />
* {{App|power-play-switcher|A gui for changing powerplay setting of the open source driver for ati radeon video cards.|https://code.google.com/p/power-play-switcher/|{{AUR|power-play-switcher}}}}<br />
* {{App|Gnome-shell-extension-Radeon-Power-Profile-Manager|A small extension for Gnome-shell that will allow you to change the power profile of your radeon card when using the open source drivers.|https://github.com/StuntsPT/shell-extension-radeon-power-profile-manager|{{AUR|gnome-shell-extension-radeon-ppm}} {{AUR|gnome-shell-extension-radeon-power-profile-manager-git}}}}<br />
<br />
==== Other notes ====<br />
<br />
Power management is supported on all asics (r1xx-evergreen) that include the appropriate power state tables in the vbios; not all boards do (especially older desktop cards).<br />
<br />
To view the speed that the GPU is running at, perform the following command and you will get something like this output:<br />
<br />
{{hc|$ cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki><br />
state: PM_STATE_ENABLED<br />
default engine clock: 300000 kHz<br />
current engine clock: 300720 kHz<br />
default memory clock: 200000 kHz<br />
</nowiki>}}<br />
<br />
If {{ic|/sys/kernel/debug}} is empty, run this command:<br />
<br />
# mount -t debugfs none /sys/kernel/debug<br />
<br />
To permanently mount, add the following line to {{ic|/etc/fstab}}:<br />
<br />
debugfs /sys/kernel/debug debugfs defaults 0 0<br />
<br />
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.<br />
<br />
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via [[lm_sensors]] tools or via sysfs in {{ic|/sys/class/hwmon}}.<br />
<br />
=== Without KMS ===<br />
<br />
In your {{ic|xorg.conf}} file, add 2 lines to "Device" Section:<br />
Option "DynamicPM" "on"<br />
Option "ClockGating" "on"<br />
<br />
If the two options are enabled successfully, you will see following lines in /var/log/Xorg.0.log:<br />
<br />
(**) RADEON(0): Option "ClockGating" "on"<br />
(**) RADEON(0): Option "DynamicPM" "on"<br />
<br />
Static power management enable success<br />
(II) RADEON(0): Dynamic Clock Gating Enabled<br />
(II) RADEON(0): Dynamic Power Management Enabled<br />
<br />
If you desire low power cost, you can add an extra line to "Device" Section of {{ic|xorg.conf}}:<br />
Option "ForceLowPowerMode" "on"<br />
<br />
== TV out ==<br />
<br />
{{out of date}}<br />
Since August 2007, there is TV-out support for all Radeons with integrated TV-out.<br />
<br />
It is somewhat limited for now, it does not always autodetect the output correctly and only NTSC mode works.<br />
<br />
First, check that you have an S-video output: {{ic|xrandr}} should give you something like<br />
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200<br />
...<br />
S-video disconnected (normal left inverted right x axis y axis)<br />
<br />
Setting tv standard to use:<br />
xrandr --output S-video --set "tv standard" ntsc<br />
<br />
Adding a mode for it (currently it supports only 800x600):<br />
xrandr --addmode S-video 800x600<br />
<br />
I will go for a clone mode:<br />
xrandr --output S-video --same-as VGA-0<br />
<br />
So far so good. Now let us try to see what we have:<br />
xrandr --output S-video --mode 800x600<br />
<br />
At this point you should see a 800x600 version of your desktop on your TV.<br />
<br />
To disable the output, do<br />
xrandr --output S-video --off<br />
<br />
Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.<br />
<br />
To send the output to the TV, I do<br />
xvattr -a XV_CRTC -v 1<br />
<br />
{{Note| you need to install {{AUR|xvattr}} to execute this command.}}<br />
<br />
To switch back to my monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.<br />
<br />
Please see [http://www.x.org/wiki/radeonTV Enabling TV-Out Statically] for how to enable TV-out in your xorg configuration file.<br />
<br />
=== Force TV-out in KMS ===<br />
<br />
Kernel can recognize {{ic|1=video=}} parameter in following form (see [[KMS]] for more details):<br />
<br />
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]<br />
<br />
For example:<br />
<br />
video=DVI-I-1:1280x1024-24@60e<br />
<br />
Parameters with whitespaces must be quoted:<br />
<br />
"video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
Current mkinitcpio implementation also requires {{ic|#}} in front. For example:<br />
<br />
root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
* Grub can pass such command line as is.<br />
* Lilo needs backslashes for doublequotes (append {{ic|1=# \"video=9-pin DIN-1:1024x768-24@60e\"}})<br />
* Grub2: TODO<br />
<br />
You can get list of your video outputs with following command:<br />
<br />
{{bc|<nowiki>$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-</nowiki>}}<br />
<br />
== HDMI audio ==<br />
<br />
HDMI audio is supported by the {{Pkg|xf86-video-ati}} video driver. By default, the necessary kernel module is disabled in kernel versions &gt;&#61;3.0. However, if your Radeon card is listed in the [http://www.x.org/wiki/RadeonFeature Radeon Feature Matrix], you can add {{ic|radeon.audio&#61;1}} to your [[Kernel parameters]]. For example:<br />
<br />
{{hc|/boot/syslinux/syslinux.cfg|<br />
LABEL arch<br />
MENU LABEL Arch Linux<br />
LINUX ../vmlinuz-linux<br />
APPEND root&#61;/dev/sda1 ro radeon.audio&#61;1<br />
INITRD ../initramfs-linux.img<br />
}}<br />
<br />
If HDMI audio doesn't simply work after installing the driver, test your setup with the procedure at [[Advanced_Linux_Sound_Architecture#HDMI_Output_Does_Not_Work]].<br />
<br />
{{note|As of this writing (2013-05-20), drivers for the [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names Southern Islands] cards don't support HDMI Audio.}}<br />
<br />
* The {{ic|radeon.audio}} kernel module only works if [[#Kernel_mode-setting_(KMS)]] is enabled. By default, '''xf86-video-ati''' enables KMS.<br />
* If the sound is distorted try [[PulseAudio#Glitches, skips or crackling|setting {{ic|1=tsched=0}}]] and make sure {{ic|rtkit}} daemon is running.<br />
<br />
== Dual Head setup ==<br />
<br />
=== Independent X screens ===<br />
<br />
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "radeon"<br />
Option "ZaphodHeads" "VGA-0"<br />
VendorName "ATI"<br />
BusID "PCI:1:0:0"<br />
Screen 0<br />
EndSection<br />
<br />
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads" "VGA-0"}}.<br />
<br />
Moreover, this option allows you to easily select the screen you want to mark as primary.<br />
<br />
== Enabling video acceleration ==<br />
<br />
Latest {{Pkg|mesa}} package added support for MPEG1/2 decoding to free drivers, exported via {{Pkg|libvdpau}} and are automaticaly detected.<br />
<br />
You can force used driver by assigning environment variable {{Ic|LIBVA_DRIVER_NAME}} to {{Ic|vdpau}} and {{Ic|VDPAU_DRIVER}} to the name of driver core, e.g.:<br />
<br />
{{hc|1=~/.bashrc|2=<br />
export LIBVA_DRIVER_NAME=vdpau<br />
export VDPAU_DRIVER=r600<br />
}}<br />
<br />
for r600-based cards (all available VDPAU drivers are in {{Ic|/usr/lib/vdpau/}}).<br />
<br />
== Turn vsync off ==<br />
<br />
The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create {{ic|~/.drirc}} (or edit it if it already exists) and add the following section:<br />
{{hc|~/.drirc|<nowiki><br />
<driconf><br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0" /><br />
</application><br />
</device><br />
<!-- Other devices ... --><br />
</driconf><br />
</nowiki>}}<br />
It is effectively '''dri2''', not your video card code (like r600).<br />
<br />
== Troubleshooting ==<br />
<br />
=== Artifacts upon logging in ===<br />
<br />
If encountering artifacts, first try starting X without {{ic|/etc/X11/xorg.conf}}. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured {{ic|xorg.conf}} files are known to cause trouble.<br />
<br />
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.<br />
<br />
Artifacts may also be related to [[kernel mode setting]]. Consider [[#Disable KMS|disabling KMS]].<br />
<br />
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EXAPixmaps" "off"<br />
EndSection<br />
<br />
Further tweaking could be done by disabling {{ic|AccelDFS}}:<br />
<br />
Option "AccelDFS" "off"<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
e.g. When EDID fails on a DisplayPort connection. <br />
<br />
This issue is covered on the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].<br />
<br />
=== Slow performance with open-source drivers ===<br />
<br />
{{Note|Make sure you are member of '''video''' group.}}<br />
<br />
Some cards can be installed by default trying to use [[ATI#AMD/Ati cards and kernel mode-setting (KMS)|KMS]]. You can check whether this is your case running:<br />
dmesg | egrep "drm|radeon"<br />
<br />
This command might show something like this, meaning it is trying to default to KMS:<br />
[drm] radeon default to kernel modesetting.<br />
...<br />
[drm:radeon_driver_load_kms] *ERROR* Failed to initialize radeon, disabling IOCTL<br />
<br />
If your card is not supported by KMS (anything older than r100), then you can [[ATI#Disable KMS|disable KMS]]. This should fix the problem.<br />
<br />
=== AGP is disabled (with KMS) ===<br />
<br />
If you experience poor performance and dmesg shows something like this<br />
[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19<br />
then check if the agp driver for your motherboard (e.g., {{ic|via_agp}}, {{ic|intel_agp}} etc.) is loaded before the {{ic|radeon}} module, see [[ATI#Enabling KMS|Enabling KMS]].<br />
<br />
=== TV showing a black border around the screen ===<br />
<br />
When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see [[Wikipedia:Overscan]]) can be turned off using xrandr:<br />
xrandr --output HDMI-0 --set underscan off<br />
<br />
=== Black screen with mouse cursor on resume from suspend in X ===<br />
<br />
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance_tuning|performance tuning]] for more information.<br />
<br />
=== No desktop effects in KDE4 with X1300 and Radeon driver ===<br />
<br />
A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}. <br />
<br />
Add:<br />
DisableChecks=true<br />
<br />
To the [Compositing] section. Ensure that compositing is enabled with:<br />
Enabled=true<br />
<br />
=== Black screen and no console, but X works in KMS ===<br />
<br />
This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:<br />
fbcon=map:1<br />
This will tell the fbcon to map itself to the {{ic|/dev/fb1}} framebuffer dev and not the {{ic|/dev/fb0}}, that in our case exist on the wrong graphics card.<br />
<br />
=== Some 3D applications show textures as all black or crash ===<br />
<br />
You might need texture compression support, which is not included with the open source driver. Install {{Pkg|libtxc_dxtn}} (and {{Pkg|lib32-libtxc_dxtn}} for multilib systems).<br />
<br />
=== 2D performance (e.g. scrolling) is slow ===<br />
<br />
If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.<br />
<br />
Bellow is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "MigrationHeuristic" "greedy"<br />
EndSection<br />
}}<br />
<br />
=== ATI X1600 (RV530 series) 3D application show black windows ===<br />
<br />
There are three possible solutions:<br />
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].<br />
* If this doesn't work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.<br />
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{ic|driconf}} via pacman and set that option in {{ic|~/.drirc}}.<br />
<br />
=== Vertical colored stripes on chipset RS482 (Xpress 200M Series) with/out KMS ===<br />
<br />
The bug :With the graphical chipset Xpress 200M Series (Radeon Xpress 1150), booting with KMS gives you sometimes, as soon as Xorg boots, a screen with many vertical colored stripes. You cannot {{ic|Alt+Sys+K}} or do anything. Take a look {{Bug|21918}} for more information,<br />
How to fixed ? : disable dri (needn't to disable kms)<br />
Side effert: if i disable "dri" and use no kernel options (no "nomodeset") i see the vertical stripes at boot, only for 5 seconds, before having kdm displayed. Then, i have the same results.<br />
If I start for example KDE Desktop Effects, i will see again the vertical stripes for 5 seconds...and return to kdm ! :)</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=ATI&diff=274211ATI2013-09-03T08:12:42Z<p>Lordheavy: /* Performance tuning */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[cs:ATI]]<br />
[[de:ATI]]<br />
[[es:ATI]]<br />
[[fr:ATI]]<br />
[[it:ATI]]<br />
[[ja:ATI]]<br />
[[pl:ATI]]<br />
[[ru:ATI]]<br />
[[tr:ATI]]<br />
[[zh-CN:ATI]]<br />
{{Article summary start}}<br />
{{Article summary text|An overview of the open source ATI/AMD video card driver.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|AMD Catalyst}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary end}}<br />
<br />
Owners of '''ATI/AMD''' video cards have a choice between AMD's [[AMD Catalyst|proprietary driver]] ({{AUR|catalyst}}) and the open source driver ({{Pkg|xf86-video-ati}}). This article covers the open source driver.<br />
<br />
The open source driver is currently not ''on par'' with the proprietary driver in terms of 3D performance on newer cards or reliable TV-out support. It does, however, offer better dual-head support, excellent 2D acceleration, and provide sufficient 3D acceleration for OpenGL-accelerated [[window manager]]s, such as [[Compiz]] or KWin.<br />
<br />
If unsure, try the open source driver first, it will suit most needs and is generally less problematic (see the [http://www.x.org/wiki/RadeonFeature feature matrix] for details).<br />
<br />
== Naming conventions ==<br />
<br />
ATI's [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).<br />
<br />
For a table of core and product series, see [[Wikipedia:Comparison of AMD graphics processing units]].<br />
<br />
== Overview ==<br />
<br />
The {{ic|xf86-video-ati}} (radeon) driver:<br />
*Works with Radeon chipsets up to HD 6xxx and 7xxxM (latest Northern Islands chipsets).<br />
**Radeons in the HD 77xx (Southern Islands) series are partially supported. Check the [http://www.x.org/wiki/RadeonFeature feature matrix] for unsupported features.<br />
**Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D acceleration are provided.<br />
**Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides.<br />
*Supports DRI1, RandR 1.2/1.3, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2 (with the latest Linux kernel, libdrm and Mesa versions).<br />
<br />
Generally, '''xf86-video-ati''' should be your first choice, no matter which ATI card you own. In case you need to use a driver for newer ATI cards, you should consider the proprietary '''catalyst''' driver.<br />
<br />
{{Note|'''xf86-video-ati''' is specified as '''''radeon''''' for the kernel and in {{ic|xorg.conf}}. }}<br />
<br />
== Installation ==<br />
<br />
If Catalyst/{{ic|fglrx}} has been previously installed, see [[ATI Catalyst#Uninstallation|here]].<br />
<br />
=== Installing xf86-video-ati ===<br />
<br />
[[pacman|Install]] {{Pkg|xf86-video-ati}}, available in the [[official repositories]]. <br />
<br />
The -git version of the driver and other needed packages (linux-git, etc) can be found in the [https://bbs.archlinux.org/viewtopic.php?id=79509&p=1 radeon repository] or the [[AUR]].<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Kernel mode-setting (KMS) ==<br />
<br />
{{Tip|If you have problems with the resolution, check [[Kernel_Mode_Setting#Forcing_modes_and_EDID|this page]].}}<br />
<br />
[[KMS]] enables native resolution in the framebuffer and allows for instant console (tty) switching. KMS also enables newer technologies (such as DRI2) which will help reduce artifacts and increase 3D performance, even kernel space power-saving.<br />
<br />
KMS for ATI video cards requires the [[Xorg]] free video user space driver {{Pkg|xf86-video-ati}} version 6.12.4 or later.<br />
<br />
=== Enabling KMS ===<br />
<br />
{{Note| Since Linux kernel v.2.6.33, KMS is '''enabled''' by default for autodetected ATI/AMD cards. This section remains for configurations outside stock. }}<br />
<br />
==== Early start ====<br />
<br />
''These two methods will start KMS as early as possible in the [[boot process]].''<br />
<br />
1. The earliest point is to append the kernel line in your bootloader with {{ic|1= radeon.modeset=1}}. See your bootloader's page for info on how to do this.<br />
* Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. <br />
* AGP speed can be set with {{ic|<nowiki>radeon.agpmode=x</nowiki>}} kernel option, where x is 1, 2, 4, 8 (AGP speed) or -1 (PCI mode).<br />
<br />
2. Otherwise, when the [[initramfs]] is loaded:<br />
* If you have a special kernel outside of stock {{ic|-ARCH}} (e.g. linux-zen), remember to use a separate ''mkinitcpio'' configuration file (e.g. {{ic|/etc/mkinitcpio-zen.conf}}) and not {{ic|/etc/mkinitcpio.conf}}.<br />
* Remove any framebuffer related modules from your ''mkinitcpio'' file.<br />
* Add {{ic|radeon}} to {{ic|MODULES}} array in your ''mkinitcpio'' file. For AGP support, it is necessary to add {{ic|intel_agp}} (or {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, {{ic|amd64_agp}} etc.) before the {{ic|radeon}} module.<br />
* Re-generate your [[mkinitcpio#Image_creation_and_activation | initramfs]].<br />
<br />
Finally, '''Reboot''' the system.<br />
<br />
==== Late start ====<br />
<br />
''With this choice, KMS will be enabled when modules are loaded during the [[boot process]].''<br />
<br />
If you have a special kernel (e.g. linux-zen), remember to use appropriate mkinitcpio configuration file, e.g. {{ic|/etc/mkinitcpio-zen.conf}}. These instructions are written for the default kernel ({{Pkg|linux}}).<br />
{{Note| For AGP support, it may be necessary to add {{ic|intel_agp}}, {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, or {{ic|amd64_agp}}) to appropriate .conf files in {{ic|/etc/modules-load.d}}.}}<br />
<br />
# Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. Remove any framebuffer related modules from {{ic|/etc/mkinitcpio.conf}}. {{ic|<nowiki>video=</nowiki>}} can now be used in conjunction with KMS.<br />
# Add {{ic|<nowiki>options radeon modeset=1</nowiki>}} to {{ic|/etc/modprobe.d/modprobe.conf}}. <br />
# '''Reboot''' the system.<br />
<br />
=== Troubleshooting KMS ===<br />
<br />
==== Disable KMS ====<br />
<br />
As of Linux 3.9, the {{ic|radeon}} driver '''requires''' kernel mode-setting (the old user mode-setting can still be enabled as a kernel compile option).<br />
<br />
If you have {{ic|<nowiki>radeon.modeset=0</nowiki>}} (or {{ic|nomodeset}}) in the kernel options line in the bootloader, remove it. If you have {{ic|<nowiki>options radeon modeset=0</nowiki>}} anywhere in {{ic|/etc/modprobe.d}}, remove it.<br />
<br />
==== Renaming {{ic|xorg.conf}} ====<br />
<br />
Renaming {{ic|/etc/X11/xorg.conf}}, which may include options that conflict with KMS, will force Xorg to autodetect hardware with sane defaults. After renaming, '''restart''' Xorg.<br />
<br />
== Performance tuning ==<br />
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.<br />
<br />
'''ColorTiling''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU<br />
<br />
Option "ColorTiling" "on"<br />
<br />
'''Acceleration architecture'''; this will work only on '''newer''' cards. If you enable this and then cannot get back into X, remove it. <br />
<br />
Option "AccelMethod" "EXA"<br />
<br />
'''Page Flip''' is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA.<br />
<br />
Option "EnablePageFlip" "on"<br />
<br />
'''EXAVSync ''' option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips.<br />
Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled.<br />
<br />
Option "EXAVSync" "yes"<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default<br />
Option "EnablePageFlip" "on" #supported on all R/RV/RS4xx and older hardware, and set on by default<br />
Option "AccelMethod" "EXA" #valid options are XAA, EXA and Glamor. EXA is the default<br />
Option "RenderAccel" "on" #enabled by default on all radeon hardware<br />
Option "ColorTiling" "on" #enabled by default on RV300 and later radeon cards<br />
Option "EXAVSync" "off" #default is off, otherwise on. Only works '''if EXA activated'''<br />
Option "EXAPixmaps" "on" #when on icreases 2D performance, but may also cause artifacts on some old cards. Only works '''if EXA activated'''<br />
Option "AccelDFS" "on" #default is off, read the radeon manpage for more information<br />
EndSection<br />
}}<br />
<br />
Defining the '''gartsize''', if not autodetected, can be done by adding {{ic|1=radeon.gartsize=32}} into [[kernel parameters]]. Size is in megabytes and 32 is for RV280 cards.<br />
<br />
Alternatively, do it with a modprobe option in {{ic|/etc/modprobe.d/radeon.conf}}:<br />
<br />
options radeon gartsize=32<br />
<br />
'''For further information and other options, read the radeon manpage and the module's info page''': {{ic|man radeon}}, {{ic|modinfo radeon}}.<br />
<br />
A fine tool to try is {{Pkg|driconf}}. It will allow you to modify several settings, like vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).<br />
<br />
=== Deactivating PCI-E 2.0 ===<br />
<br />
Since kernel 3.6, PCI-E v2.0 in '''radeon''' is turned on by default.<br />
<br />
It can be unstable with some motherboards, so it can be deactivated by adding {{ic|1=radeon.pcie_gen2=0}} on the [[Kernel parameters|kernel command line]].<br />
<br />
See [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article] for more information.<br />
<br />
=== Glamor ===<br />
<br />
Glamor is a 2D acceleration method implemented through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.<br />
<br />
Since xf86-video-ati driver-1:7.2.0-1, glamor is automaticaly enabled with radeonsi drivers (Southern Island and superior GFX cards); with other graphic cards you can use it by adding the AccelMethod glamor to your xorg.conf config file in the Device section:<br />
<br />
Option "AccelMethod" "glamor"<br />
<br />
However, you need to add the following section before:<br />
{{bc|<br />
Section "Module"<br />
Load "dri2"<br />
Load "glamoregl" <br />
EndSection<br />
}}<br />
<br />
== Hybrid graphics/AMD Dynamic Switchable Graphics ==<br />
<br />
It is the technology used on recent laptops equiped with two GPUs, one power-efficent (generally Intel integrated card) and one more powerful and more power-hungry (generally Radeon or Nvidia). There are three ways to get it work:<br />
<br />
* If you do not need to run any GPU-hungry application, you can plainly disable the discrete card: {{ic|echo OFF > /sys/kernel/debug/vgaswitcheroo/switch}}. You can do more things with vgaswitcheroo (see [https://help.ubuntu.com/community/HybridGraphics#Using_vga_switcheroo Ubuntu wiki] for more information) but ultimately at best one card is bound to one graphic session, you cannot use both on one graphic session.<br />
* You can use [[PRIME]]. It is the proper way to use hybrid graphics on Linux but still requires a bit of manual intervention from the user.<br />
* You can also use [[bumblebee]] with radeon, there is a {{AUR|bumblebee-amd-git}} package on [[AUR]].<br />
<br />
==Powersaving==<br />
<br />
The powersaving part is totally different with and without KMS.<br />
<br />
=== With KMS enabled ===<br />
<br />
{{Note|Power saving through KMS is still a work in progress, some chips may have problems with it.}}<br />
<br />
With the radeon driver, power saving is disabled by default but the kernel provides a method to enable it using sysfs.<br />
<br />
You can choose between two different methods. It's hard to say which is the best, you have to try it yourself.<br />
<br />
==== Dynamic frequency switching ====<br />
<br />
This method dynamically changes the frequency depending on GPU load, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.<br />
<br />
It can be activated by simply running the following command:<br />
<br />
# echo dynpm > /sys/class/drm/card0/device/power_method<br />
<br />
==== Profile-based frequency switching ====<br />
<br />
This method will allow you to select one of the five profiles (described below). Different profiles, for the most part, end up changing the frequency/voltage of the GPU. This method is not as aggressive, but is more stable and flicker free and works with multiple heads active.<br />
<br />
To activate the method, run the following command:<br />
<br />
# echo profile > /sys/class/drm/card0/device/power_method<br />
<br />
Select one of the available profiles:<br />
* {{ic|default}} uses the default clocks and does not change the power state. This is the default behaviour.<br />
* {{ic|auto}} selects between {{ic|mid}} and {{ic|high}} power states based on the whether the system is on battery power or not. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|low}} forces the gpu to be in the {{ic|low}} power state all the time. Note that {{ic|low}} can cause display problems on some laptops, which is why {{ic|auto}} only uses {{ic|low}} when monitors are off.<br />
* {{ic|mid}} forces the gpu to be in the {{ic|mid}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|high}} forces the gpu to be in the {{ic|high}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
<br />
As an example, we will activate the {{ic|low}} profile (replace {{ic|low}} with any of the aforementioned profiles as necessary):<br />
<br />
# echo low > /sys/class/drm/card0/device/power_profile<br />
<br />
==== Persistent configuration ====<br />
<br />
The activation described above is not persistent, it will not last when the computer is rebooted. To make it persistent, you can use [[systemd#Temporary files|systemd-tmpfiles]] (example for [[#Dynamic frequency switching]]):<br />
<br />
{{hc|/etc/tmpfiles.d/radeon-pm.conf|<nowiki><br />
w /sys/class/drm/card0/device/power_method - - - - dynpm<br />
</nowiki>}}<br />
<br />
Alternatively, you may use this [[udev]] rule instead (example for [[#Profile-based frequency switching]]):<br />
<br />
{{hc|/etc/udev/rules.d/30-radeon-pm.rules|<nowiki><br />
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low"<br />
</nowiki>}}<br />
<br />
{{Note|If the above rule is failing, try removing the {{ic|dri/}} prefix.}}<br />
<br />
==== Graphical tools ====<br />
<br />
* {{App|Radeon-tray|A small program to control the power profiles of your Radeon card via systray icon. It is written in PyQt4 and is suitable for non-Gnome users.|https://github.com/StuntsPT/Radeon-tray|}}<br />
* {{App|power-play-switcher|A gui for changing powerplay setting of the open source driver for ati radeon video cards.|https://code.google.com/p/power-play-switcher/|{{AUR|power-play-switcher}}}}<br />
* {{App|Gnome-shell-extension-Radeon-Power-Profile-Manager|A small extension for Gnome-shell that will allow you to change the power profile of your radeon card when using the open source drivers.|https://github.com/StuntsPT/shell-extension-radeon-power-profile-manager|{{AUR|gnome-shell-extension-radeon-ppm}} {{AUR|gnome-shell-extension-radeon-power-profile-manager-git}}}}<br />
<br />
==== Other notes ====<br />
<br />
Power management is supported on all asics (r1xx-evergreen) that include the appropriate power state tables in the vbios; not all boards do (especially older desktop cards).<br />
<br />
To view the speed that the GPU is running at, perform the following command and you will get something like this output:<br />
<br />
{{hc|$ cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki><br />
state: PM_STATE_ENABLED<br />
default engine clock: 300000 kHz<br />
current engine clock: 300720 kHz<br />
default memory clock: 200000 kHz<br />
</nowiki>}}<br />
<br />
If {{ic|/sys/kernel/debug}} is empty, run this command:<br />
<br />
# mount -t debugfs none /sys/kernel/debug<br />
<br />
To permanently mount, add the following line to {{ic|/etc/fstab}}:<br />
<br />
debugfs /sys/kernel/debug debugfs defaults 0 0<br />
<br />
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.<br />
<br />
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via [[lm_sensors]] tools or via sysfs in {{ic|/sys/class/hwmon}}.<br />
<br />
=== Without KMS ===<br />
<br />
In your {{ic|xorg.conf}} file, add 2 lines to "Device" Section:<br />
Option "DynamicPM" "on"<br />
Option "ClockGating" "on"<br />
<br />
If the two options are enabled successfully, you will see following lines in /var/log/Xorg.0.log:<br />
<br />
(**) RADEON(0): Option "ClockGating" "on"<br />
(**) RADEON(0): Option "DynamicPM" "on"<br />
<br />
Static power management enable success<br />
(II) RADEON(0): Dynamic Clock Gating Enabled<br />
(II) RADEON(0): Dynamic Power Management Enabled<br />
<br />
If you desire low power cost, you can add an extra line to "Device" Section of {{ic|xorg.conf}}:<br />
Option "ForceLowPowerMode" "on"<br />
<br />
== TV out ==<br />
<br />
{{out of date}}<br />
Since August 2007, there is TV-out support for all Radeons with integrated TV-out.<br />
<br />
It is somewhat limited for now, it does not always autodetect the output correctly and only NTSC mode works.<br />
<br />
First, check that you have an S-video output: {{ic|xrandr}} should give you something like<br />
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200<br />
...<br />
S-video disconnected (normal left inverted right x axis y axis)<br />
<br />
Setting tv standard to use:<br />
xrandr --output S-video --set "tv standard" ntsc<br />
<br />
Adding a mode for it (currently it supports only 800x600):<br />
xrandr --addmode S-video 800x600<br />
<br />
I will go for a clone mode:<br />
xrandr --output S-video --same-as VGA-0<br />
<br />
So far so good. Now let us try to see what we have:<br />
xrandr --output S-video --mode 800x600<br />
<br />
At this point you should see a 800x600 version of your desktop on your TV.<br />
<br />
To disable the output, do<br />
xrandr --output S-video --off<br />
<br />
Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.<br />
<br />
To send the output to the TV, I do<br />
xvattr -a XV_CRTC -v 1<br />
<br />
{{Note| you need to install {{AUR|xvattr}} to execute this command.}}<br />
<br />
To switch back to my monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.<br />
<br />
Please see [http://www.x.org/wiki/radeonTV Enabling TV-Out Statically] for how to enable TV-out in your xorg configuration file.<br />
<br />
=== Force TV-out in KMS ===<br />
<br />
Kernel can recognize {{ic|1=video=}} parameter in following form (see [[KMS]] for more details):<br />
<br />
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]<br />
<br />
For example:<br />
<br />
video=DVI-I-1:1280x1024-24@60e<br />
<br />
Parameters with whitespaces must be quoted:<br />
<br />
"video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
Current mkinitcpio implementation also requires {{ic|#}} in front. For example:<br />
<br />
root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
* Grub can pass such command line as is.<br />
* Lilo needs backslashes for doublequotes (append {{ic|1=# \"video=9-pin DIN-1:1024x768-24@60e\"}})<br />
* Grub2: TODO<br />
<br />
You can get list of your video outputs with following command:<br />
<br />
{{bc|<nowiki>$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-</nowiki>}}<br />
<br />
== HDMI audio ==<br />
<br />
HDMI audio is supported by the {{Pkg|xf86-video-ati}} video driver. By default, the necessary kernel module is disabled in kernel versions &gt;&#61;3.0. However, if your Radeon card is listed in the [http://www.x.org/wiki/RadeonFeature Radeon Feature Matrix], you can add {{ic|radeon.audio&#61;1}} to your [[Kernel parameters]]. For example:<br />
<br />
{{hc|/boot/syslinux/syslinux.cfg|<br />
LABEL arch<br />
MENU LABEL Arch Linux<br />
LINUX ../vmlinuz-linux<br />
APPEND root&#61;/dev/sda1 ro radeon.audio&#61;1<br />
INITRD ../initramfs-linux.img<br />
}}<br />
<br />
If HDMI audio doesn't simply work after installing the driver, test your setup with the procedure at [[Advanced_Linux_Sound_Architecture#HDMI_Output_Does_Not_Work]].<br />
<br />
{{note|As of this writing (2013-05-20), drivers for the [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names Southern Islands] cards don't support HDMI Audio.}}<br />
<br />
* The {{ic|radeon.audio}} kernel module only works if [[#Kernel_mode-setting_(KMS)]] is enabled. By default, '''xf86-video-ati''' enables KMS.<br />
* If the sound is distorted try [[PulseAudio#Glitches, skips or crackling|setting {{ic|1=tsched=0}}]] and make sure {{ic|rtkit}} daemon is running.<br />
<br />
== Dual Head setup ==<br />
<br />
=== Independent X screens ===<br />
<br />
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "radeon"<br />
Option "ZaphodHeads" "VGA-0"<br />
VendorName "ATI"<br />
BusID "PCI:1:0:0"<br />
Screen 0<br />
EndSection<br />
<br />
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads" "VGA-0"}}.<br />
<br />
Moreover, this option allows you to easily select the screen you want to mark as primary.<br />
<br />
== Enabling video acceleration ==<br />
<br />
Latest {{Pkg|mesa}} package added support for MPEG1/2 decoding to free drivers, exported via {{Pkg|libvdpau}} and are automaticaly detected.<br />
<br />
You can force used driver by assigning environment variable {{Ic|LIBVA_DRIVER_NAME}} to {{Ic|vdpau}} and {{Ic|VDPAU_DRIVER}} to the name of driver core, e.g.:<br />
<br />
{{hc|1=~/.bashrc|2=<br />
export LIBVA_DRIVER_NAME=vdpau<br />
export VDPAU_DRIVER=r600<br />
}}<br />
<br />
for r600-based cards (all available VDPAU drivers are in {{Ic|/usr/lib/vdpau/}}).<br />
<br />
== Turn vsync off ==<br />
<br />
The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create {{ic|~/.drirc}} (or edit it if it already exists) and add the following section:<br />
{{hc|~/.drirc|<nowiki><br />
<driconf><br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0" /><br />
</application><br />
</device><br />
<!-- Other devices ... --><br />
</driconf><br />
</nowiki>}}<br />
It is effectively '''dri2''', not your video card code (like r600).<br />
<br />
== Troubleshooting ==<br />
<br />
=== Artifacts upon logging in ===<br />
<br />
If encountering artifacts, first try starting X without {{ic|/etc/X11/xorg.conf}}. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured {{ic|xorg.conf}} files are known to cause trouble.<br />
<br />
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.<br />
<br />
Artifacts may also be related to [[kernel mode setting]]. Consider [[#Disable KMS|disabling KMS]].<br />
<br />
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EXAPixmaps" "off"<br />
EndSection<br />
<br />
Further tweaking could be done by disabling {{ic|AccelDFS}}:<br />
<br />
Option "AccelDFS" "off"<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
e.g. When EDID fails on a DisplayPort connection. <br />
<br />
This issue is covered on the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].<br />
<br />
=== Slow performance with open-source drivers ===<br />
<br />
{{Note|Make sure you are member of '''video''' group.}}<br />
<br />
Some cards can be installed by default trying to use [[ATI#AMD/Ati cards and kernel mode-setting (KMS)|KMS]]. You can check whether this is your case running:<br />
dmesg | egrep "drm|radeon"<br />
<br />
This command might show something like this, meaning it is trying to default to KMS:<br />
[drm] radeon default to kernel modesetting.<br />
...<br />
[drm:radeon_driver_load_kms] *ERROR* Failed to initialize radeon, disabling IOCTL<br />
<br />
If your card is not supported by KMS (anything older than r100), then you can [[ATI#Disable KMS|disable KMS]]. This should fix the problem.<br />
<br />
=== AGP is disabled (with KMS) ===<br />
<br />
If you experience poor performance and dmesg shows something like this<br />
[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19<br />
then check if the agp driver for your motherboard (e.g., {{ic|via_agp}}, {{ic|intel_agp}} etc.) is loaded before the {{ic|radeon}} module, see [[ATI#Enabling KMS|Enabling KMS]].<br />
<br />
=== TV showing a black border around the screen ===<br />
<br />
When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see [[Wikipedia:Overscan]]) can be turned off using xrandr:<br />
xrandr --output HDMI-0 --set underscan off<br />
<br />
=== Black screen with mouse cursor on resume from suspend in X ===<br />
<br />
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance_tuning|performance tuning]] for more information.<br />
<br />
=== No desktop effects in KDE4 with X1300 and Radeon driver ===<br />
<br />
A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}. <br />
<br />
Add:<br />
DisableChecks=true<br />
<br />
To the [Compositing] section. Ensure that compositing is enabled with:<br />
Enabled=true<br />
<br />
=== Black screen and no console, but X works in KMS ===<br />
<br />
This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:<br />
fbcon=map:1<br />
This will tell the fbcon to map itself to the {{ic|/dev/fb1}} framebuffer dev and not the {{ic|/dev/fb0}}, that in our case exist on the wrong graphics card.<br />
<br />
=== Some 3D applications show textures as all black or crash ===<br />
<br />
You might need texture compression support, which is not included with the open source driver. Install {{Pkg|libtxc_dxtn}} (and {{Pkg|lib32-libtxc_dxtn}} for multilib systems).<br />
<br />
=== 2D performance (e.g. scrolling) is slow ===<br />
<br />
If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.<br />
<br />
Bellow is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "MigrationHeuristic" "greedy"<br />
EndSection<br />
}}<br />
<br />
=== ATI X1600 (RV530 series) 3D application show black windows ===<br />
<br />
There are three possible solutions:<br />
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].<br />
* If this doesn't work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.<br />
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{ic|driconf}} via pacman and set that option in {{ic|~/.drirc}}.<br />
<br />
=== Vertical colored stripes on chipset RS482 (Xpress 200M Series) with/out KMS ===<br />
<br />
The bug :With the graphical chipset Xpress 200M Series (Radeon Xpress 1150), booting with KMS gives you sometimes, as soon as Xorg boots, a screen with many vertical colored stripes. You cannot {{ic|Alt+Sys+K}} or do anything. Take a look {{Bug|21918}} for more information,<br />
How to fixed ? : disable dri (needn't to disable kms)<br />
Side effert: if i disable "dri" and use no kernel options (no "nomodeset") i see the vertical stripes at boot, only for 5 seconds, before having kdm displayed. Then, i have the same results.<br />
If I start for example KDE Desktop Effects, i will see again the vertical stripes for 5 seconds...and return to kdm ! :)</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=ATI&diff=273204ATI2013-08-30T14:40:23Z<p>Lordheavy: /* Deactivating PCI-E 2.0 */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[cs:ATI]]<br />
[[de:ATI]]<br />
[[es:ATI]]<br />
[[fr:ATI]]<br />
[[it:ATI]]<br />
[[ja:ATI]]<br />
[[pl:ATI]]<br />
[[ru:ATI]]<br />
[[tr:ATI]]<br />
[[zh-CN:ATI]]<br />
{{Article summary start}}<br />
{{Article summary text|An overview of the open source ATI/AMD video card driver.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|AMD Catalyst}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary end}}<br />
<br />
Owners of '''ATI/AMD''' video cards have a choice between AMD's [[AMD Catalyst|proprietary driver]] ({{AUR|catalyst}}) and the open source driver ({{Pkg|xf86-video-ati}}). This article covers the open source driver.<br />
<br />
The open source driver is currently not ''on par'' with the proprietary driver in terms of 3D performance on newer cards or reliable TV-out support. It does, however, offer better dual-head support, excellent 2D acceleration, and provide sufficient 3D acceleration for OpenGL-accelerated [[window manager]]s, such as [[Compiz]] or KWin.<br />
<br />
If unsure, try the open source driver first, it will suit most needs and is generally less problematic (see the [http://www.x.org/wiki/RadeonFeature feature matrix] for details).<br />
<br />
== Naming conventions ==<br />
<br />
ATI's [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).<br />
<br />
For a table of core and product series, see [[Wikipedia:Comparison of AMD graphics processing units]].<br />
<br />
== Overview ==<br />
<br />
The {{ic|xf86-video-ati}} (radeon) driver:<br />
*Works with Radeon chipsets up to HD 6xxx and 7xxxM (latest Northern Islands chipsets).<br />
**Radeons in the HD 77xx (Southern Islands) series are partially supported. Check the [http://www.x.org/wiki/RadeonFeature feature matrix] for unsupported features.<br />
**Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D acceleration are provided.<br />
**Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides.<br />
*Supports DRI1, RandR 1.2/1.3, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2 (with the latest Linux kernel, libdrm and Mesa versions).<br />
<br />
Generally, '''xf86-video-ati''' should be your first choice, no matter which ATI card you own. In case you need to use a driver for newer ATI cards, you should consider the proprietary '''catalyst''' driver.<br />
<br />
{{Note|'''xf86-video-ati''' is specified as '''''radeon''''' for the kernel and in {{ic|xorg.conf}}. }}<br />
<br />
== Installation ==<br />
<br />
If Catalyst/{{ic|fglrx}} has been previously installed, see [[ATI Catalyst#Uninstallation|here]].<br />
<br />
=== Installing xf86-video-ati ===<br />
<br />
[[pacman|Install]] {{Pkg|xf86-video-ati}}, available in the [[official repositories]]. <br />
<br />
The -git version of the driver and other needed packages (linux-git, etc) can be found in the [https://bbs.archlinux.org/viewtopic.php?id=79509&p=1 radeon repository] or the [[AUR]].<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Kernel mode-setting (KMS) ==<br />
<br />
{{Tip|If you have problems with the resolution, check [[Kernel_Mode_Setting#Forcing_modes_and_EDID|this page]].}}<br />
<br />
[[KMS]] enables native resolution in the framebuffer and allows for instant console (tty) switching. KMS also enables newer technologies (such as DRI2) which will help reduce artifacts and increase 3D performance, even kernel space power-saving.<br />
<br />
KMS for ATI video cards requires the [[Xorg]] free video user space driver {{Pkg|xf86-video-ati}} version 6.12.4 or later.<br />
<br />
=== Enabling KMS ===<br />
<br />
{{Note| Since Linux kernel v.2.6.33, KMS is '''enabled''' by default for autodetected ATI/AMD cards. This section remains for configurations outside stock. }}<br />
<br />
==== Early start ====<br />
<br />
''These two methods will start KMS as early as possible in the [[boot process]].''<br />
<br />
1. The earliest point is to append the kernel line in your bootloader with {{ic|1= radeon.modeset=1}}. See your bootloader's page for info on how to do this.<br />
* Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. <br />
* AGP speed can be set with {{ic|<nowiki>radeon.agpmode=x</nowiki>}} kernel option, where x is 1, 2, 4, 8 (AGP speed) or -1 (PCI mode).<br />
<br />
2. Otherwise, when the [[initramfs]] is loaded:<br />
* If you have a special kernel outside of stock {{ic|-ARCH}} (e.g. linux-zen), remember to use a separate ''mkinitcpio'' configuration file (e.g. {{ic|/etc/mkinitcpio-zen.conf}}) and not {{ic|/etc/mkinitcpio.conf}}.<br />
* Remove any framebuffer related modules from your ''mkinitcpio'' file.<br />
* Add {{ic|radeon}} to {{ic|MODULES}} array in your ''mkinitcpio'' file. For AGP support, it is necessary to add {{ic|intel_agp}} (or {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, {{ic|amd64_agp}} etc.) before the {{ic|radeon}} module.<br />
* Re-generate your [[mkinitcpio#Image_creation_and_activation | initramfs]].<br />
<br />
Finally, '''Reboot''' the system.<br />
<br />
==== Late start ====<br />
<br />
''With this choice, KMS will be enabled when modules are loaded during the [[boot process]].''<br />
<br />
If you have a special kernel (e.g. linux-zen), remember to use appropriate mkinitcpio configuration file, e.g. {{ic|/etc/mkinitcpio-zen.conf}}. These instructions are written for the default kernel ({{Pkg|linux}}).<br />
{{Note| For AGP support, it may be necessary to add {{ic|intel_agp}}, {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, or {{ic|amd64_agp}}) to appropriate .conf files in {{ic|/etc/modules-load.d}}.}}<br />
<br />
# Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. Remove any framebuffer related modules from {{ic|/etc/mkinitcpio.conf}}. {{ic|<nowiki>video=</nowiki>}} can now be used in conjunction with KMS.<br />
# Add {{ic|<nowiki>options radeon modeset=1</nowiki>}} to {{ic|/etc/modprobe.d/modprobe.conf}}. <br />
# '''Reboot''' the system.<br />
<br />
=== Troubleshooting KMS ===<br />
<br />
==== Disable KMS ====<br />
<br />
As of Linux 3.9, the {{ic|radeon}} driver '''requires''' kernel mode-setting (the old user mode-setting can still be enabled as a kernel compile option).<br />
<br />
If you have {{ic|<nowiki>radeon.modeset=0</nowiki>}} (or {{ic|nomodeset}}) in the kernel options line in the bootloader, remove it. If you have {{ic|<nowiki>options radeon modeset=0</nowiki>}} anywhere in {{ic|/etc/modprobe.d}}, remove it.<br />
<br />
==== Renaming {{ic|xorg.conf}} ====<br />
<br />
Renaming {{ic|/etc/X11/xorg.conf}}, which may include options that conflict with KMS, will force Xorg to autodetect hardware with sane defaults. After renaming, '''restart''' Xorg.<br />
<br />
== Performance tuning ==<br />
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.<br />
<br />
By design, xf86-video-ati runs at AGP 4x speed. It is generally safe to modify this. If you notice hangs, try reducing the value or removing the line entirely (you can use values 1, 2, 4, 8). If KMS is enabled, this option is not used and it is superseded by {{ic|radeon.agpmode}} kernel option.<br />
<br />
Option "AGPMode" "8"<br />
<br />
'''ColorTiling''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU<br />
<br />
Option "ColorTiling" "on"<br />
<br />
'''Acceleration architecture'''; this will work only on '''newer''' cards. If you enable this and then cannot get back into X, remove it. <br />
<br />
Option "AccelMethod" "EXA"<br />
<br />
'''Page Flip''' is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA.<br />
<br />
Option "EnablePageFlip" "on"<br />
<br />
'''AGPFastWrite''' will enable fast writes for AGP cards. This one can cause instabilities, so be prepared to remove it if you cannot get into X. This option is not used when KMS is on.<br />
<br />
Option "AGPFastWrite" "yes"<br />
<br />
'''EXAVSync ''' option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips.<br />
Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled.<br />
<br />
Option "EXAVSync" "yes"<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "AGPMode" "8" #not used when KMS is on<br />
Option "AGPFastWrite" "off" #could cause instabilities enable it at your own risk<br />
Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default<br />
Option "EnablePageFlip" "on" #supported on all R/RV/RS4xx and older hardware, and set on by default<br />
Option "AccelMethod" "EXA" #valid options are XAA, EXA and Glamor. EXA is the default<br />
Option "RenderAccel" "on" #enabled by default on all radeon hardware<br />
Option "ColorTiling" "on" #enabled by default on RV300 and later radeon cards<br />
Option "EXAVSync" "off" #default is off, otherwise on. Only works '''if EXA activated'''<br />
Option "EXAPixmaps" "on" #when on icreases 2D performance, but may also cause artifacts on some old cards. Only works '''if EXA activated'''<br />
Option "AccelDFS" "on" #default is off, read the radeon manpage for more information<br />
EndSection<br />
}}<br />
<br />
Defining the '''gartsize''', if not autodetected, can be done by adding {{ic|1=radeon.gartsize=32}} into [[kernel parameters]]. Size is in megabytes and 32 is for RV280 cards.<br />
<br />
Alternatively, do it with a modprobe option in {{ic|/etc/modprobe.d/radeon.conf}}:<br />
<br />
options radeon gartsize=32<br />
<br />
'''For further information and other options, read the radeon manpage and the module's info page''': {{ic|man radeon}}, {{ic|modinfo radeon}}.<br />
<br />
A fine tool to try is {{Pkg|driconf}}. It will allow you to modify several settings, like vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).<br />
<br />
=== Deactivating PCI-E 2.0 ===<br />
<br />
As of kernel 3.6, PCI-E v2.0 in '''radeon''' is turned on by default.<br><br />
It can be unstable with some motherboards, so it can be deactivated by adding "radeon.pcie_gen2=0" on the kernel command line.<br />
<br />
More info on [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article]<br />
<br />
=== Glamor ===<br />
<br />
Glamor is a 2D acceleration method implemented through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.<br />
<br />
Since xf86-video-ati driver-1:7.2.0-1, glamor is automaticaly enabled with radeonsi drivers (Southern Island and superior GFX cards); with other graphic cards you can use it by adding the AccelMethod glamor to your xorg.conf config file in the Device section:<br />
<br />
Option "AccelMethod" "glamor"<br />
<br />
However, you need to add the following section before:<br />
{{bc|<br />
Section "Module"<br />
Load "dri2"<br />
Load "glamoregl" <br />
EndSection<br />
}}<br />
<br />
== Hybrid graphics/AMD Dynamic Switchable Graphics ==<br />
<br />
It is the technology used on recent laptops equiped with two GPUs, one power-efficent (generally Intel integrated card) and one more powerful and more power-hungry (generally Radeon or Nvidia). There are three ways to get it work:<br />
<br />
* If you do not need to run any GPU-hungry application, you can plainly disable the discrete card: {{ic|echo OFF > /sys/kernel/debug/vgaswitcheroo/switch}}. You can do more things with vgaswitcheroo (see [https://help.ubuntu.com/community/HybridGraphics#Using_vga_switcheroo Ubuntu wiki] for more information) but ultimately at best one card is bound to one graphic session, you cannot use both on one graphic session.<br />
* You can use [[PRIME]]. It is the proper way to use hybrid graphics on Linux but still requires a bit of manual intervention from the user.<br />
* You can also use [[bumblebee]] with radeon, there is a {{AUR|bumblebee-amd-git}} package on [[AUR]].<br />
<br />
==Powersaving==<br />
<br />
The powersaving part is totally different with and without KMS.<br />
<br />
=== With KMS enabled ===<br />
<br />
{{Note|Power saving through KMS is still a work in progress, some chips may have problems with it.}}<br />
<br />
With the radeon driver, power saving is disabled by default but the kernel provides a method to enable it using sysfs.<br />
<br />
You can choose between two different methods. It's hard to say which is the best, you have to try it yourself.<br />
<br />
==== Dynamic frequency switching ====<br />
<br />
This method dynamically changes the frequency depending on GPU load, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.<br />
<br />
It can be activated by simply running the following command:<br />
<br />
# echo dynpm > /sys/class/drm/card0/device/power_method<br />
<br />
==== Profile-based frequency switching ====<br />
<br />
This method will allow you to select one of the five profiles (described below). Different profiles, for the most part, end up changing the frequency/voltage of the GPU. This method is not as aggressive, but is more stable and flicker free and works with multiple heads active.<br />
<br />
To activate the method, run the following command:<br />
<br />
# echo profile > /sys/class/drm/card0/device/power_method<br />
<br />
Select one of the available profiles:<br />
* {{ic|default}} uses the default clocks and does not change the power state. This is the default behaviour.<br />
* {{ic|auto}} selects between {{ic|mid}} and {{ic|high}} power states based on the whether the system is on battery power or not. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|low}} forces the gpu to be in the {{ic|low}} power state all the time. Note that {{ic|low}} can cause display problems on some laptops, which is why {{ic|auto}} only uses {{ic|low}} when monitors are off.<br />
* {{ic|mid}} forces the gpu to be in the {{ic|mid}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|high}} forces the gpu to be in the {{ic|high}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
<br />
As an example, we will activate the {{ic|low}} profile (replace {{ic|low}} with any of the aforementioned profiles as necessary):<br />
<br />
# echo low > /sys/class/drm/card0/device/power_profile<br />
<br />
==== Persistent configuration ====<br />
<br />
The activation described above is not persistent, it will not last when the computer is rebooted. To make it persistent, you can use [[systemd#Temporary files|systemd-tmpfiles]] (example for [[#Dynamic frequency switching]]):<br />
<br />
{{hc|/etc/tmpfiles.d/radeon-pm.conf|<nowiki><br />
w /sys/class/drm/card0/device/power_method - - - - dynpm<br />
</nowiki>}}<br />
<br />
Alternatively, you may use this [[udev]] rule instead (example for [[#Profile-based frequency switching]]):<br />
<br />
{{hc|/etc/udev/rules.d/30-radeon-pm.rules|<nowiki><br />
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low"<br />
</nowiki>}}<br />
<br />
{{Note|If the above rule is failing, try removing the {{ic|dri/}} prefix.}}<br />
<br />
==== Graphical tools ====<br />
<br />
* {{App|Radeon-tray|A small program to control the power profiles of your Radeon card via systray icon. It is written in PyQt4 and is suitable for non-Gnome users.|https://github.com/StuntsPT/Radeon-tray|}}<br />
* {{App|power-play-switcher|A gui for changing powerplay setting of the open source driver for ati radeon video cards.|https://code.google.com/p/power-play-switcher/|{{AUR|power-play-switcher}}}}<br />
* {{App|Gnome-shell-extension-Radeon-Power-Profile-Manager|A small extension for Gnome-shell that will allow you to change the power profile of your radeon card when using the open source drivers.|https://github.com/StuntsPT/shell-extension-radeon-power-profile-manager|{{AUR|gnome-shell-extension-radeon-ppm}} {{AUR|gnome-shell-extension-radeon-power-profile-manager-git}}}}<br />
<br />
==== Other notes ====<br />
<br />
Power management is supported on all asics (r1xx-evergreen) that include the appropriate power state tables in the vbios; not all boards do (especially older desktop cards).<br />
<br />
To view the speed that the GPU is running at, perform the following command and you will get something like this output:<br />
<br />
{{hc|$ cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki><br />
state: PM_STATE_ENABLED<br />
default engine clock: 300000 kHz<br />
current engine clock: 300720 kHz<br />
default memory clock: 200000 kHz<br />
</nowiki>}}<br />
<br />
If {{ic|/sys/kernel/debug}} is empty, run this command:<br />
<br />
# mount -t debugfs none /sys/kernel/debug<br />
<br />
To permanently mount, add the following line to {{ic|/etc/fstab}}:<br />
<br />
debugfs /sys/kernel/debug debugfs defaults 0 0<br />
<br />
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.<br />
<br />
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via [[lm_sensors]] tools or via sysfs in {{ic|/sys/class/hwmon}}.<br />
<br />
=== Without KMS ===<br />
<br />
In your {{ic|xorg.conf}} file, add 2 lines to "Device" Section:<br />
Option "DynamicPM" "on"<br />
Option "ClockGating" "on"<br />
<br />
If the two options are enabled successfully, you will see following lines in /var/log/Xorg.0.log:<br />
<br />
(**) RADEON(0): Option "ClockGating" "on"<br />
(**) RADEON(0): Option "DynamicPM" "on"<br />
<br />
Static power management enable success<br />
(II) RADEON(0): Dynamic Clock Gating Enabled<br />
(II) RADEON(0): Dynamic Power Management Enabled<br />
<br />
If you desire low power cost, you can add an extra line to "Device" Section of {{ic|xorg.conf}}:<br />
Option "ForceLowPowerMode" "on"<br />
<br />
== TV out ==<br />
<br />
{{out of date}}<br />
Since August 2007, there is TV-out support for all Radeons with integrated TV-out.<br />
<br />
It is somewhat limited for now, it does not always autodetect the output correctly and only NTSC mode works.<br />
<br />
First, check that you have an S-video output: {{ic|xrandr}} should give you something like<br />
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200<br />
...<br />
S-video disconnected (normal left inverted right x axis y axis)<br />
<br />
Setting tv standard to use:<br />
xrandr --output S-video --set "tv standard" ntsc<br />
<br />
Adding a mode for it (currently it supports only 800x600):<br />
xrandr --addmode S-video 800x600<br />
<br />
I will go for a clone mode:<br />
xrandr --output S-video --same-as VGA-0<br />
<br />
So far so good. Now let us try to see what we have:<br />
xrandr --output S-video --mode 800x600<br />
<br />
At this point you should see a 800x600 version of your desktop on your TV.<br />
<br />
To disable the output, do<br />
xrandr --output S-video --off<br />
<br />
Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.<br />
<br />
To send the output to the TV, I do<br />
xvattr -a XV_CRTC -v 1<br />
<br />
{{Note| you need to install {{AUR|xvattr}} to execute this command.}}<br />
<br />
To switch back to my monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.<br />
<br />
Please see [http://www.x.org/wiki/radeonTV Enabling TV-Out Statically] for how to enable TV-out in your xorg configuration file.<br />
<br />
=== Force TV-out in KMS ===<br />
<br />
Kernel can recognize {{ic|1=video=}} parameter in following form (see [[KMS]] for more details):<br />
<br />
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]<br />
<br />
For example:<br />
<br />
video=DVI-I-1:1280x1024-24@60e<br />
<br />
Parameters with whitespaces must be quoted:<br />
<br />
"video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
Current mkinitcpio implementation also requires {{ic|#}} in front. For example:<br />
<br />
root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
* Grub can pass such command line as is.<br />
* Lilo needs backslashes for doublequotes (append {{ic|1=# \"video=9-pin DIN-1:1024x768-24@60e\"}})<br />
* Grub2: TODO<br />
<br />
You can get list of your video outputs with following command:<br />
<br />
{{bc|<nowiki>$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-</nowiki>}}<br />
<br />
== HDMI audio ==<br />
<br />
HDMI audio is supported by the {{Pkg|xf86-video-ati}} video driver. By default, the necessary kernel module is disabled in kernel versions &gt;&#61;3.0. However, if your Radeon card is listed in the [http://www.x.org/wiki/RadeonFeature Radeon Feature Matrix], you can add {{ic|radeon.audio&#61;1}} to your [[Kernel parameters]]. For example:<br />
<br />
{{hc|/boot/syslinux/syslinux.cfg|<br />
LABEL arch<br />
MENU LABEL Arch Linux<br />
LINUX ../vmlinuz-linux<br />
APPEND root&#61;/dev/sda1 ro radeon.audio&#61;1<br />
INITRD ../initramfs-linux.img<br />
}}<br />
<br />
If HDMI audio doesn't simply work after installing the driver, test your setup with the procedure at [[Advanced_Linux_Sound_Architecture#HDMI_Output_Does_Not_Work]].<br />
<br />
{{note|As of this writing (2013-05-20), drivers for the [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names Southern Islands] cards don't support HDMI Audio.}}<br />
<br />
* The {{ic|radeon.audio}} kernel module only works if [[#Kernel_mode-setting_(KMS)]] is enabled. By default, '''xf86-video-ati''' enables KMS.<br />
* If the sound is distorted try [[PulseAudio#Glitches, skips or crackling|setting {{ic|1=tsched=0}}]] and make sure {{ic|rtkit}} daemon is running.<br />
<br />
== Dual Head setup ==<br />
<br />
=== Independent X screens ===<br />
<br />
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "radeon"<br />
Option "ZaphodHeads" "VGA-0"<br />
VendorName "ATI"<br />
BusID "PCI:1:0:0"<br />
Screen 0<br />
EndSection<br />
<br />
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads" "VGA-0"}}.<br />
<br />
Moreover, this option allows you to easily select the screen you want to mark as primary.<br />
<br />
== Enabling video acceleration ==<br />
<br />
Latest {{Pkg|mesa}} package added support for MPEG1/2 decoding to free drivers, exported via {{Pkg|libvdpau}} and are automaticaly detected.<br />
<br />
You can force used driver by assigning environment variable {{Ic|LIBVA_DRIVER_NAME}} to {{Ic|vdpau}} and {{Ic|VDPAU_DRIVER}} to the name of driver core, e.g.:<br />
<br />
{{hc|1=~/.bashrc|2=<br />
export LIBVA_DRIVER_NAME=vdpau<br />
export VDPAU_DRIVER=r600<br />
}}<br />
<br />
for r600-based cards (all available VDPAU drivers are in {{Ic|/usr/lib/vdpau/}}).<br />
<br />
== Turn vsync off ==<br />
<br />
The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create {{ic|~/.drirc}} (or edit it if it already exists) and add the following section:<br />
{{hc|~/.drirc|<nowiki><br />
<driconf><br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0" /><br />
</application><br />
</device><br />
<!-- Other devices ... --><br />
</driconf><br />
</nowiki>}}<br />
It is effectively '''dri2''', not your video card code (like r600).<br />
<br />
== Troubleshooting ==<br />
<br />
=== Artifacts upon logging in ===<br />
<br />
If encountering artifacts, first try starting X without {{ic|/etc/X11/xorg.conf}}. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured {{ic|xorg.conf}} files are known to cause trouble.<br />
<br />
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.<br />
<br />
Artifacts may also be related to [[kernel mode setting]]. Consider [[#Disable KMS|disabling KMS]].<br />
<br />
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EXAPixmaps" "off"<br />
EndSection<br />
<br />
Further tweaking could be done by disabling {{ic|AccelDFS}}:<br />
<br />
Option "AccelDFS" "off"<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
e.g. When EDID fails on a DisplayPort connection. <br />
<br />
This issue is covered on the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].<br />
<br />
=== Slow performance with open-source drivers ===<br />
<br />
{{Note|Make sure you are member of '''video''' group.}}<br />
<br />
Some cards can be installed by default trying to use [[ATI#AMD/Ati cards and kernel mode-setting (KMS)|KMS]]. You can check whether this is your case running:<br />
dmesg | egrep "drm|radeon"<br />
<br />
This command might show something like this, meaning it is trying to default to KMS:<br />
[drm] radeon default to kernel modesetting.<br />
...<br />
[drm:radeon_driver_load_kms] *ERROR* Failed to initialize radeon, disabling IOCTL<br />
<br />
If your card is not supported by KMS (anything older than r100), then you can [[ATI#Disable KMS|disable KMS]]. This should fix the problem.<br />
<br />
=== AGP is disabled (with KMS) ===<br />
<br />
If you experience poor performance and dmesg shows something like this<br />
[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19<br />
then check if the agp driver for your motherboard (e.g., {{ic|via_agp}}, {{ic|intel_agp}} etc.) is loaded before the {{ic|radeon}} module, see [[ATI#Enabling KMS|Enabling KMS]].<br />
<br />
=== TV showing a black border around the screen ===<br />
<br />
When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see [[Wikipedia:Overscan]]) can be turned off using xrandr:<br />
xrandr --output HDMI-0 --set underscan off<br />
<br />
=== Black screen with mouse cursor on resume from suspend in X ===<br />
<br />
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance_tuning|performance tuning]] for more information.<br />
<br />
=== No desktop effects in KDE4 with X1300 and Radeon driver ===<br />
<br />
A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}. <br />
<br />
Add:<br />
DisableChecks=true<br />
<br />
To the [Compositing] section. Ensure that compositing is enabled with:<br />
Enabled=true<br />
<br />
=== Black screen and no console, but X works in KMS ===<br />
<br />
This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:<br />
fbcon=map:1<br />
This will tell the fbcon to map itself to the {{ic|/dev/fb1}} framebuffer dev and not the {{ic|/dev/fb0}}, that in our case exist on the wrong graphics card.<br />
<br />
=== Some 3D applications show textures as all black or crash ===<br />
<br />
You might need texture compression support, which is not included with the open source driver. Install {{Pkg|libtxc_dxtn}} (and {{Pkg|lib32-libtxc_dxtn}} for multilib systems).<br />
<br />
=== 2D performance (e.g. scrolling) is slow ===<br />
<br />
If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.<br />
<br />
Bellow is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "MigrationHeuristic" "greedy"<br />
EndSection<br />
}}<br />
<br />
=== ATI X1600 (RV530 series) 3D application show black windows ===<br />
<br />
There are three possible solutions:<br />
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].<br />
* If this doesn't work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.<br />
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{ic|driconf}} via pacman and set that option in {{ic|~/.drirc}}.<br />
<br />
=== Vertical colored stripes on chipset RS482 (Xpress 200M Series) with/out KMS ===<br />
<br />
The bug :With the graphical chipset Xpress 200M Series (Radeon Xpress 1150), booting with KMS gives you sometimes, as soon as Xorg boots, a screen with many vertical colored stripes. You cannot {{ic|Alt+Sys+K}} or do anything. Take a look {{Bug|21918}} for more information,<br />
How to fixed ? : disable dri (needn't to disable kms)<br />
Side effert: if i disable "dri" and use no kernel options (no "nomodeset") i see the vertical stripes at boot, only for 5 seconds, before having kdm displayed. Then, i have the same results.<br />
If I start for example KDE Desktop Effects, i will see again the vertical stripes for 5 seconds...and return to kdm ! :)</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=ATI&diff=273203ATI2013-08-30T14:39:37Z<p>Lordheavy: /* Activate PCI-E 2.0 */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[cs:ATI]]<br />
[[de:ATI]]<br />
[[es:ATI]]<br />
[[fr:ATI]]<br />
[[it:ATI]]<br />
[[ja:ATI]]<br />
[[pl:ATI]]<br />
[[ru:ATI]]<br />
[[tr:ATI]]<br />
[[zh-CN:ATI]]<br />
{{Article summary start}}<br />
{{Article summary text|An overview of the open source ATI/AMD video card driver.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|AMD Catalyst}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary end}}<br />
<br />
Owners of '''ATI/AMD''' video cards have a choice between AMD's [[AMD Catalyst|proprietary driver]] ({{AUR|catalyst}}) and the open source driver ({{Pkg|xf86-video-ati}}). This article covers the open source driver.<br />
<br />
The open source driver is currently not ''on par'' with the proprietary driver in terms of 3D performance on newer cards or reliable TV-out support. It does, however, offer better dual-head support, excellent 2D acceleration, and provide sufficient 3D acceleration for OpenGL-accelerated [[window manager]]s, such as [[Compiz]] or KWin.<br />
<br />
If unsure, try the open source driver first, it will suit most needs and is generally less problematic (see the [http://www.x.org/wiki/RadeonFeature feature matrix] for details).<br />
<br />
== Naming conventions ==<br />
<br />
ATI's [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).<br />
<br />
For a table of core and product series, see [[Wikipedia:Comparison of AMD graphics processing units]].<br />
<br />
== Overview ==<br />
<br />
The {{ic|xf86-video-ati}} (radeon) driver:<br />
*Works with Radeon chipsets up to HD 6xxx and 7xxxM (latest Northern Islands chipsets).<br />
**Radeons in the HD 77xx (Southern Islands) series are partially supported. Check the [http://www.x.org/wiki/RadeonFeature feature matrix] for unsupported features.<br />
**Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D acceleration are provided.<br />
**Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides.<br />
*Supports DRI1, RandR 1.2/1.3, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2 (with the latest Linux kernel, libdrm and Mesa versions).<br />
<br />
Generally, '''xf86-video-ati''' should be your first choice, no matter which ATI card you own. In case you need to use a driver for newer ATI cards, you should consider the proprietary '''catalyst''' driver.<br />
<br />
{{Note|'''xf86-video-ati''' is specified as '''''radeon''''' for the kernel and in {{ic|xorg.conf}}. }}<br />
<br />
== Installation ==<br />
<br />
If Catalyst/{{ic|fglrx}} has been previously installed, see [[ATI Catalyst#Uninstallation|here]].<br />
<br />
=== Installing xf86-video-ati ===<br />
<br />
[[pacman|Install]] {{Pkg|xf86-video-ati}}, available in the [[official repositories]]. <br />
<br />
The -git version of the driver and other needed packages (linux-git, etc) can be found in the [https://bbs.archlinux.org/viewtopic.php?id=79509&p=1 radeon repository] or the [[AUR]].<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Kernel mode-setting (KMS) ==<br />
<br />
{{Tip|If you have problems with the resolution, check [[Kernel_Mode_Setting#Forcing_modes_and_EDID|this page]].}}<br />
<br />
[[KMS]] enables native resolution in the framebuffer and allows for instant console (tty) switching. KMS also enables newer technologies (such as DRI2) which will help reduce artifacts and increase 3D performance, even kernel space power-saving.<br />
<br />
KMS for ATI video cards requires the [[Xorg]] free video user space driver {{Pkg|xf86-video-ati}} version 6.12.4 or later.<br />
<br />
=== Enabling KMS ===<br />
<br />
{{Note| Since Linux kernel v.2.6.33, KMS is '''enabled''' by default for autodetected ATI/AMD cards. This section remains for configurations outside stock. }}<br />
<br />
==== Early start ====<br />
<br />
''These two methods will start KMS as early as possible in the [[boot process]].''<br />
<br />
1. The earliest point is to append the kernel line in your bootloader with {{ic|1= radeon.modeset=1}}. See your bootloader's page for info on how to do this.<br />
* Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. <br />
* AGP speed can be set with {{ic|<nowiki>radeon.agpmode=x</nowiki>}} kernel option, where x is 1, 2, 4, 8 (AGP speed) or -1 (PCI mode).<br />
<br />
2. Otherwise, when the [[initramfs]] is loaded:<br />
* If you have a special kernel outside of stock {{ic|-ARCH}} (e.g. linux-zen), remember to use a separate ''mkinitcpio'' configuration file (e.g. {{ic|/etc/mkinitcpio-zen.conf}}) and not {{ic|/etc/mkinitcpio.conf}}.<br />
* Remove any framebuffer related modules from your ''mkinitcpio'' file.<br />
* Add {{ic|radeon}} to {{ic|MODULES}} array in your ''mkinitcpio'' file. For AGP support, it is necessary to add {{ic|intel_agp}} (or {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, {{ic|amd64_agp}} etc.) before the {{ic|radeon}} module.<br />
* Re-generate your [[mkinitcpio#Image_creation_and_activation | initramfs]].<br />
<br />
Finally, '''Reboot''' the system.<br />
<br />
==== Late start ====<br />
<br />
''With this choice, KMS will be enabled when modules are loaded during the [[boot process]].''<br />
<br />
If you have a special kernel (e.g. linux-zen), remember to use appropriate mkinitcpio configuration file, e.g. {{ic|/etc/mkinitcpio-zen.conf}}. These instructions are written for the default kernel ({{Pkg|linux}}).<br />
{{Note| For AGP support, it may be necessary to add {{ic|intel_agp}}, {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, or {{ic|amd64_agp}}) to appropriate .conf files in {{ic|/etc/modules-load.d}}.}}<br />
<br />
# Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. Remove any framebuffer related modules from {{ic|/etc/mkinitcpio.conf}}. {{ic|<nowiki>video=</nowiki>}} can now be used in conjunction with KMS.<br />
# Add {{ic|<nowiki>options radeon modeset=1</nowiki>}} to {{ic|/etc/modprobe.d/modprobe.conf}}. <br />
# '''Reboot''' the system.<br />
<br />
=== Troubleshooting KMS ===<br />
<br />
==== Disable KMS ====<br />
<br />
As of Linux 3.9, the {{ic|radeon}} driver '''requires''' kernel mode-setting (the old user mode-setting can still be enabled as a kernel compile option).<br />
<br />
If you have {{ic|<nowiki>radeon.modeset=0</nowiki>}} (or {{ic|nomodeset}}) in the kernel options line in the bootloader, remove it. If you have {{ic|<nowiki>options radeon modeset=0</nowiki>}} anywhere in {{ic|/etc/modprobe.d}}, remove it.<br />
<br />
==== Renaming {{ic|xorg.conf}} ====<br />
<br />
Renaming {{ic|/etc/X11/xorg.conf}}, which may include options that conflict with KMS, will force Xorg to autodetect hardware with sane defaults. After renaming, '''restart''' Xorg.<br />
<br />
== Performance tuning ==<br />
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.<br />
<br />
By design, xf86-video-ati runs at AGP 4x speed. It is generally safe to modify this. If you notice hangs, try reducing the value or removing the line entirely (you can use values 1, 2, 4, 8). If KMS is enabled, this option is not used and it is superseded by {{ic|radeon.agpmode}} kernel option.<br />
<br />
Option "AGPMode" "8"<br />
<br />
'''ColorTiling''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU<br />
<br />
Option "ColorTiling" "on"<br />
<br />
'''Acceleration architecture'''; this will work only on '''newer''' cards. If you enable this and then cannot get back into X, remove it. <br />
<br />
Option "AccelMethod" "EXA"<br />
<br />
'''Page Flip''' is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA.<br />
<br />
Option "EnablePageFlip" "on"<br />
<br />
'''AGPFastWrite''' will enable fast writes for AGP cards. This one can cause instabilities, so be prepared to remove it if you cannot get into X. This option is not used when KMS is on.<br />
<br />
Option "AGPFastWrite" "yes"<br />
<br />
'''EXAVSync ''' option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips.<br />
Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled.<br />
<br />
Option "EXAVSync" "yes"<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "AGPMode" "8" #not used when KMS is on<br />
Option "AGPFastWrite" "off" #could cause instabilities enable it at your own risk<br />
Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default<br />
Option "EnablePageFlip" "on" #supported on all R/RV/RS4xx and older hardware, and set on by default<br />
Option "AccelMethod" "EXA" #valid options are XAA, EXA and Glamor. EXA is the default<br />
Option "RenderAccel" "on" #enabled by default on all radeon hardware<br />
Option "ColorTiling" "on" #enabled by default on RV300 and later radeon cards<br />
Option "EXAVSync" "off" #default is off, otherwise on. Only works '''if EXA activated'''<br />
Option "EXAPixmaps" "on" #when on icreases 2D performance, but may also cause artifacts on some old cards. Only works '''if EXA activated'''<br />
Option "AccelDFS" "on" #default is off, read the radeon manpage for more information<br />
EndSection<br />
}}<br />
<br />
Defining the '''gartsize''', if not autodetected, can be done by adding {{ic|1=radeon.gartsize=32}} into [[kernel parameters]]. Size is in megabytes and 32 is for RV280 cards.<br />
<br />
Alternatively, do it with a modprobe option in {{ic|/etc/modprobe.d/radeon.conf}}:<br />
<br />
options radeon gartsize=32<br />
<br />
'''For further information and other options, read the radeon manpage and the module's info page''': {{ic|man radeon}}, {{ic|modinfo radeon}}.<br />
<br />
A fine tool to try is {{Pkg|driconf}}. It will allow you to modify several settings, like vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).<br />
<br />
=== Deactivating PCI-E 2.0 ===<br />
<br />
As of kernel 3.6, PCI-E v2.0 in '''radeon''' is turned on by default.<br><br />
It can be unstable with some motherboards or not produce any performarce, it can be deactivated by adding "radeon.pcie_gen2=0" on the kernel command line.<br />
<br />
More info on [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article]<br />
<br />
=== Glamor ===<br />
<br />
Glamor is a 2D acceleration method implemented through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.<br />
<br />
Since xf86-video-ati driver-1:7.2.0-1, glamor is automaticaly enabled with radeonsi drivers (Southern Island and superior GFX cards); with other graphic cards you can use it by adding the AccelMethod glamor to your xorg.conf config file in the Device section:<br />
<br />
Option "AccelMethod" "glamor"<br />
<br />
However, you need to add the following section before:<br />
{{bc|<br />
Section "Module"<br />
Load "dri2"<br />
Load "glamoregl" <br />
EndSection<br />
}}<br />
<br />
== Hybrid graphics/AMD Dynamic Switchable Graphics ==<br />
<br />
It is the technology used on recent laptops equiped with two GPUs, one power-efficent (generally Intel integrated card) and one more powerful and more power-hungry (generally Radeon or Nvidia). There are three ways to get it work:<br />
<br />
* If you do not need to run any GPU-hungry application, you can plainly disable the discrete card: {{ic|echo OFF > /sys/kernel/debug/vgaswitcheroo/switch}}. You can do more things with vgaswitcheroo (see [https://help.ubuntu.com/community/HybridGraphics#Using_vga_switcheroo Ubuntu wiki] for more information) but ultimately at best one card is bound to one graphic session, you cannot use both on one graphic session.<br />
* You can use [[PRIME]]. It is the proper way to use hybrid graphics on Linux but still requires a bit of manual intervention from the user.<br />
* You can also use [[bumblebee]] with radeon, there is a {{AUR|bumblebee-amd-git}} package on [[AUR]].<br />
<br />
==Powersaving==<br />
<br />
The powersaving part is totally different with and without KMS.<br />
<br />
=== With KMS enabled ===<br />
<br />
{{Note|Power saving through KMS is still a work in progress, some chips may have problems with it.}}<br />
<br />
With the radeon driver, power saving is disabled by default but the kernel provides a method to enable it using sysfs.<br />
<br />
You can choose between two different methods. It's hard to say which is the best, you have to try it yourself.<br />
<br />
==== Dynamic frequency switching ====<br />
<br />
This method dynamically changes the frequency depending on GPU load, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.<br />
<br />
It can be activated by simply running the following command:<br />
<br />
# echo dynpm > /sys/class/drm/card0/device/power_method<br />
<br />
==== Profile-based frequency switching ====<br />
<br />
This method will allow you to select one of the five profiles (described below). Different profiles, for the most part, end up changing the frequency/voltage of the GPU. This method is not as aggressive, but is more stable and flicker free and works with multiple heads active.<br />
<br />
To activate the method, run the following command:<br />
<br />
# echo profile > /sys/class/drm/card0/device/power_method<br />
<br />
Select one of the available profiles:<br />
* {{ic|default}} uses the default clocks and does not change the power state. This is the default behaviour.<br />
* {{ic|auto}} selects between {{ic|mid}} and {{ic|high}} power states based on the whether the system is on battery power or not. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|low}} forces the gpu to be in the {{ic|low}} power state all the time. Note that {{ic|low}} can cause display problems on some laptops, which is why {{ic|auto}} only uses {{ic|low}} when monitors are off.<br />
* {{ic|mid}} forces the gpu to be in the {{ic|mid}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|high}} forces the gpu to be in the {{ic|high}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
<br />
As an example, we will activate the {{ic|low}} profile (replace {{ic|low}} with any of the aforementioned profiles as necessary):<br />
<br />
# echo low > /sys/class/drm/card0/device/power_profile<br />
<br />
==== Persistent configuration ====<br />
<br />
The activation described above is not persistent, it will not last when the computer is rebooted. To make it persistent, you can use [[systemd#Temporary files|systemd-tmpfiles]] (example for [[#Dynamic frequency switching]]):<br />
<br />
{{hc|/etc/tmpfiles.d/radeon-pm.conf|<nowiki><br />
w /sys/class/drm/card0/device/power_method - - - - dynpm<br />
</nowiki>}}<br />
<br />
Alternatively, you may use this [[udev]] rule instead (example for [[#Profile-based frequency switching]]):<br />
<br />
{{hc|/etc/udev/rules.d/30-radeon-pm.rules|<nowiki><br />
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low"<br />
</nowiki>}}<br />
<br />
{{Note|If the above rule is failing, try removing the {{ic|dri/}} prefix.}}<br />
<br />
==== Graphical tools ====<br />
<br />
* {{App|Radeon-tray|A small program to control the power profiles of your Radeon card via systray icon. It is written in PyQt4 and is suitable for non-Gnome users.|https://github.com/StuntsPT/Radeon-tray|}}<br />
* {{App|power-play-switcher|A gui for changing powerplay setting of the open source driver for ati radeon video cards.|https://code.google.com/p/power-play-switcher/|{{AUR|power-play-switcher}}}}<br />
* {{App|Gnome-shell-extension-Radeon-Power-Profile-Manager|A small extension for Gnome-shell that will allow you to change the power profile of your radeon card when using the open source drivers.|https://github.com/StuntsPT/shell-extension-radeon-power-profile-manager|{{AUR|gnome-shell-extension-radeon-ppm}} {{AUR|gnome-shell-extension-radeon-power-profile-manager-git}}}}<br />
<br />
==== Other notes ====<br />
<br />
Power management is supported on all asics (r1xx-evergreen) that include the appropriate power state tables in the vbios; not all boards do (especially older desktop cards).<br />
<br />
To view the speed that the GPU is running at, perform the following command and you will get something like this output:<br />
<br />
{{hc|$ cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki><br />
state: PM_STATE_ENABLED<br />
default engine clock: 300000 kHz<br />
current engine clock: 300720 kHz<br />
default memory clock: 200000 kHz<br />
</nowiki>}}<br />
<br />
If {{ic|/sys/kernel/debug}} is empty, run this command:<br />
<br />
# mount -t debugfs none /sys/kernel/debug<br />
<br />
To permanently mount, add the following line to {{ic|/etc/fstab}}:<br />
<br />
debugfs /sys/kernel/debug debugfs defaults 0 0<br />
<br />
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.<br />
<br />
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via [[lm_sensors]] tools or via sysfs in {{ic|/sys/class/hwmon}}.<br />
<br />
=== Without KMS ===<br />
<br />
In your {{ic|xorg.conf}} file, add 2 lines to "Device" Section:<br />
Option "DynamicPM" "on"<br />
Option "ClockGating" "on"<br />
<br />
If the two options are enabled successfully, you will see following lines in /var/log/Xorg.0.log:<br />
<br />
(**) RADEON(0): Option "ClockGating" "on"<br />
(**) RADEON(0): Option "DynamicPM" "on"<br />
<br />
Static power management enable success<br />
(II) RADEON(0): Dynamic Clock Gating Enabled<br />
(II) RADEON(0): Dynamic Power Management Enabled<br />
<br />
If you desire low power cost, you can add an extra line to "Device" Section of {{ic|xorg.conf}}:<br />
Option "ForceLowPowerMode" "on"<br />
<br />
== TV out ==<br />
<br />
{{out of date}}<br />
Since August 2007, there is TV-out support for all Radeons with integrated TV-out.<br />
<br />
It is somewhat limited for now, it does not always autodetect the output correctly and only NTSC mode works.<br />
<br />
First, check that you have an S-video output: {{ic|xrandr}} should give you something like<br />
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200<br />
...<br />
S-video disconnected (normal left inverted right x axis y axis)<br />
<br />
Setting tv standard to use:<br />
xrandr --output S-video --set "tv standard" ntsc<br />
<br />
Adding a mode for it (currently it supports only 800x600):<br />
xrandr --addmode S-video 800x600<br />
<br />
I will go for a clone mode:<br />
xrandr --output S-video --same-as VGA-0<br />
<br />
So far so good. Now let us try to see what we have:<br />
xrandr --output S-video --mode 800x600<br />
<br />
At this point you should see a 800x600 version of your desktop on your TV.<br />
<br />
To disable the output, do<br />
xrandr --output S-video --off<br />
<br />
Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.<br />
<br />
To send the output to the TV, I do<br />
xvattr -a XV_CRTC -v 1<br />
<br />
{{Note| you need to install {{AUR|xvattr}} to execute this command.}}<br />
<br />
To switch back to my monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.<br />
<br />
Please see [http://www.x.org/wiki/radeonTV Enabling TV-Out Statically] for how to enable TV-out in your xorg configuration file.<br />
<br />
=== Force TV-out in KMS ===<br />
<br />
Kernel can recognize {{ic|1=video=}} parameter in following form (see [[KMS]] for more details):<br />
<br />
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]<br />
<br />
For example:<br />
<br />
video=DVI-I-1:1280x1024-24@60e<br />
<br />
Parameters with whitespaces must be quoted:<br />
<br />
"video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
Current mkinitcpio implementation also requires {{ic|#}} in front. For example:<br />
<br />
root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
* Grub can pass such command line as is.<br />
* Lilo needs backslashes for doublequotes (append {{ic|1=# \"video=9-pin DIN-1:1024x768-24@60e\"}})<br />
* Grub2: TODO<br />
<br />
You can get list of your video outputs with following command:<br />
<br />
{{bc|<nowiki>$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-</nowiki>}}<br />
<br />
== HDMI audio ==<br />
<br />
HDMI audio is supported by the {{Pkg|xf86-video-ati}} video driver. By default, the necessary kernel module is disabled in kernel versions &gt;&#61;3.0. However, if your Radeon card is listed in the [http://www.x.org/wiki/RadeonFeature Radeon Feature Matrix], you can add {{ic|radeon.audio&#61;1}} to your [[Kernel parameters]]. For example:<br />
<br />
{{hc|/boot/syslinux/syslinux.cfg|<br />
LABEL arch<br />
MENU LABEL Arch Linux<br />
LINUX ../vmlinuz-linux<br />
APPEND root&#61;/dev/sda1 ro radeon.audio&#61;1<br />
INITRD ../initramfs-linux.img<br />
}}<br />
<br />
If HDMI audio doesn't simply work after installing the driver, test your setup with the procedure at [[Advanced_Linux_Sound_Architecture#HDMI_Output_Does_Not_Work]].<br />
<br />
{{note|As of this writing (2013-05-20), drivers for the [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names Southern Islands] cards don't support HDMI Audio.}}<br />
<br />
* The {{ic|radeon.audio}} kernel module only works if [[#Kernel_mode-setting_(KMS)]] is enabled. By default, '''xf86-video-ati''' enables KMS.<br />
* If the sound is distorted try [[PulseAudio#Glitches, skips or crackling|setting {{ic|1=tsched=0}}]] and make sure {{ic|rtkit}} daemon is running.<br />
<br />
== Dual Head setup ==<br />
<br />
=== Independent X screens ===<br />
<br />
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "radeon"<br />
Option "ZaphodHeads" "VGA-0"<br />
VendorName "ATI"<br />
BusID "PCI:1:0:0"<br />
Screen 0<br />
EndSection<br />
<br />
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads" "VGA-0"}}.<br />
<br />
Moreover, this option allows you to easily select the screen you want to mark as primary.<br />
<br />
== Enabling video acceleration ==<br />
<br />
Latest {{Pkg|mesa}} package added support for MPEG1/2 decoding to free drivers, exported via {{Pkg|libvdpau}} and are automaticaly detected.<br />
<br />
You can force used driver by assigning environment variable {{Ic|LIBVA_DRIVER_NAME}} to {{Ic|vdpau}} and {{Ic|VDPAU_DRIVER}} to the name of driver core, e.g.:<br />
<br />
{{hc|1=~/.bashrc|2=<br />
export LIBVA_DRIVER_NAME=vdpau<br />
export VDPAU_DRIVER=r600<br />
}}<br />
<br />
for r600-based cards (all available VDPAU drivers are in {{Ic|/usr/lib/vdpau/}}).<br />
<br />
== Turn vsync off ==<br />
<br />
The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create {{ic|~/.drirc}} (or edit it if it already exists) and add the following section:<br />
{{hc|~/.drirc|<nowiki><br />
<driconf><br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0" /><br />
</application><br />
</device><br />
<!-- Other devices ... --><br />
</driconf><br />
</nowiki>}}<br />
It is effectively '''dri2''', not your video card code (like r600).<br />
<br />
== Troubleshooting ==<br />
<br />
=== Artifacts upon logging in ===<br />
<br />
If encountering artifacts, first try starting X without {{ic|/etc/X11/xorg.conf}}. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured {{ic|xorg.conf}} files are known to cause trouble.<br />
<br />
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.<br />
<br />
Artifacts may also be related to [[kernel mode setting]]. Consider [[#Disable KMS|disabling KMS]].<br />
<br />
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EXAPixmaps" "off"<br />
EndSection<br />
<br />
Further tweaking could be done by disabling {{ic|AccelDFS}}:<br />
<br />
Option "AccelDFS" "off"<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
e.g. When EDID fails on a DisplayPort connection. <br />
<br />
This issue is covered on the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].<br />
<br />
=== Slow performance with open-source drivers ===<br />
<br />
{{Note|Make sure you are member of '''video''' group.}}<br />
<br />
Some cards can be installed by default trying to use [[ATI#AMD/Ati cards and kernel mode-setting (KMS)|KMS]]. You can check whether this is your case running:<br />
dmesg | egrep "drm|radeon"<br />
<br />
This command might show something like this, meaning it is trying to default to KMS:<br />
[drm] radeon default to kernel modesetting.<br />
...<br />
[drm:radeon_driver_load_kms] *ERROR* Failed to initialize radeon, disabling IOCTL<br />
<br />
If your card is not supported by KMS (anything older than r100), then you can [[ATI#Disable KMS|disable KMS]]. This should fix the problem.<br />
<br />
=== AGP is disabled (with KMS) ===<br />
<br />
If you experience poor performance and dmesg shows something like this<br />
[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19<br />
then check if the agp driver for your motherboard (e.g., {{ic|via_agp}}, {{ic|intel_agp}} etc.) is loaded before the {{ic|radeon}} module, see [[ATI#Enabling KMS|Enabling KMS]].<br />
<br />
=== TV showing a black border around the screen ===<br />
<br />
When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see [[Wikipedia:Overscan]]) can be turned off using xrandr:<br />
xrandr --output HDMI-0 --set underscan off<br />
<br />
=== Black screen with mouse cursor on resume from suspend in X ===<br />
<br />
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance_tuning|performance tuning]] for more information.<br />
<br />
=== No desktop effects in KDE4 with X1300 and Radeon driver ===<br />
<br />
A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}. <br />
<br />
Add:<br />
DisableChecks=true<br />
<br />
To the [Compositing] section. Ensure that compositing is enabled with:<br />
Enabled=true<br />
<br />
=== Black screen and no console, but X works in KMS ===<br />
<br />
This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:<br />
fbcon=map:1<br />
This will tell the fbcon to map itself to the {{ic|/dev/fb1}} framebuffer dev and not the {{ic|/dev/fb0}}, that in our case exist on the wrong graphics card.<br />
<br />
=== Some 3D applications show textures as all black or crash ===<br />
<br />
You might need texture compression support, which is not included with the open source driver. Install {{Pkg|libtxc_dxtn}} (and {{Pkg|lib32-libtxc_dxtn}} for multilib systems).<br />
<br />
=== 2D performance (e.g. scrolling) is slow ===<br />
<br />
If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.<br />
<br />
Bellow is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "MigrationHeuristic" "greedy"<br />
EndSection<br />
}}<br />
<br />
=== ATI X1600 (RV530 series) 3D application show black windows ===<br />
<br />
There are three possible solutions:<br />
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].<br />
* If this doesn't work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.<br />
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{ic|driconf}} via pacman and set that option in {{ic|~/.drirc}}.<br />
<br />
=== Vertical colored stripes on chipset RS482 (Xpress 200M Series) with/out KMS ===<br />
<br />
The bug :With the graphical chipset Xpress 200M Series (Radeon Xpress 1150), booting with KMS gives you sometimes, as soon as Xorg boots, a screen with many vertical colored stripes. You cannot {{ic|Alt+Sys+K}} or do anything. Take a look {{Bug|21918}} for more information,<br />
How to fixed ? : disable dri (needn't to disable kms)<br />
Side effert: if i disable "dri" and use no kernel options (no "nomodeset") i see the vertical stripes at boot, only for 5 seconds, before having kdm displayed. Then, i have the same results.<br />
If I start for example KDE Desktop Effects, i will see again the vertical stripes for 5 seconds...and return to kdm ! :)</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=ATI&diff=271610ATI2013-08-18T17:39:05Z<p>Lordheavy: /* Enabling video acceleration */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[cs:ATI]]<br />
[[de:ATI]]<br />
[[es:ATI]]<br />
[[fr:ATI]]<br />
[[it:ATI]]<br />
[[ja:ATI]]<br />
[[pl:ATI]]<br />
[[ru:ATI]]<br />
[[tr:ATI]]<br />
[[zh-CN:ATI]]<br />
{{Article summary start}}<br />
{{Article summary text|An overview of the open source ATI/AMD video card driver.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|AMD Catalyst}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary end}}<br />
<br />
Owners of '''ATI/AMD''' video cards have a choice between AMD's [[AMD Catalyst|proprietary driver]] ({{AUR|catalyst}}) and the open source driver ({{Pkg|xf86-video-ati}}). This article covers the open source driver.<br />
<br />
The open source driver is currently not ''on par'' with the proprietary driver in terms of 3D performance on newer cards or reliable TV-out support. It does, however, offer better dual-head support, excellent 2D acceleration, and provide sufficient 3D acceleration for OpenGL-accelerated [[window manager]]s, such as [[Compiz]] or KWin.<br />
<br />
If unsure, try the open source driver first, it will suit most needs and is generally less problematic (see the [http://www.x.org/wiki/RadeonFeature feature matrix] for details).<br />
<br />
== Naming conventions ==<br />
<br />
ATI's [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).<br />
<br />
For a table of core and product series, see [[Wikipedia:Comparison of AMD graphics processing units]].<br />
<br />
== Overview ==<br />
<br />
The {{ic|xf86-video-ati}} (radeon) driver:<br />
*Works with Radeon chipsets up to HD 6xxx and 7xxxM (latest Northern Islands chipsets).<br />
**Radeons in the HD 77xx (Southern Islands) series are partially supported. Check the [http://www.x.org/wiki/RadeonFeature feature matrix] for unsupported features.<br />
**Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D acceleration are provided.<br />
**Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides.<br />
*Supports DRI1, RandR 1.2/1.3, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2 (with the latest Linux kernel, libdrm and Mesa versions).<br />
<br />
Generally, '''xf86-video-ati''' should be your first choice, no matter which ATI card you own. In case you need to use a driver for newer ATI cards, you should consider the proprietary '''catalyst''' driver.<br />
<br />
{{Note|'''xf86-video-ati''' is specified as '''''radeon''''' for the kernel and in {{ic|xorg.conf}}. }}<br />
<br />
== Installation ==<br />
<br />
If Catalyst/{{ic|fglrx}} has been previously installed, see [[ATI Catalyst#Uninstallation|here]].<br />
<br />
=== Installing xf86-video-ati ===<br />
<br />
[[pacman|Install]] {{Pkg|xf86-video-ati}}, available in the [[official repositories]]. <br />
<br />
The -git version of the driver and other needed packages (linux-git, etc) can be found in the [https://bbs.archlinux.org/viewtopic.php?id=79509&p=1 radeon repository] or the [[AUR]].<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Kernel mode-setting (KMS) ==<br />
<br />
{{Tip|If you have problems with the resolution, check [[Kernel_Mode_Setting#Forcing_modes_and_EDID|this page]].}}<br />
<br />
[[KMS]] enables native resolution in the framebuffer and allows for instant console (tty) switching. KMS also enables newer technologies (such as DRI2) which will help reduce artifacts and increase 3D performance, even kernel space power-saving.<br />
<br />
KMS for ATI video cards requires the [[Xorg]] free video user space driver {{Pkg|xf86-video-ati}} version 6.12.4 or later.<br />
<br />
=== Enabling KMS ===<br />
<br />
{{Note| Since Linux kernel v.2.6.33, KMS is '''enabled''' by default for autodetected ATI/AMD cards. This section remains for configurations outside stock. }}<br />
<br />
==== Early start ====<br />
<br />
''These two methods will start KMS as early as possible in the [[boot process]].''<br />
<br />
1. The earliest point is to append the kernel line in your bootloader with {{ic|1= radeon.modeset=1}}. See your bootloader's page for info on how to do this.<br />
* Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. <br />
* AGP speed can be set with {{ic|<nowiki>radeon.agpmode=x</nowiki>}} kernel option, where x is 1, 2, 4, 8 (AGP speed) or -1 (PCI mode).<br />
<br />
2. Otherwise, when the [[initramfs]] is loaded:<br />
* If you have a special kernel outside of stock {{ic|-ARCH}} (e.g. linux-zen), remember to use a separate ''mkinitcpio'' configuration file (e.g. {{ic|/etc/mkinitcpio-zen.conf}}) and not {{ic|/etc/mkinitcpio.conf}}.<br />
* Remove any framebuffer related modules from your ''mkinitcpio'' file.<br />
* Add {{ic|radeon}} to {{ic|MODULES}} array in your ''mkinitcpio'' file. For AGP support, it is necessary to add {{ic|intel_agp}} (or {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, {{ic|amd64_agp}} etc.) before the {{ic|radeon}} module.<br />
* Re-generate your [[mkinitcpio#Image_creation_and_activation | initramfs]].<br />
<br />
Finally, '''Reboot''' the system.<br />
<br />
==== Late start ====<br />
<br />
''With this choice, KMS will be enabled when modules are loaded during the [[boot process]].''<br />
<br />
If you have a special kernel (e.g. linux-zen), remember to use appropriate mkinitcpio configuration file, e.g. {{ic|/etc/mkinitcpio-zen.conf}}. These instructions are written for the default kernel ({{Pkg|linux}}).<br />
{{Note| For AGP support, it may be necessary to add {{ic|intel_agp}}, {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, or {{ic|amd64_agp}}) to appropriate .conf files in {{ic|/etc/modules-load.d}}.}}<br />
<br />
# Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. Remove any framebuffer related modules from {{ic|/etc/mkinitcpio.conf}}. {{ic|<nowiki>video=</nowiki>}} can now be used in conjunction with KMS.<br />
# Add {{ic|<nowiki>options radeon modeset=1</nowiki>}} to {{ic|/etc/modprobe.d/modprobe.conf}}. <br />
# '''Reboot''' the system.<br />
<br />
=== Troubleshooting KMS ===<br />
<br />
==== Disable KMS ====<br />
<br />
As of Linux 3.9, the {{ic|radeon}} driver '''requires''' kernel mode-setting (the old user mode-setting can still be enabled as a kernel compile option).<br />
<br />
If you have {{ic|<nowiki>radeon.modeset=0</nowiki>}} (or {{ic|nomodeset}}) in the kernel options line in the bootloader, remove it. If you have {{ic|<nowiki>options radeon modeset=0</nowiki>}} anywhere in {{ic|/etc/modprobe.d}}, remove it.<br />
<br />
==== Renaming {{ic|xorg.conf}} ====<br />
<br />
Renaming {{ic|/etc/X11/xorg.conf}}, which may include options that conflict with KMS, will force Xorg to autodetect hardware with sane defaults. After renaming, '''restart''' Xorg.<br />
<br />
== Performance tuning ==<br />
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.<br />
<br />
By design, xf86-video-ati runs at AGP 4x speed. It is generally safe to modify this. If you notice hangs, try reducing the value or removing the line entirely (you can use values 1, 2, 4, 8). If KMS is enabled, this option is not used and it is superseded by {{ic|radeon.agpmode}} kernel option.<br />
<br />
Option "AGPMode" "8"<br />
<br />
'''ColorTiling''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU<br />
<br />
Option "ColorTiling" "on"<br />
<br />
'''Acceleration architecture'''; this will work only on '''newer''' cards. If you enable this and then cannot get back into X, remove it. <br />
<br />
Option "AccelMethod" "EXA"<br />
<br />
'''Page Flip''' is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA.<br />
<br />
Option "EnablePageFlip" "on"<br />
<br />
'''AGPFastWrite''' will enable fast writes for AGP cards. This one can cause instabilities, so be prepared to remove it if you cannot get into X. This option is not used when KMS is on.<br />
<br />
Option "AGPFastWrite" "yes"<br />
<br />
'''EXAVSync ''' option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips.<br />
Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled.<br />
<br />
Option "EXAVSync" "yes"<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "AGPMode" "8" #not used when KMS is on<br />
Option "AGPFastWrite" "off" #could cause instabilities enable it at your own risk<br />
Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default<br />
Option "EnablePageFlip" "on" #supported on all R/RV/RS4xx and older hardware, and set on by default<br />
Option "AccelMethod" "EXA" #valid options are XAA, EXA and Glamor. EXA is the default<br />
Option "RenderAccel" "on" #enabled by default on all radeon hardware<br />
Option "ColorTiling" "on" #enabled by default on RV300 and later radeon cards<br />
Option "EXAVSync" "off" #default is off, otherwise on. Only works '''if EXA activated'''<br />
Option "EXAPixmaps" "on" #when on icreases 2D performance, but may also cause artifacts on some old cards. Only works '''if EXA activated'''<br />
Option "AccelDFS" "on" #default is off, read the radeon manpage for more information<br />
EndSection<br />
}}<br />
<br />
Defining the '''gartsize''', if not autodetected, can be done by adding {{ic|1=radeon.gartsize=32}} into [[kernel parameters]]. Size is in megabytes and 32 is for RV280 cards.<br />
<br />
Alternatively, do it with a modprobe option in {{ic|/etc/modprobe.d/radeon.conf}}:<br />
<br />
options radeon gartsize=32<br />
<br />
'''For further information and other options, read the radeon manpage and the module's info page''': {{ic|man radeon}}, {{ic|modinfo radeon}}.<br />
<br />
A fine tool to try is {{Pkg|driconf}}. It will allow you to modify several settings, like vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).<br />
<br />
=== Activate PCI-E 2.0 ===<br />
<br />
Can be unstable with some motherboards or not produce any performarce, test yourself adding "radeon.pcie_gen2=1" on the kernel command line.<br />
<br />
{{Note|As of kernel 3.6, PCI-E v2.0 in '''radeon''' appears to be turned on by default.}}<br />
<br />
More info on [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article]<br />
<br />
=== Glamor ===<br />
<br />
Glamor is a 2D acceleration method implemented through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.<br />
<br />
Since xf86-video-ati driver-1:7.2.0-1, glamor is automaticaly enabled with radeonsi drivers (Southern Island and superior GFX cards); with other graphic cards you can use it by adding the AccelMethod glamor to your xorg.conf config file in the Device section:<br />
<br />
Option "AccelMethod" "glamor"<br />
<br />
However, you need to add the following section before:<br />
{{bc|<br />
Section "Module"<br />
Load "dri2"<br />
Load "glamoregl" <br />
EndSection<br />
}}<br />
<br />
==Powersaving==<br />
<br />
The powersaving part is totally different with and without KMS.<br />
<br />
=== With KMS enabled ===<br />
<br />
{{Note|Power saving through KMS is still a work in progress, some chips may have problems with it.}}<br />
<br />
With the radeon driver, power saving is disabled by default but the kernel provides a method to enable it using sysfs.<br />
<br />
You can choose between two different methods. It's hard to say which is the best, you have to try it yourself.<br />
<br />
==== Dynamic frequency switching ====<br />
<br />
This method dynamically changes the frequency depending on GPU load, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.<br />
<br />
It can be activated by simply running the following command:<br />
<br />
# echo dynpm > /sys/class/drm/card0/device/power_method<br />
<br />
==== Profile-based frequency switching ====<br />
<br />
This method will allow you to select one of the five profiles (described below). Different profiles, for the most part, end up changing the frequency/voltage of the GPU. This method is not as aggressive, but is more stable and flicker free and works with multiple heads active.<br />
<br />
To activate the method, run the following command:<br />
<br />
# echo profile > /sys/class/drm/card0/device/power_method<br />
<br />
Select one of the available profiles:<br />
* {{ic|default}} uses the default clocks and does not change the power state. This is the default behaviour.<br />
* {{ic|auto}} selects between {{ic|mid}} and {{ic|high}} power states based on the whether the system is on battery power or not. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|low}} forces the gpu to be in the {{ic|low}} power state all the time. Note that {{ic|low}} can cause display problems on some laptops, which is why {{ic|auto}} only uses {{ic|low}} when monitors are off.<br />
* {{ic|mid}} forces the gpu to be in the {{ic|mid}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|high}} forces the gpu to be in the {{ic|high}} power state all the time. The {{ic|low}} power state is selected when the monitors are in the [[DPMS]]-off state.<br />
<br />
As an example, we will activate the {{ic|low}} profile (replace {{ic|low}} with any of the aforementioned profiles as necessary):<br />
<br />
# echo low > /sys/class/drm/card0/device/power_profile<br />
<br />
==== Persistent configuration ====<br />
<br />
The activation described above is not persistent, it will not last when the computer is rebooted. To make it persistent, you can use [[systemd#Temporary files|systemd-tmpfiles]] (example for [[#Dynamic frequency switching]]):<br />
<br />
{{hc|/etc/tmpfiles.d/radeon-pm.conf|<nowiki><br />
w /sys/class/drm/card0/device/power_method - - - - dynpm<br />
</nowiki>}}<br />
<br />
Alternatively, you may use this [[udev]] rule instead (example for [[#Profile-based frequency switching]]):<br />
<br />
{{hc|/etc/udev/rules.d/30-radeon-pm.rules|<nowiki><br />
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low"<br />
</nowiki>}}<br />
<br />
{{Note|If the above rule is failing, try removing the {{ic|dri/}} prefix.}}<br />
<br />
==== Graphical tools ====<br />
<br />
* {{App|Radeon-tray|A small program to control the power profiles of your Radeon card via systray icon. It is written in PyQt4 and is suitable for non-Gnome users.|https://github.com/StuntsPT/Radeon-tray|}}<br />
* {{App|power-play-switcher|A gui for changing powerplay setting of the open source driver for ati radeon video cards.|https://code.google.com/p/power-play-switcher/|{{AUR|power-play-switcher}}}}<br />
* {{App|Gnome-shell-extension-Radeon-Power-Profile-Manager|A small extension for Gnome-shell that will allow you to change the power profile of your radeon card when using the open source drivers.|https://github.com/StuntsPT/shell-extension-radeon-power-profile-manager|{{AUR|gnome-shell-extension-radeon-ppm}} {{AUR|gnome-shell-extension-radeon-power-profile-manager-git}}}}<br />
<br />
==== Other notes ====<br />
<br />
Power management is supported on all asics (r1xx-evergreen) that include the appropriate power state tables in the vbios; not all boards do (especially older desktop cards).<br />
<br />
To view the speed that the GPU is running at, perform the following command and you will get something like this output:<br />
<br />
{{hc|$ cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki><br />
state: PM_STATE_ENABLED<br />
default engine clock: 300000 kHz<br />
current engine clock: 300720 kHz<br />
default memory clock: 200000 kHz<br />
</nowiki>}}<br />
<br />
If {{ic|/sys/kernel/debug}} is empty, run this command:<br />
<br />
# mount -t debugfs none /sys/kernel/debug<br />
<br />
To permanently mount, add the following line to {{ic|/etc/fstab}}:<br />
<br />
debugfs /sys/kernel/debug debugfs defaults 0 0<br />
<br />
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.<br />
<br />
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via [[lm_sensors]] tools or via sysfs in {{ic|/sys/class/hwmon}}.<br />
<br />
=== Without KMS ===<br />
<br />
In your {{ic|xorg.conf}} file, add 2 lines to "Device" Section:<br />
Option "DynamicPM" "on"<br />
Option "ClockGating" "on"<br />
<br />
If the two options are enabled successfully, you will see following lines in /var/log/Xorg.0.log:<br />
<br />
(**) RADEON(0): Option "ClockGating" "on"<br />
(**) RADEON(0): Option "DynamicPM" "on"<br />
<br />
Static power management enable success<br />
(II) RADEON(0): Dynamic Clock Gating Enabled<br />
(II) RADEON(0): Dynamic Power Management Enabled<br />
<br />
If you desire low power cost, you can add an extra line to "Device" Section of {{ic|xorg.conf}}:<br />
Option "ForceLowPowerMode" "on"<br />
<br />
== TV out ==<br />
<br />
{{out of date}}<br />
Since August 2007, there is TV-out support for all Radeons with integrated TV-out.<br />
<br />
It is somewhat limited for now, it does not always autodetect the output correctly and only NTSC mode works.<br />
<br />
First, check that you have an S-video output: {{ic|xrandr}} should give you something like<br />
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200<br />
...<br />
S-video disconnected (normal left inverted right x axis y axis)<br />
<br />
Setting tv standard to use:<br />
xrandr --output S-video --set "tv standard" ntsc<br />
<br />
Adding a mode for it (currently it supports only 800x600):<br />
xrandr --addmode S-video 800x600<br />
<br />
I will go for a clone mode:<br />
xrandr --output S-video --same-as VGA-0<br />
<br />
So far so good. Now let us try to see what we have:<br />
xrandr --output S-video --mode 800x600<br />
<br />
At this point you should see a 800x600 version of your desktop on your TV.<br />
<br />
To disable the output, do<br />
xrandr --output S-video --off<br />
<br />
Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.<br />
<br />
To send the output to the TV, I do<br />
xvattr -a XV_CRTC -v 1<br />
<br />
{{Note| you need to install {{AUR|xvattr}} to execute this command.}}<br />
<br />
To switch back to my monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.<br />
<br />
Please see [http://www.x.org/wiki/radeonTV Enabling TV-Out Statically] for how to enable TV-out in your xorg configuration file.<br />
<br />
=== Force TV-out in KMS ===<br />
<br />
Kernel can recognize {{ic|1=video=}} parameter in following form (see [[KMS]] for more details):<br />
<br />
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]<br />
<br />
For example:<br />
<br />
video=DVI-I-1:1280x1024-24@60e<br />
<br />
Parameters with whitespaces must be quoted:<br />
<br />
"video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
Current mkinitcpio implementation also requires {{ic|#}} in front. For example:<br />
<br />
root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
* Grub can pass such command line as is.<br />
* Lilo needs backslashes for doublequotes (append {{ic|1=# \"video=9-pin DIN-1:1024x768-24@60e\"}})<br />
* Grub2: TODO<br />
<br />
You can get list of your video outputs with following command:<br />
<br />
{{bc|<nowiki>$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-</nowiki>}}<br />
<br />
== HDMI audio ==<br />
<br />
HDMI audio is supported by the {{Pkg|xf86-video-ati}} video driver. By default, the necessary kernel module is disabled in kernel versions &gt;&#61;3.0. However, if your Radeon card is listed in the [http://www.x.org/wiki/RadeonFeature Radeon Feature Matrix], you can add {{ic|radeon.audio&#61;1}} to your [[Kernel parameters]]. For example:<br />
<br />
{{hc|/boot/syslinux/syslinux.cfg|<br />
LABEL arch<br />
MENU LABEL Arch Linux<br />
LINUX ../vmlinuz-linux<br />
APPEND root&#61;/dev/sda1 ro radeon.audio&#61;1<br />
INITRD ../initramfs-linux.img<br />
}}<br />
<br />
If HDMI audio doesn't simply work after installing the driver, test your setup with the procedure at [[Advanced_Linux_Sound_Architecture#HDMI_Output_Does_Not_Work]].<br />
<br />
{{note|As of this writing (2013-05-20), drivers for the [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names Southern Islands] cards don't support HDMI Audio.}}<br />
<br />
* The {{ic|radeon.audio}} kernel module only works if [[#Kernel_mode-setting_(KMS)]] is enabled. By default, '''xf86-video-ati''' enables KMS.<br />
* If the sound is distorted try [[PulseAudio#Glitches, skips or crackling|setting {{ic|1=tsched=0}}]] and make sure {{ic|rtkit}} daemon is running.<br />
<br />
== Dual Head setup ==<br />
<br />
=== Independent X screens ===<br />
<br />
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "radeon"<br />
Option "ZaphodHeads" "VGA-0"<br />
VendorName "ATI"<br />
BusID "PCI:1:0:0"<br />
Screen 0<br />
EndSection<br />
<br />
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads" "VGA-0"}}.<br />
<br />
Moreover, this option allows you to easily select the screen you want to mark as primary.<br />
<br />
== Enabling video acceleration ==<br />
<br />
Latest {{Pkg|mesa}} package added support for MPEG1/2 decoding to free drivers, exported via {{Pkg|libvdpau}} and are automaticaly detected.<br />
<br />
You can force used driver by assigning environment variable {{Ic|LIBVA_DRIVER_NAME}} to {{Ic|vdpau}} and {{Ic|VDPAU_DRIVER}} to the name of driver core, e.g.:<br />
<br />
{{hc|1=~/.bashrc|2=<br />
export LIBVA_DRIVER_NAME=vdpau<br />
export VDPAU_DRIVER=r600<br />
}}<br />
<br />
for r600-based cards (all available VDPAU drivers are in {{Ic|/usr/lib/vdpau/}}).<br />
<br />
== Turn vsync off ==<br />
<br />
The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create {{ic|~/.drirc}} (or edit it if it already exists) and add the following section:<br />
{{hc|~/.drirc|<nowiki><br />
<driconf><br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0" /><br />
</application><br />
</device><br />
<!-- Other devices ... --><br />
</driconf><br />
</nowiki>}}<br />
It is effectively '''dri2''', not your video card code (like r600).<br />
<br />
== Troubleshooting ==<br />
<br />
=== Artifacts upon logging in ===<br />
<br />
If encountering artifacts, first try starting X without {{ic|/etc/X11/xorg.conf}}. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured {{ic|xorg.conf}} files are known to cause trouble.<br />
<br />
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.<br />
<br />
Artifacts may also be related to [[kernel mode setting]]. Consider [[#Disable KMS|disabling KMS]].<br />
<br />
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EXAPixmaps" "off"<br />
EndSection<br />
<br />
Further tweaking could be done by disabling {{ic|AccelDFS}}:<br />
<br />
Option "AccelDFS" "off"<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
e.g. When EDID fails on a DisplayPort connection. <br />
<br />
This issue is covered on the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].<br />
<br />
=== Slow performance with open-source drivers ===<br />
<br />
{{Note|Make sure you are member of '''video''' group.}}<br />
<br />
Some cards can be installed by default trying to use [[ATI#AMD/Ati cards and kernel mode-setting (KMS)|KMS]]. You can check whether this is your case running:<br />
dmesg | egrep "drm|radeon"<br />
<br />
This command might show something like this, meaning it is trying to default to KMS:<br />
[drm] radeon default to kernel modesetting.<br />
...<br />
[drm:radeon_driver_load_kms] *ERROR* Failed to initialize radeon, disabling IOCTL<br />
<br />
If your card is not supported by KMS (anything older than r100), then you can [[ATI#Disable KMS|disable KMS]]. This should fix the problem.<br />
<br />
=== AGP is disabled (with KMS) ===<br />
<br />
If you experience poor performance and dmesg shows something like this<br />
[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19<br />
then check if the agp driver for your motherboard (e.g., {{ic|via_agp}}, {{ic|intel_agp}} etc.) is loaded before the {{ic|radeon}} module, see [[ATI#Enabling KMS|Enabling KMS]].<br />
<br />
=== TV showing a black border around the screen ===<br />
<br />
When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see [[Wikipedia:Overscan]]) can be turned off using xrandr:<br />
xrandr --output HDMI-0 --set underscan off<br />
<br />
=== Black screen with mouse cursor on resume from suspend in X ===<br />
<br />
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance_tuning|performance tuning]] for more information.<br />
<br />
=== No desktop effects in KDE4 with X1300 and Radeon driver ===<br />
<br />
A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}. <br />
<br />
Add:<br />
DisableChecks=true<br />
<br />
To the [Compositing] section. Ensure that compositing is enabled with:<br />
Enabled=true<br />
<br />
=== Black screen and no console, but X works in KMS ===<br />
<br />
This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:<br />
fbcon=map:1<br />
This will tell the fbcon to map itself to the {{ic|/dev/fb1}} framebuffer dev and not the {{ic|/dev/fb0}}, that in our case exist on the wrong graphics card.<br />
<br />
=== Some 3D applications show textures as all black or crash ===<br />
<br />
You might need texture compression support, which is not included with the open source driver. Install {{Pkg|libtxc_dxtn}} (and {{Pkg|lib32-libtxc_dxtn}} for multilib systems).<br />
<br />
=== 2D performance (e.g. scrolling) is slow ===<br />
<br />
If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.<br />
<br />
Bellow is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "MigrationHeuristic" "greedy"<br />
EndSection<br />
}}<br />
<br />
=== ATI X1600 (RV530 series) 3D application show black windows ===<br />
<br />
There are three possible solutions:<br />
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].<br />
* If this doesn't work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.<br />
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{ic|driconf}} via pacman and set that option in {{ic|~/.drirc}}.<br />
<br />
=== Vertical colored stripes on chipset RS482 (Xpress 200M Series) with/out KMS ===<br />
<br />
The bug :With the graphical chipset Xpress 200M Series (Radeon Xpress 1150), booting with KMS gives you sometimes, as soon as Xorg boots, a screen with many vertical colored stripes. You cannot {{ic|Alt+Sys+K}} or do anything. Take a look {{Bug|21918}} for more information,<br />
How to fixed ? : disable dri (needn't to disable kms)<br />
Side effert: if i disable "dri" and use no kernel options (no "nomodeset") i see the vertical stripes at boot, only for 5 seconds, before having kdm displayed. Then, i have the same results.<br />
If I start for example KDE Desktop Effects, i will see again the vertical stripes for 5 seconds...and return to kdm ! :)</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=ATI&diff=270645ATI2013-08-10T21:58:48Z<p>Lordheavy: /* Glamor */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[cs:ATI]]<br />
[[de:ATI]]<br />
[[es:ATI]]<br />
[[fr:ATI]]<br />
[[it:ATI]]<br />
[[ja:ATI]]<br />
[[pl:ATI]]<br />
[[ru:ATI]]<br />
[[tr:ATI]]<br />
[[zh-CN:ATI]]<br />
{{Article summary start}}<br />
{{Article summary text|An overview of the open source ATI/AMD video card driver.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|AMD Catalyst}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary end}}<br />
<br />
Owners of '''ATI/AMD''' video cards have a choice between AMD's [[AMD Catalyst|proprietary driver]] ({{AUR|catalyst}}) and the open source driver ({{Pkg|xf86-video-ati}}). This article covers the open source driver.<br />
<br />
The open source driver is currently not ''on par'' with the proprietary driver in terms of 3D performance on newer cards or reliable TV-out support. It does, however, offer better dual-head support, excellent 2D acceleration, and provide sufficient 3D acceleration for OpenGL-accelerated [[window manager]]s, such as [[Compiz]] or KWin.<br />
<br />
If unsure, try the open source driver first, it will suit most needs and is generally less problematic (see the [http://www.x.org/wiki/RadeonFeature feature matrix] for details).<br />
<br />
== Naming conventions ==<br />
<br />
ATI's [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).<br />
<br />
For a table of core and product series, see [[Wikipedia:Comparison of AMD graphics processing units]].<br />
<br />
== Overview ==<br />
<br />
The {{ic|xf86-video-ati}} (radeon) driver:<br />
*Works with Radeon chipsets up to HD 6xxx and 7xxxM (latest Northern Islands chipsets).<br />
**Radeons in the HD 77xx (Southern Islands) series are partially supported. Check the [http://www.x.org/wiki/RadeonFeature feature matrix] for unsupported features.<br />
**Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D acceleration are provided.<br />
**Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides.<br />
*Supports DRI1, RandR 1.2/1.3, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2 (with the latest Linux kernel, libdrm and Mesa versions).<br />
<br />
Generally, '''xf86-video-ati''' should be your first choice, no matter which ATI card you own. In case you need to use a driver for newer ATI cards, you should consider the proprietary '''catalyst''' driver.<br />
<br />
{{Note|'''xf86-video-ati''' is specified as '''''radeon''''' for the kernel and in {{ic|xorg.conf}}. }}<br />
<br />
== Installation ==<br />
<br />
If Catalyst/{{ic|fglrx}} has been previously installed, see [[ATI Catalyst#Uninstallation|here]].<br />
<br />
=== Installing xf86-video-ati ===<br />
<br />
[[pacman|Install]] {{Pkg|xf86-video-ati}}, available in the [[official repositories]]. <br />
<br />
The -git version of the driver and other needed packages (linux-git, etc) can be found in the [https://bbs.archlinux.org/viewtopic.php?id=79509&p=1 radeon repository] or the [[AUR]].<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Kernel mode-setting (KMS) ==<br />
<br />
{{Tip|If you have problems with the resolution, check [[Kernel_Mode_Setting#Forcing_modes_and_EDID|this page]].}}<br />
<br />
[[KMS]] enables native resolution in the framebuffer and allows for instant console (tty) switching. KMS also enables newer technologies (such as DRI2) which will help reduce artifacts and increase 3D performance, even kernel space power-saving.<br />
<br />
KMS for ATI video cards requires the [[Xorg]] free video user space driver {{Pkg|xf86-video-ati}} version 6.12.4 or later.<br />
<br />
=== Enabling KMS ===<br />
<br />
{{Note| Since Linux kernel v.2.6.33, KMS is '''enabled''' by default for autodetected ATI/AMD cards. This section remains for configurations outside stock. }}<br />
<br />
==== Early KMS start ====<br />
<br />
''These two methods will start KMS as early as possible in the [[boot process]].''<br />
<br />
1. The earliest point is to append the kernel line in your bootloader with {{ic|1= radeon.modeset=1}}. See your bootloader's page for info on how to do this.<br />
* Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. <br />
* AGP speed can be set with {{ic|<nowiki>radeon.agpmode=x</nowiki>}} kernel option, where x is 1, 2, 4, 8 (AGP speed) or -1 (PCI mode).<br />
<br />
2. Otherwise, when the [[initramfs]] is loaded:<br />
* If you have a special kernel outside of stock {{ic|-ARCH}} (e.g. linux-zen), remember to use a separate ''mkinitcpio'' configuration file (e.g. {{ic|/etc/mkinitcpio-zen.conf}}) and not {{ic|/etc/mkinitcpio.conf}}.<br />
* Remove any framebuffer related modules from your ''mkinitcpio'' file.<br />
* Add {{ic|radeon}} to {{ic|MODULES}} array in your ''mkinitcpio'' file. For AGP support, it is necessary to add {{ic|intel_agp}} (or {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, {{ic|amd64_agp}} etc.) before the {{ic|radeon}} module.<br />
* Re-generate your [[mkinitcpio#Image_creation_and_activation | initramfs]].<br />
<br />
Finally, '''Reboot''' the system.<br />
<br />
==== Late start ====<br />
<br />
''With this choice, KMS will be enabled when modules are loaded during the [[boot process]].''<br />
<br />
If you have a special kernel (e.g. linux-zen), remember to use appropriate mkinitcpio configuration file, e.g. {{ic|/etc/mkinitcpio-zen.conf}}. These instructions are written for the default kernel ({{Pkg|linux}}).<br />
{{Note| For AGP support, it may be necessary to add {{ic|intel_agp}}, {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, or {{ic|amd64_agp}}) to appropriate .conf files in {{ic|/etc/modules-load.d}}.}}<br />
<br />
# Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. Remove any framebuffer related modules from {{ic|/etc/mkinitcpio.conf}}. {{ic|<nowiki>video=</nowiki>}} can now be used in conjunction with KMS.<br />
# Add {{ic|<nowiki>options radeon modeset=1</nowiki>}} to {{ic|/etc/modprobe.d/modprobe.conf}}. <br />
# '''Reboot''' the system.<br />
<br />
=== Troubleshooting KMS ===<br />
<br />
==== Disable KMS ====<br />
<br />
As of Linux 3.9, the {{ic|radeon}} driver '''requires''' kernel mode-setting (the old user mode-setting can still be enabled as a kernel compile option).<br />
<br />
If you have {{ic|<nowiki>radeon.modeset=0</nowiki>}} (or {{ic|nomodeset}}) in the kernel options line in the bootloader, remove it. If you have {{ic|<nowiki>options radeon modeset=0</nowiki>}} anywhere in {{ic|/etc/modprobe.d}}, remove it.<br />
<br />
==== Renaming {{ic|xorg.conf}} ====<br />
<br />
Renaming {{ic|/etc/X11/xorg.conf}}, which may include options that conflict with KMS, will force Xorg to autodetect hardware with sane defaults. After renaming, '''restart''' Xorg.<br />
<br />
== Performance tuning ==<br />
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.<br />
<br />
By design, xf86-video-ati runs at AGP 4x speed. It is generally safe to modify this. If you notice hangs, try reducing the value or removing the line entirely (you can use values 1, 2, 4, 8). If KMS is enabled, this option is not used and it is superseded by {{ic|radeon.agpmode}} kernel option.<br />
<br />
Option "AGPMode" "8"<br />
<br />
'''ColorTiling''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU<br />
<br />
Option "ColorTiling" "on"<br />
<br />
'''Acceleration architecture'''; this will work only on '''newer''' cards. If you enable this and then cannot get back into X, remove it. <br />
<br />
Option "AccelMethod" "EXA"<br />
<br />
'''Page Flip''' is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA.<br />
<br />
Option "EnablePageFlip" "on"<br />
<br />
'''AGPFastWrite''' will enable fast writes for AGP cards. This one can cause instabilities, so be prepared to remove it if you cannot get into X. This option is not used when KMS is on.<br />
<br />
Option "AGPFastWrite" "yes"<br />
<br />
'''EXAVSync ''' option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips.<br />
Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled.<br />
<br />
Option "EXAVSync" "yes"<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "AGPMode" "8" #not used when KMS is on<br />
Option "AGPFastWrite" "off" #could cause instabilities enable it at your own risk<br />
Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default<br />
Option "EnablePageFlip" "on" #supported on all R/RV/RS4xx and older hardware, and set on by default<br />
Option "AccelMethod" "EXA" #valid options are XAA, EXA and Glamor. EXA is the default<br />
Option "RenderAccel" "on" #enabled by default on all radeon hardware<br />
Option "ColorTiling" "on" #enabled by default on RV300 and later radeon cards<br />
Option "EXAVSync" "off" #default is off, otherwise on. Only works '''if EXA activated'''<br />
Option "EXAPixmaps" "on" #when on icreases 2D performance, but may also cause artifacts on some old cards. Only works '''if EXA activated'''<br />
Option "AccelDFS" "on" #default is off, read the radeon manpage for more information<br />
EndSection<br />
}}<br />
<br />
Defining the '''gartsize''', if not autodetected, can be done by adding {{ic|1=radeon.gartsize=32}} into [[kernel parameters]]. Size is in megabytes and 32 is for RV280 cards.<br />
<br />
Alternatively, do it with a modprobe option in {{ic|/etc/modprobe.d/radeon.conf}}:<br />
<br />
options radeon gartsize=32<br />
<br />
'''For further information and other options, read the radeon manpage and the module's info page''':<br />
man radeon<br />
<br />
modinfo radeon<br />
<br />
A fine tool to try is [https://www.archlinux.org/packages/community/any/driconf/ driconf]. It will allow you to modify several settings, like vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).<br />
<br />
=== Activate PCI-E 2.0 ===<br />
<br />
Can be unstable with some motherboards or not produce any performarce, test yourself adding "radeon.pcie_gen2=1" on the kernel command line.<br />
<br />
{{Note|As of kernel 3.6, PCI-E v2.0 in '''radeon''' appears to be turned on by default.}}<br />
<br />
More info on [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article]<br />
<br />
=== Glamor ===<br />
<br />
Glamor is a 2D acceleration method implemented through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.<br />
<br />
Since xf86-video-ati driver-1:7.2.0-1, glamor is automaticaly enabled with radeonsi drivers (Southern Island and superior GFX cards); with other graphic cards you can use it by adding the AccelMethod glamor to your xorg.conf config file in the Device section:<br />
<br />
Option "AccelMethod" "glamor"<br />
<br />
However, you need to add the following section before:<br />
{{bc|<br />
Section "Module"<br />
Load "dri2"<br />
Load "glamoregl" <br />
EndSection<br />
}}<br />
<br />
==Powersaving==<br />
<br />
The powersaving part is totally different with and without KMS.<br />
<br />
===With KMS enabled===<br />
<br />
With the radeon driver, power saving is disabled by default but the stock kernel provides a "sysfs" utility to enable it.<br />
<br />
Power saving through KMS is still a work in progress for the most part. It should work, but some chips do have problems with it. A common issue for all is screen blinking when the kernel switches between power states, and in some configurations it even causes system freezes. But KMS is awesome, so it is your choice. The UMS method is generally more stable, however its power savings might not be as good as those provided by KMS options.<br />
<br />
Use the (unsupported) [radeon] repo to enable power management. This repository will grant you up-to-date packages of the radeon driver and its dependencies, from (mostly) git snapshots.<br />
<br />
{{bc|1=<br />
[mesa-git]<br />
Server = <nowiki>http://pkgbuild.com/~lcarlier/$repo/$arch/</nowiki><br />
}}<br />
<br />
You can select the methods via sysfs.<br />
<br />
With root access, you have two choices:<br />
<br />
1. '''Dynamic frequency switching (depending on GPU load)'''<br />
<br />
{{bc|# echo dynpm > /sys/class/drm/card0/device/power_method}}<br />
<br />
The "dynpm" method dynamically changes the clocks based on the number of pending fences, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.<br />
<br />
{{Note|The "profile" method mentioned below is not as aggressive as "dynpm," but is currently much more stable and flicker free and works with multiple heads active.}}<br />
<br />
2. '''Profile-based frequency switching'''<br />
<br />
# echo profile > /sys/class/drm/card0/device/power_method<br />
<br />
The "profile" mode will allow you to select one of the five profiles below.<br />
Different profiles, for the most part, end up changing the frequency/voltage of the card.<br />
<br />
* "default" uses the default clocks and does not change the power state. This is the default behavior.<br />
* "auto" selects between "mid" and "high" power states based on the whether the system is on battery power or not. The "low" power state are selected when the monitors are in the dpms off state.<br />
* "low" forces the gpu to be in the low power state all the time. Note that "low" can cause display problems on some laptops; this is why auto only uses "low" when displays are off.<br />
* "mid" forces the gpu to be in the "mid" power state all the time. The "low" power state is selected when the monitors are in the dpms off state.<br />
* "high" forces the gpu to be in the "high" power state all the time. The "low" power state is selected when the monitors are in the dpms off state.<br />
<br />
So lets say we want the "low" option...for this, run the following command:<br />
<br />
# echo low > /sys/class/drm/card0/device/power_profile<br />
<br />
Replace "low" with any of the aforementioned profiles as necessary.<br />
<br />
{{Tip|Echoing a profile value to this file is not permanent. To do so use a systemd [[Systemd#Temporary files|tmpfiles.d]] file or [[udev]] rule:}}<br />
<br />
{{hc|/etc/tmpfiles.d/radeon-pm.conf|<nowiki><br />
w /sys/class/drm/card0/device/power_method - - - - dynpm</nowiki>}}<br />
<br />
{{hc|/etc/udev/rules.d/30-local.rules|<nowiki><br />
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="auto"</nowiki>}}<br />
<br />
{{Note|<br />
* If the above rules are failing, try removing 'dri/' from them<br />
* Another option from the same author for non Gnome-shell users (with a few more features) written in PyQt4 is Radeon-tray [https://github.com/StuntsPT/Radeon-tray].<br />
}}<br />
<br />
Power management is supported on all asics (r1xx-evergreen) that include the appropriate power state tables in the vbios; not all boards do (especially older desktop cards).<br />
<br />
To view the speed that the GPU is running at, perform the following command and you will get something like this output:<br />
<br />
{{hc|$ cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki> state: PM_STATE_ENABLED<br />
default engine clock: 300000 kHz<br />
current engine clock: 300720 kHz<br />
default memory clock: 200000 kHz</nowiki>}}<br />
<br />
If {{ic|/sys/kernel/debug}} is empty, run this command:<br />
<br />
# mount -t debugfs none /sys/kernel/debug<br />
<br />
To permanently mount, add the following line to {{ic|/etc/fstab}}:<br />
<br />
debugfs /sys/kernel/debug debugfs defaults 0 0<br />
<br />
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.<br />
<br />
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via lm_sensors tools or via sysfs in /sys/class/hwmon .<br />
<br />
There is a GUI for switching profiles: {{AUR|power-play-switcher}}.<br />
<br />
=== Without KMS ===<br />
<br />
In your {{ic|xorg.conf}} file, add 2 lines to "Device" Section:<br />
Option "DynamicPM" "on"<br />
Option "ClockGating" "on"<br />
<br />
If the two options are enabled successfully, you will see following lines in /var/log/Xorg.0.log:<br />
<br />
(**) RADEON(0): Option "ClockGating" "on"<br />
(**) RADEON(0): Option "DynamicPM" "on"<br />
<br />
Static power management enable success<br />
(II) RADEON(0): Dynamic Clock Gating Enabled<br />
(II) RADEON(0): Dynamic Power Management Enabled<br />
<br />
If you desire low power cost, you can add an extra line to "Device" Section of {{ic|xorg.conf}}:<br />
Option "ForceLowPowerMode" "on"<br />
<br />
== TV out ==<br />
<br />
{{out of date}}<br />
Since August 2007, there is TV-out support for all Radeons with integrated TV-out.<br />
<br />
It is somewhat limited for now, it does not always autodetect the output correctly and only NTSC mode works.<br />
<br />
First, check that you have an S-video output: {{ic|xrandr}} should give you something like<br />
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200<br />
...<br />
S-video disconnected (normal left inverted right x axis y axis)<br />
<br />
Setting tv standard to use:<br />
xrandr --output S-video --set "tv standard" ntsc<br />
<br />
Adding a mode for it (currently it supports only 800x600):<br />
xrandr --addmode S-video 800x600<br />
<br />
I will go for a clone mode:<br />
xrandr --output S-video --same-as VGA-0<br />
<br />
So far so good. Now let us try to see what we have:<br />
xrandr --output S-video --mode 800x600<br />
<br />
At this point you should see a 800x600 version of your desktop on your TV.<br />
<br />
To disable the output, do<br />
xrandr --output S-video --off<br />
<br />
Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.<br />
<br />
To send the output to the TV, I do<br />
xvattr -a XV_CRTC -v 1<br />
<br />
{{Note| you need to install {{AUR|xvattr}} to execute this command.}}<br />
<br />
To switch back to my monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.<br />
<br />
Please see [http://www.x.org/wiki/radeonTV Enabling TV-Out Statically] for how to enable TV-out in your xorg configuration file.<br />
<br />
=== Force TV-out in KMS ===<br />
<br />
Kernel can recognize {{ic|1=video=}} parameter in following form (see [[KMS]] for more details):<br />
<br />
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]<br />
<br />
For example:<br />
<br />
video=DVI-I-1:1280x1024-24@60e<br />
<br />
Parameters with whitespaces must be quoted:<br />
<br />
"video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
Current mkinitcpio implementation also requires {{ic|#}} in front. For example:<br />
<br />
root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
* Grub can pass such command line as is.<br />
* Lilo needs backslashes for doublequotes (append {{ic|1=# \"video=9-pin DIN-1:1024x768-24@60e\"}})<br />
* Grub2: TODO<br />
<br />
You can get list of your video outputs with following command:<br />
<br />
{{bc|<nowiki>$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-</nowiki>}}<br />
<br />
== HDMI audio ==<br />
<br />
HDMI audio is supported by the {{Pkg|xf86-video-ati}} video driver. By default, the necessary kernel module is disabled in kernel versions &gt;&#61;3.0. However, if your Radeon card is listed in the [http://www.x.org/wiki/RadeonFeature Radeon Feature Matrix], you can add {{ic|radeon.audio&#61;1}} to your [[Kernel parameters]]. For example:<br />
<br />
{{hc|/boot/syslinux/syslinux.cfg|<br />
LABEL arch<br />
MENU LABEL Arch Linux<br />
LINUX ../vmlinuz-linux<br />
APPEND root&#61;/dev/sda1 ro radeon.audio&#61;1<br />
INITRD ../initramfs-linux.img<br />
}}<br />
<br />
If HDMI audio doesn't simply work after installing the driver, test your setup with the procedure at [[Advanced_Linux_Sound_Architecture#HDMI_Output_Does_Not_Work]].<br />
<br />
{{note|As of this writing (2013-05-20), drivers for the [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names Southern Islands] cards don't support HDMI Audio.}}<br />
<br />
* The {{ic|radeon.audio}} kernel module only works if [[#Kernel_mode-setting_(KMS)]] is enabled. By default, '''xf86-video-ati''' enables KMS.<br />
* If the sound is distorted try [[PulseAudio#Glitches, skips or crackling|setting {{ic|1=tsched=0}}]] and make sure {{ic|rtkit}} daemon is running.<br />
<br />
== Dual Head setup ==<br />
<br />
=== Independent X screens ===<br />
<br />
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "radeon"<br />
Option "ZaphodHeads" "VGA-0"<br />
VendorName "ATI"<br />
BusID "PCI:1:0:0"<br />
Screen 0<br />
EndSection<br />
<br />
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads" "VGA-0"}}.<br />
<br />
Moreover, this option allows you to easily select the screen you want to mark as primary.<br />
<br />
== Enabling video acceleration ==<br />
<br />
Latest {{Pkg|mesa}} package added support for MPEG1/2 decoding to free drivers, exported via {{Pkg|libvdpau}} and are automaticaly detected. You can force used driver by assigning environment variable {{Ic|LIBVA_DRIVER_NAME}} to {{Ic|vdpau}} and {{Ic|VDPAU_DRIVER}} to the name of driver core, e.g.:<br />
<br />
{{hc|1=~/.bashrc|2=<br />
export LIBVA_DRIVER_NAME=vdpau<br />
export VDPAU_DRIVER=r600<br />
}}<br />
<br />
for r600-based cards (all available VDPAU drivers are in {{Ic|/usr/lib/vdpau/}}).<br />
<br />
== Turn vsync off ==<br />
<br />
The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create {{ic|~/.drirc}} (or edit it if it already exists) and add the following section:<br />
{{hc|~/.drirc|<nowiki><br />
<driconf><br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0" /><br />
</application><br />
</device><br />
<!-- Other devices ... --><br />
</driconf><br />
</nowiki>}}<br />
It is effectively '''dri2''', not your video card code (like r600).<br />
<br />
== Troubleshooting ==<br />
<br />
=== Artifacts upon logging in ===<br />
<br />
If encountering artifacts, first try starting X without {{ic|/etc/X11/xorg.conf}}. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured {{ic|xorg.conf}} files are known to cause trouble.<br />
<br />
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.<br />
<br />
Artifacts may also be related to [[kernel mode setting]]. Consider [[#Disable KMS|disabling KMS]].<br />
<br />
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EXAPixmaps" "off"<br />
EndSection<br />
<br />
Further tweaking could be done by disabling {{ic|AccelDFS}}:<br />
<br />
Option "AccelDFS" "off"<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
e.g. When EDID fails on a DisplayPort connection. <br />
<br />
This issue is covered on the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].<br />
<br />
=== Slow performance with open-source drivers ===<br />
<br />
{{Note|Make sure you are member of '''video''' group.}}<br />
<br />
Some cards can be installed by default trying to use [[ATI#AMD/Ati cards and kernel mode-setting (KMS)|KMS]]. You can check whether this is your case running:<br />
dmesg | egrep "drm|radeon"<br />
<br />
This command might show something like this, meaning it is trying to default to KMS:<br />
[drm] radeon default to kernel modesetting.<br />
...<br />
[drm:radeon_driver_load_kms] *ERROR* Failed to initialize radeon, disabling IOCTL<br />
<br />
If your card is not supported by KMS (anything older than r100), then you can [[ATI#Disable KMS|disable KMS]]. This should fix the problem.<br />
<br />
=== AGP is disabled (with KMS) ===<br />
<br />
If you experience poor performance and dmesg shows something like this<br />
[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19<br />
then check if the agp driver for your motherboard (e.g., {{ic|via_agp}}, {{ic|intel_agp}} etc.) is loaded before the {{ic|radeon}} module, see [[ATI#Enabling KMS|Enabling KMS]].<br />
<br />
=== TV showing a black border around the screen ===<br />
<br />
When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see [[Wikipedia:Overscan]]) can be turned off using xrandr:<br />
xrandr --output HDMI-0 --set underscan off<br />
<br />
=== Black screen with mouse cursor on resume from suspend in X ===<br />
<br />
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance_tuning|performance tuning]] for more information.<br />
<br />
=== No desktop effects in KDE4 with X1300 and Radeon driver ===<br />
<br />
A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}. <br />
<br />
Add:<br />
DisableChecks=true<br />
<br />
To the [Compositing] section. Ensure that compositing is enabled with:<br />
Enabled=true<br />
<br />
=== Black screen and no console, but X works in KMS ===<br />
<br />
This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:<br />
fbcon=map:1<br />
This will tell the fbcon to map itself to the {{ic|/dev/fb1}} framebuffer dev and not the {{ic|/dev/fb0}}, that in our case exist on the wrong graphics card.<br />
<br />
=== Some 3D applications show textures as all black or crash ===<br />
<br />
You might need texture compression support, which is not included with the open source driver. Install {{Pkg|libtxc_dxtn}} (and {{Pkg|lib32-libtxc_dxtn}} for multilib systems).<br />
<br />
=== 2D performance (e.g. scrolling) is slow ===<br />
<br />
If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.<br />
<br />
Bellow is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "MigrationHeuristic" "greedy"<br />
EndSection<br />
}}<br />
<br />
=== ATI X1600 (RV530 series) 3D application show black windows ===<br />
<br />
There are three possible solutions:<br />
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].<br />
* If this doesn't work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.<br />
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{ic|driconf}} via pacman and set that option in {{ic|~/.drirc}}.<br />
<br />
=== Vertical colored stripes on chipset RS482 (Xpress 200M Series) with/out KMS ===<br />
<br />
The bug :With the graphical chipset Xpress 200M Series (Radeon Xpress 1150), booting with KMS gives you sometimes, as soon as Xorg boots, a screen with many vertical colored stripes. You cannot {{ic|Alt+Sys+K}} or do anything. Take a look [https://bugs.archlinux.org/task/21918] for more information,<br />
How to fixed ? : disable dri (needn't to disable kms)<br />
Side effert: if i disable "dri" and use no kernel options (no "nomodeset") i see the vertical stripes at boot, only for 5 seconds, before having kdm displayed. Then, i have the same results.<br />
If I start for example KDE Desktop Effects, i will see again the vertical stripes for 5 seconds...and return to kdm ! :)</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=ATI&diff=269742ATI2013-08-04T05:33:48Z<p>Lordheavy: /* Enabling video acceleration */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[cs:ATI]]<br />
[[de:ATI]]<br />
[[es:ATI]]<br />
[[fr:ATI]]<br />
[[it:ATI]]<br />
[[pl:ATI]]<br />
[[ru:ATI]]<br />
[[tr:ATI]]<br />
[[zh-CN:ATI]]<br />
{{Article summary start}}<br />
{{Article summary text|An overview of the open source ATI/AMD video card driver.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|AMD Catalyst}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary end}}<br />
<br />
Owners of '''ATI/AMD''' video cards have a choice between AMD's [[AMD Catalyst|proprietary driver]] ({{AUR|catalyst}}) and the open source driver ({{Pkg|xf86-video-ati}}). This article covers the open source driver.<br />
<br />
The open source driver is currently not ''on par'' with the proprietary driver in terms of 3D performance on newer cards or reliable TV-out support. It does, however, offer better dual-head support, excellent 2D acceleration, and provide sufficient 3D acceleration for OpenGL-accelerated [[window manager]]s, such as [[Compiz]] or KWin.<br />
<br />
If unsure, try the open source driver first, it will suit most needs and is generally less problematic (see the [http://www.x.org/wiki/RadeonFeature feature matrix] for details).<br />
<br />
== Naming conventions ==<br />
<br />
ATI's [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).<br />
<br />
For a table of core and product series, see [[Wikipedia:Comparison of AMD graphics processing units]].<br />
<br />
== Overview ==<br />
<br />
The {{ic|xf86-video-ati}} (radeon) driver:<br />
*Works with Radeon chipsets up to HD 6xxx and 7xxxM (latest Northern Islands chipsets).<br />
**Radeons in the HD 77xx (Southern Islands) series are partially supported. Check the [http://www.x.org/wiki/RadeonFeature feature matrix] for unsupported features.<br />
**Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D acceleration are provided.<br />
**Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides.<br />
*Supports DRI1, RandR 1.2/1.3, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2 (with the latest Linux kernel, libdrm and Mesa versions).<br />
<br />
Generally, '''xf86-video-ati''' should be your first choice, no matter which ATI card you own. In case you need to use a driver for newer ATI cards, you should consider the proprietary '''catalyst''' driver.<br />
<br />
{{Note|'''xf86-video-ati''' is specified as '''''radeon''''' for the kernel and in {{ic|xorg.conf}}. }}<br />
<br />
== Installation ==<br />
<br />
If Catalyst/{{ic|fglrx}} has been previously installed, see [[ATI Catalyst#Uninstallation|here]].<br />
<br />
=== Installing xf86-video-ati ===<br />
<br />
[[pacman|Install]] {{Pkg|xf86-video-ati}}, available in the [[official repositories]]. <br />
<br />
The -git version of the driver and other needed packages (linux-git, etc) can be found in the [https://bbs.archlinux.org/viewtopic.php?id=79509&p=1 radeon repository] or the [[AUR]].<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Kernel mode-setting (KMS) ==<br />
<br />
{{Tip|If you have problems with the resolution, check [[Kernel_Mode_Setting#Forcing_modes_and_EDID|this page]].}}<br />
<br />
[[KMS]] enables native resolution in the framebuffer and allows for instant console (tty) switching. KMS also enables newer technologies (such as DRI2) which will help reduce artifacts and increase 3D performance, even kernel space power-saving.<br />
<br />
KMS for ATI video cards requires the [[Xorg]] free video user space driver {{Pkg|xf86-video-ati}} version 6.12.4 or later.<br />
<br />
=== Enabling KMS ===<br />
<br />
{{Note| Since Linux kernel v.2.6.33, KMS is '''enabled''' by default for autodetected ATI/AMD cards. This section remains for configurations outside stock. }}<br />
<br />
==== Early KMS start ====<br />
<br />
''These two methods will start KMS as early as possible in the [[boot process]].''<br />
<br />
1. The earliest point is to append the kernel line in your bootloader with {{ic|1= radeon.modeset=1}}. See your bootloader's page for info on how to do this.<br />
* Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. <br />
* AGP speed can be set with {{ic|<nowiki>radeon.agpmode=x</nowiki>}} kernel option, where x is 1, 2, 4, 8 (AGP speed) or -1 (PCI mode).<br />
<br />
2. Otherwise, when the [[initramfs]] is loaded:<br />
* If you have a special kernel outside of stock {{ic|-ARCH}} (e.g. linux-zen), remember to use a separate ''mkinitcpio'' configuration file (e.g. {{ic|/etc/mkinitcpio-zen.conf}}) and not {{ic|/etc/mkinitcpio.conf}}.<br />
* Remove any framebuffer related modules from your ''mkinitcpio'' file.<br />
* Add {{ic|radeon}} to {{ic|MODULES}} array in your ''mkinitcpio'' file. For AGP support, it is necessary to add {{ic|intel_agp}} (or {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, {{ic|amd64_agp}} etc.) before the {{ic|radeon}} module.<br />
* Re-generate your [[mkinitcpio#Image_creation_and_activation | initramfs]].<br />
<br />
Finally, '''Reboot''' the system.<br />
<br />
==== Late start ====<br />
<br />
''With this choice, KMS will be enabled when modules are loaded during the [[boot process]].''<br />
<br />
If you have a special kernel (e.g. linux-zen), remember to use appropriate mkinitcpio configuration file, e.g. {{ic|/etc/mkinitcpio-zen.conf}}. These instructions are written for the default kernel ({{Pkg|linux}}).<br />
{{Note| For AGP support, it may be necessary to add {{ic|intel_agp}}, {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, or {{ic|amd64_agp}}) to appropriate .conf files in {{ic|/etc/modules-load.d}}.}}<br />
<br />
# Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. Remove any framebuffer related modules from {{ic|/etc/mkinitcpio.conf}}. {{ic|<nowiki>video=</nowiki>}} can now be used in conjunction with KMS.<br />
# Add {{ic|<nowiki>options radeon modeset=1</nowiki>}} to {{ic|/etc/modprobe.d/modprobe.conf}}. <br />
# '''Reboot''' the system.<br />
<br />
=== Troubleshooting KMS ===<br />
<br />
==== Disable KMS ====<br />
<br />
As of Linux 3.9, the {{ic|radeon}} driver '''requires''' kernel mode-setting (the old user mode-setting can still be enabled as a kernel compile option).<br />
<br />
If you have {{ic|<nowiki>radeon.modeset=0</nowiki>}} (or {{ic|nomodeset}}) in the kernel options line in the bootloader, remove it. If you have {{ic|<nowiki>options radeon modeset=0</nowiki>}} anywhere in {{ic|/etc/modprobe.d}}, remove it.<br />
<br />
==== Renaming {{ic|xorg.conf}} ====<br />
<br />
Renaming {{ic|/etc/X11/xorg.conf}}, which may include options that conflict with KMS, will force Xorg to autodetect hardware with sane defaults. After renaming, '''restart''' Xorg.<br />
<br />
== Performance tuning ==<br />
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.<br />
<br />
By design, xf86-video-ati runs at AGP 4x speed. It is generally safe to modify this. If you notice hangs, try reducing the value or removing the line entirely (you can use values 1, 2, 4, 8). If KMS is enabled, this option is not used and it is superseded by {{ic|radeon.agpmode}} kernel option.<br />
<br />
Option "AGPMode" "8"<br />
<br />
'''ColorTiling''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU<br />
<br />
Option "ColorTiling" "on"<br />
<br />
'''Acceleration architecture'''; this will work only on '''newer''' cards. If you enable this and then cannot get back into X, remove it. <br />
<br />
Option "AccelMethod" "EXA"<br />
<br />
'''Page Flip''' is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA.<br />
<br />
Option "EnablePageFlip" "on"<br />
<br />
'''AGPFastWrite''' will enable fast writes for AGP cards. This one can cause instabilities, so be prepared to remove it if you cannot get into X. This option is not used when KMS is on.<br />
<br />
Option "AGPFastWrite" "yes"<br />
<br />
'''EXAVSync ''' option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips.<br />
Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled.<br />
<br />
Option "EXAVSync" "yes"<br />
<br />
Bellow is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Option "AGPMode" "8" #not used when KMS is on<br />
Option "AGPFastWrite" "off" #could cause instabilities enable it at your own risk<br />
Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default<br />
Option "EnablePageFlip" "on" #supported on all R/RV/RS4xx and older hardware and set off by default<br />
Option "AccelMethod" "EXA" #valid options are XAA, EXA and Glamor. EXA is the default.<br />
Option "RenderAccel" "on" #enabled by default on all radeon hardware<br />
Option "ColorTiling" "on" #enabled by default on RV300 and later radeon cards.<br />
Option "EXAVSync" "off" #default is off, otherwise on. Only works '''if EXA activated'''<br />
Option "EXAPixmaps" "on" #when on icreases 2D performance, but may also cause artifacts on some old cards. Only works '''if EXA activated'''<br />
Option "AccelDFS" "on" #default is off, read the radeon manpage for more information<br />
EndSection<br />
}}<br />
<br />
Defining the '''gartsize''', if not autodetected, can be done by adding {{ic|1=radeon.gartsize=32}} into [[kernel parameters]]. Size is in megabytes and 32 is for RV280 cards.<br />
<br />
Alternatively, do it with a modprobe option in {{ic|/etc/modprobe.d/radeon.conf}}:<br />
<br />
options radeon gartsize=32<br />
<br />
'''For further information and other options, read the radeon manpage and the module's info page''':<br />
man radeon<br />
<br />
modinfo radeon<br />
<br />
A fine tool to try is [https://www.archlinux.org/packages/community/any/driconf/ driconf]. It will allow you to modify several settings, like vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).<br />
<br />
=== Activate PCI-E 2.0 ===<br />
<br />
Can be unstable with some motherboards or not produce any performarce, test yourself adding "radeon.pcie_gen2=1" on the kernel command line.<br />
<br />
{{Note|As of kernel 3.6, PCI-E v2.0 in '''radeon''' appears to be turned on by default.}}<br />
<br />
More info on [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article]<br />
<br />
=== Glamor ===<br />
<br />
With the newest version of the free ATI drivers, you can now use a novel AccelMethod called "glamor": it is a 2D acceleration method implemented through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.<br />
Option "AccelMethod" "glamor"<br />
<br />
However, you need to add the following section before:<br />
{{bc|<br />
Section "Module"<br />
Load "dri2"<br />
Load "glamoregl" <br />
EndSection<br />
}}<br />
<br />
==Powersaving==<br />
<br />
The powersaving part is totally different with and without KMS.<br />
<br />
===With KMS enabled===<br />
<br />
With the radeon driver, power saving is disabled by default but the stock kernel provides a "sysfs" utility to enable it.<br />
<br />
Power saving through KMS is still a work in progress for the most part. It should work, but some chips do have problems with it. A common issue for all is screen blinking when the kernel switches between power states, and in some configurations it even causes system freezes. But KMS is awesome, so it is your choice. The UMS method is generally more stable, however its power savings might not be as good as those provided by KMS options.<br />
<br />
Use the (unsupported) [radeon] repo to enable power management. This repository will grant you up-to-date packages of the radeon driver and its dependencies, from (mostly) git snapshots.<br />
<br />
{{bc|1=<br />
[mesa-git]<br />
Server = <nowiki>http://pkgbuild.com/~lcarlier/$repo/$arch/</nowiki><br />
}}<br />
<br />
You can select the methods via sysfs.<br />
<br />
With root access, you have two choices:<br />
<br />
1. '''Dynamic frequency switching (depending on GPU load)'''<br />
<br />
{{bc|# echo dynpm > /sys/class/drm/card0/device/power_method}}<br />
<br />
The "dynpm" method dynamically changes the clocks based on the number of pending fences, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.<br />
<br />
{{Note|The "profile" method mentioned below is not as aggressive as "dynpm," but is currently much more stable and flicker free and works with multiple heads active.}}<br />
<br />
2. '''Profile-based frequency switching'''<br />
<br />
# echo profile > /sys/class/drm/card0/device/power_method<br />
<br />
The "profile" mode will allow you to select one of the five profiles below.<br />
Different profiles, for the most part, end up changing the frequency/voltage of the card.<br />
<br />
* "default" uses the default clocks and does not change the power state. This is the default behavior.<br />
* "auto" selects between "mid" and "high" power states based on the whether the system is on battery power or not. The "low" power state are selected when the monitors are in the dpms off state.<br />
* "low" forces the gpu to be in the low power state all the time. Note that "low" can cause display problems on some laptops; this is why auto only uses "low" when displays are off.<br />
* "mid" forces the gpu to be in the "mid" power state all the time. The "low" power state is selected when the monitors are in the dpms off state.<br />
* "high" forces the gpu to be in the "high" power state all the time. The "low" power state is selected when the monitors are in the dpms off state.<br />
<br />
So lets say we want the "low" option...for this, run the following command:<br />
<br />
# echo low > /sys/class/drm/card0/device/power_profile<br />
<br />
Replace "low" with any of the aforementioned profiles as necessary.<br />
<br />
{{Tip|Echoing a profile value to this file is not permanent. To do so use a systemd [[Systemd#Temporary files|tmpfiles.d]] file or [[udev]] rule:}}<br />
<br />
{{hc|/etc/tmpfiles.d/radeon-pm.conf|<nowiki><br />
w /sys/class/drm/card0/device/power_method - - - - dynpm</nowiki>}}<br />
<br />
{{hc|/etc/udev/rules.d/30-local.rules|<nowiki><br />
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="auto"</nowiki>}}<br />
<br />
{{Note|<br />
* If the above rules are failing, try removing 'dri/' from them<br />
* Another option from the same author for non Gnome-shell users (with a few more features) written in PyQt4 is Radeon-tray [https://github.com/StuntsPT/Radeon-tray].<br />
}}<br />
<br />
Power management is supported on all asics (r1xx-evergreen) that include the appropriate power state tables in the vbios; not all boards do (especially older desktop cards).<br />
<br />
To view the speed that the GPU is running at, perform the following command and you will get something like this output:<br />
<br />
{{hc|$ cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki> state: PM_STATE_ENABLED<br />
default engine clock: 300000 kHz<br />
current engine clock: 300720 kHz<br />
default memory clock: 200000 kHz</nowiki>}}<br />
<br />
If {{ic|/sys/kernel/debug}} is empty, run this command:<br />
<br />
# mount -t debugfs none /sys/kernel/debug<br />
<br />
To permanently mount, add the following line to {{ic|/etc/fstab}}:<br />
<br />
debugfs /sys/kernel/debug debugfs defaults 0 0<br />
<br />
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.<br />
<br />
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via lm_sensors tools or via sysfs in /sys/class/hwmon .<br />
<br />
There is a GUI for switching profiles: {{AUR|power-play-switcher}}.<br />
<br />
=== Without KMS ===<br />
<br />
In your {{ic|xorg.conf}} file, add 2 lines to "Device" Section:<br />
Option "DynamicPM" "on"<br />
Option "ClockGating" "on"<br />
<br />
If the two options are enabled successfully, you will see following lines in /var/log/Xorg.0.log:<br />
<br />
(**) RADEON(0): Option "ClockGating" "on"<br />
(**) RADEON(0): Option "DynamicPM" "on"<br />
<br />
Static power management enable success<br />
(II) RADEON(0): Dynamic Clock Gating Enabled<br />
(II) RADEON(0): Dynamic Power Management Enabled<br />
<br />
If you desire low power cost, you can add an extra line to "Device" Section of {{ic|xorg.conf}}:<br />
Option "ForceLowPowerMode" "on"<br />
<br />
== TV out ==<br />
<br />
{{out of date}}<br />
Since August 2007, there is TV-out support for all Radeons with integrated TV-out.<br />
<br />
It is somewhat limited for now, it does not always autodetect the output correctly and only NTSC mode works.<br />
<br />
First, check that you have an S-video output: {{ic|xrandr}} should give you something like<br />
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200<br />
...<br />
S-video disconnected (normal left inverted right x axis y axis)<br />
<br />
Setting tv standard to use:<br />
xrandr --output S-video --set "tv standard" ntsc<br />
<br />
Adding a mode for it (currently it supports only 800x600):<br />
xrandr --addmode S-video 800x600<br />
<br />
I will go for a clone mode:<br />
xrandr --output S-video --same-as VGA-0<br />
<br />
So far so good. Now let us try to see what we have:<br />
xrandr --output S-video --mode 800x600<br />
<br />
At this point you should see a 800x600 version of your desktop on your TV.<br />
<br />
To disable the output, do<br />
xrandr --output S-video --off<br />
<br />
Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.<br />
<br />
To send the output to the TV, I do<br />
xvattr -a XV_CRTC -v 1<br />
<br />
{{Note| you need to install {{AUR|xvattr}} to execute this command.}}<br />
<br />
To switch back to my monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.<br />
<br />
Please see [http://www.x.org/wiki/radeonTV Enabling TV-Out Statically] for how to enable TV-out in your xorg configuration file.<br />
<br />
=== Force TV-out in KMS ===<br />
<br />
Kernel can recognize {{ic|1=video=}} parameter in following form (see [[KMS]] for more details):<br />
<br />
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]<br />
<br />
For example:<br />
<br />
video=DVI-I-1:1280x1024-24@60e<br />
<br />
Parameters with whitespaces must be quoted:<br />
<br />
"video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
Current mkinitcpio implementation also requires {{ic|#}} in front. For example:<br />
<br />
root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
* Grub can pass such command line as is.<br />
* Lilo needs backslashes for doublequotes (append {{ic|1=# \"video=9-pin DIN-1:1024x768-24@60e\"}})<br />
* Grub2: TODO<br />
<br />
You can get list of your video outputs with following command:<br />
<br />
{{bc|<nowiki>$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-</nowiki>}}<br />
<br />
== HDMI audio ==<br />
<br />
HDMI audio is supported by the {{Pkg|xf86-video-ati}} video driver. By default, the necessary kernel module is disabled in kernel versions &gt;&#61;3.0. However, if your Radeon card is listed in the [http://www.x.org/wiki/RadeonFeature Radeon Feature Matrix], you can add {{ic|radeon.audio&#61;1}} to your [[Kernel parameters]]. For example:<br />
<br />
{{hc|/boot/syslinux/syslinux.cfg|<br />
LABEL arch<br />
MENU LABEL Arch Linux<br />
LINUX ../vmlinuz-linux<br />
APPEND root&#61;/dev/sda1 ro radeon.audio&#61;1<br />
INITRD ../initramfs-linux.img<br />
}}<br />
<br />
If HDMI audio doesn't simply work after installing the driver, test your setup with the procedure at [[Advanced_Linux_Sound_Architecture#HDMI_Output_Does_Not_Work]].<br />
<br />
{{note|As of this writing (2013-05-20), drivers for the [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names Southern Islands] cards don't support HDMI Audio.}}<br />
<br />
* The {{ic|radeon.audio}} kernel module only works if [[#Kernel_mode-setting_(KMS)]] is enabled. By default, '''xf86-video-ati''' enables KMS.<br />
* If the sound is distorted try [[PulseAudio#Glitches, skips or crackling|setting {{ic|1=tsched=0}}]] and make sure {{ic|rtkit}} daemon is running.<br />
<br />
== Dual Head setup ==<br />
<br />
=== Independent X screens ===<br />
<br />
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "radeon"<br />
Option "ZaphodHeads" "VGA-0"<br />
VendorName "ATI"<br />
BusID "PCI:1:0:0"<br />
Screen 0<br />
EndSection<br />
<br />
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads" "VGA-0"}}.<br />
<br />
Moreover, this option allows you to easily select the screen you want to mark as primary.<br />
<br />
== Enabling video acceleration ==<br />
<br />
Latest {{Pkg|mesa}} package added support for MPEG1/2 decoding to free drivers, exported via {{Pkg|libvdpau}} and are automaticaly detected. You can force used driver by assigning environment variable {{Ic|LIBVA_DRIVER_NAME}} to {{Ic|vdpau}} and {{Ic|VDPAU_DRIVER}} to the name of driver core, e.g.:<br />
<br />
{{hc|1=~/.bashrc|2=<br />
export LIBVA_DRIVER_NAME=vdpau<br />
export VDPAU_DRIVER=r600<br />
}}<br />
<br />
for r600-based cards (all available VDPAU drivers are in {{Ic|/usr/lib/vdpau/}}).<br />
<br />
== Turn vsync off ==<br />
<br />
The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create {{ic|~/.drirc}} (or edit it if it already exists) and add the following section:<br />
{{hc|~/.drirc|<nowiki><br />
<driconf><br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0" /><br />
</application><br />
</device><br />
<!-- Other devices ... --><br />
</driconf><br />
</nowiki>}}<br />
It is effectively '''dri2''', not your video card code (like r600).<br />
<br />
== Troubleshooting ==<br />
<br />
=== Artifacts upon logging in ===<br />
<br />
If encountering artifacts, first try starting X without {{ic|/etc/X11/xorg.conf}}. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured {{ic|xorg.conf}} files are known to cause trouble.<br />
<br />
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.<br />
<br />
Artifacts may also be related to [[kernel mode setting]]. Consider [[#Disable KMS|disabling KMS]].<br />
<br />
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EXAPixmaps" "off"<br />
EndSection<br />
<br />
Further tweaking could be done by disabling {{ic|AccelDFS}}:<br />
<br />
Option "AccelDFS" "off"<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
e.g. When EDID fails on a DisplayPort connection. <br />
<br />
This issue is covered on the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].<br />
<br />
=== Slow performance with open-source drivers ===<br />
<br />
{{Note|Make sure you are member of '''video''' group.}}<br />
<br />
Some cards can be installed by default trying to use [[ATI#AMD/Ati cards and kernel mode-setting (KMS)|KMS]]. You can check whether this is your case running:<br />
dmesg | egrep "drm|radeon"<br />
<br />
This command might show something like this, meaning it is trying to default to KMS:<br />
[drm] radeon default to kernel modesetting.<br />
...<br />
[drm:radeon_driver_load_kms] *ERROR* Failed to initialize radeon, disabling IOCTL<br />
<br />
If your card is not supported by KMS (anything older than r100), then you can [[ATI#Disable KMS|disable KMS]]. This should fix the problem.<br />
<br />
=== AGP is disabled (with KMS) ===<br />
<br />
If you experience poor performance and dmesg shows something like this<br />
[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19<br />
then check if the agp driver for your motherboard (e.g., {{ic|via_agp}}, {{ic|intel_agp}} etc.) is loaded before the {{ic|radeon}} module, see [[ATI#Enabling KMS|Enabling KMS]].<br />
<br />
=== TV showing a black border around the screen ===<br />
<br />
When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see [[Wikipedia:Overscan]]) can be turned off using xrandr:<br />
xrandr --output HDMI-0 --set underscan off<br />
<br />
=== Black screen with mouse cursor on resume from suspend in X ===<br />
<br />
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance_tuning|performance tuning]] for more information.<br />
<br />
=== No desktop effects in KDE4 with X1300 and Radeon driver ===<br />
<br />
A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}. <br />
<br />
Add:<br />
DisableChecks=true<br />
<br />
To the [Compositing] section. Ensure that compositing is enabled with:<br />
Enabled=true<br />
<br />
=== Black screen and no console, but X works in KMS ===<br />
<br />
This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:<br />
fbcon=map:1<br />
This will tell the fbcon to map itself to the {{ic|/dev/fb1}} framebuffer dev and not the {{ic|/dev/fb0}}, that in our case exist on the wrong graphics card.<br />
<br />
=== Some 3D applications show textures as all black or crash ===<br />
<br />
You might need texture compression support, which is not included with the open source driver. Install {{Pkg|libtxc_dxtn}} (and {{Pkg|lib32-libtxc_dxtn}} for multilib systems).<br />
<br />
=== 2D performance (e.g. scrolling) is slow ===<br />
<br />
If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.<br />
<br />
Bellow is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "MigrationHeuristic" "greedy"<br />
EndSection<br />
}}<br />
<br />
=== ATI X1600 (RV530 series) 3D application show black windows ===<br />
<br />
There are three possible solutions:<br />
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].<br />
* If this doesn't work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.<br />
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{ic|driconf}} via pacman and set that option in {{ic|~/.drirc}}.<br />
<br />
=== Vertical colored stripes on chipset RS482 (Xpress 200M Series) with/out KMS ===<br />
<br />
The bug :With the graphical chipset Xpress 200M Series (Radeon Xpress 1150), booting with KMS gives you sometimes, as soon as Xorg boots, a screen with many vertical colored stripes. You cannot {{ic|Alt+Sys+K}} or do anything. Take a look [https://bugs.archlinux.org/task/21918] for more information,<br />
How to fixed ? : disable dri (needn't to disable kms)<br />
Side effert: if i disable "dri" and use no kernel options (no "nomodeset") i see the vertical stripes at boot, only for 5 seconds, before having kdm displayed. Then, i have the same results.<br />
If I start for example KDE Desktop Effects, i will see again the vertical stripes for 5 seconds...and return to kdm ! :)</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=KMSCON&diff=263045KMSCON2013-06-16T22:37:08Z<p>Lordheavy: /* CJK Support */</p>
<hr />
<div>[[Category:Terminal emulators]]<br />
{{Article summary start}}<br />
{{Article summary text|A guide to installing and configuring kmscon, the userspace linux-console replacement.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|KMS}}<br />
{{Article summary wiki|systemd}}<br />
{{Article summary end}}<br />
<br />
From the [https://github.com/dvdhrm/kmscon project github page]:<br />
<br />
''Kmscon is a simple terminal emulator based on linux kernel mode setting (KMS). It is an attempt to replace the in-kernel VT implementation with a userspace console.''<br />
<br />
== Requirements ==<br />
Despite its name, KMS is not a hard requirement for kmscon. Kmscon supports the following video backends: fbdev (Linux fbdev video backend), drm2d (Linux DRM software-rendering backend), drm3d (Linux DRM hardware-rendering backend). Make sure one of them is available on your system.<br />
<br />
== Features ==<br />
Kmscon can function as a drop-in replacement for the in-kernel linux-console. Features include:<br />
<br />
* Full vt220 to vt510 implementation.<br />
* Full internationalization support:<br />
** Kmscon supports printing full Unicode glyphs, including the CJK ones.<br />
** Kmscon provides internationalized keyboard handling through libxkbcommon, thus allowing it to use the full range of keyboard layouts supported in X keyboard.<br />
* Hardware accelerated rendering.<br />
* Multi-seat capability.<br />
<br />
NB: KMSCON supports user logins only. If you need to login as root you will either need agetty or log into root using the su command.<br />
<br />
== Installation ==<br />
Install {{pkg|kmscon}} from one of the [[official repositories]]. Alternatively, you can install {{AUR|kmscon-git}} from the [[Arch User Repository]].<br />
<br />
== Replacing linux-console ==<br />
As root, issue:<br />
{{bc|# ln -s /usr/lib/systemd/system/kmsconvt\@.service /etc/systemd/system/autovt\@.service<br />
# systemctl enable kmsconvt\@.service}}<br />
This will make {{pkg|systemd}} start kmscon instead of agetty on each VT. If for whatever reason kmscon failed to start, then agetty would be started instead.<br />
<br />
== CJK Support ==<br />
Kmscon supports rendering CJK characters through the default font engine {{pkg|pango}}. However, {{pkg|fontconfig}} has to be globally configured to map the monospace font alias to proper CJK fonts. For Chinese users, the following template is provided and proved to result in satisfactory Chinese characters rendering:<br />
{{hc|/etc/fonts/conf.d/99-kmscon.conf|<nowiki><br />
<?xml version="1.0"?><br />
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"><br />
<fontconfig><br />
<match><br />
<test name="family"><string>monospace</string></test><br />
<edit name="family" mode="prepend" binding="strong"><br />
<string>DejaVu Sans Mono</string><br />
<string>WenQuanYi Micro Hei Mono</string><br />
</edit><br />
</match><br />
</fontconfig><br />
</nowiki>}}<br />
You need to have {{pkg|ttf-dejavu}} and {{pkg|wqy-microhei}}, both available from the [[official repositories]], installed.<br />
<br />
== Troubleshooting ==<br />
<br />
* You may want to add '--hwaccel --drm' to ExecStart if you have problems with switching between Xorg and kmscon.<br />
ExecStart=/usr/bin/kmscon "--vt=%I" --seats=seat0 --no-switchvt --font-name Terminus --font-size 12 --hwaccel --drm</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=KMSCON&diff=263044KMSCON2013-06-16T22:36:39Z<p>Lordheavy: /* Replacing linux-console */</p>
<hr />
<div>[[Category:Terminal emulators]]<br />
{{Article summary start}}<br />
{{Article summary text|A guide to installing and configuring kmscon, the userspace linux-console replacement.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|KMS}}<br />
{{Article summary wiki|systemd}}<br />
{{Article summary end}}<br />
<br />
From the [https://github.com/dvdhrm/kmscon project github page]:<br />
<br />
''Kmscon is a simple terminal emulator based on linux kernel mode setting (KMS). It is an attempt to replace the in-kernel VT implementation with a userspace console.''<br />
<br />
== Requirements ==<br />
Despite its name, KMS is not a hard requirement for kmscon. Kmscon supports the following video backends: fbdev (Linux fbdev video backend), drm2d (Linux DRM software-rendering backend), drm3d (Linux DRM hardware-rendering backend). Make sure one of them is available on your system.<br />
<br />
== Features ==<br />
Kmscon can function as a drop-in replacement for the in-kernel linux-console. Features include:<br />
<br />
* Full vt220 to vt510 implementation.<br />
* Full internationalization support:<br />
** Kmscon supports printing full Unicode glyphs, including the CJK ones.<br />
** Kmscon provides internationalized keyboard handling through libxkbcommon, thus allowing it to use the full range of keyboard layouts supported in X keyboard.<br />
* Hardware accelerated rendering.<br />
* Multi-seat capability.<br />
<br />
NB: KMSCON supports user logins only. If you need to login as root you will either need agetty or log into root using the su command.<br />
<br />
== Installation ==<br />
Install {{pkg|kmscon}} from one of the [[official repositories]]. Alternatively, you can install {{AUR|kmscon-git}} from the [[Arch User Repository]].<br />
<br />
== Replacing linux-console ==<br />
As root, issue:<br />
{{bc|# ln -s /usr/lib/systemd/system/kmsconvt\@.service /etc/systemd/system/autovt\@.service<br />
# systemctl enable kmsconvt\@.service}}<br />
This will make {{pkg|systemd}} start kmscon instead of agetty on each VT. If for whatever reason kmscon failed to start, then agetty would be started instead.<br />
<br />
== CJK Support ==<br />
{{Note|1=Make sure you are using kmscon>=7 as kmscon<=6 does not render multi-cell glyphs correctly. Alternatively, you can use the git version.}}<br />
Kmscon supports rendering CJK characters through the default font engine {{pkg|pango}}. However, {{pkg|fontconfig}} has to be globally configured to map the monospace font alias to proper CJK fonts. For Chinese users, the following template is provided and proved to result in satisfactory Chinese characters rendering:<br />
{{hc|/etc/fonts/conf.d/99-kmscon.conf|<nowiki><br />
<?xml version="1.0"?><br />
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"><br />
<fontconfig><br />
<match><br />
<test name="family"><string>monospace</string></test><br />
<edit name="family" mode="prepend" binding="strong"><br />
<string>DejaVu Sans Mono</string><br />
<string>WenQuanYi Micro Hei Mono</string><br />
</edit><br />
</match><br />
</fontconfig><br />
</nowiki>}}<br />
You need to have {{pkg|ttf-dejavu}} and {{pkg|wqy-microhei}}, both available from the [[official repositories]], installed.<br />
<br />
== Troubleshooting ==<br />
<br />
* You may want to add '--hwaccel --drm' to ExecStart if you have problems with switching between Xorg and kmscon.<br />
ExecStart=/usr/bin/kmscon "--vt=%I" --seats=seat0 --no-switchvt --font-name Terminus --font-size 12 --hwaccel --drm</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=Debugging/Getting_traces&diff=257963Debugging/Getting traces2013-05-20T11:38:26Z<p>Lordheavy: /* Getting the trace */</p>
<hr />
<div>[[Category:Package development]]<br />
[[zh-CN:Debug - Getting Traces]]<br />
This article aims to help in creating a debugging Arch package and using it to provide trace and debug information for reporting software bugs to developers.<br />
<br />
==Discovering name of package(s)==<br />
===A few facts of debug messages===<br />
When looking at debug message, such as:<br />
<br />
[...]<br />
Backtrace was generated from '/usr/bin/epiphany'<br />
<br />
'''(no debugging symbols found)'''<br />
Using host libthread_db library "/lib/libthread_db.so.1".<br />
'''(no debugging symbols found)'''<br />
[Thread debugging using libthread_db enabled]<br />
[New Thread -1241265952 (LWP 12630)]<br />
(no debugging symbols found)<br />
0xb7f25410 in __kernel_vsyscall ()<br />
#0 0xb7f25410 in __kernel_vsyscall ()<br />
#1 0xb741b45b in '''??''' () from /lib/libpthread.so.0<br />
[...]<br />
<br />
you can see {{ic|??}} at the place where debugging info is missing and also the name of library or executable which called the function. Similarly, when the line {{ic|(no debugging symbols found)}} appears in a message, it means that you have to look for a file whose name is stated. <br />
<br />
===Finding package===<br />
Use [[Pacman]] to retrieve name of package:<br />
<br />
# pacman -Qo /lib/libthread_db.so.1<br />
/lib/libthread_db.so.1 is owned by ''glibc'' 2.5-8<br />
<br />
We have found that package is called {{Pkg|glibc}} in version 2.5-8. By repeating this step, we are able to create a list of packages which we have to compile ourselves to get full stack trace.<br />
<br />
==Obtaining PKGBUILD==<br />
In order to build a package from source, the PKGBUILD file is required. The location from which you can obtain PKGBUILDs is, in general:<br />
#[[AUR]] or<br />
#[[ABS]]<br />
<br />
===Using AUR===<br />
Use [https://aur.archlinux.org/packages.php AUR search page] to find the package. If it is not present, the package is stored in one of the official repository trees of Arch Linux. If found, click on its name and download the {{ic|Tarball}}. Use {{ic|tar}} to extract it and change the directory:<br />
<br />
$ tar xvzf name_of_tarball.tar.gz<br />
$ cd name_of_tarball<br />
<br />
===Using ABS===<br />
If the package is a part of official tree, install [[ABS]], fetch the source for the package and then build it:<br />
<br />
$ ABSROOT=. abs core/glibc<br />
$ cd core/glibc<br />
$ makepkg -s<br />
<br />
==Compilation settings==<br />
At this stage, you can modify the global configuration file of {{ic|makepkg}} if you will be using it only for debug purposes. In other cases, you should modify package's PKGBUILD file only for each package you would like to rebuild.<br />
<br />
===Global settings===<br />
As of pacman 4.1, {{ic|/etc/makepkg.conf}} already has debug compilation flags in {{ic|DEBUG_CFLAGS}} and {{ic|DEBUG_CXXFLAGS}}. To use them, enable the {{ic|debug}} makepkg option, and disable {{ic|strip}}.<br />
<br />
Modify {{ic|makepkg}}'s configuration file {{ic|~/.makepkg.conf}} to contain:<br />
<br />
OPTIONS+=(debug !strip)<br />
<br />
These settings will force compilation with debugging information and will disable the stripping of executables. (If you do not disable {{ic|strip}}, debugging information will be generated anyway, but moved to a separate {{ic|''foo''-debug}} package.)<br />
<br />
===One package settings only===<br />
Modify {{ic|foo}}'s PKGBUILD file to contain the following lines:<br />
<br />
options=(debug !strip)<br />
<br />
===Qt===<br />
In addition to the previous general settings you should pass {{ic|-developer-build}} option to the {{ic|configure}} script in the {{ic|PKGBUILD}}. Also compiling Qt with qtwebkit installed may cause compilation errors. That is why you would also want to remove qtwebkit package temporarily from your system. Use the following command in order to ignore any dependencies on qtwebkit.<br />
<br />
# pacman -Rdd qtwebkit<br />
<br />
Do not forget to install qtwebkit after the compilation of Qt is finished, otherwise the programs that depend on it will not work!<br />
<br />
===KDE applications===<br />
KDE and software built with KDE technologies normally use CMake for build. To build this software with debug symbols change the option {{ic|-DCMAKE_BUILD_TYPE}} to {{ic|Debug}}.<br />
<br />
==Building and installing the package==<br />
Build the package from source using {{ic|makepkg}} while in the PKGBUILD's directory. This could take some time:<br />
<br />
# makepkg<br />
<br />
Then install the built package:<br />
<br />
# pacman -U glibc-2.5-8-i686.pkg.tar.gz<br />
<br />
==Getting the trace==<br />
<br />
The actual backtrace (or stack trace) can now be obtained via e.g. {{Pkg|gdb}}, the GNU Debugger. Run it either via:<br />
<br />
# gdb /path/to/file<br />
<br />
or:<br />
<br />
# gdb<br />
(gdb) exec /path/to/file<br />
<br />
The path is optional, if already set in the {{Ic|$PATH}} variable.<br />
<br />
Then, within {{Ic|gdb}}, type {{Ic|run}} followed by any arguments you wish the program to start with, e.g.:<br />
<br />
(gdb) run --no-daemon --verbose<br />
<br />
to start execution of the file. Do whatever necessary to evoke the bug. For the actual log, type the lines:<br />
<br />
(gdb) set logging file trace.log<br />
(gdb) set logging on<br />
<br />
and then:<br />
<br />
(gdb) bt<br />
<br />
to output the trace to {{Ic|trace.log}} into the directory {{Ic|gdb}} was started in. To exit, enter:<br />
<br />
(gdb) set logging off<br />
(gdb) quit<br />
<br />
{{Tip| To debug an application written in python:<br />
# gdb /usr/bin/python<br />
(gdb) run <python application><br />
}}<br />
<br />
You can also debug an already running application, e.g.:<br />
<br />
# gdb --pid=$(pidof firefox)<br />
(gdb) continue<br />
<br />
==Conclusion==<br />
Use the complete stack trace to inform developers of a bug you have discovered before. This will be highly appreciated by them and will help to improve your favorite program.<br />
<br />
== See also ==<br />
*[[Reporting Bug Guidelines]]<br />
*[[Step By Step Debugging Guide]]<br />
*[http://www.gentoo.org/proj/en/qa/backtraces.xml Gentoo Linux Documentation — How to get meaningful backtraces in Gentoo]</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=PKGBUILD&diff=256915PKGBUILD2013-05-13T05:36:27Z<p>Lordheavy: /* groups */</p>
<hr />
<div>[[Category:Package development]]<br />
[[cs:PKGBUILD]]<br />
[[el:PKGBUILD]]<br />
[[es:PKGBUILD]]<br />
[[fa:PKGBUILD]]<br />
[[fr:PKGBUILD]]<br />
[[it:PKGBUILD]]<br />
[[ja:PKGBUILD]]<br />
[[pl:PKGBUILD]]<br />
[[pt:PKGBUILD]]<br />
[[ru:PKGBUILD]]<br />
[[sr:PKGBUILD]]<br />
[[zh-CN:PKGBUILD]]<br />
[[zh-TW:PKGBUILD]]<br />
{{Article summary start}}<br />
{{Article summary text|This article provides an explanation of PKGBUILD variables used when [[Creating Packages|creating packages]]. A PKGBUILD is a script that describes how software is to be compiled and packaged. Writing installation functions and general packaging information is covered in [[Creating Packages]] and other [[:Category:Package development|package development]] articles}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Package management overview}}}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Arch Packaging Standards}}<br />
{{Article summary wiki|Creating Packages}}<br />
{{Article summary wiki|Custom local repository}}<br />
{{Article summary wiki|pacman Tips}}<br />
{{Article summary wiki|PKGBUILD Templates}}<br />
{{Article summary heading|Resources}}<br />
{{Article summary link|PKGBUILD(5) Manual Page|https://www.archlinux.org/pacman/PKGBUILD.5.html}}<br />
{{Article summary end}}<br />
<br />
A '''PKGBUILD''' is an [[Arch Linux]] package build description file (actually it is a shell script) used when [[Creating Packages|creating packages]].<br />
<br />
Packages in Arch Linux are built using the [[makepkg]] utility and information stored in PKGBUILDs. When '''makepkg''' is run, it searches for a {{Ic|PKGBUILD}} in the current directory and follows the instructions therein to either compile or otherwise acquire the files to build a package file ({{ic|''pkgname''.pkg.tar.xz}}). The resulting package contains binary files and installation instructions, readily installed with [[pacman]].<br />
<br />
== Variables ==<br />
The following are variables that can be filled out in the PKGBUILD file.<br />
<br />
It is common practice to define the variables in the PKGBUILD in same order as given here. However, this is not mandatory, as long as correct [[Bash]] syntax is used.<br />
<br />
=== pkgname ===<br />
The name of the package. It should consist of ''alphanumeric and any of the following characters @ . _ + - (at symbol, dot, underscore, plus, hyphen)''. All letters should be ''lowercase'' and ''names are not allowed to start with hyphens''. For the sake of consistency, {{ic|pkgname}} should match the name of the source tarball of the software you are packaging. For instance, if the software is in {{ic|foobar-2.5.tar.gz}}, the {{ic|pkgname}} value should be {{Ic|foobar}}. The present working directory the PKGBUILD file is in should also match the {{ic|pkgname}}.<br />
<br />
=== pkgver ===<br />
The version of the package. The value should be the same as the version released by the author of the package. It can contain letters, numbers, periods and underscore but CANNOT contain a hyphen. If the author of the package uses a hyphen in their version numbering scheme, replace it with an underscore. For instance, if the version is ''0.99-10'', it should be changed to ''0.99_10''. If the {{ic|pkgver}} variable is used later in the PKGBUILD then the underscore can easily be substituted for a dash on usage e.g.:<br />
source=($pkgname-${pkgver//_/-}.tar.gz)<br />
<br />
=== pkgrel ===<br />
The release number of the package specific to Arch Linux. This value allows users to differentiate between consecutive builds of the same version of a package. When a new package version is first released, the '''release number starts at 1'''. As fixes and optimizations are made to the {{ic|PKGBUILD}} file, the package will be '''re-released''' and the '''release number''' will increment by 1. When a new version of the package comes out, the release number resets to 1.<br />
<br />
=== pkgdir ===<br />
Don't worry about this. It defaults to the location where makepkg is being executed.<br />
<br />
=== epoch ===<br />
An integer value, specific to Arch Linux, representing what 'lifetime' to compare version numbers against. This value allows overrides of the normal version comparison rules for packages that have inconsistent version numbering, require a downgrade, change numbering schemes, etc. By default, packages are assumed to have an epoch value of ''0''. Do not use this unless you know what you are doing.<br />
<br />
=== pkgbase ===<br />
An optional global directive is available when building a split package, pkgbase is used to refer to the group of packages in the output of makepkg and in the naming of source-only tarballs. If not specified, the first element in the pkgname array is used. All options and directives for the split packages default to the global values given in the PKGBUILD. Nevertheless, the following ones can be overridden within each split package's packaging function: pkgver, pkgrel, epoch, pkgdesc, arch, url, license, groups, depends, optdepends, provides, conflicts, replaces, backup, options, install and changelog. The variable is not allowed to begin with a hyphen.<br />
<br />
=== pkgdesc ===<br />
The description of the package. The description should be about 80 characters or less and should not include the package name in a self-referencing way. For instance, "Nedit is a text editor for X11" should be written as "A text editor for X11."<br />
<br />
{{Note|Do not follow this rule thoughtlessly when submitting packages to [[AUR]]. If package name differs from application name for some reason, inclusion of full name into description can be the only way to ensure that package can be found during search.}}<br />
<br />
=== arch ===<br />
An array of architectures that the {{ic|PKGBUILD}} file is known to build and work on. Currently, it should contain {{ic|i686}} and/or {{ic|x86_64}}, {{ic|1=arch=('i686' 'x86_64')}}. The value {{ic|any}} can also be used for architecture-independent packages.<br />
<br />
You can access the target architecture with the variable {{ic|$CARCH}} during a build, and even when defining variables. See also {{bug|16352}}. Example:<br />
<br />
depends=(foobar)<br />
if test "$CARCH" == x86_64; then<br />
depends+=(lib32-glibc)<br />
fi<br />
<br />
=== url ===<br />
The URL of the official site of the software being packaged.<br />
<br />
=== license ===<br />
The license under which the software is distributed. A {{pkg|licenses}} package has been created in {{ic|[core]}} that stores common licenses in {{ic|/usr/share/licenses/common}}, e.g. {{ic|/usr/share/licenses/common/GPL}}. If a package is licensed under one of these licenses, the value should be set to the directory name, e.g. {{ic|1=license=('GPL')}}. If the appropriate license is not included in the official {{Pkg|licenses}} package, several things must be done:<br />
<br />
# The license file(s) should be included in: {{ic|/usr/share/licenses/''pkgname''/}}, e.g. {{ic|/usr/share/licenses/foobar/LICENSE}}.<br />
# If the source tarball does NOT contain the license details and the license is only displayed elsewhere, e.g. a website, then you need to copy the license to a file and include it.<br />
# Add {{ic|custom}} to the {{ic|license}} array. Optionally, you can replace {{ic|custom}} with {{ic|custom:name of license}}. Once a license is used in two or more packages in an official repository (including {{ic|[community]}}), it becomes a part of the {{Pkg|licenses}} package.<br />
* The [[Wikipedia:BSD License|BSD]], [[Wikipedia:MIT License|MIT]], [[Wikipedia:ZLIB license|zlib/png]] and [[Wikipedia:Python License|Python]] licenses are special cases and could not be included in the {{pkg|licenses}} package. For the sake of the {{ic|license}} array, it is treated as a common license ({{ic|1=license=('BSD')}}, {{ic|1=license=('MIT')}}, {{ic|1=license=('ZLIB')}} and {{ic|1=license=('Python')}}) but technically each one is a custom license because each one has its own copyright line. Any packages licensed under these four should have its own unique license stored in {{ic|/usr/share/licenses/''pkgname''}}. Some packages may not be covered by a single license. In these cases, multiple entries may be made in the license array, e.g. {{ic|1=license=('GPL' 'custom:name of license')}}.<br />
* Additionally, the (L)GPL has many versions and permutations of those versions. For (L)GPL software, the convention is:<br />
** (L)GPL - (L)GPLv2 or any later version<br />
** (L)GPL2 - (L)GPL2 only<br />
** (L)GPL3 - (L)GPL3 or any later version<br />
* If after researching the issue no license can be determined, {{ic|PKGBUILD.proto}} suggests using {{ic|unknown}}. However, upstream should be contacted about the conditions under which the software is (and is not) available.<br />
<br />
{{Tip|Some software authors do not provide separate license file and describe distribution rules in section of common ReadMe.txt. This information can be extracted in separate file during {{Ic|build}} phase with something like this: {{Ic|sed -n '/'''This software'''/,/''' thereof.'''/p' ReadMe.txt > LICENSE}}.}}<br />
<br />
=== groups ===<br />
The group the package belongs in. For instance, when you install the {{Grp|kdebase}} package, it installs all packages that belong in the {{Grp|kde}} group.<br />
<br />
=== depends ===<br />
An array of package names that must be installed before this software can be run. If a software requires a minimum version of a dependency, the {{ic|1=>=}} operator should be used to point this out, e.g. {{ic|1=depends=('foobar>=1.8.0')}}. You do not need to list packages that your software depends on if other packages your software depends on already have those packages listed in their dependency. For instance, {{pkg|gtk2}} depends on {{pkg|glib2}} and {{pkg|glibc}}. However, {{pkg|glibc}} does not need to be listed as a dependency for {{pkg|gtk2}} because it is a dependency for {{pkg|glib2}}.<br />
<br />
===makedepends===<br />
An array of package names that must be installed to build the software but unnecessary for using the software after installation. You can specify the minimum version dependency of the packages in the same format as the {{ic|depends}} array.<br />
<br />
{{Note|Specifying packages that are already in {{ic|depends}} is not necessary.}}<br />
{{Warning|The group {{Grp|base-devel}} is assumed already installed when building with makepkg . Members of "base-devel" '''should not''' be included in {{ic|makedepends}} arrays.}}<br />
<br />
=== checkdepends ===<br />
An array of packages this package depends on to run its test suite but are not needed at runtime. Packages in this list follow the same format as depends. These dependencies are only considered when the [[Creating Packages#The check() function|check()]] function is present and is to be run by makepkg.<br />
<br />
=== optdepends ===<br />
An array of package names that are not needed for the software to function but provides additional features. A short description of what each package provides should also be noted. An {{ic|optdepends}} may look like this:<br />
optdepends=('cups: printing support'<br />
'sane: scanners support'<br />
'libgphoto2: digital cameras support'<br />
'alsa-lib: sound support'<br />
'giflib: GIF images support'<br />
'libjpeg: JPEG images support'<br />
'libpng: PNG images support')<br />
<br />
=== provides ===<br />
An array of package names that this package provides the features of (or a virtual package such as {{Ic|cron}} or {{Ic|sh}}). Packages that provide the same things can be installed at the same time unless conflict with each other (see below). If you use this variable, you should add the version ({{ic|pkgver}} and perhaps the {{ic|pkgrel}}) that this package will provide if dependencies may be affected by it. For instance, if you are providing a modified ''qt'' package named ''qt-foobar'' version 3.3.8 which provides ''qt'' then the {{ic|provides}} array should look like {{ic|1=provides=('qt=3.3.8')}}. Putting {{ic|1=provides=('qt')}} will cause to fail those dependencies that require a specific version of ''qt''. Do not add {{ic|pkgname}} to your provides array, this is done automatically.<br />
<br />
=== conflicts ===<br />
An array of package names that may cause problems with this package if installed. Package with this name and all packages which {{Ic|provides}} virtual packages with this name will be removed. You can also specify the version properties of the conflicting packages in the same format as the {{ic|depends}} array.<br />
<br />
=== replaces ===<br />
An array of obsolete package names that are replaced by this package, e.g. {{ic|1=replaces=('ethereal')}} for the {{pkg|wireshark}} package. After syncing with {{ic|pacman -Sy}}, it will immediately replace an installed package upon encountering another package with the matching {{ic|replaces}} in the repositories. If you are providing an alternate version of an already existing package, use the {{ic|conflicts}} variable which is only evaluated when actually installing the conflicting package.<br />
<br />
=== backup ===<br />
An array of files that can contain user-made changes and should be preserved during upgrade or removal of a package, primarily intended for configuration files in {{ic|/etc}}.<br />
<br />
When updating, new version may be saved as {{ic|file.pacnew}} to avoid overwriting a file which already exists and was previously modified by the user. Similarly, when the package is removed, user-modified file will be preserved as {{ic|file.pacsave}} unless the package was removed with {{ic|pacman -Rn}} command. <br />
<br />
The file paths in this array should be relative paths (e.g. {{ic|etc/pacman.conf}}) not absolute paths (e.g. {{ic|/etc/pacman.conf}}). See also [[Pacnew and Pacsave Files]].<br />
<br />
=== options ===<br />
This array allows you to override some of the default behavior of {{ic|makepkg}}, defined in {{Ic|/etc/makepkg.conf}}. To set an option, include the option name in the array. To reverse the default behavior, place an '''{{ic|!}}''' at the front of the option. The following options may be placed in the array:<br />
<br />
* '''''strip''''' - Strips symbols from binaries and libraries. If you frequently use a debugger on programs or libraries, it may be helpful to disable this option.<br />
* '''''docs''''' - Save {{ic|/doc}} directories.<br />
* '''''libtool''''' - Leave ''libtool'' ({{ic|.la}}) files in packages.<br />
* '''''staticlibs''''' - Leave static library (.a) files in packages<br />
* '''''emptydirs''''' - Leave empty directories in packages.<br />
* '''''zipman''''' - Compress ''man'' and ''info'' pages with ''gzip''.<br />
* '''''purge''''' - Remove files specified by the {{ic|PURGE_TARGETS}} variable from the package.<br />
* '''''upx''''' - Compress binary executable files using UPX. Additional options can be passed to UPX by specifying the {{ic|UPXFLAGS}} variable.<br />
* '''''ccache''''' - Allow the use of {{ic|ccache}} during build. More useful in its negative form {{ic|!ccache}} with select packages that have problems building with {{ic|ccache}}.<br />
* '''''distcc''''' - Allow the use of {{ic|distcc}} during build. More useful in its negative form {{ic|!distcc}} with select packages that have problems building with {{ic|distcc}}.<br />
* '''''buildflags''''' - Allow the use of user-specific {{ic|buildflags}} (CFLAGS, CXXFLAGS, LDFLAGS) during build. More useful in its negative form {{ic|!buildflags}} with select packages that have problems building with custom {{ic|buildflags}}.<br />
* '''''makeflags''''' - Allow the use of user-specific {{ic|makeflags}} during build. More useful in its negative form {{ic|!makeflags}} with select packages that have problems building with custom {{ic|makeflags}}.<br />
<br />
=== install ===<br />
The name of the {{ic|.install}} script to be included in the package. pacman has the ability to store and execute a package-specific script when it installs, removes or upgrades a package. The script contains the following functions which run at different times:<br />
<br />
* '''''pre_install''''' - The script is run right before files are extracted. One argument is passed: new package version.<br />
* '''''post_install''''' - The script is run right after files are extracted. One argument is passed: new package version.<br />
* '''''pre_upgrade''''' - The script is run right before files are extracted. Two arguments are passed in the following order: new package version, old package version.<br />
* '''''post_upgrade''''' - The script is run after files are extracted. Two arguments are passed in the following order: new package version, old package version.<br />
* '''''pre_remove''''' - The script is run right before files are removed. One argument is passed: old package version.<br />
* '''''post_remove''''' - The script is run right after files are removed. One argument is passed: old package version.<br />
<br />
Each function is run chrooted inside the pacman install directory. See [https://bbs.archlinux.org/viewtopic.php?pid=913891 this thread].<br />
<br />
{{Tip|A prototype {{ic|.install}} is provided at {{ic|/usr/share/pacman/proto.install}}.}}<br />
<br />
=== changelog ===<br />
The name of the package changelog. To view changelogs for installed packages (that have this file):<br />
pacman -Qc ''pkgname''<br />
<br />
{{Tip|A prototype changelog file is provided at {{ic|/usr/share/pacman/ChangeLog.proto}}.}}<br />
<br />
=== source ===<br />
An array of files which are needed to build the package. It must contain the location of the software source, which in most cases is a full HTTP or FTP URL. The previously set variables {{ic|pkgname}} and {{ic|pkgver}} can be used effectively here (e.g. {{ic|<nowiki>source=(http://example.com/$pkgname-$pkgver.tar.gz)</nowiki>}})<br />
<br />
{{Note|If you need to supply files which are not downloadable on the fly, e.g. self-made patches, you simply put those into the same directory where your {{ic|PKGBUILD}} file is in and add the filename to this array. Any paths you add here are resolved relative to the directory where the {{ic|PKGBUILD}} lies. Before the actual build process is started, all of the files referenced in this array will be downloaded or checked for existence, and {{ic|makepkg}} will not proceed if any are missing.}}<br />
<br />
{{Tip|You can specify a different name for the downloaded file - if the downloaded file has a different name for some reason like the URL had a GET parameter - using the following syntax: {{Ic|''filename''::''fileuri''}}, for example {{Ic|$pkgname-$pkgver.zip::<nowiki>http://199.91.152.193/7pd0l2tpkidg/jg2e1cynwii/Warez_collection_16.4.exe</nowiki>}}}}<br />
<br />
=== noextract ===<br />
An array of files listed under the {{ic|source}} array which should not be extracted from their archive format by {{ic|makepkg}}. This most commonly applies to certain zip files which cannot be handled by {{ic|/usr/bin/bsdtar}} because {{Pkg|libarchive}} processes all files as streams rather than random access as {{Pkg|unzip}} does. In these situations {{ic|unzip}} should be added in the {{ic|makedepends}} array and the first line of the [[Creating Packages#The build() function|build()]] function should contain:<br />
<br />
cd "$srcdir/$pkgname-$pkgver"<br />
unzip [source].zip<br />
<br />
Note that while the {{ic|source}} array accepts URLs, {{ic|noextract}} is '''just''' the file name portion. So, for example, you would do something like this (simplified from [https://projects.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/grub grub2's PKGBUILD]):<br />
<br />
source=(<nowiki>"http://ftp.archlinux.org/other/grub2/grub2_extras_lua_r20.tar.xz"</nowiki>)<br />
noextract=("grub2_extras_lua_r20.tar.xz")<br />
<br />
To extract ''nothing'', you can do something fancy like this (taken from [https://projects.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/firefox-i18n&id=cb10a40aeda9b444285d1ae6959c344110b4c936 firefox-i18n]):<br />
<br />
noextract=(${source[@]##*/})<br />
<br />
{{Note|More conservative Bash substitution would include quotes, or possibly even a loop that calls {{ic|basename}}. If you have read this far, you should get the idea.}}<br />
<br />
=== md5sums ===<br />
An array of MD5 checksums of the files listed in the {{ic|source}} array. Once all files in the {{ic|source}} array are available, an MD5 hash of each file will be automatically generated and compared with the values of this array in the same order they appear in the {{ic|source}} array. While the order of the source files itself does not matter, it is important that it matches the order of this array since {{ic|makepkg}} cannot guess which checksum belongs to what source file. You can generate this array quickly and easily using the commands {{ic|updpkgsums}} or {{ic|makepkg -g}} in the directory that contains the {{ic|PKGBUILD}} file. Note that the MD5 algorithm is known to have weaknesses, so you should consider using a stronger alternative.<br />
<br />
=== sha1sums ===<br />
An array of SHA-1 160-bit checksums. This is an alternative to {{ic|md5sums}} described above, but it is also known to have weaknesses, so you should consider using a stronger alternative. To enable use and generation of these checksums, be sure to set up the {{ic|INTEGRITY_CHECK}} option in {{ic|/etc/makepkg.conf}}. See {{ic|man makepkg.conf}}.<br />
<br />
=== sha256sums, sha384sums, sha512sums ===<br />
An array of SHA-2 checksums with digest sizes 256, 384 and 512 bits respectively. These are alternatives to {{ic|md5sums}} described above and are generally believed to be stronger. To enable use and generation of these checksums, be sure to set up the {{ic|INTEGRITY_CHECK}} option in {{ic|/etc/makepkg.conf}}. See {{ic|man makepkg.conf}}.<br />
<br />
== See also ==<br />
*[http://pastebin.com/MeXiLDV9 Example PKGBUILD file]<br />
*[http://seberm.pastebin.com/gP0tBqvs Example .install file]</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:Building_in_a_clean_chroot&diff=256578DeveloperWiki:Building in a clean chroot2013-05-10T19:46:50Z<p>Lordheavy: /* Manual package installation */</p>
<hr />
<div>[[Category: DeveloperWiki]]<br />
<br />
= Introduction =<br />
<br />
This article is part of the [[DeveloperWiki]].<br />
<br />
= Why =<br />
<br />
Building in a clean chroot prevents missing dependencies in packages, whether due to unwanted linking or packages missing in the depends array in the PKGBUILD. It also allows users to build a package for the stable repositories (core, extra, community) while having packages from [testing] installed.<br />
<br />
= Convenience Way =<br />
To quickly build a package in a chroot without any further tinkering, one can use the helper scripts from the devtools package.<br />
<br />
These helper scripts should be called in the same directory where the PKGBUILD is, just like with makepkg. For instance, {{ic|extra-i686-build}} automatically sets up chroot in {{ic|/var/lib/archbuild}}, updates it, and builds a package for the extra repository. For multilib builds there is just {{ic|multilib-build}} without an architecture.<br />
<br />
{{Tip|Consult the table below for information on which script to use when building for a specific repository and architecture.}}<br />
<br />
{{Note|[core] is omitted because those packages are required to go through [testing] first before landing in [core].}}<br />
<br />
{| class="wikitable"<br />
! Target repository || Architecture || Build script to use<br />
|-<br />
| extra / community || i686 || extra-i686-build<br />
|-<br />
| extra / community || x86_64 || extra-x86_64-build<br />
|-<br />
| testing / community-testing || i686 || testing-i686-build<br />
|-<br />
| testing / community-testing || x86_64 || testing-x86_64-build<br />
|-<br />
| staging / community-staging || i686 || staging-i686-build<br />
|-<br />
| staging / community-staging || x86_64 || staging-x86_64-build<br />
|-<br />
| multilib || x86_64 || multilib-build<br />
|-<br />
| multilib-testing || x86_64 || multilib-testing-build<br />
|-<br />
| multilib-staging || x86_64 || multilib-staging-build<br />
|}<br />
<br />
= Classic Way =<br />
== Setting Up A Chroot ==<br />
<br />
The devtools package provides tools for creating and building within clean chroots. Install it if not done already:<br />
<br />
pacman -S devtools<br />
<br />
To make a clean chroot, create a directory in which the chroot will reside. For example, {{ic|$HOME/chroot}}.<br />
<br />
Now create the chroot:<br />
<br />
CHROOT=$HOME/chroot<br />
mkdir $CHROOT<br />
sudo mkarchroot $CHROOT/root base base-devel sudo<br />
<br />
{{Note|One can also define the CHROOT variable in $HOME/.bashrc using the export command if the location is to be repeatedly used. }}<br />
<br />
Edit {{ic|$CHROOT/root/etc/makepkg.conf}} to set the packager name and any makeflags. Also adjust the mirror list in {{ic|$CHROOT/root/etc/pacman.d/mirrorlist}} and enable '''[testing]''' in {{ic|$CHROOT/root/etc/pacman.conf}} if desired.<br />
<br />
Alternatively, provide a custom{{ic|pacman.conf}} and {{ic|makepkg.conf}} with the following:<br />
<br />
sudo mkarchroot -C <pacman.conf> -M <makepkg.conf> $CHROOT/root base base-devel sudo<br />
<br />
It is recommended however users do not use custom {{ic|pacman.conf}} and {{ic|makepkg.conf}} during the initial creation of clean chroot to ensure no user-specific adjustments are made. ''Use with caution.''<br />
<br />
== Building in the Chroot ==<br />
<br />
Firstly, make sure the chroot is up to date with:<br />
<br />
sudo mkarchroot -u $CHROOT/root<br />
<br />
Then, to build a package in the chroot, run the following from the dir containing the PKGBUILD:<br />
<br />
sudo makechrootpkg -c -r $CHROOT<br />
<br />
A unionfs is used to maintain the clean chroot during building. All installed dependencies or makedepends and other changes made during building are done in $CHROOT/rw. Passing the -c flag to makechrootpkg ensures that this directory is cleaned before building starts.<br />
<br />
= Handling Major Rebuilds =<br />
<br />
The cleanest way to handle a major rebuild is to create a new chroot and build the first package (typically the package for which the rebuild is meant). Then create a local repo inside the new chroot. To do this:<br />
<br />
sudo mkdir $CHROOT/root/repo<br />
sudo chmod 0777 $CHROOT/root/repo<br />
<br />
The chmod statement allows for the coping of package files and for the creation of the local repo as your user rather than root.<br />
<br />
cp <package> $CHROOT/root/repo<br />
cd $CHROOT/root/repo<br />
repo-add local.db.tar.gz <package><br />
<br />
Then add the local repo to {{ic|$CHROOT/root/etc/pacman.conf}}<br />
<br />
[local]<br />
Server = file:///repo<br />
<br />
As long as you add only self built packages to this repo, you can add<br />
<br />
SigLevel = TrustAll<br />
<br />
and update the repo:<br />
<br />
sudo mkarchroot -u $CHROOT/root<br />
<br />
With every additional package rebuilt, copy the package to the local repo directory, add it to the repo database and update the chroot.<br />
<br />
= Alternate Rebuild Handling =<br />
<br />
The above directions will work fine, but they can dirty the "pristine" chroot that makechrootpkg tries to keep in check (that is the point of using unionfs - dirtying a separate 'rw' directory).<br />
<br />
== Using a custom repo ==<br />
Follow the steps above to setup a local repo inside the chroot.<br />
<br />
Build packages using:<br />
sudo makechrootpkg -r $CHROOT -u<br />
The -u will update the chroot before building (-Syu) but updates will be installed to the rw layer, maintaining a clean chroot.<br />
<br />
== Manual package installation ==<br />
Packages can be installed manually to the rw layer of the chroot by using:<br />
sudo makechrootpkg -r $CHROOT -I package-1.0-1-i686.pkg.tar.xz<br />
<br />
== Installation after building ==<br />
Tell makechrootpkg to simply install a package to the rw layer of the chroot after building by passing the -i arg. Unrecognized args get passed to makepkg, so this calls `makepkg` with the -i arg.<br />
sudo makechrootpkg -r $CHROOT -- -i</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=VCS_package_guidelines&diff=253334VCS package guidelines2013-04-08T00:09:48Z<p>Lordheavy: /* Subversion */</p>
<hr />
<div>[[Category:Package development]]<br />
[[it:VCS PKGBUILD Guidelines]]<br />
[[zh-CN:VCS PKGBUILD Guidelines]]<br />
[[zh-TW:VCS PKGBUILD Guidelines]]<br />
{{Package Guidelines}}<br />
<br />
[[Wikipedia:Revision_control|Version control systems]] can be used for retrieval of source code for both usual statically versioned packages and latest (trunk) version of packages. This article covers both cases.<br />
<br />
== Prototypes ==<br />
<br />
The [[ABS]] package provides prototypes for [[cvs]], [[svn]], [[git]], [[mercurial]], and [[Wikipedia:darcs|darcs]] [[PKGBUILD]]s. When {{Pkg|abs}} is installed, you can find them in {{ic|/usr/share/pacman}}. Latest versions can be found in the [https://projects.archlinux.org/abs.git/tree/prototypes prototypes directory in the ABS Git repository].<br />
<br />
== Guidelines ==<br />
<br />
* Suffix {{Ic|pkgname}} with {{Ic|-cvs}}, {{Ic|-svn}}, {{Ic|-hg}}, {{Ic|-darcs}}, {{Ic|-bzr}}, {{Ic|-git}} etc. unless the package fetches a specific release.<br />
<br />
* If the resulting package is different after changing the dependencies, URL, sources, etc. increasing the {{Ic|pkgrel}} is mandatory. Touching the {{ic|pkgver}} isn't.<br />
<br />
* {{Ic|--holdver}} can be used to prevent [[makepkg]] from updating the {{ic|pkgver}} (see: [https://www.archlinux.org/pacman/makepkg.8.html makepkg(8)])<br />
<br />
* Include what the package conflicts with and provides (e.g. for {{AUR|fluxbox-git}}: {{Ic|1=conflicts=('fluxbox')}} and {{Ic|1=provides=('fluxbox')}}).<br />
<br />
* {{Ic|1=replaces=()}} generally causes unnecessary problems and should be avoided.<br />
<br />
* When using the cvsroot, use {{Ic|anonymous:@}} rather than {{Ic|anonymous@}} to avoid having to enter a blank password or {{Ic|anonymous:password@}}, if one is required.<br />
<br />
* Include the appropriate VCS tool in {{Ic|1=makedepends}} ({{pkg|cvs}}, {{pkg|subversion}}, {{pkg|git}}, ...).<br />
<br />
=== VCS sources ===<br />
Starting with {{Pkg|pacman}} 4.1, the VCS sources should be specified in the {{ic|1=source=()}} array and will be treated like any other source. {{ic|makepkg}} will clone/checkout/branch the repo into {{ic|$SRCDEST}} (same as {{ic|$startdir}} if not set in [https://www.archlinux.org/pacman/makepkg.conf.5.html makepkg.conf(5)]) and copy it to {{ic|$srcdir}} (in a specific way to each VCS). The local repo is left untouched, thus invalidating the need for a {{ic|-build}} directory.<br />
<br />
The general format of a VCS {{ic|1=source=()}} array is:<br />
source=('[dir::][vcs+]url[#fragment]')<br />
<br />
* {{ic|url}} is the URL to the distant or local repo<br />
* {{ic|vcs+}} is needed for URLs that do not reflect the VCS type, such as {{ic|http://some_distant_repo}}<br />
* {{ic|#fragment}} is needed to pull a specific branch or commit (see: [https://www.archlinux.org/pacman/makepkg.8.html makepkg(8)] for a list of recognized fragments)<br />
* {{ic|dir}} is used to change the default repo name to something more relevant (e.g. than {{ic|trunk}}) or to preserve the previous sources<br />
<br />
An example Git source array:<br />
source=('project_name::git+http://project_url#branch=project_branch')<br />
<br />
=== The pkgver() function ===<br />
The {{ic|pkgver}} autobump is now achieved via a dedicated {{ic|pkgver()}} function. This allows for better control over the {{ic|pkgver}}, and maintainers should favor a {{ic|pkgver}} that makes sense. Following are some examples for several VCS. <br />
<br />
==== Git ====<br />
With tags:<br />
<br />
pkgver() {<br />
cd "$srcdir"/local_repo<br />
git describe --always | sed 's|-|.|g'<br />
}<br />
<br />
Without tags:<br />
<br />
pkgver() {<br />
cd "$srcdir"/local_repo<br />
echo "0.$(git rev-list --count HEAD).$(git describe --always)"<br />
}<br />
<br />
Using the last commit date:<br />
<br />
pkgver() {<br />
cd "$srcdir"/local_repo<br />
git log -1 --format="%cd" --date=short | sed 's|-||g'<br />
}<br />
<br />
==== Subversion ====<br />
pkgver() {<br />
cd "$SRCDEST"/local_repo<br />
svnversion |tr -d [A-z]<br />
}<br />
<br />
{{Note|The copy inside {{ic|$srcdir}} is made using {{ic|svn export}} which does not create working copies. Any {{ic|svn}} related command has to be used in the local repo, hence {{ic|$SRCDEST}}.}}<br />
<br />
==== Mercurial ====<br />
pkgver() {<br />
cd "$srcdir"/local_repo<br />
hg identify -ni | awk 'BEGIN{OFS=".";} {print $2,$1}'<br />
}<br />
<br />
==== Bazaar ====<br />
pkgver() {<br />
cd "$srcdir"/local_repo<br />
bzr revno<br />
}<br />
<br />
==== Fallback ====<br />
The following can be used in case no satisfactory {{ic|pkgver}} can be extracted from the repo:<br />
<br />
pkgver() {<br />
date +"%Y%m%d"<br />
}<br />
<br />
== Tips ==<br />
<br />
=== A sample Git PKGBUILD for pacman 4.1 ===<br />
# Maintainer: Dave Reisner <d@falconindy.com> <br />
# Contributor: William Giokas (KaiSforza) <1007380@gmail.com><br />
<br />
pkgname=expac-git<br />
_gitname=expac<br />
pkgver=0.0.0<br />
pkgrel=1<br />
pkgdesc="Pacman database extraction utility"<br />
arch=('i686' 'x86_64')<br />
url="https://github.com/falconindy/expac"<br />
license=('MIT')<br />
depends=('pacman')<br />
makedepends=('git' 'perl')<br />
conflicts=('expac')<br />
provides=('expac')<br />
# Here is the fun bit. Makepkg knows it's a git repo because the url starts with 'git'<br />
# it then knows to checkout the branch 'pacman41' upon cloning, expediating versioning:<br />
#source=('git+https://github.com/falconindy/expac.git'<br />
source=('git://github.com/falconindy/expac.git'<br />
'expac_icon.png')<br />
# Because the sources are not static, skip Git checksum:<br />
md5sums=('SKIP'<br />
'020c36e38466b68cbc7b3f93e2044b49')<br />
<br />
pkgver() {<br />
cd "$srcdir/$_gitname"<br />
git describe --always | sed 's|-|.|g'<br />
# To give the total count of commits and the hash of the last one<br />
# (useful if you're making a repository with git packages so that they can have sequential<br />
# version numbers, else a "pacman -Syu" may not update the package):<br />
#echo "0.$(git rev-list --count $branch).$(git describe --always)"<br />
# Using the last commit date:<br />
#git log -1 --format="%cd" --date=short | sed 's|-||g'<br />
}<br />
<br />
build() {<br />
cd "$srcdir/$_gitname"<br />
make<br />
}<br />
<br />
package() {<br />
cd "$srcdir/$_gitname"<br />
make PREFIX=/usr DESTDIR="$pkgdir" install<br />
install -Dm644 "$srcdir/expac_icon.png" "$pkgdir/usr/share/pixmaps/expac.png"<br />
}<br />
<br />
=== Removing VCS leftovers ===<br />
To make sure that there are no VCS leftovers use the following at the end of the {{ic|package()}} function (replacing {{ic|'''.git'''}} with {{ic|.svn}}, {{ic|.hg}}, etc.):<br />
find "$pkgdir" -type d -name "'''.git'''" -exec rm -r '{}' +<br />
<br />
== Troubleshooting ==<br />
<br />
=== Bazaar limitation ===<br />
Currently, bazaar URLs only work in the form of {{ic|http://bazaar.launchpad.net/}}, e.g.:<br />
source=('project_name::bzr+http://bazaar.launchpad.net/~project_team/project_path')<br />
<br />
Using any other {{ic|http://}}, {{ic|https://}} or {{ic|ssh://}} URL (including {{ic|lp:project_name}}) will prevent makepkg from updating the local repo.<br />
<br />
The correct URL can be obtained with:<br />
$ bzr config parent_location</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=Steam&diff=252625Steam2013-04-01T22:07:58Z<p>Lordheavy: /* Serious Sam 3: BFE */</p>
<hr />
<div>[[Category:Gaming]]<br />
[[Category:Wine]]<br />
[[ja:Steam]]<br />
[[zh-CN:Steam]]<br />
{{Article summary start}}<br />
{{Article summary text|[http://store.steampowered.com/about/ Steam] is a content delivery system made by Valve Software. It is best known as the platform needed to play Source Engine games (e.g. Half-Life 2, Counter-Strike). Today it offers many games from many other developers.}}<br />
<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Wine}}<br />
{{Article summary end}}<br />
<br />
See the [[Wikipedia:Steam (software)|Steam Wikipedia page]] and the page in the [http://appdb.winehq.org/objectManager.php?sClass=version&iId=19444 Wine Application Database] for more info.<br />
<br />
== Native Steam on Linux ==<br />
<br />
{{Note|Arch Linux is not [https://support.steampowered.com/kb_article.php?ref&#61;1504-QHXN-8366 officially supported].}}<br />
<br />
{{Note|If you have a pure 64-bit installation, you will need to enable the [[multilib]] repository in pacman. This is because the Steam client is a 32-bit application. It may also make sense to install multilib-devel to provide some important multilib libraries. You also most likely need to install the 32-bit version of your graphics driver to run Steam.}}<br />
<br />
Install {{Pkg|steam}} from the [[multilib]] repository.<br />
<br />
Steam makes heavy usage of the Arial font. A decent Arial font to use is {{Pkg|ttf-liberation}} or the official Microsoft Arial fonts: {{aur|ttf-microsoft-arial}} or {{aur|ttf-ms-fonts}} packages from the [[AUR]]. Asian languages require {{Pkg|wqy-zenhei}} to display properly.<br />
<br />
Steam is '''not supported''' on this distribution. As such some fixes are needed on the users part to get things functioning properly. Several games have dependencies which may be missing from your system. If a game fails to launch (often without error messages) then make sure all of the libraries listed below that game are installed. Please install {{Pkg|libtxc_dxtn}} and {{Pkg|lib32-libtxc_dxtn}} with mesa drivers as almost all games require it.<br />
<br />
===General troubleshooting===<br />
{{Note|In addition to being documented here, any bug/fix/error should be, if not already, reported on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GitHub page].}}<br />
<br />
{{Note|Connection problems may occur when using DD-WRT with peer-to-peer traffic filtering.}}<br />
<br />
====GUI problems with KDE====<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/594 issue 594]<br />
<br />
If you are using KDE and you have problems with the GUI (such as lag or random crashes) modify the compositing type to OpenGL/Raster. In KDE system settings, go to "Desktop Effects" in the "Workspace Appearance and Behaviour" section. Open the "Advanced" tab. Change "Compositing type" from XRender to OpenGL.<br />
<br />
====The close button only minimizes the window====<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/1025 issue 1025]<br />
<br />
If you have your tray icon working you have the option of making the close button close to tray instead of minimize. To do this, set the environment variable {{ic|STEAM_FRAME_FORCE_CLOSE}} to {{ic|1}}. You can do this by launching Steam using the following command.<br />
$ STEAM_FRAME_FORCE_CLOSE=1 steam<br />
<br />
====Flash not working on 64-bit systems====<br />
: Steam Support [https://support.steampowered.com/kb_article.php?ref=1493-GHZB-7612 article]<br />
<br />
First ensure {{pkg|lib32-flashplugin}} is installed. It should be working at this point, if not create a local Steam flash plugin folder<br />
mkdir ~/.steam/bin32/plugins/<br />
and set a symbolic link to the global lib32 flash plugin file in your upper new folder<br />
ln -s /usr/lib32/mozilla/plugins/libflashplayer.so ~/.steam/bin32/plugins/<br />
<br />
====Text is corrupt or missing====<br />
The Steam Support [https://support.steampowered.com/kb_article.php?ref=1974-YFKL-4947 instructions] for Windows seem to work on Linux also: Simply download [https://support.steampowered.com/downloads/1974-YFKL-4947/SteamFonts.zip SteamFonts.zip] and install them (copying to ~/.fonts/ works at least).<br />
<br />
====Error on some games: S3TC support is missing====<br />
Install the following dependencies:<br />
* {{pkg|libtxc_dxtn}}<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Black screen on (Valve?) games (but audio works)====<br />
Check the Steam stdout/stderr for Error lines, some quick dependencies for reference:<br />
* {{pkg|lib32-intel-dri}} (not confirmed as absolutely necessary)<br />
<br />
run steam from console via primusrun steam<br />
<br />
====SetLocale('en_US.UTF-8') fails at game startup====<br />
Edit /etc/locale.gen in your favourite editor and uncomment the line {{ic|en_US.UTF-8 UTF-8}}. Then run {{ic|locale-gen}} as root.<br />
<br />
=== Game-specific depencencies and troubleshooting ===<br />
{{Note|Steam installs library dependencies of a game to a library directory, but some are missing at the moment. Report bugs involving missing libraries on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GIT page] before adding workarounds here, and then provide a link to the bug so it can be removed as the problems are fixed. Libraries like {{pkg|glu}} and {{pkg|libtxc_dxtn}} are exceptions to this, as they are just part of the implementation of the open drivers.}}<br />
<br />
====Amnesia: The Dark Descent====<br />
=====Dependencies=====<br />
* {{pkg|lib32-freealut}}<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxmu}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
<br />
====And Yet It Moves====<br />
=====Dependencies=====<br />
* {{aur|lib32-libtheora}}<br />
* {{aur|lib32-libjpeg6}}<br />
* {{aur|lib32-libtiff4}}<br />
* {{pkg|lib32-libpng12}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and one of the following messages can be observed on console<br />
readlink: extra operand ‘Yet’<br />
Try 'readlink --help' for more information.<br />
OR<br />
This script must be run as a user with write priviledges to game directory<br />
To fix this, open {{ic|~/.steam/root/SteamApps/common/And Yet It Moves/AndYetItMovesSteam.sh}} in text editor and replace line<br />
ayim_dir="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"<br />
with<br />
ayim_dir="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"<br />
<br />
====Counter-Strike: Source====<br />
=====Troubleshooting=====<br />
======Game crashes upon joining======<br />
If the game is constantly crashing when trying to join a game and in {{ic|~/.steam/root/SteamApps/your@account/Counter Strike Source/hl2.sh}} you have {{ic|1=__GL_THREADED_OPTIMIZATIONS=1}}, try changing it to {{ic|0}}.<br />
<br />
====Crusader Kings II====<br />
Game is installed into {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II}}.<br />
<br />
Game can be started directly, without need of running Steam on background, using command {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II/ck2}}.<br />
<br />
Saves are stored in {{ic|$HOME/Documents/Paradox Interactive/Crusader Kings II/save games/}}.<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
<br />
The default audio driver used by Crusader Kings 2 is for [[PulseAudio]], so an override is necessary:<br />
<br />
{{hc|~/.pam_environment|2=SDL_AUDIODRIVER=alsa}}<br />
<br />
====Defender's Quest: Valley of the Forgotten====<br />
=====Dependencies=====<br />
* {{aur|adobe-air-sdk}}<br />
* {{pkg|xterm}}<br />
<br />
=====Troubleshooting=====<br />
======Game does not start======<br />
* Package {{pkg|adobe-air-sdk}} installs Adobe Air not in the place where the game expects it to be, fix this by creating a simlink (requires root permissions):<br />
{{bc|ln -s /opt/adobe-air-sdk/runtimes/air/linux/Adobe\ AIR /opt/Adobe\ AIR}}<br />
<br />
* Adobe AIR will want to check whether the EULA was accepeted and fail in doing so. To fix it, issue the following commands (from under your user, not under root):<br />
{{bc|mkdir -p ~/.appdata/Adobe/AIR<br />
echo 2 > ~/.appdata/Adobe/AIR/eulaAccepted}}<br />
Note that by issuing these commands you're accepting Adobe Air's EULA.<br />
<br />
====Dwarfs F2P====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libgdiplus}}<br />
<br />
=====Troubleshooting=====<br />
======Game does not start======<br />
There was a bug that stopped Steam from fetching all the needed files. It should be resolved, if you still bump into this problem, try verifying integrity of game cache from game properties, local files tab.<br />
======Game crashes======<br />
In some cases, the game crashes about 2 minutes before the end of every arcade. This bug has been reported, but there's no known solution to it.<br />
<br />
====FTL: Faster than Light====<br />
=====Dependencies=====<br />
Libraries are downloaded and and placed in the game's data directory for both architectures. As long as you run FTL by the launcher script (or via the shortcut in Steam) you should not need to download any further libraries.<br />
<br />
=====Compatibility=====<br />
After installation, FTL may fail to run due to a 'Text file busy' error (characterised in Steam by your portrait border going green then blue again). The easiest way to mend this is to just reboot your system. Upon logging back in FTL should run.<br />
<br />
The Steam overlay in FTL does not function as it is not a 3D accelerated game. Because of this the desktop notifications will be visible. If playing in fullscreen, therefore, these notifications in some systems may steal focus and revert you back to windowed mode with no way of going back to fullscreen without relaunching. The binaries for FTL on Steam have no DRM and it is possible to run the game ''without'' Steam running, so in some cases that may be optimum - just ensure that you launch FTL via the launcher script in {{ic|~/.steam/root/SteamApps/common/FTL Faster than Light/data/}} rather than the FTL binary in the $arch directory.<br />
<br />
=====Problems with open-source video driver=====<br />
FTL may fail to run if you are using an opensource driver for your video card. There are two solutions: install a proprietary video driver or delete (rename if you are unsure) the library "libstdc++.so.6" inside {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/amd64/lib}} This is if you are using a 64bit system, I suppose that in case you are using a 32bit system you have to remove (rename) the same library located into {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/x86/lib}}.<br />
<br />
====Harvest: Massive Encounter====<br />
=====Dependencies=====<br />
* {{pkg|lib32-gtk2}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-openal}}<br />
* {{aur|lib32-nvidia-cg-toolkit}}<br />
* {{aur|lib32-libjpeg6}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and throws you to library installer loop. Just edit {{ic| ~/.steam/root/SteamApps/common/Harvest Massive Encounter/run_harvest}} and remove everything but<br />
#!/bin/bash<br />
exec ./Harvest<br />
<br />
====Killing Floor====<br />
=====Troubleshooting=====<br />
======Screen resolution======<br />
Killing Floor runs pretty much from scratch, although you might have to change in-game resolution screen as the default one is '''800x600''' and a '''4:3''' screen format.<br />
If you try to modify screen resolution in-game, it might crash your desktop enviroment.<br />
To fix this, please set the desired resolution screen size by modifing your {{ic|~/.killingfloor/System/KillingFloor.ini}} with your prefered editor.<br />
{{hc|# nano ~/.killingfloor/System/KillingFloor.ini|<nowiki><br />
...<br />
<br />
[WinDrv.WindowsClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=???<br />
MenuViewportY=???<br />
<br />
...<br />
<br />
[SDLDrv.SDLClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=????<br />
MenuViewportY=????<br />
<br />
...<br />
</nowiki>}}<br />
{{Note|Replace all the '''????''' with the corresponding numbers according the desired resolution. If you have an 1366x768 screen and want to use it at it's fullest, change all the Viewport fields to something like '''ViewportX&#61;1366''' and '''ViewportY&#61;768''' in the corresponding areas.}}<br />
{{Note| The dots in the middle indicate that there are more fields in that .ini file. But for screen resolution troubleshooting, you do not need to modify anything else.}}<br />
<br />
Save the file and restart the game, it should work now.<br />
<br />
======Windowed Mode======<br />
Uncheck fullscreen in the options menu, and use {{Keypress|Ctrl+g}} to stop mouse capturing (that was non-obvious to discover..). This way you can easily minimize it and do other other things..and let your WM handle things.<br />
<br />
====Multiwinia====<br />
=====Dependencies=====<br />
* {{pkg|lib32-openal}}<br />
<br />
Game will not launch without {{pkg|lib32-openal}}.<br />
<br />
====Penumbra: Overture====<br />
=====Dependencies=====<br />
(Taken from {{aur|penumbra-collection}} and {{aur|penumbra-overture-ep1-demo}})<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxft}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
* {{pkg|lib32-sdl_image}}<br />
<br />
=====Troubleshooting=====<br />
======Windowed Mode======<br />
There is no in-game option to change to the windowed mode, you will have to edit {{ic|~/.frictionalgames/Penumbra/Overture/settings.cfg}} to activate it.<br />
Find {{ic|FullScreen&#61;"true"}} and change it to {{ic|FullScreen&#61;"false"}}, after this the game should start in windowed mode.<br />
<br />
====Revenge of the Titans====<br />
=====Dependencies=====<br />
* {{pkg|libxtst}} and {{pkg|lib32-libxtst}}<br />
<br />
====Serious Sam 3: BFE====<br />
=====Troubleshooting=====<br />
======No audio======<br />
Try running:<br />
# pacman -S lib32-alsa-plugins<br />
# mkdir -p /usr/lib/i386-linux-gnu/alsa-lib/<br />
# ln -s /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so /usr/lib/i386-linux-gnu/alsa-lib/<br />
<br />
If that does not work, try tweaking ~/.alsoftrc as proposed by the [http://steamcommunity.com/app/221410/discussions/3/846940248238406974/ Steam community] (Serious Sam 3: BFE uses OpenAL to output sound). If you are not using Pulse Audio, you may want to write the following configuration:<br />
<br />
{{hc|$ nano ~/.alsoftrc|<nowiki><br />
[general]<br />
drivers = alsa<br />
[alsa]<br />
device = default<br />
capture = default<br />
mmap = true<br />
</nowiki>}}<br />
<br />
====Spacechem====<br />
=====Dependencies=====<br />
* {{pkg|lib32-sqlite}}<br />
* {{pkg|lib32-sdl_image}}<br />
* {{aur|lib32-sdl_mixer}}<br />
<br />
=====Troubleshooting=====<br />
======Game crash======<br />
The shipped x86 version of Spacechem does not work on x64 with the game's own libSDL* files, and crashes with some strange output.<br />
<br />
To solve this just remove or move the three files {{ic|libSDL-1.2.so.0}}, {{ic|libSDL_image-1.2.so.0}}, {{ic|libSDL_mixer-1.2.so.0}} from {{ic|~/.steam/root/SteamApps/common/SpaceChem}}<br />
<br />
====Space Pirates and Zombies====<br />
=====Dependencies=====<br />
* {{pkg|lib32-openal}}<br />
=====Troubleshooting=====<br />
======No audio======<br />
Apply the fix documented in Serious Sam 3: BFE above.<br />
<br />
====Splice====<br />
Splice comes with both x86 and x64 binaries. Steam does not have to be running to launch this game.<br />
=====Dependencies=====<br />
* {{pkg|glu}}<br />
<br />
====Steel Storm: Burning Retribution====<br />
=====Troubleshooting=====<br />
======Start with black screen======<br />
The game tries to launch in 1024x768 resolution with fullscreen mode by default. It is impossible on some devices.<br />
(for example laptop Samsung Series9 with intel hd4000 video).<br />
<br />
You can launch the game in windowed mode. To do this open game Properties in Steam, in General tab select "Set launch options..." and type "-window".<br />
<br />
Now you can change the resolution in game.<br />
<br />
======No English fonts======<br />
If you use intel video card, just disable S3TC in DriConf.<br />
<br />
====Superbrothers: Sword & Sworcery EP====<br />
=====Dependencies=====<br />
* {{pkg|lib32-glu}}<br />
<br />
====Team Fortress 2 ====<br />
=====Troubleshooting=====<br />
======No audio======<br />
It happens if there is no PulseAudio in your system.<br />
If you want to use [[ALSA]], you need to launch Steam or the game directly with {{ic|1=SDL_AUDIODRIVER=alsa}} <br />
(From [http://steamcommunity.com/app/221410/discussions/0/882966056462819091/#c882966056470753683 SteamCommunity]).<br />
<br />
If it still does not work, you may also need to set the environment variable AUDIODEV. For instance {{ic|1=AUDIODEV=Live}}. Use {{ic|aplay -l}} to list the available sound cards.<br />
<br />
====The Book of Unwritten Tales====<br />
If the game does not start, go to Properties --> Uncheck "Enable Steam Community In-Game".<br />
<br />
The game may segfault upon clicking the Setting menu and possibly during or before gameplay. This is a known problem and you will unfortunately have to wait for a fix from the developer. A workaround (taken from the [http://steamcommunity.com/app/221410/discussions/3/846939071081758230/#p2 steam forums]) is to replace the game's RenderSystem_GL.so with one from debian's repositories. To do that download this [https://launchpad.net/ubuntu/+archive/primary/+files/libogre-1.7.4_1.7.4-3_i386.deb deb file], extract it and replace the following file:<br />
~/.local/share/Steam/SteamApps/common/The Book of Unwritten Tales/lib/32/RenderSystem_GL.so<br />
with the one that comes with the .deb package.<br />
=====Dependencies=====<br />
* {{aur|lib32-libxaw}}<br />
* {{aur|lib32-jasper}}<br />
<br />
====The Clockwork Man====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libidn}}<br />
<br />
====Trine 2====<br />
=====Dependencies=====<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxxf86vm}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|xorg-xwininfo}}<br />
<br />
=====Troubleshooting=====<br />
* If colors are wrong with FOSS drivers (r600g at least), try to run the game in windowed mode, rendering will be corrected. ([https://bugs.freedesktop.org/show_bug.cgi?id=60553 bugreport])<br />
* If sound plays choppy, try to edit {{ic|/etc/openal/alsoft.conf}} with values<br />
<br />
drivers=pulse,alsa<br />
frequency=48000<br />
<br />
* If the game resolution is wrong when using a dual monitor setup and you can't see the whole window edit {{ic|~/.frozenbyte/Trine2/options.txt}} and change the options ForceFullscreenWidth and ForceFullscreenHeight to the resolution of your monitor on which you want to play the game.<br />
<br />
====Unity of Command====<br />
=====Dependencies=====<br />
* {{pkg|lib32-pango}}<br />
<br />
=====Troubleshooting=====<br />
* If squares are shown instead of text, try removing {{ic|$HOME/Steam/SteamApps/common/Unity of Command/bin/libpangoft2-1.0.so.0}}.<br />
<br />
====World of Goo====<br />
=====Changing Resolution=====<br />
* To change the game resolution edit the section "Graphics display" in the configuration file {{ic|$HOME/Steam/SteamApps/common/World of Goo/properties/config.txt}}. For example, see below:<br />
<!-- Graphics display --><br />
<param name="screen_width" value="1680" /><br />
<param name="screen_height" value="1050" /><br />
<param name="color_depth" value="0" /><br />
<param name="fullscreen" value="true" /><br />
<param name="ui_inset" value="10" /><br />
<br />
===Skins for Steam===<br />
<br />
The Steam interface can be fully customized by copying its various interface files in its skins directory and modifying them.<br />
<br />
====Steam Skin Manager====<br />
<br />
The process of applying a skin to Steam can be greatly simplified using {{aur|steam-skin-manager}} from the AUR. The package also comes with a hacked version of the Steam launcher which allows the window manager to draw its borders on the Steam window.<br />
<br />
As a result, skins for Steam will come in two flavors, one with and one without window buttons. The skin manager will prompt you whether you use the hacked version or not, and will automatically apply the theme corresponding to your GTK theme if it is found. You can of course still apply another skin if you want.<br />
<br />
The package ships with two themes for the default Ubuntu themes, Ambiance and Radiance. A Faience theme is under development and already has its own package on the AUR {{aur|steam-skin-faience-git}}.<br />
<br />
== Steam on Wine ==<br />
<br />
Install {{Pkg|wine}} from the official repositories and follow the instructions provided in the [[Wine|article]].<br />
<br />
Install the required Microsoft fonts {{AUR|ttf-microsoft-tahoma}} and {{AUR|ttf-ms-fonts}} from the [[AUR]] or through {{AUR|winetricks-svn}}.<br />
{{Note|If you have access to Windows discs, you may want to install {{AUR|ttf-win7-fonts}} instead.}}<br />
<br />
If you have an old Wine prefix ({{ic|~/.wine}}), you should remove it and let Wine create a new one to avoid problems (you can transfer over anything you want to keep to the new Wine prefix).<br />
<br />
===Installation===<br />
<br />
Download and run the Steam installer from [http://store.steampowered.com/about/ steampowered.com]. It is no longer an {{ic|.exe}} file so you have to start it with {{ic|msiexec}}: <br />
$ msiexec /i SteamInstall.msi<br />
<br />
===Starting Steam===<br />
<br />
On x86:<br />
$ wine ~/.wine/drive_c/Program\ Files/Steam/Steam.exe<br />
<br />
On x86_64 (with steam installed to a clean wine prefix):<br />
$ wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe<br />
<br />
Alternatively, you may use this method:<br />
<br />
$ wine "C:\\Program Files\\Steam\\steam.exe" <br />
<br />
You should consider making an alias to easily start steam (and put it in your shell's rc file), example:<br />
alias steam='wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
<br />
{{Note|If you are using an nvidia card through bumblebee, you should prefix those commands with {{ic|optirun}}.}}<br />
<br />
===Tips===<br />
<br />
====Performance====<br />
<br />
Consider disabling wine debugging output by adding this to your shell rc file:<br />
export WINEDEBUG=-all<br />
or, just add it to your steam alias to only disable it for steam:<br />
alias steam='WINEDEBUG=-all wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
Additionally, Source games rely on a paged pool memory size specification for audio, and WINE by default does not have this set. To set it:<br />
wine reg add "HKLM\\System\\CurrentControlSet\\Control\\Session Manager\\Memory Management\\" /v PagedPoolSize /t REG_DWORD /d 402653184 /f<br />
<br />
==== Application Launch Options ====<br />
Go to "Properties" -> "Set Launch Options", e.g.:<br />
{{bc|-console -dxlevel 90 -width 1280 -height 1024<br />
}}<br />
* {{ic|console}}<br />
Activate the console in the application to change detailed applications settings.<br />
* {{ic|dxlevel}}<br />
Set the application's DirectX level, e.g. 90 for DirectX Version 9.0. It is recommended to use the video card's DirectX version to prevent crashes. See the official Valve Software Wiki http://developer.valvesoftware.com/wiki/DirectX_Versions for details.<br />
* {{ic|width}} and {{ic|height}}<br />
Set the screen resolution. In some cases the graphic settings are not saved in the application and the applications always starts in the default resolution.<br />
Please refer to http://developer.valvesoftware.com/wiki/Launch_options for a complete list of launch options.<br />
<br />
==== Using a Pre-Existing Steam Install ====<br />
<br />
If you have a shared drive with Windows, or already have a Steam installation somewhere else, you can simply symlink the Steam directory to {{ic|~/.wine/drive_c/Program Files/Steam/}} . However, be sure to do '''all''' the previous steps in this wiki. Confirm Steam launches and logs into your account, ''then'' do this:<br />
<br />
cd ~/.wine/drive_c/Program\ Files/ <br />
mv Steam/ Steam.backup/ (or you can just delete the directory)<br />
ln -s /mnt/windows_partition/Program\ Files/Steam/<br />
<br />
{{Note|If you have trouble starting Steam after symlinking the entire Steam folder, try linking only the {{ic|steamapps}} subdirectory in your existing wine steam folder instead.}}<br />
<br />
{{Note|If you still have trouble starting games, use {{ic|sudo mount --bind /path/to/SteamApps ~/.local/share/Steam/SteamApps -ouser&#61;your-user-name }}, this is the only thing that worked for me with {{ic|TF2}}}}<br />
<br />
====Running Steam in a second X Server====<br />
<br />
Assuming you are using the script above to start Steam, make a new script, called {{ic|x.steam.sh}}. You should run this when you want to start Steam in a new X server, and {{ic|steam.sh}} if you want Steam to start in the current X server. <br />
<br />
If due to misconfiguration a black screen is shown, you could always close down the second X server by pressing {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}}.<br />
<br />
{{bc|1=<br />
#!/bin/bash <br />
<br />
DISPLAY=:1.0<br />
<br />
xinit $HOME/steam.sh $* -- :1<br />
}}<br />
<br />
Now you can use {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F7}} to get to your first X server with your normal desktop, and {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F8}} to go back to your game. <br />
<br />
Because the second X server is ''only'' running the game and the first X server with all your programs is backgrounded, performance should increase. In addition, it is much more convenient to switch X servers while in game to access other resources, rather than having to exit the game completely or {{Keypress|Alt}}-{{Keypress|Tab}} out. Finally, it is useful for when Steam or WINE goes haywire and leaves a bunch of processes in memory after Steam crashes. Simply {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}} on the second X server to kill that X and all processes on that desktop will terminate as well. <br />
<br />
'''If you get errors that look like "Xlib: connection to ":1.0" refused by server" when starting the second X''': You will need to adjust your X permissions.<br />
<br />
'''If you lose the ability to use the keyboard while using Steam''': This is an odd bug that does not happen with other games. A solution is to use a WM in the second X as well. Thankfully, you do not need to run a large WM. Openbox and icewm have been confirmed to fix this bug (evilwm, pekwm, lwm ''do not'' work), but the icewm taskbar shows up on the bottom of the game, thus it's recommended to use [[Openbox]]. Install {{Pkg|openbox}} from the [[official repositories]], then add {{Ic|openbox &}} to the top of your {{ic|steam.sh}} file. Note you can run other programs (ex. Teamspeak &) or set X settings (ex. xset, xmodmap) before the WINE call as well.<br />
<br />
====Steam Links in Firefox, Chrome, Etc====<br />
To make steam:// urls in your browser connect with steam in wine, there are several things you can do. One involves making steam url-handler keys in gconf, another involves making protocol files for kde, others involve tinkering with desktop files or the Local State file for chromium. These seem to only work in firefox or under certain desktop configurations. One way to do it that works more globally is using mimeo, a tool made by Xyne (an Arch TU) which follows. For another working and less invasive (but firefox-only) way, see the first post [http://ubuntuforums.org/showthread.php?t=433548 here] .<br />
<br />
* Make {{ic| /usr/bin/steam}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
#!/bin/sh<br />
#<br />
# Steam wrapper script<br />
#<br />
exec wine "c:\\program files\\steam\\steam.exe" "$@"<br />
}}<br />
<br />
* Make it executable.<br />
<br />
# chmod +x /usr/bin/steam<br />
<br />
* Install {{AUR|mimeo}} and {{AUR|xdg-utils-mimeo}} from AUR. You will need to replace the existing {{pkg|xdg-utils}} if installed. In XFCE, you will also need {{pkg|xorg-utils}}.<br />
<br />
* Create {{ic|~/.config/mimeo.conf}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
/usr/bin/steam %u<br />
^steam://<br />
}}<br />
<br />
* Lastly, open {{ic|/usr/bin/xdg-open}} in your favorite editor. Go to the {{ic|detectDE()}} section and change it to look as follows:<br />
<br />
{{bc|<nowiki><br />
detectDE()<br />
{<br />
#if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;<br />
#elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;<br />
#elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;<br />
#elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;<br />
#elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;<br />
#else DE=""<br />
#fi<br />
DE=""<br />
}<br />
</nowiki>}}<br />
<br />
* Restart the browser and you should be good to go. In chromium, you cannot enter a {{ic|steam://}} link in the url box like you can with firefox. The forum link above has a {{ic|steam://open/friends}} link to try if needed.<br />
<br />
{{Note|If you have any problems with file associations after doing this, simply revert to regular xdg-utils and undo your changes to {{ic|/usr/bin/xdg-open}}.}}<br />
{{Note|Those on other distributions that stumble upon this page, see the link above for firefox specific instructions. No easy way to get it working on Chromium on other distros exists.}}<br />
<br />
====No text rendered problem====<br />
If there is no text/font rendered when starting steam you should try to start steam with the parameter {{ic|-no-dwrite}}. Read more in [https://bbs.archlinux.org/viewtopic.php?id=146223 the forum thread about it.]<br />
{{bc|wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe -no-dwrite}}<br />
<br />
== See Also ==<br />
* https://wiki.gentoo.org/wiki/Steam</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=Steam&diff=252624Steam2013-04-01T22:06:27Z<p>Lordheavy: /* Postal 2 */</p>
<hr />
<div>[[Category:Gaming]]<br />
[[Category:Wine]]<br />
[[ja:Steam]]<br />
[[zh-CN:Steam]]<br />
{{Article summary start}}<br />
{{Article summary text|[http://store.steampowered.com/about/ Steam] is a content delivery system made by Valve Software. It is best known as the platform needed to play Source Engine games (e.g. Half-Life 2, Counter-Strike). Today it offers many games from many other developers.}}<br />
<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Wine}}<br />
{{Article summary end}}<br />
<br />
See the [[Wikipedia:Steam (software)|Steam Wikipedia page]] and the page in the [http://appdb.winehq.org/objectManager.php?sClass=version&iId=19444 Wine Application Database] for more info.<br />
<br />
== Native Steam on Linux ==<br />
<br />
{{Note|Arch Linux is not [https://support.steampowered.com/kb_article.php?ref&#61;1504-QHXN-8366 officially supported].}}<br />
<br />
{{Note|If you have a pure 64-bit installation, you will need to enable the [[multilib]] repository in pacman. This is because the Steam client is a 32-bit application. It may also make sense to install multilib-devel to provide some important multilib libraries. You also most likely need to install the 32-bit version of your graphics driver to run Steam.}}<br />
<br />
Install {{Pkg|steam}} from the [[multilib]] repository.<br />
<br />
Steam makes heavy usage of the Arial font. A decent Arial font to use is {{Pkg|ttf-liberation}} or the official Microsoft Arial fonts: {{aur|ttf-microsoft-arial}} or {{aur|ttf-ms-fonts}} packages from the [[AUR]]. Asian languages require {{Pkg|wqy-zenhei}} to display properly.<br />
<br />
Steam is '''not supported''' on this distribution. As such some fixes are needed on the users part to get things functioning properly. Several games have dependencies which may be missing from your system. If a game fails to launch (often without error messages) then make sure all of the libraries listed below that game are installed. Please install {{Pkg|libtxc_dxtn}} and {{Pkg|lib32-libtxc_dxtn}} with mesa drivers as almost all games require it.<br />
<br />
===General troubleshooting===<br />
{{Note|In addition to being documented here, any bug/fix/error should be, if not already, reported on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GitHub page].}}<br />
<br />
{{Note|Connection problems may occur when using DD-WRT with peer-to-peer traffic filtering.}}<br />
<br />
====GUI problems with KDE====<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/594 issue 594]<br />
<br />
If you are using KDE and you have problems with the GUI (such as lag or random crashes) modify the compositing type to OpenGL/Raster. In KDE system settings, go to "Desktop Effects" in the "Workspace Appearance and Behaviour" section. Open the "Advanced" tab. Change "Compositing type" from XRender to OpenGL.<br />
<br />
====The close button only minimizes the window====<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/1025 issue 1025]<br />
<br />
If you have your tray icon working you have the option of making the close button close to tray instead of minimize. To do this, set the environment variable {{ic|STEAM_FRAME_FORCE_CLOSE}} to {{ic|1}}. You can do this by launching Steam using the following command.<br />
$ STEAM_FRAME_FORCE_CLOSE=1 steam<br />
<br />
====Flash not working on 64-bit systems====<br />
: Steam Support [https://support.steampowered.com/kb_article.php?ref=1493-GHZB-7612 article]<br />
<br />
First ensure {{pkg|lib32-flashplugin}} is installed. It should be working at this point, if not create a local Steam flash plugin folder<br />
mkdir ~/.steam/bin32/plugins/<br />
and set a symbolic link to the global lib32 flash plugin file in your upper new folder<br />
ln -s /usr/lib32/mozilla/plugins/libflashplayer.so ~/.steam/bin32/plugins/<br />
<br />
====Text is corrupt or missing====<br />
The Steam Support [https://support.steampowered.com/kb_article.php?ref=1974-YFKL-4947 instructions] for Windows seem to work on Linux also: Simply download [https://support.steampowered.com/downloads/1974-YFKL-4947/SteamFonts.zip SteamFonts.zip] and install them (copying to ~/.fonts/ works at least).<br />
<br />
====Error on some games: S3TC support is missing====<br />
Install the following dependencies:<br />
* {{pkg|libtxc_dxtn}}<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Black screen on (Valve?) games (but audio works)====<br />
Check the Steam stdout/stderr for Error lines, some quick dependencies for reference:<br />
* {{pkg|lib32-intel-dri}} (not confirmed as absolutely necessary)<br />
<br />
run steam from console via primusrun steam<br />
<br />
====SetLocale('en_US.UTF-8') fails at game startup====<br />
Edit /etc/locale.gen in your favourite editor and uncomment the line {{ic|en_US.UTF-8 UTF-8}}. Then run {{ic|locale-gen}} as root.<br />
<br />
=== Game-specific depencencies and troubleshooting ===<br />
{{Note|Steam installs library dependencies of a game to a library directory, but some are missing at the moment. Report bugs involving missing libraries on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GIT page] before adding workarounds here, and then provide a link to the bug so it can be removed as the problems are fixed. Libraries like {{pkg|glu}} and {{pkg|libtxc_dxtn}} are exceptions to this, as they are just part of the implementation of the open drivers.}}<br />
<br />
====Amnesia: The Dark Descent====<br />
=====Dependencies=====<br />
* {{pkg|lib32-freealut}}<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxmu}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
<br />
====And Yet It Moves====<br />
=====Dependencies=====<br />
* {{aur|lib32-libtheora}}<br />
* {{aur|lib32-libjpeg6}}<br />
* {{aur|lib32-libtiff4}}<br />
* {{pkg|lib32-libpng12}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and one of the following messages can be observed on console<br />
readlink: extra operand ‘Yet’<br />
Try 'readlink --help' for more information.<br />
OR<br />
This script must be run as a user with write priviledges to game directory<br />
To fix this, open {{ic|~/.steam/root/SteamApps/common/And Yet It Moves/AndYetItMovesSteam.sh}} in text editor and replace line<br />
ayim_dir="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"<br />
with<br />
ayim_dir="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"<br />
<br />
====Counter-Strike: Source====<br />
=====Troubleshooting=====<br />
======Game crashes upon joining======<br />
If the game is constantly crashing when trying to join a game and in {{ic|~/.steam/root/SteamApps/your@account/Counter Strike Source/hl2.sh}} you have {{ic|1=__GL_THREADED_OPTIMIZATIONS=1}}, try changing it to {{ic|0}}.<br />
<br />
====Crusader Kings II====<br />
Game is installed into {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II}}.<br />
<br />
Game can be started directly, without need of running Steam on background, using command {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II/ck2}}.<br />
<br />
Saves are stored in {{ic|$HOME/Documents/Paradox Interactive/Crusader Kings II/save games/}}.<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
<br />
The default audio driver used by Crusader Kings 2 is for [[PulseAudio]], so an override is necessary:<br />
<br />
{{hc|~/.pam_environment|2=SDL_AUDIODRIVER=alsa}}<br />
<br />
====Defender's Quest: Valley of the Forgotten====<br />
=====Dependencies=====<br />
* {{aur|adobe-air-sdk}}<br />
* {{pkg|xterm}}<br />
<br />
=====Troubleshooting=====<br />
======Game does not start======<br />
* Package {{pkg|adobe-air-sdk}} installs Adobe Air not in the place where the game expects it to be, fix this by creating a simlink (requires root permissions):<br />
{{bc|ln -s /opt/adobe-air-sdk/runtimes/air/linux/Adobe\ AIR /opt/Adobe\ AIR}}<br />
<br />
* Adobe AIR will want to check whether the EULA was accepeted and fail in doing so. To fix it, issue the following commands (from under your user, not under root):<br />
{{bc|mkdir -p ~/.appdata/Adobe/AIR<br />
echo 2 > ~/.appdata/Adobe/AIR/eulaAccepted}}<br />
Note that by issuing these commands you're accepting Adobe Air's EULA.<br />
<br />
====Dwarfs F2P====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libgdiplus}}<br />
<br />
=====Troubleshooting=====<br />
======Game does not start======<br />
There was a bug that stopped Steam from fetching all the needed files. It should be resolved, if you still bump into this problem, try verifying integrity of game cache from game properties, local files tab.<br />
======Game crashes======<br />
In some cases, the game crashes about 2 minutes before the end of every arcade. This bug has been reported, but there's no known solution to it.<br />
<br />
====FTL: Faster than Light====<br />
=====Dependencies=====<br />
Libraries are downloaded and and placed in the game's data directory for both architectures. As long as you run FTL by the launcher script (or via the shortcut in Steam) you should not need to download any further libraries.<br />
<br />
=====Compatibility=====<br />
After installation, FTL may fail to run due to a 'Text file busy' error (characterised in Steam by your portrait border going green then blue again). The easiest way to mend this is to just reboot your system. Upon logging back in FTL should run.<br />
<br />
The Steam overlay in FTL does not function as it is not a 3D accelerated game. Because of this the desktop notifications will be visible. If playing in fullscreen, therefore, these notifications in some systems may steal focus and revert you back to windowed mode with no way of going back to fullscreen without relaunching. The binaries for FTL on Steam have no DRM and it is possible to run the game ''without'' Steam running, so in some cases that may be optimum - just ensure that you launch FTL via the launcher script in {{ic|~/.steam/root/SteamApps/common/FTL Faster than Light/data/}} rather than the FTL binary in the $arch directory.<br />
<br />
=====Problems with open-source video driver=====<br />
FTL may fail to run if you are using an opensource driver for your video card. There are two solutions: install a proprietary video driver or delete (rename if you are unsure) the library "libstdc++.so.6" inside {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/amd64/lib}} This is if you are using a 64bit system, I suppose that in case you are using a 32bit system you have to remove (rename) the same library located into {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/x86/lib}}.<br />
<br />
====Harvest: Massive Encounter====<br />
=====Dependencies=====<br />
* {{pkg|lib32-gtk2}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-openal}}<br />
* {{aur|lib32-nvidia-cg-toolkit}}<br />
* {{aur|lib32-libjpeg6}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and throws you to library installer loop. Just edit {{ic| ~/.steam/root/SteamApps/common/Harvest Massive Encounter/run_harvest}} and remove everything but<br />
#!/bin/bash<br />
exec ./Harvest<br />
<br />
====Killing Floor====<br />
=====Troubleshooting=====<br />
======Screen resolution======<br />
Killing Floor runs pretty much from scratch, although you might have to change in-game resolution screen as the default one is '''800x600''' and a '''4:3''' screen format.<br />
If you try to modify screen resolution in-game, it might crash your desktop enviroment.<br />
To fix this, please set the desired resolution screen size by modifing your {{ic|~/.killingfloor/System/KillingFloor.ini}} with your prefered editor.<br />
{{hc|# nano ~/.killingfloor/System/KillingFloor.ini|<nowiki><br />
...<br />
<br />
[WinDrv.WindowsClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=???<br />
MenuViewportY=???<br />
<br />
...<br />
<br />
[SDLDrv.SDLClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=????<br />
MenuViewportY=????<br />
<br />
...<br />
</nowiki>}}<br />
{{Note|Replace all the '''????''' with the corresponding numbers according the desired resolution. If you have an 1366x768 screen and want to use it at it's fullest, change all the Viewport fields to something like '''ViewportX&#61;1366''' and '''ViewportY&#61;768''' in the corresponding areas.}}<br />
{{Note| The dots in the middle indicate that there are more fields in that .ini file. But for screen resolution troubleshooting, you do not need to modify anything else.}}<br />
<br />
Save the file and restart the game, it should work now.<br />
<br />
======Windowed Mode======<br />
Uncheck fullscreen in the options menu, and use {{Keypress|Ctrl+g}} to stop mouse capturing (that was non-obvious to discover..). This way you can easily minimize it and do other other things..and let your WM handle things.<br />
<br />
====Multiwinia====<br />
=====Dependencies=====<br />
* {{pkg|lib32-openal}}<br />
<br />
Game will not launch without {{pkg|lib32-openal}}.<br />
<br />
====Penumbra: Overture====<br />
=====Dependencies=====<br />
(Taken from {{aur|penumbra-collection}} and {{aur|penumbra-overture-ep1-demo}})<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxft}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
* {{pkg|lib32-sdl_image}}<br />
<br />
=====Troubleshooting=====<br />
======Windowed Mode======<br />
There is no in-game option to change to the windowed mode, you will have to edit {{ic|~/.frictionalgames/Penumbra/Overture/settings.cfg}} to activate it.<br />
Find {{ic|FullScreen&#61;"true"}} and change it to {{ic|FullScreen&#61;"false"}}, after this the game should start in windowed mode.<br />
<br />
====Revenge of the Titans====<br />
=====Dependencies=====<br />
* {{pkg|libxtst}} and {{pkg|lib32-libxtst}}<br />
<br />
====Serious Sam 3: BFE====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}} with mesa drivers<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
Try running:<br />
# pacman -S lib32-alsa-plugins<br />
# mkdir -p /usr/lib/i386-linux-gnu/alsa-lib/<br />
# ln -s /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so /usr/lib/i386-linux-gnu/alsa-lib/<br />
<br />
If that does not work, try tweaking ~/.alsoftrc as proposed by the [http://steamcommunity.com/app/221410/discussions/3/846940248238406974/ Steam community] (Serious Sam 3: BFE uses OpenAL to output sound). If you are not using Pulse Audio, you may want to write the following configuration:<br />
<br />
{{hc|$ nano ~/.alsoftrc|<nowiki><br />
[general]<br />
drivers = alsa<br />
[alsa]<br />
device = default<br />
capture = default<br />
mmap = true<br />
</nowiki>}}<br />
<br />
====Spacechem====<br />
=====Dependencies=====<br />
* {{pkg|lib32-sqlite}}<br />
* {{pkg|lib32-sdl_image}}<br />
* {{aur|lib32-sdl_mixer}}<br />
<br />
=====Troubleshooting=====<br />
======Game crash======<br />
The shipped x86 version of Spacechem does not work on x64 with the game's own libSDL* files, and crashes with some strange output.<br />
<br />
To solve this just remove or move the three files {{ic|libSDL-1.2.so.0}}, {{ic|libSDL_image-1.2.so.0}}, {{ic|libSDL_mixer-1.2.so.0}} from {{ic|~/.steam/root/SteamApps/common/SpaceChem}}<br />
<br />
====Space Pirates and Zombies====<br />
=====Dependencies=====<br />
* {{pkg|lib32-openal}}<br />
=====Troubleshooting=====<br />
======No audio======<br />
Apply the fix documented in Serious Sam 3: BFE above.<br />
<br />
====Splice====<br />
Splice comes with both x86 and x64 binaries. Steam does not have to be running to launch this game.<br />
=====Dependencies=====<br />
* {{pkg|glu}}<br />
<br />
====Steel Storm: Burning Retribution====<br />
=====Troubleshooting=====<br />
======Start with black screen======<br />
The game tries to launch in 1024x768 resolution with fullscreen mode by default. It is impossible on some devices.<br />
(for example laptop Samsung Series9 with intel hd4000 video).<br />
<br />
You can launch the game in windowed mode. To do this open game Properties in Steam, in General tab select "Set launch options..." and type "-window".<br />
<br />
Now you can change the resolution in game.<br />
<br />
======No English fonts======<br />
If you use intel video card, just disable S3TC in DriConf.<br />
<br />
====Superbrothers: Sword & Sworcery EP====<br />
=====Dependencies=====<br />
* {{pkg|lib32-glu}}<br />
<br />
====Team Fortress 2 ====<br />
=====Troubleshooting=====<br />
======No audio======<br />
It happens if there is no PulseAudio in your system.<br />
If you want to use [[ALSA]], you need to launch Steam or the game directly with {{ic|1=SDL_AUDIODRIVER=alsa}} <br />
(From [http://steamcommunity.com/app/221410/discussions/0/882966056462819091/#c882966056470753683 SteamCommunity]).<br />
<br />
If it still does not work, you may also need to set the environment variable AUDIODEV. For instance {{ic|1=AUDIODEV=Live}}. Use {{ic|aplay -l}} to list the available sound cards.<br />
<br />
====The Book of Unwritten Tales====<br />
If the game does not start, go to Properties --> Uncheck "Enable Steam Community In-Game".<br />
<br />
The game may segfault upon clicking the Setting menu and possibly during or before gameplay. This is a known problem and you will unfortunately have to wait for a fix from the developer. A workaround (taken from the [http://steamcommunity.com/app/221410/discussions/3/846939071081758230/#p2 steam forums]) is to replace the game's RenderSystem_GL.so with one from debian's repositories. To do that download this [https://launchpad.net/ubuntu/+archive/primary/+files/libogre-1.7.4_1.7.4-3_i386.deb deb file], extract it and replace the following file:<br />
~/.local/share/Steam/SteamApps/common/The Book of Unwritten Tales/lib/32/RenderSystem_GL.so<br />
with the one that comes with the .deb package.<br />
=====Dependencies=====<br />
* {{aur|lib32-libxaw}}<br />
* {{aur|lib32-jasper}}<br />
<br />
====The Clockwork Man====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libidn}}<br />
<br />
====Trine 2====<br />
=====Dependencies=====<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxxf86vm}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|xorg-xwininfo}}<br />
<br />
=====Troubleshooting=====<br />
* If colors are wrong with FOSS drivers (r600g at least), try to run the game in windowed mode, rendering will be corrected. ([https://bugs.freedesktop.org/show_bug.cgi?id=60553 bugreport])<br />
* If sound plays choppy, try to edit {{ic|/etc/openal/alsoft.conf}} with values<br />
<br />
drivers=pulse,alsa<br />
frequency=48000<br />
<br />
* If the game resolution is wrong when using a dual monitor setup and you can't see the whole window edit {{ic|~/.frozenbyte/Trine2/options.txt}} and change the options ForceFullscreenWidth and ForceFullscreenHeight to the resolution of your monitor on which you want to play the game.<br />
<br />
====Unity of Command====<br />
=====Dependencies=====<br />
* {{pkg|lib32-pango}}<br />
<br />
=====Troubleshooting=====<br />
* If squares are shown instead of text, try removing {{ic|$HOME/Steam/SteamApps/common/Unity of Command/bin/libpangoft2-1.0.so.0}}.<br />
<br />
====World of Goo====<br />
=====Changing Resolution=====<br />
* To change the game resolution edit the section "Graphics display" in the configuration file {{ic|$HOME/Steam/SteamApps/common/World of Goo/properties/config.txt}}. For example, see below:<br />
<!-- Graphics display --><br />
<param name="screen_width" value="1680" /><br />
<param name="screen_height" value="1050" /><br />
<param name="color_depth" value="0" /><br />
<param name="fullscreen" value="true" /><br />
<param name="ui_inset" value="10" /><br />
<br />
===Skins for Steam===<br />
<br />
The Steam interface can be fully customized by copying its various interface files in its skins directory and modifying them.<br />
<br />
====Steam Skin Manager====<br />
<br />
The process of applying a skin to Steam can be greatly simplified using {{aur|steam-skin-manager}} from the AUR. The package also comes with a hacked version of the Steam launcher which allows the window manager to draw its borders on the Steam window.<br />
<br />
As a result, skins for Steam will come in two flavors, one with and one without window buttons. The skin manager will prompt you whether you use the hacked version or not, and will automatically apply the theme corresponding to your GTK theme if it is found. You can of course still apply another skin if you want.<br />
<br />
The package ships with two themes for the default Ubuntu themes, Ambiance and Radiance. A Faience theme is under development and already has its own package on the AUR {{aur|steam-skin-faience-git}}.<br />
<br />
== Steam on Wine ==<br />
<br />
Install {{Pkg|wine}} from the official repositories and follow the instructions provided in the [[Wine|article]].<br />
<br />
Install the required Microsoft fonts {{AUR|ttf-microsoft-tahoma}} and {{AUR|ttf-ms-fonts}} from the [[AUR]] or through {{AUR|winetricks-svn}}.<br />
{{Note|If you have access to Windows discs, you may want to install {{AUR|ttf-win7-fonts}} instead.}}<br />
<br />
If you have an old Wine prefix ({{ic|~/.wine}}), you should remove it and let Wine create a new one to avoid problems (you can transfer over anything you want to keep to the new Wine prefix).<br />
<br />
===Installation===<br />
<br />
Download and run the Steam installer from [http://store.steampowered.com/about/ steampowered.com]. It is no longer an {{ic|.exe}} file so you have to start it with {{ic|msiexec}}: <br />
$ msiexec /i SteamInstall.msi<br />
<br />
===Starting Steam===<br />
<br />
On x86:<br />
$ wine ~/.wine/drive_c/Program\ Files/Steam/Steam.exe<br />
<br />
On x86_64 (with steam installed to a clean wine prefix):<br />
$ wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe<br />
<br />
Alternatively, you may use this method:<br />
<br />
$ wine "C:\\Program Files\\Steam\\steam.exe" <br />
<br />
You should consider making an alias to easily start steam (and put it in your shell's rc file), example:<br />
alias steam='wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
<br />
{{Note|If you are using an nvidia card through bumblebee, you should prefix those commands with {{ic|optirun}}.}}<br />
<br />
===Tips===<br />
<br />
====Performance====<br />
<br />
Consider disabling wine debugging output by adding this to your shell rc file:<br />
export WINEDEBUG=-all<br />
or, just add it to your steam alias to only disable it for steam:<br />
alias steam='WINEDEBUG=-all wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
Additionally, Source games rely on a paged pool memory size specification for audio, and WINE by default does not have this set. To set it:<br />
wine reg add "HKLM\\System\\CurrentControlSet\\Control\\Session Manager\\Memory Management\\" /v PagedPoolSize /t REG_DWORD /d 402653184 /f<br />
<br />
==== Application Launch Options ====<br />
Go to "Properties" -> "Set Launch Options", e.g.:<br />
{{bc|-console -dxlevel 90 -width 1280 -height 1024<br />
}}<br />
* {{ic|console}}<br />
Activate the console in the application to change detailed applications settings.<br />
* {{ic|dxlevel}}<br />
Set the application's DirectX level, e.g. 90 for DirectX Version 9.0. It is recommended to use the video card's DirectX version to prevent crashes. See the official Valve Software Wiki http://developer.valvesoftware.com/wiki/DirectX_Versions for details.<br />
* {{ic|width}} and {{ic|height}}<br />
Set the screen resolution. In some cases the graphic settings are not saved in the application and the applications always starts in the default resolution.<br />
Please refer to http://developer.valvesoftware.com/wiki/Launch_options for a complete list of launch options.<br />
<br />
==== Using a Pre-Existing Steam Install ====<br />
<br />
If you have a shared drive with Windows, or already have a Steam installation somewhere else, you can simply symlink the Steam directory to {{ic|~/.wine/drive_c/Program Files/Steam/}} . However, be sure to do '''all''' the previous steps in this wiki. Confirm Steam launches and logs into your account, ''then'' do this:<br />
<br />
cd ~/.wine/drive_c/Program\ Files/ <br />
mv Steam/ Steam.backup/ (or you can just delete the directory)<br />
ln -s /mnt/windows_partition/Program\ Files/Steam/<br />
<br />
{{Note|If you have trouble starting Steam after symlinking the entire Steam folder, try linking only the {{ic|steamapps}} subdirectory in your existing wine steam folder instead.}}<br />
<br />
{{Note|If you still have trouble starting games, use {{ic|sudo mount --bind /path/to/SteamApps ~/.local/share/Steam/SteamApps -ouser&#61;your-user-name }}, this is the only thing that worked for me with {{ic|TF2}}}}<br />
<br />
====Running Steam in a second X Server====<br />
<br />
Assuming you are using the script above to start Steam, make a new script, called {{ic|x.steam.sh}}. You should run this when you want to start Steam in a new X server, and {{ic|steam.sh}} if you want Steam to start in the current X server. <br />
<br />
If due to misconfiguration a black screen is shown, you could always close down the second X server by pressing {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}}.<br />
<br />
{{bc|1=<br />
#!/bin/bash <br />
<br />
DISPLAY=:1.0<br />
<br />
xinit $HOME/steam.sh $* -- :1<br />
}}<br />
<br />
Now you can use {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F7}} to get to your first X server with your normal desktop, and {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F8}} to go back to your game. <br />
<br />
Because the second X server is ''only'' running the game and the first X server with all your programs is backgrounded, performance should increase. In addition, it is much more convenient to switch X servers while in game to access other resources, rather than having to exit the game completely or {{Keypress|Alt}}-{{Keypress|Tab}} out. Finally, it is useful for when Steam or WINE goes haywire and leaves a bunch of processes in memory after Steam crashes. Simply {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}} on the second X server to kill that X and all processes on that desktop will terminate as well. <br />
<br />
'''If you get errors that look like "Xlib: connection to ":1.0" refused by server" when starting the second X''': You will need to adjust your X permissions.<br />
<br />
'''If you lose the ability to use the keyboard while using Steam''': This is an odd bug that does not happen with other games. A solution is to use a WM in the second X as well. Thankfully, you do not need to run a large WM. Openbox and icewm have been confirmed to fix this bug (evilwm, pekwm, lwm ''do not'' work), but the icewm taskbar shows up on the bottom of the game, thus it's recommended to use [[Openbox]]. Install {{Pkg|openbox}} from the [[official repositories]], then add {{Ic|openbox &}} to the top of your {{ic|steam.sh}} file. Note you can run other programs (ex. Teamspeak &) or set X settings (ex. xset, xmodmap) before the WINE call as well.<br />
<br />
====Steam Links in Firefox, Chrome, Etc====<br />
To make steam:// urls in your browser connect with steam in wine, there are several things you can do. One involves making steam url-handler keys in gconf, another involves making protocol files for kde, others involve tinkering with desktop files or the Local State file for chromium. These seem to only work in firefox or under certain desktop configurations. One way to do it that works more globally is using mimeo, a tool made by Xyne (an Arch TU) which follows. For another working and less invasive (but firefox-only) way, see the first post [http://ubuntuforums.org/showthread.php?t=433548 here] .<br />
<br />
* Make {{ic| /usr/bin/steam}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
#!/bin/sh<br />
#<br />
# Steam wrapper script<br />
#<br />
exec wine "c:\\program files\\steam\\steam.exe" "$@"<br />
}}<br />
<br />
* Make it executable.<br />
<br />
# chmod +x /usr/bin/steam<br />
<br />
* Install {{AUR|mimeo}} and {{AUR|xdg-utils-mimeo}} from AUR. You will need to replace the existing {{pkg|xdg-utils}} if installed. In XFCE, you will also need {{pkg|xorg-utils}}.<br />
<br />
* Create {{ic|~/.config/mimeo.conf}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
/usr/bin/steam %u<br />
^steam://<br />
}}<br />
<br />
* Lastly, open {{ic|/usr/bin/xdg-open}} in your favorite editor. Go to the {{ic|detectDE()}} section and change it to look as follows:<br />
<br />
{{bc|<nowiki><br />
detectDE()<br />
{<br />
#if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;<br />
#elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;<br />
#elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;<br />
#elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;<br />
#elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;<br />
#else DE=""<br />
#fi<br />
DE=""<br />
}<br />
</nowiki>}}<br />
<br />
* Restart the browser and you should be good to go. In chromium, you cannot enter a {{ic|steam://}} link in the url box like you can with firefox. The forum link above has a {{ic|steam://open/friends}} link to try if needed.<br />
<br />
{{Note|If you have any problems with file associations after doing this, simply revert to regular xdg-utils and undo your changes to {{ic|/usr/bin/xdg-open}}.}}<br />
{{Note|Those on other distributions that stumble upon this page, see the link above for firefox specific instructions. No easy way to get it working on Chromium on other distros exists.}}<br />
<br />
====No text rendered problem====<br />
If there is no text/font rendered when starting steam you should try to start steam with the parameter {{ic|-no-dwrite}}. Read more in [https://bbs.archlinux.org/viewtopic.php?id=146223 the forum thread about it.]<br />
{{bc|wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe -no-dwrite}}<br />
<br />
== See Also ==<br />
* https://wiki.gentoo.org/wiki/Steam</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=Steam&diff=252623Steam2013-04-01T22:05:40Z<p>Lordheavy: cleanup dependencies, remove s3tc dependencies as game specific, just check the first paragraph</p>
<hr />
<div>[[Category:Gaming]]<br />
[[Category:Wine]]<br />
[[ja:Steam]]<br />
[[zh-CN:Steam]]<br />
{{Article summary start}}<br />
{{Article summary text|[http://store.steampowered.com/about/ Steam] is a content delivery system made by Valve Software. It is best known as the platform needed to play Source Engine games (e.g. Half-Life 2, Counter-Strike). Today it offers many games from many other developers.}}<br />
<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Wine}}<br />
{{Article summary end}}<br />
<br />
See the [[Wikipedia:Steam (software)|Steam Wikipedia page]] and the page in the [http://appdb.winehq.org/objectManager.php?sClass=version&iId=19444 Wine Application Database] for more info.<br />
<br />
== Native Steam on Linux ==<br />
<br />
{{Note|Arch Linux is not [https://support.steampowered.com/kb_article.php?ref&#61;1504-QHXN-8366 officially supported].}}<br />
<br />
{{Note|If you have a pure 64-bit installation, you will need to enable the [[multilib]] repository in pacman. This is because the Steam client is a 32-bit application. It may also make sense to install multilib-devel to provide some important multilib libraries. You also most likely need to install the 32-bit version of your graphics driver to run Steam.}}<br />
<br />
Install {{Pkg|steam}} from the [[multilib]] repository.<br />
<br />
Steam makes heavy usage of the Arial font. A decent Arial font to use is {{Pkg|ttf-liberation}} or the official Microsoft Arial fonts: {{aur|ttf-microsoft-arial}} or {{aur|ttf-ms-fonts}} packages from the [[AUR]]. Asian languages require {{Pkg|wqy-zenhei}} to display properly.<br />
<br />
Steam is '''not supported''' on this distribution. As such some fixes are needed on the users part to get things functioning properly. Several games have dependencies which may be missing from your system. If a game fails to launch (often without error messages) then make sure all of the libraries listed below that game are installed. Please install {{Pkg|libtxc_dxtn}} and {{Pkg|lib32-libtxc_dxtn}} with mesa drivers as almost all games require it.<br />
<br />
===General troubleshooting===<br />
{{Note|In addition to being documented here, any bug/fix/error should be, if not already, reported on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GitHub page].}}<br />
<br />
{{Note|Connection problems may occur when using DD-WRT with peer-to-peer traffic filtering.}}<br />
<br />
====GUI problems with KDE====<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/594 issue 594]<br />
<br />
If you are using KDE and you have problems with the GUI (such as lag or random crashes) modify the compositing type to OpenGL/Raster. In KDE system settings, go to "Desktop Effects" in the "Workspace Appearance and Behaviour" section. Open the "Advanced" tab. Change "Compositing type" from XRender to OpenGL.<br />
<br />
====The close button only minimizes the window====<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/1025 issue 1025]<br />
<br />
If you have your tray icon working you have the option of making the close button close to tray instead of minimize. To do this, set the environment variable {{ic|STEAM_FRAME_FORCE_CLOSE}} to {{ic|1}}. You can do this by launching Steam using the following command.<br />
$ STEAM_FRAME_FORCE_CLOSE=1 steam<br />
<br />
====Flash not working on 64-bit systems====<br />
: Steam Support [https://support.steampowered.com/kb_article.php?ref=1493-GHZB-7612 article]<br />
<br />
First ensure {{pkg|lib32-flashplugin}} is installed. It should be working at this point, if not create a local Steam flash plugin folder<br />
mkdir ~/.steam/bin32/plugins/<br />
and set a symbolic link to the global lib32 flash plugin file in your upper new folder<br />
ln -s /usr/lib32/mozilla/plugins/libflashplayer.so ~/.steam/bin32/plugins/<br />
<br />
====Text is corrupt or missing====<br />
The Steam Support [https://support.steampowered.com/kb_article.php?ref=1974-YFKL-4947 instructions] for Windows seem to work on Linux also: Simply download [https://support.steampowered.com/downloads/1974-YFKL-4947/SteamFonts.zip SteamFonts.zip] and install them (copying to ~/.fonts/ works at least).<br />
<br />
====Error on some games: S3TC support is missing====<br />
Install the following dependencies:<br />
* {{pkg|libtxc_dxtn}}<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Black screen on (Valve?) games (but audio works)====<br />
Check the Steam stdout/stderr for Error lines, some quick dependencies for reference:<br />
* {{pkg|lib32-intel-dri}} (not confirmed as absolutely necessary)<br />
<br />
run steam from console via primusrun steam<br />
<br />
====SetLocale('en_US.UTF-8') fails at game startup====<br />
Edit /etc/locale.gen in your favourite editor and uncomment the line {{ic|en_US.UTF-8 UTF-8}}. Then run {{ic|locale-gen}} as root.<br />
<br />
=== Game-specific depencencies and troubleshooting ===<br />
{{Note|Steam installs library dependencies of a game to a library directory, but some are missing at the moment. Report bugs involving missing libraries on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GIT page] before adding workarounds here, and then provide a link to the bug so it can be removed as the problems are fixed. Libraries like {{pkg|glu}} and {{pkg|libtxc_dxtn}} are exceptions to this, as they are just part of the implementation of the open drivers.}}<br />
<br />
====Amnesia: The Dark Descent====<br />
=====Dependencies=====<br />
* {{pkg|lib32-freealut}}<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxmu}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
<br />
====And Yet It Moves====<br />
=====Dependencies=====<br />
* {{aur|lib32-libtheora}}<br />
* {{aur|lib32-libjpeg6}}<br />
* {{aur|lib32-libtiff4}}<br />
* {{pkg|lib32-libpng12}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and one of the following messages can be observed on console<br />
readlink: extra operand ‘Yet’<br />
Try 'readlink --help' for more information.<br />
OR<br />
This script must be run as a user with write priviledges to game directory<br />
To fix this, open {{ic|~/.steam/root/SteamApps/common/And Yet It Moves/AndYetItMovesSteam.sh}} in text editor and replace line<br />
ayim_dir="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"<br />
with<br />
ayim_dir="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"<br />
<br />
====Counter-Strike: Source====<br />
=====Troubleshooting=====<br />
======Game crashes upon joining======<br />
If the game is constantly crashing when trying to join a game and in {{ic|~/.steam/root/SteamApps/your@account/Counter Strike Source/hl2.sh}} you have {{ic|1=__GL_THREADED_OPTIMIZATIONS=1}}, try changing it to {{ic|0}}.<br />
<br />
====Crusader Kings II====<br />
Game is installed into {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II}}.<br />
<br />
Game can be started directly, without need of running Steam on background, using command {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II/ck2}}.<br />
<br />
Saves are stored in {{ic|$HOME/Documents/Paradox Interactive/Crusader Kings II/save games/}}.<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
<br />
The default audio driver used by Crusader Kings 2 is for [[PulseAudio]], so an override is necessary:<br />
<br />
{{hc|~/.pam_environment|2=SDL_AUDIODRIVER=alsa}}<br />
<br />
====Defender's Quest: Valley of the Forgotten====<br />
=====Dependencies=====<br />
* {{aur|adobe-air-sdk}}<br />
* {{pkg|xterm}}<br />
<br />
=====Troubleshooting=====<br />
======Game does not start======<br />
* Package {{pkg|adobe-air-sdk}} installs Adobe Air not in the place where the game expects it to be, fix this by creating a simlink (requires root permissions):<br />
{{bc|ln -s /opt/adobe-air-sdk/runtimes/air/linux/Adobe\ AIR /opt/Adobe\ AIR}}<br />
<br />
* Adobe AIR will want to check whether the EULA was accepeted and fail in doing so. To fix it, issue the following commands (from under your user, not under root):<br />
{{bc|mkdir -p ~/.appdata/Adobe/AIR<br />
echo 2 > ~/.appdata/Adobe/AIR/eulaAccepted}}<br />
Note that by issuing these commands you're accepting Adobe Air's EULA.<br />
<br />
====Dwarfs F2P====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libgdiplus}}<br />
<br />
=====Troubleshooting=====<br />
======Game does not start======<br />
There was a bug that stopped Steam from fetching all the needed files. It should be resolved, if you still bump into this problem, try verifying integrity of game cache from game properties, local files tab.<br />
======Game crashes======<br />
In some cases, the game crashes about 2 minutes before the end of every arcade. This bug has been reported, but there's no known solution to it.<br />
<br />
====FTL: Faster than Light====<br />
=====Dependencies=====<br />
Libraries are downloaded and and placed in the game's data directory for both architectures. As long as you run FTL by the launcher script (or via the shortcut in Steam) you should not need to download any further libraries.<br />
<br />
=====Compatibility=====<br />
After installation, FTL may fail to run due to a 'Text file busy' error (characterised in Steam by your portrait border going green then blue again). The easiest way to mend this is to just reboot your system. Upon logging back in FTL should run.<br />
<br />
The Steam overlay in FTL does not function as it is not a 3D accelerated game. Because of this the desktop notifications will be visible. If playing in fullscreen, therefore, these notifications in some systems may steal focus and revert you back to windowed mode with no way of going back to fullscreen without relaunching. The binaries for FTL on Steam have no DRM and it is possible to run the game ''without'' Steam running, so in some cases that may be optimum - just ensure that you launch FTL via the launcher script in {{ic|~/.steam/root/SteamApps/common/FTL Faster than Light/data/}} rather than the FTL binary in the $arch directory.<br />
<br />
=====Problems with open-source video driver=====<br />
FTL may fail to run if you are using an opensource driver for your video card. There are two solutions: install a proprietary video driver or delete (rename if you are unsure) the library "libstdc++.so.6" inside {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/amd64/lib}} This is if you are using a 64bit system, I suppose that in case you are using a 32bit system you have to remove (rename) the same library located into {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/x86/lib}}.<br />
<br />
====Harvest: Massive Encounter====<br />
=====Dependencies=====<br />
* {{pkg|lib32-gtk2}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-openal}}<br />
* {{aur|lib32-nvidia-cg-toolkit}}<br />
* {{aur|lib32-libjpeg6}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and throws you to library installer loop. Just edit {{ic| ~/.steam/root/SteamApps/common/Harvest Massive Encounter/run_harvest}} and remove everything but<br />
#!/bin/bash<br />
exec ./Harvest<br />
<br />
====Killing Floor====<br />
=====Troubleshooting=====<br />
======Screen resolution======<br />
Killing Floor runs pretty much from scratch, although you might have to change in-game resolution screen as the default one is '''800x600''' and a '''4:3''' screen format.<br />
If you try to modify screen resolution in-game, it might crash your desktop enviroment.<br />
To fix this, please set the desired resolution screen size by modifing your {{ic|~/.killingfloor/System/KillingFloor.ini}} with your prefered editor.<br />
{{hc|# nano ~/.killingfloor/System/KillingFloor.ini|<nowiki><br />
...<br />
<br />
[WinDrv.WindowsClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=???<br />
MenuViewportY=???<br />
<br />
...<br />
<br />
[SDLDrv.SDLClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=????<br />
MenuViewportY=????<br />
<br />
...<br />
</nowiki>}}<br />
{{Note|Replace all the '''????''' with the corresponding numbers according the desired resolution. If you have an 1366x768 screen and want to use it at it's fullest, change all the Viewport fields to something like '''ViewportX&#61;1366''' and '''ViewportY&#61;768''' in the corresponding areas.}}<br />
{{Note| The dots in the middle indicate that there are more fields in that .ini file. But for screen resolution troubleshooting, you do not need to modify anything else.}}<br />
<br />
Save the file and restart the game, it should work now.<br />
<br />
======Windowed Mode======<br />
Uncheck fullscreen in the options menu, and use {{Keypress|Ctrl+g}} to stop mouse capturing (that was non-obvious to discover..). This way you can easily minimize it and do other other things..and let your WM handle things.<br />
<br />
====Multiwinia====<br />
=====Dependencies=====<br />
* {{pkg|lib32-openal}}<br />
<br />
Game will not launch without {{pkg|lib32-openal}}.<br />
<br />
====Penumbra: Overture====<br />
=====Dependencies=====<br />
(Taken from {{aur|penumbra-collection}} and {{aur|penumbra-overture-ep1-demo}})<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxft}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
* {{pkg|lib32-sdl_image}}<br />
<br />
=====Troubleshooting=====<br />
======Windowed Mode======<br />
There is no in-game option to change to the windowed mode, you will have to edit {{ic|~/.frictionalgames/Penumbra/Overture/settings.cfg}} to activate it.<br />
Find {{ic|FullScreen&#61;"true"}} and change it to {{ic|FullScreen&#61;"false"}}, after this the game should start in windowed mode.<br />
<br />
====Postal 2====<br />
Postal 2 runs without any additional dependencies.<br />
<br />
====Revenge of the Titans====<br />
=====Dependencies=====<br />
* {{pkg|libxtst}} and {{pkg|lib32-libxtst}}<br />
<br />
====Serious Sam 3: BFE====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}} with mesa drivers<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
Try running:<br />
# pacman -S lib32-alsa-plugins<br />
# mkdir -p /usr/lib/i386-linux-gnu/alsa-lib/<br />
# ln -s /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so /usr/lib/i386-linux-gnu/alsa-lib/<br />
<br />
If that does not work, try tweaking ~/.alsoftrc as proposed by the [http://steamcommunity.com/app/221410/discussions/3/846940248238406974/ Steam community] (Serious Sam 3: BFE uses OpenAL to output sound). If you are not using Pulse Audio, you may want to write the following configuration:<br />
<br />
{{hc|$ nano ~/.alsoftrc|<nowiki><br />
[general]<br />
drivers = alsa<br />
[alsa]<br />
device = default<br />
capture = default<br />
mmap = true<br />
</nowiki>}}<br />
<br />
====Spacechem====<br />
=====Dependencies=====<br />
* {{pkg|lib32-sqlite}}<br />
* {{pkg|lib32-sdl_image}}<br />
* {{aur|lib32-sdl_mixer}}<br />
<br />
=====Troubleshooting=====<br />
======Game crash======<br />
The shipped x86 version of Spacechem does not work on x64 with the game's own libSDL* files, and crashes with some strange output.<br />
<br />
To solve this just remove or move the three files {{ic|libSDL-1.2.so.0}}, {{ic|libSDL_image-1.2.so.0}}, {{ic|libSDL_mixer-1.2.so.0}} from {{ic|~/.steam/root/SteamApps/common/SpaceChem}}<br />
<br />
====Space Pirates and Zombies====<br />
=====Dependencies=====<br />
* {{pkg|lib32-openal}}<br />
=====Troubleshooting=====<br />
======No audio======<br />
Apply the fix documented in Serious Sam 3: BFE above.<br />
<br />
====Splice====<br />
Splice comes with both x86 and x64 binaries. Steam does not have to be running to launch this game.<br />
=====Dependencies=====<br />
* {{pkg|glu}}<br />
<br />
====Steel Storm: Burning Retribution====<br />
=====Troubleshooting=====<br />
======Start with black screen======<br />
The game tries to launch in 1024x768 resolution with fullscreen mode by default. It is impossible on some devices.<br />
(for example laptop Samsung Series9 with intel hd4000 video).<br />
<br />
You can launch the game in windowed mode. To do this open game Properties in Steam, in General tab select "Set launch options..." and type "-window".<br />
<br />
Now you can change the resolution in game.<br />
<br />
======No English fonts======<br />
If you use intel video card, just disable S3TC in DriConf.<br />
<br />
====Superbrothers: Sword & Sworcery EP====<br />
=====Dependencies=====<br />
* {{pkg|lib32-glu}}<br />
<br />
====Team Fortress 2 ====<br />
=====Troubleshooting=====<br />
======No audio======<br />
It happens if there is no PulseAudio in your system.<br />
If you want to use [[ALSA]], you need to launch Steam or the game directly with {{ic|1=SDL_AUDIODRIVER=alsa}} <br />
(From [http://steamcommunity.com/app/221410/discussions/0/882966056462819091/#c882966056470753683 SteamCommunity]).<br />
<br />
If it still does not work, you may also need to set the environment variable AUDIODEV. For instance {{ic|1=AUDIODEV=Live}}. Use {{ic|aplay -l}} to list the available sound cards.<br />
<br />
====The Book of Unwritten Tales====<br />
If the game does not start, go to Properties --> Uncheck "Enable Steam Community In-Game".<br />
<br />
The game may segfault upon clicking the Setting menu and possibly during or before gameplay. This is a known problem and you will unfortunately have to wait for a fix from the developer. A workaround (taken from the [http://steamcommunity.com/app/221410/discussions/3/846939071081758230/#p2 steam forums]) is to replace the game's RenderSystem_GL.so with one from debian's repositories. To do that download this [https://launchpad.net/ubuntu/+archive/primary/+files/libogre-1.7.4_1.7.4-3_i386.deb deb file], extract it and replace the following file:<br />
~/.local/share/Steam/SteamApps/common/The Book of Unwritten Tales/lib/32/RenderSystem_GL.so<br />
with the one that comes with the .deb package.<br />
=====Dependencies=====<br />
* {{aur|lib32-libxaw}}<br />
* {{aur|lib32-jasper}}<br />
<br />
====The Clockwork Man====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libidn}}<br />
<br />
====Trine 2====<br />
=====Dependencies=====<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxxf86vm}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|xorg-xwininfo}}<br />
<br />
=====Troubleshooting=====<br />
* If colors are wrong with FOSS drivers (r600g at least), try to run the game in windowed mode, rendering will be corrected. ([https://bugs.freedesktop.org/show_bug.cgi?id=60553 bugreport])<br />
* If sound plays choppy, try to edit {{ic|/etc/openal/alsoft.conf}} with values<br />
<br />
drivers=pulse,alsa<br />
frequency=48000<br />
<br />
* If the game resolution is wrong when using a dual monitor setup and you can't see the whole window edit {{ic|~/.frozenbyte/Trine2/options.txt}} and change the options ForceFullscreenWidth and ForceFullscreenHeight to the resolution of your monitor on which you want to play the game.<br />
<br />
====Unity of Command====<br />
=====Dependencies=====<br />
* {{pkg|lib32-pango}}<br />
<br />
=====Troubleshooting=====<br />
* If squares are shown instead of text, try removing {{ic|$HOME/Steam/SteamApps/common/Unity of Command/bin/libpangoft2-1.0.so.0}}.<br />
<br />
====World of Goo====<br />
=====Changing Resolution=====<br />
* To change the game resolution edit the section "Graphics display" in the configuration file {{ic|$HOME/Steam/SteamApps/common/World of Goo/properties/config.txt}}. For example, see below:<br />
<!-- Graphics display --><br />
<param name="screen_width" value="1680" /><br />
<param name="screen_height" value="1050" /><br />
<param name="color_depth" value="0" /><br />
<param name="fullscreen" value="true" /><br />
<param name="ui_inset" value="10" /><br />
<br />
===Skins for Steam===<br />
<br />
The Steam interface can be fully customized by copying its various interface files in its skins directory and modifying them.<br />
<br />
====Steam Skin Manager====<br />
<br />
The process of applying a skin to Steam can be greatly simplified using {{aur|steam-skin-manager}} from the AUR. The package also comes with a hacked version of the Steam launcher which allows the window manager to draw its borders on the Steam window.<br />
<br />
As a result, skins for Steam will come in two flavors, one with and one without window buttons. The skin manager will prompt you whether you use the hacked version or not, and will automatically apply the theme corresponding to your GTK theme if it is found. You can of course still apply another skin if you want.<br />
<br />
The package ships with two themes for the default Ubuntu themes, Ambiance and Radiance. A Faience theme is under development and already has its own package on the AUR {{aur|steam-skin-faience-git}}.<br />
<br />
== Steam on Wine ==<br />
<br />
Install {{Pkg|wine}} from the official repositories and follow the instructions provided in the [[Wine|article]].<br />
<br />
Install the required Microsoft fonts {{AUR|ttf-microsoft-tahoma}} and {{AUR|ttf-ms-fonts}} from the [[AUR]] or through {{AUR|winetricks-svn}}.<br />
{{Note|If you have access to Windows discs, you may want to install {{AUR|ttf-win7-fonts}} instead.}}<br />
<br />
If you have an old Wine prefix ({{ic|~/.wine}}), you should remove it and let Wine create a new one to avoid problems (you can transfer over anything you want to keep to the new Wine prefix).<br />
<br />
===Installation===<br />
<br />
Download and run the Steam installer from [http://store.steampowered.com/about/ steampowered.com]. It is no longer an {{ic|.exe}} file so you have to start it with {{ic|msiexec}}: <br />
$ msiexec /i SteamInstall.msi<br />
<br />
===Starting Steam===<br />
<br />
On x86:<br />
$ wine ~/.wine/drive_c/Program\ Files/Steam/Steam.exe<br />
<br />
On x86_64 (with steam installed to a clean wine prefix):<br />
$ wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe<br />
<br />
Alternatively, you may use this method:<br />
<br />
$ wine "C:\\Program Files\\Steam\\steam.exe" <br />
<br />
You should consider making an alias to easily start steam (and put it in your shell's rc file), example:<br />
alias steam='wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
<br />
{{Note|If you are using an nvidia card through bumblebee, you should prefix those commands with {{ic|optirun}}.}}<br />
<br />
===Tips===<br />
<br />
====Performance====<br />
<br />
Consider disabling wine debugging output by adding this to your shell rc file:<br />
export WINEDEBUG=-all<br />
or, just add it to your steam alias to only disable it for steam:<br />
alias steam='WINEDEBUG=-all wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
Additionally, Source games rely on a paged pool memory size specification for audio, and WINE by default does not have this set. To set it:<br />
wine reg add "HKLM\\System\\CurrentControlSet\\Control\\Session Manager\\Memory Management\\" /v PagedPoolSize /t REG_DWORD /d 402653184 /f<br />
<br />
==== Application Launch Options ====<br />
Go to "Properties" -> "Set Launch Options", e.g.:<br />
{{bc|-console -dxlevel 90 -width 1280 -height 1024<br />
}}<br />
* {{ic|console}}<br />
Activate the console in the application to change detailed applications settings.<br />
* {{ic|dxlevel}}<br />
Set the application's DirectX level, e.g. 90 for DirectX Version 9.0. It is recommended to use the video card's DirectX version to prevent crashes. See the official Valve Software Wiki http://developer.valvesoftware.com/wiki/DirectX_Versions for details.<br />
* {{ic|width}} and {{ic|height}}<br />
Set the screen resolution. In some cases the graphic settings are not saved in the application and the applications always starts in the default resolution.<br />
Please refer to http://developer.valvesoftware.com/wiki/Launch_options for a complete list of launch options.<br />
<br />
==== Using a Pre-Existing Steam Install ====<br />
<br />
If you have a shared drive with Windows, or already have a Steam installation somewhere else, you can simply symlink the Steam directory to {{ic|~/.wine/drive_c/Program Files/Steam/}} . However, be sure to do '''all''' the previous steps in this wiki. Confirm Steam launches and logs into your account, ''then'' do this:<br />
<br />
cd ~/.wine/drive_c/Program\ Files/ <br />
mv Steam/ Steam.backup/ (or you can just delete the directory)<br />
ln -s /mnt/windows_partition/Program\ Files/Steam/<br />
<br />
{{Note|If you have trouble starting Steam after symlinking the entire Steam folder, try linking only the {{ic|steamapps}} subdirectory in your existing wine steam folder instead.}}<br />
<br />
{{Note|If you still have trouble starting games, use {{ic|sudo mount --bind /path/to/SteamApps ~/.local/share/Steam/SteamApps -ouser&#61;your-user-name }}, this is the only thing that worked for me with {{ic|TF2}}}}<br />
<br />
====Running Steam in a second X Server====<br />
<br />
Assuming you are using the script above to start Steam, make a new script, called {{ic|x.steam.sh}}. You should run this when you want to start Steam in a new X server, and {{ic|steam.sh}} if you want Steam to start in the current X server. <br />
<br />
If due to misconfiguration a black screen is shown, you could always close down the second X server by pressing {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}}.<br />
<br />
{{bc|1=<br />
#!/bin/bash <br />
<br />
DISPLAY=:1.0<br />
<br />
xinit $HOME/steam.sh $* -- :1<br />
}}<br />
<br />
Now you can use {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F7}} to get to your first X server with your normal desktop, and {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F8}} to go back to your game. <br />
<br />
Because the second X server is ''only'' running the game and the first X server with all your programs is backgrounded, performance should increase. In addition, it is much more convenient to switch X servers while in game to access other resources, rather than having to exit the game completely or {{Keypress|Alt}}-{{Keypress|Tab}} out. Finally, it is useful for when Steam or WINE goes haywire and leaves a bunch of processes in memory after Steam crashes. Simply {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}} on the second X server to kill that X and all processes on that desktop will terminate as well. <br />
<br />
'''If you get errors that look like "Xlib: connection to ":1.0" refused by server" when starting the second X''': You will need to adjust your X permissions.<br />
<br />
'''If you lose the ability to use the keyboard while using Steam''': This is an odd bug that does not happen with other games. A solution is to use a WM in the second X as well. Thankfully, you do not need to run a large WM. Openbox and icewm have been confirmed to fix this bug (evilwm, pekwm, lwm ''do not'' work), but the icewm taskbar shows up on the bottom of the game, thus it's recommended to use [[Openbox]]. Install {{Pkg|openbox}} from the [[official repositories]], then add {{Ic|openbox &}} to the top of your {{ic|steam.sh}} file. Note you can run other programs (ex. Teamspeak &) or set X settings (ex. xset, xmodmap) before the WINE call as well.<br />
<br />
====Steam Links in Firefox, Chrome, Etc====<br />
To make steam:// urls in your browser connect with steam in wine, there are several things you can do. One involves making steam url-handler keys in gconf, another involves making protocol files for kde, others involve tinkering with desktop files or the Local State file for chromium. These seem to only work in firefox or under certain desktop configurations. One way to do it that works more globally is using mimeo, a tool made by Xyne (an Arch TU) which follows. For another working and less invasive (but firefox-only) way, see the first post [http://ubuntuforums.org/showthread.php?t=433548 here] .<br />
<br />
* Make {{ic| /usr/bin/steam}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
#!/bin/sh<br />
#<br />
# Steam wrapper script<br />
#<br />
exec wine "c:\\program files\\steam\\steam.exe" "$@"<br />
}}<br />
<br />
* Make it executable.<br />
<br />
# chmod +x /usr/bin/steam<br />
<br />
* Install {{AUR|mimeo}} and {{AUR|xdg-utils-mimeo}} from AUR. You will need to replace the existing {{pkg|xdg-utils}} if installed. In XFCE, you will also need {{pkg|xorg-utils}}.<br />
<br />
* Create {{ic|~/.config/mimeo.conf}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
/usr/bin/steam %u<br />
^steam://<br />
}}<br />
<br />
* Lastly, open {{ic|/usr/bin/xdg-open}} in your favorite editor. Go to the {{ic|detectDE()}} section and change it to look as follows:<br />
<br />
{{bc|<nowiki><br />
detectDE()<br />
{<br />
#if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;<br />
#elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;<br />
#elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;<br />
#elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;<br />
#elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;<br />
#else DE=""<br />
#fi<br />
DE=""<br />
}<br />
</nowiki>}}<br />
<br />
* Restart the browser and you should be good to go. In chromium, you cannot enter a {{ic|steam://}} link in the url box like you can with firefox. The forum link above has a {{ic|steam://open/friends}} link to try if needed.<br />
<br />
{{Note|If you have any problems with file associations after doing this, simply revert to regular xdg-utils and undo your changes to {{ic|/usr/bin/xdg-open}}.}}<br />
{{Note|Those on other distributions that stumble upon this page, see the link above for firefox specific instructions. No easy way to get it working on Chromium on other distros exists.}}<br />
<br />
====No text rendered problem====<br />
If there is no text/font rendered when starting steam you should try to start steam with the parameter {{ic|-no-dwrite}}. Read more in [https://bbs.archlinux.org/viewtopic.php?id=146223 the forum thread about it.]<br />
{{bc|wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe -no-dwrite}}<br />
<br />
== See Also ==<br />
* https://wiki.gentoo.org/wiki/Steam</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=Steam&diff=252622Steam2013-04-01T21:57:43Z<p>Lordheavy: /* Dependencies */</p>
<hr />
<div>[[Category:Gaming]]<br />
[[Category:Wine]]<br />
[[ja:Steam]]<br />
[[zh-CN:Steam]]<br />
{{Article summary start}}<br />
{{Article summary text|[http://store.steampowered.com/about/ Steam] is a content delivery system made by Valve Software. It is best known as the platform needed to play Source Engine games (e.g. Half-Life 2, Counter-Strike). Today it offers many games from many other developers.}}<br />
<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Wine}}<br />
{{Article summary end}}<br />
<br />
See the [[Wikipedia:Steam (software)|Steam Wikipedia page]] and the page in the [http://appdb.winehq.org/objectManager.php?sClass=version&iId=19444 Wine Application Database] for more info.<br />
<br />
== Native Steam on Linux ==<br />
<br />
{{Note|Arch Linux is not [https://support.steampowered.com/kb_article.php?ref&#61;1504-QHXN-8366 officially supported].}}<br />
<br />
{{Note|If you have a pure 64-bit installation, you will need to enable the [[multilib]] repository in pacman. This is because the Steam client is a 32-bit application. It may also make sense to install multilib-devel to provide some important multilib libraries. You also most likely need to install the 32-bit version of your graphics driver to run Steam.}}<br />
<br />
Install {{Pkg|steam}} from the [[multilib]] repository.<br />
<br />
Steam makes heavy usage of the Arial font. A decent Arial font to use is {{Pkg|ttf-liberation}} or the official Microsoft Arial fonts: {{aur|ttf-microsoft-arial}} or {{aur|ttf-ms-fonts}} packages from the [[AUR]]. Asian languages require {{Pkg|wqy-zenhei}} to display properly.<br />
<br />
Steam is '''not supported''' on this distribution. As such some fixes are needed on the users part to get things functioning properly. Several games have dependencies which may be missing from your system. If a game fails to launch (often without error messages) then make sure all of the libraries listed below that game are installed. Please install {{Pkg|libtxc_dxtn}} and {{Pkg|lib32-libtxc_dxtn}} as almost all games require it.<br />
<br />
===General troubleshooting===<br />
{{Note|In addition to being documented here, any bug/fix/error should be, if not already, reported on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GitHub page].}}<br />
<br />
{{Note|Connection problems may occur when using DD-WRT with peer-to-peer traffic filtering.}}<br />
<br />
====GUI problems with KDE====<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/594 issue 594]<br />
<br />
If you are using KDE and you have problems with the GUI (such as lag or random crashes) modify the compositing type to OpenGL/Raster. In KDE system settings, go to "Desktop Effects" in the "Workspace Appearance and Behaviour" section. Open the "Advanced" tab. Change "Compositing type" from XRender to OpenGL.<br />
<br />
====The close button only minimizes the window====<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/1025 issue 1025]<br />
<br />
If you have your tray icon working you have the option of making the close button close to tray instead of minimize. To do this, set the environment variable {{ic|STEAM_FRAME_FORCE_CLOSE}} to {{ic|1}}. You can do this by launching Steam using the following command.<br />
$ STEAM_FRAME_FORCE_CLOSE=1 steam<br />
<br />
====Flash not working on 64-bit systems====<br />
: Steam Support [https://support.steampowered.com/kb_article.php?ref=1493-GHZB-7612 article]<br />
<br />
First ensure {{pkg|lib32-flashplugin}} is installed. It should be working at this point, if not create a local Steam flash plugin folder<br />
mkdir ~/.steam/bin32/plugins/<br />
and set a symbolic link to the global lib32 flash plugin file in your upper new folder<br />
ln -s /usr/lib32/mozilla/plugins/libflashplayer.so ~/.steam/bin32/plugins/<br />
<br />
====Text is corrupt or missing====<br />
The Steam Support [https://support.steampowered.com/kb_article.php?ref=1974-YFKL-4947 instructions] for Windows seem to work on Linux also: Simply download [https://support.steampowered.com/downloads/1974-YFKL-4947/SteamFonts.zip SteamFonts.zip] and install them (copying to ~/.fonts/ works at least).<br />
<br />
====Error on some games: S3TC support is missing====<br />
Install the following dependencies:<br />
* {{pkg|libtxc_dxtn}}<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Black screen on (Valve?) games (but audio works)====<br />
Check the Steam stdout/stderr for Error lines, some quick dependencies for reference:<br />
* {{pkg|lib32-intel-dri}} (not confirmed as absolutely necessary)<br />
<br />
run steam from console via primusrun steam<br />
<br />
====SetLocale('en_US.UTF-8') fails at game startup====<br />
Edit /etc/locale.gen in your favourite editor and uncomment the line {{ic|en_US.UTF-8 UTF-8}}. Then run {{ic|locale-gen}} as root.<br />
<br />
=== Game-specific depencencies and troubleshooting ===<br />
{{Note|Steam installs library dependencies of a game to a library directory, but some are missing at the moment. Report bugs involving missing libraries on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GIT page] before adding workarounds here, and then provide a link to the bug so it can be removed as the problems are fixed. Libraries like {{pkg|glu}} and {{pkg|libtxc_dxtn}} are exceptions to this, as they are just part of the implementation of the open drivers.}}<br />
<br />
====Amnesia: The Dark Descent====<br />
=====Dependencies=====<br />
* {{pkg|lib32-freealut}}<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxmu}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
<br />
=====Troubleshooting=====<br />
======Segfault======<br />
If you are using open source drivers you will need {{pkg|lib32-libtxc_dxtn}} . See [http://www.frictionalgames.com/forum/thread-10924.html official forum] for details<br />
<br />
====And Yet It Moves====<br />
=====Dependencies=====<br />
* {{aur|lib32-libtheora}}<br />
* {{aur|lib32-libjpeg6}}<br />
* {{aur|lib32-libtiff4}}<br />
* {{pkg|lib32-libpng12}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and one of the following messages can be observed on console<br />
readlink: extra operand ‘Yet’<br />
Try 'readlink --help' for more information.<br />
OR<br />
This script must be run as a user with write priviledges to game directory<br />
To fix this, open {{ic|~/.steam/root/SteamApps/common/And Yet It Moves/AndYetItMovesSteam.sh}} in text editor and replace line<br />
ayim_dir="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"<br />
with<br />
ayim_dir="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"<br />
<br />
====Bastion====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}} with mesa drivers<br />
<br />
====Counter-Strike: Source====<br />
=====Troubleshooting=====<br />
======Game crashes upon joining======<br />
If the game is constantly crashing when trying to join a game and in {{ic|~/.steam/root/SteamApps/your@account/Counter Strike Source/hl2.sh}} you have {{ic|1=__GL_THREADED_OPTIMIZATIONS=1}}, try changing it to {{ic|0}}.<br />
<br />
====Crusader Kings II====<br />
Game is installed into {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II}}.<br />
<br />
Game can be started directly, without need of running Steam on background, using command {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II/ck2}}.<br />
<br />
Saves are stored in {{ic|$HOME/Documents/Paradox Interactive/Crusader Kings II/save games/}}.<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
<br />
The default audio driver used by Crusader Kings 2 is for [[PulseAudio]], so an override is necessary:<br />
<br />
{{hc|~/.pam_environment|2=SDL_AUDIODRIVER=alsa}}<br />
<br />
====Defender's Quest: Valley of the Forgotten====<br />
=====Dependencies=====<br />
* {{aur|adobe-air-sdk}}<br />
* {{pkg|xterm}}<br />
<br />
=====Troubleshooting=====<br />
======Game does not start======<br />
* Package {{pkg|adobe-air-sdk}} installs Adobe Air not in the place where the game expects it to be, fix this by creating a simlink (requires root permissions):<br />
{{bc|ln -s /opt/adobe-air-sdk/runtimes/air/linux/Adobe\ AIR /opt/Adobe\ AIR}}<br />
<br />
* Adobe AIR will want to check whether the EULA was accepeted and fail in doing so. To fix it, issue the following commands (from under your user, not under root):<br />
{{bc|mkdir -p ~/.appdata/Adobe/AIR<br />
echo 2 > ~/.appdata/Adobe/AIR/eulaAccepted}}<br />
Note that by issuing these commands you're accepting Adobe Air's EULA.<br />
<br />
====Dwarfs F2P====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libgdiplus}}<br />
<br />
=====Troubleshooting=====<br />
======Game does not start======<br />
There was a bug that stopped Steam from fetching all the needed files. It should be resolved, if you still bump into this problem, try verifying integrity of game cache from game properties, local files tab.<br />
======Game crashes======<br />
In some cases, the game crashes about 2 minutes before the end of every arcade. This bug has been reported, but there's no known solution to it.<br />
<br />
====FTL: Faster than Light====<br />
=====Dependencies=====<br />
Libraries are downloaded and and placed in the game's data directory for both architectures. As long as you run FTL by the launcher script (or via the shortcut in Steam) you should not need to download any further libraries.<br />
<br />
=====Compatibility=====<br />
After installation, FTL may fail to run due to a 'Text file busy' error (characterised in Steam by your portrait border going green then blue again). The easiest way to mend this is to just reboot your system. Upon logging back in FTL should run.<br />
<br />
The Steam overlay in FTL does not function as it is not a 3D accelerated game. Because of this the desktop notifications will be visible. If playing in fullscreen, therefore, these notifications in some systems may steal focus and revert you back to windowed mode with no way of going back to fullscreen without relaunching. The binaries for FTL on Steam have no DRM and it is possible to run the game ''without'' Steam running, so in some cases that may be optimum - just ensure that you launch FTL via the launcher script in {{ic|~/.steam/root/SteamApps/common/FTL Faster than Light/data/}} rather than the FTL binary in the $arch directory.<br />
<br />
=====Problems with open-source video driver=====<br />
FTL may fail to run if you are using an opensource driver for your video card. There are two solutions: install a proprietary video driver or delete (rename if you are unsure) the library "libstdc++.so.6" inside {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/amd64/lib}} This is if you are using a 64bit system, I suppose that in case you are using a 32bit system you have to remove (rename) the same library located into {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/x86/lib}}.<br />
<br />
====Harvest: Massive Encounter====<br />
=====Dependencies=====<br />
* {{pkg|lib32-gtk2}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-openal}}<br />
* {{aur|lib32-nvidia-cg-toolkit}}<br />
* {{aur|lib32-libjpeg6}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and throws you to library installer loop. Just edit {{ic| ~/.steam/root/SteamApps/common/Harvest Massive Encounter/run_harvest}} and remove everything but<br />
#!/bin/bash<br />
exec ./Harvest<br />
<br />
====Killing Floor====<br />
=====Troubleshooting=====<br />
======Screen resolution======<br />
Killing Floor runs pretty much from scratch, although you might have to change in-game resolution screen as the default one is '''800x600''' and a '''4:3''' screen format.<br />
If you try to modify screen resolution in-game, it might crash your desktop enviroment.<br />
To fix this, please set the desired resolution screen size by modifing your {{ic|~/.killingfloor/System/KillingFloor.ini}} with your prefered editor.<br />
{{hc|# nano ~/.killingfloor/System/KillingFloor.ini|<nowiki><br />
...<br />
<br />
[WinDrv.WindowsClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=???<br />
MenuViewportY=???<br />
<br />
...<br />
<br />
[SDLDrv.SDLClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=????<br />
MenuViewportY=????<br />
<br />
...<br />
</nowiki>}}<br />
{{Note|Replace all the '''????''' with the corresponding numbers according the desired resolution. If you have an 1366x768 screen and want to use it at it's fullest, change all the Viewport fields to something like '''ViewportX&#61;1366''' and '''ViewportY&#61;768''' in the corresponding areas.}}<br />
{{Note| The dots in the middle indicate that there are more fields in that .ini file. But for screen resolution troubleshooting, you do not need to modify anything else.}}<br />
<br />
Save the file and restart the game, it should work now.<br />
<br />
======Windowed Mode======<br />
Uncheck fullscreen in the options menu, and use {{Keypress|Ctrl+g}} to stop mouse capturing (that was non-obvious to discover..). This way you can easily minimize it and do other other things..and let your WM handle things.<br />
<br />
====Multiwinia====<br />
=====Dependencies=====<br />
* {{pkg|lib32-openal}}<br />
<br />
Game will not launch without {{pkg|lib32-openal}}.<br />
<br />
====Penumbra: Overture====<br />
=====Dependencies=====<br />
(Taken from {{aur|penumbra-collection}} and {{aur|penumbra-overture-ep1-demo}})<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxft}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
* {{pkg|lib32-sdl_image}}<br />
<br />
=====Troubleshooting=====<br />
======Windowed Mode======<br />
There is no in-game option to change to the windowed mode, you will have to edit {{ic|~/.frictionalgames/Penumbra/Overture/settings.cfg}} to activate it.<br />
Find {{ic|FullScreen&#61;"true"}} and change it to {{ic|FullScreen&#61;"false"}}, after this the game should start in windowed mode.<br />
<br />
====Postal 2====<br />
Postal 2 runs without any additional dependencies.<br />
<br />
====Psychonauts====<br />
=====Dependencies=====<br />
* {{pkg|libtxc_dxtn}} and {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Revenge of the Titans====<br />
=====Dependencies=====<br />
* {{pkg|libxtst}} and {{pkg|lib32-libxtst}}<br />
<br />
====Serious Sam 3: BFE====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}} with mesa drivers<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
Try running:<br />
# pacman -S lib32-alsa-plugins<br />
# mkdir -p /usr/lib/i386-linux-gnu/alsa-lib/<br />
# ln -s /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so /usr/lib/i386-linux-gnu/alsa-lib/<br />
<br />
If that does not work, try tweaking ~/.alsoftrc as proposed by the [http://steamcommunity.com/app/221410/discussions/3/846940248238406974/ Steam community] (Serious Sam 3: BFE uses OpenAL to output sound). If you are not using Pulse Audio, you may want to write the following configuration:<br />
<br />
{{hc|$ nano ~/.alsoftrc|<nowiki><br />
[general]<br />
drivers = alsa<br />
[alsa]<br />
device = default<br />
capture = default<br />
mmap = true<br />
</nowiki>}}<br />
<br />
====Spacechem====<br />
=====Dependencies=====<br />
* {{pkg|lib32-sqlite}}<br />
* {{pkg|lib32-sdl_image}}<br />
* {{aur|lib32-sdl_mixer}}<br />
<br />
=====Troubleshooting=====<br />
======Game crash======<br />
The shipped x86 version of Spacechem does not work on x64 with the game's own libSDL* files, and crashes with some strange output.<br />
<br />
To solve this just remove or move the three files {{ic|libSDL-1.2.so.0}}, {{ic|libSDL_image-1.2.so.0}}, {{ic|libSDL_mixer-1.2.so.0}} from {{ic|~/.steam/root/SteamApps/common/SpaceChem}}<br />
<br />
====Space Pirates and Zombies====<br />
=====Dependencies=====<br />
* {{pkg|lib32-openal}}<br />
=====Troubleshooting=====<br />
======No audio======<br />
Apply the fix documented in Serious Sam 3: BFE above.<br />
<br />
====Splice====<br />
Splice comes with both x86 and x64 binaries. Steam does not have to be running to launch this game.<br />
=====Dependencies=====<br />
* {{pkg|glu}}<br />
* {{pkg|mono}}<br />
<br />
====Steel Storm: Burning Retribution====<br />
=====Troubleshooting=====<br />
======Start with black screen======<br />
The game tries to launch in 1024x768 resolution with fullscreen mode by default. It is impossible on some devices.<br />
(for example laptop Samsung Series9 with intel hd4000 video).<br />
<br />
You can launch the game in windowed mode. To do this open game Properties in Steam, in General tab select "Set launch options..." and type "-window".<br />
<br />
Now you can change the resolution in game.<br />
<br />
======No English fonts======<br />
If you use intel video card, just disable S3TC in DriConf.<br />
<br />
====Superbrothers: Sword & Sworcery EP====<br />
=====Dependencies=====<br />
* {{pkg|lib32-glu}}<br />
<br />
====Team Fortress 2 ====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
It happens if there is no PulseAudio in your system.<br />
If you want to use [[ALSA]], you need to launch Steam or the game directly with {{ic|1=SDL_AUDIODRIVER=alsa}} <br />
(From [http://steamcommunity.com/app/221410/discussions/0/882966056462819091/#c882966056470753683 SteamCommunity]).<br />
<br />
If it still does not work, you may also need to set the environment variable AUDIODEV. For instance {{ic|1=AUDIODEV=Live}}. Use {{ic|aplay -l}} to list the available sound cards.<br />
<br />
====The Book of Unwritten Tales====<br />
If the game does not start, go to Properties --> Uncheck "Enable Steam Community In-Game".<br />
<br />
The game may segfault upon clicking the Setting menu and possibly during or before gameplay. This is a known problem and you will unfortunately have to wait for a fix from the developer. A workaround (taken from the [http://steamcommunity.com/app/221410/discussions/3/846939071081758230/#p2 steam forums]) is to replace the game's RenderSystem_GL.so with one from debian's repositories. To do that download this [https://launchpad.net/ubuntu/+archive/primary/+files/libogre-1.7.4_1.7.4-3_i386.deb deb file], extract it and replace the following file:<br />
~/.local/share/Steam/SteamApps/common/The Book of Unwritten Tales/lib/32/RenderSystem_GL.so<br />
with the one that comes with the .deb package.<br />
=====Dependencies=====<br />
* {{aur|lib32-libxaw}}<br />
* {{aur|lib32-jasper}}<br />
<br />
====The Clockwork Man====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libidn}}<br />
<br />
====Trine 2====<br />
=====Dependencies=====<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxxf86vm}}<br />
* {{pkg|lib32-libdrm}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|lib32-mesa}}<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
* {{pkg|xorg-xwininfo}}<br />
<br />
=====Troubleshooting=====<br />
* If colors are wrong with FOSS drivers (r600g at least), try to run the game in windowed mode, rendering will be corrected. ([https://bugs.freedesktop.org/show_bug.cgi?id=60553 bugreport])<br />
* If sound plays choppy, try to edit {{ic|/etc/openal/alsoft.conf}} with values<br />
<br />
drivers=pulse,alsa<br />
frequency=48000<br />
<br />
* If the game resolution is wrong when using a dual monitor setup and you can't see the whole window edit {{ic|~/.frozenbyte/Trine2/options.txt}} and change the options ForceFullscreenWidth and ForceFullscreenHeight to the resolution of your monitor on which you want to play the game.<br />
<br />
====Unity of Command====<br />
=====Dependencies=====<br />
* {{pkg|lib32-pango}}<br />
<br />
=====Troubleshooting=====<br />
* If squares are shown instead of text, try removing {{ic|$HOME/Steam/SteamApps/common/Unity of Command/bin/libpangoft2-1.0.so.0}}.<br />
<br />
====World of Goo====<br />
=====Changing Resolution=====<br />
* To change the game resolution edit the section "Graphics display" in the configuration file {{ic|$HOME/Steam/SteamApps/common/World of Goo/properties/config.txt}}. For example, see below:<br />
<!-- Graphics display --><br />
<param name="screen_width" value="1680" /><br />
<param name="screen_height" value="1050" /><br />
<param name="color_depth" value="0" /><br />
<param name="fullscreen" value="true" /><br />
<param name="ui_inset" value="10" /><br />
<br />
===Skins for Steam===<br />
<br />
The Steam interface can be fully customized by copying its various interface files in its skins directory and modifying them.<br />
<br />
====Steam Skin Manager====<br />
<br />
The process of applying a skin to Steam can be greatly simplified using {{aur|steam-skin-manager}} from the AUR. The package also comes with a hacked version of the Steam launcher which allows the window manager to draw its borders on the Steam window.<br />
<br />
As a result, skins for Steam will come in two flavors, one with and one without window buttons. The skin manager will prompt you whether you use the hacked version or not, and will automatically apply the theme corresponding to your GTK theme if it is found. You can of course still apply another skin if you want.<br />
<br />
The package ships with two themes for the default Ubuntu themes, Ambiance and Radiance. A Faience theme is under development and already has its own package on the AUR {{aur|steam-skin-faience-git}}.<br />
<br />
== Steam on Wine ==<br />
<br />
Install {{Pkg|wine}} from the official repositories and follow the instructions provided in the [[Wine|article]].<br />
<br />
Install the required Microsoft fonts {{AUR|ttf-microsoft-tahoma}} and {{AUR|ttf-ms-fonts}} from the [[AUR]] or through {{AUR|winetricks-svn}}.<br />
{{Note|If you have access to Windows discs, you may want to install {{AUR|ttf-win7-fonts}} instead.}}<br />
<br />
If you have an old Wine prefix ({{ic|~/.wine}}), you should remove it and let Wine create a new one to avoid problems (you can transfer over anything you want to keep to the new Wine prefix).<br />
<br />
===Installation===<br />
<br />
Download and run the Steam installer from [http://store.steampowered.com/about/ steampowered.com]. It is no longer an {{ic|.exe}} file so you have to start it with {{ic|msiexec}}: <br />
$ msiexec /i SteamInstall.msi<br />
<br />
===Starting Steam===<br />
<br />
On x86:<br />
$ wine ~/.wine/drive_c/Program\ Files/Steam/Steam.exe<br />
<br />
On x86_64 (with steam installed to a clean wine prefix):<br />
$ wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe<br />
<br />
Alternatively, you may use this method:<br />
<br />
$ wine "C:\\Program Files\\Steam\\steam.exe" <br />
<br />
You should consider making an alias to easily start steam (and put it in your shell's rc file), example:<br />
alias steam='wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
<br />
{{Note|If you are using an nvidia card through bumblebee, you should prefix those commands with {{ic|optirun}}.}}<br />
<br />
===Tips===<br />
<br />
====Performance====<br />
<br />
Consider disabling wine debugging output by adding this to your shell rc file:<br />
export WINEDEBUG=-all<br />
or, just add it to your steam alias to only disable it for steam:<br />
alias steam='WINEDEBUG=-all wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
Additionally, Source games rely on a paged pool memory size specification for audio, and WINE by default does not have this set. To set it:<br />
wine reg add "HKLM\\System\\CurrentControlSet\\Control\\Session Manager\\Memory Management\\" /v PagedPoolSize /t REG_DWORD /d 402653184 /f<br />
<br />
==== Application Launch Options ====<br />
Go to "Properties" -> "Set Launch Options", e.g.:<br />
{{bc|-console -dxlevel 90 -width 1280 -height 1024<br />
}}<br />
* {{ic|console}}<br />
Activate the console in the application to change detailed applications settings.<br />
* {{ic|dxlevel}}<br />
Set the application's DirectX level, e.g. 90 for DirectX Version 9.0. It is recommended to use the video card's DirectX version to prevent crashes. See the official Valve Software Wiki http://developer.valvesoftware.com/wiki/DirectX_Versions for details.<br />
* {{ic|width}} and {{ic|height}}<br />
Set the screen resolution. In some cases the graphic settings are not saved in the application and the applications always starts in the default resolution.<br />
Please refer to http://developer.valvesoftware.com/wiki/Launch_options for a complete list of launch options.<br />
<br />
==== Using a Pre-Existing Steam Install ====<br />
<br />
If you have a shared drive with Windows, or already have a Steam installation somewhere else, you can simply symlink the Steam directory to {{ic|~/.wine/drive_c/Program Files/Steam/}} . However, be sure to do '''all''' the previous steps in this wiki. Confirm Steam launches and logs into your account, ''then'' do this:<br />
<br />
cd ~/.wine/drive_c/Program\ Files/ <br />
mv Steam/ Steam.backup/ (or you can just delete the directory)<br />
ln -s /mnt/windows_partition/Program\ Files/Steam/<br />
<br />
{{Note|If you have trouble starting Steam after symlinking the entire Steam folder, try linking only the {{ic|steamapps}} subdirectory in your existing wine steam folder instead.}}<br />
<br />
{{Note|If you still have trouble starting games, use {{ic|sudo mount --bind /path/to/SteamApps ~/.local/share/Steam/SteamApps -ouser&#61;your-user-name }}, this is the only thing that worked for me with {{ic|TF2}}}}<br />
<br />
====Running Steam in a second X Server====<br />
<br />
Assuming you are using the script above to start Steam, make a new script, called {{ic|x.steam.sh}}. You should run this when you want to start Steam in a new X server, and {{ic|steam.sh}} if you want Steam to start in the current X server. <br />
<br />
If due to misconfiguration a black screen is shown, you could always close down the second X server by pressing {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}}.<br />
<br />
{{bc|1=<br />
#!/bin/bash <br />
<br />
DISPLAY=:1.0<br />
<br />
xinit $HOME/steam.sh $* -- :1<br />
}}<br />
<br />
Now you can use {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F7}} to get to your first X server with your normal desktop, and {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F8}} to go back to your game. <br />
<br />
Because the second X server is ''only'' running the game and the first X server with all your programs is backgrounded, performance should increase. In addition, it is much more convenient to switch X servers while in game to access other resources, rather than having to exit the game completely or {{Keypress|Alt}}-{{Keypress|Tab}} out. Finally, it is useful for when Steam or WINE goes haywire and leaves a bunch of processes in memory after Steam crashes. Simply {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}} on the second X server to kill that X and all processes on that desktop will terminate as well. <br />
<br />
'''If you get errors that look like "Xlib: connection to ":1.0" refused by server" when starting the second X''': You will need to adjust your X permissions.<br />
<br />
'''If you lose the ability to use the keyboard while using Steam''': This is an odd bug that does not happen with other games. A solution is to use a WM in the second X as well. Thankfully, you do not need to run a large WM. Openbox and icewm have been confirmed to fix this bug (evilwm, pekwm, lwm ''do not'' work), but the icewm taskbar shows up on the bottom of the game, thus it's recommended to use [[Openbox]]. Install {{Pkg|openbox}} from the [[official repositories]], then add {{Ic|openbox &}} to the top of your {{ic|steam.sh}} file. Note you can run other programs (ex. Teamspeak &) or set X settings (ex. xset, xmodmap) before the WINE call as well.<br />
<br />
====Steam Links in Firefox, Chrome, Etc====<br />
To make steam:// urls in your browser connect with steam in wine, there are several things you can do. One involves making steam url-handler keys in gconf, another involves making protocol files for kde, others involve tinkering with desktop files or the Local State file for chromium. These seem to only work in firefox or under certain desktop configurations. One way to do it that works more globally is using mimeo, a tool made by Xyne (an Arch TU) which follows. For another working and less invasive (but firefox-only) way, see the first post [http://ubuntuforums.org/showthread.php?t=433548 here] .<br />
<br />
* Make {{ic| /usr/bin/steam}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
#!/bin/sh<br />
#<br />
# Steam wrapper script<br />
#<br />
exec wine "c:\\program files\\steam\\steam.exe" "$@"<br />
}}<br />
<br />
* Make it executable.<br />
<br />
# chmod +x /usr/bin/steam<br />
<br />
* Install {{AUR|mimeo}} and {{AUR|xdg-utils-mimeo}} from AUR. You will need to replace the existing {{pkg|xdg-utils}} if installed. In XFCE, you will also need {{pkg|xorg-utils}}.<br />
<br />
* Create {{ic|~/.config/mimeo.conf}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
/usr/bin/steam %u<br />
^steam://<br />
}}<br />
<br />
* Lastly, open {{ic|/usr/bin/xdg-open}} in your favorite editor. Go to the {{ic|detectDE()}} section and change it to look as follows:<br />
<br />
{{bc|<nowiki><br />
detectDE()<br />
{<br />
#if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;<br />
#elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;<br />
#elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;<br />
#elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;<br />
#elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;<br />
#else DE=""<br />
#fi<br />
DE=""<br />
}<br />
</nowiki>}}<br />
<br />
* Restart the browser and you should be good to go. In chromium, you cannot enter a {{ic|steam://}} link in the url box like you can with firefox. The forum link above has a {{ic|steam://open/friends}} link to try if needed.<br />
<br />
{{Note|If you have any problems with file associations after doing this, simply revert to regular xdg-utils and undo your changes to {{ic|/usr/bin/xdg-open}}.}}<br />
{{Note|Those on other distributions that stumble upon this page, see the link above for firefox specific instructions. No easy way to get it working on Chromium on other distros exists.}}<br />
<br />
====No text rendered problem====<br />
If there is no text/font rendered when starting steam you should try to start steam with the parameter {{ic|-no-dwrite}}. Read more in [https://bbs.archlinux.org/viewtopic.php?id=146223 the forum thread about it.]<br />
{{bc|wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe -no-dwrite}}<br />
<br />
== See Also ==<br />
* https://wiki.gentoo.org/wiki/Steam</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=Steam&diff=252621Steam2013-04-01T21:57:20Z<p>Lordheavy: /* Dependencies */</p>
<hr />
<div>[[Category:Gaming]]<br />
[[Category:Wine]]<br />
[[ja:Steam]]<br />
[[zh-CN:Steam]]<br />
{{Article summary start}}<br />
{{Article summary text|[http://store.steampowered.com/about/ Steam] is a content delivery system made by Valve Software. It is best known as the platform needed to play Source Engine games (e.g. Half-Life 2, Counter-Strike). Today it offers many games from many other developers.}}<br />
<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Wine}}<br />
{{Article summary end}}<br />
<br />
See the [[Wikipedia:Steam (software)|Steam Wikipedia page]] and the page in the [http://appdb.winehq.org/objectManager.php?sClass=version&iId=19444 Wine Application Database] for more info.<br />
<br />
== Native Steam on Linux ==<br />
<br />
{{Note|Arch Linux is not [https://support.steampowered.com/kb_article.php?ref&#61;1504-QHXN-8366 officially supported].}}<br />
<br />
{{Note|If you have a pure 64-bit installation, you will need to enable the [[multilib]] repository in pacman. This is because the Steam client is a 32-bit application. It may also make sense to install multilib-devel to provide some important multilib libraries. You also most likely need to install the 32-bit version of your graphics driver to run Steam.}}<br />
<br />
Install {{Pkg|steam}} from the [[multilib]] repository.<br />
<br />
Steam makes heavy usage of the Arial font. A decent Arial font to use is {{Pkg|ttf-liberation}} or the official Microsoft Arial fonts: {{aur|ttf-microsoft-arial}} or {{aur|ttf-ms-fonts}} packages from the [[AUR]]. Asian languages require {{Pkg|wqy-zenhei}} to display properly.<br />
<br />
Steam is '''not supported''' on this distribution. As such some fixes are needed on the users part to get things functioning properly. Several games have dependencies which may be missing from your system. If a game fails to launch (often without error messages) then make sure all of the libraries listed below that game are installed. Please install {{Pkg|libtxc_dxtn}} and {{Pkg|lib32-libtxc_dxtn}} as almost all games require it.<br />
<br />
===General troubleshooting===<br />
{{Note|In addition to being documented here, any bug/fix/error should be, if not already, reported on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GitHub page].}}<br />
<br />
{{Note|Connection problems may occur when using DD-WRT with peer-to-peer traffic filtering.}}<br />
<br />
====GUI problems with KDE====<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/594 issue 594]<br />
<br />
If you are using KDE and you have problems with the GUI (such as lag or random crashes) modify the compositing type to OpenGL/Raster. In KDE system settings, go to "Desktop Effects" in the "Workspace Appearance and Behaviour" section. Open the "Advanced" tab. Change "Compositing type" from XRender to OpenGL.<br />
<br />
====The close button only minimizes the window====<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/1025 issue 1025]<br />
<br />
If you have your tray icon working you have the option of making the close button close to tray instead of minimize. To do this, set the environment variable {{ic|STEAM_FRAME_FORCE_CLOSE}} to {{ic|1}}. You can do this by launching Steam using the following command.<br />
$ STEAM_FRAME_FORCE_CLOSE=1 steam<br />
<br />
====Flash not working on 64-bit systems====<br />
: Steam Support [https://support.steampowered.com/kb_article.php?ref=1493-GHZB-7612 article]<br />
<br />
First ensure {{pkg|lib32-flashplugin}} is installed. It should be working at this point, if not create a local Steam flash plugin folder<br />
mkdir ~/.steam/bin32/plugins/<br />
and set a symbolic link to the global lib32 flash plugin file in your upper new folder<br />
ln -s /usr/lib32/mozilla/plugins/libflashplayer.so ~/.steam/bin32/plugins/<br />
<br />
====Text is corrupt or missing====<br />
The Steam Support [https://support.steampowered.com/kb_article.php?ref=1974-YFKL-4947 instructions] for Windows seem to work on Linux also: Simply download [https://support.steampowered.com/downloads/1974-YFKL-4947/SteamFonts.zip SteamFonts.zip] and install them (copying to ~/.fonts/ works at least).<br />
<br />
====Error on some games: S3TC support is missing====<br />
Install the following dependencies:<br />
* {{pkg|libtxc_dxtn}}<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Black screen on (Valve?) games (but audio works)====<br />
Check the Steam stdout/stderr for Error lines, some quick dependencies for reference:<br />
* {{pkg|lib32-intel-dri}} (not confirmed as absolutely necessary)<br />
<br />
run steam from console via primusrun steam<br />
<br />
====SetLocale('en_US.UTF-8') fails at game startup====<br />
Edit /etc/locale.gen in your favourite editor and uncomment the line {{ic|en_US.UTF-8 UTF-8}}. Then run {{ic|locale-gen}} as root.<br />
<br />
=== Game-specific depencencies and troubleshooting ===<br />
{{Note|Steam installs library dependencies of a game to a library directory, but some are missing at the moment. Report bugs involving missing libraries on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GIT page] before adding workarounds here, and then provide a link to the bug so it can be removed as the problems are fixed. Libraries like {{pkg|glu}} and {{pkg|libtxc_dxtn}} are exceptions to this, as they are just part of the implementation of the open drivers.}}<br />
<br />
====Amnesia: The Dark Descent====<br />
=====Dependencies=====<br />
* {{pkg|lib32-freealut}}<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxmu}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
<br />
=====Troubleshooting=====<br />
======Segfault======<br />
If you are using open source drivers you will need {{pkg|lib32-libtxc_dxtn}} . See [http://www.frictionalgames.com/forum/thread-10924.html official forum] for details<br />
<br />
====And Yet It Moves====<br />
=====Dependencies=====<br />
* {{aur|lib32-libtheora}}<br />
* {{aur|lib32-libjpeg6}}<br />
* {{aur|lib32-libtiff4}}<br />
* {{pkg|lib32-libpng12}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and one of the following messages can be observed on console<br />
readlink: extra operand ‘Yet’<br />
Try 'readlink --help' for more information.<br />
OR<br />
This script must be run as a user with write priviledges to game directory<br />
To fix this, open {{ic|~/.steam/root/SteamApps/common/And Yet It Moves/AndYetItMovesSteam.sh}} in text editor and replace line<br />
ayim_dir="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"<br />
with<br />
ayim_dir="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"<br />
<br />
====Bastion====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Counter-Strike: Source====<br />
=====Troubleshooting=====<br />
======Game crashes upon joining======<br />
If the game is constantly crashing when trying to join a game and in {{ic|~/.steam/root/SteamApps/your@account/Counter Strike Source/hl2.sh}} you have {{ic|1=__GL_THREADED_OPTIMIZATIONS=1}}, try changing it to {{ic|0}}.<br />
<br />
====Crusader Kings II====<br />
Game is installed into {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II}}.<br />
<br />
Game can be started directly, without need of running Steam on background, using command {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II/ck2}}.<br />
<br />
Saves are stored in {{ic|$HOME/Documents/Paradox Interactive/Crusader Kings II/save games/}}.<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
<br />
The default audio driver used by Crusader Kings 2 is for [[PulseAudio]], so an override is necessary:<br />
<br />
{{hc|~/.pam_environment|2=SDL_AUDIODRIVER=alsa}}<br />
<br />
====Defender's Quest: Valley of the Forgotten====<br />
=====Dependencies=====<br />
* {{aur|adobe-air-sdk}}<br />
* {{pkg|xterm}}<br />
<br />
=====Troubleshooting=====<br />
======Game does not start======<br />
* Package {{pkg|adobe-air-sdk}} installs Adobe Air not in the place where the game expects it to be, fix this by creating a simlink (requires root permissions):<br />
{{bc|ln -s /opt/adobe-air-sdk/runtimes/air/linux/Adobe\ AIR /opt/Adobe\ AIR}}<br />
<br />
* Adobe AIR will want to check whether the EULA was accepeted and fail in doing so. To fix it, issue the following commands (from under your user, not under root):<br />
{{bc|mkdir -p ~/.appdata/Adobe/AIR<br />
echo 2 > ~/.appdata/Adobe/AIR/eulaAccepted}}<br />
Note that by issuing these commands you're accepting Adobe Air's EULA.<br />
<br />
====Dwarfs F2P====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libgdiplus}}<br />
<br />
=====Troubleshooting=====<br />
======Game does not start======<br />
There was a bug that stopped Steam from fetching all the needed files. It should be resolved, if you still bump into this problem, try verifying integrity of game cache from game properties, local files tab.<br />
======Game crashes======<br />
In some cases, the game crashes about 2 minutes before the end of every arcade. This bug has been reported, but there's no known solution to it.<br />
<br />
====FTL: Faster than Light====<br />
=====Dependencies=====<br />
Libraries are downloaded and and placed in the game's data directory for both architectures. As long as you run FTL by the launcher script (or via the shortcut in Steam) you should not need to download any further libraries.<br />
<br />
=====Compatibility=====<br />
After installation, FTL may fail to run due to a 'Text file busy' error (characterised in Steam by your portrait border going green then blue again). The easiest way to mend this is to just reboot your system. Upon logging back in FTL should run.<br />
<br />
The Steam overlay in FTL does not function as it is not a 3D accelerated game. Because of this the desktop notifications will be visible. If playing in fullscreen, therefore, these notifications in some systems may steal focus and revert you back to windowed mode with no way of going back to fullscreen without relaunching. The binaries for FTL on Steam have no DRM and it is possible to run the game ''without'' Steam running, so in some cases that may be optimum - just ensure that you launch FTL via the launcher script in {{ic|~/.steam/root/SteamApps/common/FTL Faster than Light/data/}} rather than the FTL binary in the $arch directory.<br />
<br />
=====Problems with open-source video driver=====<br />
FTL may fail to run if you are using an opensource driver for your video card. There are two solutions: install a proprietary video driver or delete (rename if you are unsure) the library "libstdc++.so.6" inside {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/amd64/lib}} This is if you are using a 64bit system, I suppose that in case you are using a 32bit system you have to remove (rename) the same library located into {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/x86/lib}}.<br />
<br />
====Harvest: Massive Encounter====<br />
=====Dependencies=====<br />
* {{pkg|lib32-gtk2}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-openal}}<br />
* {{aur|lib32-nvidia-cg-toolkit}}<br />
* {{aur|lib32-libjpeg6}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and throws you to library installer loop. Just edit {{ic| ~/.steam/root/SteamApps/common/Harvest Massive Encounter/run_harvest}} and remove everything but<br />
#!/bin/bash<br />
exec ./Harvest<br />
<br />
====Killing Floor====<br />
=====Troubleshooting=====<br />
======Screen resolution======<br />
Killing Floor runs pretty much from scratch, although you might have to change in-game resolution screen as the default one is '''800x600''' and a '''4:3''' screen format.<br />
If you try to modify screen resolution in-game, it might crash your desktop enviroment.<br />
To fix this, please set the desired resolution screen size by modifing your {{ic|~/.killingfloor/System/KillingFloor.ini}} with your prefered editor.<br />
{{hc|# nano ~/.killingfloor/System/KillingFloor.ini|<nowiki><br />
...<br />
<br />
[WinDrv.WindowsClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=???<br />
MenuViewportY=???<br />
<br />
...<br />
<br />
[SDLDrv.SDLClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=????<br />
MenuViewportY=????<br />
<br />
...<br />
</nowiki>}}<br />
{{Note|Replace all the '''????''' with the corresponding numbers according the desired resolution. If you have an 1366x768 screen and want to use it at it's fullest, change all the Viewport fields to something like '''ViewportX&#61;1366''' and '''ViewportY&#61;768''' in the corresponding areas.}}<br />
{{Note| The dots in the middle indicate that there are more fields in that .ini file. But for screen resolution troubleshooting, you do not need to modify anything else.}}<br />
<br />
Save the file and restart the game, it should work now.<br />
<br />
======Windowed Mode======<br />
Uncheck fullscreen in the options menu, and use {{Keypress|Ctrl+g}} to stop mouse capturing (that was non-obvious to discover..). This way you can easily minimize it and do other other things..and let your WM handle things.<br />
<br />
====Multiwinia====<br />
=====Dependencies=====<br />
* {{pkg|lib32-openal}}<br />
<br />
Game will not launch without {{pkg|lib32-openal}}.<br />
<br />
====Penumbra: Overture====<br />
=====Dependencies=====<br />
(Taken from {{aur|penumbra-collection}} and {{aur|penumbra-overture-ep1-demo}})<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxft}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
* {{pkg|lib32-sdl_image}}<br />
<br />
=====Troubleshooting=====<br />
======Windowed Mode======<br />
There is no in-game option to change to the windowed mode, you will have to edit {{ic|~/.frictionalgames/Penumbra/Overture/settings.cfg}} to activate it.<br />
Find {{ic|FullScreen&#61;"true"}} and change it to {{ic|FullScreen&#61;"false"}}, after this the game should start in windowed mode.<br />
<br />
====Postal 2====<br />
Postal 2 runs without any additional dependencies.<br />
<br />
====Psychonauts====<br />
=====Dependencies=====<br />
* {{pkg|libtxc_dxtn}} and {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Revenge of the Titans====<br />
=====Dependencies=====<br />
* {{pkg|libxtst}} and {{pkg|lib32-libxtst}}<br />
<br />
====Serious Sam 3: BFE====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}} with mesa drivers<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
Try running:<br />
# pacman -S lib32-alsa-plugins<br />
# mkdir -p /usr/lib/i386-linux-gnu/alsa-lib/<br />
# ln -s /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so /usr/lib/i386-linux-gnu/alsa-lib/<br />
<br />
If that does not work, try tweaking ~/.alsoftrc as proposed by the [http://steamcommunity.com/app/221410/discussions/3/846940248238406974/ Steam community] (Serious Sam 3: BFE uses OpenAL to output sound). If you are not using Pulse Audio, you may want to write the following configuration:<br />
<br />
{{hc|$ nano ~/.alsoftrc|<nowiki><br />
[general]<br />
drivers = alsa<br />
[alsa]<br />
device = default<br />
capture = default<br />
mmap = true<br />
</nowiki>}}<br />
<br />
====Spacechem====<br />
=====Dependencies=====<br />
* {{pkg|lib32-sqlite}}<br />
* {{pkg|lib32-sdl_image}}<br />
* {{aur|lib32-sdl_mixer}}<br />
<br />
=====Troubleshooting=====<br />
======Game crash======<br />
The shipped x86 version of Spacechem does not work on x64 with the game's own libSDL* files, and crashes with some strange output.<br />
<br />
To solve this just remove or move the three files {{ic|libSDL-1.2.so.0}}, {{ic|libSDL_image-1.2.so.0}}, {{ic|libSDL_mixer-1.2.so.0}} from {{ic|~/.steam/root/SteamApps/common/SpaceChem}}<br />
<br />
====Space Pirates and Zombies====<br />
=====Dependencies=====<br />
* {{pkg|lib32-openal}}<br />
=====Troubleshooting=====<br />
======No audio======<br />
Apply the fix documented in Serious Sam 3: BFE above.<br />
<br />
====Splice====<br />
Splice comes with both x86 and x64 binaries. Steam does not have to be running to launch this game.<br />
=====Dependencies=====<br />
* {{pkg|glu}}<br />
* {{pkg|mono}}<br />
<br />
====Steel Storm: Burning Retribution====<br />
=====Troubleshooting=====<br />
======Start with black screen======<br />
The game tries to launch in 1024x768 resolution with fullscreen mode by default. It is impossible on some devices.<br />
(for example laptop Samsung Series9 with intel hd4000 video).<br />
<br />
You can launch the game in windowed mode. To do this open game Properties in Steam, in General tab select "Set launch options..." and type "-window".<br />
<br />
Now you can change the resolution in game.<br />
<br />
======No English fonts======<br />
If you use intel video card, just disable S3TC in DriConf.<br />
<br />
====Superbrothers: Sword & Sworcery EP====<br />
=====Dependencies=====<br />
* {{pkg|lib32-glu}}<br />
<br />
====Team Fortress 2 ====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
It happens if there is no PulseAudio in your system.<br />
If you want to use [[ALSA]], you need to launch Steam or the game directly with {{ic|1=SDL_AUDIODRIVER=alsa}} <br />
(From [http://steamcommunity.com/app/221410/discussions/0/882966056462819091/#c882966056470753683 SteamCommunity]).<br />
<br />
If it still does not work, you may also need to set the environment variable AUDIODEV. For instance {{ic|1=AUDIODEV=Live}}. Use {{ic|aplay -l}} to list the available sound cards.<br />
<br />
====The Book of Unwritten Tales====<br />
If the game does not start, go to Properties --> Uncheck "Enable Steam Community In-Game".<br />
<br />
The game may segfault upon clicking the Setting menu and possibly during or before gameplay. This is a known problem and you will unfortunately have to wait for a fix from the developer. A workaround (taken from the [http://steamcommunity.com/app/221410/discussions/3/846939071081758230/#p2 steam forums]) is to replace the game's RenderSystem_GL.so with one from debian's repositories. To do that download this [https://launchpad.net/ubuntu/+archive/primary/+files/libogre-1.7.4_1.7.4-3_i386.deb deb file], extract it and replace the following file:<br />
~/.local/share/Steam/SteamApps/common/The Book of Unwritten Tales/lib/32/RenderSystem_GL.so<br />
with the one that comes with the .deb package.<br />
=====Dependencies=====<br />
* {{aur|lib32-libxaw}}<br />
* {{aur|lib32-jasper}}<br />
<br />
====The Clockwork Man====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libidn}}<br />
<br />
====Trine 2====<br />
=====Dependencies=====<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxxf86vm}}<br />
* {{pkg|lib32-libdrm}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|lib32-mesa}}<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
* {{pkg|xorg-xwininfo}}<br />
<br />
=====Troubleshooting=====<br />
* If colors are wrong with FOSS drivers (r600g at least), try to run the game in windowed mode, rendering will be corrected. ([https://bugs.freedesktop.org/show_bug.cgi?id=60553 bugreport])<br />
* If sound plays choppy, try to edit {{ic|/etc/openal/alsoft.conf}} with values<br />
<br />
drivers=pulse,alsa<br />
frequency=48000<br />
<br />
* If the game resolution is wrong when using a dual monitor setup and you can't see the whole window edit {{ic|~/.frozenbyte/Trine2/options.txt}} and change the options ForceFullscreenWidth and ForceFullscreenHeight to the resolution of your monitor on which you want to play the game.<br />
<br />
====Unity of Command====<br />
=====Dependencies=====<br />
* {{pkg|lib32-pango}}<br />
<br />
=====Troubleshooting=====<br />
* If squares are shown instead of text, try removing {{ic|$HOME/Steam/SteamApps/common/Unity of Command/bin/libpangoft2-1.0.so.0}}.<br />
<br />
====World of Goo====<br />
=====Changing Resolution=====<br />
* To change the game resolution edit the section "Graphics display" in the configuration file {{ic|$HOME/Steam/SteamApps/common/World of Goo/properties/config.txt}}. For example, see below:<br />
<!-- Graphics display --><br />
<param name="screen_width" value="1680" /><br />
<param name="screen_height" value="1050" /><br />
<param name="color_depth" value="0" /><br />
<param name="fullscreen" value="true" /><br />
<param name="ui_inset" value="10" /><br />
<br />
===Skins for Steam===<br />
<br />
The Steam interface can be fully customized by copying its various interface files in its skins directory and modifying them.<br />
<br />
====Steam Skin Manager====<br />
<br />
The process of applying a skin to Steam can be greatly simplified using {{aur|steam-skin-manager}} from the AUR. The package also comes with a hacked version of the Steam launcher which allows the window manager to draw its borders on the Steam window.<br />
<br />
As a result, skins for Steam will come in two flavors, one with and one without window buttons. The skin manager will prompt you whether you use the hacked version or not, and will automatically apply the theme corresponding to your GTK theme if it is found. You can of course still apply another skin if you want.<br />
<br />
The package ships with two themes for the default Ubuntu themes, Ambiance and Radiance. A Faience theme is under development and already has its own package on the AUR {{aur|steam-skin-faience-git}}.<br />
<br />
== Steam on Wine ==<br />
<br />
Install {{Pkg|wine}} from the official repositories and follow the instructions provided in the [[Wine|article]].<br />
<br />
Install the required Microsoft fonts {{AUR|ttf-microsoft-tahoma}} and {{AUR|ttf-ms-fonts}} from the [[AUR]] or through {{AUR|winetricks-svn}}.<br />
{{Note|If you have access to Windows discs, you may want to install {{AUR|ttf-win7-fonts}} instead.}}<br />
<br />
If you have an old Wine prefix ({{ic|~/.wine}}), you should remove it and let Wine create a new one to avoid problems (you can transfer over anything you want to keep to the new Wine prefix).<br />
<br />
===Installation===<br />
<br />
Download and run the Steam installer from [http://store.steampowered.com/about/ steampowered.com]. It is no longer an {{ic|.exe}} file so you have to start it with {{ic|msiexec}}: <br />
$ msiexec /i SteamInstall.msi<br />
<br />
===Starting Steam===<br />
<br />
On x86:<br />
$ wine ~/.wine/drive_c/Program\ Files/Steam/Steam.exe<br />
<br />
On x86_64 (with steam installed to a clean wine prefix):<br />
$ wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe<br />
<br />
Alternatively, you may use this method:<br />
<br />
$ wine "C:\\Program Files\\Steam\\steam.exe" <br />
<br />
You should consider making an alias to easily start steam (and put it in your shell's rc file), example:<br />
alias steam='wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
<br />
{{Note|If you are using an nvidia card through bumblebee, you should prefix those commands with {{ic|optirun}}.}}<br />
<br />
===Tips===<br />
<br />
====Performance====<br />
<br />
Consider disabling wine debugging output by adding this to your shell rc file:<br />
export WINEDEBUG=-all<br />
or, just add it to your steam alias to only disable it for steam:<br />
alias steam='WINEDEBUG=-all wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
Additionally, Source games rely on a paged pool memory size specification for audio, and WINE by default does not have this set. To set it:<br />
wine reg add "HKLM\\System\\CurrentControlSet\\Control\\Session Manager\\Memory Management\\" /v PagedPoolSize /t REG_DWORD /d 402653184 /f<br />
<br />
==== Application Launch Options ====<br />
Go to "Properties" -> "Set Launch Options", e.g.:<br />
{{bc|-console -dxlevel 90 -width 1280 -height 1024<br />
}}<br />
* {{ic|console}}<br />
Activate the console in the application to change detailed applications settings.<br />
* {{ic|dxlevel}}<br />
Set the application's DirectX level, e.g. 90 for DirectX Version 9.0. It is recommended to use the video card's DirectX version to prevent crashes. See the official Valve Software Wiki http://developer.valvesoftware.com/wiki/DirectX_Versions for details.<br />
* {{ic|width}} and {{ic|height}}<br />
Set the screen resolution. In some cases the graphic settings are not saved in the application and the applications always starts in the default resolution.<br />
Please refer to http://developer.valvesoftware.com/wiki/Launch_options for a complete list of launch options.<br />
<br />
==== Using a Pre-Existing Steam Install ====<br />
<br />
If you have a shared drive with Windows, or already have a Steam installation somewhere else, you can simply symlink the Steam directory to {{ic|~/.wine/drive_c/Program Files/Steam/}} . However, be sure to do '''all''' the previous steps in this wiki. Confirm Steam launches and logs into your account, ''then'' do this:<br />
<br />
cd ~/.wine/drive_c/Program\ Files/ <br />
mv Steam/ Steam.backup/ (or you can just delete the directory)<br />
ln -s /mnt/windows_partition/Program\ Files/Steam/<br />
<br />
{{Note|If you have trouble starting Steam after symlinking the entire Steam folder, try linking only the {{ic|steamapps}} subdirectory in your existing wine steam folder instead.}}<br />
<br />
{{Note|If you still have trouble starting games, use {{ic|sudo mount --bind /path/to/SteamApps ~/.local/share/Steam/SteamApps -ouser&#61;your-user-name }}, this is the only thing that worked for me with {{ic|TF2}}}}<br />
<br />
====Running Steam in a second X Server====<br />
<br />
Assuming you are using the script above to start Steam, make a new script, called {{ic|x.steam.sh}}. You should run this when you want to start Steam in a new X server, and {{ic|steam.sh}} if you want Steam to start in the current X server. <br />
<br />
If due to misconfiguration a black screen is shown, you could always close down the second X server by pressing {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}}.<br />
<br />
{{bc|1=<br />
#!/bin/bash <br />
<br />
DISPLAY=:1.0<br />
<br />
xinit $HOME/steam.sh $* -- :1<br />
}}<br />
<br />
Now you can use {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F7}} to get to your first X server with your normal desktop, and {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F8}} to go back to your game. <br />
<br />
Because the second X server is ''only'' running the game and the first X server with all your programs is backgrounded, performance should increase. In addition, it is much more convenient to switch X servers while in game to access other resources, rather than having to exit the game completely or {{Keypress|Alt}}-{{Keypress|Tab}} out. Finally, it is useful for when Steam or WINE goes haywire and leaves a bunch of processes in memory after Steam crashes. Simply {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}} on the second X server to kill that X and all processes on that desktop will terminate as well. <br />
<br />
'''If you get errors that look like "Xlib: connection to ":1.0" refused by server" when starting the second X''': You will need to adjust your X permissions.<br />
<br />
'''If you lose the ability to use the keyboard while using Steam''': This is an odd bug that does not happen with other games. A solution is to use a WM in the second X as well. Thankfully, you do not need to run a large WM. Openbox and icewm have been confirmed to fix this bug (evilwm, pekwm, lwm ''do not'' work), but the icewm taskbar shows up on the bottom of the game, thus it's recommended to use [[Openbox]]. Install {{Pkg|openbox}} from the [[official repositories]], then add {{Ic|openbox &}} to the top of your {{ic|steam.sh}} file. Note you can run other programs (ex. Teamspeak &) or set X settings (ex. xset, xmodmap) before the WINE call as well.<br />
<br />
====Steam Links in Firefox, Chrome, Etc====<br />
To make steam:// urls in your browser connect with steam in wine, there are several things you can do. One involves making steam url-handler keys in gconf, another involves making protocol files for kde, others involve tinkering with desktop files or the Local State file for chromium. These seem to only work in firefox or under certain desktop configurations. One way to do it that works more globally is using mimeo, a tool made by Xyne (an Arch TU) which follows. For another working and less invasive (but firefox-only) way, see the first post [http://ubuntuforums.org/showthread.php?t=433548 here] .<br />
<br />
* Make {{ic| /usr/bin/steam}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
#!/bin/sh<br />
#<br />
# Steam wrapper script<br />
#<br />
exec wine "c:\\program files\\steam\\steam.exe" "$@"<br />
}}<br />
<br />
* Make it executable.<br />
<br />
# chmod +x /usr/bin/steam<br />
<br />
* Install {{AUR|mimeo}} and {{AUR|xdg-utils-mimeo}} from AUR. You will need to replace the existing {{pkg|xdg-utils}} if installed. In XFCE, you will also need {{pkg|xorg-utils}}.<br />
<br />
* Create {{ic|~/.config/mimeo.conf}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
/usr/bin/steam %u<br />
^steam://<br />
}}<br />
<br />
* Lastly, open {{ic|/usr/bin/xdg-open}} in your favorite editor. Go to the {{ic|detectDE()}} section and change it to look as follows:<br />
<br />
{{bc|<nowiki><br />
detectDE()<br />
{<br />
#if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;<br />
#elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;<br />
#elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;<br />
#elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;<br />
#elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;<br />
#else DE=""<br />
#fi<br />
DE=""<br />
}<br />
</nowiki>}}<br />
<br />
* Restart the browser and you should be good to go. In chromium, you cannot enter a {{ic|steam://}} link in the url box like you can with firefox. The forum link above has a {{ic|steam://open/friends}} link to try if needed.<br />
<br />
{{Note|If you have any problems with file associations after doing this, simply revert to regular xdg-utils and undo your changes to {{ic|/usr/bin/xdg-open}}.}}<br />
{{Note|Those on other distributions that stumble upon this page, see the link above for firefox specific instructions. No easy way to get it working on Chromium on other distros exists.}}<br />
<br />
====No text rendered problem====<br />
If there is no text/font rendered when starting steam you should try to start steam with the parameter {{ic|-no-dwrite}}. Read more in [https://bbs.archlinux.org/viewtopic.php?id=146223 the forum thread about it.]<br />
{{bc|wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe -no-dwrite}}<br />
<br />
== See Also ==<br />
* https://wiki.gentoo.org/wiki/Steam</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=ATI&diff=251356ATI2013-03-19T21:42:26Z<p>Lordheavy: /* Performance tuning */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[cs:ATI]]<br />
[[de:ATI]]<br />
[[es:ATI]]<br />
[[fr:ATI]]<br />
[[it:ATI]]<br />
[[pl:ATI]]<br />
[[ru:ATI]]<br />
[[tr:ATI]]<br />
[[zh-CN:ATI]]<br />
{{Article summary start}}<br />
{{Article summary text|An overview of the open source ATI/AMD video card driver.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|AMD Catalyst}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary end}}<br />
<br />
Owners of '''ATI/AMD''' video cards have a choice between AMD's [[AMD Catalyst|proprietary driver]] ({{AUR|catalyst}}) and the open source driver ({{Pkg|xf86-video-ati}}). This article covers the open source driver.<br />
<br />
The open source driver is currently not ''on par'' with the proprietary driver in terms of 3D performance on newer cards or reliable TV-out support. It does, however, offer better dual-head support, excellent 2D acceleration, and provide sufficient 3D acceleration for OpenGL-accelerated [[window manager]]s, such as [[Compiz]] or KWin.<br />
<br />
If unsure, try the open source driver first, it will suit most needs and is generally less problematic (see the [http://www.x.org/wiki/RadeonFeature feature matrix] for details).<br />
<br />
==Naming conventions==<br />
ATI's [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).<br />
<br />
For a table of core and product series, see [[Wikipedia:Comparison of AMD graphics processing units]].<br />
<br />
==Overview==<br />
The {{ic|xf86-video-ati}} (radeon) driver:<br />
*Works with Radeon chipsets up to HD 6xxx and 7xxxM (latest Northern Islands chipsets).<br />
**Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D acceleration are provided.<br />
**Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides.<br />
*Supports DRI1, RandR 1.2/1.3, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2 (with the latest Linux kernel, libdrm and Mesa versions).<br />
<br />
Generally, '''xf86-video-ati''' should be your first choice, no matter which ATI card you own. In case you need to use a driver for newer ATI cards, you should consider the proprietary '''catalyst''' driver.<br />
<br />
{{Note|'''xf86-video-ati''' is specified as '''''radeon''''' for the kernel and in {{ic|xorg.conf}}. }}<br />
<br />
==Installation==<br />
If Catalyst/{{ic|fglrx}} has been previously installed, see [[ATI Catalyst#Uninstallation|here]].<br />
<br />
<br />
=== Installing xf86-video-ati ===<br />
[[pacman|Install]] {{Pkg|xf86-video-ati}}, available in the [[Official Repositories]]. <br />
<br />
The -git version of the driver and other needed packages (linux-git, etc) can be found in the [https://bbs.archlinux.org/viewtopic.php?id=79509&p=1 radeon repository] or the [[AUR]].<br />
<br />
==Configuration==<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Kernel mode-setting (KMS) ==<br />
<br />
[[KMS]] enables native resolution in the framebuffer and allows for instant console (tty) switching. KMS also enables newer technologies (such as DRI2) which will help reduce artifacts and increase 3D performance, even kernel space power-saving.<br />
<br />
KMS for ATI video cards requires the [[Xorg]] free video user space driver {{Pkg|xf86-video-ati}} version 6.12.4 or later.<br />
<br />
=== Enabling KMS ===<br />
<br />
{{Note| Since Linux kernel v.2.6.33, KMS is '''enabled''' by default for autodetected ATI/AMD cards. This section remains for configurations outside stock. }}<br />
<br />
==== Early KMS start ====<br />
<br />
''These two methods will start KMS as early as possible in the [[boot process]].''<br />
<br />
1. The earliest point is to append the kernel line in your bootloader with {{ic|1= radeon.modeset=1}}. See your bootloader's page for info on how to do this.<br />
* Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. <br />
* AGP speed can be set with {{ic|<nowiki>radeon.agpmode=x</nowiki>}} kernel option, where x is 1, 2, 4, 8 (AGP speed) or -1 (PCI mode).<br />
<br />
2. Otherwise, when the [[initramfs]] is loaded:<br />
* If you have a special kernel outside of stock {{ic|-ARCH}} (e.g. linux-zen), remember to use a separate ''mkinitcpio'' configuration file (e.g. {{ic|/etc/mkinitcpio-zen.conf}}) and not {{ic|/etc/mkinitcpio.conf}}.<br />
* Remove any framebuffer related modules from your ''mkinitcpio'' file.<br />
* Add {{ic|radeon}} to {{ic|MODULES}} array in your ''mkinitcpio'' file. For AGP support, it is necessary to add {{ic|intel_agp}} (or {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, {{ic|amd64_agp}} etc.) before the {{ic|radeon}} module.<br />
* Re-generate your [[mkinitcpio#Image_creation_and_activation | initramfs]].<br />
<br />
Finally, '''Reboot''' the system.<br />
<br />
==== Late start ====<br />
<br />
''With this choice, KMS will be enabled when modules are loaded during the [[boot process]].''<br />
<br />
If you have a special kernel (e.g. linux-zen), remember to use appropriate mkinitcpio configuration file, e.g. {{ic|/etc/mkinitcpio-zen.conf}}. These instructions are written for the default kernel ({{Pkg|linux}}).<br />
{{Note| For AGP support, it may be necessary to add {{ic|intel_agp}}, {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, or {{ic|amd64_agp}}) to appropriate .conf files in {{ic|/etc/modules-load.d}}.}}<br />
<br />
# Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]]. Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. Remove any framebuffer related modules from {{ic|/etc/mkinitcpio.conf}}. {{ic|<nowiki>video=</nowiki>}} can now be used in conjunction with KMS.<br />
# Add {{ic|<nowiki>options radeon modeset=1</nowiki>}} to {{ic|/etc/modprobe.d/modprobe.conf}}. <br />
# '''Reboot''' the system.<br />
<br />
=== Troubleshooting KMS ===<br />
<br />
==== Disable KMS ====<br />
<br />
Users should consider disabling kernel mode-setting if encountering kernel panics, distorted framebuffer on boot, no GPU signal, [[Xorg]] refusing to start, Xorg falling back to Mesa software rasterizer (no 3D acceleration) or 'POWER OFF' problem (kernel 2.6.33-2)at shutdown.<br />
<br />
# Add {{ic|<nowiki>radeon.modeset=0</nowiki>}} (or {{ic|nomodeset}}, if this does not work) to the kernel options line in the bootloader [[Boot Loader#Configuration files|configuration file]]. That should work. {{Note| Adding '''nomodeset''' to the kernel boot line might prevent GNOME 3's gnome-shell or KDE's desktop effects from running.}} If you want to remove KMS support from the initramfs, follow the next two steps.<br />
# If {{ic|radeon}} was added to the {{ic|MODULES}} array in {{ic|mkinitcpio.conf}} to enable ''early start'', remove it.<br />
# Rebuild the [[initramfs]] with {{bc|# mkinitcpio -p linux}}<br />
<br />
Alternatively, module options can be specified in a file within the {{ic|/etc/modprobe.d}} directory. If using the '''radeon''' module ({{ic|<nowiki>lsmod | grep radeon</nowiki>}}) disable KMS by creating a file containing the above code:<br />
<br />
{{hc|/etc/modprobe.d/radeon.conf|2=options radeon modeset=0}}<br />
<br />
==== Renaming {{ic|xorg.conf}} ====<br />
<br />
Renaming {{ic|/etc/X11/xorg.conf}}, which may include options that conflict with KMS, will force Xorg to autodetect hardware with sane defaults. After renaming, '''restart''' Xorg.<br />
<br />
== Performance tuning ==<br />
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.<br />
<br />
By design, xf86-video-ati runs at AGP 4x speed. It is generally safe to modify this. If you notice hangs, try reducing the value or removing the line entirely (you can use values 1, 2, 4, 8). If KMS is enabled, this option is not used and it is superseded by {{ic|radeon.agpmode}} kernel option.<br />
<br />
Option "AGPMode" "8"<br />
<br />
'''ColorTiling''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU<br />
<br />
Option "ColorTiling" "on"<br />
<br />
'''Acceleration architecture'''; this will work only on '''newer''' cards. If you enable this and then cannot get back into X, remove it. <br />
<br />
Option "AccelMethod" "EXA"<br />
<br />
'''Page Flip''' is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA.<br />
<br />
Option "EnablePageFlip" "on"<br />
<br />
'''AGPFastWrite''' will enable fast writes for AGP cards. This one can cause instabilities, so be prepared to remove it if you cannot get into X. This option is not used when KMS is on.<br />
<br />
Option "AGPFastWrite" "yes"<br />
<br />
'''EXAVSync ''' option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips.<br />
Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled.<br />
<br />
Option "EXAVSync" "yes"<br />
<br />
Bellow is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Option "AGPMode" "8" #not used when KMS is on<br />
Option "AGPFastWrite" "off" #could cause instabilities enable it at your own risk<br />
Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default<br />
Option "EnablePageFlip" "on" #supported on all R/RV/RS4xx and older hardware and set off by default<br />
Option "AccelMethod" "EXA" #valid options are XAA, EXA and Glamor. EXA is the default.<br />
Option "RenderAccel" "on" #enabled by default on all radeon hardware<br />
Option "ColorTiling" "on" #enabled by default on RV300 and later radeon cards.<br />
Option "EXAVSync" "off" #default is off, otherwise on. Only works '''if EXA activated'''<br />
Option "EXAPixmaps" "on" #when on icreases 2D performance, but may also cause artifacts on some old cards. Only works '''if EXA activated'''<br />
Option "AccelDFS" "on" #default is off, read the radeon manpage for more information<br />
EndSection<br />
}}<br />
<br />
Defining the '''gartsize''', if not autodetected, can be done by adding {{ic|1=radeon.gartsize=32}} into [[kernel parameters]]. Size is in megabytes and 32 is for RV280 cards.<br />
<br />
Alternatively, do it with a modprobe option in {{ic|/etc/modprobe.d/radeon.conf}}:<br />
<br />
options radeon gartsize=32<br />
<br />
'''For further information and other options, read the radeon manpage and the module's info page''':<br />
man radeon<br />
<br />
modinfo radeon<br />
<br />
A fine tool to try is [https://www.archlinux.org/packages/community/any/driconf/ driconf]. It will allow you to modify several settings, like vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).<br />
<br />
=== Activate PCI-E 2.0 ===<br />
Can be unstable with some motherboards or not produce any performarce, test yourself adding "radeon.pcie_gen2=1" on the kernel command line.<br />
<br />
{{Note|As of kernel 3.6, PCI-E v2.0 in '''radeon''' appears to be turned on by default.}}<br />
<br />
More info on [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article]<br />
<br />
=== Glamor ===<br />
With the newest version of the free ATI drivers, you can now use a novel AccelMethod called "glamor": it is a 2D acceleration method implemented through OpenGL, and it should work with graphic cards whose driver are newer or equal to R300.<br />
Option "AccelMethod" "glamor"<br />
<br />
However, you need to add the following section before:<br />
{{bc|<br />
Section "Module"<br />
Load "dri2"<br />
Load "glamoregl" <br />
EndSection<br />
}}<br />
<br />
==Powersaving==<br />
<br />
The powersaving part is totally different with and without KMS.<br />
<br />
===With KMS enabled===<br />
<br />
With the radeon driver, power saving is disabled by default but the stock kernel (2.6.35 as of this writing) provides a "sysfs" utility to enable it.<br />
<br />
Power saving through KMS is still a work in progress for the most part. It should work, but some chips do have problems with it. A common issue for all is screen blinking when the kernel switches between power states, and in some configurations it even causes system freezes. But KMS is awesome, so it is your choice. The UMS method is generally more stable, however its power savings might not be as good as those provided by KMS options.<br />
<br />
There are two ways to enable power management:<br />
<br />
#Try adding {{ic|1=radeon.dynpm=1}} to the [[Kernel parameters]] (if using the stock kernel < 2.6.35). If you are using Linux kernel >= 2.6.35 this option is no longer needed and the sysfs interface will be present by default. If this option is passed to a kernel >= 2.6.35, the driver will fail and fall back to software rendering.<br />
#Use the (unsupported) [radeon] repo:<br />
<br />
This repository will grant you up-to-date packages of the radeon driver and its dependencies, from (mostly) git snapshots.<br />
<br />
{{bc|1=<br />
[mesa-git]<br />
Server = <nowiki>http://pkgbuild.com/~lcarlier/$repo/$arch/</nowiki><br />
}}<br />
<br />
<br />
You can select the methods via sysfs.<br />
<br />
With root access, you have two choices:<br />
<br />
1. '''Dynamic frequency switching (depending on GPU load)'''<br />
<br />
{{bc|# echo dynpm > /sys/class/drm/card0/device/power_method}}<br />
<br />
The "dynpm" method dynamically changes the clocks based on the number of pending fences, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.<br />
<br />
{{Note|The "profile" method mentioned below is not as aggressive as "dynpm," but is currently much more stable and flicker free and works with multiple heads active.}}<br />
<br />
2. '''Profile-based frequency switching'''<br />
<br />
{{bc|# echo profile > /sys/class/drm/card0/device/power_method}}<br />
<br />
The "profile" mode will allow you to select one of the five profiles below.<br />
Different profiles, for the most part, end up changing the frequency/voltage of the card.<br />
<br />
* "default" uses the default clocks and does not change the power state. This is the default behavior.<br />
* "auto" selects between "mid" and "high" power states based on the whether the system is on battery power or not. The "low" power state are selected when the monitors are in the dpms off state.<br />
* "low" forces the gpu to be in the low power state all the time. Note that "low" can cause display problems on some laptops; this is why auto only uses "low" when displays are off.<br />
* "mid" forces the gpu to be in the "mid" power state all the time. The "low" power state is selected when the monitors are in the dpms off state.<br />
* "high" forces the gpu to be in the "high" power state all the time. The "low" power state is selected when the monitors are in the dpms off state.<br />
<br />
So lets say we want the "low" option...for this, run the following command:<br />
<br />
{{bc|# echo low > /sys/class/drm/card0/device/power_profile}}<br />
<br />
Replace "low" with any of the aforementioned profiles as necessary.<br />
<br />
{{Tip|Echoing a profile value to this file is not permanent, so when you find something that fits your needs, you can use [[Systemd#Temporary files|tmpfiles.d]] or following [[udev]] rule:}}<br />
'''dynpm'''-method example:<br />
{{hc|$ cat /etc/udev/rules.d/30-local.rules|<nowiki><br />
KERNEL=="card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="dynpm"<br />
</nowiki>}}<br />
'''auto'''-profile example:<br />
{{hc|$ cat /etc/udev/rules.d/30-local.rules|<nowiki><br />
KERNEL=="card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="auto"<br />
</nowiki>}}<br />
<br />
{{Note|Gnome-shell users may be interested in the following extension: [https://extensions.gnome.org/extension/356/radeon-power-profile-manager Radeon Power Profile Manager] for manually controlling the GPU profiles. The extension is now available in the [https://aur.archlinux.org/packages/gnome-shell-extension-radeon-power-profile-manager-git/ AUR] and will default to the mid profile at startup.}}<br />
<br />
Power management is supported on all asics (r1xx-evergreen) that include the appropriate power state tables in the vbios; not all boards do (especially older desktop cards).<br />
<br />
To view the speed that the GPU is running at, perform the following command and you will get something like this output:<br />
<br />
{{hc|$ cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki> state: PM_STATE_ENABLED<br />
default engine clock: 300000 kHz<br />
current engine clock: 300720 kHz<br />
default memory clock: 200000 kHz</nowiki>}}<br />
<br />
If /sys/kernel/debug is empty, run this command:<br />
<br />
{{bc|# mount -t debugfs none /sys/kernel/debug}}<br />
<br />
To permanently mount, add the following line to /etc/fstab:<br />
<br />
debugfs /sys/kernel/debug debugfs defaults 0 0<br />
<br />
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.<br />
<br />
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via lm_sensors tools or via sysfs in /sys/class/hwmon .<br />
<br />
There is a GUI for switching profiles [http://code.google.com/p/power-play-switcher here] ([https://aur.archlinux.org/packages.php?ID=53752 available in AUR]).<br />
<br />
===Without KMS===<br />
<br />
In your {{ic|xorg.conf}} file, add 2 lines to "Device" Section:<br />
Option "DynamicPM" "on"<br />
Option "ClockGating" "on"<br />
<br />
If the two options are enabled successfully, you will see following lines in /var/log/Xorg.0.log:<br />
<br />
(**) RADEON(0): Option "ClockGating" "on"<br />
(**) RADEON(0): Option "DynamicPM" "on"<br />
<br />
Static power management enable success<br />
(II) RADEON(0): Dynamic Clock Gating Enabled<br />
(II) RADEON(0): Dynamic Power Management Enabled<br />
<br />
If you desire low power cost, you can add an extra line to "Device" Section of {{ic|xorg.conf}}:<br />
Option "ForceLowPowerMode" "on"<br />
<br />
==TV out==<br />
{{out of date}}<br />
Since August 2007, there is TV-out support for all Radeons with integrated TV-out.<br />
<br />
It is somewhat limited for now, it does not always autodetect the output correctly and only NTSC mode works.<br />
<br />
First, check that you have an S-video output: {{ic|xrandr}} should give you something like<br />
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200<br />
...<br />
S-video disconnected (normal left inverted right x axis y axis)<br />
<br />
Setting tv standard to use:<br />
xrandr --output S-video --set "tv standard" ntsc<br />
<br />
Adding a mode for it (currently it supports only 800x600):<br />
xrandr --addmode S-video 800x600<br />
<br />
I will go for a clone mode:<br />
xrandr --output S-video --same-as VGA-0<br />
<br />
So far so good. Now let us try to see what we have:<br />
xrandr --output S-video --mode 800x600<br />
<br />
At this point you should see a 800x600 version of your desktop on your TV.<br />
<br />
To disable the output, do<br />
xrandr --output S-video --off<br />
<br />
Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.<br />
<br />
To send the output to the TV, I do<br />
xvattr -a XV_CRTC -v 1<br />
<br />
{{Note| you need to install '''xvattr''' from [[AUR]] to execute this command.}}<br />
<br />
To switch back to my monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.<br />
<br />
Please see [http://www.x.org/wiki/radeonTV Enabling TV-Out Statically] for how to enable TV-out in your xorg configuration file.<br />
<br />
=== Force TV-out in KMS ===<br />
<br />
Kernel can recognize {{ic|1=video=}} parameter in following form:<br />
<br />
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]<br />
<br />
(see [[KMS]])<br />
<br />
For example:<br />
<br />
video=DVI-I-1:1280x1024-24@60e<br />
or<br />
"video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
Parameters with whitespaces must be quoted. Current mkinitcpio implementation also requires # before. For example:<br />
<br />
root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
* Grub can pass such command line as is.<br />
* Lilo needs backslashes for doublequotes (append="...... # .... \"video=9-pin DIN-1:1024x768-24@60e\"")<br />
* Grub2: TODO<br />
<br />
You can get list of your video outputs with following command:<br />
<br />
{{bc|<nowiki>ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-</nowiki>}}<br />
<br />
== HDMI Audio ==<br />
<br />
'''xf86-video-ati''' can enable HDMI audio output for all supported chipsets up to r7xx when using [[ATI#Kernel_mode-setting_.28KMS.29|KMS]]. Just use {{ic|xrandr}} to enable the output and Test as described below.<br />
<br />
=== Testing HDMI Audio ===<br />
# Connect your PC to the Display via HDMI cable.<br />
# Use xrandr to get picture to the Display, e.g.: {{ic|xrandr --output DVI-D_1 --mode 1280x768 --right-of PANEL}}. Simply typing {{ic|xrandr}} will give you a list of valid outputs.<br />
# Run {{ic|aplay -l}} to get the list of sound devices. Find HDMI and note the card number and corresponding device number. Example of what you want to see: {{ic|card 1: HDMI [HDA ATI HDMI], device 3: ATI HDMI [ATI HDMI]}}<br />
# Try sending sound to this device: {{ic|aplay -D plughw:1,3 /usr/share/sounds/alsa/Front_Center.wav}}. Be sure to change {{ic|plughw:z,y}} to match the hardware number found with last command. You should be able to hear the test sound from the display.<br />
<br />
* The audio module is disabled by default in kernel >=3.0. Add {{ic|1=radeon.audio=1}} to the [[Kernel parameters]].<br />
* If the sound is distorted try [[PulseAudio#Glitches, skips or crackling|setting {{ic|1=tsched=0}}]] and make sure {{ic|rtkit}} daemon is running.<br />
<br />
== Dual Head Setup ==<br />
=== Independent X Screens ===<br />
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "radeon"<br />
Option "ZaphodHeads" "VGA-0"<br />
VendorName "ATI"<br />
BusID "PCI:1:0:0"<br />
Screen 0<br />
EndSection<br />
<br />
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads" "VGA-0"}}.<br />
<br />
Moreover, this option allows you to easily select the screen you want to mark as primary.<br />
<br />
== Enabling video acceleration ==<br />
<br />
Latest {{Pkg|mesa}} package added support for MPEG1/2 decoding to free drivers, exported via {{Pkg|libvdpau}}. After installing it assign environment variable {{Ic|LIBVA_DRIVER_NAME}} to {{Ic|vdpau}} and {{Ic|VDPAU_DRIVER}} to the name of driver core, e.g.:<br />
<br />
{{hc|1=~/.bashrc|2=<br />
export LIBVA_DRIVER_NAME=vdpau<br />
export VDPAU_DRIVER=r600<br />
}}<br />
<br />
for r600-based cards (all available VDPAU drivers are in {{Ic|/usr/lib/vdpau/}}).<br />
<br />
== Troubleshooting ==<br />
<br />
=== Artifacts upon logging in ===<br />
<br />
If encountering artifacts, first try starting X without {{ic|/etc/X11/xorg.conf}}. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured {{ic|xorg.conf}} files are known to cause trouble.<br />
<br />
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.<br />
<br />
Artifacts may also be related to [[kernel mode setting]]. Consider [[#Disable KMS|disabling KMS]].<br />
<br />
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EXAPixmaps" "off"<br />
EndSection<br />
<br />
Further tweaking could be done by disabling {{ic|AccelDFS}}:<br />
<br />
Option "AccelDFS" "off"<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
e.g. When EDID fails on a DisplayPort connection. <br />
<br />
This issue is covered on the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].<br />
<br />
=== Slow performance with open-source drivers ===<br />
<br />
{{Note|Make sure you are member of '''video''' group.}}<br />
<br />
Some cards can be installed by default trying to use [[ATI#AMD/Ati cards and kernel mode-setting (KMS)|KMS]]. You can check whether this is your case running:<br />
dmesg | egrep "drm|radeon"<br />
<br />
This command might show something like this, meaning it is trying to default to KMS:<br />
[drm] radeon default to kernel modesetting.<br />
...<br />
[drm:radeon_driver_load_kms] *ERROR* Failed to initialize radeon, disabling IOCTL<br />
<br />
If your card is not supported by KMS (anything older than r100), then you can [[ATI#Disable KMS|disable KMS]]. This should fix the problem.<br />
<br />
=== AGP is disabled (with KMS) ===<br />
<br />
If you experience poor performance and dmesg shows something like this<br />
[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19<br />
then check if the agp driver for your motherboard (e.g., {{ic|via_agp}}, {{ic|intel_agp}} etc.) is loaded before the {{ic|radeon}} module, see [[ATI#Enabling KMS|Enabling KMS]].<br />
<br />
=== TV showing a black border around the screen ===<br />
<br />
When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see [[Wikipedia:Overscan]]) can be turned off using xrandr:<br />
xrandr --output HDMI-0 --set underscan off<br />
<br />
=== Black screen with mouse cursor on resume from suspend in X ===<br />
<br />
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance_tuning|performance tuning]] for more information.<br />
<br />
=== No Desktop Effects in KDE4 with X1300 and Radeon Driver ===<br />
<br />
A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}. <br />
<br />
Add:<br />
DisableChecks=true<br />
<br />
To the [Compositing] section. Ensure that compositing is enabled with:<br />
Enabled=true<br />
<br />
=== Black screen and no console, but X works in KMS ===<br />
This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:<br />
fbcon=map:1<br />
This will tell the fbcon to map itself to the {{ic|/dev/fb1}} framebuffer dev and not the {{ic|/dev/fb0}}, that in our case exist on the wrong graphics card.<br />
<br />
=== Some 3D applications show textures as all black or crash ===<br />
You might need texture compression support, which is not included with the open source driver. Install {{Pkg|libtxc_dxtn}} (and {{Pkg|lib32-libtxc_dxtn}} for multilib systems).<br />
<br />
=== 2D performance (e.g. scrolling) is slow ===<br />
If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.<br />
<br />
Bellow is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "MigrationHeuristic" "greedy"<br />
EndSection<br />
}}<br />
<br />
=== ATI X1600 (RV530 series) 3D application show black windows ===<br />
There are three possible solutions:<br />
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].<br />
* If this doesn't work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.<br />
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{ic|driconf}} via pacman and set that option in {{ic|~/.drirc}}.<br />
<br />
<br />
=== Vertical colored stripes on chipset RS482 (Xpress 200M Series) with/out KMS ===<br />
The bug :With the graphical chipset Xpress 200M Series (Radeon Xpress 1150), booting with KMS gives you sometimes, as soon as Xorg boots, a screen with many vertical colored stripes. You cannot Alt+Sys+K or do anything. Take a look [https://bugs.archlinux.org/task/21918] for more information,<br />
How to fixed ? : disable dri (needn't to disable kms)<br />
Side effert: if i disable "dri" and use no kernel options (no "nomodeset") i see the vertical stripes at boot, only for 5 seconds, before having kdm displayed. Then, i have the same results.<br />
If I start for example KDE Desktop Effects, i will see again the vertical stripes for 5 seconds...and return to kdm ! :)</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=Steam&diff=251102Steam2013-03-18T10:45:19Z<p>Lordheavy: /* Black screen on (Valve?) games (but audio works) */</p>
<hr />
<div>[[Category:Gaming]]<br />
[[Category:Wine]]<br />
[[ja:Steam]]<br />
[[zh-CN:Steam]]<br />
{{Article summary start}}<br />
{{Article summary text|[http://store.steampowered.com/about/ Steam] is a content delivery system made by Valve Software. It is best known as the platform needed to play Source Engine games (e.g. Half-Life 2, Counter-Strike). Today it offers many games from many other developers.}}<br />
<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Wine}}<br />
{{Article summary end}}<br />
<br />
See the [[Wikipedia:Steam (software)|Steam Wikipedia page]] and the page in the [http://appdb.winehq.org/objectManager.php?sClass=version&iId=19444 Wine Application Database] for more info.<br />
<br />
== Native Steam on Linux ==<br />
<br />
{{Note|Arch Linux is not [https://support.steampowered.com/kb_article.php?ref&#61;1504-QHXN-8366 officially supported].}}<br />
<br />
{{Note|If you have a pure 64-bit installation, you will need to enable the [[multilib]] repository in pacman. This is because the Steam client is a 32-bit application. It may also make sense to install multilib-devel to provide some important multilib libraries. You also most likely need to install the 32-bit version of your graphics driver to run Steam.}}<br />
<br />
Install {{Pkg|steam}} from the [[multilib]] repository.<br />
<br />
Steam makes heavy usage of the Arial font. A decent Arial font to use is {{Pkg|ttf-liberation}} or the official Microsoft Arial fonts: {{aur|ttf-microsoft-arial}} or {{aur|ttf-ms-fonts}} packages from the [[AUR]]. Asian languages require {{Pkg|wqy-zenhei}} to display properly.<br />
<br />
Steam is '''not supported''' on this distribution. As such some fixes are needed on the users part to get things functioning properly. Several games have dependencies which may be missing from your system. If a game fails to launch (often without error messages) then make sure all of the libraries listed below that game are installed. Please install {{Pkg|libtxc_dxtn}} and {{Pkg|lib32-libtxc_dxtn}} as almost all games require it.<br />
<br />
===General troubleshooting===<br />
{{Note|In addition to being documented here, any bug/fix/error should be, if not already, reported on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GitHub page].}}<br />
<br />
{{Note|Connection problems may occur when using DD-WRT with peer-to-peer traffic filtering.}}<br />
<br />
====GUI problems with KDE====<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/594 issue 594]<br />
<br />
If you are using KDE and you have problems with the GUI (such as lag or random crashes) modify the compositing type to OpenGL/Raster. In KDE system settings, go to "Desktop Effects" in the "Workspace Appearance and Behaviour" section. Open the "Advanced" tab. Change "Compositing type" from XRender to OpenGL.<br />
<br />
====The close button only minimizes the window====<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/1025 issue 1025]<br />
<br />
If you have your tray icon working you have the option of making the close button close to tray instead of minimize. To do this, set the environment variable {{ic|STEAM_FRAME_FORCE_CLOSE}} to {{ic|1}}. You can do this by launching Steam using the following command.<br />
$ STEAM_FRAME_FORCE_CLOSE=1 steam<br />
<br />
====Flash not working on 64-bit systems====<br />
: Steam Support [https://support.steampowered.com/kb_article.php?ref=1493-GHZB-7612 article]<br />
<br />
First ensure {{pkg|lib32-flashplugin}} is installed. It should be working at this point, if not create a local Steam flash plugin folder<br />
mkdir ~/.steam/bin32/plugins/<br />
and set a symbolic link to the global lib32 flash plugin file in your upper new folder<br />
ln -s /usr/lib32/mozilla/plugins/libflashplayer.so ~/.steam/bin32/plugins/<br />
<br />
====Text is corrupt or missing====<br />
The Steam Support [https://support.steampowered.com/kb_article.php?ref=1974-YFKL-4947 instructions] for Windows seem to work on Linux also: Simply download [https://support.steampowered.com/downloads/1974-YFKL-4947/SteamFonts.zip SteamFonts.zip] and install them (copying to ~/.fonts/ works at least).<br />
<br />
====Error on some games: S3TC support is missing====<br />
Install the following dependencies:<br />
* {{pkg|libtxc_dxtn}}<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Black screen on (Valve?) games (but audio works)====<br />
Check the Steam stdout/stderr for Error lines, some quick dependencies for reference:<br />
* {{pkg|lib32-intel-dri}} (not confirmed as absolutely necessary)<br />
<br />
run steam from console via primusrun steam<br />
<br />
====SetLocale('en_US.UTF-8') fails at game startup====<br />
Edit /etc/locale.gen in your favourite editor and uncomment the line {{ic|en_US.UTF-8 UTF-8}}. Then run {{ic|locale-gen}} as root.<br />
<br />
=== Game-specific depencencies and troubleshooting ===<br />
{{Note|Steam installs library dependencies of a game to a library directory, but some are missing at the moment. Report bugs involving missing libraries on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GIT page] before adding workarounds here, and then provide a link to the bug so it can be removed as the issues are fixed. Libraries like {{pkg|glu}} and {{pkg|libtxc_dxtn}} are exceptions to this, as they are just part of the implementation of the open drivers.}}<br />
<br />
====Amnesia: The Dark Descent====<br />
=====Dependencies=====<br />
* {{pkg|lib32-freealut}}<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxmu}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
<br />
=====Troubleshooting=====<br />
======Segfault======<br />
If you are using open source drivers you will need {{pkg|lib32-libtxc_dxtn}} . See [http://www.frictionalgames.com/forum/thread-10924.html official forum] for details<br />
<br />
====And Yet It Moves====<br />
=====Dependencies=====<br />
* {{aur|lib32-libtheora}}<br />
* {{aur|lib32-libjpeg6}}<br />
* {{aur|lib32-libtiff4}}<br />
* {{pkg|lib32-libpng12}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and following message can be observed on console<br />
readlink: extra operand ‘Yet’<br />
Try 'readlink --help' for more information.<br />
To fix this, open {{ic|~/.steam/root/SteamApps/common/And Yet It Moves/AndYetItMovesSteam.sh}} in text editor and replace line<br />
ayim_dir="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"<br />
with<br />
ayim_dir="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"<br />
<br />
====Bastion====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Counter-Strike: Source====<br />
=====Troubleshooting=====<br />
======Game crashes upon joining======<br />
If the game is constantly crashing when trying to join a game and in {{ic|~/.steam/root/SteamApps/your@account/Counter Strike Source/hl2.sh}} you have {{ic|1=__GL_THREADED_OPTIMIZATIONS=1}}, try changing it to {{ic|0}}.<br />
<br />
====Crusader Kings II====<br />
Game is installed into {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II}}.<br />
<br />
Game can be started directly, without need of running Steam on background, using command {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II/ck2}}.<br />
<br />
Saves are stored in {{ic|$HOME/Documents/Paradox Interactive/Crusader Kings II/save games/}}.<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
<br />
The default audio driver used by Crusader Kings 2 is for [[PulseAudio]], so an override is necessary:<br />
<br />
{{hc|~/.pam_environment|2=SDL_AUDIODRIVER=alsa}}<br />
<br />
====Defender's Quest: Valley of the Forgotten====<br />
=====Dependencies=====<br />
* {{aur|adobe-air-sdk}}<br />
* {{pkg|xterm}}<br />
<br />
=====Troubleshooting=====<br />
======Game does not start======<br />
* Package {{pkg|adobe-air-sdk}} installs Adobe Air not in the place where the game expects it to be, fix this by creating a simlink (requires root permissions):<br />
{{bc|ln -s /opt/adobe-air-sdk/runtimes/air/linux/Adobe\ AIR /opt/Adobe\ AIR}}<br />
<br />
* Adobe AIR will want to check whether the EULA was accepeted and fail in doing so. To fix it, issue the following commands (from under your user, not under root):<br />
{{bc|mkdir -p ~/.appdata/Adobe/AIR<br />
echo 2 > ~/.appdata/Adobe/AIR/eulaAccepted}}<br />
Note that by issuing these commands you're accepting Adobe Air's EULA.<br />
<br />
====Dwarfs F2P====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libgdiplus}}<br />
<br />
=====Troubleshooting=====<br />
======Game does not start======<br />
There was a bug that stopped Steam from fetching all the needed files. It should be resolved, if you still bump into this problem, try verifying integrity of game cache from game properties, local files tab.<br />
<br />
====FTL: Faster than Light====<br />
=====Dependencies=====<br />
Libraries are downloaded and and placed in the game's data directory for both architectures. As long as you run FTL by the launcher script (or via the shortcut in Steam) you should not need to download any further libraries.<br />
<br />
=====Compatibility=====<br />
After installation, FTL may fail to run due to a 'Text file busy' error (characterised in Steam by your portrait border going green then blue again). The easiest way to mend this is to just reboot your system. Upon logging back in FTL should run.<br />
<br />
The Steam overlay in FTL does not function as it is not a 3D accelerated game. Because of this the desktop notifications will be visible. If playing in fullscreen, therefore, these notifications in some systems may steal focus and revert you back to windowed mode with no way of going back to fullscreen without relaunching. The binaries for FTL on Steam have no DRM and it is possible to run the game ''without'' Steam running, so in some cases that may be optimum - just ensure that you launch FTL via the launcher script in {{ic|~/.steam/root/SteamApps/common/FTL Faster than Light/data/}} rather than the FTL binary in the $arch directory.<br />
<br />
=====Problems with open-source video driver=====<br />
FTL may fail to run if you are using an opensource driver for your video card. There are two solutions: install a proprietary video driver or delete (rename if you are unsure) the library "libstdc++.so.6" inside {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/amd64/lib}} This is if you are using a 64bit system, I suppose that in case you are using a 32bit system you have to remove (rename) the same library located into {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/x86/lib}}.<br />
<br />
====Harvest: Massive Encounter====<br />
=====Dependencies=====<br />
* {{pkg|lib32-gtk2}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-openal}}<br />
* {{aur|lib32-nvidia-cg-toolkit}}<br />
* {{aur|lib32-libjpeg6}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and throws you to library installer loop. Just edit {{ic| ~/.steam/root/SteamApps/common/Harvest Massive Encounter/run_harvest}} and remove everything but<br />
#!/bin/bash<br />
exec ./Harvest<br />
<br />
====Killing Floor====<br />
=====Troubleshooting=====<br />
======Screen resolution======<br />
Killing Floor runs pretty much from scratch, although you might have to change in-game resolution screen as the default one is '''800x600''' and a '''4:3''' screen format.<br />
If you try to modify screen resolution in-game, it might crash your desktop enviroment.<br />
To fix this, please set the desired resolution screen size by modifing your {{ic|~/.killingfloor/System/KillingFloor.ini}} with your prefered editor.<br />
{{hc|# nano ~/.killingfloor/System/KillingFloor.ini|<nowiki><br />
...<br />
<br />
[WinDrv.WindowsClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=???<br />
MenuViewportY=???<br />
<br />
...<br />
<br />
[SDLDrv.SDLClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=????<br />
MenuViewportY=????<br />
<br />
...<br />
</nowiki>}}<br />
{{Note|Replace all the '''????''' with the corresponding numbers according the desired resolution. If you have an 1366x768 screen and want to use it at it's fullest, change all the Viewport fields to something like '''ViewportX&#61;1366''' and '''ViewportY&#61;768''' in the corresponding areas.}}<br />
{{Note| The dots in the middle indicate that there are more fields in that .ini file. But for screen resolution troubleshooting, you do not need to modify anything else.}}<br />
<br />
Save the file and restart the game, it should work now.<br />
<br />
======Windowed Mode======<br />
Uncheck fullscreen in the options menu, and use {{Keypress|Ctrl+g}} to stop mouse capturing (that was non-obvious to discover..). This way you can easily minimize it and do other other things..and let your WM handle things.<br />
<br />
====Multiwinia====<br />
=====Dependencies=====<br />
* {{pkg|lib32-openal}}<br />
<br />
Game will not launch without {{pkg|lib32-openal}}.<br />
<br />
====Penumbra: Overture====<br />
=====Dependencies=====<br />
(Taken from {{aur|penumbra-collection}} and {{aur|penumbra-overture-ep1-demo}})<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxft}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
* {{pkg|lib32-sdl_image}}<br />
<br />
=====Troubleshooting=====<br />
======Windowed Mode======<br />
There is no in-game option to change to the windowed mode, you will have to edit {{ic|~/.frictionalgames/Penumbra/Overture/settings.cfg}} to activate it.<br />
Find {{ic|FullScreen&#61;"true"}} and change it to {{ic|FullScreen&#61;"false"}}, after this the game should start in windowed mode.<br />
<br />
====Psychonauts====<br />
=====Dependencies=====<br />
* {{pkg|libtxc_dxtn}} and {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Revenge of the Titans====<br />
=====Dependencies=====<br />
* {{pkg|libxtst}} and {{pkg|lib32-libxtst}}<br />
<br />
====Serious Sam 3: BFE====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
Try running:<br />
# pacman -S lib32-alsa-plugins<br />
# mkdir -p /usr/lib/i386-linux-gnu/alsa-lib/<br />
# ln -s /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so /usr/lib/i386-linux-gnu/alsa-lib/<br />
<br />
If that does not work, try tweaking ~/.alsoftrc as proposed by the [http://steamcommunity.com/app/221410/discussions/3/846940248238406974/ Steam community] (Serious Sam 3: BFE uses OpenAL to output sound). If you are not using Pulse Audio, you may want to write the following configuration:<br />
<br />
{{hc|$ nano ~/.alsoftrc|<nowiki><br />
[general]<br />
drivers = alsa<br />
[alsa]<br />
device = default<br />
capture = default<br />
mmap = true<br />
</nowiki>}}<br />
<br />
====Spacechem====<br />
=====Dependencies=====<br />
* {{pkg|lib32-sqlite}}<br />
* {{pkg|lib32-sdl_image}}<br />
* {{aur|lib32-sdl_mixer}}<br />
<br />
=====Troubleshooting=====<br />
======Game crash======<br />
The shipped x86 version of Spacechem does not work on x64 with the game's own libSDL* files, and crashes with some strange output.<br />
<br />
To solve this just remove or move the three files {{ic|libSDL-1.2.so.0}}, {{ic|libSDL_image-1.2.so.0}}, {{ic|libSDL_mixer-1.2.so.0}} from {{ic|~/.steam/root/SteamApps/common/SpaceChem}}<br />
<br />
====Space Pirates and Zombies====<br />
=====Dependencies=====<br />
* {{pkg|lib32-openal}}<br />
=====Troubleshooting=====<br />
======No audio======<br />
Apply the fix documented in Serious Sam 3: BFE above.<br />
<br />
====Splice====<br />
Splice comes with both x86 and x64 binaries. Steam does not have to be running to launch this game.<br />
=====Dependencies=====<br />
* {{pkg|glu}}<br />
* {{pkg|mono}}<br />
<br />
====Steel Storm: Burning Retribution====<br />
=====Troubleshooting=====<br />
======Start with black screen======<br />
The game tries to launch in 1024x768 resolution with fullscreen mode by default. It is impossible on some devices.<br />
(for example laptop Samsung Series9 with intel hd4000 video).<br />
<br />
You can launch the game in windowed mode. To do this open game Properties in Steam, in General tab select "Set launch options..." and type "-window".<br />
<br />
Now you can change the resolution in game.<br />
<br />
======No English fonts======<br />
If you use intel video card, just disable S3TC in DriConf.<br />
<br />
====Superbrothers: Sword & Sworcery EP====<br />
=====Dependencies=====<br />
* {{pkg|lib32-glu}}<br />
<br />
====Team Fortress 2 ====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
It happens if there is no PulseAudio in your system.<br />
If you want to use [[ALSA]], you need to launch Steam or the game directly with {{ic|1=SDL_AUDIODRIVER=alsa}} <br />
(From [http://steamcommunity.com/app/221410/discussions/0/882966056462819091/#c882966056470753683 SteamCommunity]).<br />
<br />
If it still does not work, you may also need to set the environment variable AUDIODEV. For instance {{ic|1=AUDIODEV=Live}}. Use {{ic|aplay -l}} to list the available sound cards.<br />
<br />
====The Book of Unwritten Tales====<br />
If the game does not start, go to Properties --> Uncheck "Enable Steam Community In-Game".<br />
<br />
The game may segfault upon clicking the Setting menu and possibly during or before gameplay. This is a known issue and you will unfortunately have to wait for a fix from the developer. A workaround (taken from the [http://steamcommunity.com/app/221410/discussions/3/846939071081758230/#p2 steam forums]) is to replace the game's RenderSystem_GL.so with one from debian's repositories. To do that download this [https://launchpad.net/ubuntu/+archive/primary/+files/libogre-1.7.4_1.7.4-3_i386.deb deb file], extract it and replace the following file:<br />
~/.local/share/Steam/SteamApps/common/The Book of Unwritten Tales/lib/32/RenderSystem_GL.so<br />
with the one that comes with the .deb package.<br />
=====Dependencies=====<br />
* {{aur|lib32-libxaw}}<br />
* {{aur|lib32-jasper}}<br />
<br />
====The Clockwork Man====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libidn}}<br />
<br />
====Trine 2====<br />
=====Dependencies=====<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxxf86vm}}<br />
* {{pkg|lib32-libdrm}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|xorg-xwininfo}}<br />
<br />
=====Troubleshooting=====<br />
* If colors are wrong with FOSS drivers (r600g at least), try to run the game in windowed mode, rendering will be corrected. ([https://bugs.freedesktop.org/show_bug.cgi?id=60553 bugreport])<br />
* If sound plays choppy, try to edit {{ic|/etc/openal/alsoft.conf}} with values<br />
<br />
drivers=pulse,alsa<br />
frequency=48000<br />
<br />
* If the game resolution is wrong when using a dual monitor setup and you can't see the whole window edit {{ic|~/.frozenbyte/Trine2/options.txt}} and change the options ForceFullscreenWidth and ForceFullscreenHeight to the resolution of your monitor on which you want to play the game.<br />
<br />
====Unity of Command====<br />
=====Dependencies=====<br />
* {{pkg|lib32-pango}}<br />
<br />
=====Troubleshooting=====<br />
* If squares are shown instead of text, try removing {{ic|$HOME/Steam/SteamApps/common/Unity of Command/bin/libpangoft2-1.0.so.0}}.<br />
<br />
====World of Goo====<br />
=====Changing Resolution=====<br />
* To change the game resolution edit the section "Graphics display" in the configuration file {{ic|$HOME/Steam/SteamApps/common/World of Goo/properties/config.txt}}. For example, see below:<br />
<!-- Graphics display --><br />
<param name="screen_width" value="1680" /><br />
<param name="screen_height" value="1050" /><br />
<param name="color_depth" value="0" /><br />
<param name="fullscreen" value="true" /><br />
<param name="ui_inset" value="10" /><br />
<br />
===Skins for Steam===<br />
<br />
The Steam interface can be fully customized by copying its various interface files in its skins directory and modifying them.<br />
<br />
====Steam Skin Manager====<br />
<br />
The process of applying a skin to Steam can be greatly simplified using {{aur|steam-skin-manager}} from the AUR. The package also comes with a hacked version of the Steam launcher which allows the window manager to draw its borders on the Steam window.<br />
<br />
As a result, skins for Steam will come in two flavors, one with and one without window buttons. The skin manager will prompt you whether you use the hacked version or not, and will automatically apply the theme corresponding to your GTK theme if it is found. You can of course still apply another skin if you want.<br />
<br />
The package ships with two themes for the default Ubuntu themes, Ambiance and Radiance. A Faience theme is under development and already has its own package on the AUR {{aur|steam-skin-faience-git}}.<br />
<br />
== Steam on Wine ==<br />
<br />
Install {{Pkg|wine}} from the official repositories and follow the instructions provided in the [[Wine|article]].<br />
<br />
Install the required Microsoft fonts {{AUR|ttf-microsoft-tahoma}} and {{AUR|ttf-ms-fonts}} from the [[AUR]] or through {{AUR|winetricks-svn}}.<br />
{{Note|If you have access to Windows discs, you may want to install {{AUR|ttf-win7-fonts}} instead.}}<br />
<br />
If you have an old Wine prefix ({{ic|~/.wine}}), you should remove it and let Wine create a new one to avoid problems (you can transfer over anything you want to keep to the new Wine prefix).<br />
<br />
===Installation===<br />
<br />
Download and run the Steam installer from [http://store.steampowered.com/about/ steampowered.com]. It is no longer an {{ic|.exe}} file so you have to start it with {{ic|msiexec}}: <br />
$ msiexec /i SteamInstall.msi<br />
<br />
===Starting Steam===<br />
<br />
On x86:<br />
$ wine ~/.wine/drive_c/Program\ Files/Steam/Steam.exe<br />
<br />
On x86_64 (with steam installed to a clean wine prefix):<br />
$ wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe<br />
<br />
Alternatively, you may use this method:<br />
<br />
$ wine "C:\\Program Files\\Steam\\steam.exe" <br />
<br />
You should consider making an alias to easily start steam (and put it in your shell's rc file), example:<br />
alias steam='wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
<br />
{{Note|If you are using an nvidia card through bumblebee, you should prefix those commands with {{ic|optirun}}.}}<br />
<br />
===Tips===<br />
<br />
====Performance====<br />
<br />
Consider disabling wine debugging output by adding this to your shell rc file:<br />
export WINEDEBUG=-all<br />
or, just add it to your steam alias to only disable it for steam:<br />
alias steam='WINEDEBUG=-all wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
Additionally, Source games rely on a paged pool memory size specification for audio, and WINE by default does not have this set. To set it:<br />
wine reg add "HKLM\\System\\CurrentControlSet\\Control\\Session Manager\\Memory Management\\" /v PagedPoolSize /t REG_DWORD /d 402653184 /f<br />
<br />
==== Application Launch Options ====<br />
Go to "Properties" -> "Set Launch Options", e.g.:<br />
{{bc|-console -dxlevel 90 -width 1280 -height 1024<br />
}}<br />
* {{ic|console}}<br />
Activate the console in the application to change detailed applications settings.<br />
* {{ic|dxlevel}}<br />
Set the application's DirectX level, e.g. 90 for DirectX Version 9.0. It is recommended to use the video card's DirectX version to prevent crashes. See the official Valve Software Wiki http://developer.valvesoftware.com/wiki/DirectX_Versions for details.<br />
* {{ic|width}} and {{ic|height}}<br />
Set the screen resolution. In some cases the graphic settings are not saved in the application and the applications always starts in the default resolution.<br />
Please refer to http://developer.valvesoftware.com/wiki/Launch_options for a complete list of launch options.<br />
<br />
==== Using a Pre-Existing Steam Install ====<br />
<br />
If you have a shared drive with Windows, or already have a Steam installation somewhere else, you can simply symlink the Steam directory to {{ic|~/.wine/drive_c/Program Files/Steam/}} . However, be sure to do '''all''' the previous steps in this wiki. Confirm Steam launches and logs into your account, ''then'' do this:<br />
<br />
cd ~/.wine/drive_c/Program\ Files/ <br />
mv Steam/ Steam.backup/ (or you can just delete the directory)<br />
ln -s /mnt/windows_partition/Program\ Files/Steam/<br />
<br />
{{Note|If you have trouble starting Steam after symlinking the entire Steam folder, try linking only the {{ic|steamapps}} subdirectory in your existing wine steam folder instead.}}<br />
<br />
{{Note|If you still have trouble starting games, use {{ic|sudo mount --bind /path/to/SteamApps ~/.local/share/Steam/SteamApps -ouser&#61;your-user-name }}, this is the only thing that worked for me with {{ic|TF2}}}}<br />
<br />
====Running Steam in a second X Server====<br />
<br />
Assuming you are using the script above to start Steam, make a new script, called {{ic|x.steam.sh}}. You should run this when you want to start Steam in a new X server, and {{ic|steam.sh}} if you want Steam to start in the current X server. <br />
<br />
If due to misconfiguration a black screen is shown, you could always close down the second X server by pressing {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}}.<br />
<br />
{{bc|1=<br />
#!/bin/bash <br />
<br />
DISPLAY=:1.0<br />
<br />
xinit $HOME/steam.sh $* -- :1<br />
}}<br />
<br />
Now you can use {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F7}} to get to your first X server with your normal desktop, and {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F8}} to go back to your game. <br />
<br />
Because the second X server is ''only'' running the game and the first X server with all your programs is backgrounded, performance should increase. In addition, it is much more convenient to switch X servers while in game to access other resources, rather than having to exit the game completely or {{Keypress|Alt}}-{{Keypress|Tab}} out. Finally, it is useful for when Steam or WINE goes haywire and leaves a bunch of processes in memory after Steam crashes. Simply {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}} on the second X server to kill that X and all processes on that desktop will terminate as well. <br />
<br />
'''If you get errors that look like "Xlib: connection to ":1.0" refused by server" when starting the second X''': You will need to adjust your X permissions.<br />
<br />
'''If you lose the ability to use the keyboard while using Steam''': This is an odd bug that does not happen with other games. A solution is to use a WM in the second X as well. Thankfully, you do not need to run a large WM. Openbox and icewm have been confirmed to fix this bug (evilwm, pekwm, lwm ''do not'' work), but the icewm taskbar shows up on the bottom of the game, thus it's recommended to use [[Openbox]]. Install {{Pkg|openbox}} from the [[official repositories]], then add {{Ic|openbox &}} to the top of your {{ic|steam.sh}} file. Note you can run other programs (ex. Teamspeak &) or set X settings (ex. xset, xmodmap) before the WINE call as well.<br />
<br />
====Steam Links in Firefox, Chrome, Etc====<br />
To make steam:// urls in your browser connect with steam in wine, there are several things you can do. One involves making steam url-handler keys in gconf, another involves making protocol files for kde, others involve tinkering with desktop files or the Local State file for chromium. These seem to only work in firefox or under certain desktop configurations. One way to do it that works more globally is using mimeo, a tool made by Xyne (an Arch TU) which follows. For another working and less invasive (but firefox-only) way, see the first post [http://ubuntuforums.org/showthread.php?t=433548 here] .<br />
<br />
* Make {{ic| /usr/bin/steam}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
#!/bin/sh<br />
#<br />
# Steam wrapper script<br />
#<br />
exec wine "c:\\program files\\steam\\steam.exe" "$@"<br />
}}<br />
<br />
* Make it executable.<br />
<br />
# chmod +x /usr/bin/steam<br />
<br />
* Install {{AUR|mimeo}} and {{AUR|xdg-utils-mimeo}} from AUR. You will need to replace the existing {{pkg|xdg-utils}} if installed. In XFCE, you will also need {{pkg|xorg-utils}}.<br />
<br />
* Create {{ic|~/.config/mimeo.conf}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
/usr/bin/steam %u<br />
^steam://<br />
}}<br />
<br />
* Lastly, open {{ic|/usr/bin/xdg-open}} in your favorite editor. Go to the {{ic|detectDE()}} section and change it to look as follows:<br />
<br />
{{bc|<nowiki><br />
detectDE()<br />
{<br />
#if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;<br />
#elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;<br />
#elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;<br />
#elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;<br />
#elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;<br />
#else DE=""<br />
#fi<br />
DE=""<br />
}<br />
</nowiki>}}<br />
<br />
* Restart the browser and you should be good to go. In chromium, you cannot enter a {{ic|steam://}} link in the url box like you can with firefox. The forum link above has a {{ic|steam://open/friends}} link to try if needed.<br />
<br />
{{Note|If you have any problems with file associations after doing this, simply revert to regular xdg-utils and undo your changes to {{ic|/usr/bin/xdg-open}}.}}<br />
{{Note|Those on other distributions that stumble upon this page, see the link above for firefox specific instructions. No easy way to get it working on Chromium on other distros exists.}}<br />
<br />
====No text rendered problem====<br />
If there is no text/font rendered when starting steam you should try to start steam with the parameter {{ic|-no-dwrite}}. Read more in [https://bbs.archlinux.org/viewtopic.php?id=146223 the forum thread about it.]<br />
{{bc|wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe -no-dwrite}}<br />
<br />
== See Also ==<br />
* https://wiki.gentoo.org/wiki/Steam</div>Lordheavyhttps://wiki.archlinux.org/index.php?title=Steam&diff=248385Steam2013-02-25T00:49:50Z<p>Lordheavy: /* Dependencies */</p>
<hr />
<div>[[Category:Gaming]]<br />
[[Category:Wine]]<br />
[[ja:Steam]]<br />
[[zh-CN:Steam]]<br />
{{Article summary start}}<br />
{{Article summary text|[http://store.steampowered.com/about/ Steam] is a content delivery system made by Valve Software. It is best known as the platform needed to play Source Engine games (e.g. Half-Life 2, Counter-Strike). Today it offers many games from many other developers.}}<br />
<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Wine}}<br />
{{Article summary end}}<br />
<br />
See the [[Wikipedia:Steam (software)|Steam Wikipedia page]] and the page in the [http://appdb.winehq.org/objectManager.php?sClass=version&iId=19444 Wine Application Database] for more info.<br />
<br />
== Native Steam on Linux ==<br />
<br />
{{Note|Arch Linux is not [https://support.steampowered.com/kb_article.php?ref&#61;1504-QHXN-8366 officially supported].}}<br />
<br />
{{Note|If you have a pure 64-bit installation, you will need to enable the [[multilib]] repository in pacman. This is because the Steam client is a 32-bit application. It may also make sense to install multilib-devel to provide some important multilib libraries. You also most likely need to install the 32-bit version of your graphics driver to run Steam.}}<br />
<br />
Install {{Pkg|steam}} from the [[multilib]] repository.<br />
<br />
Steam makes heavy usage of the Arial font. A decent Arial font to use is {{Pkg|ttf-liberation}} or the official Microsoft Arial fonts: {{aur|ttf-microsoft-arial}} or {{aur|ttf-ms-fonts}} packages from the [[AUR]]. Asian languages require {{Pkg|wqy-zenhei}} to display properly.<br />
<br />
Steam is '''not supported''' on this distribution. As such some fixes are needed on the users part to get things functioning properly. Several games have dependencies which may be missing from your system. If a game fails to launch (often without error messages) then make sure all of the libraries listed below that game are installed. Please install {{Pkg|libtxc_dxtn}} and {{Pkg|lib32-libtxc_dxtn}} as almost all games require it.<br />
<br />
===General troubleshooting===<br />
{{Note|In addition to being documented here, any bug/fix/error should be, if not already, reported on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GitHub page].}}<br />
<br />
{{Note|Connection problems may occur when using DD-WRT with peer-to-peer traffic filtering.}}<br />
<br />
====GUI problems with KDE====<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/594 issue 594]<br />
<br />
If you are using KDE and you have problems with the GUI (such as lag or random crashes) modify the compositing type to OpenGL/Raster. In KDE system settings, go to "Desktop Effects" in the "Workspace Appearance and Behaviour" section. Open the "Advanced" tab. Change "Compositing type" from XRender to OpenGL.<br />
<br />
====The close button only minimizes the window====<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/1025 issue 1025]<br />
<br />
If you have your tray icon working you have the option of making the close button close to tray instead of minimize. To do this, set the environment variable {{ic|STEAM_FRAME_FORCE_CLOSE}} to {{ic|1}}. You can do this by launching Steam using the following command.<br />
$ STEAM_FRAME_FORCE_CLOSE=1 steam<br />
<br />
====Flash not working on 64-bit systems====<br />
: Steam Support [https://support.steampowered.com/kb_article.php?ref=1493-GHZB-7612 article]<br />
<br />
First ensure {{pkg|lib32-flashplugin}} is installed. It should be working at this point, if not create a local Steam flash plugin folder<br />
mkdir ~/.steam/bin32/plugins/<br />
and set a symbolic link to the global lib32 flash plugin file in your upper new folder<br />
ln -s /usr/lib32/mozilla/plugins/libflashplayer.so ~/.steam/bin32/plugins/<br />
<br />
====Text is corrupt or missing====<br />
The Steam Support [https://support.steampowered.com/kb_article.php?ref=1974-YFKL-4947 instructions] for Windows seem to work on Linux also: Simply download [https://support.steampowered.com/downloads/1974-YFKL-4947/SteamFonts.zip SteamFonts.zip] and install them (copying to ~/.fonts/ works at least).<br />
<br />
====Error on some games: S3TC support is missing====<br />
Install the following dependencies:<br />
* {{pkg|libtxc_dxtn}}<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Black screen on (Valve?) games (but audio works)====<br />
Check the Steam stdout/stderr for Error lines, some quick dependencies for reference:<br />
* {{pkg|libgles}}<br />
* {{pkg|lib32-libgles}}<br />
* {{pkg|lib32-intel-dri}} (not confirmed as absolutely necessary)<br />
<br />
run steam from console via primusrun steam<br />
<br />
====SetLocale('en_US.UTF-8') fails at game startup====<br />
Edit /etc/locale.gen in your favourite editor and uncomment the line {{ic|en_US.UTF-8 UTF-8}}. Then run {{ic|locale-gen}} as root.<br />
<br />
=== Game-specific depencencies and troubleshooting ===<br />
{{Note|Steam installs library dependencies of a game to a library directory, but some are missing at the moment. Report bugs involving missing libraries on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GIT page] before adding workarounds here, and then provide a link to the bug so it can be removed as the issues are fixed. Libraries like {{pkg|glu}} and {{pkg|libtxc_dxtn}} are exceptions to this, as they are just part of the implementation of the open drivers.}}<br />
<br />
====Amnesia: The Dark Descent====<br />
=====Dependencies=====<br />
* {{pkg|lib32-freealut}}<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxmu}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
<br />
=====Troubleshooting=====<br />
======Segfault======<br />
If you are using open source drivers you will need {{pkg|lib32-libtxc_dxtn}} . See [http://www.frictionalgames.com/forum/thread-10924.html official forum] for details<br />
<br />
====And Yet It Moves====<br />
=====Dependencies=====<br />
* {{aur|lib32-libtheora}}<br />
* {{aur|lib32-libjpeg6}}<br />
* {{aur|lib32-libtiff4}}<br />
* {{pkg|lib32-libpng12}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and following message can be observed on console<br />
readlink: extra operand ‘Yet’<br />
Try 'readlink --help' for more information.<br />
To fix this, open {{ic|~/.steam/root/SteamApps/common/And Yet It Moves/AndYetItMovesSteam.sh}} in text editor and replace line<br />
ayim_dir="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"<br />
with<br />
ayim_dir="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"<br />
<br />
====Bastion====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Counter-Strike: Source====<br />
=====Troubleshooting=====<br />
======Game crashes upon joining======<br />
If the game is constantly crashing when trying to join a game and in {{ic|~/.steam/root/SteamApps/your@account/Counter Strike Source/hl2.sh}} you have {{ic|1=__GL_THREADED_OPTIMIZATIONS=1}}, try changing it to {{ic|0}}.<br />
<br />
====Crusader Kings II====<br />
Game is installed into {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II}}.<br />
<br />
Game can be started directly, without need of running Steam on background, using command {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II/ck2}}.<br />
<br />
Saves are stored in {{ic|$HOME/Steam/SteamApps/common/Crusader Kings II/save games/}}.<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
<br />
The default audio driver used by Crusader Kings 2 is for [[PulseAudio]], so an override is necessary:<br />
<br />
{{hc|~/.pam_environment|2=SDL_AUDIODRIVER=alsa}}<br />
<br />
====Dwarfs F2P====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libgdiplus}}<br />
<br />
=====Troubleshooting=====<br />
======Game does not start======<br />
There was a bug that stopped Steam from fetching all the needed files. It should be resolved, if you still bump into this problem, try verifying integrity of game cache from game properties, local files tab.<br />
<br />
====FTL: Faster than Light====<br />
=====Dependencies=====<br />
Libraries are downloaded and and placed in the game's data directory for both architectures. As long as you run FTL by the launcher script (or via the shortcut in Steam) you should not need to download any further libraries.<br />
<br />
=====Compatibility=====<br />
After installation, FTL may fail to run due to a 'Text file busy' error (characterised in Steam by your portrait border going green then blue again). The easiest way to mend this is to just reboot your system. Upon logging back in FTL should run.<br />
<br />
The Steam overlay in FTL does not function as it is not a 3D accelerated game. Because of this the desktop notifications will be visible. If playing in fullscreen, therefore, these notifications in some systems may steal focus and revert you back to windowed mode with no way of going back to fullscreen without relaunching. The binaries for FTL on Steam have no DRM and it is possible to run the game ''without'' Steam running, so in some cases that may be optimum - just ensure that you launch FTL via the launcher script in {{ic|~/.steam/root/SteamApps/common/FTL Faster than Light/data/}} rather than the FTL binary in the $arch directory.<br />
<br />
=====Problems with open-source video driver=====<br />
FTL may fail to run if you are using an opensource driver for your video card. There are two solutions: install a proprietary video driver or delete (rename if you are unsure) the library "libstdc++.so.6" inside {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/amd64/lib}} This is if you are using a 64bit system, I suppose that in case you are using a 32bit system you have to remove (rename) the same library located into {{ic|~/.steam/root/SteamApps/common/FTL\ Faster\ Than\ Light/data/x86/lib}}.<br />
<br />
====Harvest: Massive Encounter====<br />
=====Dependencies=====<br />
* {{pkg|lib32-gtk2}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{aur|lib32-nvidia-cg-toolkit}}<br />
* {{aur|lib32-libjpeg6}}<br />
<br />
=====Compatibility=====<br />
Game refuses to launch and throws you to library installer loop. Just edit {{ic| ~/.steam/root/SteamApps/common/Harvest Massive Encounter/run_harvest}} and remove everything but<br />
#!/bin/bash<br />
INSTDIR="`dirname $0`" ; cd "${INSTDIR}" ; INSTDIR="`pwd`"<br />
export LD_LIBRARY_PATH=${INSTDIR}/bin:~/.steam/bin<br />
exec ./Harvest<br />
<br />
====Killing Floor====<br />
=====Troubleshooting=====<br />
======Screen resolution======<br />
Killing Floor runs pretty much from scratch, although you might have to change in-game resolution screen as the default one is '''800x600''' and a '''4:3''' screen format.<br />
If you try to modify screen resolution in-game, it might crash your desktop enviroment.<br />
To fix this, please set the desired resolution screen size by modifing your {{ic|~/.killingfloor/System/KillingFloor.ini}} with your prefered editor.<br />
{{hc|# nano ~/.killingfloor/System/KillingFloor.ini|<nowiki><br />
...<br />
<br />
[WinDrv.WindowsClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=???<br />
MenuViewportY=???<br />
<br />
...<br />
<br />
[SDLDrv.SDLClient]<br />
WindowedViewportX=????<br />
WindowedViewportY=????<br />
FullscreenViewportX=????<br />
FullscreenViewportY=????<br />
MenuViewportX=????<br />
MenuViewportY=????<br />
<br />
...<br />
</nowiki>}}<br />
{{Note|Replace all the '''????''' with the corresponding numbers according the desired resolution. If you have an 1366x768 screen and want to use it at it's fullest, change all the Viewport fields to something like '''ViewportX&#61;1366''' and '''ViewportY&#61;768''' in the corresponding areas.}}<br />
{{Note| The dots in the middle indicate that there are more fields in that .ini file. But for screen resolution troubleshooting, you do not need to modify anything else.}}<br />
<br />
Save the file and restart the game, it should work now.<br />
<br />
======Windowed Mode======<br />
Uncheck fullscreen in the options menu, and use {{Keypress|Ctrl+g}} to stop mouse capturing (that was non-obvious to discover..). This way you can easily minimize it and do other other things..and let your WM handle things.<br />
<br />
====Multiwinia====<br />
=====Dependencies=====<br />
* {{pkg|lib32-openal}}<br />
<br />
Game will not launch without {{pkg|lib32-openal}}.<br />
<br />
====Penumbra: Overture====<br />
=====Dependencies=====<br />
(Taken from {{aur|penumbra-collection}} and {{aur|penumbra-overture-ep1-demo}})<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxft}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
* {{pkg|lib32-sdl_image}}<br />
<br />
=====Troubleshooting=====<br />
======Windowed Mode======<br />
There is no in-game option to change to the windowed mode, you will have to edit {{ic|~/.frictionalgames/Penumbra/Overture/settings.cfg}} to activate it.<br />
Find {{ic|FullScreen&#61;"true"}} and change it to {{ic|FullScreen&#61;"false"}}, after this the game should start in windowed mode.<br />
<br />
====Psychonauts====<br />
=====Dependencies=====<br />
* {{pkg|libtxc_dxtn}} and {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Serious Sam 3: BFE====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
Try running:<br />
# pacman -S lib32-alsa-plugins<br />
# mkdir -p /usr/lib/i386-linux-gnu/alsa-lib/<br />
# ln -s /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so /usr/lib/i386-linux-gnu/alsa-lib/<br />
<br />
If that does not work, try tweaking ~/.alsoftrc as proposed by the [http://steamcommunity.com/app/221410/discussions/3/846940248238406974/ Steam community] (Serious Sam 3: BFE uses OpenAL to output sound). If you are not using Pulse Audio, you may want to write the following configuration:<br />
<br />
{{hc|$ nano ~/.alsoftrc|<nowiki><br />
[general]<br />
drivers = alsa<br />
[alsa]<br />
device = default<br />
capture = default<br />
mmap = true<br />
</nowiki>}}<br />
<br />
====Spacechem====<br />
=====Dependencies=====<br />
* {{pkg|lib32-sqlite}}<br />
* {{pkg|lib32-sdl_image}}<br />
* {{aur|lib32-sdl_mixer}}<br />
<br />
=====Troubleshooting=====<br />
======Game crash======<br />
The shipped x86 version of Spacechem does not work on x64 with the game's own libSDL* files, and crashes with some strange output.<br />
<br />
To solve this just remove or move the three files {{ic|libSDL-1.2.so.0}}, {{ic|libSDL_image-1.2.so.0}}, {{ic|libSDL_mixer-1.2.so.0}} from {{ic|~/.steam/root/SteamApps/common/SpaceChem}}<br />
<br />
====Space Pirates and Zombies====<br />
=====Troubleshooting=====<br />
======No audio======<br />
Apply the fix documented in Serious Sam 3: BFE above.<br />
<br />
====Splice====<br />
Splice comes with both x86 and x64 binaries. Steam does not have to be running to launch this game.<br />
=====Dependencies=====<br />
* {{pkg|glu}}<br />
* {{pkg|mono}}<br />
<br />
====Steel Storm: Burning Retribution====<br />
=====Troubleshooting=====<br />
======Start with black screen======<br />
The game tries to launch in 1024x768 resolution with fullscreen mode by default. It is impossible on some devices.<br />
(for example laptop Samsung Series9 with intel hd4000 video).<br />
<br />
You can launch the game in windowed mode. To do this open game Properties in Steam, in General tab select "Set launch options..." and type "-window".<br />
<br />
Now you can change the resolution in game.<br />
<br />
======No English fonts======<br />
If you use intel video card, just disable S3TC in DriConf.<br />
<br />
====Superbrothers: Sword & Sworcery EP====<br />
=====Dependencies=====<br />
* {{pkg|lib32-glu}}<br />
<br />
====Team Fortress 2 ====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
=====Troubleshooting=====<br />
======No audio======<br />
It happens if there is no PulseAudio in your system.<br />
If you want to use [[ALSA]], you need to launch Steam or the game directly with {{ic|1=SDL_AUDIODRIVER=alsa}} <br />
(From [http://steamcommunity.com/app/221410/discussions/0/882966056462819091/#c882966056470753683 SteamCommunity]).<br />
<br />
If it still does not work, you may also need to set the environment variable AUDIODEV. For instance {{ic|1=AUDIODEV=Live}}. Use {{ic|aplay -l}} to list the available sound cards.<br />
<br />
====The Book of Unwritten Tales====<br />
If the game does not start, go to Properties --> Uncheck "Enable Steam Community In-Game".<br />
<br />
The game may segfault upon clicking the Setting menu and possibly during or before gameplay. This is a known issue and you will unfortunately have to wait for a fix from the developer.<br />
=====Dependencies=====<br />
* {{aur|lib32-libxaw}}<br />
* {{aur|lib32-jasper}}<br />
<br />
====The Clockwork Man====<br />
=====Dependencies=====<br />
* {{pkg|lib32-libidn}}<br />
<br />
====Trine 2====<br />
=====Dependencies=====<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxxf86vm}}<br />
* {{pkg|lib32-libdrm}}<br />
* {{pkg|lib32-openal}}<br />
<br />
=====Troubleshooting=====<br />
* If colors are wrong with FOSS drivers (r600g at least), try to run the game in windowed mode, rendering will be corrected. ([https://bugs.freedesktop.org/show_bug.cgi?id=60553 bugreport])<br />
* If sound plays choppy, try to edit {{ic|/etc/openal/alsoft.conf}} with values<br />
<br />
drivers=pulse,alsa<br />
frequency=48000<br />
<br />
====Unity of Command====<br />
=====Dependencies=====<br />
* {{pkg|lib32-pango}}<br />
<br />
=====Troubleshooting=====<br />
* If squares are shown instead of text, try removing {{ic|$HOME/Steam/SteamApps/common/Unity of Command/bin/libpangoft2-1.0.so.0}}.<br />
<br />
====World of Goo====<br />
=====Changing Resolution=====<br />
* To change the game resolution edit the section "Graphics display" in the configuration file {{ic|$HOME/Steam/SteamApps/common/World of Goo/properties/config.txt}}. For example, see below:<br />
<!-- Graphics display --><br />
<param name="screen_width" value="1680" /><br />
<param name="screen_height" value="1050" /><br />
<param name="color_depth" value="0" /><br />
<param name="fullscreen" value="true" /><br />
<param name="ui_inset" value="10" /><br />
<br />
===Skins for Steam===<br />
<br />
The Steam interface can be fully customized by copying its various interface files in its skins directory and modifying them.<br />
<br />
====Steam Skin Manager====<br />
<br />
The process of applying a skin to Steam can be greatly simplified using {{aur|steam-skin-manager}} from the AUR. The package also comes with a hacked version of the Steam launcher which allows the window manager to draw its borders on the Steam window.<br />
<br />
As a result, skins for Steam will come in two flavors, one with and one without window buttons. The skin manager will prompt you whether you use the hacked version or not, and will automatically apply the theme corresponding to your GTK theme if it is found. You can of course still apply another skin if you want.<br />
<br />
The package ships with two themes for the default Ubuntu themes, Ambiance and Radiance. A Faience theme is under development and already has its own package on the AUR {{aur|steam-skin-faience-git}}.<br />
<br />
== Steam on Wine ==<br />
<br />
Install {{Pkg|wine}} from the official repositories and follow the instructions provided in the [[Wine|article]].<br />
<br />
Install the required Microsoft fonts {{AUR|ttf-microsoft-tahoma}} and {{AUR|ttf-ms-fonts}} from the [[AUR]] or through {{AUR|winetricks-svn}}.<br />
{{Note|If you have access to Windows discs, you may want to install {{AUR|ttf-win7-fonts}} instead.}}<br />
<br />
If you have an old Wine prefix ({{ic|~/.wine}}), you should remove it and let Wine create a new one to avoid problems (you can transfer over anything you want to keep to the new Wine prefix).<br />
<br />
===Installation===<br />
<br />
Download and run the Steam installer from [http://store.steampowered.com/about/ steampowered.com]. It is no longer an {{ic|.exe}} file so you have to start it with {{ic|msiexec}}: <br />
$ msiexec /i SteamInstall.msi<br />
<br />
===Starting Steam===<br />
<br />
On x86:<br />
$ wine ~/.wine/drive_c/Program\ Files/Steam/Steam.exe<br />
<br />
On x86_64 (with steam installed to a clean wine prefix):<br />
$ wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe<br />
<br />
Alternatively, you may use this method:<br />
<br />
$ wine "C:\\Program Files\\Steam\\steam.exe" <br />
<br />
You should consider making an alias to easily start steam (and put it in your shell's rc file), example:<br />
alias steam='wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
<br />
{{Note|If you are using an nvidia card through bumblebee, you should prefix those commands with {{ic|optirun}}.}}<br />
<br />
===Tips===<br />
<br />
====Performance====<br />
<br />
Consider disabling wine debugging output by adding this to your shell rc file:<br />
export WINEDEBUG=-all<br />
or, just add it to your steam alias to only disable it for steam:<br />
alias steam='WINEDEBUG=-all wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
Additionally, Source games rely on a paged pool memory size specification for audio, and WINE by default does not have this set. To set it:<br />
wine reg add "HKLM\\System\\CurrentControlSet\\Control\\Session Manager\\Memory Management\\" /v PagedPoolSize /t REG_DWORD /d 402653184 /f<br />
<br />
==== Application Launch Options ====<br />
Go to "Properties" -> "Set Launch Options", e.g.:<br />
{{bc|-console -dxlevel 90 -width 1280 -height 1024<br />
}}<br />
* {{ic|console}}<br />
Activate the console in the application to change detailed applications settings.<br />
* {{ic|dxlevel}}<br />
Set the application's DirectX level, e.g. 90 for DirectX Version 9.0. It is recommended to use the video card's DirectX version to prevent crashes. See the official Valve Software Wiki http://developer.valvesoftware.com/wiki/DirectX_Versions for details.<br />
* {{ic|width}} and {{ic|height}}<br />
Set the screen resolution. In some cases the graphic settings are not saved in the application and the applications always starts in the default resolution.<br />
Please refer to http://developer.valvesoftware.com/wiki/Launch_options for a complete list of launch options.<br />
<br />
==== Using a Pre-Existing Steam Install ====<br />
<br />
If you have a shared drive with Windows, or already have a Steam installation somewhere else, you can simply symlink the Steam directory to {{ic|~/.wine/drive_c/Program Files/Steam/}} . However, be sure to do '''all''' the previous steps in this wiki. Confirm Steam launches and logs into your account, ''then'' do this:<br />
<br />
cd ~/.wine/drive_c/Program\ Files/ <br />
mv Steam/ Steam.backup/ (or you can just delete the directory)<br />
ln -s /mnt/windows_partition/Program\ Files/Steam/<br />
<br />
{{Note|If you have trouble starting Steam after symlinking the entire Steam folder, try linking only the {{ic|steamapps}} subdirectory in your existing wine steam folder instead.}}<br />
<br />
{{Note|If you still have trouble starting games, use {{ic|sudo mount --bind /path/to/SteamApps ~/.local/share/Steam/SteamApps -ouser&#61;your-user-name }}, this is the only thing that worked for me with {{ic|TF2}}}}<br />
<br />
====Running Steam in a second X Server====<br />
<br />
Assuming you are using the script above to start Steam, make a new script, called {{ic|x.steam.sh}}. You should run this when you want to start Steam in a new X server, and {{ic|steam.sh}} if you want Steam to start in the current X server. <br />
<br />
If due to misconfiguration a black screen is shown, you could always close down the second X server by pressing {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}}.<br />
<br />
{{bc|1=<br />
#!/bin/bash <br />
<br />
DISPLAY=:1.0<br />
<br />
xinit $HOME/steam.sh $* -- :1<br />
}}<br />
<br />
Now you can use {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F7}} to get to your first X server with your normal desktop, and {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F8}} to go back to your game. <br />
<br />
Because the second X server is ''only'' running the game and the first X server with all your programs is backgrounded, performance should increase. In addition, it is much more convenient to switch X servers while in game to access other resources, rather than having to exit the game completely or {{Keypress|Alt}}-{{Keypress|Tab}} out. Finally, it is useful for when Steam or WINE goes haywire and leaves a bunch of processes in memory after Steam crashes. Simply {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}} on the second X server to kill that X and all processes on that desktop will terminate as well. <br />
<br />
'''If you get errors that look like "Xlib: connection to ":1.0" refused by server" when starting the second X''': You will need to adjust your X permissions.<br />
<br />
'''If you lose the ability to use the keyboard while using Steam''': This is an odd bug that does not happen with other games. A solution is to use a WM in the second X as well. Thankfully, you do not need to run a large WM. Openbox and icewm have been confirmed to fix this bug (evilwm, pekwm, lwm ''do not'' work), but the icewm taskbar shows up on the bottom of the game, thus it's recommended to use [[Openbox]]. Install {{Pkg|openbox}} from the [[official repositories]], then add {{Ic|openbox &}} to the top of your {{ic|steam.sh}} file. Note you can run other programs (ex. Teamspeak &) or set X settings (ex. xset, xmodmap) before the WINE call as well.<br />
<br />
====Steam Links in Firefox, Chrome, Etc====<br />
To make steam:// urls in your browser connect with steam in wine, there are several things you can do. One involves making steam url-handler keys in gconf, another involves making protocol files for kde, others involve tinkering with desktop files or the Local State file for chromium. These seem to only work in firefox or under certain desktop configurations. One way to do it that works more globally is using mimeo, a tool made by Xyne (an Arch TU) which follows. For another working and less invasive (but firefox-only) way, see the first post [http://ubuntuforums.org/showthread.php?t=433548 here] .<br />
<br />
* Make {{ic| /usr/bin/steam}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
#!/bin/sh<br />
#<br />
# Steam wrapper script<br />
#<br />
exec wine "c:\\program files\\steam\\steam.exe" "$@"<br />
}}<br />
<br />
* Make it executable.<br />
<br />
# chmod +x /usr/bin/steam<br />
<br />
* Install {{AUR|mimeo}} and {{AUR|xdg-utils-mimeo}} from AUR. You will need to replace the existing {{pkg|xdg-utils}} if installed. In XFCE, you will also need {{pkg|xorg-utils}}.<br />
<br />
* Create {{ic|~/.config/mimeo.conf}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
/usr/bin/steam %u<br />
^steam://<br />
}}<br />
<br />
* Lastly, open {{ic|/usr/bin/xdg-open}} in your favorite editor. Go to the {{ic|detectDE()}} section and change it to look as follows:<br />
<br />
{{bc|<nowiki><br />
detectDE()<br />
{<br />
#if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;<br />
#elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;<br />
#elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;<br />
#elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;<br />
#elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;<br />
#else DE=""<br />
#fi<br />
DE=""<br />
}<br />
</nowiki>}}<br />
<br />
* Restart the browser and you should be good to go. In chromium, you cannot enter a {{ic|steam://}} link in the url box like you can with firefox. The forum link above has a {{ic|steam://open/friends}} link to try if needed.<br />
<br />
{{Note|If you have any problems with file associations after doing this, simply revert to regular xdg-utils and undo your changes to {{ic|/usr/bin/xdg-open}}.}}<br />
{{Note|Those on other distributions that stumble upon this page, see the link above for firefox specific instructions. No easy way to get it working on Chromium on other distros exists.}}<br />
<br />
====No text rendered problem====<br />
If there is no text/font rendered when starting steam you should try to start steam with the parameter {{ic|-no-dwrite}}. Read more in [https://bbs.archlinux.org/viewtopic.php?id=146223 the forum thread about it.]<br />
{{bc|wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe -no-dwrite}}<br />
<br />
== See Also ==<br />
* https://wiki.gentoo.org/wiki/Steam</div>Lordheavy