https://wiki.archlinux.org/api.php?action=feedcontributions&user=Smoneck&feedformat=atomArchWiki - User contributions [en]2024-03-29T12:14:21ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Intel_graphics&diff=730627Intel graphics2022-05-25T10:56:59Z<p>Smoneck: Added references for cstates and max_cstates kernel parameter</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[de:Intel]]<br />
[[es:Intel graphics]]<br />
[[fr:Intel graphics]]<br />
[[hu:Intel graphics]]<br />
[[ja:Intel Graphics]]<br />
[[ru:Intel graphics]]<br />
[[zh-hant:Intel graphics]]<br />
{{Related articles start}}<br />
{{Related|Intel GMA 3600}}<br />
{{Related|Xorg}}<br />
{{Related|Kernel mode setting}}<br />
{{Related|Xrandr}}<br />
{{Related|Hybrid graphics}}<br />
{{Related|Vulkan}}<br />
{{Related|GPGPU}}<br />
{{Related articles end}}<br />
<br />
Since Intel provides and supports open source drivers, Intel graphics are essentially plug-and-play.<br />
<br />
For a comprehensive list of Intel GPU models and corresponding chipsets and CPUs, see [[Wikipedia:List of Intel graphics processing units]] and [[Gentoo:Intel#Feature support]].<br />
<br />
{{Note|PowerVR-based graphics ([[Intel GMA 3600|GMA 3600]] series) are not supported by open source drivers.}}<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|mesa}} package, which provides the [[wikipedia:Direct_Rendering_Infrastructure|DRI]] driver for 3D acceleration.<br />
<br />
* For 32-bit application support, also install the {{Pkg|lib32-mesa}} package from the [[multilib]] repository.<br />
* For the [[wikipedia:X.Org_Server#DDX|DDX]] driver which provides 2D acceleration in [[Xorg]], install the {{Pkg|xf86-video-intel}} package. Beside this functionality, this package is generally not recommended, see note below.<br />
* For [[Vulkan]] support (''Ivy Bridge'' and newer), install the {{Pkg|vulkan-intel}} package.<br />
<br />
Also see [[Hardware video acceleration]].<br />
<br />
{{Note|1=Some ([https://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-Debian-Abandon-Intel-DDX Debian & Ubuntu], [https://www.phoronix.com/scan.php?page=news_item&px=Fedora-Xorg-Intel-DDX-Switch Fedora], [https://community.kde.org/Plasma/5.9_Errata#Intel_GPUs KDE]) recommend not installing the {{Pkg|xf86-video-intel}} driver, and instead falling back on the modesetting driver for Gen4 and newer GPUs (GMA 3000 from 2006 and newer). See [https://web.archive.org/web/20160714232204/https://www.reddit.com/r/archlinux/comments/4cojj9/it_is_probably_time_to_ditch_xf86videointel/], [https://www.phoronix.com/scan.php?page=article&item=intel-modesetting-2017&num=1], [[Xorg#Installation]], and {{man|4|modesetting}}. However, the modesetting driver can cause problems such as [https://bugs.chromium.org/p/chromium/issues/detail?id=370022 Chromium Issue 370022] and [https://gitlab.freedesktop.org/xorg/xserver/-/issues/928 vsync jitter/video stutter in mpv]. }}<br />
<br />
== Loading ==<br />
<br />
The Intel 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}} as a [[kernel parameter]], since Intel requires kernel mode-setting.<br />
* Also, check that you have not disabled Intel by using any modprobe blacklisting within {{ic|/etc/modprobe.d/}} or {{ic|/usr/lib/modprobe.d/}}.<br />
<br />
=== Enable early KMS ===<br />
<br />
[[Kernel mode setting]] (KMS) is supported by Intel chipsets that use the i915 DRM driver and is mandatory and enabled by default.<br />
<br />
Refer to [[Kernel mode setting#Early KMS start]] for instructions on how to enable KMS as soon as possible at the boot process.<br />
<br />
=== Enable GuC / HuC firmware loading ===<br />
<br />
Starting with Gen9 (Skylake and onwards), Intel GPUs include a ''Graphics micro (μ) Controller'' (GuC) which provides the following functionality [https://01.org/linuxgraphics/downloads/firmware]:<br />
* Offloading some media decoding functionality from the CPU to the ''HEVC/H.265 micro (µ) Controller'' (HuC). Only applicable if using {{Pkg|intel-media-driver}} for [[Hardware video acceleration|hardware video acceleration]]. Introduced with Gen9.<br />
* Using the GuC for scheduling, context submission, and power management. Introduced with Alder Lake-P (Mobile), within Gen12.<br />
<br />
To use this functionality, the GuC firmware must be loaded. With regards to HuC support, some video features (e.g. CBR rate control on SKL low-power encoding mode) require loading the HuC firmware as well [https://github.com/intel/media-driver#known-issues-and-limitations]. The GuC and HuC firmware files are both provided by {{Pkg|linux-firmware}}.<br />
<br />
GuC functionality is controlled by the {{ic|1=i915.enable_guc}} [[kernel parameter]]. Its usage is as follows:<br />
<br />
{| class="wikitable"<br />
! enable_guc value !! GuC Submission !! HuC Firmware Loading !! Default for platforms !! Supported on platforms<br />
|-<br />
|0 || {{No}} || {{No}} || Tiger Lake, Rocket Lake, and Pre-Gen12 [https://github.com/torvalds/linux/blob/b3454ce0b2c8a56e760e6baa88ed10278585072b/drivers/gpu/drm/i915/gt/uc/intel_uc.c#L26-L36] || All<br />
|-<br />
|1 || {{Yes}} || {{No}} || {{-}} || Alder Lake-P (Mobile) and newer<br />
|-<br />
|2 || {{No}} || {{Yes}} || Alder Lake-S (Desktop) [https://github.com/torvalds/linux/blob/b3454ce0b2c8a56e760e6baa88ed10278585072b/drivers/gpu/drm/i915/gt/uc/intel_uc.c#L38-L42] [https://lore.kernel.org/all/87ee6wit2r.fsf@intel.com/T/] || Gen9 and newer<br />
|-<br />
|3 || {{Yes}} || {{Yes}} || colspan="2" {{C|Alder Lake-P (Mobile) and newer}}<br />
|}<br />
<br />
If GuC submission or HuC firmware loading is not enabled by default for your GPU, you can manually enable it.<br />
<br />
{{Warning|1=Manually enabling GuC / HuC firmware loading taints the kernel [https://bugs.freedesktop.org/show_bug.cgi?id=111918 even when the feature is not supported]. Moreover, enabling GuC/HuC firmware loading can cause issues on some systems; disable it if you experience freezing (for example, after resuming from hibernation).}}<br />
<br />
Firstly, ensure that {{Pkg|linux-firmware}} is [[install]]ed.<br />
<br />
If your system is configured for late KMS start (default), you can manually enable these features by setting {{ic|1=i915.enable_guc}} as described in [[Kernel parameters]].<br />
<br />
Otherwise, if you have addded the {{ic|i915}} module (see [[Kernel mode setting#Early KMS start]]) to [[initramfs]], then you must instead set these options through a file in {{ic|/etc/modprobe.d/}}, e.g.:<br />
<br />
{{hc|/etc/modprobe.d/i915.conf|2=<br />
options i915 enable_guc=2<br />
}}<br />
<br />
And then [[Mkinitcpio#Manual_generation|rebuild your initramfs]].<br />
<br />
On next boot you can verify both GuC and HuC are enabled by using [[dmesg]]:<br />
<br />
{{hc|# dmesg|2=<br />
[30130.586970] i915 0000:00:02.0: [drm] GuC firmware i915/icl_guc_33.0.0.bin version 33.0 submission:disabled<br />
[30130.586973] i915 0000:00:02.0: [drm] HuC firmware i915/icl_huc_9.0.0.bin version 9.0 authenticated:yes<br />
}}<br />
<br />
If they are not supported by your graphics adapter you will see:<br />
<br />
{{hc|# dmesg|2=<br />
[ 0.571339] i915 0000:00:02.0: [drm] Incompatible option enable_guc=2 - GuC is not supported!<br />
[ 0.571340] i915 0000:00:02.0: [drm] Incompatible option enable_guc=2 - HuC is not supported!<br />
}}<br />
<br />
Alternatively, check using:<br />
<br />
# cat /sys/kernel/debug/dri/0/gt/uc/guc_info<br />
# cat /sys/kernel/debug/dri/0/gt/uc/huc_info<br />
<br />
{{Note|1=Using [[Intel GVT-g|GVT-g graphics virtualization]] by setting {{ic|1=enable_gvt=1}} is not supported as of linux 4.20.11 when GuC/HuC is also enabled. The i915 module would fail to initialize as shown in system journal.<br />
<br />
{{hc|# journalctl|<br />
... kernel: [drm:intel_gvt_init [i915]] *ERROR* i915 GVT-g loading failed due to Graphics virtualization is not yet supported with GuC submission<br />
... kernel: i915 0000:00:02.0: [drm:i915_driver_load [i915]] Device initialization failed (-5)<br />
... kernel: i915: probe of 0000:00:02.0 failed with error -5<br />
... kernel: snd_hda_intel 0000:00:1f.3: failed to add i915 component master (-19)<br />
}}<br />
<br />
Note that the related warning is not fatal, as explained in [https://github.com/intel/gvt-linux/issues/77#issuecomment-707541069]:<br />
<br />
{{hc|# journalctl -b |<br />
... kernel: i915 0000:00:02.0: Direct firmware load for i915/gvt/vid_0x8086_did_0x5916_rid_0x02.golden_hw_state failed with error -2<br />
}}<br />
}}<br />
<br />
== Xorg configuration ==<br />
<br />
{{Note|The following requires {{Pkg|xf86-video-intel}}.}}<br />
<br />
There may be no need for any configuration to run [[Xorg]].<br />
<br />
However, if [[Xorg]] does not start, and to take advantage of some driver options, you can create an Xorg configuration file similar to the one below:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|<br />
Section "Device"<br />
Identifier "Intel Graphics"<br />
Driver "intel"<br />
EndSection<br />
}}<br />
<br />
Additional options are added by the user on new lines below {{ic|Driver}}.<br />
For the full list of options, see the {{man|4|intel}} man page.<br />
<br />
{{Note|You might need to add more device sections than the one listed above. This will be indicated where necessary.}}<br />
<br />
=== AccelMethod ===<br />
<br />
You may need to indicate {{ic|Option "AccelMethod"}} when creating a configuration file, the classical options are {{ic|UXA}}, {{ic|SNA}} (default) and {{ic|BLT}}.<br />
<br />
If you experience issues with default {{ic|SNA}} (e.g. pixelated graphics, corrupt text, etc.), try using {{ic|UXA}} instead, which can be done by adding the following line to your [[#Xorg configuration|configuration file]]:<br />
<br />
Option "AccelMethod" "uxa"<br />
<br />
See the "AccelMethod" option under {{man|4|intel|CONFIGURATION DETAILS}}.<br />
<br />
== Module-based options ==<br />
<br />
The {{ic|i915}} kernel module allows for configuration via [[Kernel modules#Setting module options|module options]]. Some of the module options impact power saving.<br />
<br />
A list of all options along with short descriptions and default values can be generated with the following command:<br />
<br />
$ modinfo -p i915<br />
<br />
To check which options are currently enabled, run<br />
<br />
# systool -m i915 -av<br />
<br />
You will note that many options default to -1, resulting in per-chip powersaving defaults. It is however possible to configure more aggressive powersaving by using [[Kernel modules#Setting module options|module options]].<br />
<br />
{{Note|1=Diverting from the defaults will mark the kernel as [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=fc9740cebc3ab7c65f3c5f6ce0caf3e4969013ca tainted] from Linux 3.18 onwards. This basically implies using other options than the per-chip defaults is considered experimental and not supported by the developers. }}<br />
<br />
=== Framebuffer compression (enable_fbc) ===<br />
<br />
Making use of Framebuffer compression (FBC) can reduce power consumption while reducing memory bandwidth needed for screen refreshes.<br />
<br />
To enable FBC, use {{ic|1=i915.enable_fbc=1}} as [[kernel parameter]] or set in {{ic|/etc/modprobe.d/i915.conf}}:<br />
<br />
{{hc|/etc/modprobe.d/i915.conf|2=<br />
options i915 enable_fbc=1<br />
}}<br />
<br />
{{Note|Framebuffer compression may be unreliable or unavailable on Intel GPU generations before Sandy Bridge (generation 6). This results in messages logged to the system journal similar to this one:<br />
<br />
kernel: drm: not enough stolen space for compressed buffer, disabling.<br />
<br />
Enabling frame buffer compression on pre-Sandy Bridge CPUs results in endless error messages:<br />
<br />
{{hc|# dmesg|<br />
[ 2360.475430] [drm] not enough stolen space for compressed buffer (need 4325376 bytes), disabling<br />
[ 2360.475437] [drm] hint: you may be able to increase stolen memory size in the BIOS to avoid this<br />
}}<br />
<br />
The solution is to disable frame buffer compression which will imperceptibly increase power consumption (around 0.06 W). In order to disable it add {{ic|1=i915.enable_fbc=0}} to the kernel line parameters. More information on the results of disabled compression can be found [https://web.archive.org/web/20200228230053/https://kernel.ubuntu.com/~cking/power-benchmarking/background-colour-and-framebuffer-compression/ here].}}<br />
<br />
=== Fastboot ===<br />
<br />
{{Note|1=This parameter is enabled by default for Skylake and newer[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3d6535cbed4a4b029602ff83efb2adec7cb8d28b] as well as Bay- and Cherry-Trail (VLV/CHV)[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7360c9f6b857e22a48e545f4e99c79630994e932] since Linux 5.1.[https://kernelnewbies.org/Linux_5.1#Graphics]}}<br />
<br />
The goal of Intel Fastboot is to preserve the frame-buffer as setup by the BIOS or [[bootloader]] to avoid any flickering until [[Xorg]] has started.[https://lists.freedesktop.org/archives/intel-gfx/2012-May/017653.html][https://www.phoronix.com/scan.php?page=news_item&px=MTEwNzc]<br />
<br />
To force enable fastboot on platforms where it is not the default already, set {{ic|1=i915.fastboot=1}} as [[kernel parameter]] or set in {{ic|/etc/modprobe.d/i915.conf}}:<br />
<br />
{{hc|/etc/modprobe.d/i915.conf|2=<br />
options i915 fastboot=1<br />
}}<br />
<br />
=== Intel GVT-g graphics virtualization support ===<br />
<br />
See [[Intel GVT-g]] for details.<br />
<br />
=== Enable performance support ===<br />
<br />
{{Expansion|What does Mesa actually do using the performance counters? What's the effect of this? Some report drastic performance increases on Intel Tiger Lake, attributing it to a support for Dynamic Tuning [https://www.reddit.com/r/linux/comments/u7zxa0/psa_for_intel_tiger_lake_dynamic_tuning_laptops/].|section=Potential performance gains via Observation Architecture}}<br />
<br />
Starting with Gen6 (Sandy Bridge and onwards), Intel GPUs provide performance counters used for exposing internal performance data to drivers. The drivers and hardware registers refer to this infrastructure as the ''Observation Architecture'' (internally "OA") [https://www.phoronix.com/scan.php?page=news_item&px=Intel-HSW-Observation-Arch], but Intel's documentation also more generally refers to this functionality as providing ''Observability Performance Counters'' [https://01.org/sites/default/files/documentation/observability_performance_counters_haswell.pdf] [https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-skl-vol14-observability.pdf].<br />
<br />
By default, only programs running with the [https://lwn.net/Articles/486306/ CAP_SYS_ADMIN] (equivalent to root) or [https://lwn.net/Articles/812719/ CAP_PERFMON] [[capabilities]] can utilize the observation architecture [https://github.com/torvalds/linux/blob/b14ffae378aa1db993e62b01392e70d1e585fb23/drivers/gpu/drm/i915/i915_perf.c#L267] [https://github.com/torvalds/linux/blob/b14ffae378aa1db993e62b01392e70d1e585fb23/drivers/gpu/drm/i915/i915_perf.c#L3481-L3484]. Most applications will be running without either of these, resulting in the following warning:<br />
<br />
MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0<br />
<br />
To enable performance support without using the capabilities (or root), set the kernel parameter as described in [[sysctl]].<br />
<br />
{{Warning|The restrictive defaults of the {{ic|perf_event_paranoid}} family of options exists because there is risk associated with allowing applications to access performance data [https://www.kernel.org/doc/html/latest/admin-guide/perf-security.html]. With this being said, {{ic|dev.i915.perf_stream_paranoid}} only influences access to GPU performance counters, which carry less risk than e.g. CPU architectural execution context registers.}}<br />
<br />
If setting the value to 0 in a {{ic|/etc/sysctl.d/*.conf}} file results in the following error at boot:<br />
<br />
sysctl: cannot stat /proc/sys/dev/i915/perf_stream_paranoid: No such file or directory<br />
<br />
you should load the {{ic|i915}} module [[#Enable early KMS|early with KMS]].<br />
<br />
== Tips and tricks ==<br />
<br />
=== Setting scaling mode ===<br />
<br />
This can be useful for some full screen applications:<br />
<br />
$ xrandr --output LVDS1 --set PANEL_FITTING ''param''<br />
<br />
where {{ic|''param''}} can be:<br />
<br />
* {{ic|center}}: resolution will be kept exactly as defined, no scaling will be made,<br />
* {{ic|full}}: scale the resolution so it uses the entire screen or<br />
* {{ic|full_aspect}}: scale the resolution to the maximum possible but keep the aspect ratio.<br />
<br />
If it does not work, try:<br />
<br />
$ xrandr --output LVDS1 --set "scaling mode" ''param''<br />
<br />
where {{ic|''param''}} is one of {{ic|"Full"}}, {{ic|"Center"}} or {{ic|"Full aspect"}}.<br />
<br />
{{Note|1=This option currently does not work for external displays (e.g. VGA, DVI, HDMI, DP). [https://bugs.freedesktop.org/show_bug.cgi?id=90989]}}<br />
<br />
=== Hardware accelerated H.264 decoding on GMA 4500 ===<br />
<br />
The {{Pkg|libva-intel-driver}} package only provides hardware accelerated MPEG-2 decoding – and not H.264 decoding – for some GMA 4500 series GPUs. To check whether that affects your particular GPU, install both that driver and the {{Pkg|libva-utils}} package, then check the output of the {{ic|vainfo}} tool for the presence of entries that start with {{ic|VAProfileH264}}.<br />
<br />
The H.264 decoding support is maintained in a separated g45-h264 branch, which can be used by installing {{AUR|libva-intel-driver-g45-h264}} package. Note, however, that this support is experimental and its development has been abandoned. Using the VA-API with this driver on a GMA 4500 series GPU will offload the CPU but may not result in as smooth a playback as non-accelerated playback. Tests using mplayer showed that using vaapi to play back an H.264 encoded 1080p video halved the CPU load (compared to the XV overlay) but resulted in very choppy playback, while 720p worked reasonably well [https://bbs.archlinux.org/viewtopic.php?id=150550]. This is echoed by other experiences [https://web.archive.org/web/20160325142959/http://www.emmolution.org/?p=192&cpage=1#comment-12292]. Setting the preallocated video ram size higher in BIOS results in much better hardware decoded playback. Even 1080p h264 works well if this is done[https://lists.libreplanet.org/archive/html/guix-patches/2019-11/msg00652.html]. Smooth playback (1080p/720p) works also with {{AUR|mpv-git}} in combination with {{AUR|ffmpeg-git}} and {{AUR|libva-intel-driver-g45-h264}}. With MPV and the Firefox plugin "Send to MPV player"[https://addons.mozilla.org/firefox/addon/send-to-mpv-player/] it is possible to watch hardware accelerated YouTube videos.<br />
<br />
=== Old OpenGL driver (i965) ===<br />
<br />
In Mesa 20.0, a new OpenGL driver, Iris, is promoted to be the default for Gen8+. Certain applications run faster with it. You may disable it and revert to use the old i965 driver by setting the {{ic|1=MESA_LOADER_DRIVER_OVERRIDE=i965}} [[environment variable]] before starting any OpenGL application. This setting does not affect Vulkan applications.<br />
<br />
{{Note|1=Report bugs and regressions regarding the Iris driver [https://gitlab.freedesktop.org/mesa/mesa/issues here].}}<br />
<br />
=== Overriding reported OpenGL version ===<br />
<br />
The {{ic|MESA_GL_VERSION_OVERRIDE}} [[environment variable]] can be used to override the reported OpenGL version to any application. For example, setting {{ic|1=MESA_GL_VERSION_OVERRIDE=4.5}} will report OpenGL 4.5.<br />
<br />
{{Note|You can use this variable to report any known OpenGL version, even if it is not supported by the GPU. Some applications might no longer crash, some may start crashing - you probably do not want to set this variable globally.}}<br />
<br />
=== Viewing GPU usage ===<br />
<br />
See the tip regarding Intel GPUs in [[Hardware video acceleration#Verification]].<br />
<br />
=== Setting brightness and gamma ===<br />
<br />
See [[Backlight]].<br />
<br />
== Troubleshooting ==<br />
<br />
=== Tearing ===<br />
<br />
The SNA acceleration method causes tearing on some machines. To fix this, enable the {{ic|TearFree}} option in the driver by adding the following line to your [[#Xorg configuration|configuration file]]:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|<br />
Section "Device"<br />
Identifier "Intel Graphics"<br />
Driver "intel"<br />
Option "TearFree" "true"<br />
EndSection}}<br />
<br />
See the [https://bugs.freedesktop.org/show_bug.cgi?id=37686 original bug report] for more info.<br />
<br />
{{Note|1=<nowiki/><br />
* This option may not work when {{ic|SwapbuffersWait}} is {{ic|false}}.<br />
* This option may increase memory allocation considerably and reduce performance. [https://bugs.freedesktop.org/show_bug.cgi?id=37686#c123]<br />
* This option is problematic for applications that are very picky about vsync timing, like [[Wikipedia:Super Meat Boy|Super Meat Boy]].<br />
* This option does not work with UXA acceleration method, only with SNA.<br />
* For Intel UHD 620 or 630 you will need to add {{ic|Option "TripleBuffer" "true"}} in order for {{ic|TearFree}} to work.<br />
}}<br />
<br />
=== Disable Vertical Synchronization (VSYNC) ===<br />
<br />
Useful when:<br />
<br />
* Chomium/Chrome has lags and slow performance due to GPU and runs smoothly with --disable-gpu switch<br />
* glxgears test does not show desired performance<br />
<br />
The intel-driver uses [https://www.intel.com/support/graphics/sb/CS-004527.htm Triple Buffering] for vertical synchronization; this allows for full performance and avoids tearing. To turn vertical synchronization off (e.g. for benchmarking) use this {{ic|.drirc}} in your home directory:<br />
<br />
{{hc|~/.drirc|2=<br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0"/><br />
</application><br />
</device><br />
}}<br />
<br />
{{Note|Do not use {{AUR|driconf}} to create this file. It is buggy and will set the wrong driver.}}<br />
<br />
=== DRI3 issues ===<br />
<br />
''DRI3'' is the default DRI version in {{Pkg|xf86-video-intel}}. On some systems this can cause issues such as [https://bugs.chromium.org/p/chromium/issues/detail?id=370022 this]. To switch back to ''DRI2'' add the following line to your [[#Xorg configuration|configuration file]]:<br />
<br />
Option "DRI" "2"<br />
<br />
For the {{ic|modesetting}} driver, this method of disabling DRI3 does not work. Instead, one can set the environment variable {{ic|1=LIBGL_DRI3_DISABLE=1}}.<br />
<br />
=== Font and screen corruption in GTK applications (missing glyphs after suspend/resume) ===<br />
<br />
Should you experience missing font glyphs in GTK applications, the following workaround might help. [[textedit|Edit]] {{ic|/etc/environment}} to add the following line:<br />
<br />
{{hc|/etc/environment|output=<br />
COGL_ATLAS_DEFAULT_BLIT_MODE=framebuffer<br />
}}<br />
<br />
See also [https://bugs.freedesktop.org/show_bug.cgi?id=88584 FreeDesktop bug 88584].<br />
<br />
=== Blank screen during boot, when "Loading modules" ===<br />
<br />
If using "late start" KMS and the screen goes blank when "Loading modules", it may help to add {{ic|i915}} and {{ic|intel_agp}} to the initramfs. See [[Kernel mode setting#Early KMS start]] section.<br />
<br />
Alternatively, appending the following [[kernel parameter]] seems to work as well:<br />
<br />
video=SVIDEO-1:d<br />
<br />
If you need to output to VGA then try this:<br />
<br />
video=VGA-1:1280x800<br />
<br />
=== X freeze/crash with intel driver ===<br />
<br />
Some issues with X crashing, GPU hanging, or problems with X freezing, can be fixed by disabling the GPU usage with the {{ic|NoAccel}} option - add the following lines to your [[#Xorg configuration|configuration file]]:<br />
<br />
Option "NoAccel" "True"<br />
<br />
Alternatively, try to disable the 3D acceleration only with the {{ic|DRI}} option:<br />
<br />
Option "DRI" "False"<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
This issue is covered on the [[Xrandr#Adding undetected resolutions|Xrandr page]].<br />
<br />
=== Backlight is not adjustable ===<br />
<br />
If after resuming from suspend, the hotkeys for changing the screen brightness do not take effect, check your configuration against the [[Backlight]] article.<br />
<br />
If the problem persists, try one of the following [[kernel parameters]]:<br />
<br />
acpi_osi=Linux<br />
acpi_osi="!Windows 2012"<br />
acpi_osi=<br />
<br />
Also make sure you are not using fastboot mode ({{ic|i915.fastboot}} kernel parameter), it is [https://www.phoronix.com/forums/forum/software/mobile-linux/1066447-arch-linux-users-with-intel-graphics-can-begin-enjoying-a-flicker-free-boot known] for breaking backlight controls.<br />
<br />
=== Corruption or unresponsiveness in Chromium and Firefox ===<br />
<br />
If you experience corruption, unresponsiveness, lags or slow performance in Chromium and/or Firefox some possible solutions are:<br />
<br />
* [[#AccelMethod|Set the AccelMethod to "uxa"]]<br />
* [[#Disable Vertical Synchronization (VSYNC)|Disable VSYNC]]<br />
* [[#Tearing|Enable the TearFree option]]<br />
* Disable "DRI" and acceleration method (tested on Intel Iris 10th generation): {{bc|<nowiki><br />
Option "NoAccel" "True"<br />
Option "DRI" "False"<br />
</nowiki>}}<br />
<br />
=== Kernel crashing w/kernels 4.0+ on Broadwell/Core-M chips ===<br />
<br />
A few seconds after X/Wayland loads the machine will freeze and [[journalctl]] will log a kernel crash referencing the Intel graphics as below:<br />
<br />
Jun 16 17:54:03 hostname kernel: BUG: unable to handle kernel NULL pointer dereference at (null)<br />
Jun 16 17:54:03 hostname kernel: IP: [< (null)>] (null)<br />
...<br />
Jun 16 17:54:03 hostname kernel: CPU: 0 PID: 733 Comm: gnome-shell Tainted: G U O 4.0.5-1-ARCH #1<br />
...<br />
Jun 16 17:54:03 hostname kernel: Call Trace:<br />
Jun 16 17:54:03 hostname kernel: [<ffffffffa055cc27>] ? i915_gem_object_sync+0xe7/0x190 [i915]<br />
Jun 16 17:54:03 hostname kernel: [<ffffffffa0579634>] intel_execlists_submission+0x294/0x4c0 [i915]<br />
Jun 16 17:54:03 hostname kernel: [<ffffffffa05539fc>] i915_gem_do_execbuffer.isra.12+0xabc/0x1230 [i915]<br />
Jun 16 17:54:03 hostname kernel: [<ffffffffa055d349>] ? i915_gem_object_set_to_cpu_domain+0xa9/0x1f0 [i915]<br />
Jun 16 17:54:03 hostname kernel: [<ffffffff811ba2ae>] ? __kmalloc+0x2e/0x2a0<br />
Jun 16 17:54:03 hostname kernel: [<ffffffffa0555471>] i915_gem_execbuffer2+0x141/0x2b0 [i915]<br />
Jun 16 17:54:03 hostname kernel: [<ffffffffa042fcab>] drm_ioctl+0x1db/0x640 [drm]<br />
Jun 16 17:54:03 hostname kernel: [<ffffffffa0555330>] ? i915_gem_execbuffer+0x450/0x450 [i915]<br />
Jun 16 17:54:03 hostname kernel: [<ffffffff8122339b>] ? eventfd_ctx_read+0x16b/0x200<br />
Jun 16 17:54:03 hostname kernel: [<ffffffff811ebc36>] do_vfs_ioctl+0x2c6/0x4d0<br />
Jun 16 17:54:03 hostname kernel: [<ffffffff811f6452>] ? __fget+0x72/0xb0<br />
Jun 16 17:54:03 hostname kernel: [<ffffffff811ebec1>] SyS_ioctl+0x81/0xa0<br />
Jun 16 17:54:03 hostname kernel: [<ffffffff8157a589>] system_call_fastpath+0x12/0x17<br />
Jun 16 17:54:03 hostname kernel: Code: Bad RIP value.<br />
Jun 16 17:54:03 hostname kernel: RIP [< (null)>] (null)<br />
<br />
This can be fixed by disabling execlist support which was changed to default on with kernel 4.0. Add the following [[kernel parameter]]:<br />
<br />
i915.enable_execlists=0<br />
<br />
This is known to be broken to at least kernel 4.0.5.<br />
<br />
=== Lag in Windows guests ===<br />
<br />
The video output of a Windows guest in VirtualBox sometimes hangs until the host forces a screen update (e.g. by moving the mouse cursor). Removing the {{ic|1=enable_fbc=1}} option fixes this issue.<br />
<br />
=== Screen flickering ===<br />
<br />
Panel Self Refresh (PSR), a power saving feature used by Intel iGPUs is known to cause flickering in some instances {{Bug|49628}} {{Bug|49371}} {{Bug|50605}}. A temporary solution is to disable this feature using the [[kernel parameter]] {{ic|1=i915.enable_psr=0}}.<br />
<br />
=== OpenGL 2.1 with i915 driver ===<br />
<br />
The update of {{Pkg|mesa}} from version 13.x to 17 may break support for OpenGL 2.1 on third gen Intel GPUs (GMA3100, see [[wikipedia:List_of_Intel_graphics_processing_units#Third_generation|here]]), as described in this [https://www.phoronix.com/scan.php?page=news_item&px=Mesa-i915-OpenGL-2-Drop article], reverting it back to OpenGL 1.4. However this could be restored manually by setting {{ic|/etc/drirc}} or {{ic|~/.drirc}} options like:<br />
<br />
{{hc|/etc/drirc|output=<br />
<driconf><br />
...<br />
<device driver="i915"><br />
<application name="Default"><br />
<option name="'''stub_occlusion_query'''" value="'''true'''" /><br />
<option name="'''fragment_shader'''" value="'''true'''" /><br />
</application><br />
</device><br />
...<br />
</driconf><br />
}}<br />
<br />
{{Note|The reason of this step back was Chromium and other applications' bad experience. If needed, you might edit the drirc file in a "app-specific" style, see [https://dri.freedesktop.org/wiki/ConfigurationInfrastructure/ here], to disable gl2.1 on executable chromium for instance.}}<br />
<br />
=== KMS Issue: console is limited to small area ===<br />
<br />
One of the low-resolution video ports may be enabled on boot which is causing the terminal to utilize a small area of the screen. To fix, explicitly disable the port with an i915 module setting with {{ic|1=video=SVIDEO-1:d}} in the kernel command line parameter in the bootloader. See [[Kernel parameters]] for more info.<br />
<br />
If that does not work, try disabling TV1 or VGA1 instead of SVIDEO-1. Video port names can be listed with [[xrandr]].<br />
<br />
=== No sound through HDMI on a Haswell CPU ===<br />
<br />
According to a [https://bugzilla.kernel.org/show_bug.cgi?id=60769 Linux kernel issue], sound will not be output through HDMI if {{ic|1=intel_iommu=on}}. To fix this problem, use the following [[kernel parameter]]:<br />
<br />
intel_iommu=on,igfx_off<br />
<br />
Or alternatively, disable IOMMU:<br />
<br />
intel_iommu=off<br />
<br />
=== Crash/freeze on low power Intel CPUs ===<br />
<br />
Low-powered Intel processors and/or laptop processors have a tendency to randomly hang or crash due to the problems with the power management features found in low-power Intel chips. If such a crash happens, you will not see any logs reporting this problem. Adding the following [[Kernel parameters]] may help to resolve the problem.<br />
{{Note|It is not advised to use all three of the below kernel parameters together.}}<br />
intel_idle.max_cstate=1 i915.enable_dc=0 ahci.mobile_lpm_policy=1<br />
<br />
{{ic|1=ahci.mobile_lpm_policy=1}} fixes a hang on several Lenovo laptops and some Acer notebooks due to problematic SATA controller power management. That workaround is strictly not related to Intel graphics but it does solve related issues. Adding this kernel parameter sets the ''l''ink ''p''ower ''m''anagement from firmware default to maximum performance and will also solve hangs when you change display brightness on certain Lenovo machines but increases idle power consumption by 1-1.5 W on modern ultrabooks. For further information, esp. about the other states, see here[https://patchwork.ozlabs.org/project/ubuntu-kernel/patch/20180328115956.16862-1-kai.heng.feng@canonical.com/] and here[https://access.redhat.com/documentation/en-en/red_hat_enterprise_linux/6/html/power_management_guide/alpm].<br />
<br />
{{ic|1=i915.enable_dc=0}} disables GPU power management. This does solve random hangs on certain Intel systems, notably Goldmount and Kaby Lake Refresh chips. Using this parameter does result in higher power use and shorter battery life on laptops/notebooks.<br />
<br />
{{ic|1=intel_idle.max_cstate=1}} limits the processors sleep states, it prevents the processor from going into deep sleep states. That is absolutely not ideal and does result in higher power use and lower battery life. However, it does solve random hangs on many Intel systems. Use this if you have a Intel Baytrail or a Kaby Lake Refresh chip. Intel "Baytrail" chips are known to randomly hang without this kernel parameter due to a hardware flaw[https://bugzilla.kernel.org/show_bug.cgi?id=109051#c752].<br />
More information about the max_cstate parameter can be found here[https://www.kernel.org/doc/html/latest/admin-guide/pm/intel_idle.html#kernel-command-line-options-and-module-parameters] and about the cstates in general here[https://gist.github.com/wmealing/2dd2b543c4d3cff6cab7].<br />
<br />
If you try adding {{ic|1=intel_idle.max_cstate=1 i915.enable_dc=0 ahci.mobile_lpm_policy=1}} in the hope of fixing frequent hangs and that solves the issue you should later remove one by one to see which of them actually helped you solve the issue. Running with cstates and display power management disabled is not advisable if the actual problem is related to SATA power management and {{ic|1=ahci.mobile_lpm_policy=1}} is the one that actually solves it.<br />
<br />
Check [https://linuxreviews.org/Intel_graphics#Kernel_Parameters Linux Reviews] for more details.<br />
<br />
=== Add support for 165Hz monitor ===<br />
<br />
For some 165Hz monitors, ''xrandr'' might not display the 165Hz option, and the fix in [[#Adding undetected resolutions]] does not solve this. In this case, see [https://unix.stackexchange.com/questions/680356/i915-driver-stuck-at-40hz-on-165hz-screen i915-driver-stuck-at-40hz-on-165hz-screen].<br />
<br />
== See also ==<br />
<br />
* https://01.org/linuxgraphics/documentation (includes a list of supported hardware)</div>Smoneckhttps://wiki.archlinux.org/index.php?title=Intel_graphics&diff=730625Intel graphics2022-05-25T10:42:32Z<p>Smoneck: Added references and background for sata lpm kernel parameter</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[de:Intel]]<br />
[[es:Intel graphics]]<br />
[[fr:Intel graphics]]<br />
[[hu:Intel graphics]]<br />
[[ja:Intel Graphics]]<br />
[[ru:Intel graphics]]<br />
[[zh-hant:Intel graphics]]<br />
{{Related articles start}}<br />
{{Related|Intel GMA 3600}}<br />
{{Related|Xorg}}<br />
{{Related|Kernel mode setting}}<br />
{{Related|Xrandr}}<br />
{{Related|Hybrid graphics}}<br />
{{Related|Vulkan}}<br />
{{Related|GPGPU}}<br />
{{Related articles end}}<br />
<br />
Since Intel provides and supports open source drivers, Intel graphics are essentially plug-and-play.<br />
<br />
For a comprehensive list of Intel GPU models and corresponding chipsets and CPUs, see [[Wikipedia:List of Intel graphics processing units]] and [[Gentoo:Intel#Feature support]].<br />
<br />
{{Note|PowerVR-based graphics ([[Intel GMA 3600|GMA 3600]] series) are not supported by open source drivers.}}<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|mesa}} package, which provides the [[wikipedia:Direct_Rendering_Infrastructure|DRI]] driver for 3D acceleration.<br />
<br />
* For 32-bit application support, also install the {{Pkg|lib32-mesa}} package from the [[multilib]] repository.<br />
* For the [[wikipedia:X.Org_Server#DDX|DDX]] driver which provides 2D acceleration in [[Xorg]], install the {{Pkg|xf86-video-intel}} package. Beside this functionality, this package is generally not recommended, see note below.<br />
* For [[Vulkan]] support (''Ivy Bridge'' and newer), install the {{Pkg|vulkan-intel}} package.<br />
<br />
Also see [[Hardware video acceleration]].<br />
<br />
{{Note|1=Some ([https://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-Debian-Abandon-Intel-DDX Debian & Ubuntu], [https://www.phoronix.com/scan.php?page=news_item&px=Fedora-Xorg-Intel-DDX-Switch Fedora], [https://community.kde.org/Plasma/5.9_Errata#Intel_GPUs KDE]) recommend not installing the {{Pkg|xf86-video-intel}} driver, and instead falling back on the modesetting driver for Gen4 and newer GPUs (GMA 3000 from 2006 and newer). See [https://web.archive.org/web/20160714232204/https://www.reddit.com/r/archlinux/comments/4cojj9/it_is_probably_time_to_ditch_xf86videointel/], [https://www.phoronix.com/scan.php?page=article&item=intel-modesetting-2017&num=1], [[Xorg#Installation]], and {{man|4|modesetting}}. However, the modesetting driver can cause problems such as [https://bugs.chromium.org/p/chromium/issues/detail?id=370022 Chromium Issue 370022] and [https://gitlab.freedesktop.org/xorg/xserver/-/issues/928 vsync jitter/video stutter in mpv]. }}<br />
<br />
== Loading ==<br />
<br />
The Intel 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}} as a [[kernel parameter]], since Intel requires kernel mode-setting.<br />
* Also, check that you have not disabled Intel by using any modprobe blacklisting within {{ic|/etc/modprobe.d/}} or {{ic|/usr/lib/modprobe.d/}}.<br />
<br />
=== Enable early KMS ===<br />
<br />
[[Kernel mode setting]] (KMS) is supported by Intel chipsets that use the i915 DRM driver and is mandatory and enabled by default.<br />
<br />
Refer to [[Kernel mode setting#Early KMS start]] for instructions on how to enable KMS as soon as possible at the boot process.<br />
<br />
=== Enable GuC / HuC firmware loading ===<br />
<br />
Starting with Gen9 (Skylake and onwards), Intel GPUs include a ''Graphics micro (μ) Controller'' (GuC) which provides the following functionality [https://01.org/linuxgraphics/downloads/firmware]:<br />
* Offloading some media decoding functionality from the CPU to the ''HEVC/H.265 micro (µ) Controller'' (HuC). Only applicable if using {{Pkg|intel-media-driver}} for [[Hardware video acceleration|hardware video acceleration]]. Introduced with Gen9.<br />
* Using the GuC for scheduling, context submission, and power management. Introduced with Alder Lake-P (Mobile), within Gen12.<br />
<br />
To use this functionality, the GuC firmware must be loaded. With regards to HuC support, some video features (e.g. CBR rate control on SKL low-power encoding mode) require loading the HuC firmware as well [https://github.com/intel/media-driver#known-issues-and-limitations]. The GuC and HuC firmware files are both provided by {{Pkg|linux-firmware}}.<br />
<br />
GuC functionality is controlled by the {{ic|1=i915.enable_guc}} [[kernel parameter]]. Its usage is as follows:<br />
<br />
{| class="wikitable"<br />
! enable_guc value !! GuC Submission !! HuC Firmware Loading !! Default for platforms !! Supported on platforms<br />
|-<br />
|0 || {{No}} || {{No}} || Tiger Lake, Rocket Lake, and Pre-Gen12 [https://github.com/torvalds/linux/blob/b3454ce0b2c8a56e760e6baa88ed10278585072b/drivers/gpu/drm/i915/gt/uc/intel_uc.c#L26-L36] || All<br />
|-<br />
|1 || {{Yes}} || {{No}} || {{-}} || Alder Lake-P (Mobile) and newer<br />
|-<br />
|2 || {{No}} || {{Yes}} || Alder Lake-S (Desktop) [https://github.com/torvalds/linux/blob/b3454ce0b2c8a56e760e6baa88ed10278585072b/drivers/gpu/drm/i915/gt/uc/intel_uc.c#L38-L42] [https://lore.kernel.org/all/87ee6wit2r.fsf@intel.com/T/] || Gen9 and newer<br />
|-<br />
|3 || {{Yes}} || {{Yes}} || colspan="2" {{C|Alder Lake-P (Mobile) and newer}}<br />
|}<br />
<br />
If GuC submission or HuC firmware loading is not enabled by default for your GPU, you can manually enable it.<br />
<br />
{{Warning|1=Manually enabling GuC / HuC firmware loading taints the kernel [https://bugs.freedesktop.org/show_bug.cgi?id=111918 even when the feature is not supported]. Moreover, enabling GuC/HuC firmware loading can cause issues on some systems; disable it if you experience freezing (for example, after resuming from hibernation).}}<br />
<br />
Firstly, ensure that {{Pkg|linux-firmware}} is [[install]]ed.<br />
<br />
If your system is configured for late KMS start (default), you can manually enable these features by setting {{ic|1=i915.enable_guc}} as described in [[Kernel parameters]].<br />
<br />
Otherwise, if you have addded the {{ic|i915}} module (see [[Kernel mode setting#Early KMS start]]) to [[initramfs]], then you must instead set these options through a file in {{ic|/etc/modprobe.d/}}, e.g.:<br />
<br />
{{hc|/etc/modprobe.d/i915.conf|2=<br />
options i915 enable_guc=2<br />
}}<br />
<br />
And then [[Mkinitcpio#Manual_generation|rebuild your initramfs]].<br />
<br />
On next boot you can verify both GuC and HuC are enabled by using [[dmesg]]:<br />
<br />
{{hc|# dmesg|2=<br />
[30130.586970] i915 0000:00:02.0: [drm] GuC firmware i915/icl_guc_33.0.0.bin version 33.0 submission:disabled<br />
[30130.586973] i915 0000:00:02.0: [drm] HuC firmware i915/icl_huc_9.0.0.bin version 9.0 authenticated:yes<br />
}}<br />
<br />
If they are not supported by your graphics adapter you will see:<br />
<br />
{{hc|# dmesg|2=<br />
[ 0.571339] i915 0000:00:02.0: [drm] Incompatible option enable_guc=2 - GuC is not supported!<br />
[ 0.571340] i915 0000:00:02.0: [drm] Incompatible option enable_guc=2 - HuC is not supported!<br />
}}<br />
<br />
Alternatively, check using:<br />
<br />
# cat /sys/kernel/debug/dri/0/gt/uc/guc_info<br />
# cat /sys/kernel/debug/dri/0/gt/uc/huc_info<br />
<br />
{{Note|1=Using [[Intel GVT-g|GVT-g graphics virtualization]] by setting {{ic|1=enable_gvt=1}} is not supported as of linux 4.20.11 when GuC/HuC is also enabled. The i915 module would fail to initialize as shown in system journal.<br />
<br />
{{hc|# journalctl|<br />
... kernel: [drm:intel_gvt_init [i915]] *ERROR* i915 GVT-g loading failed due to Graphics virtualization is not yet supported with GuC submission<br />
... kernel: i915 0000:00:02.0: [drm:i915_driver_load [i915]] Device initialization failed (-5)<br />
... kernel: i915: probe of 0000:00:02.0 failed with error -5<br />
... kernel: snd_hda_intel 0000:00:1f.3: failed to add i915 component master (-19)<br />
}}<br />
<br />
Note that the related warning is not fatal, as explained in [https://github.com/intel/gvt-linux/issues/77#issuecomment-707541069]:<br />
<br />
{{hc|# journalctl -b |<br />
... kernel: i915 0000:00:02.0: Direct firmware load for i915/gvt/vid_0x8086_did_0x5916_rid_0x02.golden_hw_state failed with error -2<br />
}}<br />
}}<br />
<br />
== Xorg configuration ==<br />
<br />
{{Note|The following requires {{Pkg|xf86-video-intel}}.}}<br />
<br />
There may be no need for any configuration to run [[Xorg]].<br />
<br />
However, if [[Xorg]] does not start, and to take advantage of some driver options, you can create an Xorg configuration file similar to the one below:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|<br />
Section "Device"<br />
Identifier "Intel Graphics"<br />
Driver "intel"<br />
EndSection<br />
}}<br />
<br />
Additional options are added by the user on new lines below {{ic|Driver}}.<br />
For the full list of options, see the {{man|4|intel}} man page.<br />
<br />
{{Note|You might need to add more device sections than the one listed above. This will be indicated where necessary.}}<br />
<br />
=== AccelMethod ===<br />
<br />
You may need to indicate {{ic|Option "AccelMethod"}} when creating a configuration file, the classical options are {{ic|UXA}}, {{ic|SNA}} (default) and {{ic|BLT}}.<br />
<br />
If you experience issues with default {{ic|SNA}} (e.g. pixelated graphics, corrupt text, etc.), try using {{ic|UXA}} instead, which can be done by adding the following line to your [[#Xorg configuration|configuration file]]:<br />
<br />
Option "AccelMethod" "uxa"<br />
<br />
See the "AccelMethod" option under {{man|4|intel|CONFIGURATION DETAILS}}.<br />
<br />
== Module-based options ==<br />
<br />
The {{ic|i915}} kernel module allows for configuration via [[Kernel modules#Setting module options|module options]]. Some of the module options impact power saving.<br />
<br />
A list of all options along with short descriptions and default values can be generated with the following command:<br />
<br />
$ modinfo -p i915<br />
<br />
To check which options are currently enabled, run<br />
<br />
# systool -m i915 -av<br />
<br />
You will note that many options default to -1, resulting in per-chip powersaving defaults. It is however possible to configure more aggressive powersaving by using [[Kernel modules#Setting module options|module options]].<br />
<br />
{{Note|1=Diverting from the defaults will mark the kernel as [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=fc9740cebc3ab7c65f3c5f6ce0caf3e4969013ca tainted] from Linux 3.18 onwards. This basically implies using other options than the per-chip defaults is considered experimental and not supported by the developers. }}<br />
<br />
=== Framebuffer compression (enable_fbc) ===<br />
<br />
Making use of Framebuffer compression (FBC) can reduce power consumption while reducing memory bandwidth needed for screen refreshes.<br />
<br />
To enable FBC, use {{ic|1=i915.enable_fbc=1}} as [[kernel parameter]] or set in {{ic|/etc/modprobe.d/i915.conf}}:<br />
<br />
{{hc|/etc/modprobe.d/i915.conf|2=<br />
options i915 enable_fbc=1<br />
}}<br />
<br />
{{Note|Framebuffer compression may be unreliable or unavailable on Intel GPU generations before Sandy Bridge (generation 6). This results in messages logged to the system journal similar to this one:<br />
<br />
kernel: drm: not enough stolen space for compressed buffer, disabling.<br />
<br />
Enabling frame buffer compression on pre-Sandy Bridge CPUs results in endless error messages:<br />
<br />
{{hc|# dmesg|<br />
[ 2360.475430] [drm] not enough stolen space for compressed buffer (need 4325376 bytes), disabling<br />
[ 2360.475437] [drm] hint: you may be able to increase stolen memory size in the BIOS to avoid this<br />
}}<br />
<br />
The solution is to disable frame buffer compression which will imperceptibly increase power consumption (around 0.06 W). In order to disable it add {{ic|1=i915.enable_fbc=0}} to the kernel line parameters. More information on the results of disabled compression can be found [https://web.archive.org/web/20200228230053/https://kernel.ubuntu.com/~cking/power-benchmarking/background-colour-and-framebuffer-compression/ here].}}<br />
<br />
=== Fastboot ===<br />
<br />
{{Note|1=This parameter is enabled by default for Skylake and newer[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3d6535cbed4a4b029602ff83efb2adec7cb8d28b] as well as Bay- and Cherry-Trail (VLV/CHV)[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7360c9f6b857e22a48e545f4e99c79630994e932] since Linux 5.1.[https://kernelnewbies.org/Linux_5.1#Graphics]}}<br />
<br />
The goal of Intel Fastboot is to preserve the frame-buffer as setup by the BIOS or [[bootloader]] to avoid any flickering until [[Xorg]] has started.[https://lists.freedesktop.org/archives/intel-gfx/2012-May/017653.html][https://www.phoronix.com/scan.php?page=news_item&px=MTEwNzc]<br />
<br />
To force enable fastboot on platforms where it is not the default already, set {{ic|1=i915.fastboot=1}} as [[kernel parameter]] or set in {{ic|/etc/modprobe.d/i915.conf}}:<br />
<br />
{{hc|/etc/modprobe.d/i915.conf|2=<br />
options i915 fastboot=1<br />
}}<br />
<br />
=== Intel GVT-g graphics virtualization support ===<br />
<br />
See [[Intel GVT-g]] for details.<br />
<br />
=== Enable performance support ===<br />
<br />
{{Expansion|What does Mesa actually do using the performance counters? What's the effect of this? Some report drastic performance increases on Intel Tiger Lake, attributing it to a support for Dynamic Tuning [https://www.reddit.com/r/linux/comments/u7zxa0/psa_for_intel_tiger_lake_dynamic_tuning_laptops/].|section=Potential performance gains via Observation Architecture}}<br />
<br />
Starting with Gen6 (Sandy Bridge and onwards), Intel GPUs provide performance counters used for exposing internal performance data to drivers. The drivers and hardware registers refer to this infrastructure as the ''Observation Architecture'' (internally "OA") [https://www.phoronix.com/scan.php?page=news_item&px=Intel-HSW-Observation-Arch], but Intel's documentation also more generally refers to this functionality as providing ''Observability Performance Counters'' [https://01.org/sites/default/files/documentation/observability_performance_counters_haswell.pdf] [https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-skl-vol14-observability.pdf].<br />
<br />
By default, only programs running with the [https://lwn.net/Articles/486306/ CAP_SYS_ADMIN] (equivalent to root) or [https://lwn.net/Articles/812719/ CAP_PERFMON] [[capabilities]] can utilize the observation architecture [https://github.com/torvalds/linux/blob/b14ffae378aa1db993e62b01392e70d1e585fb23/drivers/gpu/drm/i915/i915_perf.c#L267] [https://github.com/torvalds/linux/blob/b14ffae378aa1db993e62b01392e70d1e585fb23/drivers/gpu/drm/i915/i915_perf.c#L3481-L3484]. Most applications will be running without either of these, resulting in the following warning:<br />
<br />
MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0<br />
<br />
To enable performance support without using the capabilities (or root), set the kernel parameter as described in [[sysctl]].<br />
<br />
{{Warning|The restrictive defaults of the {{ic|perf_event_paranoid}} family of options exists because there is risk associated with allowing applications to access performance data [https://www.kernel.org/doc/html/latest/admin-guide/perf-security.html]. With this being said, {{ic|dev.i915.perf_stream_paranoid}} only influences access to GPU performance counters, which carry less risk than e.g. CPU architectural execution context registers.}}<br />
<br />
If setting the value to 0 in a {{ic|/etc/sysctl.d/*.conf}} file results in the following error at boot:<br />
<br />
sysctl: cannot stat /proc/sys/dev/i915/perf_stream_paranoid: No such file or directory<br />
<br />
you should load the {{ic|i915}} module [[#Enable early KMS|early with KMS]].<br />
<br />
== Tips and tricks ==<br />
<br />
=== Setting scaling mode ===<br />
<br />
This can be useful for some full screen applications:<br />
<br />
$ xrandr --output LVDS1 --set PANEL_FITTING ''param''<br />
<br />
where {{ic|''param''}} can be:<br />
<br />
* {{ic|center}}: resolution will be kept exactly as defined, no scaling will be made,<br />
* {{ic|full}}: scale the resolution so it uses the entire screen or<br />
* {{ic|full_aspect}}: scale the resolution to the maximum possible but keep the aspect ratio.<br />
<br />
If it does not work, try:<br />
<br />
$ xrandr --output LVDS1 --set "scaling mode" ''param''<br />
<br />
where {{ic|''param''}} is one of {{ic|"Full"}}, {{ic|"Center"}} or {{ic|"Full aspect"}}.<br />
<br />
{{Note|1=This option currently does not work for external displays (e.g. VGA, DVI, HDMI, DP). [https://bugs.freedesktop.org/show_bug.cgi?id=90989]}}<br />
<br />
=== Hardware accelerated H.264 decoding on GMA 4500 ===<br />
<br />
The {{Pkg|libva-intel-driver}} package only provides hardware accelerated MPEG-2 decoding – and not H.264 decoding – for some GMA 4500 series GPUs. To check whether that affects your particular GPU, install both that driver and the {{Pkg|libva-utils}} package, then check the output of the {{ic|vainfo}} tool for the presence of entries that start with {{ic|VAProfileH264}}.<br />
<br />
The H.264 decoding support is maintained in a separated g45-h264 branch, which can be used by installing {{AUR|libva-intel-driver-g45-h264}} package. Note, however, that this support is experimental and its development has been abandoned. Using the VA-API with this driver on a GMA 4500 series GPU will offload the CPU but may not result in as smooth a playback as non-accelerated playback. Tests using mplayer showed that using vaapi to play back an H.264 encoded 1080p video halved the CPU load (compared to the XV overlay) but resulted in very choppy playback, while 720p worked reasonably well [https://bbs.archlinux.org/viewtopic.php?id=150550]. This is echoed by other experiences [https://web.archive.org/web/20160325142959/http://www.emmolution.org/?p=192&cpage=1#comment-12292]. Setting the preallocated video ram size higher in BIOS results in much better hardware decoded playback. Even 1080p h264 works well if this is done[https://lists.libreplanet.org/archive/html/guix-patches/2019-11/msg00652.html]. Smooth playback (1080p/720p) works also with {{AUR|mpv-git}} in combination with {{AUR|ffmpeg-git}} and {{AUR|libva-intel-driver-g45-h264}}. With MPV and the Firefox plugin "Send to MPV player"[https://addons.mozilla.org/firefox/addon/send-to-mpv-player/] it is possible to watch hardware accelerated YouTube videos.<br />
<br />
=== Old OpenGL driver (i965) ===<br />
<br />
In Mesa 20.0, a new OpenGL driver, Iris, is promoted to be the default for Gen8+. Certain applications run faster with it. You may disable it and revert to use the old i965 driver by setting the {{ic|1=MESA_LOADER_DRIVER_OVERRIDE=i965}} [[environment variable]] before starting any OpenGL application. This setting does not affect Vulkan applications.<br />
<br />
{{Note|1=Report bugs and regressions regarding the Iris driver [https://gitlab.freedesktop.org/mesa/mesa/issues here].}}<br />
<br />
=== Overriding reported OpenGL version ===<br />
<br />
The {{ic|MESA_GL_VERSION_OVERRIDE}} [[environment variable]] can be used to override the reported OpenGL version to any application. For example, setting {{ic|1=MESA_GL_VERSION_OVERRIDE=4.5}} will report OpenGL 4.5.<br />
<br />
{{Note|You can use this variable to report any known OpenGL version, even if it is not supported by the GPU. Some applications might no longer crash, some may start crashing - you probably do not want to set this variable globally.}}<br />
<br />
=== Viewing GPU usage ===<br />
<br />
See the tip regarding Intel GPUs in [[Hardware video acceleration#Verification]].<br />
<br />
=== Setting brightness and gamma ===<br />
<br />
See [[Backlight]].<br />
<br />
== Troubleshooting ==<br />
<br />
=== Tearing ===<br />
<br />
The SNA acceleration method causes tearing on some machines. To fix this, enable the {{ic|TearFree}} option in the driver by adding the following line to your [[#Xorg configuration|configuration file]]:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-intel.conf|<br />
Section "Device"<br />
Identifier "Intel Graphics"<br />
Driver "intel"<br />
Option "TearFree" "true"<br />
EndSection}}<br />
<br />
See the [https://bugs.freedesktop.org/show_bug.cgi?id=37686 original bug report] for more info.<br />
<br />
{{Note|1=<nowiki/><br />
* This option may not work when {{ic|SwapbuffersWait}} is {{ic|false}}.<br />
* This option may increase memory allocation considerably and reduce performance. [https://bugs.freedesktop.org/show_bug.cgi?id=37686#c123]<br />
* This option is problematic for applications that are very picky about vsync timing, like [[Wikipedia:Super Meat Boy|Super Meat Boy]].<br />
* This option does not work with UXA acceleration method, only with SNA.<br />
* For Intel UHD 620 or 630 you will need to add {{ic|Option "TripleBuffer" "true"}} in order for {{ic|TearFree}} to work.<br />
}}<br />
<br />
=== Disable Vertical Synchronization (VSYNC) ===<br />
<br />
Useful when:<br />
<br />
* Chomium/Chrome has lags and slow performance due to GPU and runs smoothly with --disable-gpu switch<br />
* glxgears test does not show desired performance<br />
<br />
The intel-driver uses [https://www.intel.com/support/graphics/sb/CS-004527.htm Triple Buffering] for vertical synchronization; this allows for full performance and avoids tearing. To turn vertical synchronization off (e.g. for benchmarking) use this {{ic|.drirc}} in your home directory:<br />
<br />
{{hc|~/.drirc|2=<br />
<device screen="0" driver="dri2"><br />
<application name="Default"><br />
<option name="vblank_mode" value="0"/><br />
</application><br />
</device><br />
}}<br />
<br />
{{Note|Do not use {{AUR|driconf}} to create this file. It is buggy and will set the wrong driver.}}<br />
<br />
=== DRI3 issues ===<br />
<br />
''DRI3'' is the default DRI version in {{Pkg|xf86-video-intel}}. On some systems this can cause issues such as [https://bugs.chromium.org/p/chromium/issues/detail?id=370022 this]. To switch back to ''DRI2'' add the following line to your [[#Xorg configuration|configuration file]]:<br />
<br />
Option "DRI" "2"<br />
<br />
For the {{ic|modesetting}} driver, this method of disabling DRI3 does not work. Instead, one can set the environment variable {{ic|1=LIBGL_DRI3_DISABLE=1}}.<br />
<br />
=== Font and screen corruption in GTK applications (missing glyphs after suspend/resume) ===<br />
<br />
Should you experience missing font glyphs in GTK applications, the following workaround might help. [[textedit|Edit]] {{ic|/etc/environment}} to add the following line:<br />
<br />
{{hc|/etc/environment|output=<br />
COGL_ATLAS_DEFAULT_BLIT_MODE=framebuffer<br />
}}<br />
<br />
See also [https://bugs.freedesktop.org/show_bug.cgi?id=88584 FreeDesktop bug 88584].<br />
<br />
=== Blank screen during boot, when "Loading modules" ===<br />
<br />
If using "late start" KMS and the screen goes blank when "Loading modules", it may help to add {{ic|i915}} and {{ic|intel_agp}} to the initramfs. See [[Kernel mode setting#Early KMS start]] section.<br />
<br />
Alternatively, appending the following [[kernel parameter]] seems to work as well:<br />
<br />
video=SVIDEO-1:d<br />
<br />
If you need to output to VGA then try this:<br />
<br />
video=VGA-1:1280x800<br />
<br />
=== X freeze/crash with intel driver ===<br />
<br />
Some issues with X crashing, GPU hanging, or problems with X freezing, can be fixed by disabling the GPU usage with the {{ic|NoAccel}} option - add the following lines to your [[#Xorg configuration|configuration file]]:<br />
<br />
Option "NoAccel" "True"<br />
<br />
Alternatively, try to disable the 3D acceleration only with the {{ic|DRI}} option:<br />
<br />
Option "DRI" "False"<br />
<br />
=== Adding undetected resolutions ===<br />
<br />
This issue is covered on the [[Xrandr#Adding undetected resolutions|Xrandr page]].<br />
<br />
=== Backlight is not adjustable ===<br />
<br />
If after resuming from suspend, the hotkeys for changing the screen brightness do not take effect, check your configuration against the [[Backlight]] article.<br />
<br />
If the problem persists, try one of the following [[kernel parameters]]:<br />
<br />
acpi_osi=Linux<br />
acpi_osi="!Windows 2012"<br />
acpi_osi=<br />
<br />
Also make sure you are not using fastboot mode ({{ic|i915.fastboot}} kernel parameter), it is [https://www.phoronix.com/forums/forum/software/mobile-linux/1066447-arch-linux-users-with-intel-graphics-can-begin-enjoying-a-flicker-free-boot known] for breaking backlight controls.<br />
<br />
=== Corruption or unresponsiveness in Chromium and Firefox ===<br />
<br />
If you experience corruption, unresponsiveness, lags or slow performance in Chromium and/or Firefox some possible solutions are:<br />
<br />
* [[#AccelMethod|Set the AccelMethod to "uxa"]]<br />
* [[#Disable Vertical Synchronization (VSYNC)|Disable VSYNC]]<br />
* [[#Tearing|Enable the TearFree option]]<br />
* Disable "DRI" and acceleration method (tested on Intel Iris 10th generation): {{bc|<nowiki><br />
Option "NoAccel" "True"<br />
Option "DRI" "False"<br />
</nowiki>}}<br />
<br />
=== Kernel crashing w/kernels 4.0+ on Broadwell/Core-M chips ===<br />
<br />
A few seconds after X/Wayland loads the machine will freeze and [[journalctl]] will log a kernel crash referencing the Intel graphics as below:<br />
<br />
Jun 16 17:54:03 hostname kernel: BUG: unable to handle kernel NULL pointer dereference at (null)<br />
Jun 16 17:54:03 hostname kernel: IP: [< (null)>] (null)<br />
...<br />
Jun 16 17:54:03 hostname kernel: CPU: 0 PID: 733 Comm: gnome-shell Tainted: G U O 4.0.5-1-ARCH #1<br />
...<br />
Jun 16 17:54:03 hostname kernel: Call Trace:<br />
Jun 16 17:54:03 hostname kernel: [<ffffffffa055cc27>] ? i915_gem_object_sync+0xe7/0x190 [i915]<br />
Jun 16 17:54:03 hostname kernel: [<ffffffffa0579634>] intel_execlists_submission+0x294/0x4c0 [i915]<br />
Jun 16 17:54:03 hostname kernel: [<ffffffffa05539fc>] i915_gem_do_execbuffer.isra.12+0xabc/0x1230 [i915]<br />
Jun 16 17:54:03 hostname kernel: [<ffffffffa055d349>] ? i915_gem_object_set_to_cpu_domain+0xa9/0x1f0 [i915]<br />
Jun 16 17:54:03 hostname kernel: [<ffffffff811ba2ae>] ? __kmalloc+0x2e/0x2a0<br />
Jun 16 17:54:03 hostname kernel: [<ffffffffa0555471>] i915_gem_execbuffer2+0x141/0x2b0 [i915]<br />
Jun 16 17:54:03 hostname kernel: [<ffffffffa042fcab>] drm_ioctl+0x1db/0x640 [drm]<br />
Jun 16 17:54:03 hostname kernel: [<ffffffffa0555330>] ? i915_gem_execbuffer+0x450/0x450 [i915]<br />
Jun 16 17:54:03 hostname kernel: [<ffffffff8122339b>] ? eventfd_ctx_read+0x16b/0x200<br />
Jun 16 17:54:03 hostname kernel: [<ffffffff811ebc36>] do_vfs_ioctl+0x2c6/0x4d0<br />
Jun 16 17:54:03 hostname kernel: [<ffffffff811f6452>] ? __fget+0x72/0xb0<br />
Jun 16 17:54:03 hostname kernel: [<ffffffff811ebec1>] SyS_ioctl+0x81/0xa0<br />
Jun 16 17:54:03 hostname kernel: [<ffffffff8157a589>] system_call_fastpath+0x12/0x17<br />
Jun 16 17:54:03 hostname kernel: Code: Bad RIP value.<br />
Jun 16 17:54:03 hostname kernel: RIP [< (null)>] (null)<br />
<br />
This can be fixed by disabling execlist support which was changed to default on with kernel 4.0. Add the following [[kernel parameter]]:<br />
<br />
i915.enable_execlists=0<br />
<br />
This is known to be broken to at least kernel 4.0.5.<br />
<br />
=== Lag in Windows guests ===<br />
<br />
The video output of a Windows guest in VirtualBox sometimes hangs until the host forces a screen update (e.g. by moving the mouse cursor). Removing the {{ic|1=enable_fbc=1}} option fixes this issue.<br />
<br />
=== Screen flickering ===<br />
<br />
Panel Self Refresh (PSR), a power saving feature used by Intel iGPUs is known to cause flickering in some instances {{Bug|49628}} {{Bug|49371}} {{Bug|50605}}. A temporary solution is to disable this feature using the [[kernel parameter]] {{ic|1=i915.enable_psr=0}}.<br />
<br />
=== OpenGL 2.1 with i915 driver ===<br />
<br />
The update of {{Pkg|mesa}} from version 13.x to 17 may break support for OpenGL 2.1 on third gen Intel GPUs (GMA3100, see [[wikipedia:List_of_Intel_graphics_processing_units#Third_generation|here]]), as described in this [https://www.phoronix.com/scan.php?page=news_item&px=Mesa-i915-OpenGL-2-Drop article], reverting it back to OpenGL 1.4. However this could be restored manually by setting {{ic|/etc/drirc}} or {{ic|~/.drirc}} options like:<br />
<br />
{{hc|/etc/drirc|output=<br />
<driconf><br />
...<br />
<device driver="i915"><br />
<application name="Default"><br />
<option name="'''stub_occlusion_query'''" value="'''true'''" /><br />
<option name="'''fragment_shader'''" value="'''true'''" /><br />
</application><br />
</device><br />
...<br />
</driconf><br />
}}<br />
<br />
{{Note|The reason of this step back was Chromium and other applications' bad experience. If needed, you might edit the drirc file in a "app-specific" style, see [https://dri.freedesktop.org/wiki/ConfigurationInfrastructure/ here], to disable gl2.1 on executable chromium for instance.}}<br />
<br />
=== KMS Issue: console is limited to small area ===<br />
<br />
One of the low-resolution video ports may be enabled on boot which is causing the terminal to utilize a small area of the screen. To fix, explicitly disable the port with an i915 module setting with {{ic|1=video=SVIDEO-1:d}} in the kernel command line parameter in the bootloader. See [[Kernel parameters]] for more info.<br />
<br />
If that does not work, try disabling TV1 or VGA1 instead of SVIDEO-1. Video port names can be listed with [[xrandr]].<br />
<br />
=== No sound through HDMI on a Haswell CPU ===<br />
<br />
According to a [https://bugzilla.kernel.org/show_bug.cgi?id=60769 Linux kernel issue], sound will not be output through HDMI if {{ic|1=intel_iommu=on}}. To fix this problem, use the following [[kernel parameter]]:<br />
<br />
intel_iommu=on,igfx_off<br />
<br />
Or alternatively, disable IOMMU:<br />
<br />
intel_iommu=off<br />
<br />
=== Crash/freeze on low power Intel CPUs ===<br />
<br />
Low-powered Intel processors and/or laptop processors have a tendency to randomly hang or crash due to the problems with the power management features found in low-power Intel chips. If such a crash happens, you will not see any logs reporting this problem. Adding the following [[Kernel parameters]] may help to resolve the problem.<br />
{{Note|It is not advised to use all three of the below kernel parameters together.}}<br />
intel_idle.max_cstate=1 i915.enable_dc=0 ahci.mobile_lpm_policy=1<br />
<br />
{{ic|1=ahci.mobile_lpm_policy=1}} fixes a hang on several Lenovo laptops and some Acer notebooks due to problematic SATA controller power management. That workaround is strictly not related to Intel graphics but it does solve related issues. Adding this kernel parameter sets the ''l''ink ''p''ower ''m''anagement from firmware default to maximum performance and will also solve hangs when you change display brightness on certain Lenovo machines but increases idle power consumption by 1-1.5 W on modern ultrabooks. For further information, esp. about the other states, see here[https://patchwork.ozlabs.org/project/ubuntu-kernel/patch/20180328115956.16862-1-kai.heng.feng@canonical.com/] and here[https://access.redhat.com/documentation/en-en/red_hat_enterprise_linux/6/html/power_management_guide/alpm].<br />
<br />
{{ic|1=i915.enable_dc=0}} disables GPU power management. This does solve random hangs on certain Intel systems, notably Goldmount and Kaby Lake Refresh chips. Using this parameter does result in higher power use and shorter battery life on laptops/notebooks.<br />
<br />
{{ic|1=intel_idle.max_cstate=1}} limits the processors sleep states, it prevents the processor from going into deep sleep states. That is absolutely not ideal and does result in higher power use and lower battery life. However, it does solve random hangs on many Intel systems. Use this if you have a Intel Baytrail or a Kaby Lake Refresh chip. Intel "Baytrail" chips are known to randomly hang without this kernel parameter due to a hardware flaw[https://bugzilla.kernel.org/show_bug.cgi?id=109051#c752].<br />
<br />
If you try adding {{ic|1=intel_idle.max_cstate=1 i915.enable_dc=0 ahci.mobile_lpm_policy=1}} in the hope of fixing frequent hangs and that solves the issue you should later remove one by one to see which of them actually helped you solve the issue. Running with cstates and display power management disabled is not advisable if the actual problem is related to SATA power management and {{ic|1=ahci.mobile_lpm_policy=1}} is the one that actually solves it.<br />
<br />
Check [https://linuxreviews.org/Intel_graphics#Kernel_Parameters Linux Reviews] for more details.<br />
<br />
=== Add support for 165Hz monitor ===<br />
<br />
For some 165Hz monitors, ''xrandr'' might not display the 165Hz option, and the fix in [[#Adding undetected resolutions]] does not solve this. In this case, see [https://unix.stackexchange.com/questions/680356/i915-driver-stuck-at-40hz-on-165hz-screen i915-driver-stuck-at-40hz-on-165hz-screen].<br />
<br />
== See also ==<br />
<br />
* https://01.org/linuxgraphics/documentation (includes a list of supported hardware)</div>Smoneckhttps://wiki.archlinux.org/index.php?title=Talk:PDF,_PS_and_DjVu&diff=584404Talk:PDF, PS and DjVu2019-10-04T13:17:51Z<p>Smoneck: Forgot link to the table</p>
<hr />
<div>== <s>Restoration of the list</s> ==<br />
<br />
I disagree with [[Special:Diff/558920]].<br />
<br />
:Add back the list of applications. It's much easier to overview the applications in a list, and this is the standard way on the ArchWiki.<br />
<br />
I think splitting the information makes it harder for the reader because they now have to jump between the list and the table. For example if you want to install an application from the table or read the description of a row you now have to search the list above. Furthermore your list duplicates the links and file format support from the table, which makes the article harder to maintain.<br />
<br />
Anyway, you're the list guy and I'm the table guy, so it might be inevitable that we disagree on this. It would be nice if others could chime in. [https://wiki.archlinux.org/index.php?title=PDF,_PS_and_DjVu&oldid=558887#Viewers Previous version for comparison].<br />
<br />
--[[User:Larivact|Larivact]] ([[User talk:Larivact|talk]]) 07:10, 12 December 2018 (UTC)<br />
<br />
:We use lists for all other applications. If we decide to omit the lists, and use tables, then I think we need to replace the list with tables in all articles. However I prefer the list for the following reasons:<br />
:* It's easier to read on small displays.<br />
:* Lists can have long description text with all important details.<br />
:* There is enough space to display the official URL of the project.<br />
:Comparison tables are great, but they should not replace the application lists I think. The tables have many custom columns, which makes it harder to search for the basic, standard information that can be found in the lists.<br />
:--[[User:City-busz|City-busz]] ([[User talk:City-busz|talk]]) 09:39, 12 December 2018 (UTC)<br />
<br />
::You make some good points, closing this. --[[User:Larivact|Larivact]] ([[User talk:Larivact|talk]]) 20:40, 20 December 2018 (UTC)<br />
<br />
== Zathura on filling forms ==<br />
<br />
Afaiks zathura is not able to fill forms yet (as well as there is an open feature-request [https://git.pwmt.org/pwmt/zathura/issues/101]). Is this a mistake in the table [https://wiki.archlinux.org/index.php/PDF,_PS_and_DjVu#Comparison]? [[User:smoneck|smoneck]], Fri 04 Oct 2019 03:15:12 PM CEST</div>Smoneckhttps://wiki.archlinux.org/index.php?title=Talk:PDF,_PS_and_DjVu&diff=584403Talk:PDF, PS and DjVu2019-10-04T13:16:43Z<p>Smoneck: /* Zathura on filling forms */ Possibly wrong table entry</p>
<hr />
<div>== <s>Restoration of the list</s> ==<br />
<br />
I disagree with [[Special:Diff/558920]].<br />
<br />
:Add back the list of applications. It's much easier to overview the applications in a list, and this is the standard way on the ArchWiki.<br />
<br />
I think splitting the information makes it harder for the reader because they now have to jump between the list and the table. For example if you want to install an application from the table or read the description of a row you now have to search the list above. Furthermore your list duplicates the links and file format support from the table, which makes the article harder to maintain.<br />
<br />
Anyway, you're the list guy and I'm the table guy, so it might be inevitable that we disagree on this. It would be nice if others could chime in. [https://wiki.archlinux.org/index.php?title=PDF,_PS_and_DjVu&oldid=558887#Viewers Previous version for comparison].<br />
<br />
--[[User:Larivact|Larivact]] ([[User talk:Larivact|talk]]) 07:10, 12 December 2018 (UTC)<br />
<br />
:We use lists for all other applications. If we decide to omit the lists, and use tables, then I think we need to replace the list with tables in all articles. However I prefer the list for the following reasons:<br />
:* It's easier to read on small displays.<br />
:* Lists can have long description text with all important details.<br />
:* There is enough space to display the official URL of the project.<br />
:Comparison tables are great, but they should not replace the application lists I think. The tables have many custom columns, which makes it harder to search for the basic, standard information that can be found in the lists.<br />
:--[[User:City-busz|City-busz]] ([[User talk:City-busz|talk]]) 09:39, 12 December 2018 (UTC)<br />
<br />
::You make some good points, closing this. --[[User:Larivact|Larivact]] ([[User talk:Larivact|talk]]) 20:40, 20 December 2018 (UTC)<br />
<br />
== Zathura on filling forms ==<br />
<br />
Afaiks zathura is not able to fill forms yet (as well as there is an open feature-request [https://git.pwmt.org/pwmt/zathura/issues/101]). Is this a mistake in the table? [[User:smoneck|smoneck]], Fri 04 Oct 2019 03:15:12 PM CEST</div>Smoneckhttps://wiki.archlinux.org/index.php?title=Lenovo_ThinkPad_T480&diff=582268Lenovo ThinkPad T4802019-09-14T08:40:12Z<p>Smoneck: Added missing info (same as for t480s)</p>
<hr />
<div>[[Category:Lenovo]]<br />
[[ja:Lenovo ThinkPad T480]]<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' <br />
|-<br />
| [[Intel graphics]] || {{Yes}} <br />
|-<br />
| [[Wireless]] || {{Yes}}<br />
|-<br />
| [[ALSA]] || {{Yes}}<br />
|-<br />
| [[TrackPoint]] || {{Yes}}<br />
|-<br />
| [[Touchpad]] || {{Yes}}<br />
|-<br />
| [[Webcam]] || {{Yes}}<br />
|-<br />
| [[Bluetooth]] || {{Yes}}<br />
|-<br />
| [[ThinkPad mobile Internet|Mobile internet]] || {{Yes}}¹<br />
|-<br />
| Fingerprint Sensor || {{No}}²<br />
|- <br />
|colspan=2 style="font-size: 70%; border: none;" |<ol><li> No working Linux driver for Fibocom L850-GL. See [https://forums.lenovo.com/t5/Linux-Discussion/X1C-gen-6-Fibocom-L850-GL-Ubuntu-18-04/m-p/4078413 this thread] and [https://forums.lenovo.com/t5/Linux-Discussion/Linux-support-for-WWAN-LTE-L850-GL-on-T580-T480/td-p/4067969 this thread] for more info.</li><br />
<li>No working Linux driver so far for Synaptics 06cb:009a. See [https://github.com/nmikhailov/Validity90 here] and [https://forums.lenovo.com/t5/Other-Linux-Discussions/Linux-on-T495/m-p/4474320/highlight/true#M13440 here].</li></ol><br />
|}<br />
<br />
This article covers the installation and configuration of Arch Linux on a Lenovo T480 laptop. Everything seems to work pretty much out the box.<br />
<br />
For a general overview of laptop-related articles and recommendations, see [[Laptop]].<br />
<br />
== Hardware ==<br />
<br />
Using kernel 4.16.8-1-ARCH<br />
<br />
Version: ThinkPad T480<br />
SKU Number: LENOVO_MT_20L5_BU_Think_FM_ThinkPad T480<br />
Product Name: 20L5CTO1WW<br />
<br />
{{ic|lspci}} returns something like:<br />
<br />
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 08)<br />
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)<br />
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 08)<br />
00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th Gen Core Processor Gaussian Mixture Model<br />
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)<br />
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)<br />
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)<br />
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)<br />
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #1 (rev f1)<br />
00:1c.6 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #7 (rev f1)<br />
00:1d.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #9 (rev f1)<br />
00:1d.2 PCI bridge: Intel Corporation Device 9d1a (rev f1)<br />
00:1f.0 ISA bridge: Intel Corporation Device 9d4e (rev 21)<br />
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)<br />
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)<br />
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)<br />
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (4) I219-V (rev 21)<br />
03:00.0 Network controller: Intel Corporation Wireless 8265 / 8275 (rev 78)<br />
3d:00.0 Non-Volatile memory controller: Lenovo Device 0003<br />
<br />
{{ic|lsusb}} returns something like:<br />
<br />
Bus 002 Device 005: ID 0bda:0316 Realtek Semiconductor Corp. <br />
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub<br />
Bus 001 Device 004: ID 06cb:009a Synaptics, Inc. <br />
Bus 001 Device 003: ID 04f2:b604 Chicony Electronics Co., Ltd <br />
Bus 001 Device 002: ID 8087:0a2b Intel Corp. <br />
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
<br />
and for Product Name: {{ic|20L50007GE}} something like:<br />
<br />
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub<br />
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br />
Bus 002 Device 002: ID 0bda:0316 Realtek Semiconductor Corp. <br />
Bus 001 Device 006: ID 06cb:009a Synaptics, Inc. <br />
Bus 001 Device 005: ID 13d3:56a6 IMC Networks <br />
Bus 001 Device 004: ID 8087:0a2b Intel Corp. <br />
Bus 001 Device 003: ID 2cb7:0210 <br />
Bus 001 Device 002: ID 058f:9540 Alcor Micro Corp. AU9540 Smartcard Reader<br />
<br />
ID {{ic|2cb7:0210}} is the 4G modem Fibocom L830-EB.<br />
Noted that devices come with 4G modem Fibocom L850-GL may not work.<br />
<br />
== Suspend / Hibernation ==<br />
<br />
Suspend and Hibernation work out of the box. The T480 does not have the same issues as the [[Lenovo_ThinkPad_X1_Carbon_(Gen_6)#Suspend_issues|X1 Carbon Gen 6]]<br />
<br />
== TrackPoint and Touchpad ==<br />
<br />
TrackPoint and Touchpad work out of the box and do not seem to have the same issues as the [[Lenovo_ThinkPad_X1_Carbon_(Gen_6)#TrackPoint_and_Touchpad_issues|X1 Carbon Gen 6]].<br />
<br />
However one could benefit from having greatly increased event reporting frequency by enabling<br />
{{ic|psmouse}} [[kernel module]] option {{ic|1=synaptics_intertouch=1}}.<br />
<br />
This can be done for example by editing {{ic|/etc/modprobe.d/psmouse.conf}}:<br />
options psmouse synaptics_intertouch=1<br />
<br />
For two-finger scrolling activity this gives a boost from 40 Hz to 135 Hz on average which<br />
is more than threefold increase. This boost greatly contributes to the [[Desktop environment]]<br />
scrolling performance and smoothness.<br />
<br />
({{Aur|evhz-git}}) may be of use to find out how frequently Touchpad reports events. For example<br />
after enabling said option:<br />
# evhz<br />
Press CTRL-C to exit.<br />
...<br />
^C<br />
Average for Synaptics TM3276-022: 137Hz<br />
<br />
== Power management/Throttling issues ==<br />
<br />
See<br />
* X1 Carbon Gen 6 [[Lenovo_ThinkPad_X1_Carbon_(Gen_6)#Power_management.2FThrottling_issues|Power management/Throttling issues]]<br />
* ThinkPad T480s [[Lenovo_ThinkPad_T480s#Thermal_Throttling_Fix|Thermal Throttling Fix]]<br />
* https://github.com/erpalma/throttled<br />
<br />
== UEFI/Firmware Updates ==<br />
<br />
Lenovo provides firmware updates for this device through the ''Linux Vendor Firmware Service'' (LVFS).<br />
<br />
Available updates and changelogs can be found on the [https://fwupd.org/lvfs/search?value=Thinkpad+T480 LVFS website]. These include security patches for the Intel Management Engine and the system firmware.<br />
<br />
The updates can be installed using [[fwupd]].<br />
<br />
== UEFI and GRUB ==<br />
<br />
Lenovo T480 is tied in with Microsoft and will only boot to Windows EFI file or default EFI fallback file. Verified on firmware version 1.14.<br />
<br />
When GRUB is used, it is needed to rename the GRUB .efi to one of these specific file names. Please remember to repeat these steps (or use a pacman hook) when the GRUB package was updated.<br />
<br />
mount /dev/sdXY /mnt # replace XY with the letter & number of the Arch EFI system partition<br />
<br />
# Windows .efi file<br />
<br />
mkdir -p /mnt/EFI/Microsoft/Boot<br />
cp /mnt/EFI/grub/grubx64.efi /mnt/EFI/Microsoft/Boot/bootmgfw.efi<br />
<br />
# EFI fallback .efi file (as defined in the EFI standard.)<br />
<br />
mkdir -p /mnt/EFI/BOOT<br />
cp /mnt/EFI/grub/grub64.efi /mnt/EFI/BOOT/bootx64.efi<br />
<br />
Source: http://www.rodsbooks.com/efi-bootloaders/installation.html#alternative-naming<br />
<br />
Alternatively, systemd-boot can be used as a bootloader. systemd-boot already configures the EFI fallback file name as a default, so no further measures are required after installation.<br />
<br />
== Screen backlight ==<br />
<br />
Without the intel driver (xf86-video-intel), neither xbacklight or xrandr brightness control are working.<br />
<br />
== Encryption and keyboard ==<br />
Assuming encrypted installation, during boot process you are prompted to enter password to decrypt disk. In some cases you may not be able to enter password, because at this time keyboard driver is not loaded yet.<br />
<br />
To fix this simply put {{ic|atkbd}} module into {{ic|MODULES}} in [[mkinitcpio]] config file:<br />
<br />
{{hc|/etc/mkinitcpio.conf|<nowiki><br />
MODULES = (... atkbd)<br />
</nowiki>}}<br />
<br />
And generate new ramdisk environment:<br />
<br />
# mkinitcpio -p linux<br />
<br />
== Special buttons ==<br />
Some special buttons are not supported by X server due to keycode number limit.<br />
<br />
{| class="wikitable" style="text-align:center"<br />
|-<br />
! Key combination !! Scancode !! Keycode<br />
|-<br />
| {{ic|Fn+F11}} || {{ic|0x49}} || {{ic|374}} {{ic|KEY_KEYBOARD}}<br />
|-<br />
| {{ic|Fn+F12}} || {{ic|0x45}} || {{ic|364}} {{ic|KEY_FAVORITES}}<br />
|}<br />
<br />
You can remap unsupported keys using [[Map scancodes to keycodes|udev hwdb]]:<br />
<br />
{{hc|/etc/udev/hwdb.d/90-thinkpad-keyboard.hwdb|<nowiki><br />
evdev:name:ThinkPad Extra Buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*<br />
KEYBOARD_KEY_45=prog1<br />
KEYBOARD_KEY_49=prog2<br />
</nowiki>}}<br />
<br />
Update hwdb after editing the rule.<br />
# udevadm hwdb --update<br />
# udevadm trigger --sysname-match="event*"<br />
<br />
Their names will be "XF86Launch2" (KEY_KEYBOARD) and "XF86Launch1" (KEY_FAVORITES)</div>Smoneckhttps://wiki.archlinux.org/index.php?title=Display_Power_Management_Signaling&diff=571718Display Power Management Signaling2019-04-20T21:01:20Z<p>Smoneck: /* Modify DPMS and screensaver settings with a command */ Folder moved somewhen back in time</p>
<hr />
<div>[[Category:X server]]<br />
[[Category:Power management]]<br />
[[de:DPMS]]<br />
[[ja:Display Power Management Signaling]]<br />
[[ru:Display Power Management Signaling]]<br />
[[zh-hans:Display Power Management Signaling]]<br />
'''[[Wikipedia:VESA Display Power Management Signaling|DPMS]]''' (Display Power Management Signaling) enables power saving behaviour of monitors when the computer is not in use. The time of inactivity before the monitor enters into a given saving power level, standby, suspend or off, can be set as described in {{man|3|DPMSSetTimeouts}}. Note that some monitors make no difference between various DPMS modes.<br />
<br />
== Setting up DPMS in X ==<br />
<br />
{{Note|As of Xorg 1.8 DPMS is auto detected and enabled if ACPI is also enabled at kernel runtime.}}<br />
Add the following to a file in {{ic|/usr/share/X11/xorg.conf.d}} in the {{ic|Monitor}} section:<br />
Option "DPMS" "true"<br />
<br />
Add the following to the {{ic|ServerLayout}} section, change the times (in minutes) as necessary:<br />
Option "StandbyTime" "10"<br />
Option "SuspendTime" "20"<br />
Option "OffTime" "30"<br />
{{Note|If the {{ic|"OffTime"}} option does not work, use screen blanking instead, which will keep the monitor turned on with a black image. Alternatively, change {{ic|"blanktime"}} to {{ic|"0"}} to disable screen blanking<br />
Option "BlankTime" "30"<br />
<br />
An example file {{ic|/usr/share/X11/xorg.conf.d/10-monitor.conf}} could look like this.<br />
<br />
Section "Monitor"<br />
Identifier "LVDS0"<br />
Option "DPMS" "false"<br />
EndSection<br />
<br />
Section "ServerLayout"<br />
Identifier "ServerLayout0"<br />
Option "StandbyTime" "0"<br />
Option "SuspendTime" "0"<br />
Option "OffTime" "0"<br />
Option "BlankTime" "0"<br />
EndSection<br />
}}<br />
<br />
== Disabling DPMS ==<br />
<br />
{{Merge||The section above already mentions {{ic|"DPMS" "false"}}}}<br />
Since DPMS is enable by default in many scenarios, explicit action must be taken to disable it.<br />
To complete disable DPMS, add the following to a file in {{ic|/usr/share/X11/xorg.conf.d/10-monitor.conf}}:<br />
<br />
Section "Extensions"<br />
Option "DPMS" "Disable"<br />
EndSection<br />
<br />
== Modify DPMS and screensaver settings with a command ==<br />
<br />
It is possible to turn off your monitor with the ''xset'' command which is provided by the {{Pkg|xorg-xset}} package.<br />
<br />
Examples:<br />
<br />
{| class="wikitable"<br />
! Command<br />
! Description<br />
|-<br />
| xset s off<br />
| Disable screen saver blanking<br />
|-<br />
| xset s 3600 3600<br />
| Change blank time to 1 hour<br />
|-<br />
| xset -dpms<br />
| Turn off DPMS<br />
|-<br />
| xset s off -dpms<br />
| Disable DPMS and prevent screen from blanking<br />
|-<br />
| xset dpms force off<br />
| Turn off screen immediately<br />
|-<br />
| xset dpms force standby<br />
| Standby screen<br />
|-<br />
| xset dpms force suspend<br />
| Suspend screen<br />
|}<br />
<br />
To query the current settings:<br />
<br />
{{hc|$ xset q|<br />
...<br />
Screen Saver:<br />
prefer blanking: yes allow exposures: yes<br />
timeout: 600 cycle: 600<br />
DPMS (Energy Star):<br />
Standby: 600 Suspend: 600 Off: 600<br />
DPMS is Enabled<br />
Monitor is On<br />
}}<br />
<br />
See {{man|1|xset}} for all available commands.<br />
<br />
{{Note|<br />
* [[XScreenSaver]] and {{Pkg|xfce4-power-manager}} use their own DPMS settings and override ''xset'' configuration. See [[XScreenSaver#DPMS and blanking settings]] and [[Xfce#Display blanking]] for more information.<br />
* If using the command manually in a shell you may need to prefix it with {{ic|sleep 1;}} for it to work correctly, for example {{ic|sleep 1; xset dpms force off}}<br />
* {{ic|xset dpms 0 0 0}}, which sets all the DPMS timeouts to zero, could be a better way to "disable" DPMS, since the effect of {{ic|-dpms}} would be reverted when, for example, turning off the screen with {{ic|xset dpms force off}}.<br />
* If using {{ic|xset}} in [[xinitrc]] does not work, specify settings within a file in {{ic|/usr/share/X11/xorg.conf.d/}}. See [[#Setting up DPMS in X]] for details.<br />
}}<br />
<br />
== DPMS interaction in a Linux console with setterm ==<br />
<br />
The ''setterm'' utility issues terminal recognized escape codes to alter the terminal. Essentially it just writes/echos the terminal sequences to the current terminal device, whether that be in screen, a remote ssh terminal, console mode, serial consoles, etc. <br />
<br />
setterm Syntax: (0 disables)<br />
<br />
setterm -blank [0-60|force|poke]<br />
setterm -powersave [on|vsync|hsync|powerdown|off]<br />
setterm -powerdown [0-60]<br />
<br />
{{Note|If you haven't already read the brief DPMS article linked to below, please skim it to understand how DPMS can be used in the console the same as in X.}}<br />
<br />
=== Prevent screen from turning off ===<br />
<br />
You can run this command:<br />
$ setterm -blank 0 -powerdown 0<br />
<br />
Alternatively you can disable console blanking permanently using the following command:<br />
<br />
# echo -ne "\033[9;0]" >> /etc/issue<br />
<br />
Changing 0 (after the semicolon) to e.g. 3, will keep the screen on for 3 minutes, before entering standby mode.<br />
<br />
=== Pipe the output to a cat to see the escapes ===<br />
<br />
$ setterm -powerdown 2>&1 | exec cat -v 2>&1 | sed "s/\\^\\[/\\\\033/g"<br />
<br />
=== Pipe the escapes to any tty (with write/append perms) to modify that terminal ===<br />
<br />
$ setterm -powerdown 0 >> /dev/tty3<br />
<br />
{{Note|{{ic|>>}} is used instead of {{ic|>}}. For permission issues using ''sudo'' in a script or something, you can use the '''tee''' program to append the output of setterm to the tty device, which tty's let appending sometimes but not writing.}}<br />
<br />
==== Bash loop to set ttys 0-256 ====<br />
<br />
$ for i in {0..256}; do setterm -powerdown 0 >> /dev/tty$i; done; unset i;<br />
<br />
== See also ==<br />
<br />
* [https://web.archive.org/web/20180129095655/http://webpages.charter.net/dperr/dpms.htm PC Monitor DPMS specification explanation]<br />
* [http://ptspts.blogspot.be/2009/10/screen-blanking-dpms-screen-saver.html DPMS control in X]</div>Smoneckhttps://wiki.archlinux.org/index.php?title=Display_Power_Management_Signaling&diff=571716Display Power Management Signaling2019-04-20T21:00:33Z<p>Smoneck: /* Disabling DPMS */ Folder moved somewhen back in time</p>
<hr />
<div>[[Category:X server]]<br />
[[Category:Power management]]<br />
[[de:DPMS]]<br />
[[ja:Display Power Management Signaling]]<br />
[[ru:Display Power Management Signaling]]<br />
[[zh-hans:Display Power Management Signaling]]<br />
'''[[Wikipedia:VESA Display Power Management Signaling|DPMS]]''' (Display Power Management Signaling) enables power saving behaviour of monitors when the computer is not in use. The time of inactivity before the monitor enters into a given saving power level, standby, suspend or off, can be set as described in {{man|3|DPMSSetTimeouts}}. Note that some monitors make no difference between various DPMS modes.<br />
<br />
== Setting up DPMS in X ==<br />
<br />
{{Note|As of Xorg 1.8 DPMS is auto detected and enabled if ACPI is also enabled at kernel runtime.}}<br />
Add the following to a file in {{ic|/usr/share/X11/xorg.conf.d}} in the {{ic|Monitor}} section:<br />
Option "DPMS" "true"<br />
<br />
Add the following to the {{ic|ServerLayout}} section, change the times (in minutes) as necessary:<br />
Option "StandbyTime" "10"<br />
Option "SuspendTime" "20"<br />
Option "OffTime" "30"<br />
{{Note|If the {{ic|"OffTime"}} option does not work, use screen blanking instead, which will keep the monitor turned on with a black image. Alternatively, change {{ic|"blanktime"}} to {{ic|"0"}} to disable screen blanking<br />
Option "BlankTime" "30"<br />
<br />
An example file {{ic|/usr/share/X11/xorg.conf.d/10-monitor.conf}} could look like this.<br />
<br />
Section "Monitor"<br />
Identifier "LVDS0"<br />
Option "DPMS" "false"<br />
EndSection<br />
<br />
Section "ServerLayout"<br />
Identifier "ServerLayout0"<br />
Option "StandbyTime" "0"<br />
Option "SuspendTime" "0"<br />
Option "OffTime" "0"<br />
Option "BlankTime" "0"<br />
EndSection<br />
}}<br />
<br />
== Disabling DPMS ==<br />
<br />
{{Merge||The section above already mentions {{ic|"DPMS" "false"}}}}<br />
Since DPMS is enable by default in many scenarios, explicit action must be taken to disable it.<br />
To complete disable DPMS, add the following to a file in {{ic|/usr/share/X11/xorg.conf.d/10-monitor.conf}}:<br />
<br />
Section "Extensions"<br />
Option "DPMS" "Disable"<br />
EndSection<br />
<br />
== Modify DPMS and screensaver settings with a command ==<br />
<br />
It is possible to turn off your monitor with the ''xset'' command which is provided by the {{Pkg|xorg-xset}} package.<br />
<br />
Examples:<br />
<br />
{| class="wikitable"<br />
! Command<br />
! Description<br />
|-<br />
| xset s off<br />
| Disable screen saver blanking<br />
|-<br />
| xset s 3600 3600<br />
| Change blank time to 1 hour<br />
|-<br />
| xset -dpms<br />
| Turn off DPMS<br />
|-<br />
| xset s off -dpms<br />
| Disable DPMS and prevent screen from blanking<br />
|-<br />
| xset dpms force off<br />
| Turn off screen immediately<br />
|-<br />
| xset dpms force standby<br />
| Standby screen<br />
|-<br />
| xset dpms force suspend<br />
| Suspend screen<br />
|}<br />
<br />
To query the current settings:<br />
<br />
{{hc|$ xset q|<br />
...<br />
Screen Saver:<br />
prefer blanking: yes allow exposures: yes<br />
timeout: 600 cycle: 600<br />
DPMS (Energy Star):<br />
Standby: 600 Suspend: 600 Off: 600<br />
DPMS is Enabled<br />
Monitor is On<br />
}}<br />
<br />
See {{man|1|xset}} for all available commands.<br />
<br />
{{Note|<br />
* [[XScreenSaver]] and {{Pkg|xfce4-power-manager}} use their own DPMS settings and override ''xset'' configuration. See [[XScreenSaver#DPMS and blanking settings]] and [[Xfce#Display blanking]] for more information.<br />
* If using the command manually in a shell you may need to prefix it with {{ic|sleep 1;}} for it to work correctly, for example {{ic|sleep 1; xset dpms force off}}<br />
* {{ic|xset dpms 0 0 0}}, which sets all the DPMS timeouts to zero, could be a better way to "disable" DPMS, since the effect of {{ic|-dpms}} would be reverted when, for example, turning off the screen with {{ic|xset dpms force off}}.<br />
* If using {{ic|xset}} in [[xinitrc]] does not work, specify settings within a file in {{ic|/etc/X11/xorg.conf.d/}}. See [[#Setting up DPMS in X]] for details.<br />
}}<br />
<br />
== DPMS interaction in a Linux console with setterm ==<br />
<br />
The ''setterm'' utility issues terminal recognized escape codes to alter the terminal. Essentially it just writes/echos the terminal sequences to the current terminal device, whether that be in screen, a remote ssh terminal, console mode, serial consoles, etc. <br />
<br />
setterm Syntax: (0 disables)<br />
<br />
setterm -blank [0-60|force|poke]<br />
setterm -powersave [on|vsync|hsync|powerdown|off]<br />
setterm -powerdown [0-60]<br />
<br />
{{Note|If you haven't already read the brief DPMS article linked to below, please skim it to understand how DPMS can be used in the console the same as in X.}}<br />
<br />
=== Prevent screen from turning off ===<br />
<br />
You can run this command:<br />
$ setterm -blank 0 -powerdown 0<br />
<br />
Alternatively you can disable console blanking permanently using the following command:<br />
<br />
# echo -ne "\033[9;0]" >> /etc/issue<br />
<br />
Changing 0 (after the semicolon) to e.g. 3, will keep the screen on for 3 minutes, before entering standby mode.<br />
<br />
=== Pipe the output to a cat to see the escapes ===<br />
<br />
$ setterm -powerdown 2>&1 | exec cat -v 2>&1 | sed "s/\\^\\[/\\\\033/g"<br />
<br />
=== Pipe the escapes to any tty (with write/append perms) to modify that terminal ===<br />
<br />
$ setterm -powerdown 0 >> /dev/tty3<br />
<br />
{{Note|{{ic|>>}} is used instead of {{ic|>}}. For permission issues using ''sudo'' in a script or something, you can use the '''tee''' program to append the output of setterm to the tty device, which tty's let appending sometimes but not writing.}}<br />
<br />
==== Bash loop to set ttys 0-256 ====<br />
<br />
$ for i in {0..256}; do setterm -powerdown 0 >> /dev/tty$i; done; unset i;<br />
<br />
== See also ==<br />
<br />
* [https://web.archive.org/web/20180129095655/http://webpages.charter.net/dperr/dpms.htm PC Monitor DPMS specification explanation]<br />
* [http://ptspts.blogspot.be/2009/10/screen-blanking-dpms-screen-saver.html DPMS control in X]</div>Smoneckhttps://wiki.archlinux.org/index.php?title=Display_Power_Management_Signaling&diff=571713Display Power Management Signaling2019-04-20T20:59:32Z<p>Smoneck: /* Setting up DPMS in X */ Folder moved somewhen back in time.</p>
<hr />
<div>[[Category:X server]]<br />
[[Category:Power management]]<br />
[[de:DPMS]]<br />
[[ja:Display Power Management Signaling]]<br />
[[ru:Display Power Management Signaling]]<br />
[[zh-hans:Display Power Management Signaling]]<br />
'''[[Wikipedia:VESA Display Power Management Signaling|DPMS]]''' (Display Power Management Signaling) enables power saving behaviour of monitors when the computer is not in use. The time of inactivity before the monitor enters into a given saving power level, standby, suspend or off, can be set as described in {{man|3|DPMSSetTimeouts}}. Note that some monitors make no difference between various DPMS modes.<br />
<br />
== Setting up DPMS in X ==<br />
<br />
{{Note|As of Xorg 1.8 DPMS is auto detected and enabled if ACPI is also enabled at kernel runtime.}}<br />
Add the following to a file in {{ic|/usr/share/X11/xorg.conf.d}} in the {{ic|Monitor}} section:<br />
Option "DPMS" "true"<br />
<br />
Add the following to the {{ic|ServerLayout}} section, change the times (in minutes) as necessary:<br />
Option "StandbyTime" "10"<br />
Option "SuspendTime" "20"<br />
Option "OffTime" "30"<br />
{{Note|If the {{ic|"OffTime"}} option does not work, use screen blanking instead, which will keep the monitor turned on with a black image. Alternatively, change {{ic|"blanktime"}} to {{ic|"0"}} to disable screen blanking<br />
Option "BlankTime" "30"<br />
<br />
An example file {{ic|/usr/share/X11/xorg.conf.d/10-monitor.conf}} could look like this.<br />
<br />
Section "Monitor"<br />
Identifier "LVDS0"<br />
Option "DPMS" "false"<br />
EndSection<br />
<br />
Section "ServerLayout"<br />
Identifier "ServerLayout0"<br />
Option "StandbyTime" "0"<br />
Option "SuspendTime" "0"<br />
Option "OffTime" "0"<br />
Option "BlankTime" "0"<br />
EndSection<br />
}}<br />
<br />
== Disabling DPMS ==<br />
<br />
{{Merge||The section above already mentions {{ic|"DPMS" "false"}}}}<br />
Since DPMS is enable by default in many scenarios, explicit action must be taken to disable it.<br />
To complete disable DPMS, add the following to a file in {{ic|/etc/X11/xorg.conf.d/10-monitor.conf}}:<br />
<br />
Section "Extensions"<br />
Option "DPMS" "Disable"<br />
EndSection<br />
<br />
== Modify DPMS and screensaver settings with a command ==<br />
<br />
It is possible to turn off your monitor with the ''xset'' command which is provided by the {{Pkg|xorg-xset}} package.<br />
<br />
Examples:<br />
<br />
{| class="wikitable"<br />
! Command<br />
! Description<br />
|-<br />
| xset s off<br />
| Disable screen saver blanking<br />
|-<br />
| xset s 3600 3600<br />
| Change blank time to 1 hour<br />
|-<br />
| xset -dpms<br />
| Turn off DPMS<br />
|-<br />
| xset s off -dpms<br />
| Disable DPMS and prevent screen from blanking<br />
|-<br />
| xset dpms force off<br />
| Turn off screen immediately<br />
|-<br />
| xset dpms force standby<br />
| Standby screen<br />
|-<br />
| xset dpms force suspend<br />
| Suspend screen<br />
|}<br />
<br />
To query the current settings:<br />
<br />
{{hc|$ xset q|<br />
...<br />
Screen Saver:<br />
prefer blanking: yes allow exposures: yes<br />
timeout: 600 cycle: 600<br />
DPMS (Energy Star):<br />
Standby: 600 Suspend: 600 Off: 600<br />
DPMS is Enabled<br />
Monitor is On<br />
}}<br />
<br />
See {{man|1|xset}} for all available commands.<br />
<br />
{{Note|<br />
* [[XScreenSaver]] and {{Pkg|xfce4-power-manager}} use their own DPMS settings and override ''xset'' configuration. See [[XScreenSaver#DPMS and blanking settings]] and [[Xfce#Display blanking]] for more information.<br />
* If using the command manually in a shell you may need to prefix it with {{ic|sleep 1;}} for it to work correctly, for example {{ic|sleep 1; xset dpms force off}}<br />
* {{ic|xset dpms 0 0 0}}, which sets all the DPMS timeouts to zero, could be a better way to "disable" DPMS, since the effect of {{ic|-dpms}} would be reverted when, for example, turning off the screen with {{ic|xset dpms force off}}.<br />
* If using {{ic|xset}} in [[xinitrc]] does not work, specify settings within a file in {{ic|/etc/X11/xorg.conf.d/}}. See [[#Setting up DPMS in X]] for details.<br />
}}<br />
<br />
== DPMS interaction in a Linux console with setterm ==<br />
<br />
The ''setterm'' utility issues terminal recognized escape codes to alter the terminal. Essentially it just writes/echos the terminal sequences to the current terminal device, whether that be in screen, a remote ssh terminal, console mode, serial consoles, etc. <br />
<br />
setterm Syntax: (0 disables)<br />
<br />
setterm -blank [0-60|force|poke]<br />
setterm -powersave [on|vsync|hsync|powerdown|off]<br />
setterm -powerdown [0-60]<br />
<br />
{{Note|If you haven't already read the brief DPMS article linked to below, please skim it to understand how DPMS can be used in the console the same as in X.}}<br />
<br />
=== Prevent screen from turning off ===<br />
<br />
You can run this command:<br />
$ setterm -blank 0 -powerdown 0<br />
<br />
Alternatively you can disable console blanking permanently using the following command:<br />
<br />
# echo -ne "\033[9;0]" >> /etc/issue<br />
<br />
Changing 0 (after the semicolon) to e.g. 3, will keep the screen on for 3 minutes, before entering standby mode.<br />
<br />
=== Pipe the output to a cat to see the escapes ===<br />
<br />
$ setterm -powerdown 2>&1 | exec cat -v 2>&1 | sed "s/\\^\\[/\\\\033/g"<br />
<br />
=== Pipe the escapes to any tty (with write/append perms) to modify that terminal ===<br />
<br />
$ setterm -powerdown 0 >> /dev/tty3<br />
<br />
{{Note|{{ic|>>}} is used instead of {{ic|>}}. For permission issues using ''sudo'' in a script or something, you can use the '''tee''' program to append the output of setterm to the tty device, which tty's let appending sometimes but not writing.}}<br />
<br />
==== Bash loop to set ttys 0-256 ====<br />
<br />
$ for i in {0..256}; do setterm -powerdown 0 >> /dev/tty$i; done; unset i;<br />
<br />
== See also ==<br />
<br />
* [https://web.archive.org/web/20180129095655/http://webpages.charter.net/dperr/dpms.htm PC Monitor DPMS specification explanation]<br />
* [http://ptspts.blogspot.be/2009/10/screen-blanking-dpms-screen-saver.html DPMS control in X]</div>Smoneckhttps://wiki.archlinux.org/index.php?title=User:Smoneck&diff=340242User:Smoneck2014-10-16T11:59:18Z<p>Smoneck: </p>
<hr />
<div>Here seems to be my page... http://i.imgur.com/y586hsu.jpg</div>Smoneckhttps://wiki.archlinux.org/index.php?title=User:Smoneck&diff=340241User:Smoneck2014-10-16T11:58:14Z<p>Smoneck: Created page with "Here seems to be my page... File:http://i.imgur.com/y586hsu.jpg"</p>
<hr />
<div>Here seems to be my page... [[File:http://i.imgur.com/y586hsu.jpg]]</div>Smoneckhttps://wiki.archlinux.org/index.php?title=Termite&diff=340239Termite2014-10-16T11:53:08Z<p>Smoneck: /* Colored ls output */ Better structure + added fish support</p>
<hr />
<div>[[Category:Terminal emulators]]<br />
{{Template:Stub|}}<br />
[https://www.github.com/thestinger/termite Termite] is a minimal [[:Category:Terminal emulators|terminal emulator]] designed for use with tiling [[window manager]]s. It is a ''modal'' application, similar to [[Vim]], with an insert mode and command mode where keybindings have different functions.<br />
<br />
The configuration file allows to change color and keybindings, and Termite supports transparency and 256 colors. It has a similar look and feel to [[urxvt]], but with fewer dependencies and lower resource use.<br />
<br />
== Installation ==<br />
<br />
Termite is based on the vte terminal emulator library, and is available from the [[Arch User Repository]] in {{AUR|termite-git}}.<br />
<br />
== Usage ==<br />
<br />
Termite starts in insert mode by default. Text may be selected using the mouse, or by using command-mode keys. In insert mode, {{ic|Ctrl-Shift-c}} is used to copy selected text to the [[Xorg|X]] clipboard, {{ic|Ctrl-Shift-v}} to paste. {{ic|Ctrl-tab}} starts scrollback completion, and {{ic|Ctrl-Shift-up}} / {{ic|Ctrl-Shift-down}} scroll the screen up or down.<br />
<br />
{{ic|Ctrl-Shift-space}} enters command-mode. Many commands are borrowed from [[Vim]], for example {{ic|v}} for visual mode, {{ic|Shift-v}} for visual line mode, {{ic|Ctrl-v}} for visual block mode, {{ic|y}} to copy ("yank") selected text, {{ic|/}} and {{ic|?}} for searching, {{ic|w}}, {{ic|b}}, {{ic|^}}, {{ic|$}} for movement, and {{ic|Escape}} to go back to insert mode.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Colored ls output ===<br />
<br />
Due to a recent update it is necessary to use a custom LS_COLORS [[environment variable] for colored {{ic|ls}} output. Generate a new {{ic|dircolors}} file with <br />
<br />
$ dircolors -p > ~/.dircolors<br />
<br />
Then edit {{ic|~/.dircolors}} file, and append<br />
<br />
TERM xterm-termite<br />
<br />
to the end of the list of terminals, and save the file.<br />
<br />
For [[Bash]] in {{ic|~/.profile}} and [[Zsh]] in {{ic|~/.zprofile}}, add <br />
<br />
eval $(dircolors ~/.dircolors)<br />
<br />
and relogin. For [[fish]], add <br />
<br />
eval (dircolors -c ~/.dircolors | sed 's/>&\/dev\/null$//')<br />
<br />
to {{ic|~/.config/fish/config.fish}} and relogin or reload the config via:<br />
<br />
. ~/.config/fish/config.fish<br />
<br />
== See also ==<br />
<br />
* [https://github.com/thestinger/termite/blob/master/README.rst Termite readme]</div>Smoneck