https://wiki.archlinux.org/api.php?action=feedcontributions&user=Lesto&feedformat=atomArchWiki - User contributions [en]2024-03-29T12:15:48ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Talk:Folding@home&diff=606447Talk:Folding@home2020-04-17T20:24:59Z<p>Lesto: so the page need seriuos update?</p>
<hr />
<div>All the link to the configuration files seems to be incorrect, also the no-root package does not exist anymore, as the main package uses dynamic user.<br />
Looks like the page is active so I will not fix it right now just to make sure is all good with you<br />
<br />
[[User:Lesto|Lesto]] ([[User talk:Lesto|talk]]) 20:24, 17 April 2020 (UTC)</div>Lestohttps://wiki.archlinux.org/index.php?title=Talk:AMDGPU&diff=518271Talk:AMDGPU2018-04-22T12:10:26Z<p>Lesto: Kernel parameter not required anymore?</p>
<hr />
<div>== Supported Hardware ==<br />
I just crawled the product names "Radeon xyz" of VI/CI GPUs together and was going to go on for professional products "FirePro xzy", too.<br />
<br />
Afaik, there is no such complete listing on the web. There is a lot of confusion about the code and product names, due to AMD repeatedly rebranding their products and even change code names for same GPUs (Tonga = Antigua, Hawaii = Grenada, Carrizo = Bristol Ridge?, ...)<br />
<br />
When I started using gnu/linux, the arch wiki was a great help and there are still a lot of people struggling with graphics drivers. Now I know it is not hard to understand, but it is still confusing for beginners, coming from windows and just being used to install one software suite (not a drm driver, libdrm, mesa, gallium, etc.), supporting all the current hardware.<br />
<br />
now everyone has to go through all of this every time to determine 1) which hardware is really in their product and 2) which driver suits their hardware<br />
<br />
<br />
tl;dr I think maintaining such a list would be really useful for beginners, maybe not here but in a separate article?<br />
[[User:Iuno|Iuno]] ([[User talk:Iuno|talk]]) 09:27, 16 February 2016 (UTC)<br />
<br />
:Well, [https://wiki.gentoo.org/wiki/Amdgpu#Feature_support Gentoo wiki] has a simple two-line summary. If it's still not sufficiently clear or the list is already much larger, I guess we could have a separate subpage to not clutter the main page... -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 10:20, 16 February 2016 (UTC)<br />
<br />
:: yes, in the meantime I also found this table. It looks good but it is not complete. And completing the list would blow up the table cells a lot. I guess we should wait until vulkan and the new OpenCL driver has been released. Until then, there is no real reason for owners of pre-VI hardware to switch over to amdgpu. All vi and post-vi will be covered, so there is no need to list those separately. For the others I could create a subpage when switching to amdgpu gives you the opportunity for opencl 2.1 and vulkan -- [[User:Iuno|Iuno]] ([[User talk:Iuno|talk]]) 10:50, 16 February 2016 (UTC)<br />
<br />
== Enable amdgpu for Sea Islands Cards ==<br />
testing my Hawaii card w/ amdgpu last week, sound did not work, even though 6 pcm/hdmi audio devices were listed. Might be added as an issue (as I think this is important deciding between radeon and amdgpu), but needs further investigation/confirmation from other testers.<br />
[[User:Iuno|Iuno]] ([[User talk:Iuno|talk]]) 09:53, 16 February 2016 (UTC)<br />
:Please remember the AMDGPU is still in beta, and there's still info and knowledge/experience missing (e.g. most users use the Radeon driver).<br />
:AMD isn't that great in providing info and so far a lot of users are confused about their hardware support in use with amdgpu.<br />
:Remember there are flags like {{ic|exp_hw_support}}. More info need to be added, but it will take some time.<br />
:[[User:Francoism|Francoism]] ([[User talk:Francoism|talk]]) 13:14, 16 February 2016 (UTC)<br />
: It does indeed seem like that was no CI issue. Audio over hdmi is not supported by amdgpu atm, respectively only with the (upcoming) DAL changes[http://www.phoronix.com/forums/forum/linux-graphics-x-org-drivers/open-source-amd-linux/853189-audio-over-hdmi-tonga-and-amdgpu], although it is listed as 'done' [http://xorg.freedesktop.org/wiki/RadeonFeature/ here]. [[User:Iuno|Iuno]] ([[User talk:Iuno|talk]]) 15:59, 22 February 2016 (UTC)<br />
<br />
== Sea Islands cards not working with 4.5.x? ==<br />
I stumbled across this wiki page in hopes of getting more performance after seeing Michael from Phoronix get his 290 working with this. Following through all the instructions, menuconfiging and compiling new kernels, in the end all I get is a blank screen with my r9 390. No errors on Xorg.0.log. Can anyone confirm that it isn't just me?<br />
[[User:Katorisenko|Katorisenko]] ([[User talk:Katorisenko|talk]]) 07:46, 24 April 2016 (UTC)<br />
<br />
== AMDGPU and HDMI Audio ==<br />
<br />
According to [https://bugzilla.freedesktop.org/show_bug.cgi?id=92827#c2 this Freedesktop.org bug comment], HDMI audio support in AMDGPU requires DAL which is "not upstream yet", and won't be anytime soon according to [http://www.phoronix.com/scan.php?page=news_item&px=AMDGPU-DC-DRM-No this Phoronix article]. I'm currently struggling to make my HDMI audio work with my AMD Radeon R9 380; if this happens to be impossible with AMDGPU, should we mention it in the "Troubleshooting" section of this page? --[[User:Hellpe|Hellpe]] ([[User talk:Hellpe|talk]]) 23:26, 3 January 2017 (UTC)<br />
<br />
:I am in favor of adding the information notice to the troubleshooting section. I think users who do not keep up with the news will be confused when Pulseaudio seems to add the HDMI audio devices, despite them being non-functional until the DAL code is refactored and accepted upstream then pushed to regular users. I know it was not immediately clear to me when I upgraded from my radeonsi card to an RX series amdgpu card until I did some reading. I "think" currently the only way to get HDMI audio is to use the AMDGPU-PRO driver for the time being. [[User:Ase1590|Ase1590]] ([[User talk:Ase1590|talk]]) 15:48, 4 January 2017 (UTC)<br />
<br />
::I have it working with an R9 380 under Xorg. I did nothing special, simply disabled the built-in audio and enabled the HDMI audio. It does not work under Wayland however. Pavucontrol shows unavailable. [[User:Unit73e|Unit73e]] ([[User talk:Unit73e|talk]]) 12:22, 2 December 2017 (UTC)<br />
<br />
== Some experiments with integrated AMD graphics ==<br />
<br />
Some results after playing with "radeon" and "amdgpu" drivers and gnome (for AMD A10 7850K):<br />
<br />
- Having both drivers loaded causes systemd to hang at system shutdown (xorg). Using amdgpu and blacklisting radeon or using radeon and blacklisting amdgpu both fix this problem.<br />
<br />
- Having amdgpu driver without mkinitcpio.conf entry causes<br />
1. Wayland can't be enabled (always in xorg mode) and XDG_SESSION_TYPE shows "x11"<br />
2. HDMI sound output is shown only in rare cases<br />
<br />
- Having amdgpu driver with mkinitcpio.conf entry causes<br />
1. Wayland is enabled by default and XDG_SESSION_TYPE shows "wayland"<br />
2. HDMI sound is always disabled<br />
<br />
- Having radeon driver without mkinitcpio.conf entry causes<br />
1. Wayland can't be enabled (always in xorg mode) and XDG_SESSION_TYPE shows "x11"<br />
2. HDMI sound is always correctly detected and working<br />
<br />
- Having radeon driver with mkinitcpio.conf entry<br />
1. Wayland is enabled by default and XDG_SESSION_TYPE shows "wayland"<br />
2. HDMI sound is always correctly detected and working<br />
<br />
[[User:Beoldhin|Beoldhin]] ([[User talk:Beoldhin|talk]]) 19:07, 23 May 2017 (UTC)<br />
<br />
Update: with kernel 4.11.2-1: HDMI sound output is now working with "amdgpu" but only in as "Gnome in xorg" login option (still no sound with Wayland). There are still some graphical glitches when running Wayland with the radeon driver: external screen doesn't turn off after timeout, windows can't be maximized with the "wmctrl" command and updating text in terminal causes some text updating problems (these don't exist with xorg, amdgpu and radeon both work fine). So in summary: I can now select either amdgpu or radeon driver but Wayland is still unstable.<br />
<br />
[[User:Beoldhin|Beoldhin]] ([[User talk:Beoldhin|talk]]) 19:07, 23 May 2017 (UTC)<br />
<br />
== Vega Changes for Wiki ==<br />
<br />
With Vega releasing around the end of the month, the DC/DAL is still not it the kernel. Should we just put a note for users to use the AMDGPU-PRO drivers if they have VEGA cards? We could possibly add a note saying that in the AUR, there is an alternate kernel built from their repos with the DC/DAL code. <br />
Alternate kernel--> https://aur.archlinux.org/packages/linux-amd-staging-git/ [[User:Sesese9|Sesese9]] ([[User talk:Sesese9|talk]]) 00:40, 10 July 2017 (UTC)<br />
<br />
== DC for Pre-Vega Cards ==<br />
<br />
As far as I can tell, the Arch Linux kernel config enables DC by default for all (supported?) cards: https://git.archlinux.org/svntogit/packages.git/tree/trunk/config?h=packages/linux#n5725<br />
Should the section on enabling DC be removed or changed? [[User:Aereaux|Aereaux]] ([[User talk:Aereaux|talk]]) 23:39, 6 February 2018 (UTC)<br />
:Can't check at the moment, but doesn't that require setting the kernel parameter as well? Also, keep in mind the custom [[kernels]]. [[User:Faalagorn|Faalagorn]] [[User talk:Faalagorn|☎]]/[[Special:Contributions/Faalagorn|✓]] 02:51, 10 February 2018 (UTC)<br />
::I'm not sure how to check, but according to https://cateee.net/lkddb/web-lkddb/DRM_AMD_DC_PRE_VEGA.html , CONFIG_DRM_AMD_DC_PRE_VEGA=y enables it by default. It looks like it was already changed in the wiki, though. [[User:Aereaux|Aereaux]] ([[User talk:Aereaux|talk]]) 03:06, 10 February 2018 (UTC)<br />
<br />
== Moving "Enable GPU display scaling" to xrandr ==<br />
<br />
I thought about it to put this under xrandr directly, but for example for my integrated Intel 6th gen GPU I don't have the "scaling mode" option, and I don't know about NVIDIA.<br />
And even if the "scaling mode" option exists for other vendors and or cards, I don't know if the possible values for "scaling mode" are the same everywhere, as far as I remember there are not.<br />
That was the reason I did put it here. [[User:Bertl|Bertl]] ([[User talk:Bertl|talk]]) 16:01, 18 February 2018 (UTC)<br />
:Ok, looks like [[Intel_graphics#Setting_scaling_mode|Intel]] uses the same settings, but it's only available for internal (LVDS, eDP) ports, but at least according to https://bugs.freedesktop.org/show_bug.cgi?id=90989 it also uses "None, Full, Center, Full aspect".<br />
:I know that radeonsi uses the same commands, but still don't know about NVIDIA.<br />
:But yea, now I also think that it should be moved and the [[Intel_graphics#Setting_scaling_mode|Intel]] section should be merged into it. [[User:Bertl|Bertl]] ([[User talk:Bertl|talk]]) 18:37, 18 February 2018 (UTC)<br />
<br />
== No 120hz with 4.15 kernel and DC enabled ==<br />
<br />
AMDGPU with DC on in kernel 4.15 was not showing all resolutions and frequencies available. This bug is already fixed on staging: https://bugs.freedesktop.org/show_bug.cgi?id=105039<br />
[[User:Unit73e|Unit73e]] ([[User talk:Unit73e|talk]]) 09:54, 2 March 2018 (UTC) unit73e<br />
<br />
== Update on kernel parameters ==<br />
<br />
this part does not seems to be required on 4.17:<br />
<br />
>> Also, since kernel 4.13, adding the amdgpu.si_support=1 radeon.si_support=0 or amdgpu.cik_support=1 radeon.cik_support=0 kernel parameter is required. Otherwise, AMDGPU will not start and you will end up with either radeon being used instead or the display being frozen during the boot.</div>Lestohttps://wiki.archlinux.org/index.php?title=Rust&diff=513602Rust2018-03-13T22:53:50Z<p>Lesto: added kate as editor with native support</p>
<hr />
<div>[[Category:Programming languages]]<br />
[[ja:Rust]]<br />
[[ru:Rust]]<br />
From [[Wikipedia:Rust (programming language)|Wikipedia]]:<br />
:''[http://rust-lang.org/ Rust] is a general-purpose, multi-paradigm, compiled programming language sponsored by Mozilla Research. It is designed to be a "safe, concurrent, practical language", supporting pure-functional, imperative-procedural, and object-oriented styles.''<br />
:''The goal of Rust is to be a good language for creating highly concurrent and highly safe systems, and programming in the large. This has led to a feature set with an emphasis on safety, control of memory layout, and concurrency. Performance of idiomatic Rust is comparable to the performance of idiomatic C++.''<br />
<br />
=== Rust Core Library ===<br />
<br />
The [https://doc.rust-lang.org/core/ Rust Core Library] is the dependency-free foundation of the Rust Standard Library. It interfaces directly with LLVM primitives, which allows Rust to be platform and hardware-agnostic. It is this integration with LLVM that allows Rust to obtain greater performance than equivalent C applications compiled with Clang, making Rust software designed with libcore lower level than C. Developers looking to target software for embedded platforms may forego the standard library with {{ic|#[nostd]}} to exclusively use the no-batteries-included core library for smaller binary sizes and improved performance. However, using {{ic|#[nostd]}} limits the amount of software support that you can get from the larger Rust community as a majority of libraries require the standard library. <br />
<br />
=== Rust Standard Library ===<br />
<br />
The [http://doc.rust-lang.org/std/index.html Rust Standard Library] provides the convenient high level abstractions by which a majority of portable Rust software is created with. It features convenient features such as the {{ic|Vec}}, {{ic|Iterator}}, {{ic|Option}}, {{ic|Result}}, and {{ic|String}} types; a vast amount of methods for language primitives; a large number of standard macros; I/O and multithreading support; heap allocations with {{ic|Box}}; and many more high level features not available in the core library.<br />
<br />
=== Release Cycle ===<br />
<br />
Rust follows a regular six week release cycle, similar to the release cycle of Firefox. With each new release, the core and standard libraries are improved to support more platforms, improve performance, and to stabilize new features for use with stable Rust.<br />
<br />
== Installation ==<br />
<br />
=== Native Installation ===<br />
<br />
To [[install]] the latest stable version of Rust from the official Arch Linux software repository, [[install]] the {{Pkg|rust}} package. This will install the rustc compiler.<br />
<br />
There's also development version of the Rust compiler available from [[AUR]]. Use {{AUR|rust-nightly-bin}} for prebuilt generic binaries or {{AUR|rust-git}} to build the compiler with system libraries. Prebuilt, periodically updated rust-git packages are also available from the [[Unofficial user repositories#rust-git|unofficial repo]].<br />
<br />
=== Official Rustup Installation ===<br />
<br />
The official and recommended method of installing Rust for the purpose of developing software is to use the [https://www.rustup.rs/ Rustup toolchain manager], written in Rust.<br />
<br />
The benefits to using the Rustup toolchain manager instead of the standalone prepackaged Rust in the software repository is the ability to install multiple toolchains (stable, beta, nightly) for multiple targets (windows, mac, android) and architectures (x86, x86_64, arm). It is also important to note that tools such as [https://github.com/Manishearth/rust-clippy Clippy] require compiler plugin support, which is only supported in nightly builds of Rust.<br />
<br />
One has 2 choices for a rustup installation, one is officially supported by Rust, while the other is supported by archlinux wiki<br />
<br />
# Download the file with {{ic|curl -f <nowiki>https://sh.rustup.rs</nowiki> > rust.sh}}, view it: {{ic|vim ./rust.sh}}, and run the script {{ic|./rust.sh}} to start rustup installation. The script makes PATH changes only to login shell [[Bash#Invocation|configuration files]]. You need to {{ic|source $HOME/.cargo/env}} until you logout and login back into the system.<br />
# To update rustup afterwards, run {{ic|rustup self update}}.<br />
# {{Pkg|rustup}} is also available on the Arch Linux software repository. Note that {{ic|rustup self update}} will '''not''' work when installed this way, the package needs to be updated by pacman.<br />
<br />
By default, only the stable channel from your architecture will be installed. It will however not be usable right away, you need to specify the installed stable channel as default for it to work.<br />
<br />
{{Note|Please make sure that you have added the $HOME/.cargo/bin to your PATH before you run the rustup command.}}<br />
<br />
{{bc|<nowiki><br />
$ rustup default stable<br />
</nowiki>}}<br />
<br />
Then checking rust's version using {{ic|rustc -V}} :<br />
<br />
{{hc|$ rustc -V |<nowiki><br />
rustc 1.9.0 (e4e8b6668 2016-05-18)<br />
</nowiki>}}<br />
<br />
If you wish to install and use nightly, you can do like so : <br />
<br />
{{bc|<nowiki><br />
$ rustup install nightly<br />
$ rustup default nightly<br />
</nowiki>}}<br />
<br />
{{hc|$ rustc -V |<nowiki><br />
rustc 1.11.0-nightly (01411937f 2016-07-01)<br />
</nowiki>}}<br />
<br />
Rust is now fired up for nightly !<br />
<br />
=== Test your installation ===<br />
<br />
Check that Rust is installed correctly by building a simple program, as follows:<br />
{{hc|~/hello.rs|<br />
fn main() {<br />
println!("Hello, World!");<br />
}<br />
}}<br />
<br />
You can compile it with {{ic|rustc}}, then run it:<br />
{{hc|$ rustc hello.rs && ./hello|<br />
Hello, World!<br />
}}<br />
<br />
== Cross Compiling ==<br />
<br />
=== Using rustup ===<br />
<br />
You can easily cross-compile using rustup. rustup supports many crosscompile targets. A full list can be found running {{ic|rustup target list}}.<br />
<br />
For instance, if you want to install rust using the stable channel for windows, using the gnu compiler, you will need to do : <br />
<br />
{{bc|<nowiki><br />
$ rustup install stable-x86_64-pc-windows-gnu<br />
</nowiki>}}<br />
<br />
This will only installs rust and its tools for your target architecture, but some additional tools might be needed for cross compiling.<br />
<br />
=== Windows ===<br />
<br />
In this section, {{ic|$ARCH}} is the target architecture (either {{ic|x86_64}} or {{ic|i686}}). It will explain how to cross compile using rustup.<br />
<br />
# [[Install]] {{AUR|mingw-w64-gcc}} and {{Pkg|wine}}<br />
# Add a binfmt definition for windows executables either manually or by installing {{AUR|binfmt-wine}}{{Broken package link|package not found}}.<br />
# If you are using rustup, you can run {{ic|rustup install stable-$ARCH-pc-windows-gnu}} and {{ic|rustup target add $ARCH-pc-windows-gnu}} to install rust and rust standard library for your architecture. If you are not using rustup, install a copy of rust's standard library for windows in your rustlib directory ({{ic|/usr/local/lib/rustlib}} if you're using {{AUR|rust-nightly-bin}} and {{ic|/usr/lib/rustlib}} if you're using the official {{Pkg|rust}} package). The easiest way to do this is to download the rust installer for windows for your target architecture, install it under wine ({{ic|wine start my-rust-installer.msi}}) and copy {{ic|$INSTALL_DIR/lib/rustlib/$ARCH-pc-windows-gnu}} into your rustlib directory. <br />
# Finally, tell cargo where to find the MinGW-w64 gcc/ar by adding the following to your {{ic|~/.cargo/config}}:<br />
{{hc|~/.cargo/config|<nowiki><br />
[target.$ARCH-pc-windows-gnu]<br />
linker = "/usr/bin/$ARCH-w64-mingw32-gcc"<br />
ar = "/usr/$ARCH-w64-mingw32/bin/ar"<br />
</nowiki>}}<br />
<br />
Finally, you can cross compile for windows by passing the {{ic|--target $ARCH-pc-windows-gnu}} to cargo:<br />
{{bc|<nowiki><br />
$ # Build<br />
$ cargo build --release --target "$ARCH-pc-windows-gnu"<br />
$ # Run unit tests under wine<br />
$ cargo test --target "$ARCH-pc-windows-gnu"<br />
</nowiki>}}<br />
<br />
=== Unofficial packages ===<br />
<br />
The [[Unofficial user repositories#archlinuxcn|unofficial repo archlinuxcn]] has rust-nightly and Rust std library for i686, ARM, ARMv7, Windows 32 and 64 so you can just install the one you want then enjoy cross compiling. However, you have to find an ARM toolchain by yourself. For Windows 32bit targets, you'll need to get a libgcc_s_dw2-1.dll to build and run.<br />
<br />
== Cargo ==<br />
<br />
[https://crates.io/ Cargo], Rust's package manager, is part of the {{Pkg|rust}} package. The nightly version is available in the AUR as {{AUR|cargo-nightly-bin}}. If you use {{Pkg|rustup}}, it already includes cargo.<br />
<br />
Cargo is a tool that allows Rust projects to declare their various dependencies, and ensure that you'll always get a repeatable build. You're encouraged to read the [http://doc.crates.io/guide.html official guide].<br />
<br />
=== Usage ===<br />
<br />
To create a new project using Cargo:<br />
{{bc|$ cargo new hello_world --bin}}<br />
<br />
This creates a directory with a default {{ic|Cargo.toml}} file, set to build an executable (because we included {{ic|--bin}}, otherwise it would build a library).<br />
<br />
{{Note|Cargo uses this {{ic|Cargo.toml}} as a manifest containing all of the metadata required to compile your project.<br />
{{hc|head=Cargo.toml|<br />
output=[package]<br />
name = "hello_world"<br />
version = "0.1.0"<br />
authors = ["Your Name <you@example.com>"]<br />
}}<br />
}}<br />
<br />
== IDE Support ==<br />
<br />
=== Tools ===<br />
<br />
==== Racer ====<br />
<br />
The [https://github.com/phildawes/racer Racer] autocomplete engine is the current best method of gaining autocomplete support. However, it requires that you also install a copy of the Rust source code, which you can obtain in one of several ways:<br />
* With rustup: {{ic|rustup component add rust-src}}<br />
* From the AUR: {{Aur|rust-src}} or {{Aur|rust-nightly-src}}, in this case you must set the {{ic|RUST_SRC_PATH}} environment var.<br />
After installing the source code, you can either use {{ic|Cargo}} to install racer or obtain it from the repos ({{pkg|rust-racer}}).<br />
<br />
$ cargo install racer<br />
<br />
==== Clippy ====<br />
<br />
[https://github.com/Manishearth/rust-clippy Clippy] takes advantage of compiler plugin support in Nightly builds of Rust to provide a large number of additional lints for detecting and warning about a larger variety of errors and non-idiomatic Rust. Because it requires support for compiler plugins in order to operate, clippy will not work when compiling with the stable Rust compiler.<br />
<br />
$ cargo install clippy<br />
<br />
=== Editors ===<br />
<br />
==== Atom ====<br />
<br />
Atom supports Rust programming when both of the next plugins installed: [https://atom.io/packages/language-rust language-rust] and [https://atom.io/packages/linter-rust linter-rust].<br />
<br />
==== IntelliJ IDEA ====<br />
<br />
[https://www.jetbrains.com/idea/ IntelliJ IDEA] has a [https://github.com/intellij-rust/intellij-rust Rust plugin]. The same plugin also works with CLion. When configuring the toolchain, use rustup to download the source ({{ic|rustup component add rust-src}}), and then select {{ic|~/.rustup/toolchains/<your toolchain>/bin}} as the toolchain location.<br />
<br />
==== Visual Studio Code ====<br />
<br />
Support for Rust can be obtained by installing the [https://marketplace.visualstudio.com/items?itemName=kalitaalexey.vscode-rust Rust] extension.<br />
<br />
==== Vim ====<br />
<br />
Vim support for Rust is enabled via the official [https://github.com/rust-lang/rust.vim rust.vim] plugin.<br />
<br />
====Emacs====<br />
<br />
Emacs support for Rust is enabled via the offical [https://github.com/rust-lang/rust-mode rust-mode] plugin or the {{AUR|emacs-rust-mode}} package.<br />
<br />
<br />
====Kate====<br />
<br />
Kate support for Rust is enabled via the official [https://github.com/rust-lang/kate-config kate] plugin. It is installed by defaut by the {{Pkg|kate}} package, require the installation of {{Pkg|racer}} and manual activation.<br />
<br />
== See also ==<br />
<br />
* [http://rust-lang.org/ Official website of the Rust Programming Language]<br />
* [https://www.rust-lang.org/documentation.html Rust Documentation]<br />
* [http://doc.rust-lang.org/stable/book/ Official Rust Book]<br />
* [https://doc.rust-lang.org/std/ Standard Library API Lookup]<br />
* [http://rustbyexample.com/ Examples with small descriptions]<br />
* [https://github.com/ctjhoa/rust-learning Page listing of Rust tutorials]<br />
* [https://crates.io/ Libraries(crates) available through Cargo]<br />
* [https://this-week-in-rust.org/ This Week in Rust]<br />
* [http://blog.rust-lang.org/ The Rust Programming Language Blog]<br />
* [https://users.rust-lang.org/ The Rust Users Forum]<br />
* [https://internals.rust-lang.org/ The Rust Internals Forum]<br />
* [https://rust.libhunt.com/ Awesome Rust: A curated list of Rust libraries and resources]<br />
* [[Wikipedia:Rust (programming language)|Wikipedia article]]</div>Lestohttps://wiki.archlinux.org/index.php?title=ClamAV&diff=496248ClamAV2017-11-12T17:04:32Z<p>Lesto: fixed a bug with date containing space and not showing an empty message. Added systemd support for log</p>
<hr />
<div>[[Category:Security]]<br />
[[es:ClamAV]]<br />
[[fr:CLAMAV]]<br />
[[it:ClamAV]]<br />
[[ja:ClamAV]]<br />
[[ko:ClamAV]]<br />
[[ru:ClamAV]]<br />
[[sr:ClamAV]]<br />
[[zh-hans:ClamAV]]<br />
[http://www.clamav.net Clam AntiVirus] is an open source (GPL) anti-virus toolkit for UNIX. It provides a number of utilities including a flexible and scalable multi-threaded daemon, a command line scanner and advanced tool for automatic database updates. Because ClamAV's main use is on file/mail servers for Windows desktops, it primarily detects Windows viruses and malware with its built-in signatures.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|clamav}} package.Also you can install:<br />
* {{Pkg|clamtk}} , a GUI frontend for clamav.<br />
* addons<br />
** {{AUR|clamtk-gnome}} , a simple plugin for ClamTk to allow a right-click, context menu scan of files or folders in the Nautilus file manager.<br />
** {{AUR|thunar-sendto-clamtk}} , a simple plugin to allow a right-click, context menu scan of files or folders in Thunar.<br />
<br />
== Updating database ==<br />
Update the virus definitions with:<br />
# freshclam<br />
<br />
The database files are saved in:<br />
/var/lib/clamav/daily.cvd<br />
/var/lib/clamav/main.cvd<br />
/var/lib/clamav/bytecode.cvd<br />
<br />
The virus definition updater service is called {{ic|freshclamd.service}}. Consider starting it and enabling it to start at boot so that the virus definitions are kept recent.<br />
<br />
== Starting the daemon ==<br />
<br />
Consider updating the database before starting the service for the first time or you will run into troubles/errors which will prevent ClamAV to start correctly.<br />
<br />
The service is called {{ic|clamd.service}}. [[Start]] it or [[enable]] it to start at boot. You will need to run {{ic|freshclam}} prior to starting the service.<br />
<br />
== Testing the software ==<br />
<br />
In order to make sure ClamAV and the definitions are installed correctly, scan the [http://www.eicar.org/86-0-Intended-use.html EICAR test file] (a harmless signature with no virus code) with clamscan.<br />
<br />
$ curl http://www.eicar.org/download/eicar.com.txt | clamscan -<br />
<br />
The output '''must''' include:<br />
<br />
stdin: Eicar-Test-Signature FOUND<br />
<br />
Otherwise; read the Troubleshooting part or ask for help in the [https://bbs.archlinux.org/ Arch Forums].<br />
<br />
== Adding more databases/signatures repositories ==<br />
<br />
ClamAV can use databases/signature from other repositories or security vendors. <br />
<br />
To add the most important ones in a single step, install {{AUR|clamav-unofficial-sigs}} and configure it in {{ic|/etc/clamav-unofficial-sigs/user.conf}}.<br />
<br />
This will add signatures/databases from e.g. MalwarePatrol, SecuriteInfo, Yara, Linux Malware Detect, etc. For the full list of databases, [https://github.com/extremeshok/clamav-unofficial-sigs#description see the description of the GitHub repository].<br />
<br />
=== Set up clamav-unofficial-sigs ===<br />
<br />
First, edit the configuration in {{ic|/etc/clamav-unofficial-sigs/user.conf}}, and change the following line:<br />
<br />
# Uncomment the following line to enable the script<br />
user_configuration_complete="yes"<br />
<br />
To enable the unofficial signature service (which includes manpages, log rotation, and a cron job), run the following:<br />
<br />
# clamav-unofficial-sigs.sh --install-all<br />
<br />
Note that you still must have the {{ic|clamd}} service running in order to have signature updates from ClamAV themselves.<br />
<br />
This will refresh the signatures from the databases used in the clamav-unofficial-sigs script and extra ones as configured in each configuration file in the {{ic|/etc/clamav-unofficial-sigs}} folder. To refresh signatures from these databases manually, run the following:<br />
<br />
# clamav-unofficial-sigs.sh<br />
<br />
To stop the cron job from running, delete this file: {{ic|/etc/cron.d/clamav-unofficial-sigs}}.<br />
<br />
==== MalwarePatrol database ====<br />
<br />
If you would like to use the MalwarePatrol database, sign up for an account at https://www.malwarepatrol.net/.<br />
<br />
In {{ic|/etc/clamav-unofficial-sigs/user.conf}}, change the following to enable this functionality:<br />
<br />
malwarepatrol_receipt_code="YOUR-RECEIPT-NUMBER" # enter your receipt number here<br />
malwarepatrol_product_code="8" # Use 8 if you have a Free account or 15 if you are a Premium customer.<br />
malwarepatrol_list="clamav_basic" # clamav_basic or clamav_ext<br />
malwarepatrol_free="yes" # Set to yes if you have a Free account or no if you are a Premium customer.<br />
<br />
Source: https://www.malwarepatrol.net/clamav-configuration-guide/<br />
<br />
== Scan for viruses ==<br />
<br />
{{ic|clamscan}} can be used to scan certain files, home directory, or an entire system:<br />
<br />
$ clamscan myfile<br />
$ clamscan --recursive --infected /home # or -r -i<br />
$ clamscan --recursive --infected --exclude-dir='^/sys|^/dev' /<br />
<br />
If you would like {{ic|clamscan}} to remove the infected file add to the command the {{ic|--remove}} option, or you can use {{ic|1=--move=/dir}} to quarantine them.<br />
<br />
You may also want {{ic|clamscan}} to scan larger files. In this case, append the options {{ic|1=--max-filesize=4000M}} and {{ic|1=--max-scansize=4000M}} to the command. '4000M' is the largest possible value, and may be lowered as necessary.<br />
<br />
Using the {{ic|1=-l /path/to/file}} option will print the {{ic|clamscan}} logs to a text file for locating reported infections.<br />
<br />
== Using the milter ==<br />
<br />
Milter will scan your sendmail server for email contianing virus.<br />
Copy {{ic|/etc/clamav/clamav-milter.conf.sample}} to {{ic|/etc/clamav/clamav-milter.conf}} and adjust it to your needs. For example:<br />
<br />
{{hc|/etc/clamav/clamav-milter.conf|2=<nowiki><br />
MilterSocket /run/clamav/clamav-milter.sock<br />
MilterSocketMode 660<br />
FixStaleSocket yes<br />
User clamav<br />
PidFile /run/clamav/clamav-milter.pid<br />
TemporaryDirectory /tmp<br />
ClamdSocket unix:/var/lib/clamav/clamd.sock<br />
LogSyslog yes<br />
LogInfected Basic<br />
</nowiki>}}<br />
<br />
Create {{ic|/etc/systemd/system/clamav-milter.service}}:<br />
<br />
{{hc|/etc/systemd/system/clamav-milter.service|2=<nowiki><br />
[Unit]<br />
Description='ClamAV Milter'<br />
After=clamd.service<br />
<br />
[Service]<br />
Type=forking<br />
ExecStart=/usr/bin/clamav-milter --config-file /etc/clamav/clamav-milter.conf<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
</nowiki>}}<br />
<br />
Enable and start the service.<br />
<br />
== OnAccessScan ==<br />
On-access scanning requires the kernel to be compiled with the ''fanotify'' kernel module (kernel >= 3.8). Check if ''fanotify'' has been enabled before enabling on-access scanning.<br />
$ cat /proc/config.gz | gunzip | grep FANOTIFY=y<br />
<br />
On-access scanning will scan the file while reading, writing or executing it.<br />
<br />
First, edit the {{ic|/etc/clamav/clamd.conf}} configuration file by adding the following to the end of the file (you can also change the individual options):<br />
<br />
{{hc|/etc/clamav/clamd.conf|<br />
# Enables on-access scan, requires clamd service running<br />
ScanOnAccess true<br />
<br />
# Set the mount point where to recursively perform the scan,<br />
# this could be every path or multiple path (one line for path)<br />
OnAccessMountPath /usr<br />
OnAccessMountPath /home/<br />
OnAccessExcludePath /var/log/<br />
<br />
# Flag fanotify to block any events on monitored files to perform the scan<br />
OnAccessPrevention false<br />
<br />
# Perform scans on newly created, moved, or renamed files<br />
OnAccessExtraScanning true<br />
<br />
# Check the UID from the event of fanotify<br />
OnAccessExcludeUID 0<br />
<br />
# Specify an action to perform when clamav detects a malicious file<br />
# it is possible to specify an inline command too<br />
VirusEvent /etc/clamav/detected.zsh<br />
<br />
# WARNING: clamd should run as root<br />
User root<br />
}}<br />
<br />
Next, create the file {{ic|/etc/clamav/detected.zsh}} and add the following. This allows you to change/specify the debug message when a virus has been detected by clamd's on-access scanning service:<br />
<br />
{{hc|/etc/clamav/detected.sh|2=<nowiki><br />
#!/bin/bash<br />
PATH=/usr/bin<br />
<br />
alert="Signature detected: $CLAM_VIRUSEVENT_VIRUSNAME in $CLAM_VIRUSEVENT_FILENAME"<br />
<br />
# Send the alert to systemd logger if exist, othewise to /var/log<br />
if [[ -z $(command -v systemd-cat) ]]; then<br />
echo "$(date) - $alert" >> /var/log/clamav/infected.log<br />
else<br />
# as "emerg", this could cause your DE to show a visual alert. Happen in Plasma. but the next visual alert is much nicer<br />
echo "$alert" | /usr/bin/systemd-cat -t clamav -p emerg<br />
fi<br />
<br />
#send an alrt to all graphical user<br />
XUSERS=($(who|awk '{print $1$NF}'|sort -u))<br />
<br />
for XUSER in $XUSERS; do<br />
NAME=(${XUSER/(/ })<br />
DISPLAY=${NAME[1]/)/}<br />
DBUS_ADDRESS=unix:path=/run/user/$(id -u ${NAME[0]})/bus<br />
echo "run $NAME - $DISPLAY - $DBUS_ADDRESS -" >> /tmp/testlog <br />
/usr/bin/sudo -u ${NAME[0]} DISPLAY=${DISPLAY} \<br />
DBUS_SESSION_BUS_ADDRESS=${DBUS_ADDRESS} \<br />
PATH=${PATH} \<br />
/usr/bin/notify-send -i dialog-warning "clamAV" "$alert"<br />
done<br />
</nowiki>}}<br />
<br />
If you are using [[AppArmor]], it is also necessary to allow clamd to run as root:<br />
<br />
# aa-complain clamd<br />
<br />
Restart/start the service with {{ic|systemctl restart clamd.service}}.<br />
<br />
Source: http://blog.clamav.net/2016/03/configuring-on-access-scanning-in-clamav.html<br />
<br />
== Troubleshooting ==<br />
<br />
=== Error: Clamd was NOT notified ===<br />
<br />
If you get the following messages after running freshclam:<br />
{{bc|<br />
WARNING: Clamd was NOT notified: Cannot connect to clamd through <br />
/var/lib/clamav/clamd.sock connect(): No such file or directory<br />
}}<br />
<br />
Add a sock file for ClamAV:<br />
{{bc|<br />
# touch /var/lib/clamav/clamd.sock<br />
# chown clamav:clamav /var/lib/clamav/clamd.sock<br />
}}<br />
Then, edit {{Ic|/etc/clamav/clamd.conf}} - uncomment this line:<br />
LocalSocket /var/lib/clamav/clamd.sock<br />
Save the file and [[Daemons|restart the daemon]] with {{ic|systemctl restart clamd.service}}.<br />
<br />
=== Error: No supported database files found ===<br />
<br />
If you get the next error when starting the daemon:<br />
{{bc|<br />
LibClamAV Error: cli_loaddb(): No supported database files found<br />
in /var/lib/clamav ERROR: Not supported data format<br />
}}<br />
<br />
This happens because of mismatch between {{ic|/etc/freshclam.conf}} setting {{ic|DatabaseDirectory}} and {{ic|/etc/clamd.conf}} setting {{ic|DatabaseDirectory}}.<br />
{{ic|/etc/freshclam.conf}} pointing to {{ic|/var/lib/clamav}}, but {{ic|/etc/clamd.conf}} (default directory) pointing to {{ic|/usr/share/clamav}}, or other directory. Edit in {{ic|/etc/clamd.conf}} and replace with the same DatabaseDirectory like in {{ic|/etc/freshclam.conf}}. After that clamav will start up succesfully.<br />
<br />
=== Error: Can't create temporary directory ===<br />
<br />
If you get the following error, along with a 'HINT' containing a UID and a GID number:<br />
# can't create temporary directory<br />
<br />
Correct permissions:<br />
# chown UID:GID /var/lib/clamav & chmod 755 /var/lib/clamav</div>Lestohttps://wiki.archlinux.org/index.php?title=ClamAV&diff=496223ClamAV2017-11-12T13:36:20Z<p>Lesto: Miter is needed only by those who run an email server</p>
<hr />
<div>[[Category:Security]]<br />
[[es:ClamAV]]<br />
[[fr:CLAMAV]]<br />
[[it:ClamAV]]<br />
[[ja:ClamAV]]<br />
[[ko:ClamAV]]<br />
[[ru:ClamAV]]<br />
[[sr:ClamAV]]<br />
[[zh-hans:ClamAV]]<br />
[http://www.clamav.net Clam AntiVirus] is an open source (GPL) anti-virus toolkit for UNIX. It provides a number of utilities including a flexible and scalable multi-threaded daemon, a command line scanner and advanced tool for automatic database updates. Because ClamAV's main use is on file/mail servers for Windows desktops, it primarily detects Windows viruses and malware with its built-in signatures.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|clamav}} package.Also you can install:<br />
* {{Pkg|clamtk}} , a GUI frontend for clamav.<br />
* addons<br />
** {{AUR|clamtk-gnome}} , a simple plugin for ClamTk to allow a right-click, context menu scan of files or folders in the Nautilus file manager.<br />
** {{AUR|thunar-sendto-clamtk}} , a simple plugin to allow a right-click, context menu scan of files or folders in Thunar.<br />
<br />
== Updating database ==<br />
Update the virus definitions with:<br />
# freshclam<br />
<br />
The database files are saved in:<br />
/var/lib/clamav/daily.cvd<br />
/var/lib/clamav/main.cvd<br />
/var/lib/clamav/bytecode.cvd<br />
<br />
The virus definition updater service is called {{ic|freshclamd.service}}. Consider starting it and enabling it to start at boot so that the virus definitions are kept recent.<br />
<br />
== Starting the daemon ==<br />
<br />
Consider updating the database before starting the service for the first time or you will run into troubles/errors which will prevent ClamAV to start correctly.<br />
<br />
The service is called {{ic|clamd.service}}. [[Start]] it or [[enable]] it to start at boot. You will need to run {{ic|freshclam}} prior to starting the service.<br />
<br />
== Testing the software ==<br />
<br />
In order to make sure ClamAV and the definitions are installed correctly, scan the [http://www.eicar.org/86-0-Intended-use.html EICAR test file] (a harmless signature with no virus code) with clamscan.<br />
<br />
$ curl http://www.eicar.org/download/eicar.com.txt | clamscan -<br />
<br />
The output '''must''' include:<br />
<br />
stdin: Eicar-Test-Signature FOUND<br />
<br />
Otherwise; read the Troubleshooting part or ask for help in the [https://bbs.archlinux.org/ Arch Forums].<br />
<br />
== Adding more databases/signatures repositories ==<br />
<br />
ClamAV can use databases/signature from other repositories or security vendors. <br />
<br />
To add the most important ones in a single step, install {{AUR|clamav-unofficial-sigs}} and configure it in {{ic|/etc/clamav-unofficial-sigs/user.conf}}.<br />
<br />
This will add signatures/databases from e.g. MalwarePatrol, SecuriteInfo, Yara, Linux Malware Detect, etc. For the full list of databases, [https://github.com/extremeshok/clamav-unofficial-sigs#description see the description of the GitHub repository].<br />
<br />
=== Set up clamav-unofficial-sigs ===<br />
<br />
First, edit the configuration in {{ic|/etc/clamav-unofficial-sigs/user.conf}}, and change the following line:<br />
<br />
# Uncomment the following line to enable the script<br />
user_configuration_complete="yes"<br />
<br />
To enable the unofficial signature service (which includes manpages, log rotation, and a cron job), run the following:<br />
<br />
# clamav-unofficial-sigs.sh --install-all<br />
<br />
Note that you still must have the {{ic|clamd}} service running in order to have signature updates from ClamAV themselves.<br />
<br />
This will refresh the signatures from the databases used in the clamav-unofficial-sigs script and extra ones as configured in each configuration file in the {{ic|/etc/clamav-unofficial-sigs}} folder. To refresh signatures from these databases manually, run the following:<br />
<br />
# clamav-unofficial-sigs.sh<br />
<br />
To stop the cron job from running, delete this file: {{ic|/etc/cron.d/clamav-unofficial-sigs}}.<br />
<br />
==== MalwarePatrol database ====<br />
<br />
If you would like to use the MalwarePatrol database, sign up for an account at https://www.malwarepatrol.net/.<br />
<br />
In {{ic|/etc/clamav-unofficial-sigs/user.conf}}, change the following to enable this functionality:<br />
<br />
malwarepatrol_receipt_code="YOUR-RECEIPT-NUMBER" # enter your receipt number here<br />
malwarepatrol_product_code="8" # Use 8 if you have a Free account or 15 if you are a Premium customer.<br />
malwarepatrol_list="clamav_basic" # clamav_basic or clamav_ext<br />
malwarepatrol_free="yes" # Set to yes if you have a Free account or no if you are a Premium customer.<br />
<br />
Source: https://www.malwarepatrol.net/clamav-configuration-guide/<br />
<br />
== Scan for viruses ==<br />
<br />
{{ic|clamscan}} can be used to scan certain files, home directory, or an entire system:<br />
<br />
$ clamscan myfile<br />
$ clamscan --recursive --infected /home # or -r -i<br />
$ clamscan --recursive --infected --exclude-dir='^/sys|^/dev' /<br />
<br />
If you would like {{ic|clamscan}} to remove the infected file add to the command the {{ic|--remove}} option, or you can use {{ic|1=--move=/dir}} to quarantine them.<br />
<br />
You may also want {{ic|clamscan}} to scan larger files. In this case, append the options {{ic|1=--max-filesize=4000M}} and {{ic|1=--max-scansize=4000M}} to the command. '4000M' is the largest possible value, and may be lowered as necessary.<br />
<br />
Using the {{ic|1=-l /path/to/file}} option will print the {{ic|clamscan}} logs to a text file for locating reported infections.<br />
<br />
== Using the milter ==<br />
<br />
Milter will scan your sendmail server for email contianing virus.<br />
Copy {{ic|/etc/clamav/clamav-milter.conf.sample}} to {{ic|/etc/clamav/clamav-milter.conf}} and adjust it to your needs. For example:<br />
<br />
{{hc|/etc/clamav/clamav-milter.conf|2=<nowiki><br />
MilterSocket /run/clamav/clamav-milter.sock<br />
MilterSocketMode 660<br />
FixStaleSocket yes<br />
User clamav<br />
PidFile /run/clamav/clamav-milter.pid<br />
TemporaryDirectory /tmp<br />
ClamdSocket unix:/var/lib/clamav/clamd.sock<br />
LogSyslog yes<br />
LogInfected Basic<br />
</nowiki>}}<br />
<br />
Create {{ic|/etc/systemd/system/clamav-milter.service}}:<br />
<br />
{{hc|/etc/systemd/system/clamav-milter.service|2=<nowiki><br />
[Unit]<br />
Description='ClamAV Milter'<br />
After=clamd.service<br />
<br />
[Service]<br />
Type=forking<br />
ExecStart=/usr/bin/clamav-milter --config-file /etc/clamav/clamav-milter.conf<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
</nowiki>}}<br />
<br />
Enable and start the service.<br />
<br />
== OnAccessScan ==<br />
On-access scanning requires the kernel to be compiled with the ''fanotify'' kernel module (kernel >= 3.8). Check if ''fanotify'' has been enabled before enabling on-access scanning.<br />
$ cat /proc/config.gz | gunzip | grep FANOTIFY=y<br />
<br />
On-access scanning will scan the file while reading, writing or executing it.<br />
<br />
First, edit the {{ic|/etc/clamav/clamd.conf}} configuration file by adding the following to the end of the file (you can also change the individual options):<br />
<br />
{{hc|/etc/clamav/clamd.conf|<br />
# Enables on-access scan, requires clamd service running<br />
ScanOnAccess true<br />
<br />
# Set the mount point where to recursively perform the scan,<br />
# this could be every path or multiple path (one line for path)<br />
OnAccessMountPath /usr<br />
OnAccessMountPath /home/<br />
OnAccessExcludePath /var/log/<br />
<br />
# Flag fanotify to block any events on monitored files to perform the scan<br />
OnAccessPrevention false<br />
<br />
# Perform scans on newly created, moved, or renamed files<br />
OnAccessExtraScanning true<br />
<br />
# Check the UID from the event of fanotify<br />
OnAccessExcludeUID 0<br />
<br />
# Specify an action to perform when clamav detects a malicious file<br />
# it is possible to specify an inline command too<br />
VirusEvent /etc/clamav/detected.zsh<br />
<br />
# WARNING: clamd should run as root<br />
User root<br />
}}<br />
<br />
Next, create the file {{ic|/etc/clamav/detected.zsh}} and add the following. This allows you to change/specify the debug message when a virus has been detected by clamd's on-access scanning service:<br />
<br />
{{hc|/etc/clamav/detected.sh|2=<nowiki><br />
#!/bin/bash<br />
PATH=/usr/bin<br />
<br />
XUSERS=($(who|egrep "\(:[0-9](\.[0-9])*\)"|awk '{print $1$5}'|sort -u))<br />
for XUSER in $XUSERS; do<br />
NAME=(${XUSER/(/ })<br />
DISPLAY=${NAME[1]/)/}<br />
DBUS_ADDRESS=unix:path=/run/user/$(id -u ${NAME[0]})/bus<br />
sudo -u ${NAME[0]} DISPLAY=${DISPLAY} \<br />
DBUS_SESSION_BUS_ADDRESS=${DBUS_ADDRESS} \<br />
PATH=${PATH} \<br />
notify-send -i dialog-warning "clamAV" "$@"<br />
done<br />
</nowiki>}}<br />
<br />
If you are using [[AppArmor]], it is also necessary to allow clamd to run as root:<br />
<br />
# aa-complain clamd<br />
<br />
Restart/start the service with {{ic|systemctl restart clamd.service}}.<br />
<br />
Source: http://blog.clamav.net/2016/03/configuring-on-access-scanning-in-clamav.html<br />
<br />
== Troubleshooting ==<br />
<br />
=== Error: Clamd was NOT notified ===<br />
<br />
If you get the following messages after running freshclam:<br />
{{bc|<br />
WARNING: Clamd was NOT notified: Cannot connect to clamd through <br />
/var/lib/clamav/clamd.sock connect(): No such file or directory<br />
}}<br />
<br />
Add a sock file for ClamAV:<br />
{{bc|<br />
# touch /var/lib/clamav/clamd.sock<br />
# chown clamav:clamav /var/lib/clamav/clamd.sock<br />
}}<br />
Then, edit {{Ic|/etc/clamav/clamd.conf}} - uncomment this line:<br />
LocalSocket /var/lib/clamav/clamd.sock<br />
Save the file and [[Daemons|restart the daemon]] with {{ic|systemctl restart clamd.service}}.<br />
<br />
=== Error: No supported database files found ===<br />
<br />
If you get the next error when starting the daemon:<br />
{{bc|<br />
LibClamAV Error: cli_loaddb(): No supported database files found<br />
in /var/lib/clamav ERROR: Not supported data format<br />
}}<br />
<br />
This happens because of mismatch between {{ic|/etc/freshclam.conf}} setting {{ic|DatabaseDirectory}} and {{ic|/etc/clamd.conf}} setting {{ic|DatabaseDirectory}}.<br />
{{ic|/etc/freshclam.conf}} pointing to {{ic|/var/lib/clamav}}, but {{ic|/etc/clamd.conf}} (default directory) pointing to {{ic|/usr/share/clamav}}, or other directory. Edit in {{ic|/etc/clamd.conf}} and replace with the same DatabaseDirectory like in {{ic|/etc/freshclam.conf}}. After that clamav will start up succesfully.<br />
<br />
=== Error: Can't create temporary directory ===<br />
<br />
If you get the following error, along with a 'HINT' containing a UID and a GID number:<br />
# can't create temporary directory<br />
<br />
Correct permissions:<br />
# chown UID:GID /var/lib/clamav & chmod 755 /var/lib/clamav</div>Lestohttps://wiki.archlinux.org/index.php?title=ClamAV&diff=496222ClamAV2017-11-12T13:33:45Z<p>Lesto: better script to notify ALL users and set the correct title notification to "clamAV"</p>
<hr />
<div>[[Category:Security]]<br />
[[es:ClamAV]]<br />
[[fr:CLAMAV]]<br />
[[it:ClamAV]]<br />
[[ja:ClamAV]]<br />
[[ko:ClamAV]]<br />
[[ru:ClamAV]]<br />
[[sr:ClamAV]]<br />
[[zh-hans:ClamAV]]<br />
[http://www.clamav.net Clam AntiVirus] is an open source (GPL) anti-virus toolkit for UNIX. It provides a number of utilities including a flexible and scalable multi-threaded daemon, a command line scanner and advanced tool for automatic database updates. Because ClamAV's main use is on file/mail servers for Windows desktops, it primarily detects Windows viruses and malware with its built-in signatures.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|clamav}} package.Also you can install:<br />
* {{Pkg|clamtk}} , a GUI frontend for clamav.<br />
* addons<br />
** {{AUR|clamtk-gnome}} , a simple plugin for ClamTk to allow a right-click, context menu scan of files or folders in the Nautilus file manager.<br />
** {{AUR|thunar-sendto-clamtk}} , a simple plugin to allow a right-click, context menu scan of files or folders in Thunar.<br />
<br />
== Updating database ==<br />
Update the virus definitions with:<br />
# freshclam<br />
<br />
The database files are saved in:<br />
/var/lib/clamav/daily.cvd<br />
/var/lib/clamav/main.cvd<br />
/var/lib/clamav/bytecode.cvd<br />
<br />
The virus definition updater service is called {{ic|freshclamd.service}}. Consider starting it and enabling it to start at boot so that the virus definitions are kept recent.<br />
<br />
== Starting the daemon ==<br />
<br />
Consider updating the database before starting the service for the first time or you will run into troubles/errors which will prevent ClamAV to start correctly.<br />
<br />
The service is called {{ic|clamd.service}}. [[Start]] it or [[enable]] it to start at boot. You will need to run {{ic|freshclam}} prior to starting the service.<br />
<br />
== Testing the software ==<br />
<br />
In order to make sure ClamAV and the definitions are installed correctly, scan the [http://www.eicar.org/86-0-Intended-use.html EICAR test file] (a harmless signature with no virus code) with clamscan.<br />
<br />
$ curl http://www.eicar.org/download/eicar.com.txt | clamscan -<br />
<br />
The output '''must''' include:<br />
<br />
stdin: Eicar-Test-Signature FOUND<br />
<br />
Otherwise; read the Troubleshooting part or ask for help in the [https://bbs.archlinux.org/ Arch Forums].<br />
<br />
== Adding more databases/signatures repositories ==<br />
<br />
ClamAV can use databases/signature from other repositories or security vendors. <br />
<br />
To add the most important ones in a single step, install {{AUR|clamav-unofficial-sigs}} and configure it in {{ic|/etc/clamav-unofficial-sigs/user.conf}}.<br />
<br />
This will add signatures/databases from e.g. MalwarePatrol, SecuriteInfo, Yara, Linux Malware Detect, etc. For the full list of databases, [https://github.com/extremeshok/clamav-unofficial-sigs#description see the description of the GitHub repository].<br />
<br />
=== Set up clamav-unofficial-sigs ===<br />
<br />
First, edit the configuration in {{ic|/etc/clamav-unofficial-sigs/user.conf}}, and change the following line:<br />
<br />
# Uncomment the following line to enable the script<br />
user_configuration_complete="yes"<br />
<br />
To enable the unofficial signature service (which includes manpages, log rotation, and a cron job), run the following:<br />
<br />
# clamav-unofficial-sigs.sh --install-all<br />
<br />
Note that you still must have the {{ic|clamd}} service running in order to have signature updates from ClamAV themselves.<br />
<br />
This will refresh the signatures from the databases used in the clamav-unofficial-sigs script and extra ones as configured in each configuration file in the {{ic|/etc/clamav-unofficial-sigs}} folder. To refresh signatures from these databases manually, run the following:<br />
<br />
# clamav-unofficial-sigs.sh<br />
<br />
To stop the cron job from running, delete this file: {{ic|/etc/cron.d/clamav-unofficial-sigs}}.<br />
<br />
==== MalwarePatrol database ====<br />
<br />
If you would like to use the MalwarePatrol database, sign up for an account at https://www.malwarepatrol.net/.<br />
<br />
In {{ic|/etc/clamav-unofficial-sigs/user.conf}}, change the following to enable this functionality:<br />
<br />
malwarepatrol_receipt_code="YOUR-RECEIPT-NUMBER" # enter your receipt number here<br />
malwarepatrol_product_code="8" # Use 8 if you have a Free account or 15 if you are a Premium customer.<br />
malwarepatrol_list="clamav_basic" # clamav_basic or clamav_ext<br />
malwarepatrol_free="yes" # Set to yes if you have a Free account or no if you are a Premium customer.<br />
<br />
Source: https://www.malwarepatrol.net/clamav-configuration-guide/<br />
<br />
== Scan for viruses ==<br />
<br />
{{ic|clamscan}} can be used to scan certain files, home directory, or an entire system:<br />
<br />
$ clamscan myfile<br />
$ clamscan --recursive --infected /home # or -r -i<br />
$ clamscan --recursive --infected --exclude-dir='^/sys|^/dev' /<br />
<br />
If you would like {{ic|clamscan}} to remove the infected file add to the command the {{ic|--remove}} option, or you can use {{ic|1=--move=/dir}} to quarantine them.<br />
<br />
You may also want {{ic|clamscan}} to scan larger files. In this case, append the options {{ic|1=--max-filesize=4000M}} and {{ic|1=--max-scansize=4000M}} to the command. '4000M' is the largest possible value, and may be lowered as necessary.<br />
<br />
Using the {{ic|1=-l /path/to/file}} option will print the {{ic|clamscan}} logs to a text file for locating reported infections.<br />
<br />
== Using the milter ==<br />
<br />
Copy {{ic|/etc/clamav/clamav-milter.conf.sample}} to {{ic|/etc/clamav/clamav-milter.conf}} and adjust it to your needs. For example:<br />
<br />
{{hc|/etc/clamav/clamav-milter.conf|2=<nowiki><br />
MilterSocket /run/clamav/clamav-milter.sock<br />
MilterSocketMode 660<br />
FixStaleSocket yes<br />
User clamav<br />
PidFile /run/clamav/clamav-milter.pid<br />
TemporaryDirectory /tmp<br />
ClamdSocket unix:/var/lib/clamav/clamd.sock<br />
LogSyslog yes<br />
LogInfected Basic<br />
</nowiki>}}<br />
<br />
Create {{ic|/etc/systemd/system/clamav-milter.service}}:<br />
<br />
{{hc|/etc/systemd/system/clamav-milter.service|2=<nowiki><br />
[Unit]<br />
Description='ClamAV Milter'<br />
After=clamd.service<br />
<br />
[Service]<br />
Type=forking<br />
ExecStart=/usr/bin/clamav-milter --config-file /etc/clamav/clamav-milter.conf<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
</nowiki>}}<br />
<br />
Enable and start the service.<br />
<br />
== OnAccessScan ==<br />
On-access scanning requires the kernel to be compiled with the ''fanotify'' kernel module (kernel >= 3.8). Check if ''fanotify'' has been enabled before enabling on-access scanning.<br />
$ cat /proc/config.gz | gunzip | grep FANOTIFY=y<br />
<br />
On-access scanning will scan the file while reading, writing or executing it.<br />
<br />
First, edit the {{ic|/etc/clamav/clamd.conf}} configuration file by adding the following to the end of the file (you can also change the individual options):<br />
<br />
{{hc|/etc/clamav/clamd.conf|<br />
# Enables on-access scan, requires clamd service running<br />
ScanOnAccess true<br />
<br />
# Set the mount point where to recursively perform the scan,<br />
# this could be every path or multiple path (one line for path)<br />
OnAccessMountPath /usr<br />
OnAccessMountPath /home/<br />
OnAccessExcludePath /var/log/<br />
<br />
# Flag fanotify to block any events on monitored files to perform the scan<br />
OnAccessPrevention false<br />
<br />
# Perform scans on newly created, moved, or renamed files<br />
OnAccessExtraScanning true<br />
<br />
# Check the UID from the event of fanotify<br />
OnAccessExcludeUID 0<br />
<br />
# Specify an action to perform when clamav detects a malicious file<br />
# it is possible to specify an inline command too<br />
VirusEvent /etc/clamav/detected.zsh<br />
<br />
# WARNING: clamd should run as root<br />
User root<br />
}}<br />
<br />
Next, create the file {{ic|/etc/clamav/detected.zsh}} and add the following. This allows you to change/specify the debug message when a virus has been detected by clamd's on-access scanning service:<br />
<br />
{{hc|/etc/clamav/detected.sh|2=<nowiki><br />
#!/bin/bash<br />
PATH=/usr/bin<br />
<br />
XUSERS=($(who|egrep "\(:[0-9](\.[0-9])*\)"|awk '{print $1$5}'|sort -u))<br />
for XUSER in $XUSERS; do<br />
NAME=(${XUSER/(/ })<br />
DISPLAY=${NAME[1]/)/}<br />
DBUS_ADDRESS=unix:path=/run/user/$(id -u ${NAME[0]})/bus<br />
sudo -u ${NAME[0]} DISPLAY=${DISPLAY} \<br />
DBUS_SESSION_BUS_ADDRESS=${DBUS_ADDRESS} \<br />
PATH=${PATH} \<br />
notify-send -i dialog-warning "clamAV" "$@"<br />
done<br />
</nowiki>}}<br />
<br />
If you are using [[AppArmor]], it is also necessary to allow clamd to run as root:<br />
<br />
# aa-complain clamd<br />
<br />
Restart/start the service with {{ic|systemctl restart clamd.service}}.<br />
<br />
Source: http://blog.clamav.net/2016/03/configuring-on-access-scanning-in-clamav.html<br />
<br />
== Troubleshooting ==<br />
<br />
=== Error: Clamd was NOT notified ===<br />
<br />
If you get the following messages after running freshclam:<br />
{{bc|<br />
WARNING: Clamd was NOT notified: Cannot connect to clamd through <br />
/var/lib/clamav/clamd.sock connect(): No such file or directory<br />
}}<br />
<br />
Add a sock file for ClamAV:<br />
{{bc|<br />
# touch /var/lib/clamav/clamd.sock<br />
# chown clamav:clamav /var/lib/clamav/clamd.sock<br />
}}<br />
Then, edit {{Ic|/etc/clamav/clamd.conf}} - uncomment this line:<br />
LocalSocket /var/lib/clamav/clamd.sock<br />
Save the file and [[Daemons|restart the daemon]] with {{ic|systemctl restart clamd.service}}.<br />
<br />
=== Error: No supported database files found ===<br />
<br />
If you get the next error when starting the daemon:<br />
{{bc|<br />
LibClamAV Error: cli_loaddb(): No supported database files found<br />
in /var/lib/clamav ERROR: Not supported data format<br />
}}<br />
<br />
This happens because of mismatch between {{ic|/etc/freshclam.conf}} setting {{ic|DatabaseDirectory}} and {{ic|/etc/clamd.conf}} setting {{ic|DatabaseDirectory}}.<br />
{{ic|/etc/freshclam.conf}} pointing to {{ic|/var/lib/clamav}}, but {{ic|/etc/clamd.conf}} (default directory) pointing to {{ic|/usr/share/clamav}}, or other directory. Edit in {{ic|/etc/clamd.conf}} and replace with the same DatabaseDirectory like in {{ic|/etc/freshclam.conf}}. After that clamav will start up succesfully.<br />
<br />
=== Error: Can't create temporary directory ===<br />
<br />
If you get the following error, along with a 'HINT' containing a UID and a GID number:<br />
# can't create temporary directory<br />
<br />
Correct permissions:<br />
# chown UID:GID /var/lib/clamav & chmod 755 /var/lib/clamav</div>Lestohttps://wiki.archlinux.org/index.php?title=PulseAudio/Examples&diff=466480PulseAudio/Examples2017-01-24T00:35:58Z<p>Lesto: Client need pulseaudio-zeroconf</p>
<hr />
<div>[[Category:Sound]]<br />
[[it:PulseAudio/Examples]]<br />
[[ja:PulseAudio/サンプル]]<br />
[[ru:PulseAudio/Examples]]<br />
{{Related articles start}}<br />
{{Related|PulseAudio}}<br />
{{Related|PulseAudio/Troubleshooting}}<br />
{{Related articles end}}<br />
== Set default input sources ==<br />
<br />
List available input sources<br />
{{hc|<nowiki>$ pacmd list-sources | grep -e device.string -e 'name:'</nowiki>|2=<br />
name: <input><br />
device.string = "hw:2"<br />
name: <oss_input.dsp><br />
device.string = "/dev/dsp"<br />
name: <alsa_output.pci-0000_04_01.0.analog-stereo.monitor><br />
name: <combined.monitor><br />
}}<br />
<br />
To set it as the system wide default, add your source name to /etc/pulse/default.pa<br />
<br />
set-default-source ''alsa_output.pci-0000_04_01.0.analog-stereo.monitor<br />
''<br />
For temporary use<br />
$ pacmd "set-default-source alsa_output.pci-0000_04_01.0.analog-stereo.monitor"<br />
<br />
{{Tip|The default source can be referred as {{ic|@DEFAULT_SOURCE@}} in commands, for example: {{ic|$ pactl set-source-mute @DEFAULT_SOURCE@ toggle}}.}}<br />
<br />
== Set the default output source ==<br />
<br />
Determine the name of the new source, which has a * in front of index:<br />
{{hc|<nowiki>$ pacmd list-sinks | grep -e 'name:' -e 'index'</nowiki>|<br />
* index: 0<br />
name: <alsa_output.pci-0000_04_01.0.analog-stereo><br />
index: 1<br />
name: <combined><br />
}}<br />
<br />
To set it as the system wide default, add the following to '' /etc/pulse/default.pa''<br />
<br />
set-default-sink alsa_output.pci-0000_04_01.0.analog-stereo<br />
<br />
When done then you can logout/login or restart PulseAudio manually for these changes to take effect.<br />
<br />
{{Note|1=<nowiki></nowiki><br />
* The sinks that are set as default are marked with {{ic|*}} in front of the index.<br />
* The numbering of sinks is not guaranteed to be persistent, so all sinks in the {{ic|default.pa}} file should be identified by the name.<br />
* For quick identification at runtime (e.g. to manage sound volume), you can use the sink index instead of the sink name: {{bc|<nowiki><br />
$ pactl set-sink-volume 0 +3%<br />
$ pactl set-sink-volume 0 -- -3%<br />
$ pactl set-sink-mute 0 toggle<br />
</nowiki>}}<br />
* To avoid unnecessary overriding of 100% normal volume it is better to use alternative utilities for managing of sound. See the [https://bbs.archlinux.org/viewtopic.php?id=124513 forum thread] for more information.}}<br />
<br />
{{Tip|The default sink can be referred as {{ic|@DEFAULT_SINK@}} in commands, for example: {{ic|$ pactl set-sink-volume @DEFAULT_SINK@ +5%}}.}}<br />
<br />
== Simultaneous HDMI and analog output ==<br />
PulseAudio allows for simultaneous output to multiple sources. In this example, some applications are configured to use HDMI while others are configured to use analog. Multiple applications are able to receive audio at the same time.<br />
{{bc|$ aplay -l<br />
**** List of PLAYBACK Hardware Devices ****<br />
card 0: Intel [HDA Intel], device 0: ALC889A Analog [ALC889A Analog]<br />
Subdevices: 0/1<br />
Subdevice #0: subdevice #0<br />
card 0: Intel [HDA Intel], device 1: ALC889A Digital [ALC889A Digital]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
card 0: Intel [HDA Intel], device 3: HDMI 0 [HDMI 0]<br />
Subdevices: 0/1<br />
Subdevice #0: subdevice #0}}<br />
<br />
Or by using the the {{ic|pacmd}} command: <br />
<br />
{{hc|<nowiki>$ pacmd list-sinks | grep -e 'name:' -e 'alsa.device ' -e 'alsa.subdevice '</nowiki>|<nowiki><br />
name: <alsa_output.pci-0000_00_1b.0.analog-stereo><br />
alsa.subdevice = "0"<br />
alsa.device = "0"</nowiki>}}<br />
<br />
The key to a configuration like this is to understand that whatever is selected in pavucontrol under ''Configuration > Internal Audio'' is the default device. Load ''pavucontrol > Configuration'' and select HDMI as the profile. <br />
<br />
To setup the analog device as a secondary source, add the following to the {{ic|/etc/pulse/default.pa}} configuration at the beginning, before any other modules are loaded: <br />
<br />
### Load analog device<br />
load-module module-alsa-sink device=hw:0,0<br />
load-module module-combine-sink sink_name=combined<br />
set-default-sink combined<br />
<br />
Restart PulseAudio, run ''pavucontrol'' and select the "Output Devices" tab. Three settings should be displayed:<br />
# Internal Audio Digital Stereo (HDMI)<br />
# Internal Audio<br />
# Simultaneous output to Internal Audio Digital Stereo (HDMI), Internal Audio<br />
<br />
Now start a program that will use PulseAudio such as MPlayer, VLC, mpd, etc. and switch to the "Playback" tab. A drop-down list should be available for the running program to select one of the three sources.<br />
<br />
Also see [https://bbs.archlinux.org/viewtopic.php?id=118026 this thread] for a variation on this theme and [http://www.freedesktop.org/wiki/Software/PulseAudio/FAQ#Can_I_use_PulseAudio_to_playback_music_on_two_sound_cards_simultaneously.3F PulseAudio FAQ].<br />
<br />
==HDMI output configuration==<br />
As outlined in ftp://download.nvidia.com/XFree86/gpu-hdmi-audio-document/gpu-hdmi-audio.html#_issues_in_pulseaudio unless the HDMI port is the first<br />
output, PulseAudio will not be able to have any audio when using certain graphics cards with HDMI audio support. This is because of a bug in PulseAudio where it will only select the first HDMI output on a device. A work around posted further down is to first find which HDMI output is working by using the aplay utility from ALSA.<br />
<br />
The original title for this section indicated the problem is specific to nVidia cards. As seen in [https://bbs.archlinux.org/viewtopic.php?id=133222 this forum thread] other cards are affected as well. The rest of the section will use an nVidia card as a case-study but the solution should carry over for people using other affected cards.<br />
<br />
===Finding HDMI output===<br />
Then find the working output by listing the available cards<br />
# aplay -l<br />
<br />
sample output:<br />
**** List of PLAYBACK Hardware Devices ****<br />
card 0: NVidia [HDA NVidia], device 0: ALC1200 Analog [ALC1200 Analog]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
card 0: NVidia [HDA NVidia], device 3: ALC1200 Digital [ALC1200 Digital]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
card 1: NVidia_1 [HDA NVidia], device 3: HDMI 0 [HDMI 0]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
card 1: NVidia_1 [HDA NVidia], device 7: HDMI 0 [HDMI 0]<br />
Subdevices: 0/1<br />
Subdevice #0: subdevice #0<br />
card 1: NVidia_1 [HDA NVidia], device 8: HDMI 0 [HDMI 0]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
card 1: NVidia_1 [HDA NVidia], device 9: HDMI 0 [HDMI 0]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
<br />
===Testing for the correct card===<br />
Now a list of the detected cards is known, users will need to test for which one is outputting to the TV/monitor<br />
# aplay -D plughw:1,3 /usr/share/sounds/alsa/Front_Right.wav<br />
<br />
where 1 is the card and 3 is the device substitute in the values listed from the previous section. If there is no audio, then try substituting a different device (on my card I had to use card 1 device 7)<br />
<br />
===Manually configuring PulseAudio to detect the Nvidia HDMI===<br />
Having identified which HDMI device is working, PulseAudio can be forced to use it via an edit to {{ic|/etc/pulse/default.pa}}:<br />
# load-module module-alsa-sink device=hw:1,7<br />
<br />
where the 1 is the card and the 7 is the device found to work in the previous section<br />
<br />
restart pulse audio<br />
$ pulseaudio -k<br />
$ pulseaudio --start<br />
<br />
open the sound settings manager, make sure that under the hardware tab the graphics cards HDMI audio is set to "Digital Stereo (HDMI) Output" (My graphics card audio is called "GF100 High Definition Audio Controller").<br />
<br />
Then, open the output tab. There should now be two HDMI outputs for the graphics card. Test which one works by selecting one of them, and then using a program to play audio. For example, use VLC to play a movie, and if it does not work, then select the other.<br />
<br />
=== Automatically switch audio to HDMI ===<br />
<br />
{{Style|Dodgy code, e.g. hardcodes DISPLAY}}<br />
Create a script to switch to the desired audio profile if an HDMI cable is plugged in:<br />
<br />
{{hc|/usr/local/bin/hdmi_sound_toggle.sh|2=<nowiki><br />
#!/bin/bash<br />
USER_NAME=$(w -hs | awk -v vt=tty$(fgconsole) '$0 ~ vt {print $1}')<br />
USER_ID=$(id -u "$USER_NAME")<br />
HDMI_STATUS=$(</sys/class/drm/card0/*HDMI*/status)<br />
<br />
export PULSE_SERVER="unix:/run/user/"$USER_ID"/pulse/native"<br />
<br />
if [[ $HDMI_STATUS == connected ]]<br />
then<br />
sudo -u "$USER_NAME" pactl --server "$PULSE_SERVER" set-card-profile 0 output:hdmi-stereo+input:analog-stereo<br />
else<br />
sudo -u "$USER_NAME" pactl --server "$PULSE_SERVER" set-card-profile 0 output:analog-stereo+input:analog-stereo<br />
fi<br />
</nowiki>}}<br />
<br />
Make the script executable:<br />
<br />
chmod +x /usr/local/bin/hdmi_sound_toggle.sh<br />
<br />
Create a udev rule to run this script when the status of the HDMI change:<br />
{{Note|udev rule can't directly run a script, a workaround is to use a .service to run this script}}<br />
<br />
{{hc|/etc/udev/rules.d/99-hdmi_sound.rules|2=<br />
KERNEL=="card0", SUBSYSTEM=="drm", ACTION=="change", RUN+="/usr/bin/systemctl start hdmi_sound_toggle.service"<br />
}}<br />
<br />
Finally, create the .service file required by the udev rule above:<br />
{{hc|/etc/systemd/system/hdmi_sound_toggle.service|2=<br />
[Unit]<br />
Description=hdmi sound hotplug<br />
<br />
[Service]<br />
Type=simple<br />
RemainAfterExit=no<br />
ExecStart=/usr/local/bin/hdmi_sound_toggle.sh<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
}}<br />
<br />
To make the change effective don't forget to reload the udev rules:<br />
udevadm control --reload-rules<br />
<br />
You'll also need to reload the systemd units.<br />
systemctl daemon-reload<br />
<br />
A reboot can be required.<br />
<br />
==Surround sound systems==<br />
Many people have a surround sound card, but have speakers for just two channels, so PulseAudio cannot really default to a surround sound setup. To enable all of the channels, edit {{ic|/etc/pulse/daemon.conf}}: uncomment the default-sample-channels line (i.e. remove the semicolon from the beginning of the line) and set the value to '''6'''. For a ''5.1'' setup, or '''8''' for a ''7.1'' setup etc.<br />
# Default<br />
default-sample-channels=2<br />
# For 5.1<br />
default-sample-channels=6<br />
# For 7.1<br />
default-sample-channels=8<br />
<br />
If your channels are not correclty mapped or the volume controls for the individual channels do not work as expected in pavucontrol, and you have a HDMI and an anlog soundcard, then try to add the following line to {{ic|/etc/pulse/default.pa}}<br />
<br />
load-module module-combine channels=6 channel_map=front-left,front-right,rear-left,rear-right,front-center,lfe<br />
<br />
Note that this example is for a 5.1 setup.<br />
<br />
After doing the edit, restart PulseAudio.<br />
<br />
=== Splitting front/rear ===<br />
<br />
Connect speakers to front analog output and headphones to rear output. It would be useful to split front/rear to separate sinks. Add to {{ic|/etc/pulse/default.pa}}:<br />
<br />
load-module module-remap-sink sink_name=speakers remix=no master=alsa_output.pci-0000_05_00.0.analog-surround-40 channels=2 master_channel_map=front-left,front-right channel_map=front-left,front-right<br />
load-module module-remap-sink sink_name=headphones remix=no master=alsa_output.pci-0000_05_00.0.analog-surround-40 channels=2 master_channel_map=rear-left,rear-right channel_map=front-left,front-right<br />
Make sure to replace alsa_output.pci-0000_05_00.0.analog-surround-40 with the sound card name shown in 'pacmd list-sinks'.<br />
Now you have 2 additional sinks which can be used separately. You can choose 'sink_name' freely, as long as there is no sink with that name already. The 'remix' parameter controls whether the audio should be down-/upmixed to match the channels in the sink.<br />
<br />
{{Tip|If pulseaudio fails with {{ic|master sink not found}}, comment out the remapping lines, start PulseAudio and verify your card output is set to the one you specified (e.g. analog surround 4.0). Alternatively, try using a [[#Set the default output source|sink index]] instead of a sink name.}}<br />
<br />
===Splitting 7.1 into 5.1+2.0===<br />
<br />
Similar to the example above, you can also split a 7.1 configuration into 5.1 surround and stereo output devices.<br />
Set your card to 7.1 mode, then add the following lines to {{ic|/etc/pulse/default.pa}}:<br />
load-module module-remap-sink sink_name=Surround remix=no master=alsa_output.pci-0000_00_14.2.analog-surround-71 channels=6 master_channel_map=front-left,front-right,rear-left,rear-right,front-center,lfe channel_map=front-left,front-right,rear-left,rear-right,front-center,lfe<br />
load-module module-remap-sink sink_name=Stereo remix=no master=alsa_output.pci-0000_00_14.2.analog-surround-71 channels=2 master_channel_map=side-left,side-right channel_map=front-left,front-right<br />
<br />
Make sure to replace alsa_output.pci-0000_00_14.2 with your sound card name, get it by running 'pacmd list-sinks'.<br />
This configuration will use the front/rear/center+lfe (green/black/orange) jacks for the 5.1 sink and the side (grey) jack for the stereo sink.<br />
It will also downmix any audio to stereo for the stereo sink, but will not touch the 5.1 output.<br />
<br />
{{Tip|If pulseaudio fails with {{ic|master sink not found}}, comment out the remapping lines, start PulseAudio and verify your card output is set to analog surround 7.1. Alternatively, try using a [[#Set the default output source|sink index]] instead of a sink name.}}<br />
<br />
===Disabling LFE remixing===<br />
By default, PulseAudio remixes the number of channels to the default-sample-channels and since version 7 it also remixes the LFE channel. If you wish to disable LFE remixing, uncomment the line:<br />
<br />
; enable-lfe-remixing = yes<br />
<br />
and replace yes with no:<br />
<br />
enable-lfe-remixing = no<br />
<br />
then restart Pulseaudio.<br />
<br />
===Binaural Headphones===<br />
{{AUR|ladspa-bs2b}} provides a plugin to simulate surround sound on stereo headphones. To use it, find your headphones with:<br />
{{hc|<nowiki>$ pacmd list-sinks | grep -e 'name:'</nowiki>|<br />
name: <alsa_output.pci-0000_00_1b.0.iec958-ac3-surround-51><br />
name: <alsa_output.pci-0000_00_1b.0.iec958-ac3-surround-51.equalizer><br />
name: <bluez_sink.00_1F_82_28_93_51><br />
}}<br />
Load the plugin (''new'' sink_name is up to you, master=''headphone's sink name''):<br />
pacmd load-module module-ladspa-sink sink_name=binaural master=bluez_sink.00_1F_82_28_93_51 plugin=bs2b label=bs2b control=700,4.5<br />
Use {{Pkg|pavucontrol}} to transfer streams to the new sink, or:<br />
pactl move-sink-input $INPUTID $BINAURALSINKNAME<br />
<br />
==PulseAudio over network==<br />
One of PulseAudio's unique features is its ability to stream audio from clients over TCP to a server running the PulseAudio daemon reliably within a LAN. Ensure that client and server systems agree on the time (e.g. use NTP), or audio streams may be choppy or may not work at all.<br />
<br />
To accomplish this, one needs to enable module-native-protocol-tcp. <br />
<br />
===TCP support (networked sound)===<br />
To enable the TCP module, add this to (or uncomment, if already there) {{ic|/etc/pulse/default.pa}} on both the client and server:<br />
load-module module-native-protocol-tcp<br />
<br />
For this to work, it is a requirement that both the client and server share the same cookie. Ensure that the clients and server share the same cookie file found under {{ic|~/.config/pulse/cookie}}. It does not matter whose cookie file you use (the server or a client's), just that the server and client(s) share the same one.<br />
<br />
Note: If experiencing trouble connecting, use (on server)<br />
pacmd list-modules<br />
<br />
===TCP support with anonymous clients===<br />
If it is undesirable to copy the cookie file from clients, anonymous clients can access the server by giving these parameters to module-native-protocol-tcp on the server (again in {{ic|/etc/pulse/default.pa}}):<br />
<br />
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24 auth-anonymous=1<br />
<br />
Change the LAN IP subnet to match that of the those clients you wish to have access to the server.<br />
<br />
===Zeroconf (Avahi) publishing===<br />
For the remote PulseAudio server to appear in the PulseAudio Device Chooser ({{ic|pasystray}}), load the appropriate zeroconf modules, and enable the [[Avahi]] [[daemon]].<br />
<br />
On the client install {{ic|pulseaudio-zeroconf}}.<br />
<br />
On both machines, [[start]] and [[enable]] the {{ic|avahi-daemon}} systemd unit.<br />
<br />
On the server, add {{ic|load-module module-zeroconf-publish}} to {{ic|/etc/pulse/default.pa}}, on the client, add {{ic|load-module module-zeroconf-discover}} to {{ic|/etc/pulse/default.pa}}. Now redirect any stream or complete audio output to the remote PulseAudio server by selecting the appropriate sink.<br />
<br />
If you have issues with the remote syncs appearing on the client, try restarting the Avahi daemon on the server to rebroadcast the available interfaces.<br />
<br />
===Selecting the Server===<br />
Run the graphical PulseAudio Volume Control {{ic|pavucontrol}}. Under the '''Output Devices''' tab, you should see the local and remote output devices. Under the '''Playback''' tab, to the left of the "X" Mute Audio button, you should see a box containing the name of an output device. That box is ''actually a button'', which will display a drop-down radio-button list of the available output devices, with one output device selected. Selecting an output device from the list will allow the audio stream to be switched to the PulseAudio server associated with that output device. This control is not at all obvious until you have used it, and is especially useful with a remote Headless sound server.<br />
<br />
Similarly, under the '''Input Devices''' tab, local and remote input devices will be seen. And under the '''Recording''' tab, there will be a box, to the left of the "X" Mute Audio button, with the name of an input device which is actually a button which will display a drop-down radio-button list of available input devices.<br />
<br />
Run {{ic|pavucontrol}} on the local or remote host associated with the audio stream to be directed. For instance, run {{ic|pavucontrol}} on the remote host to direct the remote audio output to the local host. Run {{ic|pavucontrol}} on the local host to direct the local audio output to some remote host.<br />
<br />
Setting up simultaneous inputs or outputs is a different thing. Search about "monitor" and "module-combine-sink" for that.<br />
===Switching the PulseAudio server used by local X clients===<br />
To switch between servers on the client from within X, the {{ic|pax11publish}} command can be used. For example, to switch from the default server to the server at hostname foo:<br />
$ pax11publish -e -S foo<br />
<br />
Or to switch back to the default:<br />
$ pax11publish -e -r<br />
<br />
Instead of telling the PulseAudio server to stream audio (as described above), this will edit PulseAudio variables on the X11 root window, which will instruct the PulseAudio client libraries to connect to a PulseAudio server other than {{ic|localhost}}. As such, the programs will no longer interact with the local {{ic|pulseaudio}} process, which can then be [[stop]]ped. Programs such as {{ic|pactl}}, {{ic|pacmd}} or {{ic|pavucontrol}} will need to also run with the appropriate {{ic|PULSE_SERVER}} environment/X variable to control the remote PulseAudio server.<br />
<br />
Note that for the switch to become apparent, the programs using Pulse must be restarted, or their PulseAudio client library otherwise reinitialized (completely stopping and restarting playback may be enough). To make this setting permanent, edit {{ic|default-server}} in {{ic|~/.config/pulse/client.conf}} or {{ic|/etc/pulse/client.conf}}.<br />
<br />
===When everything else seems to fail===<br />
The following is a quick fix and NOT a permanent solution<br />
<br />
On the server:<br />
$ paprefs <br />
Go to Network Access -> Enable access to local sound devices (Also check both 'Allow discover' and 'Don't require authentication').<br />
<br />
On the client:<br />
$ export PULSE_SERVER=server.ip && mplayer test.mp3<br />
<br />
==ALSA monitor source==<br />
To be able to record from a monitor source (a.k.a. "What-U-Hear", "Stereo Mix"), use {{ic|pactl list}} to find out the name of the source in PulseAudio (e.g. {{ic|alsa_output.pci-0000_00_1b.0.analog-stereo.monitor}}). Then add lines like the following to {{ic|/etc/asound.conf}} or {{ic|~/.asoundrc}}:<br />
pcm.pulse_monitor {<br />
type pulse<br />
device alsa_output.pci-0000_00_1b.0.analog-stereo.monitor<br />
}<br />
<br />
ctl.pulse_monitor {<br />
type pulse<br />
device alsa_output.pci-0000_00_1b.0.analog-stereo.monitor<br />
}<br />
<br />
Now you can select {{ic|pulse_monitor}} as a recording source.<br />
<br />
Alternatively, you can use pavucontrol to do this: make sure you have set up the display to "All input devices", then select "Monitor of [your sound card]" as the recording source.<br />
<br />
== Monitor specific output ==<br />
<br />
It is possible to monitor a specific output, for example to stream audio from a music player into a VOIP application.<br />
Simply create a null output device:<br />
<br />
pactl load-module module-null-sink sink_name=<name><br />
<br />
In Pulseaudio Volume Control (pavucontrol), under the "Playback" tab, change the output of an application to <name>, and in the recording tab change the input of an application to "Monitor of <name>". Audio will now be outputted from one application into the other.<br />
<br />
==PulseAudio through JACK==<br />
<br />
The [[JACK Audio Connection Kit]] is popular for audio work, and is widely supported by Linux audio applications. It fills a similar niche as PulseAudio, but with more of an emphasis on professional audio work. In particular, audio applications such as Ardour and Audacity work well with Jack.<br />
<br />
===The new new way===<br />
This configuration only works with jackdbus (JACK2 compiled with D-Bus support). It also requires the {{Pkg|pulseaudio-jack}} package. Make sure that {{ic|/etc/pulse/default.pa}} contains a line:<br />
load-module module-jackdbus-detect ''options''<br />
Where {{ic|''options''}} can be any options supported by this module, usually {{ic|1=channels=2}}.<br />
<br />
As described on the [https://github.com/jackaudio/jackaudio.github.com/wiki/JackDbusPackaging Jack-DBUS Packaging] page:<br />
<br />
''Server auto-launching is implemented as D-Bus call that auto-activates JACK D-Bus service, in case it is not already started, and starts the JACK server. Correct interaction with PulseAudio is done using a D-Bus based audio card "acquire/release" mechanism. When JACK server starts, it asks this D-Bus service to acquire the audio card and PulseAudio will unconditionally release it. When JACK server stops, it releases the audio card that can be grabbed again by PulseAudio.''<br />
<br />
{{ic|module-jackdbus-detect.so}} dynamically loads and unloads module-jack-sink and module-jack-source when jackdbus is started and stopped.<br />
<br />
If PulseAudio sound does not work, check with {{ic|pavucontrol}} to see if the relevant programs appear in the playback tab. If not, add the following to {{ic|~/.asound.conf}} or {{ic|/etc/asound.conf}} to redirect ALSA to PulseAudio:<br />
<br />
pcm.pulse {<br />
type pulse<br />
}<br />
<br />
ctl.pulse {<br />
type pulse<br />
}<br />
<br />
pcm.!default {<br />
type pulse<br />
}<br />
ctl.!default {<br />
type pulse<br />
}<br />
<br />
If it still does not work, check with {{ic|pavucontrol}} in the playback tab and make sure the relevant programs are outputting to PulseAudio JACK Sink instead of your audio card (which JACK has control of, so it will not work). Also ensure that in the JACK graph the PulseAudio JACK Source is connected to the system audio output.<br />
<br />
===The new way===<br />
The basic idea is that killing PulseAudio is a bad idea because it may crash any apps using PulseAudio and disrupt any audio playing.<br />
<br />
The flow of how this setup works:<br />
<br />
# PulseAudio releases the sound card<br />
# JACK grabs sound card and starts up<br />
# script redirects PulseAudio to JACK<br />
# manually send PulseAudio apps to JACK output (pavucontrol may come in helpful for this)<br />
# use JACK programs etc<br />
# via script, stop redirecting PulseAudio to JACK<br />
# stop JACK and release sound card<br />
# PulseAudio grabs sound card and reroutes audio to it directly<br />
<br />
With QJackCTL, set up these scripts:<br />
<br />
{{ic|pulse-jack-pre-start.sh}} set it up as the execute script on startup script<br />
#!/bin/bash<br />
pacmd suspend true<br />
<br />
{{ic|pulse-jack-post-start.sh}} set this one up as execute script after startup<br />
#!/bin/bash<br />
pactl load-module module-jack-sink channels=2<br />
pactl load-module module-jack-source channels=2<br />
pacmd set-default-sink jack_out<br />
pacmd set-default-source jack_in<br />
<br />
{{ic|pulse-jack-pre-stop.sh}} "execute script on shutdown"<br />
#!/bin/bash<br />
SINKID=$(pactl list | grep -B 1 "Name: module-jack-sink" | grep Module | sed 's/[^0-9]//g')<br />
SOURCEID=$(pactl list | grep -B 1 "Name: module-jack-source" | grep Module | sed 's/[^0-9]//g')<br />
pactl unload-module $SINKID<br />
pactl unload-module $SOURCEID<br />
sleep 5<br />
<br />
{{ic|pulse-jack-post-stop.sh}} "execute script after shutdown"<br />
#!/bin/bash<br />
pacmd suspend false<br />
<br />
===The old way===<br />
Install the {{Pkg|pulseaudio-jack}} package, which provides {{ic|module-jack-source}} and {{ic|module-jack-sink}} which allow PulseAudio to be run as a sound server above the JACK daemon. This allows the usage of per-volume adjustments and the like for the apps which need it, play-back apps for movies and audio, while allowing low-latency and inter-app connectivity for sound-processing apps which connect to JACK. However, this will prevent PulseAudio from directly writing to the sound card buffers, which will increase overall CPU usage.<br />
<br />
To just try PA on top of JACK, have PA load the necessary modules on start:<br />
$ pulseaudio -L module-jack-sink -L module-jack-source<br />
<br />
To use PulseAudio with JACK, JACK must be started before PulseAudio, using whichever method one prefers. PulseAudio then needs to be started loading the two relevant modules. Edit {{ic|/etc/pulse/default.pa}}, and change the following region:<br />
### Load audio drivers statically (it is probably better to not load<br />
### these drivers manually, but instead use module-hal-detect --<br />
### see below -- for doing this automatically)<br />
#load-module module-alsa-sink<br />
#load-module module-alsa-source device=hw:1,0<br />
#load-module module-oss device="/dev/dsp" sink_name=output source_name=input<br />
#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input<br />
#load-module module-null-sink<br />
#load-module module-pipe-sink<br />
<br />
### Automatically load driver modules depending on the hardware available<br />
.ifexists module-udev-detect.so<br />
load-module module-udev-detect<br />
.else<br />
### Alternatively use the static hardware detection module (for systems that<br />
### lack udev support)<br />
load-module module-detect<br />
.endif<br />
<br />
to the following:<br />
### Load audio drivers statically (it is probably better to not load<br />
### these drivers manually, but instead use module-hal-detect --<br />
### see below -- for doing this automatically)<br />
#load-module module-alsa-sink<br />
#load-module module-alsa-source device=hw:1,0<br />
#load-module module-oss device="/dev/dsp" sink_name=output source_name=input<br />
#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input<br />
#load-module module-null-sink<br />
#load-module module-pipe-sink<br />
load-module module-jack-source<br />
load-module module-jack-sink<br />
<br />
### Automatically load driver modules depending on the hardware available<br />
#.ifexists module-udev-detect.so<br />
#load-module module-udev-detect<br />
#.else<br />
### Alternatively use the static hardware detection module (for systems that<br />
### lack udev support)<br />
#load-module module-detect<br />
#.endif<br />
<br />
Basically, this prevents module-udev-detect from loading. module-udev-detect will always try to grab the sound card (JACK has already done that, so this will cause an error). Also, the JACK source and sink must be explicitly loaded.<br />
<br />
====QjackCtl with start-up/shutdown scripts====<br />
Using the settings listed above, use QjackCtl to execute a script upon startup and shutdown to load/unload PulseAudio. Part of the reason users may wish to do this is that the above changes disable PulseAudio's automatic hardware detection modules. This particular setup is for using PulseAudio in an exclusive fashion with JACK, though the scripts could be modified to unload and load an alternate non-JACK setup, but killing and starting PulseAudio while programs might be using it would become problematic.<br />
<br />
{{Note|padevchooser in the following example is deprecated. It is replaced by pasystray}}<br />
<br />
The following example could be used and modified as necessary as a startup script that daemonizes PulseAudio and loads the ''padevchooser'' program (optional, needs to be built from AUR) called {{ic|jack_startup}}:<br />
#!/bin/bash<br />
#Load PulseAudio and PulseAudio Device Chooser<br />
<br />
pulseaudio -D<br />
padevchooser&<br />
<br />
as well as a shutdown script to kill PulseAudio and the Pulse Audio Device Chooser, as another example called {{ic|jack_shutdown}} also in the home directory:<br />
#!/bin/bash<br />
#Kill PulseAudio and PulseAudio Device Chooser<br />
<br />
pulseaudio --kill<br />
killall padevchooser<br />
<br />
Both scripts need to be made executable:<br />
chmod +x jack_startup jack_shutdown<br />
<br />
then with QjackCtl loaded, click on the ''Setup'' button and then the ''Options'' tab and tick both "Execute Script after Startup:" And "Execute Script on Shutdown:" and put either use the ... button or type the path to the scripts (assuming the scripts are in the home directory) {{ic|~/jack_startup}} and {{ic|~/jack_shutdown}} making sure to save the changes.<br />
<br />
==PulseAudio through OSS==<br />
Add the following to {{ic|/etc/pulse/default.pa}}:<br />
load-module module-oss<br />
<br />
Then start PulseAudio as usual, making sure that sinks and sources are defined for OSS devices.<br />
<br />
==PulseAudio from within a chroot (e.g. 32-bit chroot in 64-bit install)==<br />
Since a chroot sets up an alternative root for the running/jailing of applications, PulseAudio must be installed within the chroot itself ({{ic|pacman -S pulseaudio}} within the chroot environment).<br />
<br />
PulseAudio, if not set up to connect to any specific server (this can be done in {{ic|/etc/pulse/client.conf}}, through the PULSE_SERVER environment variable, or through publishing to the local X11 properties using module-x11-publish), will attempt to connect to the local pulse server, failing which it will spawn a new pulse server. Each pulse server has a unique ID based on the machine-id value in {{ic|/var/lib/dbus}}. To allow for chrooted apps to access the pulse server, the following directories must be mounted within the chroot:-<br />
/run<br />
/var/lib/dbus<br />
/tmp<br />
~/config/.pulse<br />
<br />
{{ic|/dev/shm}} should also be mounted for efficiency and good performance. Note that mounting /home would normally also allow sharing of the {{ic|~/.pulse}} folder.<br />
<br />
PulseAudio selects the path to the socket via XDG_RUNTIME_DIR, so be sure to drag it along when you chroot as a normal user using [[sudo]] (see [[Sudo#Environment variables]]).<br />
<br />
For specific direction on accomplishing the appropriate mounts, please refer to the wiki on installing a bundled 32-bit system, especially the [[Install bundled 32-bit system in Arch64#Allow 32-bit applications access to 64-bit PulseAudio|additional section]] specific to PulseAudio.<br />
<br />
==Disabling automatic spawning of PulseAudio server==<br />
Some users may prefer to manually start the PulseAudio server before running certain programs and then stop the PulseAudio server when they are finished. A simple way to accomplish this is to edit {{ic|~/.config/pulse/client.conf}} or {{ic|/etc/pulse/client.conf}} and change {{ic|1=autospawn = yes}} to {{ic|1=autospawn=no}}. Make sure the line is uncommented as well.<br />
{{hc|~/.config/pulse/client.conf #or /etc/pulse/client.conf|<nowiki><br />
autospawn=no<br />
</nowiki>}}<br />
Now you can manually start the pulseaudio server with<br />
$ pulseaudio --start<br />
and stop it with<br />
$ pulseaudio --kill<br />
<br />
This setting is also respected by the default pulseaudio dektop session startup script {{ic|start-pulseaudio-x11}} which is executed from {{ic|/etc/xdg/autostart/pulseaudio.desktop}}.<br />
<br />
==Disabling pulseaudio daemon altogether==<br />
To disable the pulseaudio daemon completely, and thereby preventing it from starting, one can add {{ic|1=daemon-binary=/bin/true}} to the configuration file.<br />
{{hc|~/.config/pulse/client.conf #or /etc/pulse/client.conf|2=daemon-binary=/bin/true}}<br />
<br />
==Remap stereo to mono==<br />
Remap a stereo input-sink to a mono sink by creating a virtual sink. It would be useful if you only have one speaker. Add to {{ic|/etc/pulse/default.pa}}:<br />
<br />
load-module module-remap-sink master=alsa_output.pci-0000_00_1f.5.analog-stereo sink_name=mono channels=2 channel_map=mono,mono<br />
# Optional: Select new remap as default<br />
set-default-sink mono<br />
<br />
(replace alsa_output.pci-0000_00_1f.5.analog-stereo in the sound card name shown from {{ic|pacmd list-sinks}})<br />
<br />
Switch player between virtual mono sink and real stereo sink.<br />
<br />
==Swap left/right channels==<br />
This is the same as "reverse stereo", where the left and right channels are to be swapped.<br />
<br />
First, identify the card you want its channels swapped:<br />
$ cat /proc/asound/cards<br />
and use the name string for the device you wish to use (the one in square brackets, e.g. [Intel]).<br />
<br />
Edit {{ic|/etc/pulse/default.pa}} and comment out module-hal-detect and module-detect lines.<br />
<br />
Search for the commented-out line that starts "#load-module module-alsa-sink", uncomment it and change it to<br />
<br />
load-module module-alsa-sink device=hw:[device name] channel_map=right,left<br />
Restart the pulseaudio deamon by running<br />
pulseaudio -k; pulseaudio -D<br />
<br />
[https://www.freedesktop.org/wiki/Software/PulseAudio/FAQ/#index34h3 Pulseaudio FAQ: How can I reverse my left and right speaker channels?]<br />
<br />
== PulseAudio as a minimal unintrusive dumb pipe to ALSA ==<br />
Some people do not want to run PulseAudio all the time for various reasons. This example will turn the full fledged audio server into an unobstrusive dumb pipe to ALSA devices that automatically starts '''and''' stops itself when done, allowing applications that requires PulseAudio to fully function while not touching any ALSA setting nor setting itself as the default ALSA device.<br />
<br />
This configuration tells native PA clients to autospawn the daemon when they need it, then the daemon is configured to autoexit as soon as all clients have disconnected. The daemon itself uses a plain simple static configuration that uses your configured {{ic|pcm.!default}} ALSA devices and nothing more. No replacement of ALSA's default, no playing with mixer levels, nothing but record/playback. Also make sure {{Pkg|pulseaudio-alsa}} is '''not''' installed so standard ALSA clients don't default to pulse. {{ic|alsamixer}} functions properly as well as any other ALSA clients. Also make sure common frameworks like Xine, Gstreamer and Phonon are configured to use ALSA: by default if they detect PulseAudio is installed they will try to use it before ALSA.<br />
<br />
{{hc|/etc/pulse/daemon.conf|<nowiki><br />
# Replace these with the proper values<br />
exit-idle-time = 0 # Exit as soon as unneeded<br />
flat-volumes = yes # Prevent messing with the master volume<br />
</nowiki>}}<br />
<br />
{{hc|/etc/pulse/client.conf|<nowiki><br />
# Replace these with the proper values<br />
<br />
# Applications that uses PulseAudio *directly* will spawn it,<br />
# use it, and pulse will exit itself when done because of the<br />
# exit-idle-time setting in daemon.conf<br />
autospawn = yes<br />
</nowiki>}}<br />
<br />
{{hc|/etc/pulse/default.pa|<nowiki><br />
# Replace the *entire* content of this file with these few lines and<br />
# read the comments<br />
<br />
.fail<br />
# Set tsched=0 here if you experience glitchy playback. This will<br />
# revert back to interrupt-based scheduling and should fix it.<br />
#<br />
# Replace the device= part if you want pulse to use a specific device<br />
# such as "dmix" and "dsnoop" so it doesn't lock an hw: device.<br />
<br />
# INPUT/RECORD<br />
load-module module-alsa-source device="default" tsched=1<br />
<br />
# OUTPUT/PLAYBACK<br />
load-module module-alsa-sink device="default" tsched=1 <br />
<br />
# Accept clients -- very important<br />
load-module module-native-protocol-unix<br />
<br />
.nofail<br />
.ifexists module-x11-publish.so<br />
# Publish to X11 so the clients know how to connect to Pulse. Will<br />
# clear itself on unload.<br />
load-module module-x11-publish<br />
.endif<br />
</nowiki>}}</div>Lestohttps://wiki.archlinux.org/index.php?title=Steam/Game-specific_troubleshooting&diff=447606Steam/Game-specific troubleshooting2016-08-23T22:16:28Z<p>Lesto: added a dependency from aur required to start the game</p>
<hr />
<div>[[Category:Gaming]]<br />
[[ja:Steam/ゲーム別のトラブルシューティング]]<br />
{{Poor writing|Lots of content duplication, highly dubious "solutions"}}<br />
See [[Steam]] for the main article, and [[Steam/Troubleshooting]] for generic troubleshooting.<br />
<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 />
==Air Brawl==<br />
===Dependencies===<br />
* {{pkg|gnu-free-fonts}}<br />
<br />
===Menus are missing text/blacked out===<br />
Air Brawl seems to require some fonts that are missing, installing the package {{pkg|gnu-free-fonts}} may fix it.<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}}{{Broken package link|{{aur-mirror|lib32-libjpeg6}}}}<br />
* {{Pkg|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 [[#Defender.27s_Quest:_Valley_of_the_Forgotten|Defender's Quest]]<br />
<br />
==Aquaria==<br />
<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 />
==Audiosurf 2==<br />
===Dependencies===<br />
* {{pkg|pulseaudio-alsa}}<br />
<br />
==Binding of Isaac: Rebirth==<br />
===Troubleshooting===<br />
====No sound====<br />
Right click on {{ic|Binding of Isaac: Rebirth}} on your game list, click on {{ic|Properties}}, click on {{ic|SET LAUNCH OPTIONS}}, then add this: <br />
LD_LIBRARY_PATH="/usr/lib:$LD_LIBRARY_PATH" %command%<br />
<br />
In the game, go to the options and set all audio to the proper volume.<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}}{{Broken package link|{{aur-mirror|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 />
To prevent the game from crashing at the very end when the credits are shown, change the size of the credits image as described here: http://steamcommunity.com/app/221830/discussions/0/828925849276110960/#c810921273836530791<br />
<br />
==Borderlands 2==<br />
<br />
===Syncing save games===<br />
<br />
Steam Cloud syncing does not (intentionally) work between platforms. With that said gave save files can be manually moved between systems. Save locations can be found here: http://pcgamingwiki.com/wiki/Borderlands_2#Game_data. Once backed up to a FAT32 or other cross-compatible file-system thumbdrive (or the cloud), move the saved files to your GNU/Linux system, locate your saved file location, and move into the 17-digit long numeric file name. If previous saves on your GNU/Linux system can be deleted you can do so now. The key fix that I found was a need to change the ownership, group, and permissions. I used {{ic|chown steam:steam *}} and then {{ic|chmod 0660 *}} to get my moved saved files to work.<br />
<br />
===Using Ctrl Key===<br />
Borderlands 2 does not allow the Ctrl key to be used by default. The game seems to be accessing keycodes and not keysyms, therefore xmodmap has no affect. A workaround is using ''setkeycodes'' to map the Ctrl-scancode to some other key, as described in [[Map scancodes to keycodes#Using setkeycodes]]. I use {{ic|setkeycodes 0x1d 56}} (as root) to map Ctrl to Alt before starting the game and {{ic|setkeycodes 0x1d 29}} to restore the default.<br />
<br />
===Logging into SHiFT===<br />
The Linux version of Borderlands 2 expects to be run on Ubuntu, as that is the "officially" supported distro for Steam. As a result of this, when attempting to log in to SHiFT, it will fail, claiming the server is not available. Using strace, it can be seen that it fails to connect to the server because it cannot load SSL certificates from /usr/lib/ssl, which is the Ubuntu filesystem spec. Arch uses /etc/ssl. This can be fixed by symlinking /etc/ssl to /usr/lib/ssl, like so: <br />
# ln -s /etc/ssl /usr/lib/ssl<br />
<br />
To avoid symlinking an alternative to the above is to add the following to the launch options in Steam:<br />
SSL_CERT_DIR="/etc/ssl/certs" %command%<br />
<br />
Using one method or the other you will now be able to log into SHiFT to redeem SHiFT codes.<br />
<br />
==Borderlands: The Pre-Sequel==<br />
Borderlands the Pre-Sequel (and maybe Borderlands 2) might not be able to connect to the Gearbox SHIFT-service, this is related to a wrong path to the available SSL certificates. This can be solved by creating a symbolic link from {{ic|/etc/ssl}} to {{ic|/usr/lib/ssl}}. See [http://steamcommunity.com/app/49520/discussions/0/616189742722687689/#c616189742811551908 this comment on the steam discussion forum].<br />
<br />
As an alternative the following can be added to the launch options in Steam:<br />
SSL_CERT_DIR="/etc/ssl/certs" %command%<br />
<br />
=== Keyboard not working ===<br />
<br />
Using dwm, no keyboard input seems to register with BL:TPQ. Switching to openbox helped solved the issue, no other fix could be found. It's either a specific dwm issue or tiling WMs in general.<br />
<br />
==Cities in Motion 2==<br />
<br />
=== Dialog boxes fail to display properly ===<br />
<br />
You will not be able to read or see anything, and you will 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 [http://bpaste.net/show/167019/ here] (replace {{ic|/etc/fonts/conf.d/10-scale-bitmap-fonts.conf}}).<br />
<br />
==Cities Skylines==<br />
<br />
===Textures not rendering properly===<br />
<br />
In Steam client set launch properties for game:<br />
<br />
UNITY_DISABLE_GRAPHICS_DRIVER_WORKAROUNDS=yes %command%<br />
<br />
== Civilization V==<br />
<br />
=== Stuttering sound with PulseAudio ===<br />
<br />
See [[PulseAudio/Troubleshooting#Laggy sound]].<br />
<br />
==The Clockwork Man==<br />
===Dependencies===<br />
* {{pkg|lib32-libidn}}<br />
<br />
== Counter-Strike: Global Offensive (CS:GO) ==<br />
<br />
=== Game runs on the wrong screen ===<br />
<br />
[https://github.com/ValveSoftware/Counter-Strike-Global-Offensive/issues/60 GitHub Counter-Strike: Global Offensive issue #60]<br />
<br />
If it happens, you can fix it by going into fullscreen windowed or windowed mode and then dragging the game onto the correct monitor. After you go back in fullscreen, the game should be on the correct monitor.<br />
<br />
=== Cannot reach bottom of the screen on menues ===<br />
[https://github.com/ValveSoftware/Counter-Strike-Global-Offensive/issues/594 GitHub Counter-Strike: Global Offensive issue #594]<br />
<br />
If you have a secondary monitor you might have a part of your lower screen you cannot reach on menues.<br />
If on Gnome you can try to open the overview (Super key) and drag the game to the other monitor and back.<br />
<br />
If you are not on Gnome or dragging the window back and forth did not work you can try to install and run this command, where X and Y is the offset of the window and H and W is the size.<br />
wmctrl -r "Counter-Strike: Global Offensive - OpenGL" -e 0,X,Y,H,W<br />
<br />
'''Example''': SecondaryMonitor: on the left 2560x1600, GamingMonitor: on the right 2560x1440).<br />
wmctrl -r "Counter-Strike: Global Offensive - OpenGL" -e 0,2560,0,1600,1200<br />
Here X and Y is 0,2560 to move the window to the monitor on the right and H and W 1600,1200 is set to match the ingame resolution.<br />
<br />
=== Audio is not synced ===<br />
<br />
[https://github.com/ValveSoftware/Counter-Strike-Global-Offensive/issues/45 GitHub Counter-Strike: Global Offensive issue #45]<br />
<br />
See [[PulseAudio/Troubleshooting#Laggy sound]] for a possible solution.<br />
<br />
=== Unable to aim when in game ===<br />
<br />
Unable to aim when in game. However, the mouse cursor does works in GUI such as main menu, game menu, etc.<br />
Add this line to your {{ic|.bash_profile}} and relogin:<br />
<br />
export SDL_VIDEO_X11_DGAMOUSE=0<br />
<br />
See also [https://bbs.archlinux.org/viewtopic.php?id=184905].<br />
<br />
=== Mouse Deadzone ===<br />
Small mouse movements (less than under 5 pixels per second) does not register on X or an OpenGL games. <br />
<br />
Solution[https://bbs.archlinux.org/viewtopic.php?pid=1519944#p1519944]:<br />
<br />
sudo pacman -R x86-input-libinput libinput<br />
<br />
=== Low Performance on AMD card using Catalyst proprietary driver ( <= 15.7 ) ===<br />
Solution[http://www.phoronix.com/scan.php?page=article&item=amd-csgo-workaround&num=1]:<br />
<br />
cd ~/.steam/steam/steamapps/common/Counter-Strike\ Global\ Offensive<br />
mv csgo_linux hl2_linux<br />
<br />
Now edit csgo.sh<br />
<br />
nano csgo.sh<br />
<br />
and change<br />
<br />
GAMEEXE=csgo_linux<br />
<br />
to <br />
<br />
GAMEEXE=hl2_linux<br />
<br />
=== Brightness slider not working ===<br />
<br />
First, find out your current display output name (connected one):<br />
<br />
xrandr | grep -v disconnected | grep connected<br />
<br />
In my case, it's<br />
<br />
'''DFP9''' connected<br />
<br />
Edit csgo.sh<br />
<br />
nano ~/.steam/steam/steamapps/common/Counter-Strike\ Global\ Offensive/csgo.sh<br />
<br />
and add the following lines (change the OUTPUT_NAME to one you found with xrandr)<br />
<br />
'''# gamma correction'''<br />
'''xrandr --output <OUTPUT_NAME> --gamma 1.6:1.6:1.6 # play with values if required'''<br />
STATUS=42<br />
while [ $STATUS -eq 42 ]; do<br />
...<br />
done<br />
'''# restore gamma'''<br />
'''xrandr --output <OUTPUT_NAME> --gamma 1:1:1'''<br />
exit $STATUS<br />
<br />
==Crusader Kings II==<br />
===Dependencies (x86_64)===<br />
* {{pkg|lib32-openssl}}<br />
<br />
===Tips and tricks===<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), save-game files seem to be stored to {{ic|$HOME/.paradoxinteractive/Crusader Kings II/}}. If your documents folder is empty, try looking there.<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 />
====Odd Sized Starting Window====<br />
Enable full screen mode as the default. In {{ic|~/.paradoxinteractive/Crusader Kings II/settings.txt}} change fullscreen=no to fullscreen=yes.<br />
<br />
==Death Road To Canada==<br />
===Troubleshooting===<br />
====No music====<br />
Right click on {{ic|Death Road To Canada}} on your game list, click on {{ic|Properties}}, click on {{ic|SET LAUNCH OPTIONS}}, then add this: <br />
LD_LIBRARY_PATH="/usr/lib:$LD_LIBRARY_PATH" %command%<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 accepted 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 />
== Divinity: Original Sin - Enhanced Edition ==<br />
<br />
=== Game doesn't start when using Bumblebee optirun or primusrun ===<br />
<br />
Edit {{ic|<path to library>/SteamApps/common/Divinity Original Sin Enhanced Edition/runner.sh}} to have it use primusrun:<br />
LD_LIBRARY_PATH="." primusrun ./EoCApp<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 />
* {{Pkg|lib32-libcurl-compat}} (Requires further commands after installation as described [http://steamcommunity.com/app/219740/discussions/2/620700960796078576/#c611704730329482542 here])<br />
<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 />
* {{pkg|lib32-fontconfig}}<br />
<br />
===Dependencies (Dota 2 reborn)===<br />
* {{pkg|libpng12}}<br />
* {{AUR|libudev0}} or {{AUR|libudev.so.0}}<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, try '''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 />
====Chinese Tips and player's name display problem====<br />
The Chinese characters in the Tips and player's name display block character.<br />
<br />
The problem caused by some fonts package. It is known that the 'ttf-dejave', 'ttf-liberation' and 'ttf-ms-fonts' will cause the prolem, and the 'wqy-*', 'ttf-ubuntu-font-family', 'ttf-arphic-uming', 'ttf-linux-libertine' are safe. The other fonts family are not checked.<br />
:[https://github.com/ValveSoftware/Dota-2/issues/1688 GitHub Steam issue #1688]<br />
<br />
====Chinese input method problem====<br />
Dota2 is not compatible with CJK IME(Input Method Editor/Enhancer), such as Ibus and Fcitx.<br />
Chinese characters can't be typed in Dota2.[https://github.com/ValveSoftware/Dota-2/issues/493 GitHub Steam issue 493]<br />
<br />
The possible solution<br />
<br />
Compile the `libSDL` with fcitx or ibus support, then replace `Game Folder/dota 2 beta/bin/libSDL2-2.0.so.0` with your version.<br />
:[http://forum.ubuntu.org.cn/viewtopic.php?f=34&t=460195 LibSDL+Ibus]<br />
:[http://forum.ubuntu.org.cn/viewtopic.php?f=34&t=466879&sid=1664abac47d8f639ed9b7f3abf94c675 LibSDL+Fcitx]<br />
:[https://github.com/timxx/SDL-fcitx LibSDL+Fcitx Source]<br />
:[https://github.com/ValveSoftware/Dota-2/issues/1650 The solutions issues]<br />
<br />
==Dwarfs F2P==<br />
===Dependencies===<br />
* {{AUR|lib32-libgdiplus}}{{Broken package link|{{aur-mirror|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 />
====Opening some menus causes the game to crash====<br />
Most menus work fine, but ones with checkboxes (LAN multiplayer, mounted games list) do not work at all. This is a bug in the menu code.<br />
<br />
If you prefer the default menu style and do not mind a hacky solution: [https://github.com/Facepunch/garrysmod-issues/issues/86#issuecomment-30935491 Simon311] has written code with instructions to fix it.<br />
<br />
If you do not care for the default menu style and want a more stable but feature-incomplete solution, Facepunch developer [https://github.com/robotboy655/gmod-lua-menu robotboy655] has written a new menu.<br />
<br />
===Game crashes after attempting to join server===<br />
While in the process of joining a server, downloading resources, etc, the game seems to hang and after a while, perhaps during the "sending client info" portion the game crashes, usually without any error messages. Error does not give much information, however, the process for Garry's mod is killed.<br />
<br />
This issue arises more often when joining servers with many addons like DarkRP servers specifically.<br />
<br />
The Problem seems to correlate with a weak GPU and the game is timing out from the server, so if the GPU is the problem, lowering the graphics settings to minimum fixes the problem until you can upgrade ;).<br />
<br />
==Hack 'n' Slash==<br />
===Troubleshooting===<br />
====The game starts but craches when loading a new or saved game====<br />
This seems to be the same issue as with Hammerwatch.<br />
Right click on Hack 'n' Slash 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 />
==Hacker Evolution [Untold, Duality]==<br />
===Dependencies===<br />
* {{Pkg|lib32-sdl2_mixer}}<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 {{ic|/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}}{{Broken package link|{{aur-mirror|lib32-libjpeg6}}}}<br />
* {{AUR|lib32-sfml}}<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 />
==Hatoful Boyfriend==<br />
===Japanese text invisible===<br />
Install {{pkg|wqy-microhei}} and {{pkg|wqy-microhei-lite}}.<br />
<br />
==The Impossible Game==<br />
===Dependencies===<br />
* {{pkg|lib32-sdl2}}<br />
* {{pkg|lib32-sdl2_image}}<br />
<br />
==The Inner World==<br />
===Bringing up the inventory or main menu===<br />
Hold the <tab> key.<br />
<br />
===Dependencies===<br />
<br />
====Sound support====<br />
Install {{AUR|java-commons-codec}} from the [[AUR]] to get sound support.<br />
<br />
====Cutscenes====<br />
The game has cutscenes. It starts directly with a cutscene before you start the actual game in the backyard. To see these cutscenes you need to use Oracle's Java instead of the openjdk.<br />
<br />
Install {{AUR|jre}} from the [[AUR]] and run<br />
<br />
archlinux-java set java-8-jre/jre<br />
<br />
as root. Furthermore you need the package ffmpeg-compat. Currently this package is in the community repository.<br />
<br />
There seem to be problems with Steam Overlay. Try to run the game directly with ~/Steam/SteamApps/common/TheInnerWorld/TIW_start.sh<br />
<br />
<br />
Note that cutscenes open in a new window. So pay attention to that and switch to the new window to enjoy the movies.<br />
<br />
<br />
See the [http://steamcommunity.com/app/251430/discussions/0/611701360817206606/#c611701360827509770 Steam Forums] for details.<br />
<br />
==Interloper==<br />
===Dependencies===<br />
* {{pkg|alsa-lib}}<br />
<br />
===Game does not launch===<br />
Game can sometimes segfault due to an incompatibility with the Steam Runtime's libasound.so.2. Delete the bad library:<br />
<br />
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libasound.so.2<br />
<br />
==Invisible Apartment==<br />
===Dependencies===<br />
* {{pkg|qt5-multimedia}}<br />
<br />
===Game does not run===<br />
Game does not run if you try to launch it via Steam, but you can run it directly if you run the following in terminal<br />
/home/$USER/.steam/steam/SteamApps/common/Invisible\ Apartment/ia1<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 by the {{AUR|ttf-ms-fonts}} package.<br />
<br />
Another alternative is to try to install the {{Pkg|ttf-freefont}} package. This worked using KSP 0.90.0 on x86_64 Arch Linux.<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 />
=== Black ingame textures ===<br />
<br />
Disable "Edge Highlighting (PPFX)" in graphics settings ingame.<br />
<br />
=== See also ===<br />
* [[Kerbal Space Program]]<br />
* http://forum.kerbalspaceprogram.com/showthread.php/24529-The-Linux-compatibility-thread!<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 />
====Stuttering Sound====<br />
KillingFloor comes with its own libopenal.so (called openal.so). To use system lib instead install {{pkg|openal}} or {{pkg|lib32-openal}} (if using 64bit system).<br />
Then go to {{ic|$HOME/Steam/SteamApps/common/KillingFloor/System}}. and rename openal.so to openal.so.bak<br />
Then create symlink to /usr/lib32/libopenal.so.1 or /usr/lib/libopenal.so.1 called openal.so<br />
<br />
==Lethal League==<br />
===Dependencies===<br />
* {{Pkg|lib32-glew1.10}}<br />
<br />
==Life is Strange==<br />
===Troubleshooting===<br />
====Game does not start====<br />
Error about missing librtmp.so.0 might appear, solution:<br />
# ln -s /usr/lib/librtmp.so /usr/lib/librtmp.so.0<br />
<br />
==Mark of the Ninja==<br />
===Troubleshooting===<br />
====Bad sound====<br />
Right click on {{ic|Mark of the Ninja}} on your game list, click on {{ic|Properties}}, click on {{ic|SET LAUNCH OPTIONS}}, then add this: <br />
LD_LIBRARY_PATH="/usr/lib:$LD_LIBRARY_PATH" %command%<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 />
==Middle-earth: Shadow of Mordor==<br />
===Floating heads===<br />
Right click on {{ic|Middle-earth: Shadow of Mordor}} on your game list, click on {{ic|Properties}}, click on {{ic|SET LAUNCH OPTIONS}}, then add this: <br />
__GL_ShaderPortabilityWarnings=0 %command%<br />
<br />
==Multiwinia==<br />
===Dependencies===<br />
* {{pkg|lib32-openal}}<br />
===Crash on startup===<br />
<br />
If Multiwinia crashes on startup on X64 systems, force launching the 32-bit executable by replacing {{ic|~/.local/share/Steam/steamapps/common/Multiwinia/run_steam.sh}} with the following script:<br />
<br />
{{bc|#!/bin/sh<br />
./multiwinia.bin.x86 <br />
}} <br />
<br />
See [https://steamcommunity.com/app/1530/discussions/0/864969481950542663/#c558746995160431396].<br />
<br />
<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 />
==Penumbra: Overture==<br />
===Dependencies===<br />
(Taken from {{AUR|penumbra-collection}}{{Broken package link|{{aur-mirror|penumbra-collection}}}} and {{AUR|penumbra-overture-ep1-demo}}{{Broken package link|{{aur-mirror|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 />
==The Polynomial==<br />
===Dependencies===<br />
* {{AUR|ilmbase102-libs}}{{Broken package link|{{aur-mirror|ilmbase102-libs}}}}<br />
* {{AUR|openexr170-libs}}{{Broken package link|{{aur-mirror|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 />
==Portal 2==<br />
===Troubleshooting===<br />
====Game does not start====<br />
Several OpenGL-related errors (such as {{ic|PROBLEM: You appear to have OpenGL 1.4.0, but we need at least 2.0.0!}} or {{ic|libGL error: driver pointer missing}}) are caused by Portal&nbsp;2 bundling an old libstdc++ file. This error is especially common with open source Radeon drivers ({{ic|radeonsi}}).<br />
<br />
<br />
To remedy this, make Portal&nbsp;2 use the system-wide file by setting the launch options to {{ic|1=LD_PRELOAD='/usr/$LIB/libstdc++.so.6' %command%}}.<br />
<br />
More details and background info available [https://wirejungle.wordpress.com/2015/01/09/how-to-fix-broken-steam-linux-client-with-radeon-graphics-driver-workaround/ here.]<br />
<br />
==Prison Architect==<br />
===Troubleshooting===<br />
====ALSA error when using PulseAudio====<br />
The error:<br />
{{ic|ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave}}<br />
was resolved by installing:<br />
* {{pkg|pulseaudio-alsa}} <br />
* {{pkg|lib32-alsa-plugins}}<br />
* {{pkg|lib32-libpulse}}<br />
per [[PulseAudio#ALSA]]<br />
<br />
==Project Zomboid==<br />
===Dependencies===<br />
* {{pkg|jre7-openjdk}}<br />
===No sound===<br />
Right click on {{ic|Project Zomboid}} on your game list, click on {{ic|Properties}}, click on {{ic|SET LAUNCH OPTIONS}}, then add this: <br />
LD_LIBRARY_PATH="/usr/lib:$LD_LIBRARY_PATH" %command%<br />
<br />
In the game, go to the options and set all audio to the proper volume.<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 />
==Rock Boshers DX: Directors Cut==<br />
===Dependencies===<br />
* {{Pkg|lib32-libcaca}}<br />
<br />
==Saints Row IV==<br />
===Game fails to launch after update to new Nvidia drivers===<br />
Set the launch options for Saints Row IV to:<br />
{{bc|1=LD_PRELOAD=$LD_PRELOAD:/usr/lib32/libGLX_nvidia.so %command%}}<br />
===Game causes GPU lockup with mesa drivers===<br />
Saints Rows IV can cause a GPU lockup when trying to play on certain AMD hardware using open source drivers: [https://bugs.freedesktop.org/show_bug.cgi?id=93475 Bug 93475].<br />
A workaround is to set the launch options to:<br />
{{bc|1=R600_DEBUG=nosb %command%}}<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 />
==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 />
==Spacechem==<br />
===Dependencies===<br />
* {{pkg|lib32-sqlite}}<br />
* {{pkg|lib32-sdl_image}}<br />
* {{Pkg|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 />
==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 />
==The Stanley Parable==<br />
===Troubleshooting===<br />
====Game won't start====<br />
as discussed in steam's store page, remove {{ic|libstdc++.so.6}} from the game folder. For example::<br />
rm ~/.local/share/Steam/steamapps/common/The\ Stanley\ Parable/bin/libstdc++.so.6<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 />
==Stephen's Sausage Roll==<br />
===Troubleshooting===<br />
====No sound====<br />
If {{pkg|libpulse}} is installed, Unity may try to use that library for sound and fail.<br />
To test if this is the problem, try removing {{pkg|libpulse}} or renaming the package files that are named {{ic|libpulse-simple*}}. To see which {{pkg|libpulse}} files are relevant, run:<br />
<br />
{{hc|$ pacman -Ql libpulse <nowiki>|</nowiki> awk '{print $2}' <nowiki>|</nowiki> grep /usr/lib/libpulse-simple|<br />
/usr/lib/libpulse-simple.so<br />
/usr/lib/libpulse-simple.so.0<br />
/usr/lib/libpulse-simple.so.0.1.0}}<br />
<br />
If renaming any of those files works for you, you can proceed with the following instructions (don't forget to revert any renaming you just did!). Browse to the game's directory:<br />
<br />
$ cd "$HOME/.local/share/Steam/steamapps/common/Stephen's Sausage Roll"<br />
<br />
And create a sub-directory that we can use to hold 0-byte look-alike library files:<br />
<br />
$ mkdir noload/<br />
<br />
Use {{ic|touch}} to create 0-byte versions of the above files that we want the dynamic linker to skip, e.g.:<br />
<br />
$ touch noload/{libpulse-simple.so,libpulse-simple.so.0,libpulse-simple.so.0.1.0}<br />
<br />
{{Note|I only had to create a 0-byte {{ic|libpulse-simple.so.0}} file for the following trick to work.}}<br />
<br />
After you have created these 0-byte files, you can now attempt to run the game binary directly, telling the dynamic linker to use our 0-byte files:<br />
<br />
$ LD_LIBRARY_PATH="noload/:$LD_LIBRARY_PATH" ./Sausage.x86_64<br />
<br />
Hopefully you now have sound!<br />
<br />
If everything works up to this point, you can amend the launch options in Steam to be:<br />
<br />
LD_LIBRARY_PATH="noload/:$LD_LIBRARY_PATH" %command%<br />
<br />
Again, this should work because Steam checks for a {{ic|noload/}} directory relative to the game's directory. The dynamic linker should respect the {{ic|$LD_LIBRARY_PATH}} variable and fail to load the necessary {{pkg|libpulse}} files. The game should then fallback to plain ALSA.<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 />
<br />
==== NVIDIA drivers ====<br />
<br />
{{Deletion|Whenever {{pkg|nvidia}} 361.42-1 is released from ''testing'', this section will become obsolete and can be removed.}}<br />
<br />
{{Note|This is fixed in {{pkg|nvidia}} 361.42-1}}<br />
<br />
Some modern [[NVIDIA]] drivers do not seem to go well with Team Fortress 2. If you have some startup error complaining that a GL function is not available, you can fix this by putting your driver in compatibility mode. To do this, you need to change the launch options to:<br />
__GLVND_DISALLOW_PATCHING=1 %command%<br />
<br />
==Terraria==<br />
See the KNOWN ISSUES & WORKAROUNDS section of the [http://forums.terraria.org/index.php?threads/terraria-1-3-0-8-can-mac-linux-come-out-play.30287/ release announcement].<br />
<br />
==This War of Mine==<br />
===Troubleshooting===<br />
====Game doesn't load====<br />
This happens because of a incompatibility of the newer version of {{ic|lib32-glibc}}. To Fix the problem you need to download the version 2.20-6 of the lib, you can download it [http://ftp.nara.wide.ad.jp/pub/Linux/archlinux/multilib-testing/os/x86_64/lib32-glibc-2.20-6-x86_64.pkg.tar.xz here], then extract the: <br />
libc.so.6<br />
libc-2.20.so<br />
libpthread.so.0<br />
libpthread-2.20.so<br />
libresolv-2.20.so<br />
libresolv.so.2 <br />
librt.so.1<br />
librt-2.20.so<br />
located in the archive and put on the main game folder: {{ic|~/.local/share/Steam/steamapps/common/This War of Mine/}}<br />
<br />
==Tomb Raider==<br />
===Troubleshooting===<br />
====Game immediately closes when running with steam-native====<br />
Tomb Raider has a very heavy amount of dependency on the Steam runtime, the easiest solution is to just run it using the runtime.<br />
You can do so by setting the following as the launch option:<br />
{{bc|/home/[your username]/.local/share/Steam/ubuntu12_32/steam-runtime/run.sh %command%}}<br />
====Steam Controller not working ingame while being correctly recognised* by Steam outside of the game====<br />
If your Steam Controller is correctly recognised and paired but it still does not work in game then you can do the following:<br /><br />
<br />
*In Steam, non Big Screen, go to Settings -> Account -> Beta participation -> Change... and in the dropdown select box select Steam Beta Update<br /><br />
*Restart Steam<br /><br />
*Go to Big Screen and start Tomb Raider<br /><br />
<br /><br />
&lowast;Correctly recognised means you can control desktop mouse and Steam in Big Picture mode and the controller is shown in Big Picture settings<br />
<br />
==Towns / Towns Demo==<br />
===Crash on launch===<br />
Ensure you have [[Java]] installed.<br />
<br />
==Transistor==<br />
===Crash on launch / FMOD binding crash / Audio issues===<br />
Try running steam with following command <br />
LD_PRELOAD='/usr/lib/libstdc++.so.6:/usr/lib/libgcc_s.so.1:/usr/lib/libxcb.so.1:/usr/lib/libasound.so.2' steam<br />
<br />
Alternatively, right click on Transistor, go to Properties => Set Launch Options... and enter<br />
LD_PRELOAD='/usr/lib/libstdc++.so.6:/usr/lib/libgcc_s.so.1:/usr/lib/libxcb.so.1:/usr/lib/libasound.so.2' %command%<br />
<br />
This will force Steam to do the fix whenever Transistor is started, but allows Steam to be launched normally.<br />
<br />
Otherwise, run the game via shell and set up proper audio device for FMOD, as discussed there [https://steamcommunity.com/app/237930/discussions/2/620695877176333955/].<br />
<br />
Also, check out this thread [https://steamcommunity.com/app/237930/discussions/2/492378265893557247/]<br />
<br />
==Transmissions: Element 120==<br />
===Troubleshooting===<br />
Make sure you have all libraries installed. Above the standard set required by Steam runtime, the game requires few additional ones. The typical error message that indicates that is<br />
AppFramework : Unable to load module vguimatsurface.so!<br />
<br />
To show which dependencies are satisfied, go to the folder in which you installed the game (`SteamLibrary/steamapps/common/Transmissions Element 120`) and execute:<br />
LD_LIBRARY_PATH=bin ldd bin/vguimatsurface.so<br />
<br />
look for entries that say `not found`<br />
<br />
===Dependencies===<br />
* {{AUR|lib32-libgcrypt15}}<br />
* {{pkg|lib32-libpng12}}<br />
<br />
==Trine 2==<br />
===Dependencies===<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxxf86vm}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|xorg-xwininfo}}<br />
* {{pkg|lib32-libdrm}}<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 />
==Unity3D==<br />
<br />
Games based on the Unity3D engine, like ''War For The Overworld'' or ''Pixel Piracy'' may need the package {{pkg|lsb-release}} to understand that they run on Linux and work properly.<br />
<br />
===Locale Settings===<br />
<br />
Games made in C# often have a problem with some locales (e.g. Russian, German) because developers don't specify locale-agnostic number formatting. This can result in some game screens loading only partially, problems with online features or other bugs.<br />
<br />
To work around this, set the game's launch options to {{ic|1=LC_ALL=C %command%}}<br />
<br />
Some of the affected games: ''FORCED'', ''Gone Home'', ''Ichi'', ''Nimble Quest'', ''Syder Arcade''.<br />
<br />
===Unity 5 sound problems===<br />
<br />
The sound system in Unity 5 changed and to be able to play games created with it you must most likely install and run [[PulseAudio]].<br />
Another solution is to disable the Steam runtime: in the launch options for the game, write this: {{ic|1=LD_LIBRARY_PATH="" %command%}}<br />
<br />
===Game launching on wrong monitor in fullscreen mode===<br />
Unity games that do not support monitor selection will most likely launch the game on a wrong monitor.<br />
<br />
The problem is that Unity games write the default param {{ic|1=<pref name="UnitySelectMonitor" type="int">-1</pref>}} to the game config file.<br />
<br />
This will lead to the game launching on a non-primary monitor.<br />
<br />
When changing to value into {{ic|1=<pref name="UnitySelectMonitor" type="int">'''0'''</pref>}} for the according game, the game will start on the correct (primary) monitor.<br />
<br />
A Unity game config file usually resides in {{ic|~/.config/unity3d/[CompanyName]/[ProductName]/prefs}}.<br />
<br />
Some of the affected games: ''Cities: Skylines'', ''Tablestop Simulator'', ''Assault Android Cactus'', ''Wasteland 2''.<br />
<br />
Be aware that some games do not support setting that parameter, it will simply be ignored. This is the case for ''Pillars of Eternity'', ''Kentucky Route Zero'', ''Sunless Sea''.<br />
<br />
==Unrest==<br />
===Dependencies===<br />
* {{pkg|fluidsynth}}<br />
<br />
== War Thunder ==<br />
<br />
=== Troubleshooting ===<br />
<br />
If having a green or blank screen at game start, set the {{ic|1=MESA_GL_VERSION_OVERRIDE=4.1COMPAT}} [[environment variable]]. [https://forum.warthunder.com/index.php?/topic/267809-linux-potential-workaround-for-mesa-drivers-black-screen/] [http://forum.warthunder.com/index.php?search_term=0030709&app=core&module=search&do=search&fromMainBar=1&search_app=forums%3Aforum%3A920&sort_field=&sort_order=&search_in=posts]<br />
<br />
== Witcher 2: Assassin of Kings ==<br />
<br />
=== Dependencies ===<br />
<br />
* {{Pkg|lib32-freetype2}}<br />
* {{Pkg|lib32-libcurl-compat}}<br />
* {{Pkg|lib32-gnutls}}<br />
<br />
* {{Pkg|lib32-sdl2}}<br />
* {{Pkg|lib32-sdl2_image}}<br />
* {{Pkg|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 />
==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 />
===Dependencies===<br />
* {{pkg|sdl2_image}} (Required to enable keyboard functionality in-game)<br />
* {{pkg|librtmp0}} (Required to run the game)<br />
<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}}<br />
<br />
If you are running a hybrid graphic system, try<br />
<br />
__GL_THREADED_OPTIMIZATIONS=0 primusrun %command%<br />
<br />
===Graphical glitches on Intel HD===<br />
XCOM may not recognize sdl2 shared libraries shipped with Steam runtime.<br />
Check if binary finds all required files and install missing packages if necessary ({{Pkg|sdl2}} and {{Pkg|sdl2_image}}).<br />
<br />
{{bc|ldd ~/.local/share/Steam/steamapps/common/XCom-Enemy-Unknown/binaries/linux/game.x86_64 | grep "not found"}}</div>Lestohttps://wiki.archlinux.org/index.php?title=Touchpad_Synaptics&diff=373595Touchpad Synaptics2015-05-13T23:06:09Z<p>Lesto: added instruction to fix button area seen as mouse movement, as http://askubuntu.com/questions/250336/disable-mouse-movement-in-tap-zones-on-synaptics-trackpad</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 />
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|/usr/share/X11/xorg.conf.d/50-synaptics.conf}}. Users can copy this file to {{ic|/etc/X11/xorg.conf.d/}} and edit it to configure the various driver options available. For a complete list of all available options, users should refer to the synaptics(4) manual page.<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:<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 />
As usual settings will vary between machines. It is recommended that you discover your own options using [[#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 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 />
=== 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|[[#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|http://live.gnome.org/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|package not found}} and {{AUR|kcm_touchpad}}.|https://projects.kde.org/projects/kde/workspace/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 {{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 -Eo 'ouchpad\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 />
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 />
==== 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 -?<br />
<br />
For example, to disable tapping and scrolling for 2 seconds after each keypress (ignoring modifier keys like Ctrl), use<br />
<br />
$ syndaemon -t -k -i 2<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 />
GDM stores Xauthority files in {{ic|/var/run/gdm}} in a randomly-named directory. 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'' -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 />
===== 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 />
==== KDE ====<br />
<br />
If using KDE, the package {{pkg|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 />
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 />
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 />
<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 />
{{hc|/etc/X11/xorg.conf.d/50-synaptics.conf|<nowiki><br />
...<br />
Option "AreaBottomEdge" "4000"<br />
...<br />
</nowiki>}}<br />
please not the area will notact as touchpad if the touch BEGIN in that area, but it can still be used if the touche has originated outside.<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 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 />
== 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 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 />
* [[#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 />
==== 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, 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 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 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}}.<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 />
===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 />
* Apply the kernel patch listed in this thread (comment 135) and rebuild your kernel: https://bugzilla.kernel.org/show_bug.cgi?id=81331#c135<br />
** This patch is unlikely to make it upstream, as it is a somewhat 'hacky' solution to this problem. <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 />
=== Clickpad/Forcepad: double-click, click-and-drag ===<br />
<br />
On newer laptops such as the HP Envy 15 x360 a {{ic|ButtonRelease}} event is not sent when releasing the physical button, but only when moving all fingers off the Clickpad. [http://permalink.gmane.org/gmane.linux.kernel.input/38497] This is due to a kernel bug in {{ic|drivers/media/input/synaptics.c}} [https://lkml.org/lkml/2014/9/30/719]; see [http://www.linuxquestions.org/questions/showthread.php?p=5276920&posted=1#post5276920] for a temporary workaround.<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>Lestohttps://wiki.archlinux.org/index.php?title=Talk:KDE_Wallet&diff=365597Talk:KDE Wallet2015-03-15T23:56:09Z<p>Lesto: </p>
<hr />
<div>== Unlock KDE Wallet automatically on login ==<br />
<br />
Apparently, the use of pam_kwallet-git does not work if the wallet is encrypted with a GnuPG key. --[[User:Fahrgast|Fahrgast]] ([[User talk:Fahrgast|talk]]) 15:10, 28 January 2015 (UTC)<br />
<br />
== Plasma ==<br />
<br />
kwalletmanager in repo is for kde4, and use different path from kde5 ( ./.local/share/kwalletd/kdewallet.kwl ) and also seems to be incompatible (copied/linked kwl file giver password error).<br />
kwalletmanager-git works fine, but is still lacking gpg.</div>Lestohttps://wiki.archlinux.org/index.php?title=Talk:SSH_keys&diff=365596Talk:SSH keys2015-03-15T23:50:05Z<p>Lesto: /* ssh-agent */</p>
<hr />
<div>== sshd_config ==<br />
<br />
Sometimes the 'ssh-add' is not enough to log in without a password. It is possible that ssh is configured in such way that only a limited group of users is allowed to the machine.<br />
In this case - you need root-access to the server! - you have to change the configuration-file. Mostly you can find it as {{ic|/etc/ssh/sshd_config}}.<br />
If the last line(s) of this file read(s): {{ic|AllowUsers <username>}}, you will have to add a similar line with your own username. Don't forget to restart the ssh deamon: {{ic|/etc/init.d/sshd restart}}.<br><br />
-- [[User:Kobussie|Kobussie]], 10 February 2009<br />
<br />
== Using pam_ssh module ==<br />
<br />
I just want to add that one could also use the pam_ss module, available here<br />
http://pam-ssh.sourceforge.net/<br />
or in the AUR to decrypt the ssh key on login and automatically start ssh-agent and add the keys.<br />
This way one would have a truely password less ssh session and in the same way not compromise security by using a passphrase less key.<br><br />
-- [[User:Pladen|Pladen]], 27 March 2009<br />
<br />
:I have opened a new section on using pam_ssh to decrypt a user's ssh keys upon login. My experience with PAM in general is limited, so the content currently consists of a description of pam_ssh, some basic configuration instructions, and some of the limitations of pam_ssh which I have personally encountered.<br />
:-- [[User:Ntwk|Ntwk]] 16:37, 18 December 2011 (EST)<br />
<br />
== ssh-agent ==<br />
<br />
The current wiki entries tells to {{ic|$ echo 'eval `ssh-agent`' >> ~/.bashrc}} which will everytime spawn a new ssh-agent.<br />
I think a more elegant way is only to add the export commands of ssh-agent to the {{ic|~/.bashrc}}, so one ssh-agent can be used from every shell. This could be put in a small wrapper script:<br />
#!/bin/sh<br />
# check if ssh-agent is running<br />
if [ -n "`ps -e|grep ssh-agent`" ];then<br />
echo "ssh-agent is already running" >&2<br />
exit 1<br />
fi<br />
# get new sock and pid<br />
agent=`ssh-agent |head -2`<br />
# delete old sock, pid and comment<br />
sed -i -e "/SSH_\(AUTH_SOCK\|AGENT_PID\)/d" ~/.bashrc<br />
# insert new sock and pid for new shells<br />
echo -e "# auto generated SSH_AUTH_SOCK and SSH_AGENT_PID" >> ~/.bashrc<br />
echo $agent >> ~/.bashrc<br />
# for evaluation in the current shell<br />
echo $agent<br />
<br />
$ eval `./ssh_agent_wrapper.sh` " <br />
this would make ssh-agent available on the current and all new shells.<br />
<br />
Be sure you have added the key to your {{ic|/etc/ssh/ssh_config}}:<br />
IdentityFile path/to/key<br />
<br />
-- [[User:Cameris|Cameris]], 14 July 2009<br />
<br />
<br />
there should be a note about kwallet5 not supporting PGP, for now<br />
<br />
--- [[User:Lesto|Lesto]] ([[User talk:Lesto|talk]]) 23:50, 15 March 2015 (UTC)<br />
<br />
== Alternative to manual key installation ==<br />
<br />
We might want to mention that there's a script called 'ssh-copy-id' which comes with OpenSSH that install your public key in a remote machine's authorized_keys. There's a few caveat with it (it changes permissions of the user home directory, which should be a no-op in most situations; see the man page of ssh-copy-id -- and it also tells the user to make sure the script hasn't added extra keys, which might be a bit confusing for some).<br><br />
-- [[User:Hexanol|Hexanol]], 14 June 2010<br />
<br />
: The article currently gives a description of how to use {{ic|ssh-copy-id}} as well providing instructions on how to manually copy your pivate key to the remote server. I can't find any mention of {{ic|ssh-copy-id}} altering file or directory permissions on the remote server. On the contrary, the {{ic|ssh-copy-id}} man page dated 14 November 1999 currently included in the OpenSSH man page states that it "does not modify the permissions of any pre-existing files of directories."<br />
:-- [[User:Ntwk|Ntwk]] 11:22, 21 December 2011 (EST)<br />
<br />
== cache time ==<br />
<br />
In the description of gpg-agent.conf, it says that the example would cache the keys for 3 hours. If that's correct, gpg-agent seems to be using a rather odd unit of time. I tried to check in the man page for gpg-agent but couldn't find the options documented. Is the figure really correct? Or should it be 18000?<br><br />
-- [[User:Margali|cfr]] ([[User talk:Margali|talk]]) 21:15, 13 September 2012 (UTC)<br />
<br />
==PuTTY==<br />
<br />
Those who connect from Windows often use PuTTY to hook up over ssh; as of April 2013, PuTTY does not support ECDSA. I forget that periodically and waste time creating such a key, assuming I'm not alone there, I added it under the encryption method.<br><br />
-- [[User:Nitmd|Nitmd]] April 7, 2013<br />
<br />
:That's a good note to add. I revised the wording of it and made it stand out more by using a template. Also, please remember to sign your posts by typing four tildes (<nowiki>~~~~</nowiki>).<br />
:-- [[User:Jstjohn|Jstjohn]] ([[User talk:Jstjohn|talk]]) 22:09, 7 April 2013 (UTC)<br />
<br />
==GnuPG Agent==<br />
<br />
This section (apparently a candidate for merging with GnuPG#gpg-agent) is out of date since GnuPG 2.1 and no longer works as instructed due to the deprecation of GPG_AGENT_INFO. See https://wiki.archlinux.org/index.php/GnuPG#GPG_AGENT_INFO<br />
{{unsigned|24 February 2015 08:55|Logankoester}}</div>Lestohttps://wiki.archlinux.org/index.php?title=Talk:SSH_keys&diff=365595Talk:SSH keys2015-03-15T23:49:20Z<p>Lesto: /* ssh-agent */</p>
<hr />
<div>== sshd_config ==<br />
<br />
Sometimes the 'ssh-add' is not enough to log in without a password. It is possible that ssh is configured in such way that only a limited group of users is allowed to the machine.<br />
In this case - you need root-access to the server! - you have to change the configuration-file. Mostly you can find it as {{ic|/etc/ssh/sshd_config}}.<br />
If the last line(s) of this file read(s): {{ic|AllowUsers <username>}}, you will have to add a similar line with your own username. Don't forget to restart the ssh deamon: {{ic|/etc/init.d/sshd restart}}.<br><br />
-- [[User:Kobussie|Kobussie]], 10 February 2009<br />
<br />
== Using pam_ssh module ==<br />
<br />
I just want to add that one could also use the pam_ss module, available here<br />
http://pam-ssh.sourceforge.net/<br />
or in the AUR to decrypt the ssh key on login and automatically start ssh-agent and add the keys.<br />
This way one would have a truely password less ssh session and in the same way not compromise security by using a passphrase less key.<br><br />
-- [[User:Pladen|Pladen]], 27 March 2009<br />
<br />
:I have opened a new section on using pam_ssh to decrypt a user's ssh keys upon login. My experience with PAM in general is limited, so the content currently consists of a description of pam_ssh, some basic configuration instructions, and some of the limitations of pam_ssh which I have personally encountered.<br />
:-- [[User:Ntwk|Ntwk]] 16:37, 18 December 2011 (EST)<br />
<br />
== ssh-agent ==<br />
<br />
The current wiki entries tells to {{ic|$ echo 'eval `ssh-agent`' >> ~/.bashrc}} which will everytime spawn a new ssh-agent.<br />
I think a more elegant way is only to add the export commands of ssh-agent to the {{ic|~/.bashrc}}, so one ssh-agent can be used from every shell. This could be put in a small wrapper script:<br />
#!/bin/sh<br />
# check if ssh-agent is running<br />
if [ -n "`ps -e|grep ssh-agent`" ];then<br />
echo "ssh-agent is already running" >&2<br />
exit 1<br />
fi<br />
# get new sock and pid<br />
agent=`ssh-agent |head -2`<br />
# delete old sock, pid and comment<br />
sed -i -e "/SSH_\(AUTH_SOCK\|AGENT_PID\)/d" ~/.bashrc<br />
# insert new sock and pid for new shells<br />
echo -e "# auto generated SSH_AUTH_SOCK and SSH_AGENT_PID" >> ~/.bashrc<br />
echo $agent >> ~/.bashrc<br />
# for evaluation in the current shell<br />
echo $agent<br />
<br />
$ eval `./ssh_agent_wrapper.sh` " <br />
this would make ssh-agent available on the current and all new shells.<br />
<br />
Be sure you have added the key to your {{ic|/etc/ssh/ssh_config}}:<br />
IdentityFile path/to/key<br />
<br />
-- [[User:Cameris|Cameris]], 14 July 2009<br />
<br />
<br />
there should be a note about kwallet5 not supporting PGP, for now<br />
<br />
---<br />
<br />
== Alternative to manual key installation ==<br />
<br />
We might want to mention that there's a script called 'ssh-copy-id' which comes with OpenSSH that install your public key in a remote machine's authorized_keys. There's a few caveat with it (it changes permissions of the user home directory, which should be a no-op in most situations; see the man page of ssh-copy-id -- and it also tells the user to make sure the script hasn't added extra keys, which might be a bit confusing for some).<br><br />
-- [[User:Hexanol|Hexanol]], 14 June 2010<br />
<br />
: The article currently gives a description of how to use {{ic|ssh-copy-id}} as well providing instructions on how to manually copy your pivate key to the remote server. I can't find any mention of {{ic|ssh-copy-id}} altering file or directory permissions on the remote server. On the contrary, the {{ic|ssh-copy-id}} man page dated 14 November 1999 currently included in the OpenSSH man page states that it "does not modify the permissions of any pre-existing files of directories."<br />
:-- [[User:Ntwk|Ntwk]] 11:22, 21 December 2011 (EST)<br />
<br />
== cache time ==<br />
<br />
In the description of gpg-agent.conf, it says that the example would cache the keys for 3 hours. If that's correct, gpg-agent seems to be using a rather odd unit of time. I tried to check in the man page for gpg-agent but couldn't find the options documented. Is the figure really correct? Or should it be 18000?<br><br />
-- [[User:Margali|cfr]] ([[User talk:Margali|talk]]) 21:15, 13 September 2012 (UTC)<br />
<br />
==PuTTY==<br />
<br />
Those who connect from Windows often use PuTTY to hook up over ssh; as of April 2013, PuTTY does not support ECDSA. I forget that periodically and waste time creating such a key, assuming I'm not alone there, I added it under the encryption method.<br><br />
-- [[User:Nitmd|Nitmd]] April 7, 2013<br />
<br />
:That's a good note to add. I revised the wording of it and made it stand out more by using a template. Also, please remember to sign your posts by typing four tildes (<nowiki>~~~~</nowiki>).<br />
:-- [[User:Jstjohn|Jstjohn]] ([[User talk:Jstjohn|talk]]) 22:09, 7 April 2013 (UTC)<br />
<br />
==GnuPG Agent==<br />
<br />
This section (apparently a candidate for merging with GnuPG#gpg-agent) is out of date since GnuPG 2.1 and no longer works as instructed due to the deprecation of GPG_AGENT_INFO. See https://wiki.archlinux.org/index.php/GnuPG#GPG_AGENT_INFO<br />
{{unsigned|24 February 2015 08:55|Logankoester}}</div>Lestohttps://wiki.archlinux.org/index.php?title=Steam&diff=324104Steam2014-07-08T22:37:30Z<p>Lesto: </p>
<hr />
<div>[[Category:Gaming]]<br />
[[ja:Steam]]<br />
[[zh-CN:Steam]]<br />
{{Related articles start}}<br />
{{Related|Steam/Wine}}<br />
{{Related|Steam/Game-specific troubleshooting}}<br />
{{Related articles end}}<br />
From [[Wikipedia:Steam (software)|Wikipedia]]:<br />
: ''Steam is a digital distribution, digital rights management, multiplayer and communications platform developed by Valve Corporation. It is used to distribute games and related media online, from small independent developers to larger software houses.''<br />
<br />
[http://store.steampowered.com/about/ Steam] 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 />
==Installation==<br />
<br />
{{Note|<br />
* Arch Linux is '''not''' [https://support.steampowered.com/kb_article.php?ref&#61;1504-QHXN-8366 officially supported].<br />
* Because the Steam client is a 32-bit application, you will need to enable the [[multilib]] repository if you have a 64-bit system. It may also make sense to install {{Grp|multilib-devel}} to provide some important multilib libraries.<br />
}}<br />
<br />
Steam can be installed with the package {{Pkg|steam}}, available in the [[official repositories]]. If you have a 64-bit system, enable the [[multilib]] repository first.<br />
<br />
Steam is not supported on this distribution. As such some fixes are needed on the users part to get things functioning properly:<br />
<br />
*Steam makes heavy usage of the Arial font. A decent Arial font to use is {{Pkg|ttf-liberation}} or [[#Text is corrupt or missing|the fonts provided by Steam]]. Asian languages require {{Pkg|wqy-zenhei}} to display properly.<br />
<br />
*If you have a 64-bit system, you will need to install [[Xorg#Driver installation|the 32-bit version of your graphics driver]] (the package in the ''Multilib Package'' column) to run 32-bit games.<br />
<br />
*If you have a 64-bit system, you will need to install {{pkg|lib32-alsa-plugins}} to enable sound in 32-bit games.<br />
<br />
*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 in [[Steam/Game-specific troubleshooting]] are installed. <br />
<br />
== Troubleshooting ==<br />
<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 />
=== The close button only minimizes the window ===<br />
<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/1025 issue 1025]<br />
<br />
To close the Steam window (and remove it from the taskbar) when you press '''x''', but keep Steam running in the tray, 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 />
If you start steam with the .desktop file, you need to replace the {{ic|Exec}} with following line:<br />
Exec=sh -c 'STEAM_FRAME_FORCE_CLOSE=1 steam' %U<br />
<br />
=== Flash not working on 64-bit systems ===<br />
<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 />
<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 [[fonts#Manual installation|install]] them (copying to {{ic|/usr/share/fonts/}} or {{ic|~/.fonts/}} works at least).<br />
<br />
=== SetLocale('en_US.UTF-8') fails at game startup ===<br />
<br />
Uncomment {{ic|en_US.UTF-8 UTF-8}} in {{ic|/etc/locale.gen}} and then run {{ic|locale-gen}} as root.<br />
<br />
=== The game crashes immediately after start ===<br />
<br />
If your game crashes immediately, try disabling: ''"Enable the Steam Overlay while in-game"'' in game ''Properties''.<br />
<br />
=== OpenGL not using direct rendering ===<br />
<br />
: Steam Support [https://support.steampowered.com/kb_article.php?ref=9938-EYZB-7457 article]<br />
<br />
You have probably not installed your 32-bit graphics driver correctly. See [[Xorg#Driver installation]] for which packages to install.<br />
<br />
You can check/test if it is installed correctly by installing {{Pkg|lib32-mesa-demos}} and running the following command:<br />
$ glxinfo32 | grep OpenGL.<br />
<br />
=== libGL error when running certain games ===<br />
<br />
If you receive an error like the following {{ic|Failed to load libGL: undefined symbol: xcb_send_fd}}, it could be due to an outdated steam runtime library. Deleting {{ic|~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libxcb.so.1}} will force Steam to load the library version installed by pacman.<br />
<br />
=== OpenGL GLX context is not using direct rendering, which may cause performance problems, or steam crash Xorg ===<br />
<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=1416098#p1416098 Forum thread].<br />
<br />
{{bc|<br />
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6<br />
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libgcc_s.so.1<br />
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<br />
}}<br />
<br />
=== Problems with 64-bit games like XCOM ===<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}}<br />
<br />
=== No audio in certain games ===<br />
<br />
If there is no audio in certain games, and the suggestions provided in [[Steam/Game-specific troubleshooting]] do not fix the problem, [[#Using native runtime]] may provide a successful workaround.<br />
<br />
=== You are missing the following 32-bit libraries, and Steam may not run: libGL.so.1 ===<br />
<br />
You may encounter this error when you launch Steam at first time. Make sure you have installed lib32-version of all your video driver. For example, if you have installed {{Pkg|catalyst-utils-pxp}}, {{Pkg|xf86-video-dri}}, {{Pkg|intel-dri}}, {{Pkg|mesa-libgl}} for AMD and Intel double card, then you should install {{Pkg|lib32-catalyst-utils-pxp}}, {{Pkg|lib32-intel-dri}}, {{Pkg|lib32-mesa-libgl}}.<br />
<br />
=== Games do not launch on older intel hardware ===<br />
<br />
On older Intel hardware, if the game immediately crashes when run, it may be because your hardware doesn't directly support the latest OpenGL. It appears as a gameoverlayrenderer.so error in /tmp/dumps/mobile_stdout.txt, but looking in /tmp/gameoverlayrenderer.log it shows a GLXBadFBConfig error. <br />
<br />
This can be fixed, however, by forcing the game to use a later version of OpenGL than it wants. Right click on the game, select Properties. Then, click "Set Launch Options" in the "General" tab and paste the following:<br />
<br />
MESA_GL_VERSION_OVERRIDE=3.1 MESA_GLSL_VERSION_OVERRIDE=140 %command%<br />
<br />
This will force the game to use the latest version of OpenGL.<br />
<br />
=== X crashes when Steam starts (Radeon open source driver) ===<br />
<br />
There is [https://bugs.freedesktop.org/show_bug.cgi?id=79325 a bug] in glamor-egl 0.6.0 (used by the open source Radeon driver) which causes X to crash when trying to start Steam. Installing the unofficial [https://aur.archlinux.org/packages/glamor-egl-git/ glamor-egl-git] from AUR is a workaround until a new glamour version is released.<br />
<br />
=== Some games fail to start ===<br />
<br />
Occationally some games fail to load with output similar to the following:<br />
{{bc|ERROR: ld.so: object '~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.}}<br />
In these cases the included libstdc++.so is conflicting with something [https://bbs.archlinux.org/viewtopic.php?id=181171 explained here]. The solution seems to be setting the environmental variable STEAM_RUNTIME to 0, and running the following command: {{bc|rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6}}<br />
<br />
== Launching games with custom commands, such as Bumblebee/Primus ==<br />
<br />
Steam has fortunately added support for launching games using your own custom command. To do so, navigate to the Library page, right click on the selected game, click Properties, and Set Launch Options. Steam replaces the tag {{ic|%command%}} with the command it actually wishes to run. For example, to launch Team Fortress 2 with primusrun and at resolution 1920x1080, you would enter:<br />
<br />
primusrun %command% -w 1920 -h 1080<br />
<br />
If you are running the [[Linux-ck]] kernel, you may have some success in reducing overall latencies and improving performance by launching the game in SCHED_ISO (low latency, avoid choking CPU) via {{Pkg|schedtool}}<br />
<br />
# schedtool -I -e %command% ''other arguments''<br />
<br />
=== Killing standalone compositors when launching games ===<br />
<br />
Further to this, utilising the {{ic|%command%}} switch, you can kill standalone compositors (such as Xcompmgr or [[Compton]]) - which can cause lag and tearing in some games on some systems - and relaunch them after the game ends by adding the following to your game's launch options.<br />
<br />
killall compton && %command%; nohup compton &<br />
<br />
Replace {{ic|compton}} in the above command with whatever your compositor is. You can also add -options to {{ic|%command%}} or {{ic|compton}}, of course.<br />
<br />
Steam will latch on to any processes launched after {{ic|%command%}} and your Steam status will show as in game. So in this example, we run the compositor through {{ic|nohup}} so it is not attached to Steam (it will keep running if you close Steam) and follow it with an ampersand so that the line of commands ends, clearing your Steam status.<br />
<br />
== Using native runtime ==<br />
<br />
Steam, by default, ships with a copy of every library it uses, packaged within itself, so that games can launch without issue. This can be a resource hog, and the slightly out-of-date libraries they package may be missing important features (Notably, the OpenAL version they ship lacks HRTF and surround71 support). To use your own system libraries, you can run Steam with:<br />
<br />
$ STEAM_RUNTIME=0 steam<br />
<br />
However, if you're missing any libraries Steam makes use of, this will fail to launch properly. An easy way to find the missing libraries is to run the following commands:<br />
<br />
$ cd ~/.local/share/Steam/ubuntu12_32<br />
$ LD_LIBRARY_PATH=".:${LD_LIBRARY_PATH}" ldd $(file *|sed '/ELF/!d;s/:.*//g')|grep 'not found'|sort|uniq<br />
<br />
{{Note|The libraries will have to be 32-bit, which means you may have to download some from the AUR if on x86_64, such as NetworkManager.}}<br />
<br />
Once you've done this, run steam again with {{ic|1=STEAM_RUNTIME=0 steam}} and verify it's not loading anything outside of the handful of steam support libraries:<br />
<br />
$ cat /proc/$(pidof steam)/maps|sed '/\.local/!d;s/.* //g'|sort|uniq<br />
<br />
== Changing the position of the notification popups ==<br />
<br />
If you either have a desktop environment with a taskbar somewhere else than on the bottom of your screen, or are playing games where you have something important in your lower right corner (like a minimap) you may want to change where the notifications will show when a friend logs in/plays a game.<br />
<br />
The valid locations are: "BottomRight", "BottomLeft", "TopRight", "TopLeft"<br />
<br />
=== Game Overlay Notifications ===<br />
<br />
For the game overlay you will want to go to '''~/.steam/steam/resource/styles/gameoverlay.style''' and find the line (10) that specifies the notification's location.<br />
<br />
Notifications.PanelPosition "BottomRight" // osx has toast in the upper right, but in-overlay should not.<br />
<br />
You can change it to whatever you like, for example top-right:<br />
<br />
Notifications.PanelPosition "TopRight" // osx has toast in the upper right, but in-overlay should not.<br />
<br />
=== Steam Desktop Notifications ===<br />
<br />
For steam itself (outside of the overlay/on your desktop) you will want to edit '''~/.steam/steam/resource/styles/steam.style'''<br />
<br />
Notifications.PanelPosition "BottomRight" // Can be "BottomRight", "BottomLeft", "TopRight", "TopLeft"<br />
<br />
And to set top right for example you would change it to:<br />
<br />
Notifications.PanelPosition "TopRight" // Can be "BottomRight", "BottomLeft", "TopRight", "TopLeft"<br />
<br />
=== Finalize (Read-Only) ===<br />
<br />
The final step is to make the modified files read-only or steam will re-write them everytime it updates (which would be every time you launch it), this can be done for both files at once with:<br />
<br />
chmod 0444 ~/.steam/steam/resource/styles/*.style<br />
<br />
And if you'd like, for the folder too: (Note: Making the folder read only makes it impossible for Steam to re-create the files if it cannot modify them, which is what it currently does on Windows if it detects the files are read-only in there)<br />
<br />
chmod 0544 ~/.steam/steam/resource/styles<br />
<br />
== Skins for Steam ==<br />
<br />
{{Note|Using skins that are not up-to-date with the version of the Steam client may cause visual errors.}}<br />
<br />
The Steam interface can be fully customized by copying its various interface files in its skins directory and modifying them.<br />
<br />
An extensive list of skins can be found on [http://forums.steampowered.com/forums/showthread.php?t=1161035 Steam's forums].<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.<br />
<br />
== See also ==<br />
* https://wiki.gentoo.org/wiki/Steam</div>Lestohttps://wiki.archlinux.org/index.php?title=Steam&diff=324103Steam2014-07-08T22:36:34Z<p>Lesto: </p>
<hr />
<div>[[Category:Gaming]]<br />
[[ja:Steam]]<br />
[[zh-CN:Steam]]<br />
{{Related articles start}}<br />
{{Related|Steam/Wine}}<br />
{{Related|Steam/Game-specific troubleshooting}}<br />
{{Related articles end}}<br />
From [[Wikipedia:Steam (software)|Wikipedia]]:<br />
: ''Steam is a digital distribution, digital rights management, multiplayer and communications platform developed by Valve Corporation. It is used to distribute games and related media online, from small independent developers to larger software houses.''<br />
<br />
[http://store.steampowered.com/about/ Steam] 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 />
==Installation==<br />
<br />
{{Note|<br />
* Arch Linux is '''not''' [https://support.steampowered.com/kb_article.php?ref&#61;1504-QHXN-8366 officially supported].<br />
* Because the Steam client is a 32-bit application, you will need to enable the [[multilib]] repository if you have a 64-bit system. It may also make sense to install {{Grp|multilib-devel}} to provide some important multilib libraries.<br />
}}<br />
<br />
Steam can be installed with the package {{Pkg|steam}}, available in the [[official repositories]]. If you have a 64-bit system, enable the [[multilib]] repository first.<br />
<br />
Steam is not supported on this distribution. As such some fixes are needed on the users part to get things functioning properly:<br />
<br />
*Steam makes heavy usage of the Arial font. A decent Arial font to use is {{Pkg|ttf-liberation}} or [[#Text is corrupt or missing|the fonts provided by Steam]]. Asian languages require {{Pkg|wqy-zenhei}} to display properly.<br />
<br />
*If you have a 64-bit system, you will need to install [[Xorg#Driver installation|the 32-bit version of your graphics driver]] (the package in the ''Multilib Package'' column) to run 32-bit games.<br />
<br />
*If you have a 64-bit system, you will need to install {{pkg|lib32-alsa-plugins}} to enable sound in 32-bit games.<br />
<br />
*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 in [[Steam/Game-specific troubleshooting]] are installed. <br />
<br />
== Troubleshooting ==<br />
<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 />
=== The close button only minimizes the window ===<br />
<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/1025 issue 1025]<br />
<br />
To close the Steam window (and remove it from the taskbar) when you press '''x''', but keep Steam running in the tray, 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 />
If you start steam with the .desktop file, you need to replace the {{ic|Exec}} with following line:<br />
Exec=sh -c 'STEAM_FRAME_FORCE_CLOSE=1 steam' %U<br />
<br />
=== Flash not working on 64-bit systems ===<br />
<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 />
<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 [[fonts#Manual installation|install]] them (copying to {{ic|/usr/share/fonts/}} or {{ic|~/.fonts/}} works at least).<br />
<br />
=== SetLocale('en_US.UTF-8') fails at game startup ===<br />
<br />
Uncomment {{ic|en_US.UTF-8 UTF-8}} in {{ic|/etc/locale.gen}} and then run {{ic|locale-gen}} as root.<br />
<br />
=== The game crashes immediately after start ===<br />
<br />
If your game crashes immediately, try disabling: ''"Enable the Steam Overlay while in-game"'' in game ''Properties''.<br />
<br />
=== OpenGL not using direct rendering ===<br />
<br />
: Steam Support [https://support.steampowered.com/kb_article.php?ref=9938-EYZB-7457 article]<br />
<br />
You have probably not installed your 32-bit graphics driver correctly. See [[Xorg#Driver installation]] for which packages to install.<br />
<br />
You can check/test if it is installed correctly by installing {{Pkg|lib32-mesa-demos}} and running the following command:<br />
$ glxinfo32 | grep OpenGL.<br />
<br />
=== libGL error when running certain games ===<br />
<br />
If you receive an error like the following {{ic|Failed to load libGL: undefined symbol: xcb_send_fd}}, it could be due to an outdated steam runtime library. Deleting {{ic|~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libxcb.so.1}} will force Steam to load the library version installed by pacman.<br />
<br />
=== OpenGL GLX context is not using direct rendering, which may cause performance problems. ===<br />
<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=1416098#p1416098 Forum thread].<br />
<br />
{{bc|<br />
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6<br />
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libgcc_s.so.1<br />
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<br />
}}<br />
<br />
=== Problems with 64-bit games like XCOM ===<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}}<br />
<br />
=== No audio in certain games ===<br />
<br />
If there is no audio in certain games, and the suggestions provided in [[Steam/Game-specific troubleshooting]] do not fix the problem, [[#Using native runtime]] may provide a successful workaround.<br />
<br />
=== You are missing the following 32-bit libraries, and Steam may not run: libGL.so.1 ===<br />
<br />
You may encounter this error when you launch Steam at first time. Make sure you have installed lib32-version of all your video driver. For example, if you have installed {{Pkg|catalyst-utils-pxp}}, {{Pkg|xf86-video-dri}}, {{Pkg|intel-dri}}, {{Pkg|mesa-libgl}} for AMD and Intel double card, then you should install {{Pkg|lib32-catalyst-utils-pxp}}, {{Pkg|lib32-intel-dri}}, {{Pkg|lib32-mesa-libgl}}.<br />
<br />
=== Games do not launch on older intel hardware ===<br />
<br />
On older Intel hardware, if the game immediately crashes when run, it may be because your hardware doesn't directly support the latest OpenGL. It appears as a gameoverlayrenderer.so error in /tmp/dumps/mobile_stdout.txt, but looking in /tmp/gameoverlayrenderer.log it shows a GLXBadFBConfig error. <br />
<br />
This can be fixed, however, by forcing the game to use a later version of OpenGL than it wants. Right click on the game, select Properties. Then, click "Set Launch Options" in the "General" tab and paste the following:<br />
<br />
MESA_GL_VERSION_OVERRIDE=3.1 MESA_GLSL_VERSION_OVERRIDE=140 %command%<br />
<br />
This will force the game to use the latest version of OpenGL.<br />
<br />
=== X crashes when Steam starts (Radeon open source driver) ===<br />
<br />
There is [https://bugs.freedesktop.org/show_bug.cgi?id=79325 a bug] in glamor-egl 0.6.0 (used by the open source Radeon driver) which causes X to crash when trying to start Steam. Installing the unofficial [https://aur.archlinux.org/packages/glamor-egl-git/ glamor-egl-git] from AUR is a workaround until a new glamour version is released.<br />
<br />
=== Some games fail to start ===<br />
<br />
Occationally some games fail to load with output similar to the following:<br />
{{bc|ERROR: ld.so: object '~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.}}<br />
In these cases the included libstdc++.so is conflicting with something [https://bbs.archlinux.org/viewtopic.php?id=181171 explained here]. The solution seems to be setting the environmental variable STEAM_RUNTIME to 0, and running the following command: {{bc|rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6}}<br />
<br />
== Launching games with custom commands, such as Bumblebee/Primus ==<br />
<br />
Steam has fortunately added support for launching games using your own custom command. To do so, navigate to the Library page, right click on the selected game, click Properties, and Set Launch Options. Steam replaces the tag {{ic|%command%}} with the command it actually wishes to run. For example, to launch Team Fortress 2 with primusrun and at resolution 1920x1080, you would enter:<br />
<br />
primusrun %command% -w 1920 -h 1080<br />
<br />
If you are running the [[Linux-ck]] kernel, you may have some success in reducing overall latencies and improving performance by launching the game in SCHED_ISO (low latency, avoid choking CPU) via {{Pkg|schedtool}}<br />
<br />
# schedtool -I -e %command% ''other arguments''<br />
<br />
=== Killing standalone compositors when launching games ===<br />
<br />
Further to this, utilising the {{ic|%command%}} switch, you can kill standalone compositors (such as Xcompmgr or [[Compton]]) - which can cause lag and tearing in some games on some systems - and relaunch them after the game ends by adding the following to your game's launch options.<br />
<br />
killall compton && %command%; nohup compton &<br />
<br />
Replace {{ic|compton}} in the above command with whatever your compositor is. You can also add -options to {{ic|%command%}} or {{ic|compton}}, of course.<br />
<br />
Steam will latch on to any processes launched after {{ic|%command%}} and your Steam status will show as in game. So in this example, we run the compositor through {{ic|nohup}} so it is not attached to Steam (it will keep running if you close Steam) and follow it with an ampersand so that the line of commands ends, clearing your Steam status.<br />
<br />
== Using native runtime ==<br />
<br />
Steam, by default, ships with a copy of every library it uses, packaged within itself, so that games can launch without issue. This can be a resource hog, and the slightly out-of-date libraries they package may be missing important features (Notably, the OpenAL version they ship lacks HRTF and surround71 support). To use your own system libraries, you can run Steam with:<br />
<br />
$ STEAM_RUNTIME=0 steam<br />
<br />
However, if you're missing any libraries Steam makes use of, this will fail to launch properly. An easy way to find the missing libraries is to run the following commands:<br />
<br />
$ cd ~/.local/share/Steam/ubuntu12_32<br />
$ LD_LIBRARY_PATH=".:${LD_LIBRARY_PATH}" ldd $(file *|sed '/ELF/!d;s/:.*//g')|grep 'not found'|sort|uniq<br />
<br />
{{Note|The libraries will have to be 32-bit, which means you may have to download some from the AUR if on x86_64, such as NetworkManager.}}<br />
<br />
Once you've done this, run steam again with {{ic|1=STEAM_RUNTIME=0 steam}} and verify it's not loading anything outside of the handful of steam support libraries:<br />
<br />
$ cat /proc/$(pidof steam)/maps|sed '/\.local/!d;s/.* //g'|sort|uniq<br />
<br />
== Changing the position of the notification popups ==<br />
<br />
If you either have a desktop environment with a taskbar somewhere else than on the bottom of your screen, or are playing games where you have something important in your lower right corner (like a minimap) you may want to change where the notifications will show when a friend logs in/plays a game.<br />
<br />
The valid locations are: "BottomRight", "BottomLeft", "TopRight", "TopLeft"<br />
<br />
=== Game Overlay Notifications ===<br />
<br />
For the game overlay you will want to go to '''~/.steam/steam/resource/styles/gameoverlay.style''' and find the line (10) that specifies the notification's location.<br />
<br />
Notifications.PanelPosition "BottomRight" // osx has toast in the upper right, but in-overlay should not.<br />
<br />
You can change it to whatever you like, for example top-right:<br />
<br />
Notifications.PanelPosition "TopRight" // osx has toast in the upper right, but in-overlay should not.<br />
<br />
=== Steam Desktop Notifications ===<br />
<br />
For steam itself (outside of the overlay/on your desktop) you will want to edit '''~/.steam/steam/resource/styles/steam.style'''<br />
<br />
Notifications.PanelPosition "BottomRight" // Can be "BottomRight", "BottomLeft", "TopRight", "TopLeft"<br />
<br />
And to set top right for example you would change it to:<br />
<br />
Notifications.PanelPosition "TopRight" // Can be "BottomRight", "BottomLeft", "TopRight", "TopLeft"<br />
<br />
=== Finalize (Read-Only) ===<br />
<br />
The final step is to make the modified files read-only or steam will re-write them everytime it updates (which would be every time you launch it), this can be done for both files at once with:<br />
<br />
chmod 0444 ~/.steam/steam/resource/styles/*.style<br />
<br />
And if you'd like, for the folder too: (Note: Making the folder read only makes it impossible for Steam to re-create the files if it cannot modify them, which is what it currently does on Windows if it detects the files are read-only in there)<br />
<br />
chmod 0544 ~/.steam/steam/resource/styles<br />
<br />
== Skins for Steam ==<br />
<br />
{{Note|Using skins that are not up-to-date with the version of the Steam client may cause visual errors.}}<br />
<br />
The Steam interface can be fully customized by copying its various interface files in its skins directory and modifying them.<br />
<br />
An extensive list of skins can be found on [http://forums.steampowered.com/forums/showthread.php?t=1161035 Steam's forums].<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.<br />
<br />
== See also ==<br />
* https://wiki.gentoo.org/wiki/Steam</div>Lestohttps://wiki.archlinux.org/index.php?title=AMD_Catalyst&diff=255182AMD Catalyst2013-04-26T10:30:17Z<p>Lesto: </p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[es:ATI Catalyst]]<br />
[[fr:ATI#Catalyst]]<br />
[[it:AMD Catalyst]]<br />
[[zh-CN:AMD Catalyst]]<br />
{{Article summary start}}<br />
{{Article summary text|An overview of AMD's proprietary Linux "Catalyst" video card driver.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|ATI}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary heading|Resources}}<br />
{{Article summary link|cchtml.com - Unofficial Wiki for the ATI Linux Driver|http://wiki.cchtml.com/index.php/Main_Page}}<br />
{{Article summary link|Unofficial ATI Linux Driver Bugzilla|http://ati.cchtml.com/query.cgi}}<br />
{{Article summary end}}<br />
<br />
Owners of '''ATI/AMD''' video cards have a choice between AMD's proprietary driver ({{AUR|catalyst}}) and the [[ATI|open source driver]] ({{Pkg|xf86-video-ati}}). This article covers the proprietary driver.<br />
<br />
AMD's Linux driver package ''catalyst'' was previously named ''fglrx'' ('''F'''ire'''GL''' and '''R'''adeon '''X'''). Only the package name has changed, while the kernel module retains its original ''fglrx.ko'' filename. Therefore, any mention of fglrx below is specifically in reference to the ''kernel module'', '''not the package'''.<br />
<br />
As of October 2012, binary packages are being offered. Currently, packages are available in the [community] repository, but it's unknown what will happen when an Xorg upgrade will break the driver. In the past, Catalyst [https://www.archlinux.org/news/ati-catalyst-support-dropped/ has been dropped] from official Arch support because of dissatisfaction with the quality and speed of development. Also, a legacy driver for Radeon HD 2xxx 3xxx 4xxx is not available in [community] yet. For more information, see [https://bbs.archlinux.org/viewtopic.php?pid=1166052#p1166052/ this] this forum post and onwards.<br />
<br />
Compared to the open source driver, Catalyst performs worse in 2D graphics, but has a better support for 3D rendering. Supported devices are [[wikipedia:Radeon|ATI/AMD Radeon]] video cards with chipset R600 and newer (as of Catalyst 9.4). See [[wikipedia:Comparison_of_AMD_graphics_processing_units|this table]], or the Xorg [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names "Decoder ring",] to translate ''model'' names (X1900, HD4850) to/from ''chip'' names (R580, RV770 respectively).<br />
<br />
== Installation ==<br />
<br />
There are four ways of installing Catalyst on your system. One way is to use the official [community] repository, but this does not contain the legacy driver. Another one is to use Vi0L0's (Arch's unofficial Catalyst maintainer) repository. This repository does contain all the necessary packages. The third method you can use is the AUR; PKGBUILDs offered here are also made by Vi0L0 and are the same he uses to built packages for his repository. Lastly, you can install the driver directly from AMD.<br />
<br />
Before choosing the method you prefer, you will have to see which driver you need. Since Catalyst 12.4, AMD has separated its development for Radeon HD 2xxx, 3xxx and 4xxx cards into the '''legacy''' Catalyst driver. For Radeon HD 5xxx and newer, there is the regular Catalyst driver. Regardless of the driver you need, you will also need the Catalyst utilities.<br />
<br />
{{Note|After the instructions for every method of installing, you will find general instructions '''everyone''' has to perform, regardless of the method you used.}}<br />
<br />
=== Installing the driver ===<br />
==== Installing from the official repository ====<br />
{{Out of date|catalyst-utils has been removed from the official repositories. One has to install catalyst-utils from another source now; possibly {{AUR|catalyst-total}} from the AUR in combination with [[#Catalyst-hook]]}}<br />
<br />
This is the most simple and straightforward way, as it requires no unofficial repositories and because this package uses [[Dynamic Kernel Module Support|DKMS]] to automatically rebuilt the kernel modules when the kernel is upgraded. If this repository holds the packages you need, it is suggested you take this one. <br />
<br />
To install Catalyst, [[Pacman|install]] {{Pkg|catalyst-dkms}} and {{Pkg|catalyst-utils}} from the [[official repositories]].<br />
<br />
{{Note|If pacman asks you about removing '''libgl''' you can safely do so.}}<br />
<br />
{{Note|If you intend to use [[Dynamic Kernel Module Support|DKMS]] don't forget to install {{Pkg|linux-headers}} and enable the {{ic|dkms.service}} [[daemons|service]].}}<br />
<br />
If you are on 64-bit and also need 32-bit OpenGL support, install {{Pkg|lib32-catalyst-utils}} from the [[multilib]] repository.<br />
<br />
If you need OpenCL support, install {{Pkg|opencl-catalyst}}.<br />
<br />
Later on, a legacy driver will also be offered here.<br />
<br />
==== Installing from the unofficial repository ====<br />
If you need packages that currently aren't hosted by the official repository and don't fancy building the packages from the [[Arch User Repository|AUR]], this is the way to go. The repository is maintained by our unofficial Catalyst maintainer, Vi0L0. All packages are signed and I consider them safe to use. As you will see later on in this article, Vi0L0 is also responsible for many other packages that will help you get your system working with your ATI graphic cards. <br />
<br />
Vi0L0 has three different Catalyst repositories, each having different drivers:<br />
*[catalyst]; for the regular Catalyst driver needed by Radeon HD 5xxx and up, it contains the latest (stable or beta) Catalyst release;<br />
*[catalyst-stable]; for the regular Catalyst driver needed by Radeon HD 5xxx and up, with the latest stable driver;<br />
*[catalyst-hd234k]; for the legacy Catalyst driver needed by Radeon HD 2xxx, 3xxx and 4xxx cards. <br />
<br />
{{Warning|The Legacy driver does not support Xorg 1.13 or 1.14 for now. Support should be added by AMD in a century or two, but this could be sooner. Should you want to use this driver, see [[#Xorg repositories]] for instructions on how to roll back to or hold back Xorg 1.12.}}<br />
<br />
To enable one of these, you will have to edit {{ic|/etc/pacman.conf}} and add the repository of choice's information '''above all other repositories''' in {{ic|/etc/pacman.conf}}.<br />
<br />
*For [catalyst], add:<br />
<br />
[catalyst]<br />
<nowiki>Server = http://catalyst.wirephire.com/repo/catalyst/$arch</nowiki><br />
<br />
*For [catalyst-stable], add:<br />
<br />
[catalyst-stable]<br />
<nowiki>Server = http://catalyst.wirephire.com/repo/catalyst/$arch</nowiki><br />
<br />
*For [catalyst-hd234k], add:<br />
<br />
[catalyst-hd234k]<br />
<nowiki>Server = http://catalyst.wirephire.com/repo/catalyst-hd234k/$arch</nowiki><br />
<br />
You must also [[User:Vi0L0|add Vi0L0's GPG key]] so that pacman trusts the repositories.<br />
<br />
# pacman-key --keyserver pgp.mit.edu --recv-keys 0xabed422d653c3094<br />
# pacman-key --lsign-key 0xabed422d653c3094<br />
<br />
Once you have done this, update pacman's database and install the packages:<br />
<br />
# pacman -Syu<br />
# pacman -S catalyst catalyst-utils<br />
<br />
{{Note|If pacman asks you about removing '''libgl''' you can safely do so.}}<br />
<br />
{{Warning|Catalyst from Vi0L0's repository is compiled against one kernel and one kernel only. For Vi0L0, it's getting more and more difficult to keep up with kernel's pace and as such, we have seen a lot of users asking for what to do in the forums. Often, the solution is to a) wait for Vi0L0 to rebuilt the Catalyst package against those newer versions, b) do so yourself or c) hold back the Linux kernel update. The easiest solution is to do so yourself, not manually, but by using Vi0L0's excellent [[#Catalyst-hook]].}}<br />
<br />
If you are on 64-bit and also need 32-bit OpenGL support:<br />
<br />
# pacman -S lib32-catalyst-utils<br />
<br />
Repositories also contain other packages, that can ''replace'' the catalyst-hook package:<br />
<br />
* '''catalyst-generator'''; this package is able to generate fglrx modules packed into pacman compliant packages - most secure and KISS-compatible package in this side-note, although it has to be operated manually. It's described in [[#Catalyst-generator]]<br />
* '''catalyst-hook'''; a systemd service which will automatically update the fglrx module whilst the system shuts down or reboots. It's described in [[#Catalyst-hook]]<br />
<br />
You will find more details about those packages in [[#Tools| Tools section]].<br />
Lastly, both repositories also contain the '''xvba-video''' package, which enables video acceleration, described in [[#Video acceleration]], the '''AMDOverdriveCtrl''' package, which is a GUI to control over- and underclocking, also described in [[#GPU/Mem frequency, Temperature, Fan speed, Overclocking utilities]], and a pack of tools for '''OpenCL/OpenGL developers''', described in [[#OpenCL_and_OpenGL_development]]<br />
<br />
==== Installing from the AUR ====<br />
The last way to install Catalyst is from the [[Arch User Repository|AUR]]. If you want to built the packages specifically for your computer, this is your way to go. Note that this is also the most tedious way to install Catalyst; it requires the most work and also requires manual updates upon every kernel update.<br />
<br />
{{Warning|If you install the Catalyst package from the AUR, you will have to rebuild Catalyst every time the kernel is updated. Otherwise X '''will''' fail to start.}}<br />
{{Warning|The Legacy driver does not support Xorg 1.13 for now. Support should be added by AMD in a century or two, but this could be sooner. Should you want to use this driver, see [[#Xorg repositories]] for instructions on how to roll back to or hold back Xorg 1.12.}}<br />
<br />
All packages mentioned above in Vi0L0's unofficial repository are also available on the [[Arch User Repository|AUR]]:<br />
* {{AUR|Catalyst}};<br />
* {{AUR|Catalyst-utils}};<br />
* {{AUR|Lib32-catalyst-utils}};<br />
* {{AUR|Catalyst-generator}};<br />
* {{AUR|Catalyst-hook}};<br />
* {{AUR|Catalyst-daemon}}.<br />
<br />
The AUR also holds some packages that are '''not''' found in any of the repositories. These packages contain the so-called ''Catalyst-total'' packages and the beta versions:<br />
* {{AUR|Catalyst-total-hd234k}};<br />
* {{AUR|Catalyst-total}};<br />
* {{AUR|Catalyst-test}};<br />
* {{AUR|Lib32-catalyst-test}};<br />
* {{AUR|Catalyst-total-pxp}};<br />
<br />
The ''Catalyst-total'' packages are made to make the lives of AUR users easier. It builds the driver, the kernel utilities and the 32 bit kernel utilities. It also builds the Catalyst-hook package, which is explained above.<br />
<br />
''Catalyst-total-pxp'' builds Catalyst with experimental powerXpress support.<br />
<br />
For more information on building from the AUR, read [[#Installing_from_AUR| Installing from AUR]].<br />
<br />
==== Installing directly from AMD ====<br />
{{Warning|Using the installer from ati.com/amd.com is '''not''' recommended! It may cause file conflicts and X failures and you will miss Arch-specific fixes. You '''must''' be familiar with booting to the command-line if you wish to attempt this.}}<br />
<br />
{{Note|If you have attempted a manual install from the official installer and cannot recover your desktop:<br />
# /usr/share/ati/fglrx-uninstall.sh<br />
}}<br />
<br />
1.) Download the installer from AMD or elsewhere (whereas *-* will be the version): {{ic|ati-driver-installer-*-*-x86.x86_64.run}}<br />
<br />
2.) Make sure it's executable: {{ic|# chmod +x ati-driver*}}<br />
<br />
3.) Ensure you're using a basic video driver like vesa and remove conflicting drivers (i.e. {{ic|xf86-video-ati}}) with pacman.<br />
<br />
4.) Symlink {{ic|/usr/src/linux}} to {{ic|<nowiki>/usr/src/{kernelsource}</nowiki>}}. 64-bit users also symlink{{ic|/usr/lib64}} to {{ic|/usr/lib}}.<br />
<br />
5.) Be sure to have your build environment setup: {{ic|# pacman -Syu base-devel linux-headers}}<br />
<br />
6.) Now run {{ic|# ./ati-driver-installer-*-*-x86.86_64.run}} (Files will extract to a temporary folder and scripts will run...)<br />
<br />
Assuming nothing went horribly wrong...<br />
<br />
7.) Check {{ic|/usr/share/ati/fglrx-install.log}} for issues. There should also be a {{ic|/lib/modules/fglrx/make.{ker_version}.log}}.<br />
<br />
{{Note|If you modify the make scripts, save to a different filename. Otherwise uninstall will not complete successfully.}}<br />
<br />
=== Configuring the driver ===<br />
After you have installed the driver via your chosen method, you will have to configure X to work with Catalyst. Also, you will have to make sure the module gets loaded at boot. Also, one should disable [[KMS|kernel mode setting]].<br />
<br />
==== Configuring X ====<br />
To configure X, you will have to create an xorg.conf file. Catalyst provides its own {{ic|aticonfig}} tool to create and/or modify this file.<br />
It also can configure virtually every aspect of the card for it also accesses the {{ic|/etc/ati/amdpcsdb}} file. For a complete list of {{ic|aticonfig}} options, run:<br />
<br />
# aticonfig --help | less<br />
<br />
{{Warning|Use the --output option before committing to /etc/X11 as an xorg.conf file will override anything in /etc/X11/xorg.conf.d}}<br />
<br />
{{Note|If you want to adhere to the new xorg.conf.d: Append your {{ic|aticonfig}} string with ''--output'' so that you can adapt the Device section to {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}. The drawback of this is that many {{ic|aticonfig}} options rely on an xorg.conf, and thus will be unavailable.}}<br />
<br />
Now, to configure Catalyst. If you have only one monitor, run this:<br />
<br />
# aticonfig --initial<br />
<br />
{{Note | If you have PowerXpress problem you should probably install {{ic|catalyst-utils-pxp}}}}<br />
<br />
However, if you have two monitors and want to use both of them, you can run the command stated below. Note that this will generate a dual head configuration with the second screen located above the first screen.<br />
<br />
# aticonfig --initial=dual-head --screen-layout=above<br />
<br />
{{Note|See [[#Double Screen (Dual Head / Dual Screen / Xinerama)]] for more information on setting up dual monitors.}}<br />
<br />
You can compare the generated file to one of the [[Xorg#Sample_xorg.conf_Files|Sample Xorg.conf]] examples listed on the Xorg page.<br />
<br />
Although the current Xorg versions auto-detect most options when started, you may want to specify some in case the defaults change between versions.<br />
<br />
Here is an example (with notes) '''for reference'''. Entries with '#' should be required, add entries with '##' as needed:<br />
<br />
{{bc|1=<br />
Section "ServerLayout"<br />
Identifier "Arch"<br />
Screen 0 "Screen0" 0 0 # 0's are necessary.<br />
EndSection<br />
Section "Module"<br />
Load ...<br />
...<br />
EndSection<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
...<br />
EndSection<br />
Section "Device"<br />
Identifier "Card0"<br />
Driver "fglrx" # Essential.<br />
BusID "PCI:1:0:0" # Recommended if autodetect fails.<br />
Option "OpenGLOverlay" "0" ##<br />
Option "XAANoOffscreenPixmaps" "false" ##<br />
EndSection<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Card0"<br />
Monitor "Monitor0"<br />
DefaultDepth 24<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 24 # Should not change from '24'<br />
Modes "1280x1024" "2048x1536" ## 1st value=default resolution, 2nd=maximum.<br />
Virtual 1664 1200 ## (x+64, y) to workaround potential OGL rect. artifacts/<br />
EndSubSection ## fixed in Catalyst 9.8<br />
EndSection<br />
Section "DRI"<br />
Mode 0666 # May help enable direct rendering.<br />
EndSection<br />
}}<br />
<br />
{{Note|With '''every''' Catalyst update you should remove '''amdpcsdb''' file in this way: kill X, remove {{ic|/etc/ati/amdpcsdb}}, start X and then run {{ic|amdcccle}} - otherwise the version of Catalyst may display wrongly in amdcccle.}}<br />
<br />
''If you need more information on Catalyst, visit [https://bbs.archlinux.org/viewtopic.php?id=57084 this thread].''<br />
<br />
==== Loading the module at boot ====<br />
{{Note|Users of the [community] package do not have to do this, it's automatically done for them when installing the package.}}<br />
We have to blacklist the {{ic|radeon}} module to prevent it from auto-loading. To do so, blacklist ''radeon'' in {{ic|/etc/modprobe.d/modprobe.conf}}. Also, make sure that it is not loaded by any file under {{ic|/etc/modules-load.d/}}. For more information, see [[Modprobe|blacklisting in this article]]. <br />
<br />
Then we will have to make sure that the {{ic|fglrx}} module gets auto-loaded. Either add {{ic|fglrx}} on a new line of an existing module file located under {{ic|/etc/modules-load.d/}}, or create a new file and add {{ic|fglrx}}.<br />
<br />
==== Disable kernel mode setting ====<br />
<br />
Disabling kernel mode setting is important, as the driver doesn't take advantage of [[KMS]] yet. If you do not deactivate KMS, your system might freeze when trying to switch to a tty or even when shutting down via your DE.<br />
<br />
For [[GRUB Legacy|GRUB Legacy]], edit {{ic|menu.lst}} by adding {{ic|nomodeset}} to the kernel parameters. For example:<br />
<br />
kernel /boot/vmlinuz-linux root=/dev/sda1 ro '''nomodeset'''<br />
<br />
For [[GRUB2|GRUB 2]], edit {{ic|/etc/default/grub}} and add ''nomodeset'' to the kernel parameter options, e.g.<br />
<br />
GRUB_CMDLINE_LINUX="nomodeset"<br />
<br />
Then run, as root;<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
For [[Syslinux|Syslinux]], edit {{ic|/boot/syslinux/syslinux.cfg}} and add ''nomodeset'' to the {{ic|APPEND}} line, e.g.:<br />
<br />
APPEND root=/dev/sda2 ro ''nomodeset''<br />
<br />
==== Checking operation ====<br />
<br />
Assuming that a reboot to your login was successful, you can check if fglrx is running properly with the following commands:<br />
<br />
$ lsmod | grep fglrx<br />
$ fglrxinfo<br />
<br />
If you get output, it works. Finally, run X with {{ic|startx}} or by using GDM/KDM and verify that direct rendering is enabled by running the following command in a terminal:<br />
<br />
$ glxinfo | grep "direct rendering"<br />
<br />
If it says "direct rendering: yes" then you're good to go! If the glxinfo command is not found install the {{Pkg|mesa-demos}} package.<br />
<br />
{{Note|You can also use:<br />
$ fgl_glxgears<br />
as the fglrx alternative test to glxgears.<br />
}}<br />
<br />
{{Warning|In recent versions of Xorg, the paths of libs are changed. So, sometimes {{ic|libGL.so}} cannot be correctly loaded even if it's installed. Check this if your GL is not working. Please read "Troubleshooting" section for details.}}<br />
<br />
If you have trouble, see [[#Troubleshooting]].<br />
<br />
=== Custom Kernels ===<br />
<br />
To install catalyst for a custom kernel, you'll need to build your own {{ic|catalyst-$kernel}} package.<br />
<br />
If you are at all uncomfortable or inexperienced with making packages, read up the [[ABS]] wiki page first so things go smoothly.<br />
<br />
# Obtain the {{ic|PKGBUILD}} and {{ic|catalyst.install}} files from [[AUR|Catalyst]].<br />
# Editing the PKGBUILD. Two changes need to be made here:<br />
## Change {{ic|1=pkgname=catalyst}} to {{ic|1=pkgname=catalyst-$kernel_name}}, where $kernel_name is whatever you want (e.g. custom, mm, themostawesomekernelever).<br />
## Change the dependency of {{ic|linux}} to {{ic|$kernel_name}}.<br />
# Build your package and install; run {{ic|makepkg -i}} or {{ic|makepkg}} followed by {{ic|pacman -U pkgname.pkg.tar.gz}}<br />
<br />
{{Note|If you run multiple kernels, you have to install the Catalyst-utils packages for all kernels. They won't conflict with one another.}}<br />
<br />
{{Note|Catalyst-generator is able to build catalyst-{kernver} packages for you so you do not actually need to perform all those steps manually. For more information, see [[#Tools| Tools section]].}}<br />
<br />
=== PowerXpress support ===<br />
<br />
PowerXpress technology allows switching notebooks with dual-graphic capability from integrated graphics (IGP) to discrete graphics either to increase battery life or to achieve better 3D rendering capabilities.<br />
<br />
To use such functionality on Arch you will have to:<br />
* Get and build {{AUR|catalyst-total-pxp}} package from the [[Arch User Repository|AUR]], or<br />
* Install '''catalyst-utils-pxp''' package from the [catalyst] repository (plus additional lib32-catalyst-utils-pxp, if needed).<br />
<br />
To perform a switch into Intel's IGP you will also have to install the '''mesa-libgl''' package and Intel's drivers: '''xf86-video-intel''' and '''intel-dri'''.<br />
<br />
{{Note|'''With the latest version of Catalyst, version 13.1 (not Catalyst legacy) ChrisXY was able to work on the newest xorg-server (version 1.13.1), mesa 9.0.1 and xf86-video-intel 2.20.18'''.<br />
<br />
On any version of Catalyst below 13.1 (and all versions of Catalyst legacy) there are some problems with the new Intel drivers and the '''last noted working version of xf86-video-intel is 2.20.2-2''', so you will probably have to downgrade from the latest version that you have gotten from Arch's repositories (although we recommend to test the newest one before downgrading - there's always some possibility that it will work).<br />
<br />
'''xf86-video-intel 2.20.2-2''' works only with xorg-server 1.12 and so it is a part of the '''xorg112 repository'''. If you want to use it you will have to downgrade xorg-server as well. For information on this, see [[#Xorg repositories]].}}<br />
<br />
Now you can switch between the integrated and the discrete GPU, using these commands:<br />
<br />
{{bc|1=<br />
# aticonfig --px-igpu #for integrated GPU<br />
# aticonfig --px-dgpu #for discrete GPU<br />
}}<br />
<br />
Just remember that fglrx needs /etc/X11/xorg.conf configured for AMD's card with 'fglrx' inside.<br />
<br />
You can also use the '''pxp_switch_catalyst''' switching script that will perform some additional usefull operations:<br />
* Switching xorg.conf - it will rename xorg.conf into xorg.conf.cat (if there's fglrx inside) or xorg.conf.oth (if there's intel inside) and then it will create a symlink to xorg.conf, depending on what you chose.<br />
* Running {{ic|aticonfig --px-Xgpu}}.<br />
* Running {{ic|switchlibGL}}.<br />
* Adding/removing fglrx into/from {{ic|/etc/modules-load.d/catalyst.conf}}.<br />
<br />
Usage:<br />
{{bc|1=<br />
# pxp_switch_catalyst amd<br />
# pxp_switch_catalyst intel<br />
}}<br />
<br />
If you have got problems when you try to run X on Intel's driver you may try to force '''"UXA" acceleration'''; just make sure that your xorg.conf for Intel's GPU got '''Option "AccelMethod" "uxa"''', like here:<br />
{{bc|1=<br />
Section "Device"<br />
Identifier "Intel Graphics"<br />
Driver "intel"<br />
#Option "AccelMethod" "sna"<br />
Option "AccelMethod" "uxa"<br />
#Option "AccelMethod" "xaa"<br />
EndSection<br />
}}<br />
<br />
==== Running two X servers (one using the Intel driver, another one using fglrx) simultaneously ====<br />
Because fglrx is crash-prone (regarding PowerXpress), it could be a good idea to use the Intel driver in the main X server and have a secondary X server using fglrx when 3D acceleration is needed. However, simply switching to the discrete GPU from the integrated GPU using {{ic|aticonfig}} or {{ic|amdcccle}} will cause all sorts of weird bugs when starting the second X.<br />
<br />
To run two X servers at the same time (each using different drivers), you should firstly set up a fully working X with Catalyst and then move its {{ic|xorg.conf}} to a temporary place (for example, {{ic|/etc/X11/xorg.conf.fglrx}}. The next time X is started, it will use the Intel driver by default instead of fglrx.<br />
<br />
To start a second X server using fglrx, simply move {{ic|xorg.conf}} back to the proper place ({{ic|/etc/X11/xorg.conf}}) before starting X. This method even allows you to switch between running X sessions. When you are done using fglrx, move {{ic|xorg.conf}} somewhere else again.<br />
<br />
The only disadvantage of this method is not having 3D acceleration using the Intel driver. 2D acceleration, however, is fully functional. Other than that, this will provide us with a completely stable desktop.<br />
<br />
== Xorg repositories ==<br />
Catalyst is notorious for its slow update process. As such, it is common that a new Xorg version is pushed down from upstream that will break compatibility for Catalyst. This means that Catalyst users either have to hold the Xorg packages from updating, or use a backported repository that only contains the Xorg packages that should be hold back. Vi0L0 has stepped in to fulfil this task and provides several backported repositories. <br />
<br />
If you want to use pacman to hold back packages from updating, see [[pacman|skip package from being upgraded]]. Packages you should hold back, are:<br />
*xorg-server-*<br />
*xf86-input-*<br />
*xf86-video-*<br />
<br />
If you want to use the backported repositories, you have to edit {{ic|/etc/pacman.conf}} and add the information of the repository '''above all other repositories''', even above your Catalyst repository, should you use one.<br />
<br />
===[xorg113]===<br />
Catalyst doesn't support xorg-server 1.14.<br />
<br />
[xorg113]<br />
<nowiki>Server = http://catalyst.wirephire.com/repo/xorg113/$arch</nowiki><br />
<br />
===[xorg112]===<br />
Catalyst < 12.10 doesn't support xorg-server 1.13.<br />
<br />
[xorg112]<br />
<nowiki>Server = http://catalyst.wirephire.com/repo/xorg112/$arch</nowiki><br />
<br />
===[xorg111]===<br />
Catalyst < 12.6 doesn't support xorg-server 1.12.<br />
<br />
[xorg111]<br />
<nowiki>Server = http://catalyst.wirephire.com/repo/xorg111/$arch</nowiki><br />
<br />
== Tools ==<br />
<br />
=== Catalyst-hook ===<br />
[https://aur.archlinux.org/packages.php?ID=40834 Catalyst-hook] is a [[systemd|systemd]] service that will automatically rebuild the fglrx modules while the system shuts down or reboots, but only if it's necessary (e.g. after an update).<br />
<br />
Before using this package make sure that both the {{Grp|base-devel}} group and the {{Pkg|linux-headers}} package (the one specific to the kernel you use) are installed:<br />
<br />
# pacman -S base-devel linux-headers<br />
<br />
To enable the automatic update, enable the {{ic|catalyst-hook.service}}:<br />
<br />
# systemctl enable catalyst-hook<br />
# systemctl start catalyst-hook<br />
<br />
You can also use this package to build the fglrx module manually. Simply run the catalyst_build_module script after the kernel has been updated:<br />
<br />
# catalyst_build_module all<br />
<br />
<br />
'''A few more technical details:'''<br />
<br />
The {{ic|catalyst-hook.service}} is stopping the systemd "river" and is forcing systemd to wait until catalyst-hook finishes its job.<br />
<br />
The {{ic|catalyst-hook.service}} is calling the {{ic|catalyst_build_module check}} function which checks if fglrx rebuilds are really necessary.<br />
<br />
The {{ic|check}} function is checking if the fglrx module exists, if it:<br />
<br />
*doesn't exist, it will build it;<br />
<br />
*does exist, it will compare the two values to be sure that a rebuild is necessary.<br />
<br />
These values are md5sums of the {{ic|/usr/lib/modules/<kernel_version>/build/Module.symvers}} file (because I, Vi0L0, noticed that this file is unique and different for every kernel's release). The first value is the md5sum of the existing {{ic|Module.symvers}} file. The second value is the md5sum of the {{ic|Module.symvers}} file which existed in a moment of the fglrx module creation. This value was compiled into the fglrx module by a catalyst_build_module script.<br />
<br />
If the values are different, it will compile the new fglrx module.<br />
<br />
The check is checking the whole {{ic|/usr/lib/modules/}} directory and building modules for all of the installed kernels if it's necessary. If the build or rebuild isn't necessary, the whole process takes only some milliseconds to complete before it gets killed by systemd.<br />
<br />
'''This is basically the same as catalyst-dkms from [community]... not''' - just to clarify things:<br />
<br />
- catalyst-hook does not need dkms to work, dkms is far more complex than mkinitcpio's hook or systemd's service;<br />
<br />
- catalyst-hook should be safer - because dkms is building modules at system's startup, so right when also X/DM is trying to start<br />
<br />
=== Catalyst-generator ===<br />
<br />
[https://aur.archlinux.org/packages.php?ID=41040 Catalyst-generator] is a package that is able to build and install the fglrx module packed into pacman compliant catalyst-${kernver} packages. The basic difference from Catalyst-hook is that you will have to trigger this command manually, whereas Catalyst-hook will do this automatically at boot when a new kernel got installed.<br />
<br />
It creates catalyst-${kernver} packages using [[makepkg]] and installs them with [[pacman]]. ''${kernver}'' is the kernel version for which each package was built (e.g. catalyst-2.6.35-ARCH package was built for 2.6.35-ARCH kernel).<br />
<br />
To build and install catalyst-${kernver} package for a currently booted kernel as an unprivileged user (non-root; safer way), use {{ic|catalyst_build_module}}. You will be asked for your root password to proceed to package installation.<br />
<br />
A short summary on how to use this package:<br />
<br />
# As root: {{ic|catalyst_build_module remove}}. This will remove all unused {{ic|catalyst-{kernver} }} packages.<br />
# As unprivileged user: {{ic|catalyst_build_module ${kernver}}}, where ${kernver} is the version of the kernel to which you just updated. For example: {{ic|catalyst_build_module 2.6.36-ARCH}}. You can also build catalyst-${kernver} for all installed kernels by using {{ic|catalyst_build_module all}}.<br />
# If you want to remove {{ic|catalyst-generator}}, it's best to run this as root before removing catalyst-generator: {{ic|catalyst_build_module remove_all}}. '''This will remove all catalyst-{kernver} packages from the system.'''<br />
<br />
Catalyst-generator isn't able to remove all those catalyst-{kernver} packages automatically while being removed because there can not be more than one instance of pacman running. If you forget to run {{ic|catalyst_build_module remove_all}} before using {{ic|pacman -R catalyst-generator}} catalyst-generator will tell you which catalyst-{kernver} packages you will have to remove manually after removing catalyst-generator itself.<br />
<br />
Catalyst-generator is most safe and KISS-friendly solution because:<br />
<br />
- you can use unprivileged user to build the package;<br />
<br />
- it's building modules in fakeroot environment;<br />
<br />
- it's not throwing files here and there, package manager always knows where they are;<br />
<br />
... all you have to do is to remember to use it<br />
<br />
{{Note|If you see those warnings:<br />
<br />
'''WARNING:''' Package contains reference to $srcdir<br />
<br />
'''WARNING:''' '.pkg' is not a valid archive extension.<br />
<br />
while building catalyst-{kernver} package, do not be concerned, it's normal.}}<br />
<br />
<br />
=== OpenCL and OpenGL development ===<br />
<br />
Since years AMD is working on tools for OpenCL and OpenGL developement.<br />
<br />
Now under the banner of '''"Heterogeneous Computing"''' AMD is providing even more of them, fortunately most of their computing tools are available also for Linux.<br />
<br />
In the AUR and the [catalyst] repositories you will find packages that represent the most important work from AMD, namely; [https://aur.archlinux.org/packages/amdapp-aparapi amdapp-aparapi], [https://aur.archlinux.org/packages/amdapp-sdk amdapp-sdk] and [https://aur.archlinux.org/packages/amdapp-codexl amdapp-codexl].<br />
<br />
APP shortcut stands for Accelerated Parallel Processing.<br />
<br />
==== amdapp-aparapi ====<br />
AMD's Aparapi is an API for expressing data parallel workloads in Java and a runtime component capable of converting the Java bytecode of compatible workloads into OpenCL so that it can be executed on a variety of GPU devices. If Aparapi can’t execute on the GPU, it will execute in a Java thread pool.<br />
<br />
You can find more information about Aparapi [http://developer.amd.com/tools/heterogeneous-computing/aparapi/ here].<br />
<br />
==== amdapp-sdk (formerly known as amdstream) ====<br />
The AMD APP Software Development Kit (SDK) is a complete development platform created by AMD to allow you to quickly and easily develop applications accelerated by AMD APP technology. The SDK provides samples, documentation and other materials to quickly get you started leveraging accelerated compute using OpenCL, Bolt, or C++ AMP in your C/C++ application.<br />
<br />
Since version 2.8 amdapp-sdk is providing aparapiUtil as well as aparapi's samples. A package is available on the [catalyst] repository; it depends on the amdapp-aparapi package. The AUR's package will let you decide whether you want aparapi's additions or not.<br />
<br />
Version 2.8 does not provide Profiler functionality, it has been moved to CodeXL.<br />
<br />
You can find more information about AMD APP SDK [http://developer.amd.com/tools/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/ here].<br />
<br />
==== amdapp-codexl ====<br />
CodeXL is an OpenCL and OpenGL Debugger and Profiler, with a static OpenCL kernel analyzer. It's a GUI application written atop of the well known [https://aur.archlinux.org/packages/gdebugger gDEBugger] and is available only for x86_64 systems.<br />
<br />
You can find more informations about CodeXL [http://developer.amd.com/tools/heterogeneous-computing/codexl/ here].<br />
<br />
== Features ==<br />
<br />
=== Tear Free Rendering ===<br />
<br />
Presented in '''Catalyst 11.1''', the ''Tear Free Desktop'' feature reduces tearing in 2D, 3D and video applications. This likely adds triple-buffering and v-sync. Do note that it requires additional GPU processing.<br />
<br />
To enable 'Tear Free Desktop' run {{ic|amdcccle}} and go to: {{ic|Display Options}} → {{ic|Tear Free}}.<br />
<br />
Or as root run:<br />
<br />
# aticonfig --set-pcs-u32=DDX,EnableTearFreeDesktop,1<br />
<br />
To disable, again use {{ic|amdcccle}} or run as root:<br />
<br />
# aticonfig --del-pcs-key=DDX,EnableTearFreeDesktop<br />
<br />
=== Video acceleration ===<br />
<br />
'''[[wikipedia:Video_Acceleration_API|Video Acceleration API]] (VA API)''' is an open source software library (libVA) and API specification which provides GPU acceleration for video processing on Linux/UNIX based operating systems. The process works by enabling hardware accelerated video decode at various entry-points (VLD, IDCT, Motion Compensation, deblocking) for common encoding standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/WMV3).<br />
<br />
VA-API gained a proprietary backend (in November 2009) called {{AUR|xvba-video}}, that allows VA-API programmed applications to take advantage of AMD Radeons UVD2 chipsets via the [[wikipedia:XvBA|XvBA (X-Video Bitstream Acceleration API designed by AMD)]] library.<br />
<br />
XvBA support and xvba-video is still under development, however it is '''working very well in most cases'''. Build the {{AUR|xvba-video}} package from AUR or soon, install it from [community] and install {{Pkg|mplayer-vaapi}} and {{Pkg|libva}}. Then just set your video player to use vaapi:gl as video output:<br />
<br />
$ mplayer -vo vaapi:gl movie.avi<br />
<br />
These options can be added to your mplayer configuration file, see [[MPlayer]].<br />
<br />
For '''smplayer''':<br />
<br />
Options → Preferences → General → Video (tab) → Output driver: User Defined : vaapi:gl<br />
Options → Preferences → General → Video (tab) → Double buffering '''on'''<br />
Options → Preferences → General → General → Screenshots → Turn screenshots '''off'''<br />
Options → Preferences → Performance → Threads for decoding: '''1''' (to turn off -lavdopts parameter)<br />
<br />
{{Note|If Tear Free Desktop is enabled it's better to use:<br />
Options -> Preferences -> General -> Video (tab) -> Output driver: vaapi<br />
If Video Output '''vaapi:gl''' isn't working - please check:<br />
'''vaapi''', '''vaapi:gl2''' or simply '''xv(0 - AMD Radeon [[wikipedia:Avivo|AVIVO Video]])'''.<br />
}}<br />
<br />
For '''VLC''':<br />
<br />
Tools → Preferences → Input & Codecs → Use GPU accelerated decoding<br />
<br />
It might help to enable v-sync in '''amdcccle''':<br />
<br />
3D → More Settings → Wait for vertical refresh = Always On<br />
<br />
{{Note|If you are using '''Compiz/KWin''', the only way to '''avoid video flickering''' is to watch videos in '''full-screen''' and only when '''Unredirect Fullscreen is off'''.<br />
<br />
In '''compiz''' you need to set '''Redirected Direct Rendering''' in General Options of ccsm. If it is still flickering, try to disable this option in CCSM. It's off by default in '''KWin''', but if you see flickering try to turn "Suspend desktop effects for fullscreen windows" on or off in System Settings → Desktop Effects → Advanced.}}<br />
<br />
=== GPU/Mem frequency, Temperature, Fan speed, Overclocking utilities ===<br />
<br />
You can get the GPU/Mem clocks with: {{ic|$ aticonfig --od-getclocks}}.<br />
<br />
You can get the fan speed with: {{ic|$ aticonfig --pplib-cmd "get fanspeed 0"}}<br />
<br />
You can get the temperature with: {{ic|$ aticonfig --odgt}}<br />
<br />
To set the fanspeed with: {{ic|$ aticonfig --pplib-cmd "set fanspeed 0 50"}} Query Index: 50, Speed in percent<br />
<br />
To overclock and/or underclock it's easier to use a GUI, like '''ATi Overclocking Utility''', which is very simple and requires qt to work. It might be out of date/old, but you can get it [http://kde-apps.org/content/show.php/ATI+Overclock?content=47796 here].<br />
<br />
Another, more complex utility to perform such operations is '''AMDOverdriveCtrl'''. Its homepage is [http://sourceforge.net/projects/amdovdrvctrl here] and you can build an Arch package from [https://aur.archlinux.org/packages.php?ID=45298 AUR] or from Vi0L0's unofficial repositories.<br />
<br />
=== Double Screen (Dual Head / Dual Screen / Xinerama) ===<br />
<br />
==== Introduction ====<br />
<br />
{{Warning| you should know that there isn't one specific solution because each setup differs and needs its own configuration. That's why you will have to adapt the steps below to your own needs. It is possible that you have to try more than once. '''Therefore, you should save your working {{ic|/etc/X11/xorg.conf}} before you start modifying and you must be able to recover from a command-line environment.'''}}<br />
<br />
* In this chapter, we will describe the installation of two different-sized screens on only one graphics card with two different output ports (DVI + HDMI) using a "BIG Desktop" configuration.<br />
<br />
* The Xinerama solution has some inconveniences, especially because it is not compatible with XrandR. For that very reason, you should not use this solution, because XrandR is a must for our later configuration.<br />
<br />
* The Dual Head solution would allow you to have 2 different sessions (one for each screen). It could be what you want, but you will not be able to move windows from one screen to another. If you have only one screen, you will have to define the mouse inside your Xorg session for each of the two sessions inside the Server Layout section.<br />
<br />
[http://support.amd.com/us/kbarticles/Pages/1105-HowCanIConfigureMultip.aspx ATI Documentation]<br />
<br />
==== ATI Catalyst Control Center ====<br />
<br />
The GUI tool shipped by ATI is very useful and we will try to use it as much as we can. To launch it, open a terminal and use the following command:<br />
<br />
$ {kdesu/gksu} amdcccle<br />
<br />
{{Warning|Do '''not''' use sudo directly with a GUI. Sudo gives you admin rights with user account information. Instead, use ''gksu'' (GNOME) or ''kdesu'' (KDE).}}<br />
<br />
==== Installation ====<br />
<br />
Before we start, make sure that your hardware is plugged in correctly, that power is on and that you know your hardware characteristics (screen dimensions, sizes, refreshment rates, etc.) Normally, both screens are recognized during boot time but not necessarily identified properly, especially if you are not using any Xorg base configuration file ({{ic|/etc/X11/xorg.conf}}) but relying on the hot-plugging feature.<br />
<br />
The first step is to make sure that you screens will be recognized by your DE and by X. For this, you need to generate a basic Xorg configuration file for your two screens:<br />
<br />
# aticonfig --initial --desktop-setup=horizontal --overlay-on=1<br />
<br />
or<br />
<br />
# aticonfig --initial=dual-head --screen-layout=left<br />
<br />
{{Note|{{ic|overlay}} is important because it allows you to have 1 pixel (or more) shared between the 2 screens.}}<br />
{{Tip|For the other possible and available options, do not hesitate to type {{ic|aticonfig --help}} inside a terminal to display all available command lines.}}<br />
<br />
Now you should have a basic Xorg configuration file that you can edit to add your screen resolutions. It is important to use the precise resolution, especially if you have screens of different sizes. These resolutions have to be added in the "Screen" section:<br />
<br />
SubSection "Display"<br />
Depth 24<br />
Modes "X-resolution screen 1xY-resolution screen 1" "Xresolution screen 2xY-resolution screen 2"<br />
EndSubSection<br />
<br />
From now on, instead of editing the {{ic|xorg.conf}} file manually, let us use the ATI GUI tool. Restart X to be sure that your two screens are properly supported and that the resolutions are properly recognized (Screens must be independent, not mirrored).<br />
<br />
==== Configuration ====<br />
<br />
Now you will only have to launch the ATI control center with root privileges, go to the display menu and choose how you would like to set your configuration (small arrow of the drop down menu). A last restart of X and you should be done!<br />
<br />
Before you restart X, do not hesitate to verify your new {{ic|xorg.conf}} file. At this stage, inside the "Display" sub-section of the "Screen" section, you should see a "Virtual" command line, of which the resolution should be the sum of both screens. The "Server Layout" section says all the rest.<br />
<br />
== Uninstallation ==<br />
<br />
If for any reason this driver is not working for you or if you somply want to try out the open source driver, remove the {{ic|catalyst}} and {{ic|catalyst-utils}} packages. Also you should remove {{Aur|catalyst-daemon}}, {{Aur|catalyst-generator}}, {{Aur|catalyst-hook}} and {{Aur|lib32-catalyst-utils}} packages if they have been installed on your system.<br />
<br />
{{Warning|You may need to update or reinstall xorg-server. Before doing that remember to clean ''/etc/pacman.conf'' from custom Catalyst's and Xorg's repositories}}<br />
<br />
{{Warning|You may need to remove {{ic|/etc/profile.d/ati-flgrx.sh}} and {{ic|/etc/profile.d/lib32-catalyst}} (if it exists on your system), otherwise {{ic|r600_dri.so}} will fail to load and you would not have 3D support.}}<br />
<br />
{{Note|You should remove unofficial repositories from your {{ic|/etc/pacman.conf}} and run {{ic|pacman -Syu}}, because those repositories include out-dated Xorg packages to allow use of {{ic|catalyst}} and the {{Pkg|xf86-video-ati}} package needs up-to-date Xorg packages from the [[Official repositories]].}}<br />
<br />
Also follow these steps:<br />
<br />
* If you have the {{ic|/etc/modprobe.d/blacklist-radeon.conf}} file remove it or comment the line {{ic|blacklist radeon}} in that file.<br />
* If you have a file in {{ic|/etc/modules-load.d}} to load the {{ic|fglrx}} module on boot, remove it or comment the line containing {{ic|fglrx}}.<br />
* Make sure to remove or backup {{ic|/etc/X11/xorg.conf}}.<br />
* If you have installed the {{Aur|catalyst-hook}} package, make sure to remove ''fglrx'' from the "HOOKS" array of {{ic|/etc/mkinitcpio.conf}} in case if post-removal script of the package don't work.<br />
* If you have installed the {{Aur|catalyst-generator}} package, make sure to remove "fglrx" from the "MODULES" array of {{ic|/etc/rc.conf}} in case if post-removal script of the package don't work.<br />
* If you have installed the {{Aur|catalyst-daemon}} package, make sure to remove "autofglrx" from the "DAEMONS" array of {{ic|/etc/rc.conf}} in case if post-removal script of the package don't work.<br />
* If you used the "nomodeset" option in your [[Boot Loader#Configuration files|configuration file]] in kernel parameters line and plan to use [[#Kernel mode-setting (KMS)|KMS]], remove it.<br />
* '''Reboot''' before installing another driver.<br />
<br />
== Troubleshooting ==<br />
<br />
If you can still boot to command-line, then the problem probably lies in {{ic|/etc/X11/xorg.conf}}<br />
<br />
You can parse the whole {{ic|/var/log/Xorg.0.log}} or, for clues:<br />
<br />
$ grep '(EE)' /var/log/Xorg.0.log<br />
$ grep '(WW)' /var/log/Xorg.0.log<br />
<br />
If you are still confused about what is going on, search the forums first. Then post a message in the [https://bbs.archlinux.org/viewtopic.php?pid=1166052#p1166052/ thread specific to ATI/AMD]. Provide the information from {{ic|xorg.conf}} and both commands mentioned above.<br />
<br />
=== 3D Wine applications freeze ===<br />
If you use a 3D Wine application and it hangs, you have to disable TLS. To do this, either use {{ic|aticonfig}} or edit {{ic|/etc/X11/xorg.conf}}. To use {{ic|aticonfig}}:<br />
<br />
# aticonfig --tls=off<br />
<br />
Or, to edit {{ic|/etc/X11/xorg.conf}}; first open the file in an editor as root and then add {{ic|Option "UseFastTLS" "off"}} to the ''Device'' section of this file. <br />
<br />
After applying either of the solutions, restart X for it to take effect.<br />
<br />
=== Problems with video colours ===<br />
<br />
You may still use {{ic|vaapi:gl}} to avoid video flickering, but without video acceleration:<br />
<br />
* Run '''mplayer''' without {{ic|-vo vaapi}} switch.<br />
<br />
* Run '''smplayer''' remove {{ic|-vo vaapi}} from Options → Preferences → Advanced → Options for MPlayer → Options: -vo vaapi<br />
<br />
Plus for '''smplayer''' you may now safely turn screenshots on.<br />
<br />
=== KWin and composite ===<br />
<br />
You may use XRender if the rendering with OpenGL is slow. However, XRender might also be slower than OpenGL depending on your card.<br />
XRender also solves artefact issues in some cases, for instance when resizing Konsole.<br />
<br />
=== Black screen with complete lockups and/or hangs after reboot or startx ===<br />
<br />
Ensure you have added the '''nomodeset''' option to the kernel options line in your bootloader (see [[#Disable kernel mode setting]]).<br />
<br />
If you are using the legacy driver (catalyst-hd234k) and get a black screen, try downgrading xorg-server to 1.11 by using the [[#xorg111]] repository.<br />
<br />
==== Faulty ACPI hardware calls ====<br />
It is possible that fglrx doesn't cooperate well with the system's ACPI hardware calls, so it auto-disables itself and there is no screen output.<br />
<br />
If so, try to run this:<br />
<br />
$ aticonfig --acpi-services=off<br />
<br />
=== KDM disappears after logout ===<br />
<br />
If you are running Catalyst proprietary driver and you get a console (tty1) instead of the expected KDM greeting when you log out, you must instruct KDM to restart the X server after each logout:<br />
<br />
$ sudo nano /usr/share/config/kdm/kdmrc<br />
<br />
Uncomment the following line under the section titled {{ic|[X-:*-Core]}}:<br />
<br />
TerminateServer=True<br />
<br />
KDM should now appear when you log out of KDE.<br />
<br />
=== Direct Rendering does not work ===<br />
<br />
This problem may occur when using the proprietary '''Catalyst''' driver.<br />
<br />
{{Warning|This error would also appear if you have not '''rebooted''' your system after the installation or upgrade of catalyst. The system needs to load the fglrx.ko module in order to make the driver work.}}<br />
<br />
If you have problem with direct rendering, run:<br />
<br />
$ LIBGL_DEBUG=verbose glxinfo > /dev/null<br />
<br />
at the command prompt. At the very start of the output, it'll usually give you a nice error message saying why you do not have direct rendering.<br />
<br />
Common errors and their solutions, are:<br />
<br />
libGL error: XF86DRIQueryDirectRenderingCapable returned false<br />
<br />
* Ensure that you are loading the correct agp modules for your AGP chipset before you load the fglrx kernel module. To determine which agp modules you'll need, run {{ic|hwdetect --show-agp}}. Then open your {{ic|fglrx.conf}} file in {{ic|/etc/modules-load.d}} and add the agp module on a line '''before''' the fglrx line.<br />
<br />
libGL error: failed to open DRM: Operation not permitted<br />
libGL error: reverting to (slow) indirect rendering<br />
<br />
libGL: OpenDriver: trying /usr/lib/xorg/modules/dri//fglrx_dri.so<br />
libGL error: dlopen /usr/lib/xorg/modules/dri//fglrx_dri.so failed<br />
(/usr/lib/xorg/modules/dri//fglrx_dri.so: cannot open shared object file: No such file or directory)<br />
libGL error: unable to find driver: fglrx_dri.so<br />
<br />
* Something has not been installed correctly. If the paths in the error message are {{ic|/usr/X11R6/lib/modules/dri/fglrx_dri.so}}, then ensure you've logged completely out of your system, then back in. If you're using a graphical login manager (gdm, kdm, xdm), ensure that {{ic|/etc/profile}} is sourced every time you log in. This is usually accomplished by adding {{ic|source /etc/profile}} into {{ic|~/.xsession}} or {{ic|~/.xinitrc}}, but this may vary between login managers.<br />
<br />
* If the paths above in your error message ''are'' {{ic|/usr/lib/xorg/modules/dri/fglrx_dri.so}}, then something has not been correctly installed. Try reinstalling the {{ic|catalyst}} package.<br />
<br />
Errors such as:<br />
<br />
fglrx: libGL version undetermined - OpenGL module is using glapi fallback<br />
<br />
could be caused by having multiple versions of {{ic|libGL.so}} on your system. Run:<br />
<br />
$ sudo updatedb<br />
$ locate libGL.so<br />
<br />
This should return the following output:<br />
<br />
$ locate libGL.so<br />
/usr/lib/libGL.so<br />
/usr/lib/libGL.so.1<br />
/usr/lib/libGL.so.1.2<br />
<br />
These are the only three libGL.so files you should have on your system. If you have any more (e.g. {{ic|/usr/X11R6/lib/libGL.so.1.2}}), then remove them. This should fix your problem.<br />
<br />
You might not get any error to indicate that this is a problem. If you are using X11R7, make sure you do '''not''' have these files on your system:<br />
<br />
/usr/X11R6/lib/libGL.so.1.2<br />
/usr/X11R6/lib/libGL.so.1<br />
<br />
=== Hibernate/Sleep Issues ===<br />
<br />
==== Video fails to resume from suspend2ram ====<br />
<br />
ATI's proprietary Catalyst driver cannot resume from suspend if the framebuffer is enabled. To disable the framebuffer, add '''vga=0''' to your kernel options in for example, Grub Legacy's {{ic|/boot/grub/menu.lst}}:<br />
<br />
kernel /vmlinuz-linux root=/dev/sda3 resume=/dev/sda2 ro quiet '''vga=0'''<br />
<br />
To see where you need to add this with other bootloaders, see [[#Disable kernel mode setting]].<br />
<br />
=== System Freezes/Hard locks ===<br />
<br />
* The {{ic|radeonfb}} framebuffer drivers have been known in the past to cause problems of this nature. If your kernel has radeonfb support compiled in, you may want to try a different kernel and see if this helps.<br />
<br />
* If you experience system freezes when exiting your DE (shut down, suspend, switching to tty etc.) you probably forgot to deactivate KMS. (See [[#Disable kernel mode setting]])<br />
<br />
=== Hardware Conflicts ===<br />
<br />
Radeon cards used in conjunction with some versions of the nForce3 chipset (e.g. nForce 3 250Gb) won't have 3D acceleration. Currently the cause of this issue is unknown, but some sources indicate that it may be possible to get acceleration with this combination of hardware by booting Windows with the drivers from nVIDIA and then rebooting the system. This can be verified by issuing in a root console the following command:<br />
<br />
$ dmesg | grep agp<br />
<br />
If you get something similar to this (using an nForce3-based system):<br />
<br />
agpgart: Detected AGP bridge 0<br />
agpgart: Setting up Nforce3 AGP.<br />
agpgart: aperture base > 4G<br />
<br />
and also if issuing this command...<br />
<br />
$ tail -n 100 /var/log/Xorg.0.log | grep agp<br />
<br />
...gets something similar to:<br />
<br />
(EE) fglrx(0): [agp] unable to acquire AGP, error "xf86_ENODEV"<br />
<br />
Then you have this bug.<br />
<br />
Some sources indicate that in some situations, downgrading the motherboard BIOS may help, but this cannot be verified in all cases. Also, '''a bad BIOS downgrade can render your hardware useless, so beware.'''<br />
<br />
See [http://bugzilla.kernel.org/show_bug.cgi?id=6350/ this bugreport] for more information and a potential fix.<br />
<br />
=== Temporary hangs when playing video ===<br />
<br />
This problem may occur when using the proprietary Catalyst.<br />
<br />
If you experience temporary hangs lasting from a few seconds to several minutes occuring randomly during playback with mplayer, check /var/log/messages.log for output like:<br />
<br />
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160<br />
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160<br />
Nov 28 18:31:56 pandemonium [<f8bc628c>] ? ip_firegl_ioctl+0x1c/0x30 [fglrx]<br />
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160<br />
Nov 28 18:31:56 pandemonium [<c0197038>] ? vfs_ioctl+0x78/0x90<br />
Nov 28 18:31:56 pandemonium [<c01970b7>] ? do_vfs_ioctl+0x67/0x2f0<br />
Nov 28 18:31:56 pandemonium [<c01973a6>] ? sys_ioctl+0x66/0x70<br />
Nov 28 18:31:56 pandemonium [<c0103ef3>] ? sysenter_do_call+0x12/0x33<br />
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160<br />
Nov 28 18:31:56 pandemonium =======================<br />
<br />
Adding the nopat kernel option to your kernel options in your bootloader and rebooting fixed the problem at least for me. To see how to do this for different bootloaders, see [[#Disable kernel mode setting]].<br />
<br />
=== "aticonfig: No supported adapters detected" ===<br />
<br />
If when running<br />
<br />
# aticonfig --initial<br />
<br />
you get:<br />
<br />
aticonfig: No supported adaptaters detected<br />
<br />
But you do have an AMD GPU (or APU), it may still be possible to get Catalyst working by manually setting the device in your your {{ic|etc/X11/xorg.conf}} file or by copying an older working /etc/ati/control file (preferred - this also fixes the watermark issue).<br />
<br />
To get an older control file, download a previous version of fglrx from AMD and run it with "--extract driver" parameter. You'll find the control file in driver/common/etc/ati/control. Copy the extracted file over the system file and restart Xorg. You can try different versions of the file.<br />
<br />
To set your model in xorg.conf,edit the device section of {{ic|/etc/X11/xorg.conf}} to:<br />
<br />
Section "Device"<br />
Identifier "ATI radeon '''****'''"<br />
Driver "fglrx"<br />
EndSection<br />
<br />
Where ''****'' should be replaced with your device's marketing number (e.g. 6870 for the HD 6870 and 6310 for the E-350 APU).<br />
<br />
Xorg will start and it is possible to use {{ic|amdcccle}} instead of {{ic|aticonfig}}. There will be an "AMD Unsupported hardware" watermark.<br />
<br />
You can remove this watermark using the following script:<br />
<br />
#!/bin/sh<br />
DRIVER=/usr/lib/xorg/modules/drivers/fglrx_drv.so<br />
for x in $(objdump -d $DRIVER|awk '/call/&&/EnableLogo/{print "\\x"$2"\\x"$3"\\x"$4"\\x"$5"\\x"$6}'); do<br />
sed -i "s/$x/\x90\x90\x90\x90\x90/g" $DRIVER<br />
done<br />
<br />
and rebooting.<br />
<br />
=== WebGL support in Chromium ===<br />
<br />
Google has blacklisted Linux's Catalyst driver from supporting webGL in their Chromium/Chrome browsers.<br />
<br />
You can turn webGL on by editing {{ic|/usr/share/applications/chromium.desktop}} file and adding {{ic|--ignore-gpu-blacklist}} flag into the '''Exec''' line so it looks like this:<br />
<br />
Exec=chromium %U --ignore-gpu-blacklist<br />
<br />
You can also run chromium from console with the same {{ic|--ignore-gpu-blacklist}} flag:<br />
<br />
$ chromium --ignore-gpu-blacklist<br />
<br />
{{Warning|Catalyst does not support the GL_ARB_robustness extension, so it is possible that a malicious site could use WebGL to perform a DoS attack on your graphic card. For more info, read [http://www.h-online.com/security/news/item/WebGL-as-a-security-problem-1240567.html/ this].}}<br />
<br />
=== Laggs/freezes when watching flash videos via Adobe's flashplugin ===<br />
<br />
Edit {{ic|/etc/adobe/mms.cfg}} and make it look like this:<br />
<br />
#EnableLinuxHWVideoDecode=1<br />
OverrideGPUValidation=true<br />
<br />
If you are using KDE make sure that "Suspend desktop effects for fullscreen windows" is unchecked under System Settings->Workspace Appearance and Behaviour->Desktop Effects->Advanced.<br />
<br />
=== Laggs/slow windows movement in GNOME3 ===<br />
<br />
You can try this solution out, it's working for many people.<br />
<br />
Add this line into {{ic|~/.profile}} or into {{ic|/etc/profile}}:<br />
<br />
export CLUTTER_VBLANK=none<br />
<br />
Restart X server or reboot your system.<br />
<br />
=== Not using fullscreen resolution at 1920x1080 (underscanning) ===<br />
<br />
Using the amdcccle GUI you can select the display, go to adjustments, and set Underscan to 0% (aticonfig defaults to 15% underscan).<br />
<br />
Alternatively, you can use aticonfig to disable underscanning as well:<br />
<br />
aticonfig --set-pcs-val=MCIL,DigitalHDTVDefaultUnderscan,0<br />
<br />
For newer version (for example, 12.11), if Catalyst control center repeatedly fails to save the overscan setting, edit /etc/ati/amdpcsdb:<br />
<br />
TVEnableOverscan=V0<br />
<br />
Then logout and login.<br />
<br />
=== Dual Screen Setup: general problems with acceleration, OpenGL, compositing, performance ===<br />
Try to disable xinerama and xrandr12. Check out ie. this way:<br />
<br />
As root type those commands:<br />
aticonfig --initial<br />
aticonfig --set-pcs-str="DDX,EnableRandR12,FALSE"<br />
Then reboot your system. In /etc/X11/xorg.conf check that xinerama is disabled, if it's not disable it and reboot your system.<br />
<br />
Next run amdcccle and pick up amdcccle->display manager->multi-display->multidisplay desktop with display(s) 2.<br />
<br />
Reboot again and set up your display layout whatever you desire.<br />
<br />
=== Disabling VariBright Feature ===<br />
As root type command:<br />
aticonfig --set-pcs-u32=MCIL,PP_UserVariBrightEnable,0<br />
<br />
=== Hybrid/PowerXpress: turning off discrete GPU ===<br />
When you are using catalyst-total-pxp or catalyst-utils-pxp and you are switching to integrated GPU you may notice that discrete GPU is still working, consuming power and making your system's temperature higher. <br />
<br />
Sometimes ie. when your integrated GPU is intel's one you can use '''vgaswitcheroo''' to turn the discrete GPU off.<br />
Sometimes unfortunatelly, it's not working.<br />
<br />
Then you may check out [https://aur.archlinux.org/packages/?O=0&K=acpi_call acpi_call]. MrDeepPurple has prepared the script which he's using to perform 'turn off' task, he's calling script via systemd service while booting and resuming his system.<br />
Here's his script:<br />
#!/bin/sh<br />
libglx=$(/usr/lib/fglrx/switchlibglx query)<br />
modprobe acpi_call<br />
if [ "$libglx" = "intel" ]; then<br />
echo '\_SB.PCI0.PEG0.PEGP._OFF' > /proc/acpi/call<br />
fi</div>Lestohttps://wiki.archlinux.org/index.php?title=AMD_Catalyst&diff=255177AMD Catalyst2013-04-26T09:30:39Z<p>Lesto: replaced the (old and bad) forced unistallation with the (good) conflict resolved by pacman. also section doesn't seems to be old, so i removed the warning</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X Server]]<br />
[[es:ATI Catalyst]]<br />
[[fr:ATI#Catalyst]]<br />
[[it:AMD Catalyst]]<br />
[[zh-CN:AMD Catalyst]]<br />
{{Article summary start}}<br />
{{Article summary text|An overview of AMD's proprietary Linux "Catalyst" video card driver.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|ATI}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary heading|Resources}}<br />
{{Article summary link|cchtml.com - Unofficial Wiki for the ATI Linux Driver|http://wiki.cchtml.com/index.php/Main_Page}}<br />
{{Article summary link|Unofficial ATI Linux Driver Bugzilla|http://ati.cchtml.com/query.cgi}}<br />
{{Article summary end}}<br />
<br />
Owners of '''ATI/AMD''' video cards have a choice between AMD's proprietary driver ({{AUR|catalyst}}) and the [[ATI|open source driver]] ({{Pkg|xf86-video-ati}}). This article covers the proprietary driver.<br />
<br />
AMD's Linux driver package ''catalyst'' was previously named ''fglrx'' ('''F'''ire'''GL''' and '''R'''adeon '''X'''). Only the package name has changed, while the kernel module retains its original ''fglrx.ko'' filename. Therefore, any mention of fglrx below is specifically in reference to the ''kernel module'', '''not the package'''.<br />
<br />
As of October 2012, binary packages are being offered. Currently, packages are available in the [community] repository, but it's unknown what will happen when an Xorg upgrade will break the driver. In the past, Catalyst [https://www.archlinux.org/news/ati-catalyst-support-dropped/ has been dropped] from official Arch support because of dissatisfaction with the quality and speed of development. Also, a legacy driver for Radeon HD 2xxx 3xxx 4xxx is not available in [community] yet. For more information, see [https://bbs.archlinux.org/viewtopic.php?pid=1166052#p1166052/ this] this forum post and onwards.<br />
<br />
Compared to the open source driver, Catalyst performs worse in 2D graphics, but has a better support for 3D rendering. Supported devices are [[wikipedia:Radeon|ATI/AMD Radeon]] video cards with chipset R600 and newer (as of Catalyst 9.4). See [[wikipedia:Comparison_of_AMD_graphics_processing_units|this table]], or the Xorg [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names "Decoder ring",] to translate ''model'' names (X1900, HD4850) to/from ''chip'' names (R580, RV770 respectively).<br />
<br />
== Installation ==<br />
<br />
There are four ways of installing Catalyst on your system. One way is to use the official [community] repository, but this does not contain the legacy driver. Another one is to use Vi0L0's (Arch's unofficial Catalyst maintainer) repository. This repository does contain all the necessary packages. The third method you can use is the AUR; PKGBUILDs offered here are also made by Vi0L0 and are the same he uses to built packages for his repository. Lastly, you can install the driver directly from AMD.<br />
<br />
Before choosing the method you prefer, you will have to see which driver you need. Since Catalyst 12.4, AMD has separated its development for Radeon HD 2xxx, 3xxx and 4xxx cards into the '''legacy''' Catalyst driver. For Radeon HD 5xxx and newer, there is the regular Catalyst driver. Regardless of the driver you need, you will also need the Catalyst utilities.<br />
<br />
{{Note|After the instructions for every method of installing, you will find general instructions '''everyone''' has to perform, regardless of the method you used.}}<br />
<br />
=== Installing the driver ===<br />
==== Installing from the official repository ====<br />
{{Out of date|catalyst-utils has been removed from the official repositories. One has to install catalyst-utils from another source now; possibly {{AUR|catalyst-total}} from the AUR in combination with [[#Catalyst-hook]]}}<br />
<br />
This is the most simple and straightforward way, as it requires no unofficial repositories and because this package uses [[Dynamic Kernel Module Support|DKMS]] to automatically rebuilt the kernel modules when the kernel is upgraded. If this repository holds the packages you need, it is suggested you take this one. <br />
<br />
To install Catalyst, [[Pacman|install]] {{Pkg|catalyst-dkms}} and {{Pkg|catalyst-utils}} from the [[official repositories]].<br />
<br />
{{Note|If pacman asks you about removing '''libgl''' you can safely do so.}}<br />
<br />
{{Note|If you intend to use [[Dynamic Kernel Module Support|DKMS]] don't forget to install {{Pkg|linux-headers}} and enable the {{ic|dkms.service}} [[daemons|service]].}}<br />
<br />
If you are on 64-bit and also need 32-bit OpenGL support, install {{Pkg|lib32-catalyst-utils}} from the [[multilib]] repository.<br />
<br />
If you need OpenCL support, install {{Pkg|opencl-catalyst}}.<br />
<br />
Later on, a legacy driver will also be offered here.<br />
<br />
==== Installing from the unofficial repository ====<br />
If you need packages that currently aren't hosted by the official repository and don't fancy building the packages from the [[Arch User Repository|AUR]], this is the way to go. The repository is maintained by our unofficial Catalyst maintainer, Vi0L0. All packages are signed and I consider them safe to use. As you will see later on in this article, Vi0L0 is also responsible for many other packages that will help you get your system working with your ATI graphic cards. <br />
<br />
Vi0L0 has three different Catalyst repositories, each having different drivers:<br />
*[catalyst]; for the regular Catalyst driver needed by Radeon HD 5xxx and up, it contains the latest (stable or beta) Catalyst release;<br />
*[catalyst-stable]; for the regular Catalyst driver needed by Radeon HD 5xxx and up, with the latest stable driver;<br />
*[catalyst-hd234k]; for the legacy Catalyst driver needed by Radeon HD 2xxx, 3xxx and 4xxx cards. <br />
<br />
{{Warning|The Legacy driver does not support Xorg 1.13 or 1.14 for now. Support should be added by AMD in a century or two, but this could be sooner. Should you want to use this driver, see [[#Xorg repositories]] for instructions on how to roll back to or hold back Xorg 1.12.}}<br />
<br />
To enable one of these, you will have to edit {{ic|/etc/pacman.conf}} and add the repository of choice's information '''above all other repositories''' in {{ic|/etc/pacman.conf}}.<br />
<br />
*For [catalyst], add:<br />
<br />
[catalyst]<br />
<nowiki>Server = http://catalyst.wirephire.com/repo/catalyst/$arch</nowiki><br />
<br />
*For [catalyst-stable], add:<br />
<br />
[catalyst-stable]<br />
<nowiki>Server = http://catalyst.wirephire.com/repo/catalyst/$arch</nowiki><br />
<br />
*For [catalyst-hd234k], add:<br />
<br />
[catalyst-hd234k]<br />
<nowiki>Server = http://catalyst.wirephire.com/repo/catalyst-hd234k/$arch</nowiki><br />
<br />
You must also [[User:Vi0L0|add Vi0L0's GPG key]] so that pacman trusts the repositories.<br />
<br />
# pacman-key --keyserver pgp.mit.edu --recv-keys 0xabed422d653c3094<br />
# pacman-key --lsign-key 0xabed422d653c3094<br />
<br />
Once you have done this, update pacman's database and install the packages:<br />
<br />
# pacman -Syu<br />
# pacman -S catalyst catalyst-utils<br />
<br />
{{Note|If pacman asks you about removing '''libgl''' you can safely do so.}}<br />
<br />
{{Warning|Catalyst from Vi0L0's repository is compiled against one kernel and one kernel only. For Vi0L0, it's getting more and more difficult to keep up with kernel's pace and as such, we have seen a lot of users asking for what to do in the forums. Often, the solution is to a) wait for Vi0L0 to rebuilt the Catalyst package against those newer versions, b) do so yourself or c) hold back the Linux kernel update. The easiest solution is to do so yourself, not manually, but by using Vi0L0's excellent [[#Catalyst-hook]].}}<br />
<br />
If you are on 64-bit and also need 32-bit OpenGL support:<br />
<br />
# pacman -S lib32-catalyst-utils<br />
<br />
Repositories also contain other packages, that can ''replace'' the catalyst-hook package:<br />
<br />
* '''catalyst-generator'''; this package is able to generate fglrx modules packed into pacman compliant packages - most secure and KISS-compatible package in this side-note, although it has to be operated manually. It's described in [[#Catalyst-generator]]<br />
* '''catalyst-hook'''; a systemd service which will automatically update the fglrx module whilst the system shuts down or reboots. It's described in [[#Catalyst-hook]]<br />
<br />
You will find more details about those packages in [[#Tools| Tools section]].<br />
Lastly, both repositories also contain the '''xvba-video''' package, which enables video acceleration, described in [[#Video acceleration]], the '''AMDOverdriveCtrl''' package, which is a GUI to control over- and underclocking, also described in [[#GPU/Mem frequency, Temperature, Fan speed, Overclocking utilities]], and a pack of tools for '''OpenCL/OpenGL developers''', described in [[#OpenCL_and_OpenGL_development]]<br />
<br />
==== Installing from the AUR ====<br />
The last way to install Catalyst is from the [[Arch User Repository|AUR]]. If you want to built the packages specifically for your computer, this is your way to go. Note that this is also the most tedious way to install Catalyst; it requires the most work and also requires manual updates upon every kernel update.<br />
<br />
{{Warning|If you install the Catalyst package from the AUR, you will have to rebuild Catalyst every time the kernel is updated. Otherwise X '''will''' fail to start.}}<br />
{{Warning|The Legacy driver does not support Xorg 1.13 for now. Support should be added by AMD in a century or two, but this could be sooner. Should you want to use this driver, see [[#Xorg repositories]] for instructions on how to roll back to or hold back Xorg 1.12.}}<br />
<br />
All packages mentioned above in Vi0L0's unofficial repository are also available on the [[Arch User Repository|AUR]]:<br />
* {{AUR|Catalyst}};<br />
* {{AUR|Catalyst-utils}};<br />
* {{AUR|Lib32-catalyst-utils}};<br />
* {{AUR|Catalyst-generator}};<br />
* {{AUR|Catalyst-hook}};<br />
* {{AUR|Catalyst-daemon}}.<br />
<br />
The AUR also holds some packages that are '''not''' found in any of the repositories. These packages contain the so-called ''Catalyst-total'' packages and the beta versions:<br />
* {{AUR|Catalyst-total-hd234k}};<br />
* {{AUR|Catalyst-total}};<br />
* {{AUR|Catalyst-test}};<br />
* {{AUR|Lib32-catalyst-test}};<br />
* {{AUR|Catalyst-total-pxp}};<br />
<br />
The ''Catalyst-total'' packages are made to make the lives of AUR users easier. It builds the driver, the kernel utilities and the 32 bit kernel utilities. It also builds the Catalyst-hook package, which is explained above.<br />
<br />
''Catalyst-total-pxp'' builds Catalyst with experimental powerXpress support.<br />
<br />
For more information on building from the AUR, read [[#Installing_from_AUR| Installing from AUR]].<br />
<br />
==== Installing directly from AMD ====<br />
{{Warning|Using the installer from ati.com/amd.com is '''not''' recommended! It may cause file conflicts and X failures and you will miss Arch-specific fixes. You '''must''' be familiar with booting to the command-line if you wish to attempt this.}}<br />
<br />
{{Note|If you have attempted a manual install from the official installer and cannot recover your desktop:<br />
# /usr/share/ati/fglrx-uninstall.sh<br />
}}<br />
<br />
1.) Download the installer from AMD or elsewhere (whereas *-* will be the version): {{ic|ati-driver-installer-*-*-x86.x86_64.run}}<br />
<br />
2.) Make sure it's executable: {{ic|# chmod +x ati-driver*}}<br />
<br />
3.) Ensure you're using a basic video driver like vesa and remove conflicting drivers (i.e. {{ic|xf86-video-ati}}) with pacman.<br />
<br />
4.) Symlink {{ic|/usr/src/linux}} to {{ic|<nowiki>/usr/src/{kernelsource}</nowiki>}}. 64-bit users also symlink{{ic|/usr/lib64}} to {{ic|/usr/lib}}.<br />
<br />
5.) Be sure to have your build environment setup: {{ic|# pacman -Syu base-devel linux-headers}}<br />
<br />
6.) Now run {{ic|# ./ati-driver-installer-*-*-x86.86_64.run}} (Files will extract to a temporary folder and scripts will run...)<br />
<br />
Assuming nothing went horribly wrong...<br />
<br />
7.) Check {{ic|/usr/share/ati/fglrx-install.log}} for issues. There should also be a {{ic|/lib/modules/fglrx/make.{ker_version}.log}}.<br />
<br />
{{Note|If you modify the make scripts, save to a different filename. Otherwise uninstall will not complete successfully.}}<br />
<br />
=== Configuring the driver ===<br />
After you have installed the driver via your chosen method, you will have to configure X to work with Catalyst. Also, you will have to make sure the module gets loaded at boot. Also, one should disable [[KMS|kernel mode setting]].<br />
<br />
==== Configuring X ====<br />
To configure X, you will have to create an xorg.conf file. Catalyst provides its own {{ic|aticonfig}} tool to create and/or modify this file.<br />
It also can configure virtually every aspect of the card for it also accesses the {{ic|/etc/ati/amdpcsdb}} file. For a complete list of {{ic|aticonfig}} options, run:<br />
<br />
# aticonfig --help | less<br />
<br />
{{Warning|Use the --output option before committing to /etc/X11 as an xorg.conf file will override anything in /etc/X11/xorg.conf.d}}<br />
<br />
{{Note|If you want to adhere to the new xorg.conf.d: Append your {{ic|aticonfig}} string with ''--output'' so that you can adapt the Device section to {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}. The drawback of this is that many {{ic|aticonfig}} options rely on an xorg.conf, and thus will be unavailable.}}<br />
<br />
Now, to configure Catalyst. If you have only one monitor, run this:<br />
<br />
# aticonfig --initial<br />
<br />
{{Note | If you have PowerXpress problem you should probably install {{ic|catalyst-utils-pxp}}}}<br />
<br />
However, if you have two monitors and want to use both of them, you can run the command stated below. Note that this will generate a dual head configuration with the second screen located above the first screen.<br />
<br />
# aticonfig --initial=dual-head --screen-layout=above<br />
<br />
{{Note|See [[#Double Screen (Dual Head / Dual Screen / Xinerama)]] for more information on setting up dual monitors.}}<br />
<br />
You can compare the generated file to one of the [[Xorg#Sample_xorg.conf_Files|Sample Xorg.conf]] examples listed on the Xorg page.<br />
<br />
Although the current Xorg versions auto-detect most options when started, you may want to specify some in case the defaults change between versions.<br />
<br />
Here is an example (with notes) '''for reference'''. Entries with '#' should be required, add entries with '##' as needed:<br />
<br />
{{bc|1=<br />
Section "ServerLayout"<br />
Identifier "Arch"<br />
Screen 0 "Screen0" 0 0 # 0's are necessary.<br />
EndSection<br />
Section "Module"<br />
Load ...<br />
...<br />
EndSection<br />
Section "Monitor"<br />
Identifier "Monitor0"<br />
...<br />
EndSection<br />
Section "Device"<br />
Identifier "Card0"<br />
Driver "fglrx" # Essential.<br />
BusID "PCI:1:0:0" # Recommended if autodetect fails.<br />
Option "OpenGLOverlay" "0" ##<br />
Option "XAANoOffscreenPixmaps" "false" ##<br />
EndSection<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Card0"<br />
Monitor "Monitor0"<br />
DefaultDepth 24<br />
SubSection "Display"<br />
Viewport 0 0<br />
Depth 24 # Should not change from '24'<br />
Modes "1280x1024" "2048x1536" ## 1st value=default resolution, 2nd=maximum.<br />
Virtual 1664 1200 ## (x+64, y) to workaround potential OGL rect. artifacts/<br />
EndSubSection ## fixed in Catalyst 9.8<br />
EndSection<br />
Section "DRI"<br />
Mode 0666 # May help enable direct rendering.<br />
EndSection<br />
}}<br />
<br />
{{Note|With '''every''' Catalyst update you should remove '''amdpcsdb''' file in this way: kill X, remove {{ic|/etc/ati/amdpcsdb}}, start X and then run {{ic|amdcccle}} - otherwise the version of Catalyst may display wrongly in amdcccle.}}<br />
<br />
''If you need more information on Catalyst, visit [https://bbs.archlinux.org/viewtopic.php?id=57084 this thread].''<br />
<br />
==== Loading the module at boot ====<br />
{{Note|Users of the [community] package do not have to do this, it's automatically done for them when installing the package.}}<br />
We have to blacklist the {{ic|radeon}} module to prevent it from auto-loading. To do so, blacklist ''radeon'' in {{ic|/etc/modprobe.d/modprobe.conf}}. Also, make sure that it is not loaded by any file under {{ic|/etc/modules-load.d/}}. For more information, see [[Modprobe|blacklisting in this article]]. <br />
<br />
Then we will have to make sure that the {{ic|fglrx}} module gets auto-loaded. Either add {{ic|fglrx}} on a new line of an existing module file located under {{ic|/etc/modules-load.d/}}, or create a new file and add {{ic|fglrx}}.<br />
<br />
==== Disable kernel mode setting ====<br />
<br />
Disabling kernel mode setting is important, as the driver doesn't take advantage of [[KMS]] yet. If you do not deactivate KMS, your system might freeze when trying to switch to a tty or even when shutting down via your DE.<br />
<br />
For [[GRUB Legacy|GRUB Legacy]], edit {{ic|menu.lst}} by adding {{ic|nomodeset}} to the kernel parameters. For example:<br />
<br />
kernel /boot/vmlinuz-linux root=/dev/sda1 ro '''nomodeset'''<br />
<br />
For [[GRUB2|GRUB 2]], edit {{ic|/etc/default/grub}} and add ''nomodeset'' to the kernel parameter options, e.g.<br />
<br />
GRUB_CMDLINE_LINUX="nomodeset"<br />
<br />
Then run, as root;<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
For [[Syslinux|Syslinux]], edit {{ic|/boot/syslinux/syslinux.cfg}} and add ''nomodeset'' to the {{ic|APPEND}} line, e.g.:<br />
<br />
APPEND root=/dev/sda2 ro ''nomodeset''<br />
<br />
==== Checking operation ====<br />
<br />
Assuming that a reboot to your login was successful, you can check if fglrx is running properly with the following commands:<br />
<br />
$ lsmod | grep fglrx<br />
$ fglrxinfo<br />
<br />
If you get output, it works. Finally, run X with {{ic|startx}} or by using GDM/KDM and verify that direct rendering is enabled by running the following command in a terminal:<br />
<br />
$ glxinfo | grep "direct rendering"<br />
<br />
If it says "direct rendering: yes" then you're good to go! If the glxinfo command is not found install the {{Pkg|mesa-demos}} package.<br />
<br />
{{Note|You can also use:<br />
$ fgl_glxgears<br />
as the fglrx alternative test to glxgears.<br />
}}<br />
<br />
{{Warning|In recent versions of Xorg, the paths of libs are changed. So, sometimes {{ic|libGL.so}} cannot be correctly loaded even if it's installed. Check this if your GL is not working. Please read "Troubleshooting" section for details.}}<br />
<br />
If you have trouble, see [[#Troubleshooting]].<br />
<br />
=== Custom Kernels ===<br />
<br />
To install catalyst for a custom kernel, you'll need to build your own {{ic|catalyst-$kernel}} package.<br />
<br />
If you are at all uncomfortable or inexperienced with making packages, read up the [[ABS]] wiki page first so things go smoothly.<br />
<br />
# Obtain the {{ic|PKGBUILD}} and {{ic|catalyst.install}} files from [[AUR|Catalyst]].<br />
# Editing the PKGBUILD. Two changes need to be made here:<br />
## Change {{ic|1=pkgname=catalyst}} to {{ic|1=pkgname=catalyst-$kernel_name}}, where $kernel_name is whatever you want (e.g. custom, mm, themostawesomekernelever).<br />
## Change the dependency of {{ic|linux}} to {{ic|$kernel_name}}.<br />
# Build your package and install; run {{ic|makepkg -i}} or {{ic|makepkg}} followed by {{ic|pacman -U pkgname.pkg.tar.gz}}<br />
<br />
{{Note|If you run multiple kernels, you have to install the Catalyst-utils packages for all kernels. They won't conflict with one another.}}<br />
<br />
{{Note|Catalyst-generator is able to build catalyst-{kernver} packages for you so you do not actually need to perform all those steps manually. For more information, see [[#Tools| Tools section]].}}<br />
<br />
=== PowerXpress support ===<br />
<br />
PowerXpress technology allows switching notebooks with dual-graphic capability from integrated graphics (IGP) to discrete graphics either to increase battery life or to achieve better 3D rendering capabilities.<br />
<br />
To use such functionality on Arch you will have to:<br />
* Get and build {{AUR|catalyst-total-pxp}} package from the [[Arch User Repository|AUR]], or<br />
* Install '''catalyst-utils-pxp''' package from the [catalyst] repository (plus additional lib32-catalyst-utils-pxp, if needed).<br />
<br />
To perform a switch into Intel's IGP you will also have to install the '''mesa-libgl''' package and Intel's drivers: '''xf86-video-intel''' and '''intel-dri'''.<br />
<br />
{{Note|'''With the latest version of Catalyst, version 13.1 (not Catalyst legacy) ChrisXY was able to work on the newest xorg-server (version 1.13.1), mesa 9.0.1 and xf86-video-intel 2.20.18'''.<br />
<br />
On any version of Catalyst below 13.1 (and all versions of Catalyst legacy) there are some problems with the new Intel drivers and the '''last noted working version of xf86-video-intel is 2.20.2-2''', so you will probably have to downgrade from the latest version that you have gotten from Arch's repositories (although we recommend to test the newest one before downgrading - there's always some possibility that it will work).<br />
<br />
'''xf86-video-intel 2.20.2-2''' works only with xorg-server 1.12 and so it is a part of the '''xorg112 repository'''. If you want to use it you will have to downgrade xorg-server as well. For information on this, see [[#Xorg repositories]].}}<br />
<br />
Now you can switch between the integrated and the discrete GPU, using these commands:<br />
<br />
{{bc|1=<br />
# aticonfig --px-igpu #for integrated GPU<br />
# aticonfig --px-dgpu #for discrete GPU<br />
}}<br />
<br />
Just remember that fglrx needs /etc/X11/xorg.conf configured for AMD's card with 'fglrx' inside.<br />
<br />
You can also use the '''pxp_switch_catalyst''' switching script that will perform some additional usefull operations:<br />
* Switching xorg.conf - it will rename xorg.conf into xorg.conf.cat (if there's fglrx inside) or xorg.conf.oth (if there's intel inside) and then it will create a symlink to xorg.conf, depending on what you chose.<br />
* Running {{ic|aticonfig --px-Xgpu}}.<br />
* Running {{ic|switchlibGL}}.<br />
* Adding/removing fglrx into/from {{ic|/etc/modules-load.d/catalyst.conf}}.<br />
<br />
Usage:<br />
{{bc|1=<br />
# pxp_switch_catalyst amd<br />
# pxp_switch_catalyst intel<br />
}}<br />
<br />
If you have got problems when you try to run X on Intel's driver you may try to force '''"UXA" acceleration'''; just make sure that your xorg.conf for Intel's GPU got '''Option "AccelMethod" "uxa"''', like here:<br />
{{bc|1=<br />
Section "Device"<br />
Identifier "Intel Graphics"<br />
Driver "intel"<br />
#Option "AccelMethod" "sna"<br />
Option "AccelMethod" "uxa"<br />
#Option "AccelMethod" "xaa"<br />
EndSection<br />
}}<br />
<br />
==== Running two X servers (one using the Intel driver, another one using fglrx) simultaneously ====<br />
Because fglrx is crash-prone (regarding PowerXpress), it could be a good idea to use the Intel driver in the main X server and have a secondary X server using fglrx when 3D acceleration is needed. However, simply switching to the discrete GPU from the integrated GPU using {{ic|aticonfig}} or {{ic|amdcccle}} will cause all sorts of weird bugs when starting the second X.<br />
<br />
To run two X servers at the same time (each using different drivers), you should firstly set up a fully working X with Catalyst and then move its {{ic|xorg.conf}} to a temporary place (for example, {{ic|/etc/X11/xorg.conf.fglrx}}. The next time X is started, it will use the Intel driver by default instead of fglrx.<br />
<br />
To start a second X server using fglrx, simply move {{ic|xorg.conf}} back to the proper place ({{ic|/etc/X11/xorg.conf}}) before starting X. This method even allows you to switch between running X sessions. When you are done using fglrx, move {{ic|xorg.conf}} somewhere else again.<br />
<br />
The only disadvantage of this method is not having 3D acceleration using the Intel driver. 2D acceleration, however, is fully functional. Other than that, this will provide us with a completely stable desktop.<br />
<br />
== Xorg repositories ==<br />
Catalyst is notorious for its slow update process. As such, it is common that a new Xorg version is pushed down from upstream that will break compatibility for Catalyst. This means that Catalyst users either have to hold the Xorg packages from updating, or use a backported repository that only contains the Xorg packages that should be hold back. Vi0L0 has stepped in to fulfil this task and provides several backported repositories. <br />
<br />
If you want to use pacman to hold back packages from updating, see [[pacman|skip package from being upgraded]]. Packages you should hold back, are:<br />
*xorg-server-*<br />
*xf86-input-*<br />
*xf86-video-*<br />
<br />
If you want to use the backported repositories, you have to edit {{ic|/etc/pacman.conf}} and add the information of the repository '''above all other repositories''', even above your Catalyst repository, should you use one.<br />
<br />
===[xorg113]===<br />
Catalyst doesn't support xorg-server 1.14.<br />
<br />
[xorg113]<br />
<nowiki>Server = http://catalyst.wirephire.com/repo/xorg113/$arch</nowiki><br />
<br />
===[xorg112]===<br />
Catalyst < 12.10 doesn't support xorg-server 1.13.<br />
<br />
[xorg112]<br />
<nowiki>Server = http://catalyst.wirephire.com/repo/xorg112/$arch</nowiki><br />
<br />
===[xorg111]===<br />
Catalyst < 12.6 doesn't support xorg-server 1.12.<br />
<br />
[xorg111]<br />
<nowiki>Server = http://catalyst.wirephire.com/repo/xorg111/$arch</nowiki><br />
<br />
== Tools ==<br />
<br />
=== Catalyst-hook ===<br />
[https://aur.archlinux.org/packages.php?ID=40834 Catalyst-hook] is a [[systemd|systemd]] service that will automatically rebuild the fglrx modules while the system shuts down or reboots, but only if it's necessary (e.g. after an update).<br />
<br />
Before using this package make sure that both the {{Grp|base-devel}} group and the {{Pkg|linux-headers}} package (the one specific to the kernel you use) are installed:<br />
<br />
# pacman -S base-devel linux-headers<br />
<br />
To enable the automatic update, enable the {{ic|catalyst-hook.service}}:<br />
<br />
# systemctl enable catalyst-hook<br />
# systemctl start catalyst-hook<br />
<br />
You can also use this package to build the fglrx module manually. Simply run the catalyst_build_module script after the kernel has been updated:<br />
<br />
# catalyst_build_module all<br />
<br />
<br />
'''A few more technical details:'''<br />
<br />
The {{ic|catalyst-hook.service}} is stopping the systemd "river" and is forcing systemd to wait until catalyst-hook finishes its job.<br />
<br />
The {{ic|catalyst-hook.service}} is calling the {{ic|catalyst_build_module check}} function which checks if fglrx rebuilds are really necessary.<br />
<br />
The {{ic|check}} function is checking if the fglrx module exists, if it:<br />
<br />
*doesn't exist, it will build it;<br />
<br />
*does exist, it will compare the two values to be sure that a rebuild is necessary.<br />
<br />
These values are md5sums of the {{ic|/usr/lib/modules/<kernel_version>/build/Module.symvers}} file (because I, Vi0L0, noticed that this file is unique and different for every kernel's release). The first value is the md5sum of the existing {{ic|Module.symvers}} file. The second value is the md5sum of the {{ic|Module.symvers}} file which existed in a moment of the fglrx module creation. This value was compiled into the fglrx module by a catalyst_build_module script.<br />
<br />
If the values are different, it will compile the new fglrx module.<br />
<br />
The check is checking the whole {{ic|/usr/lib/modules/}} directory and building modules for all of the installed kernels if it's necessary. If the build or rebuild isn't necessary, the whole process takes only some milliseconds to complete before it gets killed by systemd.<br />
<br />
'''This is basically the same as catalyst-dkms from [community]... not''' - just to clarify things:<br />
<br />
- catalyst-hook does not need dkms to work, dkms is far more complex than mkinitcpio's hook or systemd's service;<br />
<br />
- catalyst-hook should be safer - because dkms is building modules at system's startup, so right when also X/DM is trying to start<br />
<br />
=== Catalyst-generator ===<br />
<br />
[https://aur.archlinux.org/packages.php?ID=41040 Catalyst-generator] is a package that is able to build and install the fglrx module packed into pacman compliant catalyst-${kernver} packages. The basic difference from Catalyst-hook is that you will have to trigger this command manually, whereas Catalyst-hook will do this automatically at boot when a new kernel got installed.<br />
<br />
It creates catalyst-${kernver} packages using [[makepkg]] and installs them with [[pacman]]. ''${kernver}'' is the kernel version for which each package was built (e.g. catalyst-2.6.35-ARCH package was built for 2.6.35-ARCH kernel).<br />
<br />
To build and install catalyst-${kernver} package for a currently booted kernel as an unprivileged user (non-root; safer way), use {{ic|catalyst_build_module}}. You will be asked for your root password to proceed to package installation.<br />
<br />
A short summary on how to use this package:<br />
<br />
# As root: {{ic|catalyst_build_module remove}}. This will remove all unused {{ic|catalyst-{kernver} }} packages.<br />
# As unprivileged user: {{ic|catalyst_build_module ${kernver}}}, where ${kernver} is the version of the kernel to which you just updated. For example: {{ic|catalyst_build_module 2.6.36-ARCH}}. You can also build catalyst-${kernver} for all installed kernels by using {{ic|catalyst_build_module all}}.<br />
# If you want to remove {{ic|catalyst-generator}}, it's best to run this as root before removing catalyst-generator: {{ic|catalyst_build_module remove_all}}. '''This will remove all catalyst-{kernver} packages from the system.'''<br />
<br />
Catalyst-generator isn't able to remove all those catalyst-{kernver} packages automatically while being removed because there can not be more than one instance of pacman running. If you forget to run {{ic|catalyst_build_module remove_all}} before using {{ic|pacman -R catalyst-generator}} catalyst-generator will tell you which catalyst-{kernver} packages you will have to remove manually after removing catalyst-generator itself.<br />
<br />
Catalyst-generator is most safe and KISS-friendly solution because:<br />
<br />
- you can use unprivileged user to build the package;<br />
<br />
- it's building modules in fakeroot environment;<br />
<br />
- it's not throwing files here and there, package manager always knows where they are;<br />
<br />
... all you have to do is to remember to use it<br />
<br />
{{Note|If you see those warnings:<br />
<br />
'''WARNING:''' Package contains reference to $srcdir<br />
<br />
'''WARNING:''' '.pkg' is not a valid archive extension.<br />
<br />
while building catalyst-{kernver} package, do not be concerned, it's normal.}}<br />
<br />
<br />
=== OpenCL and OpenGL development ===<br />
<br />
Since years AMD is working on tools for OpenCL and OpenGL developement.<br />
<br />
Now under the banner of '''"Heterogeneous Computing"''' AMD is providing even more of them, fortunately most of their computing tools are available also for Linux.<br />
<br />
In the AUR and the [catalyst] repositories you will find packages that represent the most important work from AMD, namely; [https://aur.archlinux.org/packages/amdapp-aparapi amdapp-aparapi], [https://aur.archlinux.org/packages/amdapp-sdk amdapp-sdk] and [https://aur.archlinux.org/packages/amdapp-codexl amdapp-codexl].<br />
<br />
APP shortcut stands for Accelerated Parallel Processing.<br />
<br />
==== amdapp-aparapi ====<br />
AMD's Aparapi is an API for expressing data parallel workloads in Java and a runtime component capable of converting the Java bytecode of compatible workloads into OpenCL so that it can be executed on a variety of GPU devices. If Aparapi can’t execute on the GPU, it will execute in a Java thread pool.<br />
<br />
You can find more information about Aparapi [http://developer.amd.com/tools/heterogeneous-computing/aparapi/ here].<br />
<br />
==== amdapp-sdk (formerly known as amdstream) ====<br />
The AMD APP Software Development Kit (SDK) is a complete development platform created by AMD to allow you to quickly and easily develop applications accelerated by AMD APP technology. The SDK provides samples, documentation and other materials to quickly get you started leveraging accelerated compute using OpenCL, Bolt, or C++ AMP in your C/C++ application.<br />
<br />
Since version 2.8 amdapp-sdk is providing aparapiUtil as well as aparapi's samples. A package is available on the [catalyst] repository; it depends on the amdapp-aparapi package. The AUR's package will let you decide whether you want aparapi's additions or not.<br />
<br />
Version 2.8 does not provide Profiler functionality, it has been moved to CodeXL.<br />
<br />
You can find more information about AMD APP SDK [http://developer.amd.com/tools/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/ here].<br />
<br />
==== amdapp-codexl ====<br />
CodeXL is an OpenCL and OpenGL Debugger and Profiler, with a static OpenCL kernel analyzer. It's a GUI application written atop of the well known [https://aur.archlinux.org/packages/gdebugger gDEBugger] and is available only for x86_64 systems.<br />
<br />
You can find more informations about CodeXL [http://developer.amd.com/tools/heterogeneous-computing/codexl/ here].<br />
<br />
== Features ==<br />
<br />
=== Tear Free Rendering ===<br />
<br />
Presented in '''Catalyst 11.1''', the ''Tear Free Desktop'' feature reduces tearing in 2D, 3D and video applications. This likely adds triple-buffering and v-sync. Do note that it requires additional GPU processing.<br />
<br />
To enable 'Tear Free Desktop' run {{ic|amdcccle}} and go to: {{ic|Display Options}} → {{ic|Tear Free}}.<br />
<br />
Or as root run:<br />
<br />
# aticonfig --set-pcs-u32=DDX,EnableTearFreeDesktop,1<br />
<br />
To disable, again use {{ic|amdcccle}} or run as root:<br />
<br />
# aticonfig --del-pcs-key=DDX,EnableTearFreeDesktop<br />
<br />
=== Video acceleration ===<br />
<br />
'''[[wikipedia:Video_Acceleration_API|Video Acceleration API]] (VA API)''' is an open source software library (libVA) and API specification which provides GPU acceleration for video processing on Linux/UNIX based operating systems. The process works by enabling hardware accelerated video decode at various entry-points (VLD, IDCT, Motion Compensation, deblocking) for common encoding standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/WMV3).<br />
<br />
VA-API gained a proprietary backend (in November 2009) called {{AUR|xvba-video}}, that allows VA-API programmed applications to take advantage of AMD Radeons UVD2 chipsets via the [[wikipedia:XvBA|XvBA (X-Video Bitstream Acceleration API designed by AMD)]] library.<br />
<br />
XvBA support and xvba-video is still under development, however it is '''working very well in most cases'''. Build the {{AUR|xvba-video}} package from AUR or soon, install it from [community] and install {{Pkg|mplayer-vaapi}} and {{Pkg|libva}}. Then just set your video player to use vaapi:gl as video output:<br />
<br />
$ mplayer -vo vaapi:gl movie.avi<br />
<br />
These options can be added to your mplayer configuration file, see [[MPlayer]].<br />
<br />
For '''smplayer''':<br />
<br />
Options → Preferences → General → Video (tab) → Output driver: User Defined : vaapi:gl<br />
Options → Preferences → General → Video (tab) → Double buffering '''on'''<br />
Options → Preferences → General → General → Screenshots → Turn screenshots '''off'''<br />
Options → Preferences → Performance → Threads for decoding: '''1''' (to turn off -lavdopts parameter)<br />
<br />
{{Note|If Tear Free Desktop is enabled it's better to use:<br />
Options -> Preferences -> General -> Video (tab) -> Output driver: vaapi<br />
If Video Output '''vaapi:gl''' isn't working - please check:<br />
'''vaapi''', '''vaapi:gl2''' or simply '''xv(0 - AMD Radeon [[wikipedia:Avivo|AVIVO Video]])'''.<br />
}}<br />
<br />
For '''VLC''':<br />
<br />
Tools → Preferences → Input & Codecs → Use GPU accelerated decoding<br />
<br />
It might help to enable v-sync in '''amdcccle''':<br />
<br />
3D → More Settings → Wait for vertical refresh = Always On<br />
<br />
{{Note|If you are using '''Compiz/KWin''', the only way to '''avoid video flickering''' is to watch videos in '''full-screen''' and only when '''Unredirect Fullscreen is off'''.<br />
<br />
In '''compiz''' you need to set '''Redirected Direct Rendering''' in General Options of ccsm. If it is still flickering, try to disable this option in CCSM. It's off by default in '''KWin''', but if you see flickering try to turn "Suspend desktop effects for fullscreen windows" on or off in System Settings → Desktop Effects → Advanced.}}<br />
<br />
=== GPU/Mem frequency, Temperature, Fan speed, Overclocking utilities ===<br />
<br />
You can get the GPU/Mem clocks with: {{ic|$ aticonfig --od-getclocks}}.<br />
<br />
You can get the fan speed with: {{ic|$ aticonfig --pplib-cmd "get fanspeed 0"}}<br />
<br />
You can get the temperature with: {{ic|$ aticonfig --odgt}}<br />
<br />
To set the fanspeed with: {{ic|$ aticonfig --pplib-cmd "set fanspeed 0 50"}} Query Index: 50, Speed in percent<br />
<br />
To overclock and/or underclock it's easier to use a GUI, like '''ATi Overclocking Utility''', which is very simple and requires qt to work. It might be out of date/old, but you can get it [http://kde-apps.org/content/show.php/ATI+Overclock?content=47796 here].<br />
<br />
Another, more complex utility to perform such operations is '''AMDOverdriveCtrl'''. Its homepage is [http://sourceforge.net/projects/amdovdrvctrl here] and you can build an Arch package from [https://aur.archlinux.org/packages.php?ID=45298 AUR] or from Vi0L0's unofficial repositories.<br />
<br />
=== Double Screen (Dual Head / Dual Screen / Xinerama) ===<br />
<br />
==== Introduction ====<br />
<br />
{{Warning| you should know that there isn't one specific solution because each setup differs and needs its own configuration. That's why you will have to adapt the steps below to your own needs. It is possible that you have to try more than once. '''Therefore, you should save your working {{ic|/etc/X11/xorg.conf}} before you start modifying and you must be able to recover from a command-line environment.'''}}<br />
<br />
* In this chapter, we will describe the installation of two different-sized screens on only one graphics card with two different output ports (DVI + HDMI) using a "BIG Desktop" configuration.<br />
<br />
* The Xinerama solution has some inconveniences, especially because it is not compatible with XrandR. For that very reason, you should not use this solution, because XrandR is a must for our later configuration.<br />
<br />
* The Dual Head solution would allow you to have 2 different sessions (one for each screen). It could be what you want, but you will not be able to move windows from one screen to another. If you have only one screen, you will have to define the mouse inside your Xorg session for each of the two sessions inside the Server Layout section.<br />
<br />
[http://support.amd.com/us/kbarticles/Pages/1105-HowCanIConfigureMultip.aspx ATI Documentation]<br />
<br />
==== ATI Catalyst Control Center ====<br />
<br />
The GUI tool shipped by ATI is very useful and we will try to use it as much as we can. To launch it, open a terminal and use the following command:<br />
<br />
$ {kdesu/gksu} amdcccle<br />
<br />
{{Warning|Do '''not''' use sudo directly with a GUI. Sudo gives you admin rights with user account information. Instead, use ''gksu'' (GNOME) or ''kdesu'' (KDE).}}<br />
<br />
==== Installation ====<br />
<br />
Before we start, make sure that your hardware is plugged in correctly, that power is on and that you know your hardware characteristics (screen dimensions, sizes, refreshment rates, etc.) Normally, both screens are recognized during boot time but not necessarily identified properly, especially if you are not using any Xorg base configuration file ({{ic|/etc/X11/xorg.conf}}) but relying on the hot-plugging feature.<br />
<br />
The first step is to make sure that you screens will be recognized by your DE and by X. For this, you need to generate a basic Xorg configuration file for your two screens:<br />
<br />
# aticonfig --initial --desktop-setup=horizontal --overlay-on=1<br />
<br />
or<br />
<br />
# aticonfig --initial=dual-head --screen-layout=left<br />
<br />
{{Note|{{ic|overlay}} is important because it allows you to have 1 pixel (or more) shared between the 2 screens.}}<br />
{{Tip|For the other possible and available options, do not hesitate to type {{ic|aticonfig --help}} inside a terminal to display all available command lines.}}<br />
<br />
Now you should have a basic Xorg configuration file that you can edit to add your screen resolutions. It is important to use the precise resolution, especially if you have screens of different sizes. These resolutions have to be added in the "Screen" section:<br />
<br />
SubSection "Display"<br />
Depth 24<br />
Modes "X-resolution screen 1xY-resolution screen 1" "Xresolution screen 2xY-resolution screen 2"<br />
EndSubSection<br />
<br />
From now on, instead of editing the {{ic|xorg.conf}} file manually, let us use the ATI GUI tool. Restart X to be sure that your two screens are properly supported and that the resolutions are properly recognized (Screens must be independent, not mirrored).<br />
<br />
==== Configuration ====<br />
<br />
Now you will only have to launch the ATI control center with root privileges, go to the display menu and choose how you would like to set your configuration (small arrow of the drop down menu). A last restart of X and you should be done!<br />
<br />
Before you restart X, do not hesitate to verify your new {{ic|xorg.conf}} file. At this stage, inside the "Display" sub-section of the "Screen" section, you should see a "Virtual" command line, of which the resolution should be the sum of both screens. The "Server Layout" section says all the rest.<br />
<br />
== Uninstallation ==<br />
<br />
If for any reason this driver is not working for you or you want to try out the open source driver, just run ''pacman -S xf86-video-ati'', if pacman complain about dependencies on {{aur|lib32-catalyst-utils}}, just add ''lib32-ati-dri''. Then just say yes when pacman will ask to replace catalyst package with the opensource. Also you should remove {{Aur|catalyst-daemon}}, {{Aur|catalyst-generator}} and {{Aur|catalyst-hook}} packages if they have been installed on your system.<br />
<br />
{{Warning|You may need to remove ''/etc/profile.d/ati-flgrx.sh'' and ''/etc/profile.d/lib32-catalyst'' (if it exists on your system), otherwise ''r600_dri.so'' will fail to load and you would not have 3D support.}}<br />
<br />
{{Note|You should remove unofficial repositories from your {{ic|/etc/pacman.conf}} and run {{ic|pacman -Syu}}, because those repositories include out-dated Xorg packages to allow use of {{ic|catalyst}} and the {{Pkg|xf86-video-ati}} package needs up-to-date Xorg packages from the [[Official repositories]].}}<br />
<br />
Also follow these steps:<br />
<br />
* If you have the {{ic|/etc/modprobe.d/blacklist-radeon.conf}} file remove it or comment the line {{ic|blacklist radeon}} in that file.<br />
* If you have a file in {{ic|/etc/modules-load.d}} to load the {{ic|fglrx}} module on boot, remove it or comment the line containing {{ic|fglrx}}.<br />
* Make sure to remove or backup {{ic|/etc/X11/xorg.conf}}.<br />
* If you have installed the {{Aur|catalyst-hook}} package, make sure to remove ''fglrx'' from the "HOOKS" array of {{ic|/etc/mkinitcpio.conf}} in case if post-removal script of the package don't work.<br />
* If you have installed the {{Aur|catalyst-generator}} package, make sure to remove "fglrx" from the "MODULES" array of {{ic|/etc/rc.conf}} in case if post-removal script of the package don't work.<br />
* If you have installed the {{Aur|catalyst-daemon}} package, make sure to remove "autofglrx" from the "DAEMONS" array of {{ic|/etc/rc.conf}} in case if post-removal script of the package don't work.<br />
* If you used the "nomodeset" option in your [[Boot Loader#Configuration files|configuration file]] in kernel parameters line and plan to use [[#Kernel mode-setting (KMS)|KMS]], remove it.<br />
* '''Reboot''' before installing another driver.<br />
<br />
== Troubleshooting ==<br />
<br />
If you can still boot to command-line, then the problem probably lies in {{ic|/etc/X11/xorg.conf}}<br />
<br />
You can parse the whole {{ic|/var/log/Xorg.0.log}} or, for clues:<br />
<br />
$ grep '(EE)' /var/log/Xorg.0.log<br />
$ grep '(WW)' /var/log/Xorg.0.log<br />
<br />
If you are still confused about what is going on, search the forums first. Then post a message in the [https://bbs.archlinux.org/viewtopic.php?pid=1166052#p1166052/ thread specific to ATI/AMD]. Provide the information from {{ic|xorg.conf}} and both commands mentioned above.<br />
<br />
=== 3D Wine applications freeze ===<br />
If you use a 3D Wine application and it hangs, you have to disable TLS. To do this, either use {{ic|aticonfig}} or edit {{ic|/etc/X11/xorg.conf}}. To use {{ic|aticonfig}}:<br />
<br />
# aticonfig --tls=off<br />
<br />
Or, to edit {{ic|/etc/X11/xorg.conf}}; first open the file in an editor as root and then add {{ic|Option "UseFastTLS" "off"}} to the ''Device'' section of this file. <br />
<br />
After applying either of the solutions, restart X for it to take effect.<br />
<br />
=== Problems with video colours ===<br />
<br />
You may still use {{ic|vaapi:gl}} to avoid video flickering, but without video acceleration:<br />
<br />
* Run '''mplayer''' without {{ic|-vo vaapi}} switch.<br />
<br />
* Run '''smplayer''' remove {{ic|-vo vaapi}} from Options → Preferences → Advanced → Options for MPlayer → Options: -vo vaapi<br />
<br />
Plus for '''smplayer''' you may now safely turn screenshots on.<br />
<br />
=== KWin and composite ===<br />
<br />
You may use XRender if the rendering with OpenGL is slow. However, XRender might also be slower than OpenGL depending on your card.<br />
XRender also solves artefact issues in some cases, for instance when resizing Konsole.<br />
<br />
=== Black screen with complete lockups and/or hangs after reboot or startx ===<br />
<br />
Ensure you have added the '''nomodeset''' option to the kernel options line in your bootloader (see [[#Disable kernel mode setting]]).<br />
<br />
If you are using the legacy driver (catalyst-hd234k) and get a black screen, try downgrading xorg-server to 1.11 by using the [[#xorg111]] repository.<br />
<br />
==== Faulty ACPI hardware calls ====<br />
It is possible that fglrx doesn't cooperate well with the system's ACPI hardware calls, so it auto-disables itself and there is no screen output.<br />
<br />
If so, try to run this:<br />
<br />
$ aticonfig --acpi-services=off<br />
<br />
=== KDM disappears after logout ===<br />
<br />
If you are running Catalyst proprietary driver and you get a console (tty1) instead of the expected KDM greeting when you log out, you must instruct KDM to restart the X server after each logout:<br />
<br />
$ sudo nano /usr/share/config/kdm/kdmrc<br />
<br />
Uncomment the following line under the section titled {{ic|[X-:*-Core]}}:<br />
<br />
TerminateServer=True<br />
<br />
KDM should now appear when you log out of KDE.<br />
<br />
=== Direct Rendering does not work ===<br />
<br />
This problem may occur when using the proprietary '''Catalyst''' driver.<br />
<br />
{{Warning|This error would also appear if you have not '''rebooted''' your system after the installation or upgrade of catalyst. The system needs to load the fglrx.ko module in order to make the driver work.}}<br />
<br />
If you have problem with direct rendering, run:<br />
<br />
$ LIBGL_DEBUG=verbose glxinfo > /dev/null<br />
<br />
at the command prompt. At the very start of the output, it'll usually give you a nice error message saying why you do not have direct rendering.<br />
<br />
Common errors and their solutions, are:<br />
<br />
libGL error: XF86DRIQueryDirectRenderingCapable returned false<br />
<br />
* Ensure that you are loading the correct agp modules for your AGP chipset before you load the fglrx kernel module. To determine which agp modules you'll need, run {{ic|hwdetect --show-agp}}. Then open your {{ic|fglrx.conf}} file in {{ic|/etc/modules-load.d}} and add the agp module on a line '''before''' the fglrx line.<br />
<br />
libGL error: failed to open DRM: Operation not permitted<br />
libGL error: reverting to (slow) indirect rendering<br />
<br />
libGL: OpenDriver: trying /usr/lib/xorg/modules/dri//fglrx_dri.so<br />
libGL error: dlopen /usr/lib/xorg/modules/dri//fglrx_dri.so failed<br />
(/usr/lib/xorg/modules/dri//fglrx_dri.so: cannot open shared object file: No such file or directory)<br />
libGL error: unable to find driver: fglrx_dri.so<br />
<br />
* Something has not been installed correctly. If the paths in the error message are {{ic|/usr/X11R6/lib/modules/dri/fglrx_dri.so}}, then ensure you've logged completely out of your system, then back in. If you're using a graphical login manager (gdm, kdm, xdm), ensure that {{ic|/etc/profile}} is sourced every time you log in. This is usually accomplished by adding {{ic|source /etc/profile}} into {{ic|~/.xsession}} or {{ic|~/.xinitrc}}, but this may vary between login managers.<br />
<br />
* If the paths above in your error message ''are'' {{ic|/usr/lib/xorg/modules/dri/fglrx_dri.so}}, then something has not been correctly installed. Try reinstalling the {{ic|catalyst}} package.<br />
<br />
Errors such as:<br />
<br />
fglrx: libGL version undetermined - OpenGL module is using glapi fallback<br />
<br />
could be caused by having multiple versions of {{ic|libGL.so}} on your system. Run:<br />
<br />
$ sudo updatedb<br />
$ locate libGL.so<br />
<br />
This should return the following output:<br />
<br />
$ locate libGL.so<br />
/usr/lib/libGL.so<br />
/usr/lib/libGL.so.1<br />
/usr/lib/libGL.so.1.2<br />
<br />
These are the only three libGL.so files you should have on your system. If you have any more (e.g. {{ic|/usr/X11R6/lib/libGL.so.1.2}}), then remove them. This should fix your problem.<br />
<br />
You might not get any error to indicate that this is a problem. If you are using X11R7, make sure you do '''not''' have these files on your system:<br />
<br />
/usr/X11R6/lib/libGL.so.1.2<br />
/usr/X11R6/lib/libGL.so.1<br />
<br />
=== Hibernate/Sleep Issues ===<br />
<br />
==== Video fails to resume from suspend2ram ====<br />
<br />
ATI's proprietary Catalyst driver cannot resume from suspend if the framebuffer is enabled. To disable the framebuffer, add '''vga=0''' to your kernel options in for example, Grub Legacy's {{ic|/boot/grub/menu.lst}}:<br />
<br />
kernel /vmlinuz-linux root=/dev/sda3 resume=/dev/sda2 ro quiet '''vga=0'''<br />
<br />
To see where you need to add this with other bootloaders, see [[#Disable kernel mode setting]].<br />
<br />
=== System Freezes/Hard locks ===<br />
<br />
* The {{ic|radeonfb}} framebuffer drivers have been known in the past to cause problems of this nature. If your kernel has radeonfb support compiled in, you may want to try a different kernel and see if this helps.<br />
<br />
* If you experience system freezes when exiting your DE (shut down, suspend, switching to tty etc.) you probably forgot to deactivate KMS. (See [[#Disable kernel mode setting]])<br />
<br />
=== Hardware Conflicts ===<br />
<br />
Radeon cards used in conjunction with some versions of the nForce3 chipset (e.g. nForce 3 250Gb) won't have 3D acceleration. Currently the cause of this issue is unknown, but some sources indicate that it may be possible to get acceleration with this combination of hardware by booting Windows with the drivers from nVIDIA and then rebooting the system. This can be verified by issuing in a root console the following command:<br />
<br />
$ dmesg | grep agp<br />
<br />
If you get something similar to this (using an nForce3-based system):<br />
<br />
agpgart: Detected AGP bridge 0<br />
agpgart: Setting up Nforce3 AGP.<br />
agpgart: aperture base > 4G<br />
<br />
and also if issuing this command...<br />
<br />
$ tail -n 100 /var/log/Xorg.0.log | grep agp<br />
<br />
...gets something similar to:<br />
<br />
(EE) fglrx(0): [agp] unable to acquire AGP, error "xf86_ENODEV"<br />
<br />
Then you have this bug.<br />
<br />
Some sources indicate that in some situations, downgrading the motherboard BIOS may help, but this cannot be verified in all cases. Also, '''a bad BIOS downgrade can render your hardware useless, so beware.'''<br />
<br />
See [http://bugzilla.kernel.org/show_bug.cgi?id=6350/ this bugreport] for more information and a potential fix.<br />
<br />
=== Temporary hangs when playing video ===<br />
<br />
This problem may occur when using the proprietary Catalyst.<br />
<br />
If you experience temporary hangs lasting from a few seconds to several minutes occuring randomly during playback with mplayer, check /var/log/messages.log for output like:<br />
<br />
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160<br />
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160<br />
Nov 28 18:31:56 pandemonium [<f8bc628c>] ? ip_firegl_ioctl+0x1c/0x30 [fglrx]<br />
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160<br />
Nov 28 18:31:56 pandemonium [<c0197038>] ? vfs_ioctl+0x78/0x90<br />
Nov 28 18:31:56 pandemonium [<c01970b7>] ? do_vfs_ioctl+0x67/0x2f0<br />
Nov 28 18:31:56 pandemonium [<c01973a6>] ? sys_ioctl+0x66/0x70<br />
Nov 28 18:31:56 pandemonium [<c0103ef3>] ? sysenter_do_call+0x12/0x33<br />
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160<br />
Nov 28 18:31:56 pandemonium =======================<br />
<br />
Adding the nopat kernel option to your kernel options in your bootloader and rebooting fixed the problem at least for me. To see how to do this for different bootloaders, see [[#Disable kernel mode setting]].<br />
<br />
=== "aticonfig: No supported adapters detected" ===<br />
<br />
If when running<br />
<br />
# aticonfig --initial<br />
<br />
you get:<br />
<br />
aticonfig: No supported adaptaters detected<br />
<br />
But you do have an AMD GPU (or APU), it may still be possible to get Catalyst working by manually setting the device in your your {{ic|etc/X11/xorg.conf}} file or by copying an older working /etc/ati/control file (preferred - this also fixes the watermark issue).<br />
<br />
To get an older control file, download a previous version of fglrx from AMD and run it with "--extract driver" parameter. You'll find the control file in driver/common/etc/ati/control. Copy the extracted file over the system file and restart Xorg. You can try different versions of the file.<br />
<br />
To set your model in xorg.conf,edit the device section of {{ic|/etc/X11/xorg.conf}} to:<br />
<br />
Section "Device"<br />
Identifier "ATI radeon '''****'''"<br />
Driver "fglrx"<br />
EndSection<br />
<br />
Where ''****'' should be replaced with your device's marketing number (e.g. 6870 for the HD 6870 and 6310 for the E-350 APU).<br />
<br />
Xorg will start and it is possible to use {{ic|amdcccle}} instead of {{ic|aticonfig}}. There will be an "AMD Unsupported hardware" watermark.<br />
<br />
You can remove this watermark using the following script:<br />
<br />
#!/bin/sh<br />
DRIVER=/usr/lib/xorg/modules/drivers/fglrx_drv.so<br />
for x in $(objdump -d $DRIVER|awk '/call/&&/EnableLogo/{print "\\x"$2"\\x"$3"\\x"$4"\\x"$5"\\x"$6}'); do<br />
sed -i "s/$x/\x90\x90\x90\x90\x90/g" $DRIVER<br />
done<br />
<br />
and rebooting.<br />
<br />
=== WebGL support in Chromium ===<br />
<br />
Google has blacklisted Linux's Catalyst driver from supporting webGL in their Chromium/Chrome browsers.<br />
<br />
You can turn webGL on by editing {{ic|/usr/share/applications/chromium.desktop}} file and adding {{ic|--ignore-gpu-blacklist}} flag into the '''Exec''' line so it looks like this:<br />
<br />
Exec=chromium %U --ignore-gpu-blacklist<br />
<br />
You can also run chromium from console with the same {{ic|--ignore-gpu-blacklist}} flag:<br />
<br />
$ chromium --ignore-gpu-blacklist<br />
<br />
{{Warning|Catalyst does not support the GL_ARB_robustness extension, so it is possible that a malicious site could use WebGL to perform a DoS attack on your graphic card. For more info, read [http://www.h-online.com/security/news/item/WebGL-as-a-security-problem-1240567.html/ this].}}<br />
<br />
=== Laggs/freezes when watching flash videos via Adobe's flashplugin ===<br />
<br />
Edit {{ic|/etc/adobe/mms.cfg}} and make it look like this:<br />
<br />
#EnableLinuxHWVideoDecode=1<br />
OverrideGPUValidation=true<br />
<br />
If you are using KDE make sure that "Suspend desktop effects for fullscreen windows" is unchecked under System Settings->Workspace Appearance and Behaviour->Desktop Effects->Advanced.<br />
<br />
=== Laggs/slow windows movement in GNOME3 ===<br />
<br />
You can try this solution out, it's working for many people.<br />
<br />
Add this line into {{ic|~/.profile}} or into {{ic|/etc/profile}}:<br />
<br />
export CLUTTER_VBLANK=none<br />
<br />
Restart X server or reboot your system.<br />
<br />
=== Not using fullscreen resolution at 1920x1080 (underscanning) ===<br />
<br />
Using the amdcccle GUI you can select the display, go to adjustments, and set Underscan to 0% (aticonfig defaults to 15% underscan).<br />
<br />
Alternatively, you can use aticonfig to disable underscanning as well:<br />
<br />
aticonfig --set-pcs-val=MCIL,DigitalHDTVDefaultUnderscan,0<br />
<br />
For newer version (for example, 12.11), if Catalyst control center repeatedly fails to save the overscan setting, edit /etc/ati/amdpcsdb:<br />
<br />
TVEnableOverscan=V0<br />
<br />
Then logout and login.<br />
<br />
=== Dual Screen Setup: general problems with acceleration, OpenGL, compositing, performance ===<br />
Try to disable xinerama and xrandr12. Check out ie. this way:<br />
<br />
As root type those commands:<br />
aticonfig --initial<br />
aticonfig --set-pcs-str="DDX,EnableRandR12,FALSE"<br />
Then reboot your system. In /etc/X11/xorg.conf check that xinerama is disabled, if it's not disable it and reboot your system.<br />
<br />
Next run amdcccle and pick up amdcccle->display manager->multi-display->multidisplay desktop with display(s) 2.<br />
<br />
Reboot again and set up your display layout whatever you desire.<br />
<br />
=== Disabling VariBright Feature ===<br />
As root type command:<br />
aticonfig --set-pcs-u32=MCIL,PP_UserVariBrightEnable,0<br />
<br />
=== Hybrid/PowerXpress: turning off discrete GPU ===<br />
When you are using catalyst-total-pxp or catalyst-utils-pxp and you are switching to integrated GPU you may notice that discrete GPU is still working, consuming power and making your system's temperature higher. <br />
<br />
Sometimes ie. when your integrated GPU is intel's one you can use '''vgaswitcheroo''' to turn the discrete GPU off.<br />
Sometimes unfortunatelly, it's not working.<br />
<br />
Then you may check out [https://aur.archlinux.org/packages/?O=0&K=acpi_call acpi_call]. MrDeepPurple has prepared the script which he's using to perform 'turn off' task, he's calling script via systemd service while booting and resuming his system.<br />
Here's his script:<br />
#!/bin/sh<br />
libglx=$(/usr/lib/fglrx/switchlibglx query)<br />
modprobe acpi_call<br />
if [ "$libglx" = "intel" ]; then<br />
echo '\_SB.PCI0.PEG0.PEGP._OFF' > /proc/acpi/call<br />
fi</div>Lesto