https://wiki.archlinux.org/api.php?action=feedcontributions&user=Iuno&feedformat=atomArchWiki - User contributions [en]2024-03-28T10:11:20ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=GTK&diff=528295GTK2018-06-30T16:16:21Z<p>Iuno: /* Themes */ removed gnome-breeze, as it's no longer maintained and links to breeze-gtk, which is already mentioned in this section.</p>
<hr />
<div>[[Category:Widget toolkits]]<br />
[[cs:GTK+]]<br />
[[de:GTK+]]<br />
[[es:GTK+]]<br />
[[it:GTK+]]<br />
[[ja:GTK+]]<br />
[[ru:GTK+]]<br />
[[zh-hans:GTK+]]<br />
{{Related articles start}}<br />
{{Related|Uniform look for Qt and GTK applications}}<br />
{{Related|Qt}}<br />
{{Related|GNU Project}}<br />
{{Related|GTK+/Development}}<br />
{{Related articles end}}<br />
From the [http://www.gtk.org GTK+ website]:<br />
:GTK+, or the GIMP Toolkit, is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable for projects ranging from small one-off tools to complete application suites.<br />
<br />
GTK+, The GIMP Toolkit, was initially made by the [[GNU Project]] for [[GIMP]], but it is now a very popular toolkit with bindings for many languages. This article will explore the tools used to configure the GTK+ theme, style, icon, font and font size, and also detail manual configuration.<br />
<br />
== Installation ==<br />
<br />
Two versions of GTK+ are currently available in the [[official repositories]]. They can be [[install]]ed with the following packages:<br />
* '''GTK+ 3.x''' is available with the {{Pkg|gtk3}} package.<br />
* '''GTK+ 2.x''' is available with the {{Pkg|gtk2}} package.<br />
* '''GTK+ 1.x''' is available with the {{AUR|gtk}} package.<br />
<br />
== Themes ==<br />
<br />
In GTK+ 2, the default theme is ''Raleigh'', but Arch Linux has a custom configuration file at {{ic|/usr/share/gtk-2.0/gtkrc}}, which sets the default theme to ''Adwaita''. In GTK+ 3, the default theme is ''Adwaita'', but ''HighContrast'', ''HighContrastInverse'' and ''Raleigh'' themes are also included.<br />
<br />
To force a specific theme, you can set environment variables.<br />
* For GTK+ 2, use the {{ic|GTK2_RC_FILES}} environment variable, for example:<br />
$ GTK2_RC_FILES=/usr/share/themes/Industrial/gtk-2.0/gtkrc gimp<br />
:will launch GIMP with the Industrial theme.<br />
* For GTK+ 3, use the {{ic|GTK_THEME}} environment variable, for example:<br />
$ GTK_THEME=Adwaita:dark gnome-calculator<br />
:will launch GNOME Calculator with the dark variant of Adwaita theme.<br />
<br />
More themes can be installed from the official repositories or the [[AUR]].<br />
<br />
'''GTK+ 2 and GTK+ 3.20 or newer are supported:'''<br />
* {{App|Adapta| An adaptive Gtk+ theme based on Material Design Guidelines. Includes: ''Adapta'', ''Adapta-Eta'', ''Adapta-Nokto'', ''Adapta-Nokto-Eta''|https://github.com/tista500/Adapta|{{Pkg|adapta-gtk-theme}}}}<br />
* {{App|Arc|A flat theme with a modern look and transparent elements. Includes: ''Arc'', ''Arc-Dark'', ''Arc-Darker''|https://github.com/horst3180/arc-theme|with transparency: {{Pkg|arc-gtk-theme}}, without transparency: {{Pkg|arc-solid-gtk-theme}}}}<br />
* {{App|Breeze|GTK+ version of KDE's default widget theme. Includes: ''Breeze'', ''Breeze-Dark''|https://cgit.kde.org/breeze-gtk.git|{{Pkg|breeze-gtk}}}}<br />
* {{App|Deepin|Default theme for the Deepin desktop. Includes: ''deepin'', ''deepin-dark''|https://github.com/linuxdeepin/deepin-gtk-theme|{{Pkg|deepin-gtk-theme}}}}<br />
* {{App|GNOME Extra Themes|Extra themes for the GNOME desktop. Includes: ''Adwaita'', ''Adwaita-dark'', ''HighContrast''|https://gitlab.gnome.org/GNOME/gnome-themes-extra|{{Pkg|gnome-themes-extra}}}}<br />
* {{App|MATE Themes|Default themes for the MATE desktop. Includes: ''BlackMATE'', ''Blue-Submarine'', ''BlueMenta'', ''ContrastHighInverse'', ''Green-Submarine'', ''GreenLaguna'', ''Menta'', ''TraditionalGreen'', ''TraditionalOk''|https://github.com/mate-desktop/mate-themes|{{Pkg|mate-themes}}}}<br />
* {{App|Materia Theme| A Material Design-like flat theme for GTK3, GTK2, and GNOME-Shell.|https://github.com/nana-4/materia-theme|{{Pkg|materia-gtk-theme}}}}<br />
* {{App|Numix|A flat and light theme with a modern look (GNOME, Openbox, Unity, Xfce). Includes: ''Numix''|https://github.com/shimmerproject/Numix|{{Pkg|numix-gtk-theme}}}}<br />
* {{App|Blackbird|Dark Desktop Suite for Xfce.|https://github.com/shimmerproject/Blackbird|{{AUR|xfce-theme-blackbird}}}}<br />
* {{App|Greybird|A grey and blue Xfce theme, used by default in Xubuntu 12.04.|https://github.com/shimmerproject/Greybird|{{AUR|xfce-theme-greybird}}}}<br />
* {{App|Vertex|Theme for GTK 3, GTK 2, Gnome-Shell and Cinnamon.|https://github.com/horst3180/vertex-theme|{{AUR|vertex-themes}}}}<br />
* {{App|Zuki|Themes for GTK, gnome-shell and more.|https://github.com/lassekongo83/zuki-themes|{{AUR|zuki-themes-git}}}}<br />
<br />
'''Only GTK+ 2 is supported:'''<br />
* {{App|GTK+ Engines|Theme engines for GTK+ 2. Includes: ''Clearlooks'', ''Crux'', ''Industrial'', ''Mist'', ''Redmond'', ''ThinIce''|https://github.com/GNOME/gtk-engines|{{Pkg|gtk-engines}}}}<br />
* {{App|Xfce Gtk+ Engine|Xfce Gtk+-2.0 engine and themes|http://git.xfce.org/xfce/gtk-xfce-engine/|{{Pkg|gtk-xfce-engine}}}}<br />
* {{App|Oxygen-Gtk|Port of the default KDE widget theme (Oxygen) to GTK2|https://cgit.kde.org/oxygen-gtk.git|{{Pkg|oxygen-gtk2}}}}<br />
* {{App|QtCurve|A configurable set of widget styles for KDE and Gtk.|https://cgit.kde.org/qtcurve.git|{{Pkg|qtcurve-gtk2}}}}<br />
<br />
There are a number of additional GTK+ themes in the [[AUR]]: [https://aur.archlinux.org/packages.php?K=gtk-theme search for gtk-theme], [https://aur.archlinux.org/packages.php?K=gtk2-theme search for gtk2-theme].<br />
<br />
{{Note|Because GTK+ 3 changes rapidly, GTK+ 3 themes often require re-working after a GTK+ 3 release. For this reason, not all GTK+ 3 themes may look as intended when used with the latest GTK+ 3 version.}}<br />
<br />
=== GTK+ and Qt ===<br />
<br />
If you have GTK+ and Qt (KDE) applications on your desktop then you know that their looks do not blend well. If you wish to make your GTK+ styles match your Qt styles please read [[Uniform look for Qt and GTK applications]].<br />
<br />
== Configuration tools ==<br />
<br />
Most major [[desktop environments]] provide tools to configure the GTK+ theme, icons, font and font size, and manage these settings via [http://standards.freedesktop.org/xsettings-spec/xsettings-spec-0.5.html XSettings]:<br />
* If you use [[Cinnamon]], use Themes tool (''cinnamon-settings themes''): go to ''System Settings > Themes''.<br />
* If you use [[Enlightenment]]: go to ''Settings > All > Look > Application Theme''.<br />
* If you use [[GNOME]], use GNOME Tweaks (''gnome-tweaks''): install {{Pkg|gnome-tweaks}}.<br />
* If you use [[MATE]], use the Appearance Preferences tool (''mate-appearance-properties''): go to ''System > Settings > Appearance''.<br />
* If you use [[Xfce]], use the Appearance tool: go to ''Settings > Appearance''.<br />
<br />
Other GUI tools generally overwrite the [[#Configuration|configuration files]].<br />
<br />
'''Both GTK+ 2 and GTK+ 3 are supported:'''<br />
* {{App|KDE GTK Configurator|Application that allows you to change style and font of GTK+ 2 and Gtk+ 3 applications.|https://cgit.kde.org/kde-gtk-config.git|{{Pkg|kde-gtk-config}}}}<br />
:After installation, {{ic|kde-gtk-config}} can also be found in ''System Settings > Application Style > GTK''.<br />
* {{App|LXAppearance|Desktop independent GTK+ 2 and GTK+ 3 style configuration tool from the LXDE project (it does not require other parts of the LXDE desktop).|http://wiki.lxde.org/en/LXAppearance|{{Pkg|lxappearance}}}}<br />
* {{App|Oo-mox| Graphical application for generating different color variations of Numix and Flat-Plat themes (GTK+ 2 and 3), Archdroid and Gnome-Colors icon themes. Also allows generating pre-scaled GTK+ 2 themes for HiDPI displays. |https://github.com/actionless/oomox|{{AUR|oomox}}}}<br />
<br />
'''Only GTK+ 2 is supported:'''<br />
* {{App|GTK+ Change Theme|Little program that lets you change your GTK+ 2.0 theme (considered a better alternative to ''switch2'').|http://plasmasturm.org/code/gtk-chtheme/|{{Pkg|gtk-chtheme}}}}<br />
* {{App|GTK+ Preference Tool|GTK+ theme selector and font switcher.|http://gtk-win.sourceforge.net/home/index.php/Main/GTKPreferenceTool|{{AUR|gtk2_prefs}}}}<br />
* {{App|GTK+ Theme Switch|Simple GTK+ theme switcher.|http://muhri.net/nav.php3?node&#61;gts|{{Pkg|gtk-theme-switch2}}}}<br />
<br />
== Configuration ==<br />
<br />
GTK+ settings can be specified manually in configuration files, but desktop environments and applications can override these settings. Depending on GTK+ version, these files are located at:<br />
* GTK+ 2 user specific: {{ic|~/.gtkrc-2.0}}<br />
* GTK+ 2 system wide: {{ic|/etc/gtk-2.0/gtkrc}}<br />
* GTK+ 3 user specific: {{ic|$XDG_CONFIG_HOME/gtk-3.0/settings.ini}}, or {{ic|$HOME/.config/gtk-3.0/settings.ini}} if {{ic|$XDG_CONFIG_HOME}} is not set<br />
* GTK+ 3 system wide: {{ic|/etc/gtk-3.0/settings.ini}}<br />
<br />
{{Note|<br />
*See the [http://library.gnome.org/devel/gtk3/stable/GtkSettings.html#GtkSettings.properties GTK+ 3 ''GtkSettings'' properties] (and [http://library.gnome.org/devel/gtk2/stable/GtkSettings.html#GtkSettings.properties GTK+ 2 properties]) in the GTK+ programming reference manual for the full list of currently supported GTK+ configuration options.<br />
*Some of the settings described below (such as {{ic|gtk-icon-sizes}}) are deprecated and ignored since GTK+ 3.10.<br />
*If you edit your GTK+ configuration files, only newly started applications will display the changes.}}<br />
<br />
=== Basic theme configuration ===<br />
<br />
To manually change the GTK+ theme, icons, font and font size, add the following to the configuration files, for example:<br />
<br />
'''GTK+ 2:'''<br />
{{hc|~/.gtkrc-2.0|2=<br />
gtk-icon-theme-name = "Adwaita"<br />
gtk-theme-name = "Adwaita"<br />
gtk-font-name = "DejaVu Sans 11"<br />
}}<br />
<br />
'''GTK+ 3:'''<br />
{{hc|$XDG_CONFIG_HOME/gtk-3.0/settings.ini|2=<br />
[Settings]<br />
gtk-icon-theme-name = Adwaita<br />
gtk-theme-name = Adwaita<br />
gtk-font-name = DejaVu Sans 11<br />
}}<br />
<br />
{{Note|The icon theme name is the name defined in the theme's index file, ''not'' the name of its directory.}}<br />
<br />
=== Dark theme variant ===<br />
<br />
Some GTK+ 3 themes contain a dark theme variant, but it's only used by default when the application requests it explicitly. To use dark theme variant with all GTK+ 3 applications, set:<br />
<br />
gtk-application-prefer-dark-theme = true<br />
<br />
=== Keyboard shortcuts ===<br />
<br />
Keyboard shortcuts (otherwise known as ''accelerators'' in GTK+) may be changed by hovering the mouse over the respective menu item, and pressing the desired key combination. To enable this feature, set:<br />
<br />
gtk-can-change-accels = 1<br />
<br />
==== Emacs keybindings ====<br />
To get Emacs-like keybindings in gtk apps:<br />
<br />
For GTK2, add {{ic|1=gtk-key-theme-name = "Emacs"}} to {{ic|~/.gtkrc-2.0}}.<br />
<br />
For GTK3 add the following to the noted file:<br />
<br />
{{hc|1=~/.config/gtk-3.0/settings.ini|2=<br />
[Settings]<br />
gtk-key-theme-name = Emacs}}<br />
<br />
Then run:<br />
<br />
$ gsettings set org.gnome.desktop.interface gtk-key-theme "Emacs"<br />
<br />
XFCE has a similar setting:<br />
<br />
$ xfconf-query -c xsettings -p /Gtk/KeyThemeName -s Emacs<br />
<br />
The config files in {{ic|/usr/share/themes/Emacs/}} determine what the Emacs bindings are, and can be changed.<br />
Copying sections to the users {{ic|~/.gtkrc-2.0}} file allows for changes on a per user basis.<br />
<br />
=== GNOME menu delay ===<br />
<br />
This setting controls the delay between pointing the mouse at a menu and that menu opening. This delay is measured in milliseconds.<br />
<br />
gtk-menu-popup-delay = 0<br />
<br />
=== Reduce widget sizes ===<br />
<br />
If you have a small screen or you just do not like big icons and widgets, you can resize things easily. <br />
<br />
To have icons without text in toolbars ([https://developer.gnome.org/gtk3/stable/gtk3-Standard-Enumerations.html#GtkToolbarStyle valid values]), use<br />
<br />
gtk-toolbar-style = GTK_TOOLBAR_ICONS<br />
<br />
To use smaller icons, use a line like this:<br />
<br />
gtk-icon-sizes = "panel-menu=16,16:panel=16,16:gtk-menu=16,16:gtk-large-toolbar=16,16\<br />
:gtk-small-toolbar=16,16:gtk-button=16,16"<br />
<br />
Or to remove icons from buttons completely:<br />
<br />
gtk-button-images = 0<br />
<br />
You can also remove icons from menus:<br />
<br />
gtk-menu-images = 0<br />
<br />
See also [http://martin.ankerl.com/2008/10/10/how-to-make-a-compact-gnome-theme/] and [http://gnome-look.org/content/show.php/Simple+eGTK?content=119812].<br />
<br />
=== File-Chooser Startup-Location ===<br />
<br />
Open the file-chooser within the '''current-working-directory''' and not the '''recent''' location. Normally the '''current-working-directory''' is '''home-directory'''.<br />
<br />
'''GTK+ 3'''<br />
<br />
Modify DConf with ''gsettings'', as the database file ($XDG_CONFIG_HOME/dconf/users) is binary:<br />
<br />
$ gsettings set org.gtk.Settings.FileChooser startup-mode cwd<br />
<br />
'''GTK+ 2'''<br />
<br />
Modify {{ic|~/.config/gtk-2.0/gtkfilechooser.ini}} configuration file:<br />
<br />
{{hc|~/.config/gtk-2.0/gtkfilechooser.ini|<br />
StartupMode&#61;cwd}}<br />
<br />
=== Legacy scrolling behavior ===<br />
<br />
{{Note|This setting is not obeyed by all GTK+ applications.}}<br />
{{Tip|Legacy scrolling behaviour can be achieved reliably simply by using right click instead of left click.}}<br />
<br />
Prior to GTK+ 3.6, clicking on either side of the slider in the scrollbar would move the scrollbar in the direction of the click by approximately one page. Since GTK+ 3.6, the slider will move directly to the position of the click. This behaviour can be reverted in some applications by creating the file with the content below:<br />
<br />
{{hc|~/.config/gtk-3.0/settings.ini|<nowiki><br />
[Settings]<br />
gtk-primary-button-warps-slider = false<br />
</nowiki>}}<br />
<br />
=== Disable overlay scrollbars ===<br />
<br />
Since GTK+ 3.15, overlay scrollbars are enabled by default, meaning that scrollbars will be shown only on mouseover in GTK+ 3 applications. This behavior can be reverted by setting the following environment variable: {{ic|1=GTK_OVERLAY_SCROLLING=0}}. <br />
<br />
See [[Environment variables#Graphical applications]].<br />
<br />
==== Remove overlay scroll indicators ====<br />
<br />
The positions of the overlay scrollbars are indicated by thin dashed lines in the application window. These dashed lines will be present even when overlay scrolling is disabled using the environment variable discussed in the section above. To remove the indicator lines, create the following file:<br />
<br />
{{hc|~/.config/gtk-3.0/gtk.css|<br />
/* Remove dotted lines from GTK+ 3 applications */<br />
undershoot.top, undershoot.right, undershoot.bottom, undershoot.left { background-image: none; }<br />
}}<br />
<br />
== GDK backends ==<br />
<br />
GDK (the underlying abstraction layer of GTK+) supports multiple backends to display GTK+ applications. The default backend is ''x11''.<br />
<br />
=== Broadway backend ===<br />
The GDK Broadway backend provides support for displaying GTK+ applications in a web browser, using HTML5 and web sockets. <br />
[https://developer.gnome.org/gtk3/3.8/gtk-broadway.html]<br />
<br />
When using broadwayd, specify the display number to use, prefixed with a colon, similar to X. The default display number is 1.<br />
<br />
$ display_number&#61;:5<br />
Start it.<br />
$ broadwayd $display_number <br />
<br />
Port Used on default<br />
port &#61; 8080 + $display_number<br />
<br />
Point your browser to http://127.0.0.1:port<br />
<br />
To Start apps<br />
<br />
$ GDK_BACKEND&#61;broadway BROADWAY_DISPLAY&#61;$display_number ''<<app>>''<br />
<br />
Alternatively can set address and port<br />
<br />
$ broadwayd --port $port_number --address $address $display_number<br />
<br />
=== Wayland backend ===<br />
<br />
The GDK [[Wayland]] backend can be enabled by setting the {{ic|GDK_BACKEND&#61;wayland}} environment variable.<br />
<br />
{{Tip|To disable GTK window decorations in Wayland, [[install]] the {{AUR|gtk3-optional-csd}} package and set the environment variable {{ic|1=GTK_CSD=0}}.}}<br />
<br />
== Troubleshooting ==<br />
<br />
=== Different themes between GTK+ 2 and GTK+ 3 applications ===<br />
<br />
In general, if a selected theme has support for both GTK+ 2 and GTK+ 3, the theme will be applied to all GTK+ 2 and GTK+ 3 applications. If a selected theme has support for only GTK+ 2, it will be used for GTK+ 2 applications and the default GTK+ theme will be used for GTK+ 3 applications. If the selected theme has support for only GTK+ 3, it will be used for GTK+ 3 applications and the default GTK+ theme will be used for GTK+ 2 applications. Thus for application theme consistency, it is best to use a theme which has support for both GTK+ 2 and GTK+ 3.<br />
<br />
You could find what themes installed on your system have both an GTK+ 2 and GTK+ 3 version by using this command (does not work with names containing spaces):<br />
find $(find ~/.themes /usr/share/themes/ -wholename "*/gtk-3.0" | sed -e "s/^\(.*\)\/gtk-3.0$/\1/") -wholename "*/gtk-2.0" | sed -e "s/.*\/\(.*\)\/gtk-2.0/\1"/<br />
<br />
=== Theme not applied to root applications ===<br />
<br />
As user theme files ({{ic|$XDG_CONFIG_HOME/gtk-3.0/settings.ini}}, {{ic|~/.gtkrc-2.0}}) are not read by other accounts, the selected theme will not apply to [[Running_X_apps_as_root|X applications run as root]]. Possible solutions include:<br />
<br />
* Create symlinks, e.g<br />
# ln -s /home/[username]/.gtkrc-2.0 /etc/gtk-2.0/gtkrc<br />
# ln -s /home/[username]/.config/gtk-3.0/settings.ini /etc/gtk-3.0/settings.ini<br />
* Configure system-wide theme files: {{ic|/etc/gtk-3.0/settings.ini}} (GTK+ 3) or {{ic|/etc/gtk-2.0/gtkrc}} (GTK+ 2)<br />
* Adjust the theme as root<br />
# sudo lxappearance<br />
* Use a settings daemon (this is what most desktop environments do). A desktop-agnostic variant using [http://standards.freedesktop.org/xsettings-spec/xsettings-spec-0.5.html XSettings] is available in the [[AUR]] under {{aur|xsettingsd-git}}.<br />
<br />
=== Client-side decorations ===<br />
<br />
GTK 3.12 introduced [http://blogs.gnome.org/mclasen/2013/12/05/client-side-decorations-in-themes/ client-side decorations], which move the title-bar away from the window manager. This may present issues such as [http://redmine.audacious-media-player.org/boards/1/topics/1135 double title-bars], no title-bar at all or [https://github.com/chjj/compton/issues/189 double shadows] with compositing enabled.<br />
<br />
To remove the shadow and gap around windows (for example in combination with a tiling window manager), create the following file:<br />
<br />
{{hc|~/.config/gtk-3.0/gtk.css|<nowiki>.window-frame, .window-frame:backdrop {<br />
box-shadow: 0 0 0 black;<br />
border-style: none;<br />
margin: 0;<br />
border-radius: 0;<br />
}<br />
<br />
.titlebar {<br />
border-radius: 0;<br />
}<br />
<br />
.window-frame.csd.popup {<br />
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.13);<br />
}<br />
<br />
.header-bar {<br />
background-image: none;<br />
background-color: #ededed;<br />
box-shadow: none;<br />
}<br />
/* You may want to use this if you don't like the double title.<br />
GtkLabel.title {<br />
opacity: 0;<br />
}*/<br />
</nowiki>}}<br />
<br />
To adjust the buttons in the header bar, use the {{ic|gtk-decoration-layout}} setting. [https://developer.gnome.org/gtk3/stable/GtkSettings.html#GtkSettings--gtk-decoration-layout] The below examples removes all buttons:<br />
<br />
{{hc|~/.config/gtk-3.0/settings.ini|2=<br />
gtk-decoration-layout=menu:<br />
}}<br />
<br />
=== cedilla ç/Ç instead of ć/Ć ===<br />
<br />
See [https://bugs.launchpad.net/ubuntu/+source/gtk+2.0/+bug/518056], and [https://bugs.launchpad.net/ubuntu/+source/gtk+2.0/+bug/518056/comments/37] for a workaround using Xcompose (US international layout).<br />
<br />
===Suppress warning about accessibility bus===<br />
<br />
If you do not use any [https://wiki.gnome.org/Accessibility Gnome Accessibility] features, you may receive warnings like:<br />
<br />
WARNING **: Couldn't connect to accessibility bus:<br />
<br />
To suppress these warnings, execute programs with {{ic|1=NO_AT_BRIDGE=1}} or set that as a global [[environment variable]].<br />
<br />
=== Titlebar background color mismatch ===<br />
<br />
If you are using a [[window manager]] which uses a window decoration theme that mimics the GTK+ theme background color, you may find that the titlebar color no longer completely matches the application color in some GTK+ 3 applications. As a workaround, create the following file:<br />
{{hc|~/.config/gtk-3.0/gtk.css|<br />
/* Always use background color */<br />
GtkWindow {<br />
background-color: @theme_bg_color;<br />
}<br />
<br />
/* Fix tooltip background override */<br />
.tooltip {<br />
background-color: rgba(0, 0, 0, 0.8);<br />
}<br />
<br />
.tooltip * {<br />
background-color: transparent;<br />
}<br />
<br />
/* Fix Nautilus desktop window background override */<br />
NautilusWindow {<br />
background-color: transparent; <br />
}<br />
}}<br />
<br />
=== Wrong focus events with tiling window managers ===<br />
<br />
{{Note|1=This disables touchscreen support for GTK3 applications. [https://bugzilla.gnome.org/show_bug.cgi?id=677329#c14]}}<br />
<br />
[[Define]] {{ic|1=GDK_CORE_DEVICE_EVENTS=1}} to use GTK2 style input, instead of xinput2. [https://bugzilla.gnome.org/show_bug.cgi?id=677329#c10]<br />
<br />
=== Thumbnail support for GTK+ 2 file dialog ===<br />
<br />
Install {{AUR|gtk2-patched-filechooser-icon-view}} to have the option to view files as thumbnails instead of list in the GTK+ file chooser.<br />
<br />
=== Button/menu icons in some apps in GNOME Wayland session ===<br />
<br />
Your {{ic|~/.config/gtk-3.0/settings.ini}} file is misconfigured. This can happend if you try other GTK+ based desktop environments. These are the offending values:<br />
<br />
{{hc|~/.config/gtk-3.0/settings.ini|<nowiki>[Settings]<br />
gtk-button-images=1<br />
gtk-menu-images=1</nowiki>}}<br />
<br />
Simply set them to 0 or remove the whole file to use GNOME defaults.<br />
<br />
=== GTK+ 3 without polkit ===<br />
<br />
GTK+3 depends on polkit through colord, which is required for printing. However printing works fine without polkit installed; at least with a monochrome printer and package versions gtk3-print-backends=3.22.19-2 and colord=1.4.1-1.<br />
<br />
=== Some GTK+ 2 themes only change the UI color palette ===<br />
<br />
Depending on the theme of choice's support for GTK+ 2, UI controls may still have the default Raleigh appearance, possibly with a different color palette. This is due to these themes requiring the GTK+ 2 Murrine engine, which is missing (GTK+ 2 programs should complain about it on their standard error output). Install the {{Pkg|gtk-engine-murrine}} package.<br />
<br />
== Examples ==<br />
<br />
GTK+ 2 configuration example:<br />
<br />
{{hc|~/.gtkrc-2.0|2=<br />
# GTK theme<br />
include "/usr/share/themes/Clearlooks/gtk-2.0/gtkrc"<br />
<br />
# Font<br />
style "myfont" {<br />
font_name = "DejaVu Sans 8"<br />
}<br />
widget_class "*" style "myfont"<br />
gtk-font-name = "DejaVu Sans 8"<br />
<br />
# Icon theme<br />
gtk-icon-theme-name = "Tango"<br />
<br />
# Toolbar style<br />
gtk-toolbar-style = GTK_TOOLBAR_ICONS<br />
}}<br />
<br />
GTK+ 3 example of a configuration as converted from GTK+ 2.x to GTK+ 3.x by {{Pkg|lxappearance}}:<br />
<br />
{{hc|$XDG_CONFIG_HOME/gtk-3.0/settings.ini|2=<br />
[Settings] <br />
gtk-theme-name=TraditionalOk<br />
gtk-icon-theme-name=Fog<br />
gtk-font-name=Luxi Sans 12<br />
gtk-cursor-theme-name=mate<br />
gtk-cursor-theme-size=24<br />
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ<br />
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR<br />
gtk-button-images=1<br />
gtk-menu-images=1<br />
gtk-enable-event-sounds=0<br />
gtk-enable-input-feedback-sounds=0<br />
gtk-xft-antialias=1<br />
gtk-xft-hinting=1<br />
gtk-xft-hintstyle=hintslight<br />
gtk-xft-rgba=rgb<br />
}}<br />
<br />
== See also ==<br />
<br />
* [http://www.gtk.org/ The official GTK+ website]<br />
* [[Wikipedia:GTK+|Wikipedia article about GTK+]]<br />
* [http://developer.gnome.org/gtk-tutorial/stable/ GTK+ 2.0 Tutorial]<br />
* [http://developer.gnome.org/gtk3/stable/ GTK+ 3 Reference Manual]<br />
* [http://developer.gnome.org/gtkmm-tutorial/stable/ gtkmm Tutorial]<br />
* [http://developer.gnome.org/gtkmm/stable/ gtkmm Reference Manual]</div>Iunohttps://wiki.archlinux.org/index.php?title=Talk:Firefox/Tweaks&diff=490811Talk:Firefox/Tweaks2017-09-20T01:16:22Z<p>Iuno: /* Horizontal tabs */ new section</p>
<hr />
<div><br />
== Which section for tweak? ==<br />
<br />
Where can I add browser.display.show_image_placeholders=false tweak? I find it useful. -- 20:05, 6 October 2012 Flu<br />
<br />
== Horizontal tabs ==<br />
<br />
The userChrome.css tweaks described in this section don't seem to work anymore (FF55). Can anyone check back and update/remove the section?<br />
[[User:Iuno|Iuno]] ([[User talk:Iuno|talk]]) 01:16, 20 September 2017 (UTC)</div>Iunohttps://wiki.archlinux.org/index.php?title=KDE&diff=487258KDE2017-08-26T02:43:00Z<p>Iuno: /* PIM */ added link about meta-package</p>
<hr />
<div>[[Category:KDE]]<br />
[[ar:KDE]]<br />
[[cs:KDE]]<br />
[[de:Plasma]]<br />
[[es:KDE]]<br />
[[fa:KDE]]<br />
[[fr:KDE]]<br />
[[it:KDE]]<br />
[[ja:KDE]]<br />
[[pl:KDE]]<br />
[[ru:KDE]]<br />
[[tr:KDE Masaüstü Ortamı]]<br />
[[zh-hans:KDE]]<br />
[[zh-hant:KDE]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Display manager}}<br />
{{Related|Dolphin}}<br />
{{Related|Window manager}}<br />
{{Related|Qt}}<br />
{{Related|KDevelop}}<br />
{{Related|Trinity}}<br />
{{Related|Uniform Look for Qt and GTK Applications}}<br />
{{Related articles end}}<br />
<br />
KDE is a software project currently comprising of a [[desktop environment]] known as Plasma, a collection of libraries and frameworks (KDE Frameworks) and several applications (KDE Applications) as well. KDE upstream has a well maintained [https://userbase.kde.org/ UserBase wiki]. Detailed information about most KDE applications can be found there.<br />
<br />
== Installation ==<br />
<br />
=== Plasma ===<br />
<br />
Before installing Plasma, make sure you have a working [[Xorg]] installation on your system.<br />
<br />
[[Install]] the {{Pkg|plasma-meta}} meta-package or the {{Grp|plasma}} group. For differences between {{Pkg|plasma-meta}} and {{Grp|plasma}} reference [[Creating packages#Meta packages and groups]]. Alternatively, for a more minimal Plasma installation, install the {{Pkg|plasma-desktop}} package.<br />
<br />
To enable support for [[Wayland]] in Plasma, also install the {{Pkg|plasma-wayland-session}} package.<br />
<br />
=== KDE applications and language packs ===<br />
<br />
To install the full set of KDE Applications, install the {{Grp|kde-applications}} group or the {{Pkg|kde-applications-meta}} meta-package. Note that this will only install applications, it will not install any version of Plasma.<br />
<br />
Most KDE packages ship their own translations. The exception is KDE4-based packages from kde-applications. If you need language files for these packages, install {{ic|kde-l10n-'''''yourlanguagehere'''''}} (e.g. {{Pkg|kde-l10n-de}} for the German language). For a full list of available languages see the [https://www.archlinux.org/packages/extra/any/kde-l10n/ kde-l10n split package].<br />
<br />
=== Unstable releases ===<br />
<br />
See [[Official repositories#kde-unstable]]<br />
<br />
== Starting Plasma ==<br />
{{Note|Although it is possible to launch Plasma under [[Wayland]], there are some missing features and known problems as of Plasma 5.10. See the [https://community.kde.org/Plasma/5.10_Errata#Wayland Plasma 5.10 Errata] for a list of issues and the [https://phabricator.kde.org/project/board/99/ Plasma on Wayland workboard] for the current state of development. Use [[Xorg]] for the most complete and stable experience.}}<br />
<br />
Plasma can be started either graphically, using a [[display manager]], or manually from the console.<br />
<br />
=== Graphically ===<br />
<br />
{{Tip|To better integrate [[SDDM]] with Plasma, it is recommended to (force-)select the breeze theme. Related setting is located at ''System Settings > Startup and Shutdown''. See [[SDDM#Theme settings]].}}<br />
<br />
Using a [[Display manager]]:<br />
* Select ''Plasma'' to launch a new session in [[Xorg]].<br />
* [[Install]] {{Pkg|plasma-wayland-session}} and select ''Plasma (Wayland)'' to launch a new session in [[Wayland]].<br />
<br />
{{Note|The [[NVIDIA]] proprietary driver implementation for Wayland requires EGLStreams. KDE have not implemented EGLStreams in their Wayland [https://blog.martin-graesslin.com/blog/2016/09/to-eglstream-or-not implementation]. The following workarounds are available:<br />
*Using the [[Nouveau]] driver.<br />
*Using the (default) Xorg session.<br />
}}<br />
<br />
=== Manual ===<br />
<br />
To start Plasma with [[xinit]]/''startx'', append {{ic|exec startkde}} to your {{ic|.xinitrc}} file. If you want to start Xorg at login, please see [[Start X at login]]. To start a Plasma on Wayland session from a console, run {{ic|startplasmacompositor}}.<br />
<br />
== Configuration ==<br />
<br />
Most settings for KDE applications are stored in {{ic|~/.config}}, but some older applications may use {{ic|~/.kde4}}. However, configuring KDE is primarily done through the '''System Settings''' application. It can be started from a terminal by executing {{ic|systemsettings5}}.<br />
<br />
Some Frameworks 5 applications can use KDElibs 4 configuration, after moving the configuration files to the new location. Examples are:<br />
<br />
* Konsole profiles from {{ic|~/.kde4/share/apps/konsole}} to {{ic|~/.local/share/konsole/}}<br />
* Application appearance from {{ic|~/.kde4/share/config/kdeglobals}} to {{ic|~/.config/kdeglobals}} <br />
<br />
=== Personalization ===<br />
<br />
==== Plasma desktop ====<br />
<br />
===== Themes =====<br />
<br />
[https://store.kde.org/browse/cat/104/ Plasma themes] define the look of panels and plasmoids. For easy system-wide installation, some such themes are available in both the official repositories and the [https://aur.archlinux.org/packages.php?O=0&K=plasmatheme&do_Search=Go AUR].<br />
<br />
The easiest way to install themes is by going through the ''System Settings > Workspace Theme > Desktop Theme > Get new Themes''.<br />
<br />
This will present a nice frontend for https://store.kde.org/ that allows you to install, uninstall, or update third-party plasmoid scripts with literally just one click.<br />
<br />
Splash and Lock screens are currently unavailable so to customize these screens you have to modify the original theme found in {{ic|/usr/share/plasma/look-and-feel/}}.<br />
See [https://www.kubuntuforums.net/showthread.php?67599-Plasma-5-background-images&s=59832dc20e5bfc2948dbb591d8453f61 this thread] on the Kubuntu forums.<br />
<br />
Note that the [[SDDM]] login screen is not part of this theme.<br />
<br />
====== Qt and GTK+ Applications Appearance ======<br />
<br />
{{Tip|For Qt and GTK theme consistency, see [[Uniform look for Qt and GTK applications]].}}<br />
<br />
; Qt4<br />
<br />
For Qt4 applications to have a consistent appearance, there are two options: <br />
<br />
Install {{Pkg|breeze-kde4}} and then pick Breeze as GUI Style in {{ic|qtconfig-qt4}}; or install {{Pkg|breeze-gtk}} and pick GTK+ as GUI Style.<br />
<br />
; GTK+<br />
<br />
The recommended theme for a pleasant appearance in GTK+ applications is {{Pkg|breeze-gtk}} or {{AUR|gnome-breeze-git}}, a GTK+ theme designed to mimic the appearance of Plasma's Breeze theme.<br />
Install {{Pkg|kde-gtk-config}} and select the installed GTK-theme for GTK2/GTK3-Theme in ''System Settings > Application Style > GNOME Application Style''.<br />
<br />
In some themes, tooltips in GTK+ applications have white text on white backgrounds making it difficult to read. To change the colors in GTK2 applications, find the section for tooltips in the {{ic|.gtkrc-2.0}} file and change it. For GTK3 application two files need to be changed, {{ic|gtk.css}} and {{ic|settings.ini}}.<br />
It might also help to uncheck the option to ''Apply colors to non-Qt applications'' under ''System Settings'' > ''Colors''.<br />
<br />
Some GTK2 programs like {{AUR|vuescan-bin}} still look hardly usable due to invisible checkboxes with the Breeze or Adwaita skin in a Plasma session. To workaround this, install and select e.g. the Numix-Frost-Light skin of the {{AUR|numix-frost-themes}} under ''System Settings'' > ''Application Style'' > ''GNOME Application Style (GTK)'' > ''Select a GTK2 Theme:''. Numix-Frost-Light looks similar to Breeze.<br />
<br />
===== Widgets =====<br />
<br />
Plasmoids are little scripted (plasmoid scripts) or coded (plasmoid binaries) KDE applications designed to enhance the functionality of your desktop.<br />
<br />
The easiest way to install plasmoid scripts is by right-clicking onto a panel or the desktop and choosing ''Add Widgets > Get new Widgets > Download Widgets''.<br />
This will present a nice frontend for https://store.kde.org/ that allows you to install, uninstall, or update third-party plasmoid scripts with literally just one click.<br />
<br />
Many Plasmoid binaries are [https://aur.archlinux.org/packages.php?O=0&K=plasmoid&do_Search=Go&PP=25&SO=d&SB=v available from the AUR].<br />
<br />
===== Sound applet in the system tray =====<br />
<br />
[[Install]] {{Pkg|plasma-pa}} or {{Pkg|kmix}} (start Kmix from the Application Launcher). {{Pkg|plasma-pa}} is now installed by default with {{Grp|plasma}}, no further configuration needed.<br />
<br />
{{Note|1=To adjust the [https://bugs.kde.org/show_bug.cgi?id=313579#c28 step size of volume increments/decrements], add e.g. {{ic|1=VolumePercentageStep=1}} in the {{ic|[Global]}} section of {{ic|~/.config/kmixrc}}.}}<br />
<br />
===== Disable panel shadow =====<br />
<br />
As the Plasma panel is on top of other windows, its shadow is drawn over them. [https://bbs.archlinux.org/viewtopic.php?pid=1228394#p1228394] To disable this behaviour without impacting other shadows, [[install]] {{Pkg|xorg-xprop}} and run:<br />
<br />
$ xprop -remove _KDE_NET_WM_SHADOW<br />
<br />
then select the panel with the plus-sized cursor. [https://forum.kde.org/viewtopic.php?f=285&t=121592] For automation, install {{Pkg|xorg-xwininfo}} and create the following script:<br />
<br />
{{hc|/usr/local/bin/kde-no-shadow|<nowiki><br />
#!/bin/bash<br />
for WID in $(xwininfo -root -tree | sed '/"Plasma": ("plasmashell" "plasmashell")/!d; s/^ *\([^ ]*\) .*/\1/g'); do<br />
xprop -id $WID -remove _KDE_NET_WM_SHADOW<br />
done<br />
</nowiki>}}<br />
<br />
The script can be run on login with ''Add Script'' in ''Autostart'':<br />
<br />
$ kcmshell5 autostart<br />
<br />
==== Window decorations ====<br />
<br />
[https://store.kde.org/browse/cat/114/ Window decorations] can be changed in ''System Settings > Application Style > Window Decorations''.<br />
<br />
There you can also directly download and install more themes with one click, and some are available in the [https://aur.archlinux.org/packages.php?O=0&K=kdestyle&do_Search=Go&PP=25&SO=d&SB=v AUR].<br />
<br />
==== Icon themes ====<br />
<br />
Icon themes can be installed and changed on ''System Settings > Icons''.<br />
<br />
{{Note|Although all modern Linux desktops share the same icon theme format, desktops like [[GNOME]] use fewer icons (esp. in menus and toolbars). Themes developed for such desktops usually lack icons required by Plasma and KDE apps. It is recommended to install Plasma compatible icon themes instead.}}<br />
<br />
==== Fonts ====<br />
<br />
===== Fonts in a Plasma session look poor =====<br />
<br />
Try installing the {{Pkg|ttf-dejavu}} and {{Pkg|ttf-liberation}} packages.<br />
<br />
After the installation, be sure to log out and back in. You should not have to modify anything in ''System Settings > Fonts''. If you are using {{Pkg|qt5ct}}, the settings in Qt5 Configuration Tool may override the font settings in System Settings.<br />
<br />
If you have personally set up how your [[Fonts]] render, be aware that System Settings may alter their appearance. When you go ''System Settings > Fonts'' System Settings will likely alter your font configuration file ({{ic|fonts.conf}}).<br />
<br />
There is no way to prevent this, but, if you set the values to match your {{ic|fonts.conf}} file, the expected font rendering will return (it will require you to restart your application or in a few cases restart your desktop). Note that Gnome's Font Preferences also does this.<br />
<br />
===== Fonts are huge or seem disproportional =====<br />
<br />
Try to force font DPI to {{ic|'''96'''}} in ''System Settings > Fonts''.<br />
<br />
If that does not work, try setting the DPI directly in your Xorg configuration as documented in [[Xorg#Setting DPI manually]].<br />
<br />
==== Space efficiency ====<br />
<br />
The Plasma Netbook shell has been dropped from Plasma 5, see the following [https://forum.kde.org/viewtopic.php?f=289&t=126631&p=335947&hilit=plasma+netbook#p335899 KDE forum post]<br />
However, you can achieve something similar by editing the file {{ic|~/.config/kwinrc}} adding <br />
{{ic|1=BorderlessMaximizedWindows=true}} in the {{ic|[Windows]}} section.<br />
<br />
==== Thumbnail generation ====<br />
To allow thumbnail generation for media or document files on the desktop and in Dolphin, install {{Pkg|kdegraphics-thumbnailers}}, {{Pkg|ffmpegthumbs}} and {{AUR|kde-thumbnailer-odf}}.<br />
<br />
Then enable the thumbnail categories for the desktop via ''right click'' on the ''desktop background'' > ''Configure Desktop'' > ''Icons'' > ''More Preview Options...''.<br />
<br />
In ''Dolphin'', navigate to ''Control'' > ''General'' > ''Previews''.<br />
<br />
=== Printing ===<br />
<br />
{{Tip|Use the [[CUPS]] web interface for faster configuration. Printers configured in this way can be used in KDE applications. }}<br />
<br />
You can also configure printers in ''System Settings > Printers''. To use this method, you must first install {{Pkg|print-manager}} and {{Pkg|cups}}. See [[CUPS#Configuration]].<br />
<br />
=== Samba/Windows support ===<br />
<br />
If you want to have access to Windows services, install [[Samba]] (package {{Pkg|samba}}).<br />
<br />
The Dolphin share functionality requires the package {{Pkg|kdenetwork-filesharing}} and usershares, which the stock {{ic|smb.conf}} does not have enabled. Instructions to add them are in [[Samba#Creating usershare path]], after which sharing in Dolphin should work out of the box after restarting Samba.<br />
<br />
Plasma's abilities to access SMB shares are limited, though. Writing to Windows shares is problematic and opening files from such shares, e.g. large videos, makes Plasma copying the whole file to the local system first.<br />
To workaround this, you can install a GTK based file browser like {{Pkg|thunar}} with {{Pkg|gvfs}} and {{Pkg|gvfs-smb}} (and {{Pkg|gnome-keyring}} for saving login credentials) to access SMB shares in a more able way.<br />
Another possible workaround is to [[mount]] a Samba share via {{Pkg|cifs-utils}} to make it look to Plasma like if the SMB share was just a normal local folder and thus can be accessed normally.<br />
The mount command could look like the following for write access to a public share:<br />
# mount -t cifs -o username=*,password=*,uid=1000,gid=1000,file_mode=0660,dir_mode=0770 //networkhost/share/ /home/user/localmountpoint/<br />
Make it permanent:<br />
{{hc|/etc/fstab|<nowiki><br />
//networkhost/share/ /home/user/localmountpoint/ cifs defaults,username=*,password=*,uid=1000,gid=1000,file_mode=0660,dir_mode=0770 0 2<br />
</nowiki>}}<br />
It migh or it might not be necessary to append {{ic|.local}} to the hostname.<br />
<br />
An easier solution is to use {{AUR|samba-mounter-git}}, which offers basically the same functionality via an easy to use option located at ''System Settings'' > ''Network Drivers''.<br />
<br />
=== KDE Desktop activities ===<br />
<br />
[https://userbase.kde.org/Plasma#Activities KDE Desktop Activities] are special workspaces where you can select specific settings for each activity that apply only when you are using said activity.<br />
<br />
=== Power saving ===<br />
<br />
[[Install]] {{Pkg|powerdevil}} for an integrated power saving service called "'''Powerdevil Power Management'''", that may adjust the power saving profile of the system and/or the brightness of the screen (if supported).<br />
<br />
{{Accuracy|Regarding the note below, it might be that the problem is the logind setting ''LidSwitchIgnoreInhibited'' which defaults to ''yes''. [https://bbs.archlinux.org/viewtopic.php?pid&#61;1649022#p1649022]}}<br />
<br />
{{Note|Powerdevil may not [[Power management#Power managers|inhibit]] all logind settings (such as the lid close action for laptops). In these cases, the logind setting itself will need to be changed - see [[Power management#Power management with systemd]].}}<br />
<br />
=== Autostarting applications ===<br />
<br />
Plasma can autostart applications and run scripts on startup and shutdown. To autostart an application, navigate to ''System Settings > Startup and Shutdown > Autostart'' and add the program or shell script of your choice. For applications, a {{ic|.desktop}} file will be created, for shell scripts, a symlink will be created.<br />
<br />
{{Note|<br />
* Programs can be autostarted on login only, whilst shell scripts can also be run on shutdown or even before Plasma itself starts.<br />
* Shell scripts will only be run if they are marked executable.<br />
}}<br />
<br />
Place [[Desktop entries]] (i.e. {{ic|.desktop}} files) here:<br />
<br />
; {{ic|~/.config/autostart}}: for starting applications at login.<br />
<br />
Place or symlink shell scripts in one of the following directories:<br />
<br />
; {{ic|~/.config/plasma-workspace/env}}: for executing scripts at login before launching Plasma.<br />
; {{ic|~/.config/autostart-scripts}}: for executing scripts at login.<br />
; {{ic|~/.config/plasma-workspace/shutdown}}: for executing scripts on shutdown.<br />
<br />
=== Phonon ===<br />
<br />
From [[Wikipedia:Phonon (software)|Wikipedia]]:<br />
<br />
:''“Phonon is the multimedia API provided by KDE and is the standard abstraction for handling multimedia streams within KDE software and also used by several Qt applications.<br />
<br />
Phonon was originally created to allow KDE and Qt software to be independent of any single multimedia framework such as GStreamer or xine and to provide a stable API for a major version's lifetime.”''<br />
<br />
'''Phonon''' is being widely used within KDE, for both audio (e.g., the System notifications or KDE audio apps) and video (e.g., the Dolphin video thumbnails).<br />
<br />
==== Which backend should I choose? ====<br />
<br />
You can choose between backends based on [[GStreamer]] and [[VLC]] – each available in versions for Qt4 applications and Qt5 applications ({{Pkg|phonon-qt4-gstreamer}}, {{Pkg|phonon-qt5-gstreamer}} – {{Pkg|phonon-qt4-vlc}}, {{Pkg|phonon-qt5-vlc}}).<br />
<br />
[https://www.phoronix.com/scan.php?page=news_item&px=MTUwNDM Upstream prefers VLC] but prominent Linux distributions (Kubuntu and Fedora-KDE for example) prefer GStreamer because that allows them to easily leave out patented MPEG codecs from the default installation. Both backends have a slightly different [https://community.kde.org/Phonon/FeatureMatrix features set].<br />
<br />
In the past other backends were developed as well but are no longer maintained and their AUR packages have been deleted.<br />
<br />
{{Note|1=<br><br />
* Multiple backends can be installed at once and prioritized at ''System Settings > Multimedia > Backend''.<br />
* According to the [https://forum.kde.org/viewtopic.php?f=250&t=126476&p=335080 KDE forums], the VLC backend lacks support for [[wikipedia:ReplayGain|ReplayGain]].<br />
* If you choose the vlc backend, you may experience crashes every time kde wants to send you a audible warning (and in quite a number of other cases as well, see [https://forum.kde.org/viewtopic.php?f=289&t=135956])<br />
* A possible fix is to run<br />
{{bc|# /usr/lib/vlc/vlc-cache-gen -f /usr/lib/vlc/plugins}}<br />
}}<br />
<br />
== Applications ==<br />
<br />
The KDE project provides a suite of applications that integrate with the Plasma desktop. See the {{Grp|kde-applications}} group for a full listing of the available applications. Also see [[:Category:KDE]] for related KDE application pages.<br />
<br />
Aside from the programs provided in KDE Applications, there are many other applications available that can complement the Plasma desktop. Some of these are discussed below.<br />
<br />
=== System administration ===<br />
<br />
==== Terminate Xorg server through KDE System Settings ====<br />
<br />
Navigate to the submenu ''System Settings > Input Devices > Keyboard > Advanced (tab) > "Key Sequence to kill the X server"'' and ensure that the checkbox is ticked.<br />
<br />
==== KCM ====<br />
<br />
KCM stands for '''KC'''onfig '''M'''odule. KCMs can help you configure your system by providing interfaces in System Settings, or through the command line with ''kcmshell5''.<br />
<br />
* {{App|kde-gtk-config|GTK2 and GTK3 Configurator for KDE.|https://cgit.kde.org/kde-gtk-config.git|{{Pkg|kde-gtk-config}}}}<br />
* {{App|kcm-gtk|A GTK appearance KConfig Module.|https://launchpad.net/kcm-gtk|{{AUR|kcm-gtk}}{{Broken package link|{{aur-mirror|kcm-gtk}}}}}}<br />
* {{App|KCM Qt Graphics System|This KCM allows you to easily configure the standard Qt graphics system.|https://www.linux-apps.com/p/1127857/|{{AUR|kcm-qt-graphicssystem}}}}<br />
* {{App|UFW KControl Module|KDE4 control module for UFW ([[Uncomplicated Firewall]]).|https://www.linux-apps.com/p/1127851/|{{AUR|kcm-ufw}}}}<br />
* {{App|System policies|Set of configuration modules which allows administrator to change [[PolicyKit]] settings.|https://cgit.kde.org/polkit-kde-kcmodules-1.git|{{AUR|kcm-polkit-kde-git}}}}<br />
* {{App|wacom tablet|KDE GUI for the Wacom Linux Drivers.|https://www.linux-apps.com/p/1127862/|{{AUR|kcm-wacomtablet}}}}<br />
* {{App|Kcmsystemd|systemd control module for KDE.|https://github.com/rthomsen/kcmsystemd|{{Pkg|systemd-kcm}}}}<br />
<br />
More KCMs can be found at [https://www.linux-apps.com/search?projectSearchText=KCM linux-apps.com].<br />
<br />
=== Desktop search ===<br />
<br />
KDE implements desktop search with a software called Baloo, a file indexing and searching solution.<br />
<br />
==== Baloo ====<br />
<br />
===== Using and configuring Baloo =====<br />
<br />
In order to search using Baloo on the Plasma desktop, start krunner (default keyboard shortcut {{ic|ALT+F2}}) and type in your query. Within Dolphin press {{ic|CTRL+F}}.<br />
<br />
By default the Desktop Search KCM exposes only two options: A panel to blacklist folders and a way to disable it with one click.<br />
<br />
Alternatively you can edit your {{ic|~/.config/baloofilerc}} file ([https://community.kde.org/Baloo/Configuration info]). Additionally the {{ic|balooctl}} process can also be used. In order to disable Baloo run {{ic|balooctl stop}} and {{ic|balooctl disable}}.<br />
<br />
Once you added additional folders to the blacklist or disabled Baloo entirely, a process named {{ic|baloo_file_cleaner}} removes all unneeded index files automatically. They are stored under {{ic|~/.local/share/baloo/}}.<br />
<br />
===== How do I index a removable device? =====<br />
<br />
By default every removable device is blacklisted. You just have to remove your device from the blacklist in the KCM panel.<br />
<br />
=== Web browsers ===<br />
<br />
* {{App|[[Wikipedia:Konqueror|Konqueror]]|Part of the KDE project, supports two rendering engines – KHTML and the [[Chromium]]-based Qt WebEngine.|https://konqueror.org/|{{Pkg|konqueror}}}}<br />
* {{App|[[Wikipedia:QupZilla|QupZilla]]|A Qt web browser with Plasma integration features. It uses Qt WebEngine.|https://www.qupzilla.com/|{{Pkg|qupzilla}}}}<br />
* {{App|[[Chromium]]|Chromium and its proprietary variant Google Chrome have limited Plasma integration. [[KDE Wallet#KDE Wallet for Chrome and Chromium|They can use KWallet]] and KDE Open/Save windows.|https://www.chromium.org/|{{Pkg|chromium}}}}<br />
* {{App|[[Firefox]]|Firefox can be configured to better integrate with Plasma. See [[Firefox#KDE/GNOME integration|Firefox KDE integration]] for details.|https://mozilla.org/firefox|{{Pkg|firefox}}}}<br />
<br />
=== PIM ===<br />
<br />
KDE offers its own stack for personal information management. This includes emails, contacts, calendar, etc. To install all the PIM packages, you could use the meta-package {{Pkg|kde-meta-kdepim}}.<br />
<br />
==== Akonadi ====<br />
<br />
Akonadi is a system meant to act as a local cache for PIM data, regardless of its origin, which can be then used by other applications. This includes the user's emails, contacts, calendars, events, journals, alarms, notes, and so on.<br />
<br />
Akonadi does not store any data by itself: the storage format depends on the nature of the data (for example, contacts may be stored in vCard format).<br />
<br />
===== Installation =====<br />
<br />
Install {{Pkg|akonadi}}. For additional addons, install {{Pkg|kdepim-addons}}. For EWS support, install {{AUR|akonadi-ews-git}}.<br />
<br />
{{Note|If you wish to use a database engine other than MariaDB/MySQL, then when installing the {{Pkg|akonadi}} package, use the following command to skip installing the {{Pkg|mariadb}} dependencies:<br />
<br />
{{bc|# pacman -S akonadi --assume-installed mariadb}}<br />
<br />
}}<br />
<br />
===== Disabling Akonadi =====<br />
<br />
See this [https://userbase.kde.org/Akonadi#Disabling_the_Akonadi_subsystem section in the KDE userbase].<br />
<br />
===== Database configuration =====<br />
<br />
====== MariaDB/MySQL (using ZFS) ======<br />
<br />
If your home directory is on a ZFS pool, you will need to create {{ic|~/.config/akonadi/mysql-local.conf}} with the following contents:<br />
<br />
[mysqld]<br />
innodb_use_native_aio = 0<br />
<br />
Otherwise you will get the [[MySQL#OS error 22 when running on ZFS|OS error 22]]<br />
<br />
====== PostgreSQL ======<br />
<br />
Install and setup [[PostgreSQL]]. Make sure {{ic|postgresql.service}} is [[started]].<br />
<br />
Edit Akonadi configuration file so that it has the following contents:<br />
<br />
{{hc|~/.config/akonadi/akonadiserverrc|<nowiki><br />
[%General]<br />
Driver=QPSQL<br />
<br />
[QPSQL]<br />
Host=/run/postgresql/<br />
InitDbPath=/usr/bin/initdb<br />
Name=akonadi<br />
Options=<br />
Password=<br />
Port=5432<br />
ServerPath=/usr/bin/pg_ctl<br />
StartServer=true<br />
User=postgres<br />
</nowiki>}}<br />
<br />
{{Note|If your PostgreSQL database username, password, and port differ from {{ic|postgres}}, {{ic|}} (nothing), and {{ic|5432}}, then make sure you respectively change the configuration options, {{ic|1=User=}}, {{ic|1=Password=}}, and {{ic|1=Port=}}.}}<br />
<br />
Start Akonadi with {{ic|akonadictl start}}, and check its status: {{ic|akonadictl status}}.<br />
<br />
====== SQLite ======<br />
<br />
Edit Akonadi configuration file to match the configuration below:<br />
<br />
{{hc|~/.config/akonadi/akonadiserverrc|2=<br />
[%General]<br />
Driver=QSQLITE3<br />
<br />
[QSQLITE3]<br />
Name=/home/''username''/.local/share/akonadi/akonadi.db<br />
}}<br />
<br />
=== KDE Telepathy ===<br />
<br />
[https://community.kde.org/KTp KDE Telepathy] is a project with the goal to closely integrate Instant Messaging with the KDE desktop. It utilizes the Telepathy framework as a backend and is intended to replace Kopete.<br />
<br />
To install all Telepathy protocols, install the {{Grp|telepathy}} group.<br />
To use the KDE Telepathy client, install the {{Pkg|telepathy-kde-meta}} package that includes all the packages contained in the {{Grp|telepathy-kde}} group.<br />
<br />
==== Use Telegram with KDE Telepathy ====<br />
<br />
[[Telegram]] protocol is available using {{pkg|telepathy-haze}}, installing {{aur|telegram-purple}} or {{aur|telegram-purple-git}} and {{aur|telepathy-morse-git}}. The username is the Telegram account telephone number (complete with the national prefix {{ic|+''xx''}}, e.g. {{ic|+49}} for Germany).<br />
<br />
The configuration through the GUI may be tricky: if the phone number is not accepted when configuring a new account in the KDE Telepathy client (with an error message complaining about an invalid parameter which prevents the account creation), insert it between single quotes and then remove the quotes manually from the configuration file ({{ic|~/.local/share/telepathy/mission-control/accounts.cfg}}) after the account creation (if the quotes are not removed after, an authentication error should rise).<br />
<br />
{{Note|The configuration file should be edited manually when KDE Telepathy is not running, e.g. when there is no KDE desktop session active, otherwise manual changes may be overwritten by the software.}}<br />
<br />
=== Integrate Android ===<br />
<br />
[https://community.kde.org/KDEConnect KDE Connect] provides several features for you:<br />
<br />
* Share files and URLs to/from KDE from/to any app, without wires.<br />
* Touchpad emulation: Use your phone screen as your computer's touchpad.<br />
* Notifications sync (4.3+): Read your Android notifications from the desktop.<br />
* Shared clipboard: copy and paste between your phone and your computer.<br />
* Multimedia remote control: Use your phone as a remote for Linux media players.<br />
* WiFi connection: no usb wire or bluetooth needed.<br />
* RSA Encryption: your information is safe.<br />
<br />
You will need to install KDE Connect both on your computer and on your Android. For PC side, install {{Pkg|kdeconnect}} package. For Android side, install {{ic|KDE Connect}} from [https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp Google Play] or from [https://f-droid.org/repository/browse/?fdid=org.kde.kdeconnect_tp F-Droid].<br />
<br />
It is possible to use KDE Connect even if you do not use the Plasma desktop. For desktop environments that use AppIndicators, such as Unity, install {{AUR|indicator-kdeconnect}} package as well.<br />
<br />
== Tips and tricks ==<br />
<br />
=== Using an alternative window manager ===<br />
<br />
The component chooser settings in Plasma does not allow changing the window manager anymore. [https://github.com/KDE/plasma-desktop/commit/2f83a4434a888cd17b03af1f9925cbb054256ade]<br />
In order to change the window manager used you need to set the {{ic|KDEWM}} [[environment variable]] before KDE startup. [https://wiki.haskell.org/Xmonad/Using_xmonad_in_KDE] To do that you can create a script called {{ic|set_window_manager.sh}} in {{ic|~/.config/plasma-workspace/env}} and export the {{ic|KDEWM}} variable there. For example to use the i3 window manager :<br />
<br />
{{hc|~/.config/plasma-workspace/env/set_window_manager.sh|2=<br />
export KDEWM=/usr/bin/i3<br />
}}<br />
<br />
And then make it executable :<br />
<br />
{{bc|$ chmod +x ~/.config/plasma-workspace/env/set_window_manager.sh}}<br />
<br />
==== KDE/Openbox session ====<br />
<br />
The {{Pkg|openbox}} package provides a session for using KDE with [[Openbox]]. To make use of this session, select ''KDE/Openbox'' from the [[display manager]] menu.<br />
<br />
For those starting the session manually, add the following line to your {{ic|.xinitrc}} file:<br />
<br />
exec openbox-kde-session<br />
<br />
==== Compiz custom ====<br />
<br />
{{Out of date|The window manager selection dialogue no longer exists so ''Compiz custom'' is no longer an option.}}<br />
<br />
If you need to run Compiz with custom options and switches select ''Compiz custom'' and then create a script called {{ic|compiz-kde-launcher}} and add to it the commands you wish to use to start Compiz. See the example below:<br />
<br />
{{hc|/usr/local/bin/compiz-kde-launcher|<nowiki><br />
#!/bin/bash<br />
LIBGL_ALWAYS_INDIRECT=1<br />
compiz --replace &<br />
wait<br />
</nowiki>}}<br />
<br />
Then make it executable:<br />
<br />
$ chmod +x /usr/local/bin/compiz-kde-launcher<br />
<br />
==== Re-enabling compositing effects ====<br />
<br />
When replacing Kwin with a window manager which does not provide a Compositor (such as Openbox), any desktop compositing effects e.g. transparency will be lost. In this case, install and run a separate Composite manager to provide the effects such as [[Xcompmgr]] or [[Compton]].<br />
<br />
=== Configuring monitor resolution / multiple monitors ===<br />
<br />
To enable display resolution management and multiple monitors in Plasma, install {{Pkg|kscreen}}. This adds the additional options to ''Sytem Settings > Display and Monitor''.<br />
<br />
=== Disable opening application launcher with Super key (Windows key) ===<br />
<br />
To disable this feature you currently can run the following command:<br />
<br />
$ kwriteconfig5 --file kwinrc --group ModifierOnlyShortcuts --key Meta ""<br />
<br />
== Troubleshooting ==<br />
<br />
=== Configuration related ===<br />
<br />
Many problems in KDE are related to configuration.<br />
<br />
==== Plasma desktop behaves strangely ====<br />
<br />
Plasma problems are usually caused by unstable '''Plasma widgets''' (colloquially called ''plasmoids'') or '''Plasma themes'''. First, find which was the last widget or theme you had installed and disable it or uninstall it.<br />
<br />
So, if your desktop suddenly exhibits "locking up", this is likely caused by a faulty installed widget. If you cannot remember which widget you installed before the problem began (sometimes it can be an irregular problem), try to track it down by removing each widget until the problem ceases. Then you can uninstall the widget, and file a bug report (https://bugs.kde.org/) '''only if it is an official widget'''. If it is not, it is recommended you find the entry on https://store.kde.org/ and inform the developer of that widget about the problem (detailing steps to reproduce, etc).<br />
<br />
If you cannot find the problem, but you do not want ''all'' the settings to be lost, navigate to {{ic|~/.config}}:<br />
<br />
$ for j in plasma*; do mv -- "$j" "${j%}.bak"; done<br />
<br />
This command will '''rename all Plasma related configs''' to *.bak (e.g. {{ic|plasmarc.bak}}) of your user and when you will relogin into Plasma, you will have the '''default''' settings back. To undo that action, remove the .bak file extension. If you already have *.bak files, rename, move, or delete them first. It is highly recommended that you create regular backups anyway. See [[Synchronization and backup programs]] for a list of possible solutions.<br />
<br />
==== Clean cache to resolve upgrade problems ====<br />
<br />
The [https://bbs.archlinux.org/viewtopic.php?id=135301 problem] may be caused by old cache. Sometimes after an upgrade, the old cache might introduce strange, hard to debug behaviour such as unkillable shells, hangs when changing various settings and several other problems such as ark being unable to unrar or unzip or amarok not recognizing any of your music. This solution can also resolve problems with KDE and Qt programmes looking bad following upgrade.<br />
<br />
Rebuild your cache with the following commands:<br />
<br />
$ rm ~/.config/Trolltech.conf<br />
$ kbuildsycoca5 --noincremental<br />
<br />
=== Clean akonadi configuration to fix KMail ===<br />
<br />
First, make sure that KMail is not running. Then backup configuration:<br />
<br />
$ cp -a ~/.local/share/akonadi ~/.local/share/akonadi-old<br />
$ cp -a ~/.config/akonadi ~/.config/akonadi-old<br />
<br />
Start ''SystemSettings > Personal'' and remove all the resources. Go back to Dolphin and remove the original {{ic|~/.local/share/akonadi}} and<br />
{{ic|~/.config/akonadi}} - the copies you made ensure that you can back-track if necessary.<br />
<br />
Now go back to the System Settings page and carefully add the necessary resources. You should see the resource reading in your mail folders. Then start Kontact/KMail to see if it work properly.<br />
<br />
=== Fix empty IMAP inbox ===<br />
<br />
For some IMAP accounts, kmail will show the inbox as a container with all other folders of this account inside. Kmail does not show messages in the inbox container but in all other subfolders, see [https://bugs.kde.org/show_bug.cgi?id=284172 KDE Bug 284172]. To solve this problem simply disable the server side subscribition in the kmail account settings.<br />
<br />
=== Getting current state of KWin for support and debug purposes ===<br />
<br />
This command prints out a wonderful summary of the current state of KWin including used options, used compositing backend and relevant OpenGL driver capabilities. See more on [https://blog.martin-graesslin.com/blog/2012/03/on-getting-help-for-kwin-and-helping-kwin/ Martin's blog].<br />
<br />
$ qdbus org.kde.KWin /KWin supportInformation<br />
<br />
=== KF5/Qt5 applications do not display icons in i3/fvwm/awesome ===<br />
<br />
See [[Qt#Configuration of Qt5 apps under environments other than KDE Plasma]].<br />
<br />
=== Graphical related problems ===<br />
<br />
==== Plasma keeps crashing with legacy Nvidia ====<br />
<br />
This is caused by a [https://bugs.kde.org/show_bug.cgi?id=348753 bug in Plasma] when using the Nvidia-304xx driver. Rather than disabling compositing, create a file {{ic|kwin.sh}} in {{ic|~/.config/plasma-workspace/env/}} with the following contents:<br />
<br />
#!/bin/sh<br />
export KWIN_EXPLICIT_SYNC=0<br />
<br />
Then go to ''System Settings > Startup and Shutdown > Autostart'' and ''Check/Add'' the script as a pre-KDE startup file.<br />
<br />
==== Applications do not refresh properly ====<br />
<br />
If you use 3D-accelerated composition with [[Intel]], you might find that the Plasma panel and other applications do not refresh properly (stay frozen). Some Intel drivers have [https://bugzilla.redhat.com/show_bug.cgi?id=1259475 problems with EGL]. Go to ''System Settings > Display and Monitor > Compositor''. Set ''OpenGL interface'' to OpenGL 3.1. If that does not work, see [[Intel graphics#SNA issues]] for alternative solutions.<br />
<br />
==== Bad performance ====<br />
<br />
Make sure you have the proper driver for your GPU installed. See [[Xorg#Driver installation]] for more information. If you have an older card, it might help to [[#Disable desktop effects manually or automatically for defined applications]] or [[#Disable compositing]].<br />
<br />
===== Disable desktop effects manually or automatically for defined applications =====<br />
<br />
Plasma has desktop effects enabled by default and e.g. not every game will disable them automatically. You can disable desktop effects in ''System Settings > Desktop Effects'' and you can toggle desktop effects with {{ic|Alt+Shift+F12}}. Additionally, you can create custom KWin rules to automatically disable/enable compositing when a certain application/window starts under ''System Settings > Window Management > Window Rules''.<br />
<br />
===== Disable compositing =====<br />
<br />
In ''Sytem Settings > Display and Monitor'', uncheck ''Enable compositor on startup'' and restart Plasma.<br />
<br />
==== Flickering in fullscreen when compositing is enabled ====<br />
<br />
In ''Sytem Settings > Display and Monitor'', uncheck ''Allow applications to block compositing''. This may harm performance.<br />
<br />
==== Screen tearing with Nvidia ====<br />
<br />
By default, KWin compositing suffers from tearing when used with the proprietary Nvidia driver. To work around this, create a file {{ic|kwin.sh}} in {{ic|~/.config/plasma-workspace/env/}} with the following contents:<br />
<br />
#!/bin/sh<br />
export __GL_YIELD="USLEEP"<br />
<br />
This however does only work with OpenGL compositing.<br />
<br />
==== Plasma cursor sometimes shown incorrecty ====<br />
<br />
Create the directory {{ic|~/.icons/default}} and inside a file named {{ic|index.theme}} with the following contents:<br />
<br />
{{hc|/home/''archie''/.icons/default/index.theme|2=<br />
[Icon Theme]<br />
Inherits=breeze_cursors<br />
}}<br />
<br />
Execute the following command:<br />
<br />
$ ln -s /usr/share/icons/breeze_cursors/cursors ~/.icons/default/cursors<br />
<br />
=== Sound problems under Plasma 5 ===<br />
<br />
==== No sound after suspend in KDE ====<br />
<br />
If there is no sound after suspending and if KMix doesn't show audio devices which should be there, restarting plasmeshell and pulseaudio may help:<br />
<br />
$ killall plasmashell<br />
$ systemctl --user restart pulseaudio.service<br />
$ plasmashell<br />
<br />
Some applications may also need to be restarted in order for sound to play from them again.<br />
<br />
==== ALSA related problems ====<br />
<br />
{{Note|First make sure you have {{Pkg|alsa-lib}} and {{Pkg|alsa-utils}} installed.}}<br />
<br />
===== "Falling back to default" messages when trying to listen to any sound =====<br />
<br />
When you encounter such messages:<br />
<br />
The audio playback device ''name_of_the_sound_device'' does not work.<br />
Falling back to default<br />
<br />
Go to ''System Settings > Multimedia > Phonon'' and set the device named {{ic|default}} above all the other devices in each box you see.<br />
<br />
===== MP3 files cannot be played when using the GStreamer Phonon backend =====<br />
<br />
This can be solved by installing the GStreamer libav plugin (package {{Pkg|gst-libav}}). If you still encounter problems, you can try changing the Phonon backend used by installing another such as {{Pkg|phonon-qt4-vlc}} or {{Pkg|phonon-qt5-vlc}}.<br />
Then, make sure the backend is preferred via ''System Settings > Multimedia > Backend''.<br />
<br />
=== Inotify folder watch limit ===<br />
<br />
If you get the following error:<br />
<br />
KDE Baloo Filewatch service reached the inotify folder watch limit. File changes may be ignored.<br />
<br />
Then you will need to increase the inotify folder watch limit:<br />
<br />
# echo 524288 > /proc/sys/fs/inotify/max_user_watches<br />
<br />
To make changes permanent, create {{ic|/etc/sysctl.d/40-max-user-watches.conf}} with:<br />
<br />
fs.inotify.max_user_watches=524288<br />
<br />
=== Freezes when using Automount on a NFS volume ===<br />
<br />
Using [[Fstab#Automount with systemd]] on a [[NFS]] volume may cause freezes, see [https://bugs.kde.org/show_bug.cgi?id=354137 bug report upstream].<br />
<br />
=== No Suspend/Hibernate options ===<br />
<br />
If your system is able to suspend or hibernate using systemd but do not have these options shown in KDE, make sure {{Pkg|powerdevil}} is installed.<br />
<br />
=== Problems with saving credentials and persistently occuring KWallet dialogs ===<br />
It is not recommended to turn off the KWallet password saving system in the user settings as it is required to save encrypted credentials like WiFi passphrases for each user. Persistently occuring KWallet dialogs can be the consequence of turning it off.<br />
In case you find the dialogs to unlock the wallet annoying when applications want to access it, you can let the login managers {{ic|SDDM}} and {{ic|LightDM}} unlock the wallet at login automatically, see [[KDE_Wallet#Unlock_KDE_Wallet_automatically_on_login|KDE Wallet]]. The first wallet needs to be generated by KWallet (and not user-generated) in order to be usable for system program credentials.<br />
In case you want the wallet credentials not to be opened in memory for every application, you can restrict applications from accessing it with {{Pkg|kwalletmanager}} in the KWallet settings.<br />
If you do not care for credential encryption at all, you can simply leave the password forms blank when KWallet asks for the password while creating a wallet. In this case, applications can access passwords without having to unlock the wallet first.<br />
<br />
== See also ==<br />
<br />
* [https://www.kde.org/ KDE homepage]<br />
* [https://bugs.kde.org/ KDE bug tracker]<br />
* [https://blog.martin-graesslin.com/blog/kategorien/kde/ Martin Graesslin's blog]</div>Iunohttps://wiki.archlinux.org/index.php?title=Kernel&diff=476273Kernel2017-05-08T16:48:45Z<p>Iuno: /* AUR packages */ removed linux-cik as this configuration has been the default in the arch mainline kernel for a while</p>
<hr />
<div>[[Category:Kernel]]<br />
[[cs:Kernel Compilation]]<br />
[[es:Kernels]]<br />
[[fr:Noyaux Linux]]<br />
[[it:Kernels]]<br />
[[ja:カーネル]]<br />
[[ru:Kernels]]<br />
[[zh-hans:Kernels]]<br />
{{Related articles start}}<br />
{{Related|Kernel modules}}<br />
{{Related|Compile kernel module}}<br />
{{Related|Kernel Panics}}<br />
{{Related|Linux-ck}}<br />
{{Related|sysctl}}<br />
{{Related articles end}}<br />
<br />
According to [[Wikipedia:Kernel (computing)|Wikipedia]]:<br />
:The kernel is a computer program that constitutes the central core of a computer's operating system. It has complete control over everything that occurs in the system. As such, it is the first program loaded on startup, and then manages the remainder of the startup, as well as input/output requests from software, translating them into data processing instructions for the central processing unit. It is also responsible for managing memory, and for managing and communicating with computing peripherals, like printers, speakers, etc. The kernel is a fundamental part of a modern computer's operating system.<br />
<br />
There are various alternative kernels available for Arch Linux in addition to the mainline Linux kernel. This article lists some of the options available in the repositories with a brief description of each. There is also a description of patches that can be applied to the system's kernel. The article ends with an overview of custom kernel compilation with links to various methods.<br />
<br />
==Precompiled kernels==<br />
===Official packages===<br />
;{{Pkg|linux}}<br />
:The Linux kernel and modules from the ''core'' repository. Vanilla kernel with [https://projects.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/linux a few patches applied].<br />
<br />
;{{Pkg|linux-hardened}}<br />
:A security-focused Linux kernel applying a set of [https://github.com/thestinger/linux-hardened hardening patches] to mitigate kernel and userspace exploits. It also enables more upstream kernel hardening features than {{Pkg|Linux}} along with user namespaces (with unprivileged usage disabled by default via a patch), audit and [[SELinux]].<br />
<br />
;{{Pkg|linux-lts}}<br />
:Long term support (LTS) Linux kernel and modules from the ''core'' repository.<br />
<br />
;{{Pkg|linux-zen}}<br />
:The [https://github.com/zen-kernel/zen-kernel ZEN Kernel] is the result of a collaborative effort of kernel hackers to provide the best Linux kernel possible for everyday systems.<br />
<br />
===AUR packages===<br />
<br />
Note for [[AUR]] packages, "pre-compiled" means the packages are (usually) maintained, tested and verified to be working. Some of the listed packages may also be available as binary packages via [[Unofficial repositories]]. <br />
<br />
;{{AUR|linux-aufs_friendly}}<br />
:The aufs-compatible linux kernel and modules, useful when using [[docker]].<br />
<br />
;{{AUR|linux-ck}}<br />
:Linux Kernel built with Con Kolivas' ck1 patchset—see the [[#-ck]] section or the [[linux-ck]] page. Additional options which can be toggled on/off in the [[PKGBUILD]] include: BFQ scheduler, nconfig, localmodconfig and use running kernel's config.<br />
<br />
;{{AUR|linux-fbcondecor}}<br />
:The Linux Kernel and modules with [[Fbsplash|fbcondecor support]]. <br />
<br />
;{{AUR|linux-git}}<br />
:Linux kernel and modules built using sources from [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git Linus Torvalds' Git repository].<br />
<br />
;{{AUR|linux-ice}}<br />
:The Linux Kernel and modules with gentoo-sources patchset and [[TuxOnIce]] support.<br />
<br />
;{{AUR|linux-libre}}, {{AUR|linux-libre-lts}}, {{AUR|linux-libre-rt}}, {{AUR|linux-libre-xen}}<br />
:The Linux Kernels without "binary blobs".<br />
<br />
;{{AUR|linux-lqx}}<br />
:[http://liquorix.net Liquorix] is a distro kernel replacement built using a Debian-targeted configuration and the ZEN kernel sources. Designed for desktop, multimedia, and gaming workloads, it is often used as a Debian Linux performance replacement kernel. Damentz, the maintainer of the Liquorix patchset, is a developer for the ZEN patchset as well.<br />
<br />
;{{AUR|linux-lts310}}<br />
:The Linux 3.10 Long-Term Support Kernel and modules.<br />
<br />
;{{AUR|linux-lts312}}<br />
:The Linux 3.12 Long-Term Support Kernel and modules.<br />
<br />
;{{AUR|linux-mainline}}<br />
:The Mainline Linux Kernel and modules.<br />
<br />
;{{AUR|linux-mptcp}}<br />
:The Linux Kernel and modules with [http://multipath-tcp.org/ Multipath TCP] support.<br />
<br />
;{{AUR|linux-pf}}<br />
:Linux kernel and modules with the pf-kernel patch [-ck patchset (BFS included), TuxOnIce, BFQ] and aufs3.<br />
<br />
;{{AUR|linux-rt}}<br />
:Linux kernel with the realtime patch set. Improves latency and introduces hard realtime support. https://rt.wiki.kernel.org/<br />
<br />
;{{AUR|linux-tresor}}/{{AUR|linux-lts-tresor}}<br />
:The current/LTS Linux Kernel and modules with integrated [https://www1.informatik.uni-erlangen.de/tresor TRESOR]<br />
<br />
;{{AUR|linux-vfio}}/{{AUR|linux-vfio-lts}}<br />
:The Linux kernel and a few patches written by Alex Williamson (acs override and i915) to enable the ability to do PCI Passthrough with KVM on some machines.<br />
<br />
==Patches and Patchsets==<br />
<br />
There are lots of reasons to patch your kernel, the major ones are for performance or support for non-mainline features such as reiser4 file system support. Other reasons might include fun and to see how it is done and what the improvements are.<br />
<br />
However, it is important to note that the best way to increase the speed of your system is to first tailor your kernel to your system, especially the architecture and processor type. For this reason using pre-packaged versions of custom kernels with generic architecture settings is not recommended or really worth it. A further benefit is that you can reduce the size of your kernel (and therefore build time) by not including support for things you do not have or use. For example, you might start with the stock kernel config when a new kernel version is released and remove support for things like bluetooth, video4linux, 1000Mbit ethernet, etc.; functionality you know you will not require for your specific machine. Although this page is not about customizing your kernel config, it is recommended as a first step--before moving on to using a patchset once you have grasped the fundamentals involved.<br />
<br />
The config files for the Arch kernel packages can be used as a starting point. They are in the Arch package source files, for example [https://projects.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/linux] linked from {{Pkg|linux}}. The config file of your currently running kernel may also be available in your file system at {{ic|/proc/config.gz}} if the {{ic|CONFIG_IKCONFIG_PROC}} kernel option is enabled.<br />
<br />
===How to install===<br />
<br />
The installation process of custom kernel packages relies on the Arch Build System (ABS). If you have not built any custom packages yet you may consult the following articles: [[Arch Build System]] and [[Creating packages]].<br />
<br />
If you have not actually patched or customized a kernel before it is not that hard and there are many PKGBUILDs on the forum for individual patchsets. However, you are advised to start from scratch with a bit of research on the benefits of each patchset, rather than just arbitrarily picking one. This way you will learn much more about what you are doing rather than just choosing a kernel at startup and then be left wondering what it actually does.<br />
<br />
See [[#Compilation]].<br />
<br />
{{note|Do not forget to change the boot options in your bootloader, e.g. [[GRUB]], to use the new kernel.}}<br />
<br />
===Major patchsets===<br />
<br />
First of all it is important to note that patchsets are developed by a variety of people. Some of these people are actually involved in the production of the linux kernel and others are hobbyists, which may reflect its level of reliability and stability.<br />
<br />
It is also worth noting that some patchsets are built on the back of other patchsets (which may or may not be reflected in the title of the patch). Patchsets (and kernel updates) can be released '''very''' frequently and often it is not worth keeping up with ALL of them; so, do not go crazy, unless you make it your hobby!<br />
<br />
You can search Google for more sets, but remember to use quotes ({{ic|"-nitro"}}, for example); otherwise, Google will deliberately '''NOT''' show the results you want!<br />
<br />
{{note|This section is for '''information only''' - clearly no guarantees of stability or reliability are implied by inclusion on this page.}}<br />
<br />
====-ck====<br />
[[Linux-ck]] contains patches designed to improve system responsiveness with specific emphasis on the desktop, but suitable to any workload. The patches are created and maintained by Con Kolivas, his site is at http://users.tpg.com.au/ckolivas/kernel/. Con maintains a full set but also provides the patches broken down so you can add only those you prefer.<br />
<br />
The -ck patches can be found at http://ck.kolivas.org/patches/<br />
<br />
====-rt====<br />
<br />
This patchset is maintained by a small group of core developers, led by Ingo Molnar. This patch allows nearly all of the kernel to be preempted, with the exception of a few very small regions of code ("raw_spinlock critical regions"). This is done by replacing most kernel spinlocks with mutexes that support priority inheritance, as well as moving all interrupt and software interrupts to kernel threads. <br />
<br />
It further incorporates high resolution timers - a patch set, which is independently maintained.<br />
<br />
[as said from the [https://rt.wiki.kernel.org/index.php/CONFIG_PREEMPT_RT_Patch Real-Time Linux Wiki]]<br />
<br />
patch at https://www.kernel.org/pub/linux/kernel/projects/rt/<br />
<br />
====-bld====<br />
{{Warning|This patch is in development.}}<br />
BLD is best described as a O(1) CPU picking technique. Which is done by reordering CPU runqueues based on runqueue loads. In other words, it keeps the scheduler aware of the load changes, which helps scheduler to keep runqueues in an order. This technique does not depend on scheduler ticks. The two most simple things in this technique are: load tracking and runqueue ordering; these are relatively simpler operations. Load tracking will be done whenever a load change happens on the system and based on this load change runqueue will be ordered. So, if we have an ordered runqueue from lowest to highest, then picking the less (or even busiest) runqueue is easy. Scheduler can pick the lowest runqueue without calculation and comparison at the time of placing a task in a runqueue. And while trying to distribute load at sched_exec and sched_fork our best choice is to pick the lowest busiest runqueue of the system. And in this way, system remains balanced without doing any load balancing. At the time of try_to_wake_up picking the idlest runqueue is topmost priority but it has been done as per domain basis to utilize CPU cache properly and it's an area where more concentration is requires.<br />
<br />
Google Code web page: https://code.google.com/p/bld/<br />
<br />
====Tiny-Patches====<br />
The goal of [http://elinux.org/Linux_Tiny Linux Tiny] is to reduce its memory and disk footprint, as well as to add features to aid working on small systems. Target users are developers of embedded system and users of small or legacy machines such as 386s.<br />
<br />
Patch releases against the mainstream Linux kernel have been discontinued. The developers chose to focus on a few patches and spend their time trying to get them merged into the mainline kernel.<br />
<br />
====-pf====<br />
{{AUR|linux-pf}} is yet another Linux kernel fork which provides you with a handful of awesome features not merged into mainline. It is based on neither existing Linux fork nor patchset, although some unofficial ports may be used if required patches have not been released officially.<br />
The most prominent patches of linux-pf are TuxOnIce, the CK patchset (most notably BFS), AUFS3, LinuxIMQ, l7 filter and BFQ.<br />
<br />
See [[linux-pf]] for more information.<br />
<br />
===Individual patches===<br />
<br />
These are patches which can be simply included in any build of a vanilla kernel or incorporated (probably with some major tweaking) into another patchset.<br />
<br />
====Reiser4====<br />
<br />
[[Reiser4]]<br />
<br />
====fbsplash====<br />
[[fbsplash]]<br />
<br />
== Compilation ==<br />
Arch Linux provides for several methods of kernel compilation.<br />
<br />
=== Using the Arch Build System ===<br />
Using the [[Arch Build System]] takes advantage of the high quality of the existing {{Pkg|linux}} [[PKGBUILD]] and the benefits of [[Wikipedia:Package management system|package management]]. The PKGBUILD is structured so that you can stop the build after the source is downloaded and configure the kernel.<br />
<br />
See [[Kernels/Arch Build System]].<br />
<br />
=== Traditional ===<br />
This involves manually downloading a source tarball, and compiling in your home directory as a normal user. Once configured, two installation methods are available; the traditional manual method, or with [[Makepkg]] + [[Pacman]].<br />
<br />
See [[Kernels/Traditional compilation]].<br />
<br />
== See also ==<br />
*[http://www.kroah.com/lkn/ O'Reilly - Linux Kernel in a Nutshell] (free ebook)</div>Iunohttps://wiki.archlinux.org/index.php?title=Talk:ATI&diff=473309Talk:ATI2017-04-08T16:48:57Z<p>Iuno: /* Restructuring */ discuss Xorg#AMD</p>
<hr />
<div>== <s>Move</s> ==<br />
<br />
So this page now covers {{Pkg|xf86-video-ati}} and {{Pkg|xf86-video-amdgpu}}. As I understand they are closely related and share quite some code, so it makes sense to keep them on the same page.<br />
<br />
The name of the page doesn't seem appropriate anymore however. I am thinking something like "[[AMD graphics]]", like [[Intel graphics]], although that might not make clear that this is about the open source driver. On the other hand, [[AMD graphics (open-source)]] or [[AMD open-source graphics]] might be too long.<br />
<br />
What do other people think? Should we move the page? What should be the new name? Thanks. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 16:15, 24 November 2015 (UTC)<br />
<br />
:How much differences are between kernel/module parameters, etc.?<br />
:Don't forget troubleshooting, debugging, tools, etc. may differ.<br />
:I like the name AMD graphics, and I would prefer this for the ('official') AMD driver.<br />
:A separate page would be something I prefer, but if they are '80/90%' the same, it may be more clear to keep using this page.<br />
:[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 20:53, 25 November 2015 (UTC)<br />
<br />
::I am not really sure about the differences to be honest, it might well be that there is quite a lot of difference. There is a lot of information on [https://www.phoronix.com/scan.php?page=search&q=AMDGPU Phoronix], but a lot is still unclear to me. It would be nice to get some input from someone who has some more experience with it.<br />
::"AMD graphics" indeed is too ambiguous to use for the open-source driver. If we decide to split off the AMDGPU stuff, we can just keep this at [[ATI]] and the new page at [[AMDGPU]], I think.<br />
::[[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 21:36, 25 November 2015 (UTC)<br />
<br />
:::Although Phoronix daily publish articles about the new driver, it would be better to have a more 'reliable' source.<br />
:::Maybe we need to wait for users upgrading their cards and also give (the) AMD (module) a bit more time to develop.<br />
:::See my other question about the architect/GPU's that need or could upgrade.<br />
:::Is it supposed to replace the xf86-video-ati driver?<br />
:::[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 21:52, 25 November 2015 (UTC)<br />
<br />
There now is a [[AMDGPU]] page. All info related to the amdgpu driver with GNC 1.2 cards should be moved there. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 13:22, 16 February 2016 (UTC)<br />
<br />
== <s>Adding xf86-video-amdgpu</s> ==<br />
<br />
I would like to know what cards should use xf86-video-amdgpu instead of xf86-video-ati; if I understand correctly it is possible (some) older cards are also compatible with this driver.<br />
Is there an official status page (like if DPM works, what is supported, etc.)?<br />
<br />
Thanks!<br />
<br />
[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 20:44, 25 November 2015 (UTC)<br />
<br />
:The [http://www.x.org/wiki/RadeonFeature/ feature matrix] says only "Volcanic Islands" GPUs are supported, I believe that that is the codename for Graphics Core Next (GCN) 1.2. You can find all cards that are based on GCN 1.2 at [[Wikipedia:List of AMD graphics processing units]]. The feature matrix also lists what features are supported.<br />
:I am not sure about older cards, but I think this is as "official" as it's going to get. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 21:19, 25 November 2015 (UTC)<br />
<br />
::Thanks for the reply. :)<br />
::I've read a few reports of users that the driver works on older GCN's, but this should need more testing.<br />
::How much stable and complete is the new driver? I think we need more info before adding a new wiki page.<br />
::[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 22:00, 25 November 2015 (UTC)<br />
<br />
:::Looks like the gentoo wiki pages for the [https://wiki.gentoo.org/wiki/Radeon#Feature_support Radeon] and [https://wiki.gentoo.org/wiki/Amdgpu#Feature_support AMDGPU] drivers have tables for which graphics cards are supported by which open-source driver. Presumably this information is valid for Radeon and AMDGPU themselves, rather than just for their respective Gentoo packages (and is accurate)? [[User:ShadowElemental|ShadowElemental]] ([[User talk:ShadowElemental|talk]]) 04:21, 13 January 2016 (UTC)<br />
<br />
See [[Xorg#AMD]]. Now also linked from [[ATI]] and [[AMDGPU]]. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 12:21, 2 March 2017 (UTC)<br />
<br />
== The generic modesetting driver ==<br />
<br />
We should also mention the generic modesetting driver. For my card (HD6570), this driver outperforms the ATI driver (I have tested it with glxgears, gtkperf and Unigene Valley) and some benchmarks available on the web seems to go in the same direction. The generic driver gives 2D acceleration via glamor and the 3D mesa libraries; 3D acceleration is given by the Mesa libraries. It is not clear that the modesetting driver is better under all circumstances but it is a "real" driver that is worth considering.<br />
<br />
{{unsigned|07:08, 6 October 2016|Olive}}<br />
<br />
== Turn vsync off ==<br />
<br />
driver="dri2" works both with DRI2 and DRI3. Also I would suggest changing vblank_mode to 1, because 0 is "force disable" and 1 is "disable by default", which seems more correct to me.<br />
<br />
{{unsigned|19:55, 12 December 2016|Equeim}}<br />
<br />
:You are completely right, this section should be edited, there's no need for "Reason: Is this still valid with DRI3? (which is default)", I will be free to remove it since it works on all drivers with DRI3 (nouveau, radeon etc.). You are also right about vblank_mode, but I've tested it just now, and it should stay 0 because some applications may refuse to disable it when it's "by default" (such as Chromium/Chrome). <br />
<br />
:However, there is something with mutter/clutter on Gnome-Shell/Cinnamon/Budgie etc. that makes browsers behave weird if it's set to 0, with 1, behaviour is as expected, so maybe we should add that as an note or added section? Here is bug explained: https://bugs.freedesktop.org/show_bug.cgi?id=99418<br />
<br />
:I would add notice for Gnome-Shell (mutter/clutter based WM), but I need second opinion. [[User:Lpr|Lpr]] ([[User talk:Lpr|talk]]) 22:36, 1 February 2017 (UTC)<br />
<br />
== Restructuring ==<br />
<br />
This is still called "ATI", after the company that has been acquired by AMD eleven years ago.<br />
I think this is rather confusing because the article is covering the radeon DRM driver, Mesa stuff etc. and nothing really carries the name ATI still inside it, besides the old ddx driver.<br />
<br />
Also, the old stuff about catalyst and fglrx could get into a separate, legacy article as imho most Arch users should not be concerned about that stuff.<br />
<br />
The "quick start guide" that comes after the installation guide (https://wiki.archlinux.org/index.php/General_recommendations#Display_drivers) also only refers to [[ATI]], [[Intel]] and [[NVIDIA]].<br />
<br />
I would like to restructure this whole stuff and add some more knowledge about the actual graphics stacks.<br />
<br />
In a separate, e.g. "graphics drivers" article we could <br />
* note that there are free and proprietary stacks<br />
* explain that there isn't an actual "graphics driver" but a graphics stack that consists of DRM/kernel drivers, the libdrm and userspace drivers for 3D, Video, GPGPU and X<br />
* present the different stacks in a table, say which stack supports which hardware and link to separate articles for each: Intel, free AMD stack, AMDGPU-PRO, nouveau, Nvidia, and maybe one legacy ATI/AMD stacks.<br />
* recommend to use free stacks in general. Also recommend generic modesetting w/ glamor instead of old ddx drivers<br />
<br />
Then, in each article with the more meaningful titles keep the same info for each of the stacks (tips, troubleshooting, ...).<br />
<br />
<br />
How do you guys think about that proposal?<br />
<br />
[[User:Iuno|Iuno]] ([[User talk:Iuno|talk]]) 22:50, 7 April 2017 (UTC)<br />
<br />
:* What are the "more meaningful titles" that you propose?<br />
:* There is no catalyst/fglrx info on this page.<br />
:* The "quick start guide" should point to [[Xorg#Driver_installation]], where most of your proposal is already covered. If not, feel free to prepare a draft on your userpage so that we can look at it.<br />
:-- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 07:27, 8 April 2017 (UTC)<br />
<br />
:: Thanks for your answer. For "more meaningful titles" I'd suggest some consistency. E.g. there is [[Intel graphics]] (which seems fine on it's own), [[NVIDIA]] (the brand name that should also be fine as they build GPUs and SoCs, the latter might not be significant here), [[Nouveau]] (driver stack name). And then there is [[ATI]], as mentioned a brand name that died many years ago and the relevant article covers quite recent hardware. And of course [[AMDGPU]], the name of the driver stack that newbies might not now. [[Radeon]] also redirects to [[ATI]], as does [[Amd]]. If a user searches one term for AMD graphics, they land in [[ATI]] 99% and that's confusing imho. Sure, there is the introduction mentioning amdgpu and catalyst but should this not be on a short and clear overview page and then link to relevant article?<br />
:: I like the table at [[Xorg#Driver_installation]] very much. But here you can also see there is catalyst mentioned instead of amdgpu-pro. Also it covers OpenGL but not VA-API, VDPAU, Vulkan or OpenCL. Also, it lists ddx drivers and make them look like a requirement but they don't really offer advantages over the generic modesetting driver at all anymore. The opposite is true for some users.<br />
:: I also dont' get what the GCN table is doing there: [[Xorg#AMD]]. I added the info about amdgpu compatibility a while ago on [[ATI]] or [[AMDGPU]] and it got removed. Also, this section is not tied to X, as it applies to Wayland too. <br />
:: -- [[User:Iuno|Iuno]] ([[User talk:Iuno|talk]]) 16:29, 8 April 2017 (UTC)</div>Iunohttps://wiki.archlinux.org/index.php?title=Talk:ATI&diff=473308Talk:ATI2017-04-08T16:40:19Z<p>Iuno: /* Restructuring */ add info about table on Xorg#Driver_installation</p>
<hr />
<div>== <s>Move</s> ==<br />
<br />
So this page now covers {{Pkg|xf86-video-ati}} and {{Pkg|xf86-video-amdgpu}}. As I understand they are closely related and share quite some code, so it makes sense to keep them on the same page.<br />
<br />
The name of the page doesn't seem appropriate anymore however. I am thinking something like "[[AMD graphics]]", like [[Intel graphics]], although that might not make clear that this is about the open source driver. On the other hand, [[AMD graphics (open-source)]] or [[AMD open-source graphics]] might be too long.<br />
<br />
What do other people think? Should we move the page? What should be the new name? Thanks. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 16:15, 24 November 2015 (UTC)<br />
<br />
:How much differences are between kernel/module parameters, etc.?<br />
:Don't forget troubleshooting, debugging, tools, etc. may differ.<br />
:I like the name AMD graphics, and I would prefer this for the ('official') AMD driver.<br />
:A separate page would be something I prefer, but if they are '80/90%' the same, it may be more clear to keep using this page.<br />
:[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 20:53, 25 November 2015 (UTC)<br />
<br />
::I am not really sure about the differences to be honest, it might well be that there is quite a lot of difference. There is a lot of information on [https://www.phoronix.com/scan.php?page=search&q=AMDGPU Phoronix], but a lot is still unclear to me. It would be nice to get some input from someone who has some more experience with it.<br />
::"AMD graphics" indeed is too ambiguous to use for the open-source driver. If we decide to split off the AMDGPU stuff, we can just keep this at [[ATI]] and the new page at [[AMDGPU]], I think.<br />
::[[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 21:36, 25 November 2015 (UTC)<br />
<br />
:::Although Phoronix daily publish articles about the new driver, it would be better to have a more 'reliable' source.<br />
:::Maybe we need to wait for users upgrading their cards and also give (the) AMD (module) a bit more time to develop.<br />
:::See my other question about the architect/GPU's that need or could upgrade.<br />
:::Is it supposed to replace the xf86-video-ati driver?<br />
:::[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 21:52, 25 November 2015 (UTC)<br />
<br />
There now is a [[AMDGPU]] page. All info related to the amdgpu driver with GNC 1.2 cards should be moved there. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 13:22, 16 February 2016 (UTC)<br />
<br />
== <s>Adding xf86-video-amdgpu</s> ==<br />
<br />
I would like to know what cards should use xf86-video-amdgpu instead of xf86-video-ati; if I understand correctly it is possible (some) older cards are also compatible with this driver.<br />
Is there an official status page (like if DPM works, what is supported, etc.)?<br />
<br />
Thanks!<br />
<br />
[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 20:44, 25 November 2015 (UTC)<br />
<br />
:The [http://www.x.org/wiki/RadeonFeature/ feature matrix] says only "Volcanic Islands" GPUs are supported, I believe that that is the codename for Graphics Core Next (GCN) 1.2. You can find all cards that are based on GCN 1.2 at [[Wikipedia:List of AMD graphics processing units]]. The feature matrix also lists what features are supported.<br />
:I am not sure about older cards, but I think this is as "official" as it's going to get. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 21:19, 25 November 2015 (UTC)<br />
<br />
::Thanks for the reply. :)<br />
::I've read a few reports of users that the driver works on older GCN's, but this should need more testing.<br />
::How much stable and complete is the new driver? I think we need more info before adding a new wiki page.<br />
::[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 22:00, 25 November 2015 (UTC)<br />
<br />
:::Looks like the gentoo wiki pages for the [https://wiki.gentoo.org/wiki/Radeon#Feature_support Radeon] and [https://wiki.gentoo.org/wiki/Amdgpu#Feature_support AMDGPU] drivers have tables for which graphics cards are supported by which open-source driver. Presumably this information is valid for Radeon and AMDGPU themselves, rather than just for their respective Gentoo packages (and is accurate)? [[User:ShadowElemental|ShadowElemental]] ([[User talk:ShadowElemental|talk]]) 04:21, 13 January 2016 (UTC)<br />
<br />
See [[Xorg#AMD]]. Now also linked from [[ATI]] and [[AMDGPU]]. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 12:21, 2 March 2017 (UTC)<br />
<br />
== The generic modesetting driver ==<br />
<br />
We should also mention the generic modesetting driver. For my card (HD6570), this driver outperforms the ATI driver (I have tested it with glxgears, gtkperf and Unigene Valley) and some benchmarks available on the web seems to go in the same direction. The generic driver gives 2D acceleration via glamor and the 3D mesa libraries; 3D acceleration is given by the Mesa libraries. It is not clear that the modesetting driver is better under all circumstances but it is a "real" driver that is worth considering.<br />
<br />
{{unsigned|07:08, 6 October 2016|Olive}}<br />
<br />
== Turn vsync off ==<br />
<br />
driver="dri2" works both with DRI2 and DRI3. Also I would suggest changing vblank_mode to 1, because 0 is "force disable" and 1 is "disable by default", which seems more correct to me.<br />
<br />
{{unsigned|19:55, 12 December 2016|Equeim}}<br />
<br />
:You are completely right, this section should be edited, there's no need for "Reason: Is this still valid with DRI3? (which is default)", I will be free to remove it since it works on all drivers with DRI3 (nouveau, radeon etc.). You are also right about vblank_mode, but I've tested it just now, and it should stay 0 because some applications may refuse to disable it when it's "by default" (such as Chromium/Chrome). <br />
<br />
:However, there is something with mutter/clutter on Gnome-Shell/Cinnamon/Budgie etc. that makes browsers behave weird if it's set to 0, with 1, behaviour is as expected, so maybe we should add that as an note or added section? Here is bug explained: https://bugs.freedesktop.org/show_bug.cgi?id=99418<br />
<br />
:I would add notice for Gnome-Shell (mutter/clutter based WM), but I need second opinion. [[User:Lpr|Lpr]] ([[User talk:Lpr|talk]]) 22:36, 1 February 2017 (UTC)<br />
<br />
== Restructuring ==<br />
<br />
This is still called "ATI", after the company that has been acquired by AMD eleven years ago.<br />
I think this is rather confusing because the article is covering the radeon DRM driver, Mesa stuff etc. and nothing really carries the name ATI still inside it, besides the old ddx driver.<br />
<br />
Also, the old stuff about catalyst and fglrx could get into a separate, legacy article as imho most Arch users should not be concerned about that stuff.<br />
<br />
The "quick start guide" that comes after the installation guide (https://wiki.archlinux.org/index.php/General_recommendations#Display_drivers) also only refers to [[ATI]], [[Intel]] and [[NVIDIA]].<br />
<br />
I would like to restructure this whole stuff and add some more knowledge about the actual graphics stacks.<br />
<br />
In a separate, e.g. "graphics drivers" article we could <br />
* note that there are free and proprietary stacks<br />
* explain that there isn't an actual "graphics driver" but a graphics stack that consists of DRM/kernel drivers, the libdrm and userspace drivers for 3D, Video, GPGPU and X<br />
* present the different stacks in a table, say which stack supports which hardware and link to separate articles for each: Intel, free AMD stack, AMDGPU-PRO, nouveau, Nvidia, and maybe one legacy ATI/AMD stacks.<br />
* recommend to use free stacks in general. Also recommend generic modesetting w/ glamor instead of old ddx drivers<br />
<br />
Then, in each article with the more meaningful titles keep the same info for each of the stacks (tips, troubleshooting, ...).<br />
<br />
<br />
How do you guys think about that proposal?<br />
<br />
[[User:Iuno|Iuno]] ([[User talk:Iuno|talk]]) 22:50, 7 April 2017 (UTC)<br />
<br />
:* What are the "more meaningful titles" that you propose?<br />
:* There is no catalyst/fglrx info on this page.<br />
:* The "quick start guide" should point to [[Xorg#Driver_installation]], where most of your proposal is already covered. If not, feel free to prepare a draft on your userpage so that we can look at it.<br />
:-- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 07:27, 8 April 2017 (UTC)<br />
<br />
:: Thanks for your answer. For "more meaningful titles" I'd suggest some consistency. E.g. there is [[Intel graphics]] (which seems fine on it's own), [[NVIDIA]] (the brand name that should also be fine as they build GPUs and SoCs, the latter might not be significant here), [[Nouveau]] (driver stack name). And then there is [[ATI]], as mentioned a brand name that died many years ago and the relevant article covers quite recent hardware. And of course [[AMDGPU]], the name of the driver stack that newbies might not now. [[Radeon]] also redirects to [[ATI]], as does [[Amd]]. If a user searches one term for AMD graphics, they land in [[ATI]] 99% and that's confusing imho. Sure, there is the introduction mentioning amdgpu and catalyst but should this not be on a short and clear overview page and then link to relevant article?<br />
:: I like the table at [[Xorg#Driver_installation]] very much. But here you can also see there is catalyst mentioned instead of amdgpu-pro. Also it covers OpenGL but not VA-API, VDPAU, Vulkan or OpenCL. Also, it lists ddx drivers and make them look like a requirement but they don't really offer advantages over the generic modesetting driver at all anymore. The opposite is true for some users.<br />
:: -- [[User:Iuno|Iuno]] ([[User talk:Iuno|talk]]) 16:29, 8 April 2017 (UTC)</div>Iunohttps://wiki.archlinux.org/index.php?title=Talk:ATI&diff=473306Talk:ATI2017-04-08T16:30:46Z<p>Iuno: /* Restructuring */ re</p>
<hr />
<div>== <s>Move</s> ==<br />
<br />
So this page now covers {{Pkg|xf86-video-ati}} and {{Pkg|xf86-video-amdgpu}}. As I understand they are closely related and share quite some code, so it makes sense to keep them on the same page.<br />
<br />
The name of the page doesn't seem appropriate anymore however. I am thinking something like "[[AMD graphics]]", like [[Intel graphics]], although that might not make clear that this is about the open source driver. On the other hand, [[AMD graphics (open-source)]] or [[AMD open-source graphics]] might be too long.<br />
<br />
What do other people think? Should we move the page? What should be the new name? Thanks. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 16:15, 24 November 2015 (UTC)<br />
<br />
:How much differences are between kernel/module parameters, etc.?<br />
:Don't forget troubleshooting, debugging, tools, etc. may differ.<br />
:I like the name AMD graphics, and I would prefer this for the ('official') AMD driver.<br />
:A separate page would be something I prefer, but if they are '80/90%' the same, it may be more clear to keep using this page.<br />
:[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 20:53, 25 November 2015 (UTC)<br />
<br />
::I am not really sure about the differences to be honest, it might well be that there is quite a lot of difference. There is a lot of information on [https://www.phoronix.com/scan.php?page=search&q=AMDGPU Phoronix], but a lot is still unclear to me. It would be nice to get some input from someone who has some more experience with it.<br />
::"AMD graphics" indeed is too ambiguous to use for the open-source driver. If we decide to split off the AMDGPU stuff, we can just keep this at [[ATI]] and the new page at [[AMDGPU]], I think.<br />
::[[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 21:36, 25 November 2015 (UTC)<br />
<br />
:::Although Phoronix daily publish articles about the new driver, it would be better to have a more 'reliable' source.<br />
:::Maybe we need to wait for users upgrading their cards and also give (the) AMD (module) a bit more time to develop.<br />
:::See my other question about the architect/GPU's that need or could upgrade.<br />
:::Is it supposed to replace the xf86-video-ati driver?<br />
:::[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 21:52, 25 November 2015 (UTC)<br />
<br />
There now is a [[AMDGPU]] page. All info related to the amdgpu driver with GNC 1.2 cards should be moved there. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 13:22, 16 February 2016 (UTC)<br />
<br />
== <s>Adding xf86-video-amdgpu</s> ==<br />
<br />
I would like to know what cards should use xf86-video-amdgpu instead of xf86-video-ati; if I understand correctly it is possible (some) older cards are also compatible with this driver.<br />
Is there an official status page (like if DPM works, what is supported, etc.)?<br />
<br />
Thanks!<br />
<br />
[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 20:44, 25 November 2015 (UTC)<br />
<br />
:The [http://www.x.org/wiki/RadeonFeature/ feature matrix] says only "Volcanic Islands" GPUs are supported, I believe that that is the codename for Graphics Core Next (GCN) 1.2. You can find all cards that are based on GCN 1.2 at [[Wikipedia:List of AMD graphics processing units]]. The feature matrix also lists what features are supported.<br />
:I am not sure about older cards, but I think this is as "official" as it's going to get. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 21:19, 25 November 2015 (UTC)<br />
<br />
::Thanks for the reply. :)<br />
::I've read a few reports of users that the driver works on older GCN's, but this should need more testing.<br />
::How much stable and complete is the new driver? I think we need more info before adding a new wiki page.<br />
::[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 22:00, 25 November 2015 (UTC)<br />
<br />
:::Looks like the gentoo wiki pages for the [https://wiki.gentoo.org/wiki/Radeon#Feature_support Radeon] and [https://wiki.gentoo.org/wiki/Amdgpu#Feature_support AMDGPU] drivers have tables for which graphics cards are supported by which open-source driver. Presumably this information is valid for Radeon and AMDGPU themselves, rather than just for their respective Gentoo packages (and is accurate)? [[User:ShadowElemental|ShadowElemental]] ([[User talk:ShadowElemental|talk]]) 04:21, 13 January 2016 (UTC)<br />
<br />
See [[Xorg#AMD]]. Now also linked from [[ATI]] and [[AMDGPU]]. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 12:21, 2 March 2017 (UTC)<br />
<br />
== The generic modesetting driver ==<br />
<br />
We should also mention the generic modesetting driver. For my card (HD6570), this driver outperforms the ATI driver (I have tested it with glxgears, gtkperf and Unigene Valley) and some benchmarks available on the web seems to go in the same direction. The generic driver gives 2D acceleration via glamor and the 3D mesa libraries; 3D acceleration is given by the Mesa libraries. It is not clear that the modesetting driver is better under all circumstances but it is a "real" driver that is worth considering.<br />
<br />
{{unsigned|07:08, 6 October 2016|Olive}}<br />
<br />
== Turn vsync off ==<br />
<br />
driver="dri2" works both with DRI2 and DRI3. Also I would suggest changing vblank_mode to 1, because 0 is "force disable" and 1 is "disable by default", which seems more correct to me.<br />
<br />
{{unsigned|19:55, 12 December 2016|Equeim}}<br />
<br />
:You are completely right, this section should be edited, there's no need for "Reason: Is this still valid with DRI3? (which is default)", I will be free to remove it since it works on all drivers with DRI3 (nouveau, radeon etc.). You are also right about vblank_mode, but I've tested it just now, and it should stay 0 because some applications may refuse to disable it when it's "by default" (such as Chromium/Chrome). <br />
<br />
:However, there is something with mutter/clutter on Gnome-Shell/Cinnamon/Budgie etc. that makes browsers behave weird if it's set to 0, with 1, behaviour is as expected, so maybe we should add that as an note or added section? Here is bug explained: https://bugs.freedesktop.org/show_bug.cgi?id=99418<br />
<br />
:I would add notice for Gnome-Shell (mutter/clutter based WM), but I need second opinion. [[User:Lpr|Lpr]] ([[User talk:Lpr|talk]]) 22:36, 1 February 2017 (UTC)<br />
<br />
== Restructuring ==<br />
<br />
This is still called "ATI", after the company that has been acquired by AMD eleven years ago.<br />
I think this is rather confusing because the article is covering the radeon DRM driver, Mesa stuff etc. and nothing really carries the name ATI still inside it, besides the old ddx driver.<br />
<br />
Also, the old stuff about catalyst and fglrx could get into a separate, legacy article as imho most Arch users should not be concerned about that stuff.<br />
<br />
The "quick start guide" that comes after the installation guide (https://wiki.archlinux.org/index.php/General_recommendations#Display_drivers) also only refers to [[ATI]], [[Intel]] and [[NVIDIA]].<br />
<br />
I would like to restructure this whole stuff and add some more knowledge about the actual graphics stacks.<br />
<br />
In a separate, e.g. "graphics drivers" article we could <br />
* note that there are free and proprietary stacks<br />
* explain that there isn't an actual "graphics driver" but a graphics stack that consists of DRM/kernel drivers, the libdrm and userspace drivers for 3D, Video, GPGPU and X<br />
* present the different stacks in a table, say which stack supports which hardware and link to separate articles for each: Intel, free AMD stack, AMDGPU-PRO, nouveau, Nvidia, and maybe one legacy ATI/AMD stacks.<br />
* recommend to use free stacks in general. Also recommend generic modesetting w/ glamor instead of old ddx drivers<br />
<br />
Then, in each article with the more meaningful titles keep the same info for each of the stacks (tips, troubleshooting, ...).<br />
<br />
<br />
How do you guys think about that proposal?<br />
<br />
[[User:Iuno|Iuno]] ([[User talk:Iuno|talk]]) 22:50, 7 April 2017 (UTC)<br />
<br />
:* What are the "more meaningful titles" that you propose?<br />
:* There is no catalyst/fglrx info on this page.<br />
:* The "quick start guide" should point to [[Xorg#Driver_installation]], where most of your proposal is already covered. If not, feel free to prepare a draft on your userpage so that we can look at it.<br />
:-- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 07:27, 8 April 2017 (UTC)<br />
<br />
:: Thanks for your answer. For "more meaningful titles" I'd suggest some consistency. E.g. there is [[Intel graphics]] (which seems fine on it's own), [[NVIDIA]] (the brand name that should also be fine as they build GPUs and SoCs, the latter might not be significant here), [[Nouveau]] (driver stack name). And then there is [[ATI]], as mentioned a brand name that died many years ago and the relevant article covers quite recent hardware. And of course [[AMDGPU]], the name of the driver stack that newbies might not now. [[Radeon]] also redirects to [[ATI]], as does [[Amd]]. If a user searches one term for AMD graphics, they land in [[ATI]] 99% and that's confusing imho. Sure, there is the introduction mentioning amdgpu and catalyst but should this not be on a short and clear overview page and then link to relevant article?<br />
:: -- [[User:Iuno|Iuno]] ([[User talk:Iuno|talk]]) 16:29, 8 April 2017 (UTC)</div>Iunohttps://wiki.archlinux.org/index.php?title=Talk:ATI&diff=473262Talk:ATI2017-04-07T22:51:12Z<p>Iuno: Restructuring: refine proposal</p>
<hr />
<div>== <s>Move</s> ==<br />
<br />
So this page now covers {{Pkg|xf86-video-ati}} and {{Pkg|xf86-video-amdgpu}}. As I understand they are closely related and share quite some code, so it makes sense to keep them on the same page.<br />
<br />
The name of the page doesn't seem appropriate anymore however. I am thinking something like "[[AMD graphics]]", like [[Intel graphics]], although that might not make clear that this is about the open source driver. On the other hand, [[AMD graphics (open-source)]] or [[AMD open-source graphics]] might be too long.<br />
<br />
What do other people think? Should we move the page? What should be the new name? Thanks. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 16:15, 24 November 2015 (UTC)<br />
<br />
:How much differences are between kernel/module parameters, etc.?<br />
:Don't forget troubleshooting, debugging, tools, etc. may differ.<br />
:I like the name AMD graphics, and I would prefer this for the ('official') AMD driver.<br />
:A separate page would be something I prefer, but if they are '80/90%' the same, it may be more clear to keep using this page.<br />
:[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 20:53, 25 November 2015 (UTC)<br />
<br />
::I am not really sure about the differences to be honest, it might well be that there is quite a lot of difference. There is a lot of information on [https://www.phoronix.com/scan.php?page=search&q=AMDGPU Phoronix], but a lot is still unclear to me. It would be nice to get some input from someone who has some more experience with it.<br />
::"AMD graphics" indeed is too ambiguous to use for the open-source driver. If we decide to split off the AMDGPU stuff, we can just keep this at [[ATI]] and the new page at [[AMDGPU]], I think.<br />
::[[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 21:36, 25 November 2015 (UTC)<br />
<br />
:::Although Phoronix daily publish articles about the new driver, it would be better to have a more 'reliable' source.<br />
:::Maybe we need to wait for users upgrading their cards and also give (the) AMD (module) a bit more time to develop.<br />
:::See my other question about the architect/GPU's that need or could upgrade.<br />
:::Is it supposed to replace the xf86-video-ati driver?<br />
:::[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 21:52, 25 November 2015 (UTC)<br />
<br />
There now is a [[AMDGPU]] page. All info related to the amdgpu driver with GNC 1.2 cards should be moved there. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 13:22, 16 February 2016 (UTC)<br />
<br />
== <s>Adding xf86-video-amdgpu</s> ==<br />
<br />
I would like to know what cards should use xf86-video-amdgpu instead of xf86-video-ati; if I understand correctly it is possible (some) older cards are also compatible with this driver.<br />
Is there an official status page (like if DPM works, what is supported, etc.)?<br />
<br />
Thanks!<br />
<br />
[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 20:44, 25 November 2015 (UTC)<br />
<br />
:The [http://www.x.org/wiki/RadeonFeature/ feature matrix] says only "Volcanic Islands" GPUs are supported, I believe that that is the codename for Graphics Core Next (GCN) 1.2. You can find all cards that are based on GCN 1.2 at [[Wikipedia:List of AMD graphics processing units]]. The feature matrix also lists what features are supported.<br />
:I am not sure about older cards, but I think this is as "official" as it's going to get. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 21:19, 25 November 2015 (UTC)<br />
<br />
::Thanks for the reply. :)<br />
::I've read a few reports of users that the driver works on older GCN's, but this should need more testing.<br />
::How much stable and complete is the new driver? I think we need more info before adding a new wiki page.<br />
::[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 22:00, 25 November 2015 (UTC)<br />
<br />
:::Looks like the gentoo wiki pages for the [https://wiki.gentoo.org/wiki/Radeon#Feature_support Radeon] and [https://wiki.gentoo.org/wiki/Amdgpu#Feature_support AMDGPU] drivers have tables for which graphics cards are supported by which open-source driver. Presumably this information is valid for Radeon and AMDGPU themselves, rather than just for their respective Gentoo packages (and is accurate)? [[User:ShadowElemental|ShadowElemental]] ([[User talk:ShadowElemental|talk]]) 04:21, 13 January 2016 (UTC)<br />
<br />
See [[Xorg#AMD]]. Now also linked from [[ATI]] and [[AMDGPU]]. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 12:21, 2 March 2017 (UTC)<br />
<br />
== The generic modesetting driver ==<br />
<br />
We should also mention the generic modesetting driver. For my card (HD6570), this driver outperforms the ATI driver (I have tested it with glxgears, gtkperf and Unigene Valley) and some benchmarks available on the web seems to go in the same direction. The generic driver gives 2D acceleration via glamor and the 3D mesa libraries; 3D acceleration is given by the Mesa libraries. It is not clear that the modesetting driver is better under all circumstances but it is a "real" driver that is worth considering.<br />
<br />
{{unsigned|07:08, 6 October 2016|Olive}}<br />
<br />
== Turn vsync off ==<br />
<br />
driver="dri2" works both with DRI2 and DRI3. Also I would suggest changing vblank_mode to 1, because 0 is "force disable" and 1 is "disable by default", which seems more correct to me.<br />
<br />
{{unsigned|19:55, 12 December 2016|Equeim}}<br />
<br />
:You are completely right, this section should be edited, there's no need for "Reason: Is this still valid with DRI3? (which is default)", I will be free to remove it since it works on all drivers with DRI3 (nouveau, radeon etc.). You are also right about vblank_mode, but I've tested it just now, and it should stay 0 because some applications may refuse to disable it when it's "by default" (such as Chromium/Chrome). <br />
<br />
:However, there is something with mutter/clutter on Gnome-Shell/Cinnamon/Budgie etc. that makes browsers behave weird if it's set to 0, with 1, behaviour is as expected, so maybe we should add that as an note or added section? Here is bug explained: https://bugs.freedesktop.org/show_bug.cgi?id=99418<br />
<br />
:I would add notice for Gnome-Shell (mutter/clutter based WM), but I need second opinion. [[User:Lpr|Lpr]] ([[User talk:Lpr|talk]]) 22:36, 1 February 2017 (UTC)<br />
<br />
== Restructuring ==<br />
<br />
This is still called "ATI", after the company that has been acquired by AMD eleven years ago.<br />
I think this is rather confusing because the article is covering the radeon DRM driver, Mesa stuff etc. and nothing really carries the name ATI still inside it, besides the old ddx driver.<br />
<br />
Also, the old stuff about catalyst and fglrx could get into a separate, legacy article as imho most Arch users should not be concerned about that stuff.<br />
<br />
The "quick start guide" that comes after the installation guide (https://wiki.archlinux.org/index.php/General_recommendations#Display_drivers) also only refers to [[ATI]], [[Intel]] and [[NVIDIA]].<br />
<br />
I would like to restructure this whole stuff and add some more knowledge about the actual graphics stacks.<br />
<br />
In a separate, e.g. "graphics drivers" article we could <br />
* note that there are free and proprietary stacks<br />
* explain that there isn't an actual "graphics driver" but a graphics stack that consists of DRM/kernel drivers, the libdrm and userspace drivers for 3D, Video, GPGPU and X<br />
* present the different stacks in a table, say which stack supports which hardware and link to separate articles for each: Intel, free AMD stack, AMDGPU-PRO, nouveau, Nvidia, and maybe one legacy ATI/AMD stacks.<br />
* recommend to use free stacks in general. Also recommend generic modesetting w/ glamor instead of old ddx drivers<br />
<br />
Then, in each article with the more meaningful titles keep the same info for each of the stacks (tips, troubleshooting, ...).<br />
<br />
<br />
How do you guys think about that proposal?<br />
<br />
[[User:Iuno|Iuno]] ([[User talk:Iuno|talk]]) 22:50, 7 April 2017 (UTC)</div>Iunohttps://wiki.archlinux.org/index.php?title=Talk:ATI&diff=473261Talk:ATI2017-04-07T22:50:07Z<p>Iuno: /* Restructuring */ new section</p>
<hr />
<div>== <s>Move</s> ==<br />
<br />
So this page now covers {{Pkg|xf86-video-ati}} and {{Pkg|xf86-video-amdgpu}}. As I understand they are closely related and share quite some code, so it makes sense to keep them on the same page.<br />
<br />
The name of the page doesn't seem appropriate anymore however. I am thinking something like "[[AMD graphics]]", like [[Intel graphics]], although that might not make clear that this is about the open source driver. On the other hand, [[AMD graphics (open-source)]] or [[AMD open-source graphics]] might be too long.<br />
<br />
What do other people think? Should we move the page? What should be the new name? Thanks. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 16:15, 24 November 2015 (UTC)<br />
<br />
:How much differences are between kernel/module parameters, etc.?<br />
:Don't forget troubleshooting, debugging, tools, etc. may differ.<br />
:I like the name AMD graphics, and I would prefer this for the ('official') AMD driver.<br />
:A separate page would be something I prefer, but if they are '80/90%' the same, it may be more clear to keep using this page.<br />
:[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 20:53, 25 November 2015 (UTC)<br />
<br />
::I am not really sure about the differences to be honest, it might well be that there is quite a lot of difference. There is a lot of information on [https://www.phoronix.com/scan.php?page=search&q=AMDGPU Phoronix], but a lot is still unclear to me. It would be nice to get some input from someone who has some more experience with it.<br />
::"AMD graphics" indeed is too ambiguous to use for the open-source driver. If we decide to split off the AMDGPU stuff, we can just keep this at [[ATI]] and the new page at [[AMDGPU]], I think.<br />
::[[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 21:36, 25 November 2015 (UTC)<br />
<br />
:::Although Phoronix daily publish articles about the new driver, it would be better to have a more 'reliable' source.<br />
:::Maybe we need to wait for users upgrading their cards and also give (the) AMD (module) a bit more time to develop.<br />
:::See my other question about the architect/GPU's that need or could upgrade.<br />
:::Is it supposed to replace the xf86-video-ati driver?<br />
:::[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 21:52, 25 November 2015 (UTC)<br />
<br />
There now is a [[AMDGPU]] page. All info related to the amdgpu driver with GNC 1.2 cards should be moved there. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 13:22, 16 February 2016 (UTC)<br />
<br />
== <s>Adding xf86-video-amdgpu</s> ==<br />
<br />
I would like to know what cards should use xf86-video-amdgpu instead of xf86-video-ati; if I understand correctly it is possible (some) older cards are also compatible with this driver.<br />
Is there an official status page (like if DPM works, what is supported, etc.)?<br />
<br />
Thanks!<br />
<br />
[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 20:44, 25 November 2015 (UTC)<br />
<br />
:The [http://www.x.org/wiki/RadeonFeature/ feature matrix] says only "Volcanic Islands" GPUs are supported, I believe that that is the codename for Graphics Core Next (GCN) 1.2. You can find all cards that are based on GCN 1.2 at [[Wikipedia:List of AMD graphics processing units]]. The feature matrix also lists what features are supported.<br />
:I am not sure about older cards, but I think this is as "official" as it's going to get. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 21:19, 25 November 2015 (UTC)<br />
<br />
::Thanks for the reply. :)<br />
::I've read a few reports of users that the driver works on older GCN's, but this should need more testing.<br />
::How much stable and complete is the new driver? I think we need more info before adding a new wiki page.<br />
::[[User:Beta990|Beta990]] ([[User talk:Beta990|talk]]) 22:00, 25 November 2015 (UTC)<br />
<br />
:::Looks like the gentoo wiki pages for the [https://wiki.gentoo.org/wiki/Radeon#Feature_support Radeon] and [https://wiki.gentoo.org/wiki/Amdgpu#Feature_support AMDGPU] drivers have tables for which graphics cards are supported by which open-source driver. Presumably this information is valid for Radeon and AMDGPU themselves, rather than just for their respective Gentoo packages (and is accurate)? [[User:ShadowElemental|ShadowElemental]] ([[User talk:ShadowElemental|talk]]) 04:21, 13 January 2016 (UTC)<br />
<br />
See [[Xorg#AMD]]. Now also linked from [[ATI]] and [[AMDGPU]]. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 12:21, 2 March 2017 (UTC)<br />
<br />
== The generic modesetting driver ==<br />
<br />
We should also mention the generic modesetting driver. For my card (HD6570), this driver outperforms the ATI driver (I have tested it with glxgears, gtkperf and Unigene Valley) and some benchmarks available on the web seems to go in the same direction. The generic driver gives 2D acceleration via glamor and the 3D mesa libraries; 3D acceleration is given by the Mesa libraries. It is not clear that the modesetting driver is better under all circumstances but it is a "real" driver that is worth considering.<br />
<br />
{{unsigned|07:08, 6 October 2016|Olive}}<br />
<br />
== Turn vsync off ==<br />
<br />
driver="dri2" works both with DRI2 and DRI3. Also I would suggest changing vblank_mode to 1, because 0 is "force disable" and 1 is "disable by default", which seems more correct to me.<br />
<br />
{{unsigned|19:55, 12 December 2016|Equeim}}<br />
<br />
:You are completely right, this section should be edited, there's no need for "Reason: Is this still valid with DRI3? (which is default)", I will be free to remove it since it works on all drivers with DRI3 (nouveau, radeon etc.). You are also right about vblank_mode, but I've tested it just now, and it should stay 0 because some applications may refuse to disable it when it's "by default" (such as Chromium/Chrome). <br />
<br />
:However, there is something with mutter/clutter on Gnome-Shell/Cinnamon/Budgie etc. that makes browsers behave weird if it's set to 0, with 1, behaviour is as expected, so maybe we should add that as an note or added section? Here is bug explained: https://bugs.freedesktop.org/show_bug.cgi?id=99418<br />
<br />
:I would add notice for Gnome-Shell (mutter/clutter based WM), but I need second opinion. [[User:Lpr|Lpr]] ([[User talk:Lpr|talk]]) 22:36, 1 February 2017 (UTC)<br />
<br />
== Restructuring ==<br />
<br />
This is still called "ATI", after the company that has been acquired by AMD eleven years ago.<br />
I think this is rather confusing because the article is covering the radeon DRM driver, Mesa stuff etc. and nothing really carries the name ATI still inside it, besides the old ddx driver.<br />
<br />
Also, the old stuff about catalyst and fglrx could get into a separate, legacy article as imho most Arch users should not be concerned about that stuff.<br />
<br />
The "quick start guide" that comes after the installation guide (https://wiki.archlinux.org/index.php/General_recommendations#Display_drivers) also only refers to [[ATI]], [[Intel]] and [[NVIDIA]].<br />
<br />
I would like to restructure this whole stuff and add some more knowledge about the actual graphics stacks.<br />
<br />
In a separate, e.g. "graphics drivers" article we could <br />
* note that there are free and proprietary stacks<br />
* explain that there isn't an actual "graphics driver" but a graphics stack that consists of DRM/kernel drivers, the libdrm and userspace drivers for 3D, Video, GPGPU and X<br />
* present the different stacks in a table and link to separate articles for each: Intel, free AMD stack, AMDGPU-PRO, nouveau, Nvidia, and maybe one legacy ATI/AMD stacks.<br />
* recommend to use free stacks in general. Also recommend generic modesetting w/ glamor instead of old ddx drivers<br />
<br />
Then, in each article with the more meaningful titles keep the same info for each of the stacks (tips, troubleshooting, ...).<br />
<br />
<br />
How do you guys think about that proposal?<br />
<br />
[[User:Iuno|Iuno]] ([[User talk:Iuno|talk]]) 22:50, 7 April 2017 (UTC)</div>Iunohttps://wiki.archlinux.org/index.php?title=GPGPU&diff=473256GPGPU2017-04-07T22:28:25Z<p>Iuno: added missing "and"</p>
<hr />
<div>[[Category:Development]]<br />
[[Category:Graphics]]<br />
[[ja:GPGPU]]<br />
{{Related articles start}}<br />
{{Related|Catalyst}}<br />
{{Related|Nvidia}}<br />
{{Related articles end}}<br />
<br />
GPGPU stands for [[Wikipedia:GPGPU|General-purpose computing on graphics processing units]].<br />
In Linux, there are currently two major GPGPU frameworks: [[Wikipedia:OpenCL|OpenCL]] and [[Wikipedia:CUDA|CUDA]]<br />
<br />
==OpenCL==<br />
<br />
OpenCL (Open Computing Language) is an open, royalty-free parallel programming specification developed by the Khronos Group, a non-profit consortium.<br />
<br />
The OpenCL specification describes a programming language, a general environment that is required to be present, and a C API to enable programmers to call into this environment.<br />
<br />
===OpenCL Runtime===<br />
To '''execute''' programs that use OpenCL, a compatible hardware runtime needs to be installed.<br />
<br />
====AMD/ATI====<br />
* {{Pkg|opencl-mesa}}: free runtime for [[AMDGPU]] and [[Radeon]]<br />
* {{AUR|opencl-amd}}: proprietary standalone runtime for [[AMDGPU]]<br />
* {{AUR|amdgpu-pro-opencl}}: proprietary runtime for [[AMDGPU PRO]]<br />
* {{AUR|opencl-catalyst}}: AMD proprietary runtime, soon to be deprecated in favor of [[AMDGPU]]<br />
* {{AUR|amdapp-sdk}}: AMD CPU runtime<br />
<br />
====NVIDIA====<br />
* {{Pkg|opencl-nvidia}}: official [[NVIDIA]] runtime<br />
<br />
====Intel====<br />
* {{AUR|intel-opencl-runtime}}: official Intel CPU runtime, also supports non-Intel CPUs<br />
* {{pkg|beignet}}: open-source implementation for Intel IvyBridge+ iGPUs<br />
<br />
====Others====<br />
* {{AUR|pocl}}: LLVM-based OpenCL implementation<br />
<br />
===OpenCL ICD loader (libOpenCL.so)===<br />
<br />
The OpenCL ICD loader is supposed to be a platform-agnostic library that provides the means to load device-specific drivers through the OpenCL API.<br />
Most OpenCL vendors provide their own implementation of an OpenCL ICD loader, and these should all work with the other vendors' OpenCL implementations.<br />
Unfortunately, most vendors do not provide completely up-to-date ICD loaders, and therefore Arch Linux has decided to provide this library from a separate project ({{Pkg|ocl-icd}}) which currently provides a functioning implementation of the current OpenCL API.<br />
<br />
The other ICD loader libraries are installed as part of each vendor's SDK. If you want to ensure the ICD loader from the {{Pkg|ocl-icd}} package is used, you can create a file in {{ic|/etc/ld.so.conf.d}} which adds {{ic|/usr/lib}} to the dynamic program loader's search directories:<br />
<br />
{{hc|/etc/ld.so.conf.d/00-usrlib.conf|2=<nowiki><br />
/usr/lib</nowiki>}}<br />
<br />
This is necessary because all the SDKs add their runtime's lib directories to the search path through {{ic|ld.so.conf.d}} files.<br />
<br />
The available packages containing various OpenCL ICDs are:<br />
* {{Pkg|ocl-icd}}: recommended, most up-to-date<br />
* {{AUR|libopencl}} by AMD. Provides OpenCL 2.0. It is distributed by AMD under a restrictive license and therefore cannot be included into the official repositories.<br />
* {{AUR|intel-opencl}} by Intel. Provides OpenCL 2.0.<br />
<br />
{{Note|ICD Loader's vendor is mentioned only to identify each loader, it is otherwise completely irrelevant. ICD loaders are vendor-agnostic and may be used interchangeably (as long as they are implemented correctly).}}<br />
<br />
===OpenCL Development===<br />
For OpenCL '''development''', the bare minimum additional packages required, are:<br />
* {{Pkg|ocl-icd}}: OpenCL ICD loader implementation, up to date with the latest OpenCL specification.<br />
* {{Pkg|opencl-headers}}: OpenCL C/C++ API headers.<br />
<br />
The vendors' SDKs provide a multitude of tools and support libraries:<br />
* {{AUR|intel-opencl-sdk}}: [http://software.intel.com/en-us/articles/opencl-sdk/ Intel OpenCL SDK] (old version, new OpenCL SDKs are included in the INDE and Intel Media Server Studio)<br />
* {{AUR|amdapp-sdk}}: This package is installed as {{ic|/opt/AMDAPP}} and apart from SDK files it also contains a number of code samples ({{ic|/opt/AMDAPP/SDK/samples/}}). It also provides the {{ic|clinfo}} utility which lists OpenCL platforms and devices present in the system and displays detailed information about them. As [http://developer.amd.com/sdks/AMDAPPSDK/Pages/default.aspx AMD APP SDK] itself contains CPU OpenCL driver, no extra driver is needed to execute OpenCL on CPU devices (regardless of its vendor). GPU OpenCL drivers are provided by the {{AUR|catalyst}} package (an optional dependency).<br />
* {{Pkg|cuda}}: Nvidia's GPU SDK which includes support for OpenCL 1.1.<br />
<br />
===Implementations===<br />
To see which OpenCL implementations are currently active on your system, use the following command:<br />
$ ls /etc/OpenCL/vendors<br />
<br />
====Language bindings====<br />
* '''JavaScript/HTML5''': [http://www.khronos.org/webcl/ WebCL]<br />
* '''[[Python]]''': {{pkg|python-pyopencl}}<br />
* '''[[D]]''': [https://bitbucket.org/trass3r/cl4d/wiki/Home cl4d]<br />
* '''[[Haskell]]''': OpenCLRaw: {{AUR|haskell-openclraw-git}}{{Broken package link|{{aur-mirror|haskell-openclraw-git}}}}<br />
* '''[[Java]]''': [http://jogamp.org/jocl/www/ JOCL] (a part of [http://jogamp.org/ JogAmp])<br />
* '''[[Mono|Mono/.NET]]''': [http://sourceforge.net/projects/opentk/ Open Toolkit]<br />
* '''[[Go]]''': [https://github.com/samuel/go-opencl OpenCL bindings for Go]<br />
* '''Racket''': Racket has a native interface [http://planet.racket-lang.org/display.ss?owner=jaymccarthy&package=opencl.plt on PLaneT] that can be installed via raco.<br />
<br />
==CUDA==<br />
<br />
CUDA (Compute Unified Device Architecture) is [[NVIDIA]]'s proprietary, closed-source parallel computing architecture and framework. It requires a Nvidia GPU. It consists of several components:<br />
* required:<br />
** proprietary Nvidia kernel module<br />
** CUDA "driver" and "runtime" libraries<br />
* optional:<br />
** additional libraries: CUBLAS, CUFFT, CUSPARSE, etc.<br />
** CUDA toolkit, including the {{ic|nvcc}} compiler<br />
** CUDA SDK, which contains many code samples and examples of CUDA and OpenCL programs<br />
<br />
The kernel module and CUDA "driver" library are shipped in {{Pkg|nvidia}} and {{Pkg|opencl-nvidia}}. The "runtime" library and the rest of the CUDA toolkit are available in {{Pkg|cuda}}. The library is available [https://projects.archlinux.org/svntogit/community.git/commit/trunk?h=packages/cuda&id=1b62c8bcb9194b2de1b750bd62a8dce1e7e549f5 only in 64-bit version]. {{ic|cuda-gdb}} needs {{aur|ncurses5-compat-libs}} to be installed, see {{Bug|46598}}.<br />
<br />
===Development===<br />
<br />
The {{Pkg|cuda}} package installs all components in the directory {{ic|/opt/cuda}}. For compiling CUDA code, add {{ic|/opt/cuda/include}} to your include path in the compiler instructions. For example this can be accomplished by adding {{ic|-I/opt/cuda/include}} to the compiler flags/options. To use {{ic|nvcc}}, a {{ic|gcc}} wrapper provided by NVIDIA, just add {{ic|/opt/cuda/bin}} to your path.<br />
<br />
To find whether the installation was successful and if cuda is up and running, you can compile the samples installed on {{ic|/opt/cuda/samples}} (you can simply run {{ic|make}} inside the directory, altough is a good practice to copy the {{ic|/opt/cuda/samples}} directory to your home directory before compiling) and running the compiled examples. A nice way to check the installation is to run one of the examples, called {{ic|deviceQuery}}.<br />
<br />
{{Note|CUDA 8.0 is not compatible with GCC 6 (see {{Bug|49272}}). Therefore the {{Pkg|cuda}} package depends on {{Pkg|gcc5}} and creates symbolic links in {{ic|/opt/cuda/bin/}} for the older version to be picked up by {{ic|nvcc}}. You might also need to configure your build system to use the same GCC version for compiling host code.}}<br />
<br />
===Language bindings===<br />
* '''Fortran''': [http://www.pgroup.com/resources/cudafortran.htm PGI CUDA Fortran Compiler]<br />
* '''[[Haskell]]''': The [http://hackage.haskell.org/package/accelerate accelerate package] lists available CUDA backends <br />
* '''[[Java]]''': [http://www.jcuda.org/jcuda/JCuda.html JCuda]<br />
* '''[[Mathematica]]''': [http://reference.wolfram.com/mathematica/CUDALink/tutorial/Overview.html CUDAlink]<br />
* '''[[Mono|Mono/.NET]]''': [http://www.hoopoe-cloud.com/Solutions/CUDA.NET/Default.aspx CUDA.NET], [http://www.hybriddsp.com/ CUDAfy.NET]<br />
* '''Perl''': [http://psilambda.com/download/kappa-for-perl Kappa], [https://github.com/run4flat/perl-CUDA-Minimal CUDA-Minimal]<br />
* '''[[Python]]''': {{pkg|python-pycuda}} or [http://psilambda.com/download/kappa-for-python Kappa]<br />
* '''[[Ruby]]''', '''Lua''': [http://psilambda.com/products/kappa/ Kappa]<br />
<br />
===Driver issues===<br />
<br />
It might be necessary to use the legacy driver {{Pkg|nvidia-304xx}} or {{Pkg|nvidia-304xx-lts}} to resolve permissions issues when running CUDA programs on systems with multiple GPUs.<br />
<br />
==List of OpenCL and CUDA accelerated software==<br />
{{Expansion|More application may support OpenCL.}}<br />
* [[Bitcoin]]<br />
* [[HandBrake]]<br />
* [[GIMP]] (experimental - see [http://www.h-online.com/open/news/item/GIMP-2-8-RC-1-arrives-with-GPU-acceleration-1518417.html])<br />
* {{Pkg|opencv}}<br />
* {{Pkg|pyrit}}<br />
* {{Pkg|darktable}} - OpenCL feature requires at least 1 GB RAM on GPU and ''Image support'' (check output of clinfo command).<br />
* {{Pkg|aircrack-ng}}<br />
* {{AUR|cuda_memtest}} - a GPU memtest. Despite its name, is supports both CUDA and OpenCL<br />
* [[Blender]] - CUDA support for Nvidia GPUs and OpenCL support for AMD GPUs. More information [http://blender.org/manual/render/cycles/features.html#features here].<br />
<br />
==Links and references==<br />
* [http://www.khronos.org/opencl/ OpenCL official homepage]<br />
* [http://www.nvidia.com/object/cuda_home_new.html CUDA official homepage]<br />
* [http://www.khronos.org/registry/cl/extensions/khr/cl_khr_icd.txt The ICD extension specification]<br />
* [http://developer.amd.com/appsdk AMD APP SDK homepage]<br />
* [https://developer.nvidia.com/cuda-toolkit CUDA Toolkit homepage]<br />
* [https://software.intel.com/en-us/intel-opencl Intel SDK for OpenCL Applications homepage]</div>Iunohttps://wiki.archlinux.org/index.php?title=GPGPU&diff=473254GPGPU2017-04-07T22:27:45Z<p>Iuno: fixed erros in AMD/ATI section: 1) opencl-mesa is not radeon(DRM)-exclusive. 2) opencl-amd is the proprietary solution taken out of the -pro stack able to run on the free stack using the mainline kernel</p>
<hr />
<div>[[Category:Development]]<br />
[[Category:Graphics]]<br />
[[ja:GPGPU]]<br />
{{Related articles start}}<br />
{{Related|Catalyst}}<br />
{{Related|Nvidia}}<br />
{{Related articles end}}<br />
<br />
GPGPU stands for [[Wikipedia:GPGPU|General-purpose computing on graphics processing units]].<br />
In Linux, there are currently two major GPGPU frameworks: [[Wikipedia:OpenCL|OpenCL]] and [[Wikipedia:CUDA|CUDA]]<br />
<br />
==OpenCL==<br />
<br />
OpenCL (Open Computing Language) is an open, royalty-free parallel programming specification developed by the Khronos Group, a non-profit consortium.<br />
<br />
The OpenCL specification describes a programming language, a general environment that is required to be present, and a C API to enable programmers to call into this environment.<br />
<br />
===OpenCL Runtime===<br />
To '''execute''' programs that use OpenCL, a compatible hardware runtime needs to be installed.<br />
<br />
====AMD/ATI====<br />
* {{Pkg|opencl-mesa}}: free runtime for [[AMDGPU]] [[Radeon]]<br />
* {{AUR|amdgpu-pro-opencl}}: proprietary runtime for [[AMDGPU PRO]]<br />
* {{AUR|opencl-amd}}: proprietary standalone runtime for [[AMDGPU]]<br />
* {{AUR|opencl-catalyst}}: AMD proprietary runtime, soon to be deprecated in favor of [[AMDGPU]]<br />
* {{AUR|amdapp-sdk}}: AMD CPU runtime<br />
<br />
====NVIDIA====<br />
* {{Pkg|opencl-nvidia}}: official [[NVIDIA]] runtime<br />
<br />
====Intel====<br />
* {{AUR|intel-opencl-runtime}}: official Intel CPU runtime, also supports non-Intel CPUs<br />
* {{pkg|beignet}}: open-source implementation for Intel IvyBridge+ iGPUs<br />
<br />
====Others====<br />
* {{AUR|pocl}}: LLVM-based OpenCL implementation<br />
<br />
===OpenCL ICD loader (libOpenCL.so)===<br />
<br />
The OpenCL ICD loader is supposed to be a platform-agnostic library that provides the means to load device-specific drivers through the OpenCL API.<br />
Most OpenCL vendors provide their own implementation of an OpenCL ICD loader, and these should all work with the other vendors' OpenCL implementations.<br />
Unfortunately, most vendors do not provide completely up-to-date ICD loaders, and therefore Arch Linux has decided to provide this library from a separate project ({{Pkg|ocl-icd}}) which currently provides a functioning implementation of the current OpenCL API.<br />
<br />
The other ICD loader libraries are installed as part of each vendor's SDK. If you want to ensure the ICD loader from the {{Pkg|ocl-icd}} package is used, you can create a file in {{ic|/etc/ld.so.conf.d}} which adds {{ic|/usr/lib}} to the dynamic program loader's search directories:<br />
<br />
{{hc|/etc/ld.so.conf.d/00-usrlib.conf|2=<nowiki><br />
/usr/lib</nowiki>}}<br />
<br />
This is necessary because all the SDKs add their runtime's lib directories to the search path through {{ic|ld.so.conf.d}} files.<br />
<br />
The available packages containing various OpenCL ICDs are:<br />
* {{Pkg|ocl-icd}}: recommended, most up-to-date<br />
* {{AUR|libopencl}} by AMD. Provides OpenCL 2.0. It is distributed by AMD under a restrictive license and therefore cannot be included into the official repositories.<br />
* {{AUR|intel-opencl}} by Intel. Provides OpenCL 2.0.<br />
<br />
{{Note|ICD Loader's vendor is mentioned only to identify each loader, it is otherwise completely irrelevant. ICD loaders are vendor-agnostic and may be used interchangeably (as long as they are implemented correctly).}}<br />
<br />
===OpenCL Development===<br />
For OpenCL '''development''', the bare minimum additional packages required, are:<br />
* {{Pkg|ocl-icd}}: OpenCL ICD loader implementation, up to date with the latest OpenCL specification.<br />
* {{Pkg|opencl-headers}}: OpenCL C/C++ API headers.<br />
<br />
The vendors' SDKs provide a multitude of tools and support libraries:<br />
* {{AUR|intel-opencl-sdk}}: [http://software.intel.com/en-us/articles/opencl-sdk/ Intel OpenCL SDK] (old version, new OpenCL SDKs are included in the INDE and Intel Media Server Studio)<br />
* {{AUR|amdapp-sdk}}: This package is installed as {{ic|/opt/AMDAPP}} and apart from SDK files it also contains a number of code samples ({{ic|/opt/AMDAPP/SDK/samples/}}). It also provides the {{ic|clinfo}} utility which lists OpenCL platforms and devices present in the system and displays detailed information about them. As [http://developer.amd.com/sdks/AMDAPPSDK/Pages/default.aspx AMD APP SDK] itself contains CPU OpenCL driver, no extra driver is needed to execute OpenCL on CPU devices (regardless of its vendor). GPU OpenCL drivers are provided by the {{AUR|catalyst}} package (an optional dependency).<br />
* {{Pkg|cuda}}: Nvidia's GPU SDK which includes support for OpenCL 1.1.<br />
<br />
===Implementations===<br />
To see which OpenCL implementations are currently active on your system, use the following command:<br />
$ ls /etc/OpenCL/vendors<br />
<br />
====Language bindings====<br />
* '''JavaScript/HTML5''': [http://www.khronos.org/webcl/ WebCL]<br />
* '''[[Python]]''': {{pkg|python-pyopencl}}<br />
* '''[[D]]''': [https://bitbucket.org/trass3r/cl4d/wiki/Home cl4d]<br />
* '''[[Haskell]]''': OpenCLRaw: {{AUR|haskell-openclraw-git}}{{Broken package link|{{aur-mirror|haskell-openclraw-git}}}}<br />
* '''[[Java]]''': [http://jogamp.org/jocl/www/ JOCL] (a part of [http://jogamp.org/ JogAmp])<br />
* '''[[Mono|Mono/.NET]]''': [http://sourceforge.net/projects/opentk/ Open Toolkit]<br />
* '''[[Go]]''': [https://github.com/samuel/go-opencl OpenCL bindings for Go]<br />
* '''Racket''': Racket has a native interface [http://planet.racket-lang.org/display.ss?owner=jaymccarthy&package=opencl.plt on PLaneT] that can be installed via raco.<br />
<br />
==CUDA==<br />
<br />
CUDA (Compute Unified Device Architecture) is [[NVIDIA]]'s proprietary, closed-source parallel computing architecture and framework. It requires a Nvidia GPU. It consists of several components:<br />
* required:<br />
** proprietary Nvidia kernel module<br />
** CUDA "driver" and "runtime" libraries<br />
* optional:<br />
** additional libraries: CUBLAS, CUFFT, CUSPARSE, etc.<br />
** CUDA toolkit, including the {{ic|nvcc}} compiler<br />
** CUDA SDK, which contains many code samples and examples of CUDA and OpenCL programs<br />
<br />
The kernel module and CUDA "driver" library are shipped in {{Pkg|nvidia}} and {{Pkg|opencl-nvidia}}. The "runtime" library and the rest of the CUDA toolkit are available in {{Pkg|cuda}}. The library is available [https://projects.archlinux.org/svntogit/community.git/commit/trunk?h=packages/cuda&id=1b62c8bcb9194b2de1b750bd62a8dce1e7e549f5 only in 64-bit version]. {{ic|cuda-gdb}} needs {{aur|ncurses5-compat-libs}} to be installed, see {{Bug|46598}}.<br />
<br />
===Development===<br />
<br />
The {{Pkg|cuda}} package installs all components in the directory {{ic|/opt/cuda}}. For compiling CUDA code, add {{ic|/opt/cuda/include}} to your include path in the compiler instructions. For example this can be accomplished by adding {{ic|-I/opt/cuda/include}} to the compiler flags/options. To use {{ic|nvcc}}, a {{ic|gcc}} wrapper provided by NVIDIA, just add {{ic|/opt/cuda/bin}} to your path.<br />
<br />
To find whether the installation was successful and if cuda is up and running, you can compile the samples installed on {{ic|/opt/cuda/samples}} (you can simply run {{ic|make}} inside the directory, altough is a good practice to copy the {{ic|/opt/cuda/samples}} directory to your home directory before compiling) and running the compiled examples. A nice way to check the installation is to run one of the examples, called {{ic|deviceQuery}}.<br />
<br />
{{Note|CUDA 8.0 is not compatible with GCC 6 (see {{Bug|49272}}). Therefore the {{Pkg|cuda}} package depends on {{Pkg|gcc5}} and creates symbolic links in {{ic|/opt/cuda/bin/}} for the older version to be picked up by {{ic|nvcc}}. You might also need to configure your build system to use the same GCC version for compiling host code.}}<br />
<br />
===Language bindings===<br />
* '''Fortran''': [http://www.pgroup.com/resources/cudafortran.htm PGI CUDA Fortran Compiler]<br />
* '''[[Haskell]]''': The [http://hackage.haskell.org/package/accelerate accelerate package] lists available CUDA backends <br />
* '''[[Java]]''': [http://www.jcuda.org/jcuda/JCuda.html JCuda]<br />
* '''[[Mathematica]]''': [http://reference.wolfram.com/mathematica/CUDALink/tutorial/Overview.html CUDAlink]<br />
* '''[[Mono|Mono/.NET]]''': [http://www.hoopoe-cloud.com/Solutions/CUDA.NET/Default.aspx CUDA.NET], [http://www.hybriddsp.com/ CUDAfy.NET]<br />
* '''Perl''': [http://psilambda.com/download/kappa-for-perl Kappa], [https://github.com/run4flat/perl-CUDA-Minimal CUDA-Minimal]<br />
* '''[[Python]]''': {{pkg|python-pycuda}} or [http://psilambda.com/download/kappa-for-python Kappa]<br />
* '''[[Ruby]]''', '''Lua''': [http://psilambda.com/products/kappa/ Kappa]<br />
<br />
===Driver issues===<br />
<br />
It might be necessary to use the legacy driver {{Pkg|nvidia-304xx}} or {{Pkg|nvidia-304xx-lts}} to resolve permissions issues when running CUDA programs on systems with multiple GPUs.<br />
<br />
==List of OpenCL and CUDA accelerated software==<br />
{{Expansion|More application may support OpenCL.}}<br />
* [[Bitcoin]]<br />
* [[HandBrake]]<br />
* [[GIMP]] (experimental - see [http://www.h-online.com/open/news/item/GIMP-2-8-RC-1-arrives-with-GPU-acceleration-1518417.html])<br />
* {{Pkg|opencv}}<br />
* {{Pkg|pyrit}}<br />
* {{Pkg|darktable}} - OpenCL feature requires at least 1 GB RAM on GPU and ''Image support'' (check output of clinfo command).<br />
* {{Pkg|aircrack-ng}}<br />
* {{AUR|cuda_memtest}} - a GPU memtest. Despite its name, is supports both CUDA and OpenCL<br />
* [[Blender]] - CUDA support for Nvidia GPUs and OpenCL support for AMD GPUs. More information [http://blender.org/manual/render/cycles/features.html#features here].<br />
<br />
==Links and references==<br />
* [http://www.khronos.org/opencl/ OpenCL official homepage]<br />
* [http://www.nvidia.com/object/cuda_home_new.html CUDA official homepage]<br />
* [http://www.khronos.org/registry/cl/extensions/khr/cl_khr_icd.txt The ICD extension specification]<br />
* [http://developer.amd.com/appsdk AMD APP SDK homepage]<br />
* [https://developer.nvidia.com/cuda-toolkit CUDA Toolkit homepage]<br />
* [https://software.intel.com/en-us/intel-opencl Intel SDK for OpenCL Applications homepage]</div>Iunohttps://wiki.archlinux.org/index.php?title=GPGPU&diff=458210GPGPU2016-12-01T18:20:33Z<p>Iuno: /* OpenCL */ add info about amdgpu-pro</p>
<hr />
<div>[[Category:Development]]<br />
[[Category:Graphics]]<br />
[[ja:GPGPU]]<br />
{{Related articles start}}<br />
{{Related|Catalyst}}<br />
{{Related|Nvidia}}<br />
{{Related articles end}}<br />
<br />
GPGPU stands for [[Wikipedia:GPGPU|General-purpose computing on graphics processing units]].<br />
In Linux, there are currently two major GPGPU frameworks: [[Wikipedia:OpenCL|OpenCL]] and [[Wikipedia:CUDA|CUDA]]<br />
<br />
==OpenCL==<br />
<br />
OpenCL (Open Computing Language) is an open, royalty-free parallel programming specification developed by the Khronos Group, a non-profit consortium.<br />
<br />
The OpenCL specification describes a programming language, a general environment that is required to be present, and a C API to enable programmers to call into this environment.<br />
<br />
Arch Linux provides multiple packages for all of these.<br />
<br />
To '''execute''' programs that use OpenCL, you need to install a runtime compatible with your hardware:<br />
* {{Pkg|opencl-nvidia}}: execute on your Nvidia GPU (official Nvidia runtime)<br />
* {{Pkg|opencl-mesa}}: execute on AMD GPU's using the mesa drivers (currently under development, your mileage may vary)<br />
* {{AUR|opencl-catalyst}}: execute on your AMD GPU (official AMD runtime, soon to be deprecated)<br />
* {{AUR|amdgpu-pro-computing}}: execute on your AMD GPU (official AMD runtime, auto-generated from Ubuntu package)<br />
* {{AUR|intel-opencl-runtime}}: execute on your CPU (official Intel runtime, also supports non-Intel CPUs)<br />
* {{AUR|pocl}}: execute on your CPU (LLVM-based OpenCL implementation)<br />
<br />
For OpenCL '''development''', the bare minimum additional packages required, are:<br />
* {{Pkg|ocl-icd}}: OpenCL ICD loader implementation, up to date with the latest OpenCL specification.<br />
* {{Pkg|opencl-headers}}: OpenCL C/C++ API headers.<br />
<br />
The vendors' SDKs provide a multitude of tools and support libraries:<br />
* {{AUR|intel-opencl-sdk}}: Intel's OpenCL SDK (old version, new OpenCL SDKs are included in the INDE and Intel Media Server Studio)<br />
* {{AUR|amdapp-sdk}}: AMD's OpenCL SDK<br />
* {{Pkg|cuda}}: Nvidia's GPU SDK which includes support for OpenCL 1.1.<br />
<br />
===OpenCL ICD loader (libOpenCL.so)===<br />
<br />
The OpenCL ICD loader is supposed to be a platform-agnostic library that provides the means to load device-specific drivers through the OpenCL API.<br />
Most OpenCL vendors provide their own implementation of an OpenCL ICD loader, and these should all work with the other vendors' OpenCL implementations.<br />
Unfortunately, most vendors do not provide completely up-to-date ICD loaders, and therefore Arch Linux has decided to provide this library from a separate project ({{Pkg|ocl-icd}}) which currently provides a functioning implementation of the current OpenCL API.<br />
<br />
The other ICD loader libraries are installed as part of each vendor's SDK. If you want to ensure the ICD loader from the {{Pkg|ocl-icd}} package is used, you can create a file in {{ic|/etc/ld.so.conf.d}} which adds {{ic|/usr/lib}} to the dynamic program loader's search directories:<br />
<br />
{{hc|/etc/ld.so.conf.d/00-usrlib.conf|2=<nowiki><br />
/usr/lib</nowiki>}}<br />
<br />
This is necessary because all the SDKs add their runtime's lib directories to the search path through {{ic|ld.so.conf.d}} files.<br />
<br />
The available packages containing various OpenCL ICDs are:<br />
* {{Pkg|ocl-icd}}: recommended, most up-to-date<br />
* {{AUR|libopencl}} by AMD. Provides version 2.0 of OpenCL. It is currently distributed by AMD under a restrictive license and therefore could not have been pushed into official repo.<br />
* {{AUR|intel-opencl-runtime}}: Intel's libCL, provides OpenCL 1.2.<br />
<br />
{{Note|ICD Loader's vendor is mentioned only to identify each loader, it is otherwise completely irrelevant. ICD loaders are vendor-agnostic and may be used interchangeably. (as long as they are implemented correctly)}}<br />
<br />
===Implementations===<br />
To see which OpenCL implementations are currently active on your system, use the following command:<br />
$ ls /etc/OpenCL/vendors<br />
<br />
====AMD====<br />
OpenCL implementation from AMD is known as [http://developer.amd.com/sdks/AMDAPPSDK/Pages/default.aspx AMD APP SDK], formerly also known as AMD Stream SDK or ATi Stream.<br />
<br />
It can be installed with the {{AUR|amdapp-sdk}} package. <br />
This package is installed as {{ic|/opt/AMDAPP}} and apart from SDK files it also contains a number of code samples ({{ic|/opt/AMDAPP/SDK/samples/}}). It also provides the {{ic|clinfo}} utility which lists OpenCL platforms and devices present in the system and displays detailed information about them.<br />
<br />
As AMD APP SDK itself contains CPU OpenCL driver, no extra driver is needed to execute OpenCL on CPU devices (regardless of its vendor). GPU OpenCL drivers are provided by the {{AUR|catalyst}} package (an optional dependency).<br />
<br />
Code is compiled using {{Pkg|llvm}} (dependency).<br />
<br />
====Mesa (Gallium)====<br />
{{Out of date|How accurate is this part?}}<br />
OpenCL support from Mesa is in development (see http://www.x.org/wiki/GalliumStatus/). AMD Radeon cards are supported by the r600g driver.<br />
<br />
Arch Linux ships OpenCL support as a separate package {{Pkg|opencl-mesa}}. See http://dri.freedesktop.org/wiki/GalliumCompute/ for usage instructions.<br />
<br />
You could also use [http://pkgbuild.com/~lcarlier/mesa-git/ lordheavy's repo]. Install these packages:<br />
* ati-dri-git<br />
* opencl-mesa-git<br />
* libclc-git<br />
<br />
Surprisingly, pyrit performs 20% better with radeon+r600g compared to Catalyst 13.11 Beta1 (tested with 7 other CPU cores):<br />
{{bc|<nowiki>catalyst #1: 'OpenCL-Device 'Barts'': 21840.7 PMKs/s (RTT 2.8)<br />
radeon+r600g #1: 'OpenCL-Device 'AMD BARTS'': 26608.1 PMKs/s (RTT 3.0)</nowiki>}}<br />
At the time of this writing (30 October 2013), one must apply patches [http://people.freedesktop.org/~tstellar/pyrit-perf/0001-XXX-clover-Calculate-the-optimal-work-group-size.patch] and [http://people.freedesktop.org/~tstellar/pyrit-perf/0001-radeon-llvm-Specify-the-DataLayout-when-running-opti.patch] on top of Mesa commit ac81b6f2be8779022e8641984b09118b57263128 to get this performance improvement. The latest unpatched LLVM trunk was used (SVN rev 193660).<br />
<br />
====Nvidia====<br />
The Nvidia implementation is available as {{Pkg|opencl-nvidia}} from the [[official repositories]]. It only supports Nvidia GPUs running the {{Pkg|nvidia}} kernel module (nouveau does not support OpenCL yet).<br />
<br />
====Intel====<br />
The Intel implementation, named simply [http://software.intel.com/en-us/articles/opencl-sdk/ Intel OpenCL SDK], <br />
provides optimized OpenCL performance on Intel CPUs (mainly Core and Xeon) and CPUs only. Install it with the {{AUR|intel-opencl-sdk}} package. The runtime can be installed with the separate {{AUR|intel-opencl-runtime}} package. OpenCL for integrated graphics hardware is available through the {{AUR|beignet}} package for Ivy Bridge and newer hardware.<br />
<br />
====POCL====<br />
CPU-only LLVM-based implementation. Available as {{AUR|pocl}}.<br />
<br />
===Development===<br />
<br />
The required packages for OpenCL development are listed in the overview. Installation of a full SDK is optional (depending on the runtime implementation, which is often only available as part of a vendor's SDK).<br />
Link your application to {{ic|libOpenCL.so}}.<br />
<br />
====Language bindings====<br />
* '''JavaScript/HTML5''': [http://www.khronos.org/webcl/ WebCL]<br />
* '''[[Python]]''': {{pkg|python-pyopencl}}<br />
* '''[[D]]''': [https://bitbucket.org/trass3r/cl4d/wiki/Home cl4d]<br />
* '''[[Haskell]]''': OpenCLRaw: {{AUR|haskell-openclraw-git}}{{Broken package link|{{aur-mirror|haskell-openclraw-git}}}}<br />
* '''[[Java]]''': [http://jogamp.org/jocl/www/ JOCL] (a part of [http://jogamp.org/ JogAmp])<br />
* '''[[Mono|Mono/.NET]]''': [http://sourceforge.net/projects/opentk/ Open Toolkit]<br />
* '''[[Go]]''': [https://github.com/samuel/go-opencl OpenCL bindings for Go]<br />
* '''Racket''': Racket has a native interface [http://planet.racket-lang.org/display.ss?owner=jaymccarthy&package=opencl.plt on PLaneT] that can be installed via raco.<br />
<br />
==CUDA==<br />
<br />
CUDA (Compute Unified Device Architecture) is [[NVIDIA]]'s proprietary, closed-source parallel computing architecture and framework. It requires a Nvidia GPU. It consists of several components:<br />
* required:<br />
** proprietary Nvidia kernel module<br />
** CUDA "driver" and "runtime" libraries<br />
* optional:<br />
** additional libraries: CUBLAS, CUFFT, CUSPARSE, etc.<br />
** CUDA toolkit, including the {{ic|nvcc}} compiler<br />
** CUDA SDK, which contains many code samples and examples of CUDA and OpenCL programs<br />
<br />
The kernel module and CUDA "driver" library are shipped in {{Pkg|nvidia}} and {{Pkg|opencl-nvidia}}. The "runtime" library and the rest of the CUDA toolkit are available in {{Pkg|cuda}}. The library is available [https://projects.archlinux.org/svntogit/community.git/commit/trunk?h=packages/cuda&id=1b62c8bcb9194b2de1b750bd62a8dce1e7e549f5 only in 64-bit version].<br />
<br />
===Development===<br />
<br />
The {{Pkg|cuda}} package installs all components in the directory {{ic|/opt/cuda}}. For compiling CUDA code, add {{ic|/opt/cuda/include}} to your include path in the compiler instructions. For example this can be accomplished by adding {{ic|-I/opt/cuda/include}} to the compiler flags/options. To use {{ic|nvcc}}, a {{ic|gcc}} wrapper provided by NVIDIA, just add {{ic|/opt/cuda/bin}} to your path.<br />
<br />
To find whether the installation was successful and if cuda is up and running, you can compile the samples installed on {{ic|/opt/cuda/sample}} (you can simply run {{ic|make}} inside the directory, altough is a good practice to copy the {{ic|/opt/cuda/samples}} directory to your home directory before compiling) and running the compiled examples. A nice way to check the installation is to run one of the examples, called {{ic|deviceQuery}}.<br />
<br />
{{Note|CUDA 7.5/8.0 is not compatible with GCC 6 (see {{Bug|49272}}). Therefore the {{Pkg|cuda}} package depends on {{Pkg|gcc5}} and creates symbolic links in {{ic|/opt/cuda/bin/}} for the older version to be picked up by {{ic|nvcc}}. You might also need to configure your build system to use the same GCC version for compiling host code.}}<br />
<br />
===Language bindings===<br />
* '''Fortran''': [http://www.pgroup.com/resources/cudafortran.htm PGI CUDA Fortran Compiler]<br />
* '''[[Haskell]]''': The [http://hackage.haskell.org/package/accelerate accelerate package] lists available CUDA backends <br />
* '''[[Java]]''': [http://www.jcuda.org/jcuda/JCuda.html JCuda]<br />
* '''[[Mathematica]]''': [http://reference.wolfram.com/mathematica/CUDALink/tutorial/Overview.html CUDAlink]<br />
* '''[[Mono|Mono/.NET]]''': [http://www.hoopoe-cloud.com/Solutions/CUDA.NET/Default.aspx CUDA.NET], [http://www.hybriddsp.com/ CUDAfy.NET]<br />
* '''Perl''': [http://psilambda.com/download/kappa-for-perl Kappa], [https://github.com/run4flat/perl-CUDA-Minimal CUDA-Minimal]<br />
* '''[[Python]]''': {{pkg|python-pycuda}} or [http://psilambda.com/download/kappa-for-python Kappa]<br />
* '''[[Ruby]]''', '''Lua''': [http://psilambda.com/products/kappa/ Kappa]<br />
<br />
===Driver issues===<br />
<br />
It might be necessary to use the legacy driver {{Pkg|nvidia-304xx}} or {{Pkg|nvidia-304xx-lts}} to resolve permissions issues when running CUDA programs on systems with multiple GPUs.<br />
<br />
==List of OpenCL and CUDA accelerated software==<br />
{{Expansion}}<br />
* [[Bitcoin]]<br />
* [[GIMP]] (experimental - see [http://www.h-online.com/open/news/item/GIMP-2-8-RC-1-arrives-with-GPU-acceleration-1518417.html])<br />
* {{Pkg|pyrit}}<br />
* {{Pkg|darktable}} - OpenCL feature requires at least 1 GB RAM on GPU and ''Image support'' (check output of clinfo command).<br />
* {{Pkg|aircrack-ng}}<br />
* {{AUR|john-opencl}}{{Broken package link|{{aur-mirror|john-opencl}}}}<br />
* {{AUR|cuda_memtest}} - a GPU memtest. Despite its name, is supports both CUDA and OpenCL<br />
* {{Pkg|blender}} - CUDA support for Nvidia GPUs and OpenCL support for AMD GPUs. More information [http://blender.org/manual/render/cycles/features.html#features here].<br />
<br />
==Links and references==<br />
* [http://www.khronos.org/opencl/ OpenCL official homepage]<br />
* [http://www.nvidia.com/object/cuda_home_new.html CUDA official homepage]<br />
* [http://www.khronos.org/registry/cl/extensions/khr/cl_khr_icd.txt The ICD extension specification]<br />
* [http://developer.amd.com/appsdk AMD APP SDK homepage]<br />
* [https://developer.nvidia.com/cuda-toolkit CUDA Toolkit homepage]<br />
* [https://software.intel.com/en-us/intel-opencl Intel SDK for OpenCL Applications homepage]</div>Iunohttps://wiki.archlinux.org/index.php?title=PulseAudio/Troubleshooting&diff=457965PulseAudio/Troubleshooting2016-11-28T18:06:17Z<p>Iuno: formatting in /* No HDMI sound using a headless server */</p>
<hr />
<div>[[Category:Sound]]<br />
[[it:PulseAudio/Troubleshooting]]<br />
[[ja:PulseAudio/トラブルシューティング]]<br />
[[ru:PulseAudio/Troubleshooting]]<br />
See [[PulseAudio]] for the main article.<br />
<br />
== Volume ==<br />
<br />
Here you will find some hints on volume issues and why you may not hear anything.<br />
<br />
=== Auto-Mute Mode ===<br />
<br />
Auto-Mute Mode may be enabled. It can be disabled using {{ic|alsamixer}}.<br />
<br />
See http://superuser.com/questions/431079/how-to-disable-auto-mute-mode for more.<br />
<br />
To save your current settings as the default options, run {{ic|alsactl store}} as root.<br />
<br />
=== Muted audio device ===<br />
<br />
If one experiences no audio output via any means while using [[ALSA]], attempt to unmute the sound card. To do this, launch {{ic|alsamixer}} and make sure each column has a green {{ic|00}} under it (this can be toggled by pressing {{ic|m}}):<br />
<br />
$ alsamixer -c 0<br />
<br />
{{Note|alsamixer will not tell you which output device is set as the default. One possible cause of no sound after install is that PulseAudio detects the wrong output device as a default. Install {{Pkg|pavucontrol}} and check if there is any output on the pavucontrol panel when playing a ''.wav'' file.}}<br />
<br />
=== Output stuck muted while Master is toggled ===<br />
<br />
{{Remove|The problem is using ALSA tools for controlling PulseAudio, see [[PulseAudio#Keyboard volume control]] for better way.}}<br />
<br />
In setups with multiple outputs (e.g. 'Headphone' and 'Speaker') using plain amixer to toggle Master can trigger PulseAudio to mute the active output too, but it does not necessarily unmute it when Master is toggled back to be unmuted. To resolve this, amixer must have the device flag set to 'pulse':<br />
<br />
$ amixer -D pulse sset Master toggle<br />
<br />
This will cause amixer to ask PulseAudio to do the toggling rather than toggling it directly.<br />
Because of this, PulseAudio will correctly unmute Master as well as any applicable output.<br />
<br />
=== Muted application ===<br />
<br />
If a specific application is muted or low while all else seems to be in order, it may be due to individual {{ic|sink-input}} settings. With the offending application playing audio, run:<br />
<br />
$ pacmd list-sink-inputs<br />
<br />
Find and make note of the {{ic|index}} of the corresponding {{ic|sink input}}. The {{ic|properties:}} {{ic|application.name}} and {{ic|application.process.binary}}, among others, should help here. Ensure sane settings are present, specifically those of {{ic|muted}} and {{ic|volume}}.<br />
If the sink is muted, it can be unmuted by:<br />
<br />
$ pacmd set-sink-input-mute <index> false<br />
<br />
If the volume needs adjusting, it can be set to 100% by:<br />
<br />
$ pacmd set-sink-input-volume <index> 0x10000<br />
<br />
{{Note|If {{ic|pacmd}} reports {{ic|0 sink input(s)}}, double-check that the application is playing audio. If it is still absent, verify that other applications show up as sink inputs.}}<br />
<br />
=== Volume adjustment does not work properly ===<br />
<br />
Check:<br />
{{ic|/usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common}}<br />
<br />
If the volume does not appear to increment/decrement properly using {{ic|alsamixer}} or {{ic|amixer}}, it may be due to PulseAudio having a larger number of increments (65537 to be exact). Try using larger values when changing volume (e.g. {{ic|amixer set Master 655+}}).<br />
<br />
=== Per-application volumes change when the Master volume is adjusted ===<br />
<br />
This is because PulseAudio uses flat volumes by default, instead of relative volumes, relative to an absolute master volume. If this is found to be inconvenient, asinine, or otherwise undesireable, relative volumes can be enabled by disabling flat volumes in the PulseAudio daemon's configuration file:<br />
<br />
{{hc|/etc/pulse/daemon.conf or ~/.config/pulse/daemon.conf|<nowiki><br />
flat-volumes = no<br />
</nowiki>}}<br />
<br />
and then restarting PulseAudio by executing<br />
<br />
$ pulseaudio -k<br />
$ pulseaudio --start<br />
<br />
=== Volume gets louder every time a new application is started ===<br />
<br />
Per default, it seems as if changing the volume in an application sets the global system volume to that level instead of only affecting the respective application. Applications setting their volume on startup will therefore cause the system volume to "jump".<br />
<br />
Fix this by disabling flat volumes, as demonstrated in the previous section. When Pulse comes back after a few seconds, applications will not alter the global system volume anymore but have their own volume level again.<br />
<br />
{{Note|A previously installed and removed pulseaudio-equalizer may leave behind remnants of the setup in {{ic|~/.config/pulse/default.pa}} or {{ic|~/.pulse/default.pa}} which can also cause maximized volume trouble. Comment that out as needed.}}<br />
<br />
=== Sound output is only mono on M-Audio Audiophile 2496 sound card ===<br />
<br />
Add the following:<br />
<br />
{{hc|/etc/pulseaudio/default.pa|<nowiki><br />
load-module module-alsa-sink sink_name=delta_out device=hw:M2496 format=s24le channels=10 channel_map=left,right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7<br />
load-module module-alsa-source source_name=delta_in device=hw:M2496 format=s24le channels=12 channel_map=left,right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7,aux8,aux9<br />
set-default-sink delta_out<br />
set-default-source delta_in<br />
</nowiki>}}<br />
<br />
=== No sound below a volume cutoff ===<br />
<br />
Known issue (won't fix): https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/223133<br />
<br />
If sound does not play when PulseAudio's volume is set below a certain level, try setting {{ic|1=ignore_dB=1}} in {{ic|/etc/pulse/default.pa}}:<br />
{{hc|/etc/pulse/default.pa|<nowiki><br />
load-module module-udev-detect ignore_dB=1<br />
</nowiki>}}<br />
<br />
However, be aware that it may cause another bug preventing PulseAudio to unmute speakers when headphones or other audio devices are unplugged.<br />
<br />
=== Low volume for internal microphone ===<br />
<br />
If you experience low volume on internal notebook microphone, try setting:<br />
{{hc|/etc/pulse/default.pa|<nowiki><br />
set-source-volume 1 300000<br />
</nowiki>}}<br />
<br />
=== Clients alter master output volume (a.k.a. volume jumps to 100% after running application) ===<br />
<br />
If changing the volume in specific applications or simply running an application changes the master output volume this is likely due to flat volumes mode of pulseaudio. Before disabling it, KDE users should try lowering their system notifications volume in ''System Settings -> Application and System Notifications -> Manage Notifications'' under the ''Player Settings'' tab to something reasonable. Changing the ''Event Sounds'' volume in KMix or another volume mixer application will not help here. This should make the flat-volumes mode work out as intended, if it does not work, some other application is likely requesting 100% volume when its playing something. If all else fails, you can try to disable flat-volumes:<br />
<br />
{{hc|/etc/pulse/daemon.conf|<nowiki><br />
flat-volumes = no<br />
</nowiki>}}<br />
<br />
Then restart PulseAudio daemon:<br />
<br />
# pulseaudio -k<br />
# pulseaudio --start<br />
<br />
=== No sound after resume from suspend ===<br />
<br />
If audio generally works, but stops after resume from suspend, try "reloading" PulseAudio by executing:<br />
$ /usr/bin/pasuspender /bin/true<br />
<br />
This is better than completely killing and restarting it ({{ic|pulseaudio -k}} followed by {{ic|pulseaudio --start}}), because it does not break already running applications.<br />
<br />
If the above fixes your problem, you may wish to automate it, by creating a systemd service file.<br />
<br />
1. Create the template service file in {{ic|/etc/systemd/system/resume-fix-pulseaudio@.service}}:<br />
<br />
[Unit]<br />
Description=Fix PulseAudio after resume from suspend<br />
After=suspend.target<br />
<br />
[Service]<br />
User=%I<br />
Type=oneshot<br />
Environment="XDG_RUNTIME_DIR=/run/user/%U"<br />
ExecStart=/usr/bin/pasuspender /bin/true<br />
<br />
[Install]<br />
WantedBy=suspend.target<br />
<br />
2. Enable it for your user account<br />
<br />
# systemctl enable resume-fix-pulseaudio@YOUR_USERNAME_HERE.service<br />
<br />
3. Reload systemd<br />
<br />
# systemctl --system daemon-reload<br />
<br />
=== ALSA channels mute when headphones are plugged/unplugged improperly ===<br />
<br />
If when you unplug your headphones or plug them in the audio remains muted in alsamixer on the wrong channel due to it being set to 0%, you may be able to fix it by opening {{ic|/etc/pulse/default.pa}} and commenting out the line:<br />
<br />
load-module module-switch-on-port-available<br />
<br />
== Microphone ==<br />
<br />
=== Microphone not detected by PulseAudio ===<br />
<br />
Determine the card and device number of your mic:<br />
<br />
$ arecord -l<br />
**** List of CAPTURE Hardware Devices ****<br />
card 0: PCH [HDA Intel PCH], device 0: ALC269VC Analog [ALC269VC Analog]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
<br />
In hw:CARD,DEVICE notation, you would specify the above device as {{ic|hw:0,0}}.<br />
<br />
Then, edit {{ic|/etc/pulse/default.pa}} and insert a {{ic|load-module}} line specifying your device as follows:<br />
<br />
load-module module-alsa-source device=hw:0,0<br />
# the line above should be somewhere before the line below<br />
.ifexists module-udev-detect.so<br />
<br />
Finally, restart pulseaudio to apply the new settings:<br />
<br />
$ pulseaudio -k ; pulseaudio -D<br />
<br />
If everything worked correctly, you should now see your mic show up when running {{ic|pavucontrol}} (under the {{ic|Input Devices}} tab).<br />
<br />
=== PulseAudio uses wrong microphone ===<br />
<br />
If PulseAudio uses the wrong microphone, and changing the Input Device with Pavucontrol did not help, take a look at alsamixer. It seems that Pavucontrol does not always set the input source correctly.<br />
<br />
$ alsamixer<br />
<br />
Press {{ic|F6}} and choose your sound card, e.g. HDA Intel. Now press {{ic|F5}} to display all items. Try to find the item: {{ic|Input Source}}. With the up/down arrow keys you are able to change the input source.<br />
<br />
Now try if the correct microphone is used for recording.<br />
<br />
=== No microphone on ThinkPad T400/T500/T420 ===<br />
<br />
Run:<br />
<br />
alsamixer -c 0<br />
<br />
Unmute and maximize the volume of the "Internal Mic".<br />
<br />
Once you see the device with:<br />
<br />
arecord -l<br />
<br />
you might still need to adjust the settings. The microphone and the audio jack are duplexed. Set the configuration of the internal audio in pavucontrol to ''Analog Stereo Duplex''.<br />
<br />
=== No microphone input on Acer Aspire One ===<br />
<br />
Install pavucontrol, unlink the microphone channels and turn down the left one to 0.<br />
Reference: http://getsatisfaction.com/jolicloud/topics/deaf_internal_mic_on_acer_aspire_one#reply_2108048<br />
<br />
=== Static noise in microphone recording ===<br />
<br />
If we are getting static noise in Skype, gnome-sound-recorder, arecord, etc.'s recordings, then the sound card sample rate is incorrect. That is why there is static noise in Linux microphone recordings. To fix this, we need to set the sampling rate in {{ic|/etc/pulse/daemon.conf}} for the sound hardware.<br />
<br />
==== Determine sound cards in the system (1/5) ====<br />
<br />
This requires {{Pkg|alsa-utils}} and related packages to be installed:<br />
{{hc|$ arecord --list-devices|<br />
**** List of CAPTURE Hardware Devices ****<br />
card 0: Intel [HDA Intel], device 0: ALC888 Analog [ALC888 Analog]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
card 0: Intel [HDA Intel], device 2: ALC888 Analog [ALC888 Analog]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
}}<br />
<br />
Sound card is {{ic|hw:0,0}}.<br />
<br />
==== Determine sampling rate of the sound card (2/5) ====<br />
<br />
{{hc|1=arecord -f dat -r 60000 -D hw:0,0 -d 5 test.wav|2=<br />
"Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 60000 Hz, Stereo<br />
Warning: rate is not accurate (requested = 60000Hz, '''got = 96000Hz''')<br />
please, try the plug plugin<br />
}}<br />
<br />
observe, the {{ic|1=got = 96000Hz}}. This is the maximum sampling rate of our card.<br />
<br />
==== Setting the sound card's sampling rate into PulseAudio configuration (3/5) ====<br />
<br />
The default sampling rate in PulseAudio:<br />
{{hc|1=$ grep "default-sample-rate" /etc/pulse/daemon.conf|2=<br />
; default-sample-rate = 44100<br />
}}<br />
<br />
{{ic|44100}} is disabled and needs to be changed to {{ic|96000}}:<br />
# sed 's/; default-sample-rate = 44100/default-sample-rate = 96000/g' -i /etc/pulse/daemon.conf<br />
<br />
==== Restart PulseAudio to apply the new settings (4/5) ====<br />
<br />
$ pulseaudio -k<br />
$ pulseaudio --start<br />
<br />
==== Finally check by recording and playing it back (5/5) ====<br />
<br />
Let us record some voice using a microphone for, say, 10 seconds. Make sure the microphone is not muted and all<br />
<br />
$ arecord -f cd -d 10 test-mic.wav<br />
<br />
After 10 seconds, let us play the recording...<br />
<br />
$ aplay test-mic.wav<br />
<br />
Now hopefully, there is no static noise in microphone recording anymore.<br />
<br />
=== No microphone on Steam or Skype with enable-remixing = no ===<br />
<br />
When you set {{ic|1=enable-remixing = no}} on {{ic|/etc/pulse/daemon.conf}} you may find that your microphone has stopped working on certain applications like Skype or Steam. This happens because these applications capture the microphone as mono only and because remixing is disabled, Pulseaudio will no longer remix your stereo microphone to mono.<br />
<br />
To fix this you need to tell Pulseaudio to do this for you:<br />
<br />
1. Find the name of the source <br />
<br />
# pacmd list-sources<br />
<br />
Example output edited for brevity, the name you need is in bold:<br />
<br />
index: 2<br />
name: <'''alsa_input.pci-0000_00_14.2.analog-stereo'''><br />
driver: <module-alsa-card.c><br />
flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY<br />
<br />
2. Add a remap rule to {{ic|/etc/pulse/default.pa}}, use the name you found with the previous command, here we will use '''alsa_input.pci-0000_00_14.2.analog-stereo''' as an example:<br />
<br />
{{hc|/etc/pulse/default.pa|<nowiki><br />
### Remap microphone to mono<br />
load-module module-remap-source master=alsa_input.pci-0000_00_14.2.analog-stereo master_channel_map=front-left,front-right channels=2 channel_map=mono,mono<br />
</nowiki>}}<br />
<br />
3. Restart Pulseaudio<br />
<br />
# pulseaudio -k<br />
<br />
{{Note|Pulseaudio may fail to start if you do not exit a program that was using the microphone (e.g. if you tested on Steam before modifying the file), in which case you should exit the application and manually start Pulseaudio}}<br />
<br />
# pulseaudio --start<br />
<br />
=== Microphone distorted due to automatic adjustment ===<br />
If your microphone volume creeps up automatically and causes the sound to be distorted, you can fix it by disabling mic boost:<br />
<br />
In {{ic|/usr/share/pulseaudio/alsa-mixer/paths/analog-input-internal-mic.conf}} and {{ic|/usr/share/pulseaudio/alsa-mixer/paths/analog-input-mic.conf}},<br />
<br />
* Under {{ic|[Element Internal Mic Boost]}} set {{ic|volume}} to {{ic|zero}}.<br />
* Under {{ic|[Element Int Mic Boost]}} set {{ic|volume}} to {{ic|zero}}.<br />
* Under {{ic|[Element Mic Boost]}} set {{ic|volume}} to {{ic|zero}}.<br />
<br />
Then restart PulseAudio:<br />
<br />
# pulseaudio -k<br />
<br />
== Audio quality ==<br />
<br />
=== Enable Echo/Noise-Cancelation ===<br />
<br />
Arch does not load the Pulseaudio Echo-Cancelation module by default, therefore, we have to add it in {{ic|/etc/pulse/default.pa}}. First you can test if the module is present with {{ic|pacmd}} and entering {{ic|list-modules}}. If you cannot find a line showing {{ic|name: <module-echo-cancel>}} you have to add <br />
<br />
{{hc|/etc/pulse/default.pa|<br />
### Enable Echo/Noise-Cancelation<br />
load-module module-echo-cancel<br />
}}<br />
<br />
then restart Pulseaudio<br />
<br />
pulseaudio -k<br />
pulseaudio --start<br />
<br />
and check if the module is activated by starting {{ic|pavucontrol}}. Under {{ic|Recoding}} the input device should show {{ic|Echo-Cancel Source Stream from"}}<br />
<br />
=== Glitches, skips or crackling ===<br />
<br />
The newer implementation of the PulseAudio sound server uses timer-based audio scheduling instead of the traditional, interrupt-driven approach. <br />
<br />
Timer-based scheduling may expose issues in some ALSA drivers. On the other hand, other drivers might be glitchy without it on, so check to see what works on your system. <br />
<br />
To turn timer-based scheduling off add {{ic|1=tsched=0}} in {{ic|/etc/pulse/default.pa}}:<br />
{{hc|/etc/pulse/default.pa|2=<br />
load-module module-udev-detect tsched=0<br />
}}<br />
<br />
Then restart the PulseAudio server:<br />
<br />
$ pulseaudio -k<br />
$ pulseaudio --start<br />
<br />
Do the reverse to enable timer-based scheduling, if not already enabled by default.<br />
<br />
If you are using Intel's [[Wikipedia:IOMMU|IOMMU]] and experience glitches and/or skips, add {{ic|1=intel_iommu=igfx_off}} to your kernel command line.<br />
<br />
Some Intel audio cards using the {{ic|snd-hda-intel}} module need the otions {{ic|1=vid=8086 pid=8ca0 snoop=0}}. In order to set them permanently, create/modify the following file including the line below.<br />
{{hc|/etc/modprobe.d/sound.conf|2=<br />
options snd-hda-intel vid=8086 pid=8ca0 snoop=0<br />
}}<br />
<br />
Please report any such cards to [http://www.freedesktop.org/wiki/Software/PulseAudio/Backends/ALSA/BrokenDrivers/ PulseAudio Broken Sound Driver page]<br />
<br />
=== Setting the default fragment number and buffer size in PulseAudio ===<br />
<br />
{{Poor writing|Copied from Linux mint topic with few additions}}<br />
<br />
==== Disabling timer-based scheduling (0/4) ====<br />
<br />
By default, PulseAudio uses timer-based scheduling. In this mode, fragments are not used at all, and so the default-fragments and default-fragment-size-msec parameters are ignored.<br />
To turn timer-based scheduling off add {{ic|1=tsched=0}} in {{ic|/etc/pulse/default.pa}}:<br />
{{hc|/etc/pulse/default.pa|2=<br />
load-module module-udev-detect tsched=0<br />
}}<br />
<br />
==== Finding out your audio device parameters (1/4) ====<br />
<br />
To find out what your sound card buffering settings are, use the following command and scroll through the output until you find the correct sink entry.<br />
<br />
{{hc|$ pactl list sinks|<nowiki><br />
Sink #1<br />
State: RUNNING<br />
Name: alsa_output.pci-0000_00_1b.0.analog-stereo<br />
Description: Built-in Audio Analog Stereo<br />
Driver: module-alsa-card.c<br />
Sample Specification: s16le 2ch 44100Hz<br />
Channel Map: front-left,front-right<br />
Owner Module: 7<br />
Mute: no<br />
Volume: front-left: 42600 / 65% / -11.22 dB, front-right: 42600 / 65% / -11.22 dB<br />
balance 0.00<br />
Base Volume: 65536 / 100% / 0.00 dB<br />
Monitor Source: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor<br />
Latency: 70662 usec, configured 85000 usec<br />
Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY <br />
Properties:<br />
alsa.resolution_bits = "16"<br />
device.api = "alsa"<br />
device.class = "sound"<br />
alsa.class = "generic"<br />
alsa.subclass = "generic-mix"<br />
alsa.name = "ALC283 Analog"<br />
alsa.id = "ALC283 Analog"<br />
alsa.subdevice = "0"<br />
alsa.subdevice_name = "subdevice #0"<br />
alsa.device = "0"<br />
alsa.card = "1"<br />
alsa.card_name = "HDA Intel PCH"<br />
alsa.long_card_name = "HDA Intel PCH at 0xe111c000 irq 43"<br />
alsa.driver_name = "snd_hda_intel"<br />
device.bus_path = "pci-0000:00:1b.0"<br />
sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card1"<br />
device.bus = "pci"<br />
device.vendor.id = "8086"<br />
device.vendor.name = "Intel Corporation"<br />
device.product.id = "9ca0"<br />
device.product.name = "Wildcat Point-LP High Definition Audio Controller"<br />
device.form_factor = "internal"<br />
device.string = "front:1"<br />
device.buffering.buffer_size = "352800"<br />
device.buffering.fragment_size = "176400"<br />
device.access_mode = "mmap+timer"<br />
device.profile.name = "analog-stereo"<br />
device.profile.description = "Analog Stereo"<br />
device.description = "Built-in Audio Analog Stereo"<br />
alsa.mixer_name = "Realtek ALC283"<br />
alsa.components = "HDA:10ec0283,10ec0283,00100003"<br />
module-udev-detect.discovered = "1"<br />
device.icon_name = "audio-card-pci"<br />
Ports:<br />
analog-output-speaker: Speakers (priority: 10000, not available)<br />
analog-output-headphones: Headphones (priority: 9000, available)<br />
Active Port: analog-output-headphones<br />
Formats:<br />
pcm<br />
...<br />
</nowiki>}}<br />
<br />
Take note the {{ic|buffer_size}} and {{ic|fragment_size}} values for the relevant sound card.<br />
<br />
==== Calculate your fragment size in msecs and number of fragments (2/4) ====<br />
<br />
PulseAudio's default sampling rate and bit depth are set to {{ic|44100Hz}} @ {{ic|16 bits}}.<br />
<br />
With this configuration, the bit rate we need is {{ic|44100}}*{{ic|16}} = {{ic|705600}} bits per second. That is {{ic|1411200 bps}} for stereo.<br />
<br />
Let us take a look at the parameters we have found in the previous step:<br />
<br />
device.buffering.buffer_size = "352800" => 352800/1411200 = 0.25 s = 250 ms<br />
device.buffering.fragment_size = "176400" => 176400/1411200 = 0.125 s = 125 ms<br />
<br />
==== Modify PulseAudio's configuration file (3/4) ====<br />
<br />
{{hc|/etc/pulse/daemon.conf|<nowiki><br />
; default-fragments = X<br />
; default-fragment-size-msec = Y<br />
</nowiki>}}<br />
<br />
In the previous step, we calculated the fragment size parameter.<br />
The number of fragments is simply buffer_size/fragment_size, which in this case ({{ic|250/125}}) is {{ic|2}}:<br />
<br />
{{hc|/etc/pulse/daemon.conf|2=<br />
; default-fragments = '''2'''<br />
; default-fragment-size-msec = '''125'''<br />
}}<br />
<br />
==== Restart the PulseAudio daemon (4/4) ====<br />
<br />
$ pulseaudio -k<br />
$ pulseaudio --start<br />
<br />
For more information, see: [http://forums.linuxmint.com/viewtopic.php?f=42&t=44862 Linux Mint topic]<br />
<br />
=== Choppy sound with analog surround sound setup ===<br />
<br />
The low-frequency effects (LFE) channel is not remixed per default. To enable it the following needs to be set in {{ic|/etc/pulse/daemon.conf}} :<br />
{{hc|/etc/pulse/daemon.conf|<nowiki><br />
enable-lfe-remixing = yes<br />
</nowiki>}}<br />
<br />
=== Laggy sound ===<br />
<br />
This issue is due to incorrect buffer sizes. First verify that the variables {{ic|default-fragments}} and {{ic|default-fragment-size-msec}} are not being set to non default values in the file {{ic|/etc/pulse/daemon.conf}}. If the issue is still present, try setting them to the following values:<br />
<br />
{{hc|/etc/pulse/daemon.conf|2=<br />
default-fragments = 5<br />
default-fragment-size-msec = 2<br />
}}<br />
<br />
=== Choppy/distorted sound ===<br />
This can result from an incorrectly set sample rate. Try the following setting:<br />
<br />
{{hc|/etc/pulse/daemon.conf|2=<br />
default-sample-rate = 48000<br />
}}<br />
and restart the PulseAudio server.<br />
<br />
If one experiences choppy sound in applications using [[Wikipedia:OpenAL|OpenAL]], change the sample rate in {{ic|/etc/openal/alsoft.conf}}:<br />
{{hc|/etc/openal/alsoft.conf|2=<br />
frequency = 48000<br />
}}<br />
<br />
Setting the PCM volume above 0 dB can cause [[Wikipedia:Clipping_(audio)|clipping]]. Running {{ic|alsamixer}} will allow you to see if this is the problem and if so fix it. Note that ALSA may not [http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/PulseAudioStoleMyVolumes correctly export] the dB information to PulseAudio. Try the following:<br />
<br />
{{hc|/etc/pulse/default.pa|2=<br />
load-module module-udev-detect ignore_dB=1<br />
}}<br />
<br />
and restart the PulseAudio server. See also [[#No sound below a volume cutoff]].<br />
<br />
== Hardware and Cards ==<br />
<br />
=== No HDMI sound output after some time with the monitor turned off ===<br />
<br />
The monitor is connected via HDMI/DisplayPort, and the audio jack is plugged in the headphone jack of the monitor, but PulseAudio insists that it is unplugged:<br />
<br />
{{hc|pactl list sinks|<br />
...<br />
hdmi-output-0: HDMI / DisplayPort (priority: 5900, not available)<br />
...<br />
}}<br />
<br />
This leads to no sound coming from HDMI output. A workaround for this is to switch to another VT and back again. If that does not work, try: turn off your monitor, switch to another VT, turn on your monitor, and switch back. This problem has been reported by ATI/Nvidia/Intel users.<br />
<br />
Another workaround could be to disable the switch-on-port-available module by commenting it in /etc/pulse/default.pa [https://bugs.freedesktop.org/show_bug.cgi?id=93946#c36]:<br />
<br />
{{hc|/etc/pulse/default.pa|<br />
...<br />
### Should be after module-*-restore but before module-*-detect<br />
#load-module module-switch-on-port-available<br />
...<br />
}}<br />
<br />
=== No HDMI sound using a headless server ===<br />
You might want to use HDMI audio with your a/v receiver but no display. HDMI requires a video signal, which we have from the virtual terminal. <br />
<br />
By default, this signal is turned off after 600 seconds, thus the audio sink gets lost as well.<br />
<br />
To prevent screen blanking, add {{ic|consoleblank&#61;0}} to the kernel command line.<br />
<br />
=== No cards ===<br />
<br />
If PulseAudio starts, run {{ic|pacmd list}}. If no cards are reported, make sure that the ALSA devices are not in use:<br />
<br />
$ fuser -v /dev/snd/*<br />
$ fuser -v /dev/dsp<br />
<br />
Make sure any applications using the pcm or dsp files are shut down before restarting PulseAudio.<br />
<br />
=== Starting an application interrupts other app's sound ===<br />
<br />
If you have trouble with some applications (eg. Teamspeak, Mumble) interrupting sound output of already running applications (eg. Deadbeaf), you can solve this by commenting out the line {{ic|load-module module-role-cork}} in {{ic|/etc/pulse/default.pa}} like shown below:<br />
<br />
{{hc|/etc/pulse/default.pa|<br />
### Cork music/video streams when a phone stream is active<br />
# load-module module-role-cork<br />
}}<br />
<br />
Then restart pulseaudo by using your normal user account with<br />
<br />
pulseaudio -k<br />
pulseaudio --start<br />
<br />
=== The only device shown is "dummy output" or newly connected cards are not detected ===<br />
<br />
{{Merge|Fluidsynth|Application-specific problems should be moved to [[Fluidsynth]].}}<br />
<br />
Another reason is [[FluidSynth]] conflicting with PulseAudio as discussed in [https://bbs.archlinux.org/viewtopic.php?id=154002 this thread]. One solution is to remove the package {{Pkg|fluidsynth}}.<br />
<br />
Alternatively you could modify the ''fluidsynth'' configuration file {{ic|/etc/conf.d/fluidsynth}} and change the driver to PulseAudio, then restart ''fluidsynth'' and PulseAudio:<br />
<br />
{{hc|/etc/conf.d/fluidsynth|<br />
output=AUDIO_DRIVER=pulseaudio<br />
OTHER_OPTS='-m alsa_seq-r 48000'<br />
}}<br />
<br />
It is also possible there is an issue with logind giving permissions, see [[General troubleshooting#Session permissions]] for more information.<br />
<br />
=== No HDMI 5/7.1 Selection for Device ===<br />
<br />
If you are unable to select 5/7.1 channel output for a working HDMI device, then turning off "stream device reading" in {{ic|/etc/pulse/default.pa}} might help. <br />
<br />
See [[#Fallback device is not respected]].<br />
<br />
=== Failed to create sink input: sink is suspended ===<br />
<br />
If you do not have any output sound and receive dozens of errors related to a suspended sink in your {{ic|journalctl -b}} log, then backup first and then delete your user-specific pulse folders:<br />
<br />
$ rm -r ~/.pulse ~/.pulse-cookie ~/.config/pulse<br />
<br />
=== Simultaneous output to multiple sound cards / devices ===<br />
<br />
Simultaneous output to two different devices can be very useful. For example, being able to send audio to your A/V receiver via your graphics card's HDMI output, while also sending the same audio through the analogue output of your motherboard's built-in audio. This is much less hassle than it used to be (in this example, we are using GNOME desktop).<br />
<br />
Using {{Pkg|paprefs}}, simply select "Add virtual output device for simultaneous output on all local sound cards" from under the "Simultaneous Output" tab. Then, under GNOME's "sound settings", select the simultaneous output you have just created.<br />
<br />
If this does not work, try adding the following to {{ic|~/.asoundrc}}:<br />
<br />
pcm.dsp {<br />
type plug<br />
slave.pcm "dmix"<br />
}<br />
<br />
{{Tip|Simultaneous output can also be achieved manually using alsamixer. Disable "auto mute" item, then unmute other output sources you want to hear and increase their volume.}}<br />
<br />
=== Simultaneous output to multiple sinks on the same sound card not working ===<br />
<br />
This can be useful for users who have multiple sound sources and want to play them on different sinks/outputs. <br />
An example use-case for this would be if you play music and also voice chat and want to output music to speakers (in this case Digital S/PDIF) and voice to headphones. (Analog)<br />
<br />
This is sometimes auto detected by PulseAudio but not always. If you know that your sound card can output to both Analog and S/PDIF at the same time and PulseAudio does not have this option in its profiles in pavucontrol, or veromix then you probably need to create a configuration file for your sound card.<br />
<br />
More in detail you need to create a profile-set for your specific sound card.<br />
This is done in two steps mostly.<br />
* Create udev rule to make PulseAudio choose your PulseAudio configuration file specific to the sound card.<br />
* Create the actual configuration.<br />
<br />
Create a pulseadio udev rule.<br />
<br />
{{Note|This is only an example for Asus Xonar Essence STX.<br />
Read [[udev]] to find out the correct values.}}<br />
<br />
{{Note|Your configuration file should have lower number than the original PulseAudio rule to take effect.}}<br />
<br />
{{hc|/usr/lib/udev/rules.d/90-pulseaudio-Xonar-STX.rules|<br />
ACTION&#61;&#61;"change", SUBSYSTEM&#61;&#61;"sound", KERNEL&#61;&#61;"card*", \<br />
ATTRS&#123;subsystem_vendor&#125;&#61;&#61;"0x1043", ATTRS&#123;subsystem_device&#125;&#61;&#61;"0x835c", ENV&#123;PULSE_PROFILE_SET&#125;&#61;"asus-xonar-essence-stx.conf" <br />
}}<br />
<br />
Now, create a configuration file. If you bother, you can start from scratch and make it saucy. However you can also use the default configuration file, rename it, and then add your profile there that you know works. Less pretty but also faster.<br />
<br />
To enable multiple sinks for Asus Xonar Essence STX you need only to add this in.<br />
<br />
{{Note|{{ic|asus-xonar-essence-stx.conf}} also includes all code/mappings from {{ic|default.conf}}.}}<br />
<br />
{{hc|/usr/share/pulseaudio/alsa-mixer/profile-sets/asus-xonar-essence-stx.conf|<br />
[Profile analog-stereo+iec958-stereo]<br />
description &#61; Analog Stereo Duplex + Digital Stereo Output<br />
input-mappings &#61; analog-stereo<br />
output-mappings &#61; analog-stereo iec958-stereo<br />
skip-probe &#61; yes<br />
}}<br />
<br />
This will auto-profile your Asus Xonar Essence STX with default profiles and add your own profile so you can have multiple sinks.<br />
<br />
You need to create another profile in the configuration file if you want to have the same functionality with AC3 Digital 5.1 output.<br />
<br />
[http://www.freedesktop.org/wiki/Software/PulseAudio/Backends/ALSA/Profiles/ See PulseAudio article about profiles]<br />
<br />
=== Some profiles like SPDIF are not enabled by default on the card ===<br />
<br />
Some profiles like IEC-958 (i.e. S/PDIF) may not be enabled by default on the selected sink. Each time the system starts up, the card profile is disabled and the pulseaudio daemon cannot select it.<br />
You have to add the profile selection to you default.pa file. <br />
Verify the card and profile name with :<br />
<br />
$ pacmd list-cards<br />
Then edit the config to add the profile<br />
{{hc|~/.config/pulse/default.pa|<br />
## Replace with your card name and the profile you want to activate<br />
set-card-profile alsa_card.pci-0000_00_1b.0 output:iec958-stereo+input:analog-stereo<br />
}}<br />
<br />
Pulse audio will add this profile the pool of available profiles<br />
<br />
== Bluetooth ==<br />
<br />
=== Disable Bluetooth support ===<br />
<br />
If you do not use Bluetooth, you may experience the following error in your journal:<br />
<br />
bluez5-util.c: GetManagedObjects() failed: org.freedesktop.DBus.Error.ServiceUnknown: The name org.bluez was not provided by any .service files<br />
<br />
To disable Bluetooth support in PulseAudio, make sure that the following lines are commented out in the configuration file in use ({{ic|~/.config/pulse/default.pa}} or {{ic|/etc/pulse/default.pa}}):<br />
<br />
{{hc|~/.config/pulse/default.pa|<br />
### Automatically load driver modules for Bluetooth hardware<br />
#.ifexists module-bluetooth-policy.so<br />
#load-module module-bluetooth-policy<br />
#.endif<br />
<br />
#.ifexists module-bluetooth-discover.so<br />
#load-module module-bluetooth-discover<br />
#.endif<br />
}}<br />
<br />
=== Bluetooth headset replay problems ===<br />
<br />
Some user [https://bbs.archlinux.org/viewtopic.php?id=117420 reports] huge delays or even no sound when the Bluetooth connection does not send any data. This is due to the {{ic|module-suspend-on-idle}} module, which automatically suspends sinks/sources on idle. As this can cause problems with headset, the responsible module can be deactivated.<br />
<br />
To disable loading of the {{ic|module-suspend-on-idle}} module, comment out the following line in the configuration file in use ({{ic|~/.config/pulse/default.pa}} or {{ic|/etc/pulse/default.pa}}):<br />
<br />
{{hc|~/.config/pulse/default.pa|<br />
### Automatically suspend sinks/sources that become idle for too long<br />
#load-module module-suspend-on-idle<br />
}}<br />
<br />
Finally restart PulseAudio to apply the changes.<br />
<br />
=== Automatically switch to Bluetooth or USB headset ===<br />
<br />
Add the following:<br />
{{hc|/etc/pulse/default.pa|<br />
# automatically switch to newly-connected devices<br />
load-module module-switch-on-connect<br />
}}<br />
<br />
=== My Bluetooth device is paired but does not play any sound ===<br />
<br />
[[Bluetooth#My_device_is_paired_but_no_sound_is_played_from_it|See the article in Bluetooth section]]{{Broken section link}}<br />
<br />
Starting from PulseAudio 2.99 and bluez 4.101 you should '''avoid''' using Socket interface. Do NOT use:<br />
<br />
{{hc|/etc/bluetooth/audio.conf|<nowiki><br />
[General]<br />
Enable=Socket<br />
</nowiki>}}<br />
<br />
If you face problems with A2DP and PA 2.99 make sure you have {{Pkg|sbc}} library.<br />
<br />
== Applications ==<br />
<br />
=== Flash content ===<br />
<br />
Since Adobe Flash does not directly support PulseAudio, the recommended way is to [[PulseAudio#ALSA|configure ALSA to use the virtual PulseAudio sound card]].<br />
<br />
If Flash audio is lagging, you may try to have Flash access ALSA directly. See [[PulseAudio#ALSA/dmix without grabbing hardware device]] for details.<br />
<br />
=== Permission errors bug ===<br />
<br />
{{hc|pulseaudio --start|<br />
E: [autospawn] core-util.c: Failed to create secure directory (/run/user/1000/pulse): Operation not permitted<br />
W: [autospawn] lock-autospawn.c: Cannot access autospawn lock.<br />
E: [pulseaudio] main.c: Failed to acquire autospawn lock}}<br />
<br />
Known programs that changes permissions for {{ic|/run/user/''user id''/pulse}} when using [[Polkit]] for root elevation:<br />
<br />
*{{AUR|sakis3g}} <br />
<br />
As a workaround, include {{Pkg|gksu}} or {{Pkg|kdesu}} in a [[desktop entry]], or add {{ic|1=''username'' ALL=NOPASSWD: /usr/bin/''program_name''}} to [[sudoers]] to run it with {{Pkg|sudo}} or {{ic|gksudo}} without a password.<br />
<br />
The other workaround is to uncomment and set {{ic|1=daemonize = yes}} in the {{ic|/etc/pulse/daemon.conf}}.<br />
<br />
See also [https://bbs.archlinux.org/viewtopic.php?id=135955].<br />
<br />
=== Audacity ===<br />
<br />
When starting Audacity you may find that your headphones no longer work. This can be because Audacity is trying to use them as a recording device. To fix this, open Audacity, then set its recording device to {{ic|1=pulse:Internal Mic:0}}.<br />
<br />
Under some circumstances, playback may be distorted, very fast, or freeze, as discussed in the [http://wiki.audacityteam.org/wiki/Linux_Issues#ALSA_and_other_sound_systems Audacity Wiki's Linux Issues page].<br />
<br />
The solution proposed in this page may work: start Audacity with:<br />
<br />
$ env PULSE_LATENCY_MSEC=30 audacity<br />
<br />
If the solution above does not fix this issue, one may wish to temporarily disable pulseaudio while running Audacity by using the {{ic|pasuspender}} command:<br />
<br />
$ pasuspender -- audacity<br />
<br />
Then, be sure to select the appropriate ALSA input and output devices in Audacity.<br />
<br />
See also [[#Setting the default fragment number and buffer size in PulseAudio]].<br />
<br />
== Other Issues ==<br />
<br />
=== Bad configuration files ===<br />
<br />
After starting PulseAudio, if the system outputs no sound, it may be necessary to delete the contents of {{ic|~/.config/pulse}} and/or {{ic|~/.pulse}}. PulseAudio will automatically create new configuration files on its next start.<br />
<br />
=== Cannot update configuration of sound device in pavucontrol ===<br />
<br />
{{Pkg|pavucontrol}} is a handy GUI utility for configuring PulseAudio. Under its 'Configuration' tab, you can select different profiles for each of your sound devices e.g. analogue stereo, digital output (IEC958), HDMI 5.1 Surround etc.<br />
<br />
However, you may run into an instance where selecting a different profile for a card results in the pulse daemon crashing and auto restarting without the new selection "sticking". If this occurs, use the other useful GUI tool, {{Pkg|paprefs}}, to check under the "Simultaneous Output" tab for a virtual simultaneous device. If this setting is active (checked), it will prevent you changing any card's profile in pavucontrol. Uncheck this setting, then adjust your profile in pavucontrol prior to re-enabling simultaneous output in paprefs.<br />
<br />
=== Failed to create sink input: sink is suspended ===<br />
<br />
If you do not have any output sound and receive dozens of errors related to a suspended sink in your {{ic|journalctl -b}} log, then backup first and then delete your user-specific pulse folders:<br />
<br />
$ rm -r ~/.pulse ~/.pulse-cookie ~/.config/pulse<br />
<br />
=== Pulse overwrites ALSA settings ===<br />
<br />
PulseAudio usually overwrites the ALSA settings — for example set with alsamixer — at start-up, even when the ALSA daemon is loaded. Since there seems to be no other way to restrict this behaviour, a workaround is to restore the ALSA settings again after PulseAudio has started. Add the following command to {{ic|.xinitrc}} or {{ic|.bash_profile}} or any other [[autostart]] file:<br />
<br />
restore_alsa() {<br />
while [ -z "$(pidof pulseaudio)" ]; do<br />
sleep 0.5<br />
done<br />
alsactl -f /var/lib/alsa/asound.state restore <br />
}<br />
restore_alsa &<br />
<br />
=== Prevent Pulse from restarting after being killed ===<br />
<br />
Sometimes you may wish to temporarily disable Pulse. In order to do so you will have to prevent Pulse from restarting after being killed.<br />
<br />
{{hc|~/.config/pulse/client.conf|2=<br />
# Disable autospawning the PulseAudio daemon<br />
autospawn = no<br />
}}<br />
<br />
=== Daemon startup failed ===<br />
<br />
Try resetting PulseAudio:<br />
<br />
$ rm -rf /tmp/pulse* ~/.pulse* ~/.config/pulse<br />
$ pulseaudio -k<br />
$ pulseaudio --start<br />
<br />
* Check that options for sinks are set up correctly.<br />
<br />
* If you configured in default.pa to load and use the OSS modules then check with {{Pkg|lsof}} that {{ic|/dev/dsp}} device is not used by another application.<br />
<br />
* Set a preferred working resample method. Use {{ic|pulseaudio --dump-resample-methods}} to see a list with all available resample methods you can use.<br />
<br />
* To get details about currently appeared unfixed errors or just get status of daemon use commands like {{ic|pax11publish -d}} and {{ic|pulseaudio -v}} where {{ic|v}} option can be used multiple time to set verbosity of log output equal to the {{ic|1=--log-level[=LEVEL]}} option where LEVEL is from 0 to 4. See the [[#Outputs by PulseAudio error status check utilities]] section.<br />
<br />
See also man pages for [http://linux.die.net/man/1/pax11publish pax11publish] and [http://linux.die.net/man/1/pulseaudio pulseaudio] for more details.<br />
<br />
==== Outputs by PulseAudio error status check utilities ====<br />
<br />
If the {{ic|pax11publish -d}} shows error like:<br />
<br />
N: [pulseaudio] main.c: User-configured server at "user", refusing to start/autospawn.<br />
<br />
then run {{ic|pax11publish -r}} command then could be also good to logout and login again. This manual cleanup is always required when using LXDM because it does not restart the X server on logout; see [[LXDM#PulseAudio]]{{Broken section link}}.<br />
<br />
If the {{ic|pulseaudio -vvvv}} command shows error like:<br />
<br />
E: [pulseaudio] module-udev-detect.c: You apparently ran out of inotify watches, probably because Tracker/Beagle took them all away. I wished people would do their homework first and fix inotify before using it for watching whole directory trees which is something the current inotify is certainly not useful for. Please make sure to drop the Tracker/Beagle guys a line complaining about their broken use of inotify.<br />
<br />
This can be resolved temporary by:<br />
$ echo 100000 > /proc/sys/fs/inotify/max_user_watches<br />
<br />
For permanent use save settings in the ''99-sysctl.conf'' file:<br />
<br />
{{hc|/etc/sysctl.d/99-sysctl.conf|2=<br />
# Increase inotify max watchs per user<br />
fs.inotify.max_user_watches = 100000}}<br />
<br />
{{Warning|It may cause much bigger consumption of memory by kernel.}}<br />
<br />
'''See also''' <br />
<br />
* [http://www.linuxinsight.com/proc_sys_fs_inotify.html proc_sys_fs_inotify] and [http://lwn.net/Articles/604686/ dnotify, inotify]- more details about ''inotify/max_user_watches''<br />
* [http://stackoverflow.com/questions/535768/what-is-a-reasonable-amount-of-inotify-watches-with-linux?answertab=votes#tab-top reasonable amount of inotify watches with Linux]<br />
* [http://linux.die.net/man/7/inotify inotify] - man page<br />
<br />
=== Daemon already running ===<br />
<br />
On some systems, PulseAudio may be started multiple times. journalctl will report:<br />
<br />
[pulseaudio] pid.c: Daemon already running.<br />
<br />
Make sure to use only one method of autostarting applications. {{Pkg|pulseaudio}} includes these files:<br />
<br />
* {{ic|/etc/X11/xinit/xinitrc.d/pulseaudio}}<br />
* {{ic|/etc/xdg/autostart/pulseaudio.desktop}}<br />
* {{ic|/etc/xdg/autostart/pulseaudio-kde.desktop}}<br />
<br />
Also check user autostart files and directories, such as [[xinitrc]], {{ic|~/.config/autostart/}} etc.<br />
<br />
=== Subwoofer stops working after end of every song ===<br />
<br />
Known issue: https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/494099<br />
<br />
To fix this, must edit: {{ic|/etc/pulse/daemon.conf}} and enable {{ic|enable-lfe-remixing}} :<br />
{{hc|/etc/pulse/daemon.conf|<nowiki><br />
enable-lfe-remixing = yes<br />
</nowiki>}}<br />
<br />
=== Unable to select surround configuration other than "Surround 4.0" ===<br />
<br />
If you are unable to set 5.1 surround output in pavucontrol because it only shows "Analog Surround 4.0 Output", open the ALSA mixer and change the output configuration there to 6 channels. Then restart pulseaudio, and pavucontrol will list many more options.<br />
<br />
=== Realtime scheduling ===<br />
<br />
If rtkit does not work, you can manually set up your system to run PulseAudio with real-time scheduling, which can help performance. To do this, add the following lines to {{ic|/etc/security/limits.conf}}:<br />
<br />
@pulse-rt - rtprio 9<br />
@pulse-rt - nice -11<br />
<br />
Afterwards, you need to add your user to the {{ic|pulse-rt}} group:<br />
<br />
# gpasswd -a <user> pulse-rt<br />
<br />
=== pactl "invalid option" error with negative percentage arguments ===<br />
<br />
{{ic|pactl}} commands that take negative percentage arguments will fail with an 'invalid option' error. Use the standard shell '--' pseudo argument<br />
to disable argument parsing before the negative argument. ''e.g.'' {{ic|pactl set-sink-volume 1 -- -5%}}.<br />
<br />
=== Fallback device is not respected ===<br />
<br />
PulseAudio does not have a true default device. Instead it uses a [http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/DefaultDevice/ "fallback"], which only applies to new sound streams. This means previously run applications are not affected by the newly set fallback device.<br />
<br />
{{Pkg|gnome-control-center}}, {{Pkg|mate-media}} and {{AUR|paswitch}} handle this gracefully. Alternatively: <br />
<br />
1. Move the old streams in {{Pkg|pavucontrol}} manually to the new sound card.<br />
<br />
2. Stop Pulse, erase the "stream-volumes" in {{ic|~/.config/pulse}} and/or {{ic|~/.pulse}} and restart Pulse. This also resets application volumes.<br />
<br />
3. Disable stream device reading. This may be not wanted when using different soundcards with different applications.<br />
<br />
{{hc|/etc/pulse/default.pa|<nowiki><br />
load-module module-stream-restore restore_device=false<br />
</nowiki>}}<br />
<br />
=== RTP/UDP packet flood ===<br />
<br />
In some cases the default configuration might flood the network with UDP packets.[https://bugs.freedesktop.org/show_bug.cgi?id=44777] <br />
To fix this problem, launch {{ic|paprefs}} and disable "Multicast/RTP Sender".[https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/411688/comments/36]</div>Iunohttps://wiki.archlinux.org/index.php?title=PulseAudio/Troubleshooting&diff=457964PulseAudio/Troubleshooting2016-11-28T17:59:26Z<p>Iuno: added section /* No HDMI sound using a headless server */</p>
<hr />
<div>[[Category:Sound]]<br />
[[it:PulseAudio/Troubleshooting]]<br />
[[ja:PulseAudio/トラブルシューティング]]<br />
[[ru:PulseAudio/Troubleshooting]]<br />
See [[PulseAudio]] for the main article.<br />
<br />
== Volume ==<br />
<br />
Here you will find some hints on volume issues and why you may not hear anything.<br />
<br />
=== Auto-Mute Mode ===<br />
<br />
Auto-Mute Mode may be enabled. It can be disabled using {{ic|alsamixer}}.<br />
<br />
See http://superuser.com/questions/431079/how-to-disable-auto-mute-mode for more.<br />
<br />
To save your current settings as the default options, run {{ic|alsactl store}} as root.<br />
<br />
=== Muted audio device ===<br />
<br />
If one experiences no audio output via any means while using [[ALSA]], attempt to unmute the sound card. To do this, launch {{ic|alsamixer}} and make sure each column has a green {{ic|00}} under it (this can be toggled by pressing {{ic|m}}):<br />
<br />
$ alsamixer -c 0<br />
<br />
{{Note|alsamixer will not tell you which output device is set as the default. One possible cause of no sound after install is that PulseAudio detects the wrong output device as a default. Install {{Pkg|pavucontrol}} and check if there is any output on the pavucontrol panel when playing a ''.wav'' file.}}<br />
<br />
=== Output stuck muted while Master is toggled ===<br />
<br />
{{Remove|The problem is using ALSA tools for controlling PulseAudio, see [[PulseAudio#Keyboard volume control]] for better way.}}<br />
<br />
In setups with multiple outputs (e.g. 'Headphone' and 'Speaker') using plain amixer to toggle Master can trigger PulseAudio to mute the active output too, but it does not necessarily unmute it when Master is toggled back to be unmuted. To resolve this, amixer must have the device flag set to 'pulse':<br />
<br />
$ amixer -D pulse sset Master toggle<br />
<br />
This will cause amixer to ask PulseAudio to do the toggling rather than toggling it directly.<br />
Because of this, PulseAudio will correctly unmute Master as well as any applicable output.<br />
<br />
=== Muted application ===<br />
<br />
If a specific application is muted or low while all else seems to be in order, it may be due to individual {{ic|sink-input}} settings. With the offending application playing audio, run:<br />
<br />
$ pacmd list-sink-inputs<br />
<br />
Find and make note of the {{ic|index}} of the corresponding {{ic|sink input}}. The {{ic|properties:}} {{ic|application.name}} and {{ic|application.process.binary}}, among others, should help here. Ensure sane settings are present, specifically those of {{ic|muted}} and {{ic|volume}}.<br />
If the sink is muted, it can be unmuted by:<br />
<br />
$ pacmd set-sink-input-mute <index> false<br />
<br />
If the volume needs adjusting, it can be set to 100% by:<br />
<br />
$ pacmd set-sink-input-volume <index> 0x10000<br />
<br />
{{Note|If {{ic|pacmd}} reports {{ic|0 sink input(s)}}, double-check that the application is playing audio. If it is still absent, verify that other applications show up as sink inputs.}}<br />
<br />
=== Volume adjustment does not work properly ===<br />
<br />
Check:<br />
{{ic|/usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common}}<br />
<br />
If the volume does not appear to increment/decrement properly using {{ic|alsamixer}} or {{ic|amixer}}, it may be due to PulseAudio having a larger number of increments (65537 to be exact). Try using larger values when changing volume (e.g. {{ic|amixer set Master 655+}}).<br />
<br />
=== Per-application volumes change when the Master volume is adjusted ===<br />
<br />
This is because PulseAudio uses flat volumes by default, instead of relative volumes, relative to an absolute master volume. If this is found to be inconvenient, asinine, or otherwise undesireable, relative volumes can be enabled by disabling flat volumes in the PulseAudio daemon's configuration file:<br />
<br />
{{hc|/etc/pulse/daemon.conf or ~/.config/pulse/daemon.conf|<nowiki><br />
flat-volumes = no<br />
</nowiki>}}<br />
<br />
and then restarting PulseAudio by executing<br />
<br />
$ pulseaudio -k<br />
$ pulseaudio --start<br />
<br />
=== Volume gets louder every time a new application is started ===<br />
<br />
Per default, it seems as if changing the volume in an application sets the global system volume to that level instead of only affecting the respective application. Applications setting their volume on startup will therefore cause the system volume to "jump".<br />
<br />
Fix this by disabling flat volumes, as demonstrated in the previous section. When Pulse comes back after a few seconds, applications will not alter the global system volume anymore but have their own volume level again.<br />
<br />
{{Note|A previously installed and removed pulseaudio-equalizer may leave behind remnants of the setup in {{ic|~/.config/pulse/default.pa}} or {{ic|~/.pulse/default.pa}} which can also cause maximized volume trouble. Comment that out as needed.}}<br />
<br />
=== Sound output is only mono on M-Audio Audiophile 2496 sound card ===<br />
<br />
Add the following:<br />
<br />
{{hc|/etc/pulseaudio/default.pa|<nowiki><br />
load-module module-alsa-sink sink_name=delta_out device=hw:M2496 format=s24le channels=10 channel_map=left,right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7<br />
load-module module-alsa-source source_name=delta_in device=hw:M2496 format=s24le channels=12 channel_map=left,right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7,aux8,aux9<br />
set-default-sink delta_out<br />
set-default-source delta_in<br />
</nowiki>}}<br />
<br />
=== No sound below a volume cutoff ===<br />
<br />
Known issue (won't fix): https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/223133<br />
<br />
If sound does not play when PulseAudio's volume is set below a certain level, try setting {{ic|1=ignore_dB=1}} in {{ic|/etc/pulse/default.pa}}:<br />
{{hc|/etc/pulse/default.pa|<nowiki><br />
load-module module-udev-detect ignore_dB=1<br />
</nowiki>}}<br />
<br />
However, be aware that it may cause another bug preventing PulseAudio to unmute speakers when headphones or other audio devices are unplugged.<br />
<br />
=== Low volume for internal microphone ===<br />
<br />
If you experience low volume on internal notebook microphone, try setting:<br />
{{hc|/etc/pulse/default.pa|<nowiki><br />
set-source-volume 1 300000<br />
</nowiki>}}<br />
<br />
=== Clients alter master output volume (a.k.a. volume jumps to 100% after running application) ===<br />
<br />
If changing the volume in specific applications or simply running an application changes the master output volume this is likely due to flat volumes mode of pulseaudio. Before disabling it, KDE users should try lowering their system notifications volume in ''System Settings -> Application and System Notifications -> Manage Notifications'' under the ''Player Settings'' tab to something reasonable. Changing the ''Event Sounds'' volume in KMix or another volume mixer application will not help here. This should make the flat-volumes mode work out as intended, if it does not work, some other application is likely requesting 100% volume when its playing something. If all else fails, you can try to disable flat-volumes:<br />
<br />
{{hc|/etc/pulse/daemon.conf|<nowiki><br />
flat-volumes = no<br />
</nowiki>}}<br />
<br />
Then restart PulseAudio daemon:<br />
<br />
# pulseaudio -k<br />
# pulseaudio --start<br />
<br />
=== No sound after resume from suspend ===<br />
<br />
If audio generally works, but stops after resume from suspend, try "reloading" PulseAudio by executing:<br />
$ /usr/bin/pasuspender /bin/true<br />
<br />
This is better than completely killing and restarting it ({{ic|pulseaudio -k}} followed by {{ic|pulseaudio --start}}), because it does not break already running applications.<br />
<br />
If the above fixes your problem, you may wish to automate it, by creating a systemd service file.<br />
<br />
1. Create the template service file in {{ic|/etc/systemd/system/resume-fix-pulseaudio@.service}}:<br />
<br />
[Unit]<br />
Description=Fix PulseAudio after resume from suspend<br />
After=suspend.target<br />
<br />
[Service]<br />
User=%I<br />
Type=oneshot<br />
Environment="XDG_RUNTIME_DIR=/run/user/%U"<br />
ExecStart=/usr/bin/pasuspender /bin/true<br />
<br />
[Install]<br />
WantedBy=suspend.target<br />
<br />
2. Enable it for your user account<br />
<br />
# systemctl enable resume-fix-pulseaudio@YOUR_USERNAME_HERE.service<br />
<br />
3. Reload systemd<br />
<br />
# systemctl --system daemon-reload<br />
<br />
=== ALSA channels mute when headphones are plugged/unplugged improperly ===<br />
<br />
If when you unplug your headphones or plug them in the audio remains muted in alsamixer on the wrong channel due to it being set to 0%, you may be able to fix it by opening {{ic|/etc/pulse/default.pa}} and commenting out the line:<br />
<br />
load-module module-switch-on-port-available<br />
<br />
== Microphone ==<br />
<br />
=== Microphone not detected by PulseAudio ===<br />
<br />
Determine the card and device number of your mic:<br />
<br />
$ arecord -l<br />
**** List of CAPTURE Hardware Devices ****<br />
card 0: PCH [HDA Intel PCH], device 0: ALC269VC Analog [ALC269VC Analog]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
<br />
In hw:CARD,DEVICE notation, you would specify the above device as {{ic|hw:0,0}}.<br />
<br />
Then, edit {{ic|/etc/pulse/default.pa}} and insert a {{ic|load-module}} line specifying your device as follows:<br />
<br />
load-module module-alsa-source device=hw:0,0<br />
# the line above should be somewhere before the line below<br />
.ifexists module-udev-detect.so<br />
<br />
Finally, restart pulseaudio to apply the new settings:<br />
<br />
$ pulseaudio -k ; pulseaudio -D<br />
<br />
If everything worked correctly, you should now see your mic show up when running {{ic|pavucontrol}} (under the {{ic|Input Devices}} tab).<br />
<br />
=== PulseAudio uses wrong microphone ===<br />
<br />
If PulseAudio uses the wrong microphone, and changing the Input Device with Pavucontrol did not help, take a look at alsamixer. It seems that Pavucontrol does not always set the input source correctly.<br />
<br />
$ alsamixer<br />
<br />
Press {{ic|F6}} and choose your sound card, e.g. HDA Intel. Now press {{ic|F5}} to display all items. Try to find the item: {{ic|Input Source}}. With the up/down arrow keys you are able to change the input source.<br />
<br />
Now try if the correct microphone is used for recording.<br />
<br />
=== No microphone on ThinkPad T400/T500/T420 ===<br />
<br />
Run:<br />
<br />
alsamixer -c 0<br />
<br />
Unmute and maximize the volume of the "Internal Mic".<br />
<br />
Once you see the device with:<br />
<br />
arecord -l<br />
<br />
you might still need to adjust the settings. The microphone and the audio jack are duplexed. Set the configuration of the internal audio in pavucontrol to ''Analog Stereo Duplex''.<br />
<br />
=== No microphone input on Acer Aspire One ===<br />
<br />
Install pavucontrol, unlink the microphone channels and turn down the left one to 0.<br />
Reference: http://getsatisfaction.com/jolicloud/topics/deaf_internal_mic_on_acer_aspire_one#reply_2108048<br />
<br />
=== Static noise in microphone recording ===<br />
<br />
If we are getting static noise in Skype, gnome-sound-recorder, arecord, etc.'s recordings, then the sound card sample rate is incorrect. That is why there is static noise in Linux microphone recordings. To fix this, we need to set the sampling rate in {{ic|/etc/pulse/daemon.conf}} for the sound hardware.<br />
<br />
==== Determine sound cards in the system (1/5) ====<br />
<br />
This requires {{Pkg|alsa-utils}} and related packages to be installed:<br />
{{hc|$ arecord --list-devices|<br />
**** List of CAPTURE Hardware Devices ****<br />
card 0: Intel [HDA Intel], device 0: ALC888 Analog [ALC888 Analog]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
card 0: Intel [HDA Intel], device 2: ALC888 Analog [ALC888 Analog]<br />
Subdevices: 1/1<br />
Subdevice #0: subdevice #0<br />
}}<br />
<br />
Sound card is {{ic|hw:0,0}}.<br />
<br />
==== Determine sampling rate of the sound card (2/5) ====<br />
<br />
{{hc|1=arecord -f dat -r 60000 -D hw:0,0 -d 5 test.wav|2=<br />
"Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 60000 Hz, Stereo<br />
Warning: rate is not accurate (requested = 60000Hz, '''got = 96000Hz''')<br />
please, try the plug plugin<br />
}}<br />
<br />
observe, the {{ic|1=got = 96000Hz}}. This is the maximum sampling rate of our card.<br />
<br />
==== Setting the sound card's sampling rate into PulseAudio configuration (3/5) ====<br />
<br />
The default sampling rate in PulseAudio:<br />
{{hc|1=$ grep "default-sample-rate" /etc/pulse/daemon.conf|2=<br />
; default-sample-rate = 44100<br />
}}<br />
<br />
{{ic|44100}} is disabled and needs to be changed to {{ic|96000}}:<br />
# sed 's/; default-sample-rate = 44100/default-sample-rate = 96000/g' -i /etc/pulse/daemon.conf<br />
<br />
==== Restart PulseAudio to apply the new settings (4/5) ====<br />
<br />
$ pulseaudio -k<br />
$ pulseaudio --start<br />
<br />
==== Finally check by recording and playing it back (5/5) ====<br />
<br />
Let us record some voice using a microphone for, say, 10 seconds. Make sure the microphone is not muted and all<br />
<br />
$ arecord -f cd -d 10 test-mic.wav<br />
<br />
After 10 seconds, let us play the recording...<br />
<br />
$ aplay test-mic.wav<br />
<br />
Now hopefully, there is no static noise in microphone recording anymore.<br />
<br />
=== No microphone on Steam or Skype with enable-remixing = no ===<br />
<br />
When you set {{ic|1=enable-remixing = no}} on {{ic|/etc/pulse/daemon.conf}} you may find that your microphone has stopped working on certain applications like Skype or Steam. This happens because these applications capture the microphone as mono only and because remixing is disabled, Pulseaudio will no longer remix your stereo microphone to mono.<br />
<br />
To fix this you need to tell Pulseaudio to do this for you:<br />
<br />
1. Find the name of the source <br />
<br />
# pacmd list-sources<br />
<br />
Example output edited for brevity, the name you need is in bold:<br />
<br />
index: 2<br />
name: <'''alsa_input.pci-0000_00_14.2.analog-stereo'''><br />
driver: <module-alsa-card.c><br />
flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY<br />
<br />
2. Add a remap rule to {{ic|/etc/pulse/default.pa}}, use the name you found with the previous command, here we will use '''alsa_input.pci-0000_00_14.2.analog-stereo''' as an example:<br />
<br />
{{hc|/etc/pulse/default.pa|<nowiki><br />
### Remap microphone to mono<br />
load-module module-remap-source master=alsa_input.pci-0000_00_14.2.analog-stereo master_channel_map=front-left,front-right channels=2 channel_map=mono,mono<br />
</nowiki>}}<br />
<br />
3. Restart Pulseaudio<br />
<br />
# pulseaudio -k<br />
<br />
{{Note|Pulseaudio may fail to start if you do not exit a program that was using the microphone (e.g. if you tested on Steam before modifying the file), in which case you should exit the application and manually start Pulseaudio}}<br />
<br />
# pulseaudio --start<br />
<br />
=== Microphone distorted due to automatic adjustment ===<br />
If your microphone volume creeps up automatically and causes the sound to be distorted, you can fix it by disabling mic boost:<br />
<br />
In {{ic|/usr/share/pulseaudio/alsa-mixer/paths/analog-input-internal-mic.conf}} and {{ic|/usr/share/pulseaudio/alsa-mixer/paths/analog-input-mic.conf}},<br />
<br />
* Under {{ic|[Element Internal Mic Boost]}} set {{ic|volume}} to {{ic|zero}}.<br />
* Under {{ic|[Element Int Mic Boost]}} set {{ic|volume}} to {{ic|zero}}.<br />
* Under {{ic|[Element Mic Boost]}} set {{ic|volume}} to {{ic|zero}}.<br />
<br />
Then restart PulseAudio:<br />
<br />
# pulseaudio -k<br />
<br />
== Audio quality ==<br />
<br />
=== Enable Echo/Noise-Cancelation ===<br />
<br />
Arch does not load the Pulseaudio Echo-Cancelation module by default, therefore, we have to add it in {{ic|/etc/pulse/default.pa}}. First you can test if the module is present with {{ic|pacmd}} and entering {{ic|list-modules}}. If you cannot find a line showing {{ic|name: <module-echo-cancel>}} you have to add <br />
<br />
{{hc|/etc/pulse/default.pa|<br />
### Enable Echo/Noise-Cancelation<br />
load-module module-echo-cancel<br />
}}<br />
<br />
then restart Pulseaudio<br />
<br />
pulseaudio -k<br />
pulseaudio --start<br />
<br />
and check if the module is activated by starting {{ic|pavucontrol}}. Under {{ic|Recoding}} the input device should show {{ic|Echo-Cancel Source Stream from"}}<br />
<br />
=== Glitches, skips or crackling ===<br />
<br />
The newer implementation of the PulseAudio sound server uses timer-based audio scheduling instead of the traditional, interrupt-driven approach. <br />
<br />
Timer-based scheduling may expose issues in some ALSA drivers. On the other hand, other drivers might be glitchy without it on, so check to see what works on your system. <br />
<br />
To turn timer-based scheduling off add {{ic|1=tsched=0}} in {{ic|/etc/pulse/default.pa}}:<br />
{{hc|/etc/pulse/default.pa|2=<br />
load-module module-udev-detect tsched=0<br />
}}<br />
<br />
Then restart the PulseAudio server:<br />
<br />
$ pulseaudio -k<br />
$ pulseaudio --start<br />
<br />
Do the reverse to enable timer-based scheduling, if not already enabled by default.<br />
<br />
If you are using Intel's [[Wikipedia:IOMMU|IOMMU]] and experience glitches and/or skips, add {{ic|1=intel_iommu=igfx_off}} to your kernel command line.<br />
<br />
Some Intel audio cards using the {{ic|snd-hda-intel}} module need the otions {{ic|1=vid=8086 pid=8ca0 snoop=0}}. In order to set them permanently, create/modify the following file including the line below.<br />
{{hc|/etc/modprobe.d/sound.conf|2=<br />
options snd-hda-intel vid=8086 pid=8ca0 snoop=0<br />
}}<br />
<br />
Please report any such cards to [http://www.freedesktop.org/wiki/Software/PulseAudio/Backends/ALSA/BrokenDrivers/ PulseAudio Broken Sound Driver page]<br />
<br />
=== Setting the default fragment number and buffer size in PulseAudio ===<br />
<br />
{{Poor writing|Copied from Linux mint topic with few additions}}<br />
<br />
==== Disabling timer-based scheduling (0/4) ====<br />
<br />
By default, PulseAudio uses timer-based scheduling. In this mode, fragments are not used at all, and so the default-fragments and default-fragment-size-msec parameters are ignored.<br />
To turn timer-based scheduling off add {{ic|1=tsched=0}} in {{ic|/etc/pulse/default.pa}}:<br />
{{hc|/etc/pulse/default.pa|2=<br />
load-module module-udev-detect tsched=0<br />
}}<br />
<br />
==== Finding out your audio device parameters (1/4) ====<br />
<br />
To find out what your sound card buffering settings are, use the following command and scroll through the output until you find the correct sink entry.<br />
<br />
{{hc|$ pactl list sinks|<nowiki><br />
Sink #1<br />
State: RUNNING<br />
Name: alsa_output.pci-0000_00_1b.0.analog-stereo<br />
Description: Built-in Audio Analog Stereo<br />
Driver: module-alsa-card.c<br />
Sample Specification: s16le 2ch 44100Hz<br />
Channel Map: front-left,front-right<br />
Owner Module: 7<br />
Mute: no<br />
Volume: front-left: 42600 / 65% / -11.22 dB, front-right: 42600 / 65% / -11.22 dB<br />
balance 0.00<br />
Base Volume: 65536 / 100% / 0.00 dB<br />
Monitor Source: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor<br />
Latency: 70662 usec, configured 85000 usec<br />
Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY <br />
Properties:<br />
alsa.resolution_bits = "16"<br />
device.api = "alsa"<br />
device.class = "sound"<br />
alsa.class = "generic"<br />
alsa.subclass = "generic-mix"<br />
alsa.name = "ALC283 Analog"<br />
alsa.id = "ALC283 Analog"<br />
alsa.subdevice = "0"<br />
alsa.subdevice_name = "subdevice #0"<br />
alsa.device = "0"<br />
alsa.card = "1"<br />
alsa.card_name = "HDA Intel PCH"<br />
alsa.long_card_name = "HDA Intel PCH at 0xe111c000 irq 43"<br />
alsa.driver_name = "snd_hda_intel"<br />
device.bus_path = "pci-0000:00:1b.0"<br />
sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card1"<br />
device.bus = "pci"<br />
device.vendor.id = "8086"<br />
device.vendor.name = "Intel Corporation"<br />
device.product.id = "9ca0"<br />
device.product.name = "Wildcat Point-LP High Definition Audio Controller"<br />
device.form_factor = "internal"<br />
device.string = "front:1"<br />
device.buffering.buffer_size = "352800"<br />
device.buffering.fragment_size = "176400"<br />
device.access_mode = "mmap+timer"<br />
device.profile.name = "analog-stereo"<br />
device.profile.description = "Analog Stereo"<br />
device.description = "Built-in Audio Analog Stereo"<br />
alsa.mixer_name = "Realtek ALC283"<br />
alsa.components = "HDA:10ec0283,10ec0283,00100003"<br />
module-udev-detect.discovered = "1"<br />
device.icon_name = "audio-card-pci"<br />
Ports:<br />
analog-output-speaker: Speakers (priority: 10000, not available)<br />
analog-output-headphones: Headphones (priority: 9000, available)<br />
Active Port: analog-output-headphones<br />
Formats:<br />
pcm<br />
...<br />
</nowiki>}}<br />
<br />
Take note the {{ic|buffer_size}} and {{ic|fragment_size}} values for the relevant sound card.<br />
<br />
==== Calculate your fragment size in msecs and number of fragments (2/4) ====<br />
<br />
PulseAudio's default sampling rate and bit depth are set to {{ic|44100Hz}} @ {{ic|16 bits}}.<br />
<br />
With this configuration, the bit rate we need is {{ic|44100}}*{{ic|16}} = {{ic|705600}} bits per second. That is {{ic|1411200 bps}} for stereo.<br />
<br />
Let us take a look at the parameters we have found in the previous step:<br />
<br />
device.buffering.buffer_size = "352800" => 352800/1411200 = 0.25 s = 250 ms<br />
device.buffering.fragment_size = "176400" => 176400/1411200 = 0.125 s = 125 ms<br />
<br />
==== Modify PulseAudio's configuration file (3/4) ====<br />
<br />
{{hc|/etc/pulse/daemon.conf|<nowiki><br />
; default-fragments = X<br />
; default-fragment-size-msec = Y<br />
</nowiki>}}<br />
<br />
In the previous step, we calculated the fragment size parameter.<br />
The number of fragments is simply buffer_size/fragment_size, which in this case ({{ic|250/125}}) is {{ic|2}}:<br />
<br />
{{hc|/etc/pulse/daemon.conf|2=<br />
; default-fragments = '''2'''<br />
; default-fragment-size-msec = '''125'''<br />
}}<br />
<br />
==== Restart the PulseAudio daemon (4/4) ====<br />
<br />
$ pulseaudio -k<br />
$ pulseaudio --start<br />
<br />
For more information, see: [http://forums.linuxmint.com/viewtopic.php?f=42&t=44862 Linux Mint topic]<br />
<br />
=== Choppy sound with analog surround sound setup ===<br />
<br />
The low-frequency effects (LFE) channel is not remixed per default. To enable it the following needs to be set in {{ic|/etc/pulse/daemon.conf}} :<br />
{{hc|/etc/pulse/daemon.conf|<nowiki><br />
enable-lfe-remixing = yes<br />
</nowiki>}}<br />
<br />
=== Laggy sound ===<br />
<br />
This issue is due to incorrect buffer sizes. First verify that the variables {{ic|default-fragments}} and {{ic|default-fragment-size-msec}} are not being set to non default values in the file {{ic|/etc/pulse/daemon.conf}}. If the issue is still present, try setting them to the following values:<br />
<br />
{{hc|/etc/pulse/daemon.conf|2=<br />
default-fragments = 5<br />
default-fragment-size-msec = 2<br />
}}<br />
<br />
=== Choppy/distorted sound ===<br />
This can result from an incorrectly set sample rate. Try the following setting:<br />
<br />
{{hc|/etc/pulse/daemon.conf|2=<br />
default-sample-rate = 48000<br />
}}<br />
and restart the PulseAudio server.<br />
<br />
If one experiences choppy sound in applications using [[Wikipedia:OpenAL|OpenAL]], change the sample rate in {{ic|/etc/openal/alsoft.conf}}:<br />
{{hc|/etc/openal/alsoft.conf|2=<br />
frequency = 48000<br />
}}<br />
<br />
Setting the PCM volume above 0 dB can cause [[Wikipedia:Clipping_(audio)|clipping]]. Running {{ic|alsamixer}} will allow you to see if this is the problem and if so fix it. Note that ALSA may not [http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/PulseAudioStoleMyVolumes correctly export] the dB information to PulseAudio. Try the following:<br />
<br />
{{hc|/etc/pulse/default.pa|2=<br />
load-module module-udev-detect ignore_dB=1<br />
}}<br />
<br />
and restart the PulseAudio server. See also [[#No sound below a volume cutoff]].<br />
<br />
== Hardware and Cards ==<br />
<br />
=== No HDMI sound output after some time with the monitor turned off ===<br />
<br />
The monitor is connected via HDMI/DisplayPort, and the audio jack is plugged in the headphone jack of the monitor, but PulseAudio insists that it is unplugged:<br />
<br />
{{hc|pactl list sinks|<br />
...<br />
hdmi-output-0: HDMI / DisplayPort (priority: 5900, not available)<br />
...<br />
}}<br />
<br />
This leads to no sound coming from HDMI output. A workaround for this is to switch to another VT and back again. If that does not work, try: turn off your monitor, switch to another VT, turn on your monitor, and switch back. This problem has been reported by ATI/Nvidia/Intel users.<br />
<br />
Another workaround could be to disable the switch-on-port-available module by commenting it in /etc/pulse/default.pa [https://bugs.freedesktop.org/show_bug.cgi?id=93946#c36]:<br />
<br />
{{hc|/etc/pulse/default.pa|<br />
...<br />
### Should be after module-*-restore but before module-*-detect<br />
#load-module module-switch-on-port-available<br />
...<br />
}}<br />
<br />
=== No HDMI sound using a headless server ===<br />
You might want to use HDMI audio with your a/v receiver but no display. HDMI requires a video signal, which we have from the virtual terminal. By default, this signal is turned off after 600 seconds, thus the audio sink gets lost as well. To prevent this, add `consoleblank=0` to the kernel command line.<br />
<br />
=== No cards ===<br />
<br />
If PulseAudio starts, run {{ic|pacmd list}}. If no cards are reported, make sure that the ALSA devices are not in use:<br />
<br />
$ fuser -v /dev/snd/*<br />
$ fuser -v /dev/dsp<br />
<br />
Make sure any applications using the pcm or dsp files are shut down before restarting PulseAudio.<br />
<br />
=== Starting an application interrupts other app's sound ===<br />
<br />
If you have trouble with some applications (eg. Teamspeak, Mumble) interrupting sound output of already running applications (eg. Deadbeaf), you can solve this by commenting out the line {{ic|load-module module-role-cork}} in {{ic|/etc/pulse/default.pa}} like shown below:<br />
<br />
{{hc|/etc/pulse/default.pa|<br />
### Cork music/video streams when a phone stream is active<br />
# load-module module-role-cork<br />
}}<br />
<br />
Then restart pulseaudo by using your normal user account with<br />
<br />
pulseaudio -k<br />
pulseaudio --start<br />
<br />
=== The only device shown is "dummy output" or newly connected cards are not detected ===<br />
<br />
{{Merge|Fluidsynth|Application-specific problems should be moved to [[Fluidsynth]].}}<br />
<br />
Another reason is [[FluidSynth]] conflicting with PulseAudio as discussed in [https://bbs.archlinux.org/viewtopic.php?id=154002 this thread]. One solution is to remove the package {{Pkg|fluidsynth}}.<br />
<br />
Alternatively you could modify the ''fluidsynth'' configuration file {{ic|/etc/conf.d/fluidsynth}} and change the driver to PulseAudio, then restart ''fluidsynth'' and PulseAudio:<br />
<br />
{{hc|/etc/conf.d/fluidsynth|<br />
output=AUDIO_DRIVER=pulseaudio<br />
OTHER_OPTS='-m alsa_seq-r 48000'<br />
}}<br />
<br />
It is also possible there is an issue with logind giving permissions, see [[General troubleshooting#Session permissions]] for more information.<br />
<br />
=== No HDMI 5/7.1 Selection for Device ===<br />
<br />
If you are unable to select 5/7.1 channel output for a working HDMI device, then turning off "stream device reading" in {{ic|/etc/pulse/default.pa}} might help. <br />
<br />
See [[#Fallback device is not respected]].<br />
<br />
=== Failed to create sink input: sink is suspended ===<br />
<br />
If you do not have any output sound and receive dozens of errors related to a suspended sink in your {{ic|journalctl -b}} log, then backup first and then delete your user-specific pulse folders:<br />
<br />
$ rm -r ~/.pulse ~/.pulse-cookie ~/.config/pulse<br />
<br />
=== Simultaneous output to multiple sound cards / devices ===<br />
<br />
Simultaneous output to two different devices can be very useful. For example, being able to send audio to your A/V receiver via your graphics card's HDMI output, while also sending the same audio through the analogue output of your motherboard's built-in audio. This is much less hassle than it used to be (in this example, we are using GNOME desktop).<br />
<br />
Using {{Pkg|paprefs}}, simply select "Add virtual output device for simultaneous output on all local sound cards" from under the "Simultaneous Output" tab. Then, under GNOME's "sound settings", select the simultaneous output you have just created.<br />
<br />
If this does not work, try adding the following to {{ic|~/.asoundrc}}:<br />
<br />
pcm.dsp {<br />
type plug<br />
slave.pcm "dmix"<br />
}<br />
<br />
{{Tip|Simultaneous output can also be achieved manually using alsamixer. Disable "auto mute" item, then unmute other output sources you want to hear and increase their volume.}}<br />
<br />
=== Simultaneous output to multiple sinks on the same sound card not working ===<br />
<br />
This can be useful for users who have multiple sound sources and want to play them on different sinks/outputs. <br />
An example use-case for this would be if you play music and also voice chat and want to output music to speakers (in this case Digital S/PDIF) and voice to headphones. (Analog)<br />
<br />
This is sometimes auto detected by PulseAudio but not always. If you know that your sound card can output to both Analog and S/PDIF at the same time and PulseAudio does not have this option in its profiles in pavucontrol, or veromix then you probably need to create a configuration file for your sound card.<br />
<br />
More in detail you need to create a profile-set for your specific sound card.<br />
This is done in two steps mostly.<br />
* Create udev rule to make PulseAudio choose your PulseAudio configuration file specific to the sound card.<br />
* Create the actual configuration.<br />
<br />
Create a pulseadio udev rule.<br />
<br />
{{Note|This is only an example for Asus Xonar Essence STX.<br />
Read [[udev]] to find out the correct values.}}<br />
<br />
{{Note|Your configuration file should have lower number than the original PulseAudio rule to take effect.}}<br />
<br />
{{hc|/usr/lib/udev/rules.d/90-pulseaudio-Xonar-STX.rules|<br />
ACTION&#61;&#61;"change", SUBSYSTEM&#61;&#61;"sound", KERNEL&#61;&#61;"card*", \<br />
ATTRS&#123;subsystem_vendor&#125;&#61;&#61;"0x1043", ATTRS&#123;subsystem_device&#125;&#61;&#61;"0x835c", ENV&#123;PULSE_PROFILE_SET&#125;&#61;"asus-xonar-essence-stx.conf" <br />
}}<br />
<br />
Now, create a configuration file. If you bother, you can start from scratch and make it saucy. However you can also use the default configuration file, rename it, and then add your profile there that you know works. Less pretty but also faster.<br />
<br />
To enable multiple sinks for Asus Xonar Essence STX you need only to add this in.<br />
<br />
{{Note|{{ic|asus-xonar-essence-stx.conf}} also includes all code/mappings from {{ic|default.conf}}.}}<br />
<br />
{{hc|/usr/share/pulseaudio/alsa-mixer/profile-sets/asus-xonar-essence-stx.conf|<br />
[Profile analog-stereo+iec958-stereo]<br />
description &#61; Analog Stereo Duplex + Digital Stereo Output<br />
input-mappings &#61; analog-stereo<br />
output-mappings &#61; analog-stereo iec958-stereo<br />
skip-probe &#61; yes<br />
}}<br />
<br />
This will auto-profile your Asus Xonar Essence STX with default profiles and add your own profile so you can have multiple sinks.<br />
<br />
You need to create another profile in the configuration file if you want to have the same functionality with AC3 Digital 5.1 output.<br />
<br />
[http://www.freedesktop.org/wiki/Software/PulseAudio/Backends/ALSA/Profiles/ See PulseAudio article about profiles]<br />
<br />
=== Some profiles like SPDIF are not enabled by default on the card ===<br />
<br />
Some profiles like IEC-958 (i.e. S/PDIF) may not be enabled by default on the selected sink. Each time the system starts up, the card profile is disabled and the pulseaudio daemon cannot select it.<br />
You have to add the profile selection to you default.pa file. <br />
Verify the card and profile name with :<br />
<br />
$ pacmd list-cards<br />
Then edit the config to add the profile<br />
{{hc|~/.config/pulse/default.pa|<br />
## Replace with your card name and the profile you want to activate<br />
set-card-profile alsa_card.pci-0000_00_1b.0 output:iec958-stereo+input:analog-stereo<br />
}}<br />
<br />
Pulse audio will add this profile the pool of available profiles<br />
<br />
== Bluetooth ==<br />
<br />
=== Disable Bluetooth support ===<br />
<br />
If you do not use Bluetooth, you may experience the following error in your journal:<br />
<br />
bluez5-util.c: GetManagedObjects() failed: org.freedesktop.DBus.Error.ServiceUnknown: The name org.bluez was not provided by any .service files<br />
<br />
To disable Bluetooth support in PulseAudio, make sure that the following lines are commented out in the configuration file in use ({{ic|~/.config/pulse/default.pa}} or {{ic|/etc/pulse/default.pa}}):<br />
<br />
{{hc|~/.config/pulse/default.pa|<br />
### Automatically load driver modules for Bluetooth hardware<br />
#.ifexists module-bluetooth-policy.so<br />
#load-module module-bluetooth-policy<br />
#.endif<br />
<br />
#.ifexists module-bluetooth-discover.so<br />
#load-module module-bluetooth-discover<br />
#.endif<br />
}}<br />
<br />
=== Bluetooth headset replay problems ===<br />
<br />
Some user [https://bbs.archlinux.org/viewtopic.php?id=117420 reports] huge delays or even no sound when the Bluetooth connection does not send any data. This is due to the {{ic|module-suspend-on-idle}} module, which automatically suspends sinks/sources on idle. As this can cause problems with headset, the responsible module can be deactivated.<br />
<br />
To disable loading of the {{ic|module-suspend-on-idle}} module, comment out the following line in the configuration file in use ({{ic|~/.config/pulse/default.pa}} or {{ic|/etc/pulse/default.pa}}):<br />
<br />
{{hc|~/.config/pulse/default.pa|<br />
### Automatically suspend sinks/sources that become idle for too long<br />
#load-module module-suspend-on-idle<br />
}}<br />
<br />
Finally restart PulseAudio to apply the changes.<br />
<br />
=== Automatically switch to Bluetooth or USB headset ===<br />
<br />
Add the following:<br />
{{hc|/etc/pulse/default.pa|<br />
# automatically switch to newly-connected devices<br />
load-module module-switch-on-connect<br />
}}<br />
<br />
=== My Bluetooth device is paired but does not play any sound ===<br />
<br />
[[Bluetooth#My_device_is_paired_but_no_sound_is_played_from_it|See the article in Bluetooth section]]{{Broken section link}}<br />
<br />
Starting from PulseAudio 2.99 and bluez 4.101 you should '''avoid''' using Socket interface. Do NOT use:<br />
<br />
{{hc|/etc/bluetooth/audio.conf|<nowiki><br />
[General]<br />
Enable=Socket<br />
</nowiki>}}<br />
<br />
If you face problems with A2DP and PA 2.99 make sure you have {{Pkg|sbc}} library.<br />
<br />
== Applications ==<br />
<br />
=== Flash content ===<br />
<br />
Since Adobe Flash does not directly support PulseAudio, the recommended way is to [[PulseAudio#ALSA|configure ALSA to use the virtual PulseAudio sound card]].<br />
<br />
If Flash audio is lagging, you may try to have Flash access ALSA directly. See [[PulseAudio#ALSA/dmix without grabbing hardware device]] for details.<br />
<br />
=== Permission errors bug ===<br />
<br />
{{hc|pulseaudio --start|<br />
E: [autospawn] core-util.c: Failed to create secure directory (/run/user/1000/pulse): Operation not permitted<br />
W: [autospawn] lock-autospawn.c: Cannot access autospawn lock.<br />
E: [pulseaudio] main.c: Failed to acquire autospawn lock}}<br />
<br />
Known programs that changes permissions for {{ic|/run/user/''user id''/pulse}} when using [[Polkit]] for root elevation:<br />
<br />
*{{AUR|sakis3g}} <br />
<br />
As a workaround, include {{Pkg|gksu}} or {{Pkg|kdesu}} in a [[desktop entry]], or add {{ic|1=''username'' ALL=NOPASSWD: /usr/bin/''program_name''}} to [[sudoers]] to run it with {{Pkg|sudo}} or {{ic|gksudo}} without a password.<br />
<br />
The other workaround is to uncomment and set {{ic|1=daemonize = yes}} in the {{ic|/etc/pulse/daemon.conf}}.<br />
<br />
See also [https://bbs.archlinux.org/viewtopic.php?id=135955].<br />
<br />
=== Audacity ===<br />
<br />
When starting Audacity you may find that your headphones no longer work. This can be because Audacity is trying to use them as a recording device. To fix this, open Audacity, then set its recording device to {{ic|1=pulse:Internal Mic:0}}.<br />
<br />
Under some circumstances, playback may be distorted, very fast, or freeze, as discussed in the [http://wiki.audacityteam.org/wiki/Linux_Issues#ALSA_and_other_sound_systems Audacity Wiki's Linux Issues page].<br />
<br />
The solution proposed in this page may work: start Audacity with:<br />
<br />
$ env PULSE_LATENCY_MSEC=30 audacity<br />
<br />
If the solution above does not fix this issue, one may wish to temporarily disable pulseaudio while running Audacity by using the {{ic|pasuspender}} command:<br />
<br />
$ pasuspender -- audacity<br />
<br />
Then, be sure to select the appropriate ALSA input and output devices in Audacity.<br />
<br />
See also [[#Setting the default fragment number and buffer size in PulseAudio]].<br />
<br />
== Other Issues ==<br />
<br />
=== Bad configuration files ===<br />
<br />
After starting PulseAudio, if the system outputs no sound, it may be necessary to delete the contents of {{ic|~/.config/pulse}} and/or {{ic|~/.pulse}}. PulseAudio will automatically create new configuration files on its next start.<br />
<br />
=== Cannot update configuration of sound device in pavucontrol ===<br />
<br />
{{Pkg|pavucontrol}} is a handy GUI utility for configuring PulseAudio. Under its 'Configuration' tab, you can select different profiles for each of your sound devices e.g. analogue stereo, digital output (IEC958), HDMI 5.1 Surround etc.<br />
<br />
However, you may run into an instance where selecting a different profile for a card results in the pulse daemon crashing and auto restarting without the new selection "sticking". If this occurs, use the other useful GUI tool, {{Pkg|paprefs}}, to check under the "Simultaneous Output" tab for a virtual simultaneous device. If this setting is active (checked), it will prevent you changing any card's profile in pavucontrol. Uncheck this setting, then adjust your profile in pavucontrol prior to re-enabling simultaneous output in paprefs.<br />
<br />
=== Failed to create sink input: sink is suspended ===<br />
<br />
If you do not have any output sound and receive dozens of errors related to a suspended sink in your {{ic|journalctl -b}} log, then backup first and then delete your user-specific pulse folders:<br />
<br />
$ rm -r ~/.pulse ~/.pulse-cookie ~/.config/pulse<br />
<br />
=== Pulse overwrites ALSA settings ===<br />
<br />
PulseAudio usually overwrites the ALSA settings — for example set with alsamixer — at start-up, even when the ALSA daemon is loaded. Since there seems to be no other way to restrict this behaviour, a workaround is to restore the ALSA settings again after PulseAudio has started. Add the following command to {{ic|.xinitrc}} or {{ic|.bash_profile}} or any other [[autostart]] file:<br />
<br />
restore_alsa() {<br />
while [ -z "$(pidof pulseaudio)" ]; do<br />
sleep 0.5<br />
done<br />
alsactl -f /var/lib/alsa/asound.state restore <br />
}<br />
restore_alsa &<br />
<br />
=== Prevent Pulse from restarting after being killed ===<br />
<br />
Sometimes you may wish to temporarily disable Pulse. In order to do so you will have to prevent Pulse from restarting after being killed.<br />
<br />
{{hc|~/.config/pulse/client.conf|2=<br />
# Disable autospawning the PulseAudio daemon<br />
autospawn = no<br />
}}<br />
<br />
=== Daemon startup failed ===<br />
<br />
Try resetting PulseAudio:<br />
<br />
$ rm -rf /tmp/pulse* ~/.pulse* ~/.config/pulse<br />
$ pulseaudio -k<br />
$ pulseaudio --start<br />
<br />
* Check that options for sinks are set up correctly.<br />
<br />
* If you configured in default.pa to load and use the OSS modules then check with {{Pkg|lsof}} that {{ic|/dev/dsp}} device is not used by another application.<br />
<br />
* Set a preferred working resample method. Use {{ic|pulseaudio --dump-resample-methods}} to see a list with all available resample methods you can use.<br />
<br />
* To get details about currently appeared unfixed errors or just get status of daemon use commands like {{ic|pax11publish -d}} and {{ic|pulseaudio -v}} where {{ic|v}} option can be used multiple time to set verbosity of log output equal to the {{ic|1=--log-level[=LEVEL]}} option where LEVEL is from 0 to 4. See the [[#Outputs by PulseAudio error status check utilities]] section.<br />
<br />
See also man pages for [http://linux.die.net/man/1/pax11publish pax11publish] and [http://linux.die.net/man/1/pulseaudio pulseaudio] for more details.<br />
<br />
==== Outputs by PulseAudio error status check utilities ====<br />
<br />
If the {{ic|pax11publish -d}} shows error like:<br />
<br />
N: [pulseaudio] main.c: User-configured server at "user", refusing to start/autospawn.<br />
<br />
then run {{ic|pax11publish -r}} command then could be also good to logout and login again. This manual cleanup is always required when using LXDM because it does not restart the X server on logout; see [[LXDM#PulseAudio]]{{Broken section link}}.<br />
<br />
If the {{ic|pulseaudio -vvvv}} command shows error like:<br />
<br />
E: [pulseaudio] module-udev-detect.c: You apparently ran out of inotify watches, probably because Tracker/Beagle took them all away. I wished people would do their homework first and fix inotify before using it for watching whole directory trees which is something the current inotify is certainly not useful for. Please make sure to drop the Tracker/Beagle guys a line complaining about their broken use of inotify.<br />
<br />
This can be resolved temporary by:<br />
$ echo 100000 > /proc/sys/fs/inotify/max_user_watches<br />
<br />
For permanent use save settings in the ''99-sysctl.conf'' file:<br />
<br />
{{hc|/etc/sysctl.d/99-sysctl.conf|2=<br />
# Increase inotify max watchs per user<br />
fs.inotify.max_user_watches = 100000}}<br />
<br />
{{Warning|It may cause much bigger consumption of memory by kernel.}}<br />
<br />
'''See also''' <br />
<br />
* [http://www.linuxinsight.com/proc_sys_fs_inotify.html proc_sys_fs_inotify] and [http://lwn.net/Articles/604686/ dnotify, inotify]- more details about ''inotify/max_user_watches''<br />
* [http://stackoverflow.com/questions/535768/what-is-a-reasonable-amount-of-inotify-watches-with-linux?answertab=votes#tab-top reasonable amount of inotify watches with Linux]<br />
* [http://linux.die.net/man/7/inotify inotify] - man page<br />
<br />
=== Daemon already running ===<br />
<br />
On some systems, PulseAudio may be started multiple times. journalctl will report:<br />
<br />
[pulseaudio] pid.c: Daemon already running.<br />
<br />
Make sure to use only one method of autostarting applications. {{Pkg|pulseaudio}} includes these files:<br />
<br />
* {{ic|/etc/X11/xinit/xinitrc.d/pulseaudio}}<br />
* {{ic|/etc/xdg/autostart/pulseaudio.desktop}}<br />
* {{ic|/etc/xdg/autostart/pulseaudio-kde.desktop}}<br />
<br />
Also check user autostart files and directories, such as [[xinitrc]], {{ic|~/.config/autostart/}} etc.<br />
<br />
=== Subwoofer stops working after end of every song ===<br />
<br />
Known issue: https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/494099<br />
<br />
To fix this, must edit: {{ic|/etc/pulse/daemon.conf}} and enable {{ic|enable-lfe-remixing}} :<br />
{{hc|/etc/pulse/daemon.conf|<nowiki><br />
enable-lfe-remixing = yes<br />
</nowiki>}}<br />
<br />
=== Unable to select surround configuration other than "Surround 4.0" ===<br />
<br />
If you are unable to set 5.1 surround output in pavucontrol because it only shows "Analog Surround 4.0 Output", open the ALSA mixer and change the output configuration there to 6 channels. Then restart pulseaudio, and pavucontrol will list many more options.<br />
<br />
=== Realtime scheduling ===<br />
<br />
If rtkit does not work, you can manually set up your system to run PulseAudio with real-time scheduling, which can help performance. To do this, add the following lines to {{ic|/etc/security/limits.conf}}:<br />
<br />
@pulse-rt - rtprio 9<br />
@pulse-rt - nice -11<br />
<br />
Afterwards, you need to add your user to the {{ic|pulse-rt}} group:<br />
<br />
# gpasswd -a <user> pulse-rt<br />
<br />
=== pactl "invalid option" error with negative percentage arguments ===<br />
<br />
{{ic|pactl}} commands that take negative percentage arguments will fail with an 'invalid option' error. Use the standard shell '--' pseudo argument<br />
to disable argument parsing before the negative argument. ''e.g.'' {{ic|pactl set-sink-volume 1 -- -5%}}.<br />
<br />
=== Fallback device is not respected ===<br />
<br />
PulseAudio does not have a true default device. Instead it uses a [http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/DefaultDevice/ "fallback"], which only applies to new sound streams. This means previously run applications are not affected by the newly set fallback device.<br />
<br />
{{Pkg|gnome-control-center}}, {{Pkg|mate-media}} and {{AUR|paswitch}} handle this gracefully. Alternatively: <br />
<br />
1. Move the old streams in {{Pkg|pavucontrol}} manually to the new sound card.<br />
<br />
2. Stop Pulse, erase the "stream-volumes" in {{ic|~/.config/pulse}} and/or {{ic|~/.pulse}} and restart Pulse. This also resets application volumes.<br />
<br />
3. Disable stream device reading. This may be not wanted when using different soundcards with different applications.<br />
<br />
{{hc|/etc/pulse/default.pa|<nowiki><br />
load-module module-stream-restore restore_device=false<br />
</nowiki>}}<br />
<br />
=== RTP/UDP packet flood ===<br />
<br />
In some cases the default configuration might flood the network with UDP packets.[https://bugs.freedesktop.org/show_bug.cgi?id=44777] <br />
To fix this problem, launch {{ic|paprefs}} and disable "Multicast/RTP Sender".[https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/411688/comments/36]</div>Iunohttps://wiki.archlinux.org/index.php?title=AMDGPU&diff=428906AMDGPU2016-03-31T08:35:40Z<p>Iuno: /* AMDGPU PRO */ add info about aur packages by LEW21</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[ja:AMDGPU]]<br />
{{Related articles start}}<br />
{{Related|AMD Catalyst}}<br />
{{Related|ATI}}<br />
{{Related|Xorg}}<br />
{{Related articles end}}<br />
<br />
'''amdgpu''' is the open source graphics driver for the latest AMD Radeon graphics cards.<br />
<br />
At the moment there is only support for the [http://xorg.freedesktop.org/wiki/RadeonFeature/ Volcanic Islands] and some cards of the [https://www.phoronix.com/scan.php?page=news_item&px=AMD-AMDGPU-Released Sea Islands] family. AMD has yet to decide to add support for older cards in the near future.<br />
<br />
Owners of unsupported AMD/ATI video cards can use the [[ATI|Radeon open source]] or [[AMD Catalyst|AMD's proprietary]] driver instead.<br />
<br />
== Installation ==<br />
{{Note|If coming from the proprietary Catalyst driver, see [[AMD Catalyst#Uninstallation]] first.}}<br />
<br />
[[Install]] the {{Pkg|xf86-video-amdgpu}} package. It provides the DDX driver for 2D acceleration and it pulls in {{Pkg|mesa}} as a dependency, providing the DRI driver for 3D acceleration.<br />
<br />
To enable OpenGL support, also install {{Pkg|mesa-libgl}}. If you are on x86_64 and need 32-bit support, also install {{Pkg|lib32-mesa-libgl}} from the [[multilib]] repository.<br />
<br />
Support for [[#Enabling video acceleration|accelerated video decoding]] is provided by {{Pkg|mesa-vdpau}} and {{Pkg|lib32-mesa-vdpau}} packages.<br />
<br />
=== AMDGPU PRO ===<br />
{{Warning|This is still highly experimental, no official Arch Linux package exists yet}}<br />
AMD provides a binary driver userland driver called ''AMDGPU PRO'', which works on top of the open-source AMDGPU kernel driver. This hybrid approach allows the in-kernel component to be recompiled by the Arch Linux maintainers when required (e.g. on a kernel or Xorg update), while keeping the same binary userspace part. This should remedy the problem where the driver provided by AMD is out of date and incompatible with newer kernels or Xorg versions (a problem that was very common with the old [[AMD Catalyst]] driver). For an detailed overview of the hybrid system, see [http://www.phoronix.com/scan.php?page=news_item&px=MTgwODA this article].<br />
<br />
The AMDGPU PRO driver provides OpenGL, OpenCL, Vulkan and VDPAU support. It aims to provide better performance than the open-source driver.<br />
<br />
See the [http://support.amd.com/en-us/kb-articles/Pages/AMDGPU-PRO-Beta-Driver-for-Vulkan-Release-Notes.aspx initial release notes] and the [https://www.phoronix.com/forums/forum/linux-graphics-x-org-drivers/amd-linux/855699-amd-representative-says-their-vulkan-linux-driver-will-be-here-soon/page6 announcement at the Phoronix forum] for more information.<br />
<br />
There are packages for the amdgpu-pro components in the [[AUR]] ({{AUR|amdgpu-pro}}), visit https://github.com/LEW21/archlinux-amdgpu for issues or pull requests.<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-amdgpu.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "AMD"<br />
Driver "amdgpu"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Loading ==<br />
<br />
The {{ic|amdgpu}} kernel module should load fine automatically on system boot.<br />
<br />
If it does not happen, then:<br />
<br />
* Make sure you have the latest {{Pkg|linux-firmware}} package installed. This driver requires the latest firmware for each model to successfully boot.<br />
* Make sure you do '''not''' have {{ic|nomodeset}} or {{ic|1=vga=}} as a [[kernel parameter]], since {{ic|amdgpu}} requires [[KMS]].<br />
* Also, check that you have not disabled {{ic|amdgpu}} by using any [[Kernel_modules#Blacklisting|kernel module blacklisting]].<br />
<br />
=== Enable early KMS ===<br />
<br />
{{Tip|If you have problems with the resolution, [[Kernel mode setting#Forcing modes and EDID]] may help.}}<br />
<br />
[[Kernel mode setting]] (KMS) is supported by the radeon driver and is mandatory and enabled by default. <br />
<br />
KMS is typically initialized after the [[Arch boot process#initramfs|initramfs stage]]. It is possible, however, to enable KMS during the initramfs stage. To do this, add the {{ic|amdgpu}} module to the {{ic|MODULES}} line in {{ic|/etc/mkinitcpio.conf}}:<br />
<br />
MODULES="... amdgpu ..."<br />
<br />
Now, regenerate the initramfs:<br />
<br />
# mkinitcpio -p linux<br />
<br />
The change takes effect at the next reboot.<br />
<br />
== Performance tuning ==<br />
=== Enabling video acceleration ===<br />
[[VA-API]] and [[VDPAU]] can be installed to provide hardware accelerated video encoding and decoding.<br />
<br />
== Enable amdgpu for Sea Islands Cards ==<br />
<br />
{{ic|amdgpu}} has experimental support for Sea Islands (CI) cards, which is disabled by default. One possible reason why you might want to enable it and switch from radeon to {{ic|amdgpu}} is that AMD announced their user space [https://www.khronos.org/vulkan/ Vulkan] driver will only be supporting the new {{ic|amdgpu}} stack [https://phoronix.com/scan.php?page=news_item&px=AMDGPU-Vulkan-Driver-Only]. Same might be the case for the new OpenCL driver, which was also mentioned in the [http://www.x.org/wiki/Events/XDC2015/Program/deucher_zhou_amdgpu.pdf XDC presentation].<br />
<br />
If you want to enable {{ic|amdgpu}} and use it with your Sea Islands product, you have to recompile your kernel. Probably the easiest way to setup a custom kernel is using the ABS, described in [[Kernels/Arch Build System]]. You can also uncomment {{ic|make menuconfig}} or {{ic|make nconfig}} in the PKGBUILD, which will allow you to verify that the CIK option is selected by following the instructions from [https://wiki.gentoo.org/wiki/Amdgpu#Feature_support Gentoo wiki].<br />
<br />
Set "Enable amdgpu support for CIK parts" to "yes", then compile and install your kernel.<br />
<br />
CONFIG_DRM_AMDGPU_CIK=Y<br />
<br />
It may also be needed to use the {{ic|1=amdgpu.exp_hw_support=1|2==}} [https://www.phoronix.com/scan.php?page=news_item&px=AMDGPU-Iceland-Experimental] as [[kernel parameter]] or by setting the [[kernel_modules#Using_files_in_.2Fetc.2Fmodprobe.d.2F|kernel module]] options.<br />
<br />
== Disable radeon driver ==<br />
<br />
To prevent {{ic|radeon}} from loading, you can disable it in the Kconfig or [[Kernel_modules#Blacklisting|blacklist]] the {{ic|radeon}} module.<br />
{{hc|/etc/modprobe.d/radeon.conf|<br />
blacklist radeon}}</div>Iunohttps://wiki.archlinux.org/index.php?title=Talk:AMDGPU&diff=421794Talk:AMDGPU2016-02-22T15:59:37Z<p>Iuno: </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)</div>Iunohttps://wiki.archlinux.org/index.php?title=Talk:AMDGPU&diff=420906Talk:AMDGPU2016-02-16T10:52:12Z<p>Iuno: /* Supported Hardware */</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)</div>Iunohttps://wiki.archlinux.org/index.php?title=Talk:AMDGPU&diff=420905Talk:AMDGPU2016-02-16T10:51:29Z<p>Iuno: </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<br />
[[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)</div>Iunohttps://wiki.archlinux.org/index.php?title=Talk:AMDGPU&diff=420904Talk:AMDGPU2016-02-16T10:50:23Z<p>Iuno: /* Supported Hardware */</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.<br />
<br />
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<br />
[[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)</div>Iunohttps://wiki.archlinux.org/index.php?title=Talk:AMDGPU&diff=420902Talk:AMDGPU2016-02-16T09:53:22Z<p>Iuno: amdgpu w/ CI: no sound?</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 />
<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)</div>Iunohttps://wiki.archlinux.org/index.php?title=Talk:AMDGPU&diff=420901Talk:AMDGPU2016-02-16T09:27:56Z<p>Iuno: Start discussion about "Supported Hardware" listing</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)</div>Iunohttps://wiki.archlinux.org/index.php?title=AMDGPU&diff=420898AMDGPU2016-02-16T08:59:10Z<p>Iuno: added section Supported Hardware</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
{{Related articles start}}<br />
{{Related|AMD Catalyst}}<br />
{{Related|ATI}}<br />
{{Related|Xorg}}<br />
{{Related articles end}}<br />
<br />
'''amdgpu''' is the open source graphics driver for the latest AMD Radeon graphics cards.<br />
<br />
At the moment there is only support for the [http://xorg.freedesktop.org/wiki/RadeonFeature/ Volcanic Islands] and some cards of the [https://www.phoronix.com/scan.php?page=news_item&px=AMD-AMDGPU-Released Sea Islands] family. AMD has yet to decide to add support older cards in the near future.<br />
<br />
Owners of unsupported AMD/ATI video cards can use the [[ATI|Radeon open source]] or [[AMD Catalyst|AMD's proprietary]] driver instead.<br />
<br />
== Supported Hardware ==<br />
=== APUs ===<br />
*Volcanic Islands (VI/GCN1.2)<br />
**Carrizo APUs<br />
***Ax-8000 series<br />
<br />
*(experimental) Sea Islands (CI/GCN 1.1)<br />
**Kaveri APUs<br />
***Ax-7000 series<br />
<br />
=== Dedicated graphics cards for mobile computers ===<br />
*Volcanic Islands (VI/GCN1.2)<br />
**Tonga GPU<br />
***Radeon R9 M295X<br />
***Radeon R9 M390X<br />
***Radeon R9 M395X<br />
<br />
*(experimental) Sea Islands (CI/GCN 1.1)<br />
**Bonaire GPU<br />
***Radeon HD 7790<br />
***Radeon HD 8770<br />
***Radeon R9 M385X<br />
<br />
=== Dedicated graphics cards for desktop computers ===<br />
*Volcanic Islands (VI/GCN1.2)<br />
**Tonga GPU<br />
***Radeon R9 285<br />
***Radeon R9 380<br />
***Radeon R9 380X<br />
**Fiji GPU<br />
***Radeon R9 Nano<br />
***Radeon R9 Fury<br />
***Radeon R9 Fury X<br />
<br />
*(experimental) Sea Islands (CI/GCN 1.1)<br />
**Bonaire GPU<br />
***Radeon R9 260/360<br />
***Radeon R9 260X<br />
**Hawaii GPU<br />
***Radeon R9 290/390<br />
***Radeon R9 290X/390X<br />
<br />
== Installation ==<br />
{{Note|If coming from the proprietary Catalyst driver, see [[AMD Catalyst#Uninstallation]] first.}}<br />
<br />
[[Install]] the {{Pkg|xf86-video-amdgpu}} package. It provides the DDX driver for 2D acceleration and it pulls in {{Pkg|mesa}} as a dependency, providing the DRI driver for 3D acceleration.<br />
<br />
To enable OpenGL support, also install {{Pkg|mesa-libgl}}. If you are on x86_64 and need 32-bit support, also install {{Pkg|lib32-mesa-libgl}} from the [[multilib]] repository.<br />
<br />
Support for [[#Enabling video acceleration|accelerated video decoding]] is provided by {{Pkg|mesa-vdpau}} and {{Pkg|lib32-mesa-vdpau}} packages.<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-amdgpu.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "AMD"<br />
Driver "amdgpu"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Loading ==<br />
<br />
The {{ic|amdgpu}} kernel module should load fine automatically on system boot.<br />
<br />
If it does not happen, then:<br />
<br />
* Make sure you have the latest {{Pkg|linux-firmware}} package installed. This driver requires the latest firmware for each model to successfully boot.<br />
* Make sure you do '''not''' have {{ic|nomodeset}} or {{ic|1=vga=}} as a [[kernel parameter]], since {{ic|amdgpu}} requires [[KMS]].<br />
* Also, check that you have not disabled {{ic|amdgpu}} by using any [[Kernel_modules#Blacklisting|kernel module blacklisting]].<br />
<br />
=== Enable early KMS ===<br />
<br />
{{Tip|If you have problems with the resolution, [[Kernel mode setting#Forcing modes and EDID]] may help.}}<br />
<br />
[[Kernel mode setting]] (KMS) is supported by the radeon driver and is mandatory and enabled by default. <br />
<br />
KMS is typically initialized after the [[Arch boot process#initramfs|initramfs stage]]. It is possible, however, to enable KMS during the initramfs stage. To do this, add the {{ic|amdgpu}} module to the {{ic|MODULES}} line in {{ic|/etc/mkinitcpio.conf}}:<br />
<br />
MODULES="... amdgpu ..."<br />
<br />
Now, regenerate the initramfs:<br />
<br />
# mkinitcpio -p linux<br />
<br />
The change takes effect at the next reboot.<br />
<br />
== Performance tuning ==<br />
=== Enabling video acceleration ===<br />
[[VA-API]] and [[VDPAU]] can be installed to provide hardware accelerated video encoding and decoding.<br />
<br />
== Enable amdgpu for Sea Islands Cards ==<br />
{{ic|amdgpu}} has experimental support for Sea Islands (CI) cards, which is disabled by default. One possible reason why you might want to enable it and switch from radeon to {{ic|amdgpu}} is that AMD announced their user space [https://www.khronos.org/vulkan/ Vulkan] driver will only be supporting the new {{ic|amdgpu}} stack [https://phoronix.com/scan.php?page=news_item&px=AMDGPU-Vulkan-Driver-Only]. Same might be the case for the new OpenCL driver, which was also mentioned in the [http://www.x.org/wiki/Events/XDC2015/Program/deucher_zhou_amdgpu.pdf XDC presentation].<br />
If you want to enable {{ic|amdgpu}} and use it with your Sea Islands product, you have to recompile your kernel.<br />
Probably the easiest way to setup a custom kernel is using the ABS, described in the article [[Kernels/Arch Build System]].<br />
Set "Enable amdgpu support for CIK parts" to "yes", then compile and install your kernel.<br />
<br />
CONFIG_DRM_AMDGPU_CIK=Y<br />
<br />
To prevent {{ic|radeon}} from loading, you can disable it in the Kconfig or [https://wiki.archlinux.org/index.php/Kernel_modules#Blacklisting blacklist] the {{ic|radeon}} module.<br />
{{hc|/etc/modprobe.d/amdgpu.conf|<br />
blacklist radeon}}</div>Iunohttps://wiki.archlinux.org/index.php?title=AMDGPU&diff=420897AMDGPU2016-02-16T08:43:38Z<p>Iuno: /* Enable amdgpu for Sea Islands Cards */ formatting/highlighting</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
{{Related articles start}}<br />
{{Related|AMD Catalyst}}<br />
{{Related|ATI}}<br />
{{Related|Xorg}}<br />
{{Related articles end}}<br />
<br />
'''amdgpu''' is the open source graphics driver for the latest AMD Radeon graphics cards.<br />
<br />
At the moment there is only support for the [http://xorg.freedesktop.org/wiki/RadeonFeature/ Volcanic Islands] and some cards of the [https://www.phoronix.com/scan.php?page=news_item&px=AMD-AMDGPU-Released Sea Islands] family. AMD has yet to decide to add support older cards in the near future.<br />
<br />
Owners of unsupported AMD/ATI video cards can use the [[ATI|Radeon open source]] or [[AMD Catalyst|AMD's proprietary]] driver instead.<br />
<br />
== Installation ==<br />
{{Note|If coming from the proprietary Catalyst driver, see [[AMD Catalyst#Uninstallation]] first.}}<br />
<br />
[[Install]] the {{Pkg|xf86-video-amdgpu}} package. It provides the DDX driver for 2D acceleration and it pulls in {{Pkg|mesa}} as a dependency, providing the DRI driver for 3D acceleration.<br />
<br />
To enable OpenGL support, also install {{Pkg|mesa-libgl}}. If you are on x86_64 and need 32-bit support, also install {{Pkg|lib32-mesa-libgl}} from the [[multilib]] repository.<br />
<br />
Support for [[#Enabling video acceleration|accelerated video decoding]] is provided by {{Pkg|mesa-vdpau}} and {{Pkg|lib32-mesa-vdpau}} packages.<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-amdgpu.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "AMD"<br />
Driver "amdgpu"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Loading ==<br />
<br />
The {{ic|amdgpu}} kernel module should load fine automatically on system boot.<br />
<br />
If it does not happen, then:<br />
<br />
* Make sure you have the latest {{Pkg|linux-firmware}} package installed. This driver requires the latest firmware for each model to successfully boot.<br />
* Make sure you do '''not''' have {{ic|nomodeset}} or {{ic|1=vga=}} as a [[kernel parameter]], since {{ic|amdgpu}} requires [[KMS]].<br />
* Also, check that you have not disabled {{ic|amdgpu}} by using any [[Kernel_modules#Blacklisting|kernel module blacklisting]].<br />
<br />
=== Enable early KMS ===<br />
<br />
{{Tip|If you have problems with the resolution, [[Kernel mode setting#Forcing modes and EDID]] may help.}}<br />
<br />
[[Kernel mode setting]] (KMS) is supported by the radeon driver and is mandatory and enabled by default. <br />
<br />
KMS is typically initialized after the [[Arch boot process#initramfs|initramfs stage]]. It is possible, however, to enable KMS during the initramfs stage. To do this, add the {{ic|amdgpu}} module to the {{ic|MODULES}} line in {{ic|/etc/mkinitcpio.conf}}:<br />
<br />
MODULES="... amdgpu ..."<br />
<br />
Now, regenerate the initramfs:<br />
<br />
# mkinitcpio -p linux<br />
<br />
The change takes effect at the next reboot.<br />
<br />
== Performance tuning ==<br />
=== Enabling video acceleration ===<br />
[[VA-API]] and [[VDPAU]] can be installed to provide hardware accelerated video encoding and decoding.<br />
<br />
== Enable amdgpu for Sea Islands Cards ==<br />
{{ic|amdgpu}} has experimental support for Sea Islands (CI) cards, which is disabled by default. One possible reason why you might want to enable it and switch from radeon to {{ic|amdgpu}} is that AMD announced their user space [https://www.khronos.org/vulkan/ Vulkan] driver will only be supporting the new {{ic|amdgpu}} stack [https://phoronix.com/scan.php?page=news_item&px=AMDGPU-Vulkan-Driver-Only]. Same might be the case for the new OpenCL driver, which was also mentioned in the [http://www.x.org/wiki/Events/XDC2015/Program/deucher_zhou_amdgpu.pdf XDC presentation].<br />
If you want to enable {{ic|amdgpu}} and use it with your Sea Islands product, you have to recompile your kernel.<br />
Probably the easiest way to setup a custom kernel is using the ABS, described in the article [[Kernels/Arch Build System]].<br />
Set "Enable amdgpu support for CIK parts" to "yes", then compile and install your kernel.<br />
<br />
CONFIG_DRM_AMDGPU_CIK=Y<br />
<br />
To prevent {{ic|radeon}} from loading, you can disable it in the Kconfig or [https://wiki.archlinux.org/index.php/Kernel_modules#Blacklisting blacklist] the {{ic|radeon}} module.<br />
{{hc|/etc/modprobe.d/amdgpu.conf|<br />
blacklist radeon}}</div>Iunohttps://wiki.archlinux.org/index.php?title=AMDGPU&diff=420894AMDGPU2016-02-16T08:40:40Z<p>Iuno: add section about amdgpu on CIK parts</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
{{Related articles start}}<br />
{{Related|AMD Catalyst}}<br />
{{Related|ATI}}<br />
{{Related|Xorg}}<br />
{{Related articles end}}<br />
<br />
'''amdgpu''' is the open source graphics driver for the latest AMD Radeon graphics cards.<br />
<br />
At the moment there is only support for the [http://xorg.freedesktop.org/wiki/RadeonFeature/ Volcanic Islands] and some cards of the [https://www.phoronix.com/scan.php?page=news_item&px=AMD-AMDGPU-Released Sea Islands] family. AMD has yet to decide to add support older cards in the near future.<br />
<br />
Owners of unsupported AMD/ATI video cards can use the [[ATI|Radeon open source]] or [[AMD Catalyst|AMD's proprietary]] driver instead.<br />
<br />
== Installation ==<br />
{{Note|If coming from the proprietary Catalyst driver, see [[AMD Catalyst#Uninstallation]] first.}}<br />
<br />
[[Install]] the {{Pkg|xf86-video-amdgpu}} package. It provides the DDX driver for 2D acceleration and it pulls in {{Pkg|mesa}} as a dependency, providing the DRI driver for 3D acceleration.<br />
<br />
To enable OpenGL support, also install {{Pkg|mesa-libgl}}. If you are on x86_64 and need 32-bit support, also install {{Pkg|lib32-mesa-libgl}} from the [[multilib]] repository.<br />
<br />
Support for [[#Enabling video acceleration|accelerated video decoding]] is provided by {{Pkg|mesa-vdpau}} and {{Pkg|lib32-mesa-vdpau}} packages.<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-amdgpu.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "AMD"<br />
Driver "amdgpu"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Loading ==<br />
<br />
The {{ic|amdgpu}} kernel module should load fine automatically on system boot.<br />
<br />
If it does not happen, then:<br />
<br />
* Make sure you have the latest {{Pkg|linux-firmware}} package installed. This driver requires the latest firmware for each model to successfully boot.<br />
* Make sure you do '''not''' have {{ic|nomodeset}} or {{ic|1=vga=}} as a [[kernel parameter]], since {{ic|amdgpu}} requires [[KMS]].<br />
* Also, check that you have not disabled {{ic|amdgpu}} by using any [[Kernel_modules#Blacklisting|kernel module blacklisting]].<br />
<br />
=== Enable early KMS ===<br />
<br />
{{Tip|If you have problems with the resolution, [[Kernel mode setting#Forcing modes and EDID]] may help.}}<br />
<br />
[[Kernel mode setting]] (KMS) is supported by the radeon driver and is mandatory and enabled by default. <br />
<br />
KMS is typically initialized after the [[Arch boot process#initramfs|initramfs stage]]. It is possible, however, to enable KMS during the initramfs stage. To do this, add the {{ic|amdgpu}} module to the {{ic|MODULES}} line in {{ic|/etc/mkinitcpio.conf}}:<br />
<br />
MODULES="... amdgpu ..."<br />
<br />
Now, regenerate the initramfs:<br />
<br />
# mkinitcpio -p linux<br />
<br />
The change takes effect at the next reboot.<br />
<br />
== Performance tuning ==<br />
=== Enabling video acceleration ===<br />
[[VA-API]] and [[VDPAU]] can be installed to provide hardware accelerated video encoding and decoding.<br />
<br />
== Enable amdgpu for Sea Islands Cards ==<br />
amdgpu has experimental support for Sea Islands (CI) cards, which is disabled by default. One possible reason why you might want to enable it and switch from radeon to amdgpu is that AMD announced their user space [https://www.khronos.org/vulkan/ Vulkan] driver will only be supporting the new amdgpu stack [https://phoronix.com/scan.php?page=news_item&px=AMDGPU-Vulkan-Driver-Only]. Same might be the case for the new OpenCL driver, which was also mentioned in the [http://www.x.org/wiki/Events/XDC2015/Program/deucher_zhou_amdgpu.pdf XDC presentation].<br />
If you want to enable amdgpu and use it with your Sea Islands product, you have to recompile your kernel.<br />
Probably the easiest way to setup a custom kernel is using the ABS, described in the article [[Kernels/Arch Build System]].<br />
Set "Enable amdgpu support for CIK parts" to "Y", then compile and install your kernel.<br />
<br />
CONFIG_DRM_AMDGPU_CIK=Y<br />
<br />
To prevent radeon from loading, you can disable it in the Kconfig or [https://wiki.archlinux.org/index.php/Kernel_modules#Blacklisting blacklist] the radeon module.<br />
{{hc|/etc/modprobe.d/amdgpu.conf|<br />
blacklist radeon}}</div>Iunohttps://wiki.archlinux.org/index.php?title=AMDGPU&diff=420889AMDGPU2016-02-16T08:00:33Z<p>Iuno: fixed link to freedesktop wiki RadeonFeature matrix</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
{{Related articles start}}<br />
{{Related|AMD Catalyst}}<br />
{{Related|ATI}}<br />
{{Related|Xorg}}<br />
{{Related articles end}}<br />
<br />
'''amdgpu''' is the open source graphics driver for the latest AMD Radeon graphics cards.<br />
<br />
At the moment there is only support for the [http://xorg.freedesktop.org/wiki/RadeonFeature/ Volcanic Islands] and some cards of the [https://www.phoronix.com/scan.php?page=news_item&px=AMD-AMDGPU-Released Sea Islands] family. AMD has yet to decide to add support older cards in the near future.<br />
<br />
Owners of unsupported AMD/ATI video cards can use the [[ATI|Radeon open source]] or [[AMD Catalyst|AMD's proprietary]] driver instead.<br />
<br />
== Installation ==<br />
{{Note|If coming from the proprietary Catalyst driver, see [[AMD Catalyst#Uninstallation]] first.}}<br />
<br />
[[Install]] the {{Pkg|xf86-video-amdgpu}} package. It provides the DDX driver for 2D acceleration and it pulls in {{Pkg|mesa}} as a dependency, providing the DRI driver for 3D acceleration.<br />
<br />
To enable OpenGL support, also install {{Pkg|mesa-libgl}}. If you are on x86_64 and need 32-bit support, also install {{Pkg|lib32-mesa-libgl}} from the [[multilib]] repository.<br />
<br />
Support for [[#Enabling video acceleration|accelerated video decoding]] is provided by {{Pkg|mesa-vdpau}} and {{Pkg|lib32-mesa-vdpau}} packages.<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-amdgpu.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "AMD"<br />
Driver "amdgpu"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Loading ==<br />
<br />
The {{ic|amdgpu}} kernel module should load fine automatically on system boot.<br />
<br />
If it does not happen, then:<br />
<br />
* Make sure you have the latest {{Pkg|linux-firmware}} package installed. This driver requires the latest firmware for each model to successfully boot.<br />
* Make sure you do '''not''' have {{ic|nomodeset}} or {{ic|1=vga=}} as a [[kernel parameter]], since {{ic|amdgpu}} requires [[KMS]].<br />
* Also, check that you have not disabled {{ic|amdgpu}} by using any [[Kernel_modules#Blacklisting|kernel module blacklisting]].<br />
<br />
=== Enable early KMS ===<br />
<br />
{{Tip|If you have problems with the resolution, [[Kernel mode setting#Forcing modes and EDID]] may help.}}<br />
<br />
[[Kernel mode setting]] (KMS) is supported by the radeon driver and is mandatory and enabled by default. <br />
<br />
KMS is typically initialized after the [[Arch boot process#initramfs|initramfs stage]]. It is possible, however, to enable KMS during the initramfs stage. To do this, add the {{ic|amdgpu}} module to the {{ic|MODULES}} line in {{ic|/etc/mkinitcpio.conf}}:<br />
<br />
MODULES="... amdgpu ..."<br />
<br />
Now, regenerate the initramfs:<br />
<br />
# mkinitcpio -p linux<br />
<br />
The change takes effect at the next reboot.<br />
<br />
== Performance tuning ==<br />
=== Enabling video acceleration ===<br />
[[VA-API]] and [[VDPAU]] can be installed to provide hardware accelerated video encoding and decoding.</div>Iunohttps://wiki.archlinux.org/index.php?title=ATI&diff=408386ATI2015-11-07T09:32:30Z<p>Iuno: /* Overview */ add info about gcn 1.1-based products which are well supported</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[de:ATI]]<br />
[[es:ATI]]<br />
[[fr:ATI]]<br />
[[it:ATI]]<br />
[[ja:ATI]]<br />
[[pl:ATI]]<br />
[[ru:ATI]]<br />
[[tr:ATI]]<br />
[[zh-CN:ATI]]<br />
{{Related articles start}}<br />
{{Related|AMD Catalyst}}<br />
{{Related|Xorg}}<br />
{{Related articles end}}<br />
<br />
Owners of '''AMD''' (previously '''ATI''') video cards have a choice between AMD's [[AMD Catalyst|proprietary driver]] ({{AUR|catalyst}}) and the open source driver ({{Pkg|xf86-video-ati}}). This article covers the open source driver.<br />
<br />
The open source driver is ''on par'' performance-wise with the proprietary driver for many cards. (See this [http://www.phoronix.com/scan.php?page=article&item=radeonsi-cat-wow&num=1 benchmark].) It also has good dual-head support but worse TV-out support. Newer cards support might be lagging behind Catalyst.<br />
<br />
If unsure, try the open source driver first, it will suit most needs and is generally less problematic. (See the [http://www.x.org/wiki/RadeonFeature feature matrix] to know what is supported for the GPU.)<br />
<br />
== Naming conventions ==<br />
<br />
The [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).<br />
<br />
For a table of core and product series, see [[Wikipedia:Radeon]] and [[Wikipedia:Comparison of AMD graphics processing units]].<br />
<br />
== Overview ==<br />
*Latest Fiji and Tonga based graphics cards (Volcanic Islands/GCN 1.2) utilizing the new amdgpu kernel driver currently lack reclocking support, preventing the system to access the full performance. Reclocking is expected after Kernel release 4.4.<br />
*Radeons in the Rx 300 (except for R9 380), Rx 200 and HD 7xxx (Sea/Southern Islands or GCN 1.1/1.0) series and newer (except maybe the latest series) have almost complete feature coverage and offer best performance.<br />
*Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D accelerations are provided.<br />
*Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides. Performance varies from medicore for some cards to excellent for others.<br />
*Support of DRI1, RandR 1.2/1.3/1.4, Glamor, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2.<br />
<br />
Check the [http://www.x.org/wiki/RadeonFeature feature matrix] for more details.<br />
<br />
Generally, '''xf86-video-ati''' should be your first choice, no matter which AMD/ATI card you own. In case you need to use a driver for newer AMD cards, you should consider the proprietary '''catalyst''' driver.<br />
<br />
{{Note|'''xf86-video-ati''' is specified as '''''radeon''''' for the kernel and in {{ic|xorg.conf}}. }}<br />
<br />
== Installation ==<br />
<br />
{{Note|If coming from the proprietary Catalyst driver, see [[AMD Catalyst#Uninstallation]] first.}}<br />
<br />
[[Install]] the {{Pkg|xf86-video-ati}} package. It provides the DDX driver for 2D acceleration and it pulls in {{Pkg|mesa}} as a dependency, providing the DRI driver for 3D acceleration.<br />
<br />
To enable OpenGL support, also install {{Pkg|mesa-libgl}}. If you are on x86_64 and need 32-bit support, also install {{Pkg|lib32-mesa-libgl}} from the [[multilib]] repository.<br />
<br />
Support for [[#Enabling video acceleration|accelerated video decoding]] is provided by {{Pkg|mesa-vdpau}} and {{Pkg|lib32-mesa-vdpau}} packages.<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Loading ==<br />
<br />
The radeon kernel module should load fine automatically on system boot.<br />
<br />
If it does not happen, then:<br />
<br />
* Make sure you do '''not''' have {{ic|nomodeset}} or {{ic|1=vga=}} as a [[kernel parameter]], since radeon requires kernel mode-setting.<br />
* Also, check that you have not disabled radeon by using any modprobe blacklisting within {{ic|/etc/modprobe.d/}} or {{ic|/usr/lib/modprobe.d/}}.<br />
<br />
=== Enable early KMS ===<br />
<br />
{{Tip|If you have problems with the resolution, [[Kernel mode setting#Forcing modes and EDID]] may help.}}<br />
<br />
[[Kernel mode setting]] (KMS) is supported by the radeon driver and is mandatory and enabled by default. <br />
<br />
KMS is typically initialized after the [[Arch boot process#initramfs|initramfs stage]]. It is possible, however, to enable KMS during the initramfs stage. To do this, add the {{ic|radeon}} module to the {{ic|MODULES}} line in {{ic|/etc/mkinitcpio.conf}}:<br />
<br />
MODULES="... radeon ..."<br />
<br />
Now, regenerate the initramfs:<br />
<br />
# mkinitcpio -p linux<br />
<br />
The change takes effect at the next reboot.<br />
<br />
== Performance tuning ==<br />
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.<br />
<br />
'''DRI3''' support can be enabled, instead of using the default '''DRI2'''. You may want to read the following benchmark by [http://www.phoronix.com/scan.php?page=article&item=radeon-dri3-perf&num=1 Phoronix] to give you an idea of the performance of DRI2 vs DRI3:<br />
<br />
Option "DRI" "3"<br />
<br />
'''ColorTiling''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU:<br />
<br />
Option "ColorTiling" "on"<br />
<br />
'''Acceleration architecture'''; Glamor is available as 2D acceleration method implement through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.<br />
Since xf86-video-ati driver-1:7.2.0-1, it is automatically enabled with radeonsi drivers (Southern Islands and superior GFX cards); on other graphic cards the method can be forced by adding AccelMethod '''glamor''' to the config file:<br />
<br />
Option "AccelMethod" "Glamor"<br />
<br />
'''Page Flip''' is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA:<br />
<br />
Option "EnablePageFlip" "on"<br />
<br />
'''EXAVSync ''' option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips.<br />
Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled:<br />
<br />
Option "EXAVSync" "yes"<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default<br />
Option "AccelMethod" "Glamor" #valid options are XAA, EXA and Glamor. Default value varies per-GPU.<br />
Option "DRI3" "on" #enable DRI3 instead of the default DRI2-mode<br />
#Option "EXAVSync" "off" #default is off, otherwise on. Only works '''if EXA activated'''<br />
#Option "EXAPixmaps" "on" #when on increases 2D performance, but may also cause artifacts on some old cards. Only works '''if EXA activated'''<br />
Option "AccelDFS" "on" #default is off, because it can give problems with some PCI-e/AGP cards (artefacts, corruption, etc.)<br />
EndSection<br />
}}<br />
<br />
{{Tip|{{Pkg|driconf}} is a tool that allows to modify several settings: vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).}}<br />
<br />
=== Module Parameters ===<br />
{{Tip|You may want to debug the newly parameters with {{ic|systool}} as stated in [[Kernel modules#Obtaining information]].}}<br />
Please read {{ic|man radeon}} and [http://www.x.org/wiki/RadeonFeature/#index4h2 RadeonFeature] first before applying module parameters.<br />
<br />
Useful [[kernel parameters]] may be {{ic|1=radeon.bapm=1}} [https://www.phoronix.com/scan.php?page=news_item&px=MTczMzI], {{ic|1=radeon.disp_priority=2}} [http://lists.freedesktop.org/pipermail/xorg/2013-February/055477.html], {{ic|1=radeon.hw_i2c=1}} [https://superuser.com/questions/723760/does-radeon-hw-i2c-1-has-any-thing-to-do-with-temperature-readings], {{ic|1=radeon.mst=1}} [https://www.phoronix.com/scan.php?page=news_item&px=Linux-4.1-Radeon-DP-MST], {{ic|1=radeon.msi=1}} (force-enable MSI-support), {{ic|1=radeon.audio=0}} (force-disable GPU audio) and/or {{ic|1=radeon.tv=0}} (disable TV-out).<br />
<br />
Defining the '''gartsize''', if not autodetected, can be done by adding {{ic|1=radeon.gartsize=32}} into [[kernel parameters]].<br />
<br />
{{Note|Setting this parameter should not be needed anymore with modern AMD videocards:<br />
{{bc|<nowiki><br />
[drm] Detected VRAM RAM=2048M, BAR=256M<br />
[drm] radeon: 2048M of VRAM memory ready<br />
[drm] radeon: 2048M of GTT memory ready.<br />
</nowiki>}}<br />
}}<br />
<br />
The changes take effect at the next reboot.<br />
<br />
==== Deactivating PCI-E 2.0 ====<br />
<br />
Since kernel 3.6, PCI-E v2.0 in '''radeon''' is turned on by default.<br />
<br />
It may be unstable with some motherboards, deactivation can be done by adding {{ic|1=radeon.pcie_gen2=0}} as a [[kernel parameters]].<br />
<br />
See [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article] for more information.<br />
<br />
=== Gallium Heads-Up Display ===<br />
<br />
The radeon driver supports activating a heads up display which can draw transparent graphs and text on top of applications that are rendering such as games. These can show such values as the current frame rate or the CPU load for each CPU core or an average of all of them. The HUD is controlled by the GALLIUM_HUD environment variable, and can be passed the following list of parameters among others:<br />
*"fps" - displays current frames per second<br />
*"cpu" - displays the average CPU load<br />
*"cpu0" - displays the CPU load for the first CPU core<br />
*"cpu0+cpu1" - displays the CPU load for the first two CPU cores<br />
*"draw-calls" - displays how many times each material in an object is drawn to the screen<br />
*"requested-VRAM" - displayed how much VRAM is being used on the GPU<br />
*"pixels-rendered" - displays how many pixels are being displayed<br />
<br />
To see a full list of parameters as well as some notes on operating GALLIUM_HUD you can also pass the "help" parameter to a simple application such as glxgears and see the corresponding terminal output:<br />
{{bc|1=# GALLIUM_HUD="help" glxgears }}<br />
<br />
More information can be found from this [http://lists.freedesktop.org/archives/mesa-dev/2013-March/036586.html mailing list post] or [https://kparal.wordpress.com/2014/03/03/fraps-like-fps-overlay-for-linux/ this blog post].<br />
<br />
== Hybrid graphics/AMD Dynamic Switchable Graphics ==<br />
<br />
It is the technology used on recent laptops equiped with two GPUs, one power-efficent (generally Intel integrated card) and one more powerful and more power-hungry (generally Radeon or Nvidia). There are two ways to get it work:<br />
<br />
* If it is not required to run 'GPU-hungry' applications, it is possible to disable the discrete card (see [https://help.ubuntu.com/community/HybridGraphics#Using_vga_switcheroo Ubuntu wiki]): {{ic|echo OFF > /sys/kernel/debug/vgaswitcheroo/switch}}.<br />
* [[PRIME]]: Is a proper way to use hybrid graphics on Linux, but still requires a bit of manual intervention from the user.<br />
<br />
== Powersaving ==<br />
{{Note|Power management is supported on all chips that include the appropriate power state tables in the vbios (R1xx and newer). "dpm" is only supported on R6xx and newer chips.}}<br />
<br />
With the radeon driver, power saving is disabled by default and has to be enabled manually if desired.<br />
<br />
You can choose between three different methods:<br />
<br />
# [[#Dynamic power management|dpm]] (enabled by default since kernel 3.13)<br />
# [[#Dynamic frequency switching|dynpm]]<br />
# [[#Profile-based frequency switching|profile]]<br />
<br />
'''It is hard to say which is the best for you, so you have to try it yourself!'''<br />
<br />
See http://www.x.org/wiki/RadeonFeature/#index3h2 for more details.<br />
<br />
=== Dynamic power management ===<br />
<br />
Since kernel 3.13, DPM is enabled by default for [http://kernelnewbies.org/Linux_3.13#head-f95c198f6fdc7defe36f470dc8369cf0e16898df lots of AMD Radeon hardware]. If you want to disable it, add the parameter {{ic|1=radeon.dpm=0}} to the [[kernel parameters]].<br />
<br />
Unlike [[#Dynamic frequency switching|dynpm]], the "dpm" method uses hardware on the GPU to dynamically change the clocks and voltage based on GPU load. It also enables clock and power gating.<br />
<br />
There are 3 operation modes to choose from:<br />
<br />
* {{ic|battery}} lowest power consumption<br />
* {{ic|balanced}} sane default<br />
* {{ic|performance}} highest performance<br />
<br />
They can be changed via sysfs<br />
# echo battery > /sys/class/drm/card0/device/power_dpm_state<br />
<br />
For testing or debugging purposes, you can force the card to run in a set performance mode:<br />
<br />
* {{ic|auto}} default; uses all levels in the power state<br />
* {{ic|low}} enforces the lowest performance level<br />
* {{ic|high}} enforces the highest performance level<br />
<br />
# echo low > /sys/class/drm/card0/device/power_dpm_force_performance_level<br />
<br />
=== Old methods ===<br />
<br />
==== Dynamic frequency switching ====<br />
<br />
This method dynamically changes the frequency depending on GPU load, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.<br />
<br />
It can be activated by simply running the following command:<br />
<br />
# echo dynpm > /sys/class/drm/card0/device/power_method<br />
<br />
==== Profile-based frequency switching ====<br />
<br />
This method will allow you to select one of the five profiles (described below). Different profiles, for the most part, end up changing the frequency/voltage of the GPU. This method is not as aggressive, but is more stable and flicker free and works with multiple heads active.<br />
<br />
To activate the method, run the following command:<br />
<br />
# echo profile > /sys/class/drm/card0/device/power_method<br />
<br />
Select one of the available profiles:<br />
* {{ic|default}} uses the default clocks and does not change the power state. This is the default behaviour.<br />
* {{ic|auto}} selects between {{ic|mid}} and {{ic|high}} power states based on the whether the system is on battery power or not.<br />
* {{ic|low}} forces the gpu to be in the {{ic|low}} power state all the time. Note that {{ic|low}} can cause display problems on some laptops, which is why {{ic|auto}} only uses {{ic|low}} when monitors are off. Selected on other profiles when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|mid}} forces the gpu to be in the {{ic|mid}} power state all the time.<br />
* {{ic|high}} forces the gpu to be in the {{ic|high}} power state all the time.<br />
<br />
As an example, we will activate the {{ic|low}} profile (replace {{ic|low}} with any of the aforementioned profiles as necessary):<br />
<br />
# echo low > /sys/class/drm/card0/device/power_profile<br />
<br />
==== Persistent configuration ====<br />
<br />
The activation described above is not persistent, it will not last when the computer is rebooted. To make it persistent, you can use [[systemd#Temporary files|systemd-tmpfiles]] (example for [[#Dynamic frequency switching]]):<br />
<br />
{{hc|/etc/tmpfiles.d/radeon-pm.conf|<nowiki><br />
w /sys/class/drm/card0/device/power_method - - - - dynpm<br />
</nowiki>}}<br />
<br />
Alternatively, you may use this [[udev]] rule instead (example for [[#Profile-based frequency switching]]):<br />
<br />
{{hc|/etc/udev/rules.d/30-radeon-pm.rules|<nowiki><br />
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low"<br />
</nowiki>}}<br />
<br />
{{Note|If the above rule is failing, try removing the {{ic|dri/}} prefix.}}<br />
<br />
==== Graphical tools ====<br />
<br />
* {{App|Radeon-tray|A small program to control the power profiles of your Radeon card via systray icon. It is written in PyQt4 and is suitable for non-Gnome users.|https://github.com/StuntsPT/Radeon-tray|{{AUR|radeon-tray}}}}<br />
* {{App|power-play-switcher|A gui for changing powerplay setting of the open source driver for ati radeon video cards.|https://code.google.com/p/power-play-switcher/|{{AUR|power-play-switcher}}{{Broken package link|{{aur-mirror|power-play-switcher}}}}}}<br />
* {{App|Gnome-shell-extension-Radeon-Power-Profile-Manager|A small extension for Gnome-shell that will allow you to change the power profile of your radeon card when using the open source drivers.|https://github.com/StuntsPT/shell-extension-radeon-power-profile-manager|{{AUR|gnome-shell-extension-radeon-ppm}}{{Broken package link|{{aur-mirror|gnome-shell-extension-radeon-ppm}}}} {{AUR|gnome-shell-extension-radeon-power-profile-manager-git}}{{Broken package link|{{aur-mirror|gnome-shell-extension-radeon-power-profile-manager-git}}}}}}<br />
<br />
=== Other notes ===<br />
<br />
To view the speed that the GPU is running at, perform the following command and you will get something like this output:<br />
<br />
{{hc|# cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki><br />
state: PM_STATE_ENABLED<br />
default engine clock: 300000 kHz<br />
current engine clock: 300720 kHz<br />
default memory clock: 200000 kHz<br />
</nowiki>}}<br />
<br />
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.<br />
<br />
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via [[lm_sensors]] tools or via sysfs in {{ic|/sys/class/hwmon}}.<br />
<br />
== Fan Speed ==<br />
<br />
While the power saving features above should handle fan speeds quite well, some cards may still be too noisy in their idle state. In this case, and when your card supports it, you can change the fan speed manually.<br />
<br />
{{Note|<br />
* Keep in mind that the following method sets the fan speed to a fixed value, hence it will not adjust with the stress of your gpu, which can lead to overheating under heavy load.<br />
* Better check your gpu temperature when applying lower than standard values. <br />
}}<br />
<br />
First, issue the following command to enable the manual adjustment of the fan speed of your graphics card (or your first gpu in case of a multi gpu setup). <br />
<br />
# echo 1 > /sys/class/drm/card0/device/hwmon/hwmon2/pwm1_enable<br />
<br />
Then set your desired fan speed from 0 to 255, which corresponds to 0-100% fan speed (The following command sets it to roughly 20%). <br />
<br />
# echo 55 > /sys/class/drm/card0/device/hwmon/hwmon2/pwm1<br />
<br />
For persistence, use [[systemd#Temporary files|systemd-tmpfiles]] as shown above by the example with power profiles.<br />
<br />
If a fixed value isn't desired, there are possibilities to define a custom fan curve manually by, for example, writing a script in which fan speeds are set depending on the current temperature (current value in /sys/class/drm/card0/device/hwmon/hwmon2/temp1_input), preferably with hystereses. There is also a gui solution: http://github.com/marazmista/radeon-profile{{AUR|radeon-profile-git}}.<br />
<br />
== TV out ==<br />
<br />
First, check that you have an S-video output: {{ic|xrandr}} should give you something like<br />
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200<br />
...<br />
S-video disconnected (normal left inverted right x axis y axis)<br />
<br />
Now we should tell Xorg that it is actually connected (it ''is'', right?)<br />
xrandr --output S-video --set "load detection" 1<br />
<br />
Setting TV standard to use:<br />
xrandr --output S-video --set "tv standard" ntsc<br />
<br />
Adding a mode for it (currently supports only 800x600):<br />
xrandr --addmode S-video 800x600<br />
<br />
Clone mode:<br />
xrandr --output S-video --same-as VGA-0<br />
<br />
Now let us try to see what we have:<br />
xrandr --output S-video --mode 800x600<br />
<br />
At this point you should see a 800x600 version of your desktop on your TV.<br />
<br />
To disable the output, do<br />
xrandr --output S-video --off<br />
<br />
Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.<br />
<br />
To send the output to the TV, do:<br />
xvattr -a XV_CRTC -v 1<br />
<br />
{{Note| you need to install {{AUR|xvattr}}{{Broken package link|{{aur-mirror|xvattr}}}} to execute this command.}}<br />
<br />
To switch back to the monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.<br />
<br />
Please see [http://www.x.org/wiki/radeonTV Enabling TV-Out Statically] for how to enable TV-out in your xorg configuration file.<br />
<br />
=== Force TV-out in KMS ===<br />
<br />
The kernel can recognize {{ic|1=video=}} parameter in following form (see [[KMS]] for more details):<br />
<br />
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]<br />
<br />
For example:<br />
<br />
video=DVI-I-1:1280x1024-24@60e<br />
<br />
Parameters with whitespaces must be quoted:<br />
<br />
"video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
Current mkinitcpio implementation also requires {{ic|#}} in front. For example:<br />
<br />
root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
* Grub can pass such command line as is.<br />
* Lilo needs backslashes for doublequotes (append {{ic|1=# \"video=9-pin DIN-1:1024x768-24@60e\"}})<br />
* Grub2: TODO<br />
<br />
You can get list of your video outputs with following command:<br />
<br />
{{bc|<nowiki>$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-</nowiki>}}<br />
<br />
== HDMI audio ==<br />
<br />
HDMI audio is supported in the {{Pkg|xf86-video-ati}} video driver. By default HDMI audio is disabled in the driver kernel versions >=3.0 because it can be problematic. To enable HDMI audio add {{ic|1=radeon.audio=1}} to your [[kernel parameters]].<br />
<br />
If there is no video after boot up, the driver option has to be disabled.<br />
<br />
{{Note|<br />
* If HDMI audio does not work after installing the driver, test your setup with the procedure at [[Advanced Linux Sound Architecture/Troubleshooting#HDMI Output does not work]].<br />
* If the sound is distorted in PulseAudio try setting {{ic|1=tsched=0}} as described in [[PulseAudio/Troubleshooting#Glitches, skips or crackling]] and make sure {{ic|rtkit}} daemon is running.<br />
* Your sound card might use the same module, since HDA compliant hardware is pretty common. [[Advanced_Linux_Sound_Architecture#Set_the_default_sound_card|Change the default sound card]] using one of the suggested methods, which include using the {{ic|defaults}} node in alsa configuration.<br />
}}<br />
<br />
== Dual Head setup ==<br />
<br />
=== Independent X screens ===<br />
<br />
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "radeon"<br />
Option "ZaphodHeads" "VGA-0"<br />
VendorName "ATI"<br />
BusID "PCI:1:0:0"<br />
Screen 0<br />
EndSection<br />
<br />
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads" "VGA-0"}}.<br />
<br />
== Enabling video acceleration ==<br />
<br />
The {{Pkg|mesa-vdpau}} package added support for MPEG1/2 decoding to free drivers, exported via {{Pkg|libvdpau}} and are automatically detected.<br />
<br />
In case it did not automatically use it, you can force the use of the driver by assigning environment variable {{ic|LIBVA_DRIVER_NAME}} to {{ic|vdpau}} and {{ic|VDPAU_DRIVER}} to the name of driver core, e.g.:<br />
<br />
{{hc|1=~/.bashrc|2=<br />
export LIBVA_DRIVER_NAME=vdpau<br />
export VDPAU_DRIVER=r600<br />
}}<br />
<br />
for r600-based+ cards (all available VDPAU drivers are in {{ic|/usr/lib/vdpau/}}).<br />
<br />
If you own a [[wikipedia:Radeon_HD_7000_Series|Southern Islands]] (HD 7XXX) card or newer, the {{ic|VDPAU_DRIVER}} variable should be exported as {{ic|radeonsi}}:<br />
<br />
{{hc|1=~/.bashrc|2=<br />
export VDPAU_DRIVER=radeonsi<br />
}}<br />
<br />
Verify the new settings by using {{ic|vainfo}}:<br />
{{hc|$ vainfo|<nowiki><br />
libva info: VA-API version 0.38.0<br />
libva info: va_getDriverName() returns 0<br />
libva info: User requested driver 'vdpau'<br />
libva info: Trying to open /usr/lib/dri/vdpau_drv_video.so<br />
libva info: Found init function __vaDriverInit_0_35<br />
libva info: va_openDriver() returns 0<br />
vainfo: VA-API version: 0.38 (libva 1.6.0)<br />
vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA-API - 0.7.4<br />
vainfo: Supported profile and entrypoints<br />
VAProfileMPEG2Simple : VAEntrypointVLD<br />
VAProfileMPEG2Main : VAEntrypointVLD<br />
VAProfileMPEG4Simple : VAEntrypointVLD<br />
VAProfileMPEG4AdvancedSimple : VAEntrypointVLD<br />
VAProfileH264Baseline : VAEntrypointVLD<br />
VAProfileH264Main : VAEntrypointVLD<br />
VAProfileH264High : VAEntrypointVLD<br />
VAProfileVC1Advanced : VAEntrypointVLD</nowiki>}}<br />
<br />
== Turn vsync off ==<br />
<br />
The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create {{ic|~/.drirc}} (or edit it if it already exists) and add the following section:<br />
{{hc|~/.drirc|<nowiki><br />
<driconf><br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0" /><br />
</application><br />
</device><br />
<!-- Other devices ... --><br />
</driconf><br />
</nowiki>}}<br />
Make sure the driver is '''dri2''', not your video card code (like r600).<br />
<br />
If vsync is still enabled, you can try to disable it by editing the xf86-video-ati configuration :<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-radeon.con|<nowiki><br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "EXAVSync" "off"<br />
Option "SwapbuffersWait" "false" <br />
EndSection<br />
</nowiki>}}<br />
<br />
== Troubleshooting ==<br />
<br />
=== Artifacts upon logging in ===<br />
<br />
If encountering artifacts, first try starting X without {{ic|/etc/X11/xorg.conf}}. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured {{ic|xorg.conf}} files are known to cause trouble.<br />
<br />
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.<br />
<br />
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EXAPixmaps" "off"<br />
EndSection<br />
<br />
Further tweaking could be done by disabling {{ic|AccelDFS}}:<br />
<br />
Option "AccelDFS" "off"<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
Please see the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].<br />
<br />
=== AGP is disabled (with KMS) ===<br />
<br />
If you experience poor performance and dmesg shows something like this<br />
[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19<br />
then check if the agp driver for your motherboard (e.g., {{ic|via_agp}}, {{ic|intel_agp}} etc.) is loaded before the {{ic|radeon}} module, see [[#Enabling KMS|Enabling KMS]].<br />
<br />
=== TV showing a black border around the screen ===<br />
<br />
When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see [[Wikipedia:Overscan]]) can be turned off using xrandr:<br />
xrandr --output HDMI-0 --set underscan off<br />
<br />
=== Black screen with mouse cursor on resume from suspend in X ===<br />
<br />
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance tuning|performance tuning]] for more information.<br />
<br />
=== No desktop effects in KDE4 with X1300 and Radeon driver ===<br />
<br />
A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}. <br />
<br />
Add:<br />
DisableChecks=true<br />
<br />
To the [Compositing] section. Ensure that compositing is enabled with:<br />
Enabled=true<br />
<br />
=== Black screen and no console, but X works in KMS ===<br />
<br />
This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:<br />
fbcon=map:1<br />
This will tell the fbcon to map itself to the {{ic|/dev/fb1}} framebuffer dev and not the {{ic|/dev/fb0}}, that in our case exist on the wrong graphics card. If that does not fix your problem, try booting with<br />
fbcon=map:0<br />
instead.<br />
<br />
=== 2D performance (e.g. scrolling) is slow ===<br />
<br />
If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.<br />
<br />
{{Note|This only applies to EXA.}}<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "MigrationHeuristic" "greedy"<br />
EndSection<br />
}}<br />
<br />
=== Monitor rotation works for cursor but not windows/content ===<br />
<br />
Users with newer graphics boards who have enabled EXA instead of glamor may find that rotating their monitor with xrandr causes the cursor and monitor dimensions to rotate, but windows and other content stay in their normal orientation. Additionally, the cursor moves according to normal rotation when the user moves the mouse. Look for the following line in your {{ic|/var/log/Xorg.0.log}} when you issue the xrandr rotate command:<br />
{{bc|<br />
(EE) RADEON(0): Rotation requires acceleration!<br />
}}<br />
Acceleration is disabled when using EXA on newer graphics cards (source: [https://bugs.freedesktop.org/show_bug.cgi?id=73420#c17 comment 17]). You must choose between enabling EXA ([[#Glamor|detailed above in the glamor section]]) and the ability to rotate.<br />
<br />
=== ATI X1600 (RV530 series) 3D application show black windows ===<br />
<br />
There are three possible solutions:<br />
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].<br />
* If this does not work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.<br />
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{pkg|driconf}} and set that option in {{ic|~/.drirc}}.<br />
<br />
=== Cursor corruption after coming out of sleep ===<br />
<br />
If the cursor becomes corrupted like it's repeating itself vertically after the monitor(s) comes out of sleep, set {{ic|"SWCursor" "True"}} in the {{ic|"Device"}} section of the {{ic|20-radeon.conf}} configuration file.<br />
<br />
=== DisplayPort stays black on multimonitor mode ===<br />
<br />
Try booting with the [[kernel parameter]] {{ic|1=radeon.audio=0}}.</div>Iunohttps://wiki.archlinux.org/index.php?title=ATI&diff=408385ATI2015-11-07T09:30:04Z<p>Iuno: /* Overview */ add info about VI products, removed out of date disclaimer</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[de:ATI]]<br />
[[es:ATI]]<br />
[[fr:ATI]]<br />
[[it:ATI]]<br />
[[ja:ATI]]<br />
[[pl:ATI]]<br />
[[ru:ATI]]<br />
[[tr:ATI]]<br />
[[zh-CN:ATI]]<br />
{{Related articles start}}<br />
{{Related|AMD Catalyst}}<br />
{{Related|Xorg}}<br />
{{Related articles end}}<br />
<br />
Owners of '''AMD''' (previously '''ATI''') video cards have a choice between AMD's [[AMD Catalyst|proprietary driver]] ({{AUR|catalyst}}) and the open source driver ({{Pkg|xf86-video-ati}}). This article covers the open source driver.<br />
<br />
The open source driver is ''on par'' performance-wise with the proprietary driver for many cards. (See this [http://www.phoronix.com/scan.php?page=article&item=radeonsi-cat-wow&num=1 benchmark].) It also has good dual-head support but worse TV-out support. Newer cards support might be lagging behind Catalyst.<br />
<br />
If unsure, try the open source driver first, it will suit most needs and is generally less problematic. (See the [http://www.x.org/wiki/RadeonFeature feature matrix] to know what is supported for the GPU.)<br />
<br />
== Naming conventions ==<br />
<br />
The [[Wikipedia:Radeon|Radeon]] brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both ''product'' names (e.g. HD 4850, X1900) and ''code'' or ''core'' names (e.g. RV770, R580). Traditionally, a ''product series'' will correspond to a ''core series'' (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series &ndash; including the RV515, RV530, R520, and R580 cores).<br />
<br />
For a table of core and product series, see [[Wikipedia:Radeon]] and [[Wikipedia:Comparison of AMD graphics processing units]].<br />
<br />
== Overview ==<br />
*Latest Fiji and Tonga based graphics cards (Volcanic Islands/GCN 1.2) utilizing the new amdgpu kernel driver currently lack reclocking support, preventing the system to access the full performance. Reclocking is expected after Kernel release 4.4.<br />
*Radeons in the HD 7xxx (Southern Islands) series and newer (except maybe the latest series) have almost complete feature coverage and offer best performance.<br />
*Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D accelerations are provided.<br />
*Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides. Performance varies from medicore for some cards to excellent for others.<br />
*Support of DRI1, RandR 1.2/1.3/1.4, Glamor, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2.<br />
<br />
Check the [http://www.x.org/wiki/RadeonFeature feature matrix] for more details.<br />
<br />
Generally, '''xf86-video-ati''' should be your first choice, no matter which AMD/ATI card you own. In case you need to use a driver for newer AMD cards, you should consider the proprietary '''catalyst''' driver.<br />
<br />
{{Note|'''xf86-video-ati''' is specified as '''''radeon''''' for the kernel and in {{ic|xorg.conf}}. }}<br />
<br />
== Installation ==<br />
<br />
{{Note|If coming from the proprietary Catalyst driver, see [[AMD Catalyst#Uninstallation]] first.}}<br />
<br />
[[Install]] the {{Pkg|xf86-video-ati}} package. It provides the DDX driver for 2D acceleration and it pulls in {{Pkg|mesa}} as a dependency, providing the DRI driver for 3D acceleration.<br />
<br />
To enable OpenGL support, also install {{Pkg|mesa-libgl}}. If you are on x86_64 and need 32-bit support, also install {{Pkg|lib32-mesa-libgl}} from the [[multilib]] repository.<br />
<br />
Support for [[#Enabling video acceleration|accelerated video decoding]] is provided by {{Pkg|mesa-vdpau}} and {{Pkg|lib32-mesa-vdpau}} packages.<br />
<br />
== Configuration ==<br />
<br />
Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.<br />
<br />
If you want manual configuration, create {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}, and add the following:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
EndSection<br />
<br />
Using this section, you can enable features and tweak the driver settings.<br />
<br />
== Loading ==<br />
<br />
The radeon kernel module should load fine automatically on system boot.<br />
<br />
If it does not happen, then:<br />
<br />
* Make sure you do '''not''' have {{ic|nomodeset}} or {{ic|1=vga=}} as a [[kernel parameter]], since radeon requires kernel mode-setting.<br />
* Also, check that you have not disabled radeon by using any modprobe blacklisting within {{ic|/etc/modprobe.d/}} or {{ic|/usr/lib/modprobe.d/}}.<br />
<br />
=== Enable early KMS ===<br />
<br />
{{Tip|If you have problems with the resolution, [[Kernel mode setting#Forcing modes and EDID]] may help.}}<br />
<br />
[[Kernel mode setting]] (KMS) is supported by the radeon driver and is mandatory and enabled by default. <br />
<br />
KMS is typically initialized after the [[Arch boot process#initramfs|initramfs stage]]. It is possible, however, to enable KMS during the initramfs stage. To do this, add the {{ic|radeon}} module to the {{ic|MODULES}} line in {{ic|/etc/mkinitcpio.conf}}:<br />
<br />
MODULES="... radeon ..."<br />
<br />
Now, regenerate the initramfs:<br />
<br />
# mkinitcpio -p linux<br />
<br />
The change takes effect at the next reboot.<br />
<br />
== Performance tuning ==<br />
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.<br />
<br />
'''DRI3''' support can be enabled, instead of using the default '''DRI2'''. You may want to read the following benchmark by [http://www.phoronix.com/scan.php?page=article&item=radeon-dri3-perf&num=1 Phoronix] to give you an idea of the performance of DRI2 vs DRI3:<br />
<br />
Option "DRI" "3"<br />
<br />
'''ColorTiling''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU:<br />
<br />
Option "ColorTiling" "on"<br />
<br />
'''Acceleration architecture'''; Glamor is available as 2D acceleration method implement through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.<br />
Since xf86-video-ati driver-1:7.2.0-1, it is automatically enabled with radeonsi drivers (Southern Islands and superior GFX cards); on other graphic cards the method can be forced by adding AccelMethod '''glamor''' to the config file:<br />
<br />
Option "AccelMethod" "Glamor"<br />
<br />
'''Page Flip''' is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA:<br />
<br />
Option "EnablePageFlip" "on"<br />
<br />
'''EXAVSync ''' option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips.<br />
Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled:<br />
<br />
Option "EXAVSync" "yes"<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "SWcursor" "off" #software cursor might be necessary on some rare occasions, hence set off by default<br />
Option "AccelMethod" "Glamor" #valid options are XAA, EXA and Glamor. Default value varies per-GPU.<br />
Option "DRI3" "on" #enable DRI3 instead of the default DRI2-mode<br />
#Option "EXAVSync" "off" #default is off, otherwise on. Only works '''if EXA activated'''<br />
#Option "EXAPixmaps" "on" #when on increases 2D performance, but may also cause artifacts on some old cards. Only works '''if EXA activated'''<br />
Option "AccelDFS" "on" #default is off, because it can give problems with some PCI-e/AGP cards (artefacts, corruption, etc.)<br />
EndSection<br />
}}<br />
<br />
{{Tip|{{Pkg|driconf}} is a tool that allows to modify several settings: vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).}}<br />
<br />
=== Module Parameters ===<br />
{{Tip|You may want to debug the newly parameters with {{ic|systool}} as stated in [[Kernel modules#Obtaining information]].}}<br />
Please read {{ic|man radeon}} and [http://www.x.org/wiki/RadeonFeature/#index4h2 RadeonFeature] first before applying module parameters.<br />
<br />
Useful [[kernel parameters]] may be {{ic|1=radeon.bapm=1}} [https://www.phoronix.com/scan.php?page=news_item&px=MTczMzI], {{ic|1=radeon.disp_priority=2}} [http://lists.freedesktop.org/pipermail/xorg/2013-February/055477.html], {{ic|1=radeon.hw_i2c=1}} [https://superuser.com/questions/723760/does-radeon-hw-i2c-1-has-any-thing-to-do-with-temperature-readings], {{ic|1=radeon.mst=1}} [https://www.phoronix.com/scan.php?page=news_item&px=Linux-4.1-Radeon-DP-MST], {{ic|1=radeon.msi=1}} (force-enable MSI-support), {{ic|1=radeon.audio=0}} (force-disable GPU audio) and/or {{ic|1=radeon.tv=0}} (disable TV-out).<br />
<br />
Defining the '''gartsize''', if not autodetected, can be done by adding {{ic|1=radeon.gartsize=32}} into [[kernel parameters]].<br />
<br />
{{Note|Setting this parameter should not be needed anymore with modern AMD videocards:<br />
{{bc|<nowiki><br />
[drm] Detected VRAM RAM=2048M, BAR=256M<br />
[drm] radeon: 2048M of VRAM memory ready<br />
[drm] radeon: 2048M of GTT memory ready.<br />
</nowiki>}}<br />
}}<br />
<br />
The changes take effect at the next reboot.<br />
<br />
==== Deactivating PCI-E 2.0 ====<br />
<br />
Since kernel 3.6, PCI-E v2.0 in '''radeon''' is turned on by default.<br />
<br />
It may be unstable with some motherboards, deactivation can be done by adding {{ic|1=radeon.pcie_gen2=0}} as a [[kernel parameters]].<br />
<br />
See [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article] for more information.<br />
<br />
=== Gallium Heads-Up Display ===<br />
<br />
The radeon driver supports activating a heads up display which can draw transparent graphs and text on top of applications that are rendering such as games. These can show such values as the current frame rate or the CPU load for each CPU core or an average of all of them. The HUD is controlled by the GALLIUM_HUD environment variable, and can be passed the following list of parameters among others:<br />
*"fps" - displays current frames per second<br />
*"cpu" - displays the average CPU load<br />
*"cpu0" - displays the CPU load for the first CPU core<br />
*"cpu0+cpu1" - displays the CPU load for the first two CPU cores<br />
*"draw-calls" - displays how many times each material in an object is drawn to the screen<br />
*"requested-VRAM" - displayed how much VRAM is being used on the GPU<br />
*"pixels-rendered" - displays how many pixels are being displayed<br />
<br />
To see a full list of parameters as well as some notes on operating GALLIUM_HUD you can also pass the "help" parameter to a simple application such as glxgears and see the corresponding terminal output:<br />
{{bc|1=# GALLIUM_HUD="help" glxgears }}<br />
<br />
More information can be found from this [http://lists.freedesktop.org/archives/mesa-dev/2013-March/036586.html mailing list post] or [https://kparal.wordpress.com/2014/03/03/fraps-like-fps-overlay-for-linux/ this blog post].<br />
<br />
== Hybrid graphics/AMD Dynamic Switchable Graphics ==<br />
<br />
It is the technology used on recent laptops equiped with two GPUs, one power-efficent (generally Intel integrated card) and one more powerful and more power-hungry (generally Radeon or Nvidia). There are two ways to get it work:<br />
<br />
* If it is not required to run 'GPU-hungry' applications, it is possible to disable the discrete card (see [https://help.ubuntu.com/community/HybridGraphics#Using_vga_switcheroo Ubuntu wiki]): {{ic|echo OFF > /sys/kernel/debug/vgaswitcheroo/switch}}.<br />
* [[PRIME]]: Is a proper way to use hybrid graphics on Linux, but still requires a bit of manual intervention from the user.<br />
<br />
== Powersaving ==<br />
{{Note|Power management is supported on all chips that include the appropriate power state tables in the vbios (R1xx and newer). "dpm" is only supported on R6xx and newer chips.}}<br />
<br />
With the radeon driver, power saving is disabled by default and has to be enabled manually if desired.<br />
<br />
You can choose between three different methods:<br />
<br />
# [[#Dynamic power management|dpm]] (enabled by default since kernel 3.13)<br />
# [[#Dynamic frequency switching|dynpm]]<br />
# [[#Profile-based frequency switching|profile]]<br />
<br />
'''It is hard to say which is the best for you, so you have to try it yourself!'''<br />
<br />
See http://www.x.org/wiki/RadeonFeature/#index3h2 for more details.<br />
<br />
=== Dynamic power management ===<br />
<br />
Since kernel 3.13, DPM is enabled by default for [http://kernelnewbies.org/Linux_3.13#head-f95c198f6fdc7defe36f470dc8369cf0e16898df lots of AMD Radeon hardware]. If you want to disable it, add the parameter {{ic|1=radeon.dpm=0}} to the [[kernel parameters]].<br />
<br />
Unlike [[#Dynamic frequency switching|dynpm]], the "dpm" method uses hardware on the GPU to dynamically change the clocks and voltage based on GPU load. It also enables clock and power gating.<br />
<br />
There are 3 operation modes to choose from:<br />
<br />
* {{ic|battery}} lowest power consumption<br />
* {{ic|balanced}} sane default<br />
* {{ic|performance}} highest performance<br />
<br />
They can be changed via sysfs<br />
# echo battery > /sys/class/drm/card0/device/power_dpm_state<br />
<br />
For testing or debugging purposes, you can force the card to run in a set performance mode:<br />
<br />
* {{ic|auto}} default; uses all levels in the power state<br />
* {{ic|low}} enforces the lowest performance level<br />
* {{ic|high}} enforces the highest performance level<br />
<br />
# echo low > /sys/class/drm/card0/device/power_dpm_force_performance_level<br />
<br />
=== Old methods ===<br />
<br />
==== Dynamic frequency switching ====<br />
<br />
This method dynamically changes the frequency depending on GPU load, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.<br />
<br />
It can be activated by simply running the following command:<br />
<br />
# echo dynpm > /sys/class/drm/card0/device/power_method<br />
<br />
==== Profile-based frequency switching ====<br />
<br />
This method will allow you to select one of the five profiles (described below). Different profiles, for the most part, end up changing the frequency/voltage of the GPU. This method is not as aggressive, but is more stable and flicker free and works with multiple heads active.<br />
<br />
To activate the method, run the following command:<br />
<br />
# echo profile > /sys/class/drm/card0/device/power_method<br />
<br />
Select one of the available profiles:<br />
* {{ic|default}} uses the default clocks and does not change the power state. This is the default behaviour.<br />
* {{ic|auto}} selects between {{ic|mid}} and {{ic|high}} power states based on the whether the system is on battery power or not.<br />
* {{ic|low}} forces the gpu to be in the {{ic|low}} power state all the time. Note that {{ic|low}} can cause display problems on some laptops, which is why {{ic|auto}} only uses {{ic|low}} when monitors are off. Selected on other profiles when the monitors are in the [[DPMS]]-off state.<br />
* {{ic|mid}} forces the gpu to be in the {{ic|mid}} power state all the time.<br />
* {{ic|high}} forces the gpu to be in the {{ic|high}} power state all the time.<br />
<br />
As an example, we will activate the {{ic|low}} profile (replace {{ic|low}} with any of the aforementioned profiles as necessary):<br />
<br />
# echo low > /sys/class/drm/card0/device/power_profile<br />
<br />
==== Persistent configuration ====<br />
<br />
The activation described above is not persistent, it will not last when the computer is rebooted. To make it persistent, you can use [[systemd#Temporary files|systemd-tmpfiles]] (example for [[#Dynamic frequency switching]]):<br />
<br />
{{hc|/etc/tmpfiles.d/radeon-pm.conf|<nowiki><br />
w /sys/class/drm/card0/device/power_method - - - - dynpm<br />
</nowiki>}}<br />
<br />
Alternatively, you may use this [[udev]] rule instead (example for [[#Profile-based frequency switching]]):<br />
<br />
{{hc|/etc/udev/rules.d/30-radeon-pm.rules|<nowiki><br />
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low"<br />
</nowiki>}}<br />
<br />
{{Note|If the above rule is failing, try removing the {{ic|dri/}} prefix.}}<br />
<br />
==== Graphical tools ====<br />
<br />
* {{App|Radeon-tray|A small program to control the power profiles of your Radeon card via systray icon. It is written in PyQt4 and is suitable for non-Gnome users.|https://github.com/StuntsPT/Radeon-tray|{{AUR|radeon-tray}}}}<br />
* {{App|power-play-switcher|A gui for changing powerplay setting of the open source driver for ati radeon video cards.|https://code.google.com/p/power-play-switcher/|{{AUR|power-play-switcher}}{{Broken package link|{{aur-mirror|power-play-switcher}}}}}}<br />
* {{App|Gnome-shell-extension-Radeon-Power-Profile-Manager|A small extension for Gnome-shell that will allow you to change the power profile of your radeon card when using the open source drivers.|https://github.com/StuntsPT/shell-extension-radeon-power-profile-manager|{{AUR|gnome-shell-extension-radeon-ppm}}{{Broken package link|{{aur-mirror|gnome-shell-extension-radeon-ppm}}}} {{AUR|gnome-shell-extension-radeon-power-profile-manager-git}}{{Broken package link|{{aur-mirror|gnome-shell-extension-radeon-power-profile-manager-git}}}}}}<br />
<br />
=== Other notes ===<br />
<br />
To view the speed that the GPU is running at, perform the following command and you will get something like this output:<br />
<br />
{{hc|# cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki><br />
state: PM_STATE_ENABLED<br />
default engine clock: 300000 kHz<br />
current engine clock: 300720 kHz<br />
default memory clock: 200000 kHz<br />
</nowiki>}}<br />
<br />
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.<br />
<br />
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via [[lm_sensors]] tools or via sysfs in {{ic|/sys/class/hwmon}}.<br />
<br />
== Fan Speed ==<br />
<br />
While the power saving features above should handle fan speeds quite well, some cards may still be too noisy in their idle state. In this case, and when your card supports it, you can change the fan speed manually.<br />
<br />
{{Note|<br />
* Keep in mind that the following method sets the fan speed to a fixed value, hence it will not adjust with the stress of your gpu, which can lead to overheating under heavy load.<br />
* Better check your gpu temperature when applying lower than standard values. <br />
}}<br />
<br />
First, issue the following command to enable the manual adjustment of the fan speed of your graphics card (or your first gpu in case of a multi gpu setup). <br />
<br />
# echo 1 > /sys/class/drm/card0/device/hwmon/hwmon2/pwm1_enable<br />
<br />
Then set your desired fan speed from 0 to 255, which corresponds to 0-100% fan speed (The following command sets it to roughly 20%). <br />
<br />
# echo 55 > /sys/class/drm/card0/device/hwmon/hwmon2/pwm1<br />
<br />
For persistence, use [[systemd#Temporary files|systemd-tmpfiles]] as shown above by the example with power profiles.<br />
<br />
If a fixed value isn't desired, there are possibilities to define a custom fan curve manually by, for example, writing a script in which fan speeds are set depending on the current temperature (current value in /sys/class/drm/card0/device/hwmon/hwmon2/temp1_input), preferably with hystereses. There is also a gui solution: http://github.com/marazmista/radeon-profile{{AUR|radeon-profile-git}}.<br />
<br />
== TV out ==<br />
<br />
First, check that you have an S-video output: {{ic|xrandr}} should give you something like<br />
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200<br />
...<br />
S-video disconnected (normal left inverted right x axis y axis)<br />
<br />
Now we should tell Xorg that it is actually connected (it ''is'', right?)<br />
xrandr --output S-video --set "load detection" 1<br />
<br />
Setting TV standard to use:<br />
xrandr --output S-video --set "tv standard" ntsc<br />
<br />
Adding a mode for it (currently supports only 800x600):<br />
xrandr --addmode S-video 800x600<br />
<br />
Clone mode:<br />
xrandr --output S-video --same-as VGA-0<br />
<br />
Now let us try to see what we have:<br />
xrandr --output S-video --mode 800x600<br />
<br />
At this point you should see a 800x600 version of your desktop on your TV.<br />
<br />
To disable the output, do<br />
xrandr --output S-video --off<br />
<br />
Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.<br />
<br />
To send the output to the TV, do:<br />
xvattr -a XV_CRTC -v 1<br />
<br />
{{Note| you need to install {{AUR|xvattr}}{{Broken package link|{{aur-mirror|xvattr}}}} to execute this command.}}<br />
<br />
To switch back to the monitor, I change this to {{ic|0}}. {{ic|-1}} is used for automatic switching in dualhead setups.<br />
<br />
Please see [http://www.x.org/wiki/radeonTV Enabling TV-Out Statically] for how to enable TV-out in your xorg configuration file.<br />
<br />
=== Force TV-out in KMS ===<br />
<br />
The kernel can recognize {{ic|1=video=}} parameter in following form (see [[KMS]] for more details):<br />
<br />
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]<br />
<br />
For example:<br />
<br />
video=DVI-I-1:1280x1024-24@60e<br />
<br />
Parameters with whitespaces must be quoted:<br />
<br />
"video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
Current mkinitcpio implementation also requires {{ic|#}} in front. For example:<br />
<br />
root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"<br />
<br />
* Grub can pass such command line as is.<br />
* Lilo needs backslashes for doublequotes (append {{ic|1=# \"video=9-pin DIN-1:1024x768-24@60e\"}})<br />
* Grub2: TODO<br />
<br />
You can get list of your video outputs with following command:<br />
<br />
{{bc|<nowiki>$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-</nowiki>}}<br />
<br />
== HDMI audio ==<br />
<br />
HDMI audio is supported in the {{Pkg|xf86-video-ati}} video driver. By default HDMI audio is disabled in the driver kernel versions >=3.0 because it can be problematic. To enable HDMI audio add {{ic|1=radeon.audio=1}} to your [[kernel parameters]].<br />
<br />
If there is no video after boot up, the driver option has to be disabled.<br />
<br />
{{Note|<br />
* If HDMI audio does not work after installing the driver, test your setup with the procedure at [[Advanced Linux Sound Architecture/Troubleshooting#HDMI Output does not work]].<br />
* If the sound is distorted in PulseAudio try setting {{ic|1=tsched=0}} as described in [[PulseAudio/Troubleshooting#Glitches, skips or crackling]] and make sure {{ic|rtkit}} daemon is running.<br />
* Your sound card might use the same module, since HDA compliant hardware is pretty common. [[Advanced_Linux_Sound_Architecture#Set_the_default_sound_card|Change the default sound card]] using one of the suggested methods, which include using the {{ic|defaults}} node in alsa configuration.<br />
}}<br />
<br />
== Dual Head setup ==<br />
<br />
=== Independent X screens ===<br />
<br />
Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a {{ic|"ZaphodHeads"}} option which allows you to bind a specific device section to an output of your choice, for instance using:<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "radeon"<br />
Option "ZaphodHeads" "VGA-0"<br />
VendorName "ATI"<br />
BusID "PCI:1:0:0"<br />
Screen 0<br />
EndSection<br />
<br />
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads" "VGA-0"}}.<br />
<br />
== Enabling video acceleration ==<br />
<br />
The {{Pkg|mesa-vdpau}} package added support for MPEG1/2 decoding to free drivers, exported via {{Pkg|libvdpau}} and are automatically detected.<br />
<br />
In case it did not automatically use it, you can force the use of the driver by assigning environment variable {{ic|LIBVA_DRIVER_NAME}} to {{ic|vdpau}} and {{ic|VDPAU_DRIVER}} to the name of driver core, e.g.:<br />
<br />
{{hc|1=~/.bashrc|2=<br />
export LIBVA_DRIVER_NAME=vdpau<br />
export VDPAU_DRIVER=r600<br />
}}<br />
<br />
for r600-based+ cards (all available VDPAU drivers are in {{ic|/usr/lib/vdpau/}}).<br />
<br />
If you own a [[wikipedia:Radeon_HD_7000_Series|Southern Islands]] (HD 7XXX) card or newer, the {{ic|VDPAU_DRIVER}} variable should be exported as {{ic|radeonsi}}:<br />
<br />
{{hc|1=~/.bashrc|2=<br />
export VDPAU_DRIVER=radeonsi<br />
}}<br />
<br />
Verify the new settings by using {{ic|vainfo}}:<br />
{{hc|$ vainfo|<nowiki><br />
libva info: VA-API version 0.38.0<br />
libva info: va_getDriverName() returns 0<br />
libva info: User requested driver 'vdpau'<br />
libva info: Trying to open /usr/lib/dri/vdpau_drv_video.so<br />
libva info: Found init function __vaDriverInit_0_35<br />
libva info: va_openDriver() returns 0<br />
vainfo: VA-API version: 0.38 (libva 1.6.0)<br />
vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA-API - 0.7.4<br />
vainfo: Supported profile and entrypoints<br />
VAProfileMPEG2Simple : VAEntrypointVLD<br />
VAProfileMPEG2Main : VAEntrypointVLD<br />
VAProfileMPEG4Simple : VAEntrypointVLD<br />
VAProfileMPEG4AdvancedSimple : VAEntrypointVLD<br />
VAProfileH264Baseline : VAEntrypointVLD<br />
VAProfileH264Main : VAEntrypointVLD<br />
VAProfileH264High : VAEntrypointVLD<br />
VAProfileVC1Advanced : VAEntrypointVLD</nowiki>}}<br />
<br />
== Turn vsync off ==<br />
<br />
The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create {{ic|~/.drirc}} (or edit it if it already exists) and add the following section:<br />
{{hc|~/.drirc|<nowiki><br />
<driconf><br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0" /><br />
</application><br />
</device><br />
<!-- Other devices ... --><br />
</driconf><br />
</nowiki>}}<br />
Make sure the driver is '''dri2''', not your video card code (like r600).<br />
<br />
If vsync is still enabled, you can try to disable it by editing the xf86-video-ati configuration :<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-radeon.con|<nowiki><br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "EXAVSync" "off"<br />
Option "SwapbuffersWait" "false" <br />
EndSection<br />
</nowiki>}}<br />
<br />
== Troubleshooting ==<br />
<br />
=== Artifacts upon logging in ===<br />
<br />
If encountering artifacts, first try starting X without {{ic|/etc/X11/xorg.conf}}. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured {{ic|xorg.conf}} files are known to cause trouble.<br />
<br />
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.<br />
<br />
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EXAPixmaps" "off"<br />
EndSection<br />
<br />
Further tweaking could be done by disabling {{ic|AccelDFS}}:<br />
<br />
Option "AccelDFS" "off"<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
Please see the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].<br />
<br />
=== AGP is disabled (with KMS) ===<br />
<br />
If you experience poor performance and dmesg shows something like this<br />
[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19<br />
then check if the agp driver for your motherboard (e.g., {{ic|via_agp}}, {{ic|intel_agp}} etc.) is loaded before the {{ic|radeon}} module, see [[#Enabling KMS|Enabling KMS]].<br />
<br />
=== TV showing a black border around the screen ===<br />
<br />
When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see [[Wikipedia:Overscan]]) can be turned off using xrandr:<br />
xrandr --output HDMI-0 --set underscan off<br />
<br />
=== Black screen with mouse cursor on resume from suspend in X ===<br />
<br />
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem. See [[#Performance tuning|performance tuning]] for more information.<br />
<br />
=== No desktop effects in KDE4 with X1300 and Radeon driver ===<br />
<br />
A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files {{ic|/usr/share/kde-settings/kde-profile/default/share/config/kwinrc}} and/or {{ic|.kde/share/config/kwinrc}}. <br />
<br />
Add:<br />
DisableChecks=true<br />
<br />
To the [Compositing] section. Ensure that compositing is enabled with:<br />
Enabled=true<br />
<br />
=== Black screen and no console, but X works in KMS ===<br />
<br />
This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:<br />
fbcon=map:1<br />
This will tell the fbcon to map itself to the {{ic|/dev/fb1}} framebuffer dev and not the {{ic|/dev/fb0}}, that in our case exist on the wrong graphics card. If that does not fix your problem, try booting with<br />
fbcon=map:0<br />
instead.<br />
<br />
=== 2D performance (e.g. scrolling) is slow ===<br />
<br />
If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add {{ic|Option "MigrationHeuristic" "greedy"}} into the {{ic|"Device"}} section of your {{ic|xorg.conf}} file.<br />
<br />
{{Note|This only applies to EXA.}}<br />
<br />
Below is a sample config file {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}:<br />
<br />
{{bc|<br />
Section "Device"<br />
Identifier "My Graphics Card"<br />
Driver "radeon"<br />
Option "MigrationHeuristic" "greedy"<br />
EndSection<br />
}}<br />
<br />
=== Monitor rotation works for cursor but not windows/content ===<br />
<br />
Users with newer graphics boards who have enabled EXA instead of glamor may find that rotating their monitor with xrandr causes the cursor and monitor dimensions to rotate, but windows and other content stay in their normal orientation. Additionally, the cursor moves according to normal rotation when the user moves the mouse. Look for the following line in your {{ic|/var/log/Xorg.0.log}} when you issue the xrandr rotate command:<br />
{{bc|<br />
(EE) RADEON(0): Rotation requires acceleration!<br />
}}<br />
Acceleration is disabled when using EXA on newer graphics cards (source: [https://bugs.freedesktop.org/show_bug.cgi?id=73420#c17 comment 17]). You must choose between enabling EXA ([[#Glamor|detailed above in the glamor section]]) and the ability to rotate.<br />
<br />
=== ATI X1600 (RV530 series) 3D application show black windows ===<br />
<br />
There are three possible solutions:<br />
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].<br />
* If this does not work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.<br />
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{pkg|driconf}} and set that option in {{ic|~/.drirc}}.<br />
<br />
=== Cursor corruption after coming out of sleep ===<br />
<br />
If the cursor becomes corrupted like it's repeating itself vertically after the monitor(s) comes out of sleep, set {{ic|"SWCursor" "True"}} in the {{ic|"Device"}} section of the {{ic|20-radeon.conf}} configuration file.<br />
<br />
=== DisplayPort stays black on multimonitor mode ===<br />
<br />
Try booting with the [[kernel parameter]] {{ic|1=radeon.audio=0}}.</div>Iuno