https://wiki.archlinux.org/api.php?action=feedcontributions&user=Mesmer&feedformat=atomArchWiki - User contributions [en]2024-03-29T11:13:16ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=AMDGPU_PRO&diff=798854AMDGPU PRO2024-01-29T17:41:06Z<p>Mesmer: /* Firmware and AMD drivers */ set version of firmware to work with 6.0.1</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[ja:AMDGPU PRO]]<br />
[[zh-hans:AMDGPU PRO]]<br />
{{Related articles start}}<br />
{{Related|AMDGPU}}<br />
{{Related|Vulkan}}<br />
{{Related|GPGPU}}<br />
{{Related|DaVinci Resolve}}<br />
{{Related articles end}}<br />
<br />
This page describes close source drivers for AMD GPUs.<br />
{{Tip|Most users do not need these proprietary drivers.}}<br />
<br />
== Purpose of proprietary components ==<br />
<br />
AMD releases their open source drivers via standard distribution channels. And they also periodically do releases of their ''Radeon Software for Linux'' suite, which includes both open and proprietary components. Open source components are not needed from there, and proprietary components are repacked from the latest ubuntu lts version. They are published in AUR in the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base.<br />
<br />
[https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1316628-radeon-software-for-linux-22-10-driver-being-prepared-for-release?p=1316713#post1316713 Comment] by John Bridgman from AMD explaining why they still package close source drivers:<br />
<br />
:These days our packaged drivers are mostly intended for:<br />
:* customers using slower moving enterprise/LTS distros which do not automatically pick up the latest graphics drivers - we offer them both open source and proprietary/workstation options<br />
:* customers using workstation apps who need the extra performance/certification from a workstation-oriented driver (although Marek has done a lot of great work over the last year to improve Mesa performance on workstation apps)<br />
:* The third target audience is customers looking for ready-to-go OpenCL, either for use with the packaged open/closed drivers or with the upstream-based stack in a recent distro.<br />
<br />
There are several proprietary components: OpenGL, OpenCL, Vulkan and AMF. Sometimes you may want to use these components due to specific features that open source components may lack.<br />
<br />
AMDGPU PRO OpenGL is a proprietary, binary userland driver, which works on top of the open-source amdgpu kernel driver. From [https://www.phoronix.com/vr.php?view=27266 Radeon Software 18.50 vs Mesa 19 benchmarks] article: When it comes to OpenGL games, the RadeonSI Gallium3D driver simply dominates the proprietary AMD OpenGL driver. Users of graphic cards other than Radeon Pro are [https://www.amd.com/en/support/kb/release-notes/amdgpu-installation advised to use the amdgpu graphics stack]. Mostly used because of lacking compatibility layers that some software relies on. See gentoo wiki linked below.<br />
<br />
AMDGPU PRO Vulkan - currently the only implementation that has ray tracing (however, reported by users as glitchy). Also it is required dependency for AMF.<br />
<br />
AMDGPU PRO OpenCL - used because Mesa OpenCL is not fully complete. Proprietary component only for Polaris GPUs. The onward GPUs use the open ROCm OpenCL.<br />
<br />
AMDGPU AMF - used for gpu encoding/decoding.<br />
<br />
== Installation ==<br />
<br />
For proprietary OpenGL implementation, use the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base. It contains all the following packages:<br />
<br />
* {{AUR|amdgpu-pro-oglp}}: For proprietary OpenGL implementation<br />
* {{AUR|lib32-amdgpu-pro-oglp}}: For proprietary OpenGL implementation 32 bit applications support<br />
* {{AUR|vulkan-amdgpu-pro}}: For proprietary Vulkan implementation<br />
* {{AUR|lib32-vulkan-amdgpu-pro}}: For proprietary Vulkan implementation 32 bit applications support<br />
* {{AUR|amf-amdgpu-pro}} : For Advanced Media Framework implementation<br />
<br />
{{Note| OGLP is not a performance optimization of opengl, it is an all-new GL driver codebase written from scratch, based on the PAL architecture. in version > 22.20.5 it replaces the libgl}}<br />
<br />
For available OpenCL implementations see [[GPGPU#AMD/ATI]].<br />
<br />
For OBS to work with it use {{AUR|obs-studio-amf}}<br />
<br />
== Usage ==<br />
<br />
=== Using proprietary OpenGL ===<br />
<br />
Launch your application with progl prefix, for example:<br />
<br />
$ progl glmark2<br />
<br />
==== How to ensure you are using AMDGPU-PRO driver ====<br />
<br />
Run the following command:<br />
$ glxinfo | grep "OpenGL vendor string" | cut -f2 -d":" | xargs<br />
If it returns {{ic|AMD}}, then you are running open source driver. If it returns {{ic|Advanced Micro Devices, Inc.}}, then you are running proprietary driver.<br />
<br />
Alternatively, run [[Benchmarking#glmark2|glmark2]]. When using open driver, in OpenGL Information you will see:<br />
GL_VENDOR: AMD<br />
GL_RENDERER: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.7-arch1-1, LLVM 11.0.1)<br />
GL_VERSION: 4.6 (Compatibility Profile) Mesa 20.3.3<br />
<br />
But when using closed driver, you will see:<br />
GL_VENDOR: ATI Technologies Inc.<br />
GL_RENDERER: Radeon RX 580 Series<br />
GL_VERSION: 4.6.14756 Compatibility Profile Context<br />
<br />
=== Using proprietary Vulkan ===<br />
<br />
Launch your application with {{ic|vk_pro}}, for example:<br />
<br />
$ vk_pro vkmark<br />
<br />
See [[Vulkan#Selecting via AMD Vulkan Prefixes]] for more information.<br />
<br />
=== Using Advanced Multimedia Framework ===<br />
See [[FFmpeg#AMD AMF]]<br />
<br />
== Troubleshooting ==<br />
<br />
=== Intel + AMD hybrid graphics ===<br />
<br />
For users of a hybrid setup with both an Intel GPU and an AMD GPU, usage of the proprietary AMDGPU Pro Workstation Driver might not work as expected due to different MESA implementations. <br />
<br />
The symptom is the following: when you boot your machine, you get a black screen, but with your mouse cursor is moving normally. <br />
<br />
Unfortunately, [[PRIME#Reverse PRIME|Reverse PRIME]] is not a solution. See the [https://gitlab.freedesktop.org/drm/amd/-/issues/985#note_359417 developer response].<br />
<br />
=== Uninstalling packages ===<br />
<br />
If you are in trouble, for example, you cannot login to your system due to black screen, you can revert all back by uninstalling all packages related to AMDGPU PRO. <br />
<br />
Switch a [[virtual console]] (with e.g. {{ic|Ctrl+Alt+F2}}), login and run: <br />
<br />
# pacman -R $(pacman -Qg Radeon_Software_for_Linux | cut -f2 -d" ")<br />
<br />
then reboot.<br />
<br />
=== Southern Islands (SI) or Sea Islands (CIK) GPUs ===<br />
<br />
If using Southern Islands (SI) or Sea Islands (CIK) GPU, when running {{ic|clinfo}}, you get:<br />
amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.<br />
then ensure you are using amdgpu driver, but not radeon. <br />
<br />
Check which driver is currently in use: <br />
<br />
{{hc|$ lspci -k|<br />
03:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465]<br />
Subsystem: Acer Incorporated [ALI] Aspire V5 Radeon R7 M265<br />
'''Kernel driver in use: radeon'''<br />
Kernel modules: radeon, amdgpu<br />
}}<br />
<br />
See [[AMDGPU#Enable Southern Islands (SI) and Sea Islands (CIK) support]] for more information.<br />
<br />
=== Firmware and AMD drivers ===<br />
<br />
AMD drivers and firmware (especially recent firmware) can get out of sync and create issues or not work at all. <br />
You can search in the [[journal]] for {{ic|VNC}}: <br />
<br />
system VCN FW Encode interface version=1.9, expected version=1.8<br />
<br />
[[Downgrading]] the firmware seems to fix the problem. <br />
<br />
{{Tip|<br />
* As of 2024-01-29 {{Aur|linux-firmware-git}} version 20240126.8fa621d2-1 works with 23.40 (6.0.1) driver.<br />
}}<br />
<br />
== See also ==<br />
<br />
* [[Gentoo:AMDGPU-PRO]]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=AMDGPU_PRO&diff=794398AMDGPU PRO2023-12-12T21:18:23Z<p>Mesmer: put comment link to issue</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[ja:AMDGPU PRO]]<br />
[[zh-hans:AMDGPU PRO]]<br />
{{Related articles start}}<br />
{{Related|AMDGPU}}<br />
{{Related|Vulkan}}<br />
{{Related|GPGPU}}<br />
{{Related|DaVinci Resolve}}<br />
{{Related articles end}}<br />
<br />
This page describes close source drivers for AMD GPUs.<br />
{{Tip|Most users do not need these proprietary drivers.}}<br />
<br />
== Purpose of proprietary components ==<br />
<br />
AMD releases their open source drivers via standard distribution channels. And they also periodically do releases of their ''Radeon Software for Linux'' suite, which includes both open and proprietary components. Open source components are not needed from there, and proprietary components are repacked from the latest ubuntu lts version. They are published in AUR in the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base.<br />
<br />
[https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1316628-radeon-software-for-linux-22-10-driver-being-prepared-for-release?p=1316713#post1316713 Comment] by John Bridgman from AMD explaining why they still package close source drivers:<br />
<br />
:These days our packaged drivers are mostly intended for:<br />
:* customers using slower moving enterprise/LTS distros which do not automatically pick up the latest graphics drivers - we offer them both open source and proprietary/workstation options<br />
:* customers using workstation apps who need the extra performance/certification from a workstation-oriented driver (although Marek has done a lot of great work over the last year to improve Mesa performance on workstation apps)<br />
:* The third target audience is customers looking for ready-to-go OpenCL, either for use with the packaged open/closed drivers or with the upstream-based stack in a recent distro.<br />
<br />
There are several proprietary components: OpenGL, OpenCL, Vulkan and AMF. Sometimes you may want to use these components due to specific features that open source components may lack.<br />
<br />
AMDGPU PRO OpenGL is a proprietary, binary userland driver, which works on top of the open-source amdgpu kernel driver. From [https://www.phoronix.com/vr.php?view=27266 Radeon Software 18.50 vs Mesa 19 benchmarks] article: When it comes to OpenGL games, the RadeonSI Gallium3D driver simply dominates the proprietary AMD OpenGL driver. Users of graphic cards other than Radeon Pro are [https://www.amd.com/en/support/kb/release-notes/amdgpu-installation advised to use the amdgpu graphics stack]. Mostly used because of lacking compatibility layers that some software relies on. See gentoo wiki linked below.<br />
<br />
AMDGPU PRO Vulkan - currently the only implementation that has ray tracing (however, reported by users as glitchy). Also it is required dependency for AMF.<br />
<br />
AMDGPU PRO OpenCL - used because Mesa OpenCL is not fully complete. Proprietary component only for Polaris GPUs. The onward GPUs use the open ROCm OpenCL.<br />
<br />
AMDGPU AMF - used for gpu encoding/decoding.<br />
<br />
== Installation ==<br />
<br />
For proprietary OpenGL implementation, use the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base. It contains all the following packages:<br />
<br />
* {{AUR|amdgpu-pro-oglp}}: For proprietary OpenGL implementation<br />
* {{AUR|lib32-amdgpu-pro-oglp}}: For proprietary OpenGL implementation 32 bit applications support<br />
* {{AUR|vulkan-amdgpu-pro}}: For proprietary Vulkan implementation<br />
* {{AUR|lib32-vulkan-amdgpu-pro}}: For proprietary Vulkan implementation 32 bit applications support<br />
* {{AUR|amf-amdgpu-pro}} : For Advanced Media Framework implementation<br />
<br />
{{Note| OGLP is not a performance optimization of opengl, it is an all-new GL driver codebase written from scratch, based on the PAL architecture. in version > 22.20.5 it replaces the libgl}}<br />
<br />
For available OpenCL implementations see [[GPGPU#AMD/ATI]].<br />
<br />
For OBS to work with it use {{AUR|obs-studio-amf}}<br />
<br />
== Usage ==<br />
<br />
=== Using proprietary OpenGL ===<br />
<br />
Launch your application with progl prefix, for example:<br />
<br />
$ progl glmark2<br />
<br />
==== How to ensure you are using AMDGPU-PRO driver ====<br />
<br />
Run the following command:<br />
$ glxinfo | grep "OpenGL vendor string" | cut -f2 -d":" | xargs<br />
If it returns {{ic|AMD}}, then you are running open source driver. If it returns {{ic|Advanced Micro Devices, Inc.}}, then you are running proprietary driver.<br />
<br />
Alternatively, run [[Benchmarking#glmark2|glmark2]]. When using open driver, in OpenGL Information you will see:<br />
GL_VENDOR: AMD<br />
GL_RENDERER: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.7-arch1-1, LLVM 11.0.1)<br />
GL_VERSION: 4.6 (Compatibility Profile) Mesa 20.3.3<br />
<br />
But when using closed driver, you will see:<br />
GL_VENDOR: ATI Technologies Inc.<br />
GL_RENDERER: Radeon RX 580 Series<br />
GL_VERSION: 4.6.14756 Compatibility Profile Context<br />
<br />
=== Using proprietary Vulkan ===<br />
<br />
Launch your application with {{ic|vk_pro}}, for example:<br />
<br />
$ vk_pro vkmark<br />
<br />
See [[Vulkan#Selecting via AMD Vulkan Prefixes]] for more information.<br />
<br />
=== Using Advanced Multimedia Framework ===<br />
See [[FFmpeg#AMD AMF]]<br />
<br />
== Troubleshooting ==<br />
<br />
=== Intel + AMD hybrid graphics ===<br />
<br />
For users of a hybrid setup with both an Intel GPU and an AMD GPU, usage of the proprietary AMDGPU Pro Workstation Driver might not work as expected due to different MESA implementations. <br />
<br />
The symptom is the following: when you boot your machine, you get a black screen, but with your mouse cursor is moving normally. <br />
<br />
Unfortunately, [[PRIME#Reverse PRIME|Reverse PRIME]] is not a solution. See the [https://gitlab.freedesktop.org/drm/amd/-/issues/985#note_359417 developer response].<br />
<br />
=== Uninstalling packages ===<br />
<br />
If you are in trouble, for example, you cannot login to your system due to black screen, you can revert all back by uninstalling all packages related to AMDGPU PRO. <br />
<br />
Switch a [[virtual console]] (with e.g. {{ic|Ctrl+Alt+F2}}), login and run: <br />
<br />
# pacman -R $(pacman -Qg Radeon_Software_for_Linux | cut -f2 -d" ")<br />
<br />
then reboot.<br />
<br />
=== Southern Islands (SI) or Sea Islands (CIK) GPUs ===<br />
<br />
If using Southern Islands (SI) or Sea Islands (CIK) GPU, when running {{ic|clinfo}}, you get:<br />
amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.<br />
then ensure you are using amdgpu driver, but not radeon. <br />
<br />
Check which driver is currently in use: <br />
<br />
{{hc|$ lspci -k|<br />
03:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465]<br />
Subsystem: Acer Incorporated [ALI] Aspire V5 Radeon R7 M265<br />
'''Kernel driver in use: radeon'''<br />
Kernel modules: radeon, amdgpu<br />
}}<br />
<br />
See [[AMDGPU#Enable Southern Islands (SI) and Sea Islands (CIK) support]] for more information.<br />
<br />
=== Firmware and AMD drivers ===<br />
<br />
AMD drivers and firmware (especially recent firmware) can get out of sync and create issues or not work at all. <br />
You can search in the [[journal]] for {{ic|VNC}}: <br />
<br />
system VCN FW Encode interface version=1.9, expected version=1.8<br />
<br />
[[Downgrading]] the firmware seems to fix the problem. <br />
<br />
{{Tip|<br />
* As of 2023-12-12 {{Pkg|linux-firmware}} version 20231211.f2e52a1c-1 works with 23.30 (5.7.3) driver see [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer#comment-947591 aur comment].<br />
}}<br />
<br />
== See also ==<br />
<br />
* [[Gentoo:AMDGPU-PRO]]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=AMDGPU_PRO&diff=794396AMDGPU PRO2023-12-12T21:15:29Z<p>Mesmer: set the firmware to be working correctly</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[ja:AMDGPU PRO]]<br />
[[zh-hans:AMDGPU PRO]]<br />
{{Related articles start}}<br />
{{Related|AMDGPU}}<br />
{{Related|Vulkan}}<br />
{{Related|GPGPU}}<br />
{{Related|DaVinci Resolve}}<br />
{{Related articles end}}<br />
<br />
This page describes close source drivers for AMD GPUs.<br />
{{Tip|Most users do not need these proprietary drivers.}}<br />
<br />
== Purpose of proprietary components ==<br />
<br />
AMD releases their open source drivers via standard distribution channels. And they also periodically do releases of their ''Radeon Software for Linux'' suite, which includes both open and proprietary components. Open source components are not needed from there, and proprietary components are repacked from the latest ubuntu lts version. They are published in AUR in the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base.<br />
<br />
[https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1316628-radeon-software-for-linux-22-10-driver-being-prepared-for-release?p=1316713#post1316713 Comment] by John Bridgman from AMD explaining why they still package close source drivers:<br />
<br />
:These days our packaged drivers are mostly intended for:<br />
:* customers using slower moving enterprise/LTS distros which do not automatically pick up the latest graphics drivers - we offer them both open source and proprietary/workstation options<br />
:* customers using workstation apps who need the extra performance/certification from a workstation-oriented driver (although Marek has done a lot of great work over the last year to improve Mesa performance on workstation apps)<br />
:* The third target audience is customers looking for ready-to-go OpenCL, either for use with the packaged open/closed drivers or with the upstream-based stack in a recent distro.<br />
<br />
There are several proprietary components: OpenGL, OpenCL, Vulkan and AMF. Sometimes you may want to use these components due to specific features that open source components may lack.<br />
<br />
AMDGPU PRO OpenGL is a proprietary, binary userland driver, which works on top of the open-source amdgpu kernel driver. From [https://www.phoronix.com/vr.php?view=27266 Radeon Software 18.50 vs Mesa 19 benchmarks] article: When it comes to OpenGL games, the RadeonSI Gallium3D driver simply dominates the proprietary AMD OpenGL driver. Users of graphic cards other than Radeon Pro are [https://www.amd.com/en/support/kb/release-notes/amdgpu-installation advised to use the amdgpu graphics stack]. Mostly used because of lacking compatibility layers that some software relies on. See gentoo wiki linked below.<br />
<br />
AMDGPU PRO Vulkan - currently the only implementation that has ray tracing (however, reported by users as glitchy). Also it is required dependency for AMF.<br />
<br />
AMDGPU PRO OpenCL - used because Mesa OpenCL is not fully complete. Proprietary component only for Polaris GPUs. The onward GPUs use the open ROCm OpenCL.<br />
<br />
AMDGPU AMF - used for gpu encoding/decoding.<br />
<br />
== Installation ==<br />
<br />
For proprietary OpenGL implementation, use the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base. It contains all the following packages:<br />
<br />
* {{AUR|amdgpu-pro-oglp}}: For proprietary OpenGL implementation<br />
* {{AUR|lib32-amdgpu-pro-oglp}}: For proprietary OpenGL implementation 32 bit applications support<br />
* {{AUR|vulkan-amdgpu-pro}}: For proprietary Vulkan implementation<br />
* {{AUR|lib32-vulkan-amdgpu-pro}}: For proprietary Vulkan implementation 32 bit applications support<br />
* {{AUR|amf-amdgpu-pro}} : For Advanced Media Framework implementation<br />
<br />
{{Note| OGLP is not a performance optimization of opengl, it is an all-new GL driver codebase written from scratch, based on the PAL architecture. in version > 22.20.5 it replaces the libgl}}<br />
<br />
For available OpenCL implementations see [[GPGPU#AMD/ATI]].<br />
<br />
For OBS to work with it use {{AUR|obs-studio-amf}}<br />
<br />
== Usage ==<br />
<br />
=== Using proprietary OpenGL ===<br />
<br />
Launch your application with progl prefix, for example:<br />
<br />
$ progl glmark2<br />
<br />
==== How to ensure you are using AMDGPU-PRO driver ====<br />
<br />
Run the following command:<br />
$ glxinfo | grep "OpenGL vendor string" | cut -f2 -d":" | xargs<br />
If it returns {{ic|AMD}}, then you are running open source driver. If it returns {{ic|Advanced Micro Devices, Inc.}}, then you are running proprietary driver.<br />
<br />
Alternatively, run [[Benchmarking#glmark2|glmark2]]. When using open driver, in OpenGL Information you will see:<br />
GL_VENDOR: AMD<br />
GL_RENDERER: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.7-arch1-1, LLVM 11.0.1)<br />
GL_VERSION: 4.6 (Compatibility Profile) Mesa 20.3.3<br />
<br />
But when using closed driver, you will see:<br />
GL_VENDOR: ATI Technologies Inc.<br />
GL_RENDERER: Radeon RX 580 Series<br />
GL_VERSION: 4.6.14756 Compatibility Profile Context<br />
<br />
=== Using proprietary Vulkan ===<br />
<br />
Launch your application with {{ic|vk_pro}}, for example:<br />
<br />
$ vk_pro vkmark<br />
<br />
See [[Vulkan#Selecting via AMD Vulkan Prefixes]] for more information.<br />
<br />
=== Using Advanced Multimedia Framework ===<br />
See [[FFmpeg#AMD AMF]]<br />
<br />
== Troubleshooting ==<br />
<br />
=== Intel + AMD hybrid graphics ===<br />
<br />
For users of a hybrid setup with both an Intel GPU and an AMD GPU, usage of the proprietary AMDGPU Pro Workstation Driver might not work as expected due to different MESA implementations. <br />
<br />
The symptom is the following: when you boot your machine, you get a black screen, but with your mouse cursor is moving normally. <br />
<br />
Unfortunately, [[PRIME#Reverse PRIME|Reverse PRIME]] is not a solution. See the [https://gitlab.freedesktop.org/drm/amd/-/issues/985#note_359417 developer response].<br />
<br />
=== Uninstalling packages ===<br />
<br />
If you are in trouble, for example, you cannot login to your system due to black screen, you can revert all back by uninstalling all packages related to AMDGPU PRO. <br />
<br />
Switch a [[virtual console]] (with e.g. {{ic|Ctrl+Alt+F2}}), login and run: <br />
<br />
# pacman -R $(pacman -Qg Radeon_Software_for_Linux | cut -f2 -d" ")<br />
<br />
then reboot.<br />
<br />
=== Southern Islands (SI) or Sea Islands (CIK) GPUs ===<br />
<br />
If using Southern Islands (SI) or Sea Islands (CIK) GPU, when running {{ic|clinfo}}, you get:<br />
amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.<br />
then ensure you are using amdgpu driver, but not radeon. <br />
<br />
Check which driver is currently in use: <br />
<br />
{{hc|$ lspci -k|<br />
03:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465]<br />
Subsystem: Acer Incorporated [ALI] Aspire V5 Radeon R7 M265<br />
'''Kernel driver in use: radeon'''<br />
Kernel modules: radeon, amdgpu<br />
}}<br />
<br />
See [[AMDGPU#Enable Southern Islands (SI) and Sea Islands (CIK) support]] for more information.<br />
<br />
=== Firmware and AMD drivers ===<br />
<br />
AMD drivers and firmware (especially recent firmware) can get out of sync and create issues or not work at all. <br />
You can search in the [[journal]] for {{ic|VNC}}: <br />
<br />
system VCN FW Encode interface version=1.9, expected version=1.8<br />
<br />
[[Downgrading]] the firmware seems to fix the problem. <br />
<br />
{{Tip|<br />
* As of 2023-12-12 {{Pkg|linux-firmware}} version 20231211.f2e52a1c-1 works with 23.30 (5.7.3) driver.<br />
}}<br />
<br />
== See also ==<br />
<br />
* [[Gentoo:AMDGPU-PRO]]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=AMDGPU_PRO&diff=779907AMDGPU PRO2023-05-30T16:13:14Z<p>Mesmer: /* Firmware and AMD drivers */ add firmware fix for 7900 cardss</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[ja:AMDGPU PRO]]<br />
[[zh-hans:AMDGPU PRO]]<br />
{{Related articles start}}<br />
{{Related|AMDGPU}}<br />
{{Related|Vulkan}}<br />
{{Related|GPGPU}}<br />
{{Related|DaVinci Resolve}}<br />
{{Related articles end}}<br />
<br />
This page describes close source drivers for AMD GPUs.<br />
{{Tip|Most users do not need these proprietary drivers.}}<br />
<br />
== Purpose of proprietary components ==<br />
<br />
AMD releases their open source drivers via standard distribution channels. And they also periodically do releases of their ''Radeon Software for Linux'' suite, which includes both open and proprietary components. Open source components are not needed from there, and proprietary components are repacked from the latest ubuntu lts version. They are published in AUR in the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base.<br />
<br />
[https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1316628-radeon-software-for-linux-22-10-driver-being-prepared-for-release?p=1316713#post1316713 Comment] by John Bridgman from AMD explaining why they still package close source drivers:<br />
<br />
:These days our packaged drivers are mostly intended for:<br />
:* customers using slower moving enterprise/LTS distros which do not automatically pick up the latest graphics drivers - we offer them both open source and proprietary/workstation options<br />
:* customers using workstation apps who need the extra performance/certification from a workstation-oriented driver (although Marek has done a lot of great work over the last year to improve Mesa performance on workstation apps)<br />
:* The third target audience is customers looking for ready-to-go OpenCL, either for use with the packaged open/closed drivers or with the upstream-based stack in a recent distro.<br />
<br />
There are several proprietary components: OpenGL, OpenCL, Vulkan and AMF. Sometimes you may want to use these components due to specific features that open source components may lack.<br />
<br />
AMDGPU PRO OpenGL is a proprietary, binary userland driver, which works on top of the open-source amdgpu kernel driver. From [https://www.phoronix.com/vr.php?view=27266 Radeon Software 18.50 vs Mesa 19 benchmarks] article: When it comes to OpenGL games, the RadeonSI Gallium3D driver simply dominates the proprietary AMD OpenGL driver. Users of graphic cards other than Radeon Pro are [https://www.amd.com/en/support/kb/release-notes/amdgpu-installation advised to use the amdgpu graphics stack]. Mostly used because of lacking compatibility layers that some software relies on. See gentoo wiki linked below.<br />
<br />
AMDGPU PRO Vulkan - currently the only implementation that has ray tracing (however, reported by users as glitchy). Also it is required dependency for AMF.<br />
<br />
AMDGPU PRO OpenCL - used because Mesa OpenCL is not fully complete. Proprietary component only for Polaris GPUs. The onward GPUs use the open ROCm OpenCL.<br />
<br />
AMDGPU AMF - used for gpu encoding/decoding.<br />
<br />
== Installation ==<br />
<br />
For proprietary OpenGL implementation, use the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base. It contains all the following packages:<br />
<br />
* {{AUR|amdgpu-pro-oglp}}: For proprietary OpenGL implementation<br />
* {{AUR|lib32-amdgpu-pro-oglp}}: For proprietary OpenGL implementation 32 bit applications support<br />
* {{AUR|vulkan-amdgpu-pro}}: For proprietary Vulkan implementation<br />
* {{AUR|lib32-vulkan-amdgpu-pro}}: For proprietary Vulkan implementation 32 bit applications support<br />
* {{AUR|amf-amdgpu-pro}} : For Advanced Media Framework implementation<br />
<br />
{{Note| OGLP is not a performance optimization of opengl, it is an all-new GL driver codebase written from scratch, based on the PAL architecture. in version > 22.20.5 it replaces the libgl}}<br />
<br />
For available OpenCL implementations see [[GPGPU#AMD/ATI]].<br />
<br />
For OBS to work with it use {{AUR|obs-studio-amf}}<br />
<br />
== Usage ==<br />
<br />
=== Using proprietary OpenGL ===<br />
<br />
Launch your application with progl prefix, for example:<br />
<br />
$ progl glmark2<br />
<br />
==== How to ensure you are using AMDGPU-PRO driver ====<br />
<br />
Run the following command:<br />
$ glxinfo | grep "OpenGL vendor string" | cut -f2 -d":" | xargs<br />
If it returns {{ic|AMD}}, then you are running open source driver. If it returns {{ic|Advanced Micro Devices, Inc.}}, then you are running proprietary driver.<br />
<br />
Alternatively, run [[Benchmarking#glmark2|glmark2]]. When using open driver, in OpenGL Information you will see:<br />
GL_VENDOR: AMD<br />
GL_RENDERER: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.7-arch1-1, LLVM 11.0.1)<br />
GL_VERSION: 4.6 (Compatibility Profile) Mesa 20.3.3<br />
<br />
But when using closed driver, you will see:<br />
GL_VENDOR: ATI Technologies Inc.<br />
GL_RENDERER: Radeon RX 580 Series<br />
GL_VERSION: 4.6.14756 Compatibility Profile Context<br />
<br />
=== Using proprietary Vulkan ===<br />
<br />
Launch your application with {{ic|vk_pro}}, for example:<br />
<br />
$ vk_pro vkmark<br />
<br />
See [[Vulkan#Selecting via AMD Vulkan Prefixes]] for more information.<br />
<br />
=== Using Advanced Multimedia Framework ===<br />
See [[FFmpeg#AMD AMF]]<br />
<br />
== Troubleshooting ==<br />
<br />
=== Intel + AMD hybrid graphics ===<br />
<br />
For users of a hybrid setup with both an Intel GPU and an AMD GPU, usage of the proprietary AMDGPU Pro Workstation Driver might not work as expected due to different MESA implementations. <br />
<br />
The symptom is the following: when you boot your machine, you get a black screen, but with your mouse cursor is moving normally. <br />
<br />
Unfortunately, [[PRIME#Reverse PRIME|Reverse PRIME]] is not a solution. See the [https://gitlab.freedesktop.org/drm/amd/-/issues/985#note_359417 developer response].<br />
<br />
=== Uninstalling packages ===<br />
<br />
If you are in trouble, for example, you cannot login to your system due to black screen, you can revert all back by uninstalling all packages related to AMDGPU PRO. <br />
<br />
Switch a [[virtual console]] (with e.g. {{ic|Ctrl+Alt+F2}}), login and run: <br />
<br />
# pacman -R $(pacman -Qg Radeon_Software_for_Linux | cut -f2 -d" ")<br />
<br />
then reboot.<br />
<br />
=== Southern Islands (SI) or Sea Islands (CIK) GPUs ===<br />
<br />
If using Southern Islands (SI) or Sea Islands (CIK) GPU, when running {{ic|clinfo}}, you get:<br />
amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.<br />
then ensure you are using amdgpu driver, but not radeon. <br />
<br />
Check which driver is currently in use: <br />
<br />
{{hc|$ lspci -k|<br />
03:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465]<br />
Subsystem: Acer Incorporated [ALI] Aspire V5 Radeon R7 M265<br />
'''Kernel driver in use: radeon'''<br />
Kernel modules: radeon, amdgpu<br />
}}<br />
<br />
See [[AMDGPU#Enable Southern Islands (SI) and Sea Islands (CIK) support]] for more information.<br />
<br />
=== Firmware and AMD drivers ===<br />
<br />
AMD drivers and firmware (especially recent firmware) can get out of sync and create issues or not work at all. <br />
You can search in the [[journal]] for {{ic|VNC}}: <br />
<br />
system VCN FW Encode interface version=1.9, expected version=1.8<br />
<br />
[[Downgrading]] the firmware seems to fix the problem. <br />
<br />
{{Tip|<br />
* As of 2023-05-06, the 7900 cards works with the {{Pkg|linux-firmware}} version 20221214.f3c283e-1, see [https://github.com/Ashark/archlinux-amdgpu-pro/issues/85 amdgpu-pro GitHub issue].<br />
* Sometimes the {{AUR|linux-firmware-git}} have some update that fixes some issues, so try with it if the non-git fails.<br />
* As of 2023-05-30 version 23.10-1595145 of the AMDGPU PRO seems to fix the 7900 cards if use the {{AUR|linux-firmware-git}}<br />
}}<br />
<br />
== See also ==<br />
<br />
* [[Gentoo:AMDGPU-PRO]]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=AMDGPU_PRO&diff=779792AMDGPU PRO2023-05-28T19:27:19Z<p>Mesmer: /* Firmware and AMD drivers */ linux-firmware-git tip for issue fixes</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[ja:AMDGPU PRO]]<br />
[[zh-hans:AMDGPU PRO]]<br />
{{Related articles start}}<br />
{{Related|AMDGPU}}<br />
{{Related|Vulkan}}<br />
{{Related|GPGPU}}<br />
{{Related|DaVinci Resolve}}<br />
{{Related articles end}}<br />
<br />
This page describes close source drivers for AMD GPUs.<br />
{{Tip|Most users do not need these proprietary drivers.}}<br />
<br />
== Purpose of proprietary components ==<br />
<br />
AMD releases their open source drivers via standard distribution channels. And they also periodically do releases of their ''Radeon Software for Linux'' suite, which includes both open and proprietary components. Open source components are not needed from there, and proprietary components are repacked from the latest ubuntu lts version. They are published in AUR in the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base.<br />
<br />
[https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1316628-radeon-software-for-linux-22-10-driver-being-prepared-for-release?p=1316713#post1316713 Comment] by John Bridgman from AMD explaining why they still package close source drivers:<br />
<br />
:These days our packaged drivers are mostly intended for:<br />
:* customers using slower moving enterprise/LTS distros which do not automatically pick up the latest graphics drivers - we offer them both open source and proprietary/workstation options<br />
:* customers using workstation apps who need the extra performance/certification from a workstation-oriented driver (although Marek has done a lot of great work over the last year to improve Mesa performance on workstation apps)<br />
:* The third target audience is customers looking for ready-to-go OpenCL, either for use with the packaged open/closed drivers or with the upstream-based stack in a recent distro.<br />
<br />
There are several proprietary components: OpenGL, OpenCL, Vulkan and AMF. Sometimes you may want to use these components due to specific features that open source components may lack.<br />
<br />
AMDGPU PRO OpenGL is a proprietary, binary userland driver, which works on top of the open-source amdgpu kernel driver. From [https://www.phoronix.com/vr.php?view=27266 Radeon Software 18.50 vs Mesa 19 benchmarks] article: When it comes to OpenGL games, the RadeonSI Gallium3D driver simply dominates the proprietary AMD OpenGL driver. Users of graphic cards other than Radeon Pro are [https://www.amd.com/en/support/kb/release-notes/amdgpu-installation advised to use the amdgpu graphics stack]. Mostly used because of lacking compatibility layers that some software relies on. See gentoo wiki linked below.<br />
<br />
AMDGPU PRO Vulkan - currently the only implementation that has ray tracing (however, reported by users as glitchy). Also it is required dependency for AMF.<br />
<br />
AMDGPU PRO OpenCL - used because Mesa OpenCL is not fully complete. Proprietary component only for Polaris GPUs. The onward GPUs use the open ROCm OpenCL.<br />
<br />
AMDGPU AMF - used for gpu encoding/decoding.<br />
<br />
== Installation ==<br />
<br />
For proprietary OpenGL implementation, use the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base. It contains all the following packages:<br />
<br />
* {{AUR|amdgpu-pro-oglp}}: For proprietary OpenGL implementation<br />
* {{AUR|lib32-amdgpu-pro-oglp}}: For proprietary OpenGL implementation 32 bit applications support<br />
* {{AUR|vulkan-amdgpu-pro}}: For proprietary Vulkan implementation<br />
* {{AUR|lib32-vulkan-amdgpu-pro}}: For proprietary Vulkan implementation 32 bit applications support<br />
* {{AUR|amf-amdgpu-pro}} : For Advanced Media Framework implementation<br />
<br />
{{Note| OGLP is not a performance optimization of opengl, it is an all-new GL driver codebase written from scratch, based on the PAL architecture. in version > 22.20.5 it replaces the libgl}}<br />
<br />
For available OpenCL implementations see [[GPGPU#AMD/ATI]].<br />
<br />
For OBS to work with it use {{AUR|obs-studio-amf}}<br />
<br />
== Usage ==<br />
<br />
=== Using proprietary OpenGL ===<br />
<br />
Launch your application with progl prefix, for example:<br />
<br />
$ progl glmark2<br />
<br />
==== How to ensure you are using AMDGPU-PRO driver ====<br />
<br />
Run the following command:<br />
$ glxinfo | grep "OpenGL vendor string" | cut -f2 -d":" | xargs<br />
If it returns {{ic|AMD}}, then you are running open source driver. If it returns {{ic|Advanced Micro Devices, Inc.}}, then you are running proprietary driver.<br />
<br />
Alternatively, run [[Benchmarking#glmark2|glmark2]]. When using open driver, in OpenGL Information you will see:<br />
GL_VENDOR: AMD<br />
GL_RENDERER: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.7-arch1-1, LLVM 11.0.1)<br />
GL_VERSION: 4.6 (Compatibility Profile) Mesa 20.3.3<br />
<br />
But when using closed driver, you will see:<br />
GL_VENDOR: ATI Technologies Inc.<br />
GL_RENDERER: Radeon RX 580 Series<br />
GL_VERSION: 4.6.14756 Compatibility Profile Context<br />
<br />
=== Using proprietary Vulkan ===<br />
<br />
Launch your application with {{ic|vk_pro}}, for example:<br />
<br />
$ vk_pro vkmark<br />
<br />
See [[Vulkan#Selecting via AMD Vulkan Prefixes]] for more information.<br />
<br />
=== Using Advanced Multimedia Framework ===<br />
See [[FFmpeg#AMD AMF]]<br />
<br />
== Troubleshooting ==<br />
<br />
=== Intel + AMD hybrid graphics ===<br />
<br />
For users of a hybrid setup with both an Intel GPU and an AMD GPU, usage of the proprietary AMDGPU Pro Workstation Driver might not work as expected due to different MESA implementations. <br />
<br />
The symptom is the following: when you boot your machine, you get a black screen, but with your mouse cursor is moving normally. <br />
<br />
Unfortunately, [[PRIME#Reverse PRIME|Reverse PRIME]] is not a solution. See the [https://gitlab.freedesktop.org/drm/amd/-/issues/985#note_359417 developer response].<br />
<br />
=== Uninstalling packages ===<br />
<br />
If you are in trouble, for example, you cannot login to your system due to black screen, you can revert all back by uninstalling all packages related to AMDGPU PRO. <br />
<br />
Switch a [[virtual console]] (with e.g. {{ic|Ctrl+Alt+F2}}), login and run: <br />
<br />
# pacman -R $(pacman -Qg Radeon_Software_for_Linux | cut -f2 -d" ")<br />
<br />
then reboot.<br />
<br />
=== Southern Islands (SI) or Sea Islands (CIK) GPUs ===<br />
<br />
If using Southern Islands (SI) or Sea Islands (CIK) GPU, when running {{ic|clinfo}}, you get:<br />
amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.<br />
then ensure you are using amdgpu driver, but not radeon. <br />
<br />
Check which driver is currently in use: <br />
<br />
{{hc|$ lspci -k|<br />
03:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465]<br />
Subsystem: Acer Incorporated [ALI] Aspire V5 Radeon R7 M265<br />
'''Kernel driver in use: radeon'''<br />
Kernel modules: radeon, amdgpu<br />
}}<br />
<br />
See [[AMDGPU#Enable Southern Islands (SI) and Sea Islands (CIK) support]] for more information.<br />
<br />
=== Firmware and AMD drivers ===<br />
<br />
AMD drivers and firmware (especially recent firmware) can get out of sync and create issues or not work at all. <br />
You can search in the [[journal]] for {{ic|VNC}}: <br />
<br />
system VCN FW Encode interface version=1.9, expected version=1.8<br />
<br />
[[Downgrading]] the firmware seems to fix the problem. <br />
<br />
{{Tip|As of 2023-05-06, the 7900 cards works with the {{Pkg|linux-firmware}} version 20221214.f3c283e-1, see [https://github.com/Ashark/archlinux-amdgpu-pro/issues/85 amdgpu-pro GitHub issue].}}<br />
<br />
{{Tip| Sometimes the {{AUR|linux-firmware-git}} have some update that fixes some issues, so try with it if the non-git fails}}<br />
<br />
== See also ==<br />
<br />
* [[Gentoo:AMDGPU-PRO]]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=AMDGPU_PRO&diff=777100AMDGPU PRO2023-05-06T14:05:09Z<p>Mesmer: /* Firmware and AMD drivers */ add firmware VCN info</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[ja:AMDGPU PRO]]<br />
[[zh-hans:AMDGPU PRO]]<br />
{{Related articles start}}<br />
{{Related|AMDGPU}}<br />
{{Related|Vulkan}}<br />
{{Related|GPGPU}}<br />
{{Related|DaVinci Resolve}}<br />
{{Related articles end}}<br />
<br />
This page describes close source drivers for AMD GPUs.<br />
{{Tip|Most users do not need these proprietary drivers.}}<br />
<br />
== Purpose of proprietary components ==<br />
<br />
AMD releases their open source drivers via standard distribution channels. And they also periodically do releases of their ''Radeon Software for Linux'' suite, which includes both open and proprietary components. Open source components are not needed from there, and proprietary components are repacked from the latest ubuntu lts version. They are published in AUR in the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base.<br />
<br />
[https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1316628-radeon-software-for-linux-22-10-driver-being-prepared-for-release?p=1316713#post1316713 Comment] by the AMD explaining why they still package close source drivers:<br />
{{Text art|<nowiki><br />
These days our packaged drivers are mostly intended for:<br />
* customers using slower moving enterprise/LTS distros which do not automatically pick up the latest graphics drivers - we offer them both open source and proprietary/workstation options<br />
* customers using workstation apps who need the extra performance/certification from a workstation-oriented driver (although Marek has done a lot of great work over the last year to improve Mesa performance on workstation apps)<br />
* The third target audience is customers looking for ready-to-go OpenCL, either for use with the packaged open/closed drivers or with the upstream-based stack in a recent distro.<br />
</nowiki>}}<br />
<br />
There are several proprietary components: OpenGL, OpenCL, Vulkan and AMF. Sometimes you may want to use these components due to specific features that open source components may lack.<br />
<br />
AMDGPU PRO OpenGL is a proprietary, binary userland driver, which works on top of the open-source amdgpu kernel driver. From [https://www.phoronix.com/vr.php?view=27266 Radeon Software 18.50 vs Mesa 19 benchmarks] article: When it comes to OpenGL games, the RadeonSI Gallium3D driver simply dominates the proprietary AMD OpenGL driver. Users of graphic cards other than Radeon Pro are [https://www.amd.com/en/support/kb/release-notes/amdgpu-installation advised to use the amdgpu graphics stack]. Mostly used because of lacking compatibility layers that some software relies on. See gentoo wiki linked below.<br />
<br />
AMDGPU PRO Vulkan - currently the only implementation that has ray tracing (however, reported by users as glitchy). Also it is required dependency for AMF.<br />
<br />
AMDGPU PRO OpenCL - used because Mesa OpenCL is not fully complete. Proprietary component only for Polaris GPUs. The onward GPUs use the open ROCm OpenCL.<br />
<br />
AMDGPU AMF - used for gpu encoding/decoding.<br />
<br />
== Installation ==<br />
<br />
For proprietary OpenGL implementation, use the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base. It contains all the following packages:<br />
<br />
* {{AUR|amdgpu-pro-oglp}}: For proprietary OpenGL implementation<br />
* {{AUR|lib32-amdgpu-pro-oglp}}: For proprietary OpenGL implementation 32 bit applications support<br />
* {{AUR|vulkan-amdgpu-pro}}: For proprietary Vulkan implementation<br />
* {{AUR|lib32-vulkan-amdgpu-pro}}: For proprietary Vulkan implementation 32 bit applications support<br />
* {{AUR|amf-amdgpu-pro}} : For Advanced Media Framework implementation<br />
<br />
{{Note| OGLP is not a performance optimization of opengl, it is an all-new GL driver codebase written from scratch, based on the PAL architecture. in version > 22.20.5 it replaces the libgl}}<br />
<br />
For available OpenCL implementations see [[GPGPU#AMD/ATI]].<br />
<br />
For OBS to work with it use {{AUR|obs-studio-amf}}<br />
<br />
== Usage ==<br />
<br />
=== Using proprietary OpenGL ===<br />
<br />
Launch your application with progl prefix, for example:<br />
<br />
$ progl glmark2<br />
<br />
==== How to ensure you are using AMDGPU-PRO driver ====<br />
<br />
Run the following command:<br />
$ glxinfo | grep "OpenGL vendor string" | cut -f2 -d":" | xargs<br />
If it returns {{ic|AMD}}, then you are running open source driver. If it returns {{ic|Advanced Micro Devices, Inc.}}, then you are running proprietary driver.<br />
<br />
Alternatively, run [[Benchmarking#glmark2|glmark2]]. When using open driver, in OpenGL Information you will see:<br />
GL_VENDOR: AMD<br />
GL_RENDERER: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.7-arch1-1, LLVM 11.0.1)<br />
GL_VERSION: 4.6 (Compatibility Profile) Mesa 20.3.3<br />
<br />
But when using closed driver, you will see:<br />
GL_VENDOR: ATI Technologies Inc.<br />
GL_RENDERER: Radeon RX 580 Series<br />
GL_VERSION: 4.6.14756 Compatibility Profile Context<br />
<br />
=== Using proprietary Vulkan ===<br />
<br />
Launch your application with {{ic|vk_pro}}, for example:<br />
<br />
$ vk_pro vkmark<br />
<br />
See [[Vulkan#Selecting via AMD Vulkan Prefixes]] for more information.<br />
<br />
=== Using Advanced Multimedia Framework ===<br />
See [[FFmpeg#AMD AMF]]<br />
<br />
== Troubleshooting ==<br />
<br />
=== Firmware and AMD drivers ===<br />
<br />
Is a know problem that from time to time AMD and firmware (especially the lastest firmwares) get out of sync and some driver get problem or dont work at all<br />
for some cards if you get the latest driver and latest firmware and didn't work try to downgrade the firmware to see if this fix some problems<br />
the firmware<br />
for the driver to work you need the VCN to match, the error should look like <br />
system VCN FW Encode interface version=1.9, expected version=1.8<br />
you can look that with <br />
$ dmesg | grep VCN<br />
<br />
{{ note| as 2023-05-06 for 7900 card it seems that it needs the 20221214.f3c283e1-1 firmware, for more info see [https://github.com/Ashark/archlinux-amdgpu-pro/issues/85 github] issue }}<br />
<br />
=== Intel + AMD hybrid graphics ===<br />
<br />
For users of a hybrid setup with both an Intel GPU and an AMD GPU, usage of the proprietary AMDGPU Pro Workstation Driver might not work as expected due to different MESA implementations. <br />
<br />
The symptom is the following: when you boot your machine, you get a black screen, but with your mouse cursor is moving normally. <br />
<br />
Unfortunately, [[PRIME#Reverse PRIME|Reverse PRIME]] is not a solution. See the [https://gitlab.freedesktop.org/drm/amd/-/issues/985#note_359417 developer response].<br />
<br />
=== Uninstalling packages ===<br />
<br />
If you are in trouble, for example, you cannot login to your system due to black screen, you can revert all back by uninstalling all packages related to AMDGPU PRO. <br />
<br />
Switch a [[virtual console]] (with e.g. {{ic|Ctrl+Alt+F2}}), login and run: <br />
<br />
# pacman -R $(pacman -Qg Radeon_Software_for_Linux | cut -f2 -d" ")<br />
<br />
then reboot.<br />
<br />
=== Southern Islands (SI) or Sea Islands (CIK) GPUs ===<br />
<br />
If using Southern Islands (SI) or Sea Islands (CIK) GPU, when running {{ic|clinfo}}, you get:<br />
amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.<br />
then ensure you are using amdgpu driver, but not radeon. <br />
<br />
Check which driver is currently in use: <br />
<br />
{{hc|lspci -k|<br />
03:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465]<br />
Subsystem: Acer Incorporated [ALI] Aspire V5 Radeon R7 M265<br />
'''Kernel driver in use: radeon'''<br />
Kernel modules: radeon, amdgpu<br />
}}<br />
<br />
See [[AMDGPU#Enable Southern Islands (SI) and Sea Islands (CIK) support]] for more information.<br />
<br />
== See also ==<br />
<br />
* [[Gentoo:AMDGPU-PRO]]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=AMDGPU_PRO&diff=777094AMDGPU PRO2023-05-06T13:51:29Z<p>Mesmer: typo</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[ja:AMDGPU PRO]]<br />
[[zh-hans:AMDGPU PRO]]<br />
{{Related articles start}}<br />
{{Related|AMDGPU}}<br />
{{Related|Vulkan}}<br />
{{Related|GPGPU}}<br />
{{Related|DaVinci Resolve}}<br />
{{Related articles end}}<br />
<br />
This page describes close source drivers for AMD GPUs.<br />
{{Tip|Most users do not need these proprietary drivers.}}<br />
<br />
== Purpose of proprietary components ==<br />
<br />
AMD releases their open source drivers via standard distribution channels. And they also periodically do releases of their ''Radeon Software for Linux'' suite, which includes both open and proprietary components. Open source components are not needed from there, and proprietary components are repacked from the latest ubuntu lts version. They are published in AUR in the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base.<br />
<br />
[https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1316628-radeon-software-for-linux-22-10-driver-being-prepared-for-release?p=1316713#post1316713 Comment] by the AMD explaining why they still package close source drivers:<br />
{{Text art|<nowiki><br />
These days our packaged drivers are mostly intended for:<br />
* customers using slower moving enterprise/LTS distros which do not automatically pick up the latest graphics drivers - we offer them both open source and proprietary/workstation options<br />
* customers using workstation apps who need the extra performance/certification from a workstation-oriented driver (although Marek has done a lot of great work over the last year to improve Mesa performance on workstation apps)<br />
* The third target audience is customers looking for ready-to-go OpenCL, either for use with the packaged open/closed drivers or with the upstream-based stack in a recent distro.<br />
</nowiki>}}<br />
<br />
There are several proprietary components: OpenGL, OpenCL, Vulkan and AMF. Sometimes you may want to use these components due to specific features that open source components may lack.<br />
<br />
AMDGPU PRO OpenGL is a proprietary, binary userland driver, which works on top of the open-source amdgpu kernel driver. From [https://www.phoronix.com/vr.php?view=27266 Radeon Software 18.50 vs Mesa 19 benchmarks] article: When it comes to OpenGL games, the RadeonSI Gallium3D driver simply dominates the proprietary AMD OpenGL driver. Users of graphic cards other than Radeon Pro are [https://www.amd.com/en/support/kb/release-notes/amdgpu-installation advised to use the amdgpu graphics stack]. Mostly used because of lacking compatibility layers that some software relies on. See gentoo wiki linked below.<br />
<br />
AMDGPU PRO Vulkan - currently the only implementation that has ray tracing (however, reported by users as glitchy). Also it is required dependency for AMF.<br />
<br />
AMDGPU PRO OpenCL - used because Mesa OpenCL is not fully complete. Proprietary component only for Polaris GPUs. The onward GPUs use the open ROCm OpenCL.<br />
<br />
AMDGPU AMF - used for gpu encoding/decoding.<br />
<br />
== Installation ==<br />
<br />
For proprietary OpenGL implementation, use the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base. It contains all the following packages:<br />
<br />
* {{AUR|amdgpu-pro-oglp}}: For proprietary OpenGL implementation<br />
* {{AUR|lib32-amdgpu-pro-oglp}}: For proprietary OpenGL implementation 32 bit applications support<br />
* {{AUR|vulkan-amdgpu-pro}}: For proprietary Vulkan implementation<br />
* {{AUR|lib32-vulkan-amdgpu-pro}}: For proprietary Vulkan implementation 32 bit applications support<br />
* {{AUR|amf-amdgpu-pro}} : For Advanced Media Framework implementation<br />
<br />
{{Note| OGLP is not a performance optimization of opengl, it is an all-new GL driver codebase written from scratch, based on the PAL architecture. in version > 22.20.5 it replaces the libgl}}<br />
<br />
For available OpenCL implementations see [[GPGPU#AMD/ATI]].<br />
<br />
For OBS to work with it use {{AUR|obs-studio-amf}}<br />
<br />
== Usage ==<br />
<br />
=== Using proprietary OpenGL ===<br />
<br />
Launch your application with progl prefix, for example:<br />
<br />
$ progl glmark2<br />
<br />
==== How to ensure you are using AMDGPU-PRO driver ====<br />
<br />
Run the following command:<br />
$ glxinfo | grep "OpenGL vendor string" | cut -f2 -d":" | xargs<br />
If it returns {{ic|AMD}}, then you are running open source driver. If it returns {{ic|Advanced Micro Devices, Inc.}}, then you are running proprietary driver.<br />
<br />
Alternatively, run [[Benchmarking#glmark2|glmark2]]. When using open driver, in OpenGL Information you will see:<br />
GL_VENDOR: AMD<br />
GL_RENDERER: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.7-arch1-1, LLVM 11.0.1)<br />
GL_VERSION: 4.6 (Compatibility Profile) Mesa 20.3.3<br />
<br />
But when using closed driver, you will see:<br />
GL_VENDOR: ATI Technologies Inc.<br />
GL_RENDERER: Radeon RX 580 Series<br />
GL_VERSION: 4.6.14756 Compatibility Profile Context<br />
<br />
=== Using proprietary Vulkan ===<br />
<br />
Launch your application with {{ic|vk_pro}}, for example:<br />
<br />
$ vk_pro vkmark<br />
<br />
See [[Vulkan#Selecting via AMD Vulkan Prefixes]] for more information.<br />
<br />
=== Using Advanced Multimedia Framework ===<br />
See [[FFmpeg#AMD AMF]]<br />
<br />
== Troubleshooting ==<br />
<br />
=== Firmware and AMD drivers ===<br />
<br />
Is a know problem that from time to time AMD and firmware (especially the lastest firmwares) get out of sync and some driver get problem or dont work at all<br />
for some cards if you get the latest driver and latest firmware and didn't work try to downgrade the firmware to see if this fix some problems<br />
<br />
{{ note| as 2023-05-06 for 7900 card it seems that it needs the 20221214.f3c283e1-1 firmware, for more info see [https://github.com/Ashark/archlinux-amdgpu-pro/issues/85 github] issue }}<br />
<br />
=== Intel + AMD hybrid graphics ===<br />
<br />
For users of a hybrid setup with both an Intel GPU and an AMD GPU, usage of the proprietary AMDGPU Pro Workstation Driver might not work as expected due to different MESA implementations. <br />
<br />
The symptom is the following: when you boot your machine, you get a black screen, but with your mouse cursor is moving normally. <br />
<br />
Unfortunately, [[PRIME#Reverse PRIME|Reverse PRIME]] is not a solution. See the [https://gitlab.freedesktop.org/drm/amd/-/issues/985#note_359417 developer response].<br />
<br />
=== Uninstalling packages ===<br />
<br />
If you are in trouble, for example, you cannot login to your system due to black screen, you can revert all back by uninstalling all packages related to AMDGPU PRO. <br />
<br />
Switch a [[virtual console]] (with e.g. {{ic|Ctrl+Alt+F2}}), login and run: <br />
<br />
# pacman -R $(pacman -Qg Radeon_Software_for_Linux | cut -f2 -d" ")<br />
<br />
then reboot.<br />
<br />
=== Southern Islands (SI) or Sea Islands (CIK) GPUs ===<br />
<br />
If using Southern Islands (SI) or Sea Islands (CIK) GPU, when running {{ic|clinfo}}, you get:<br />
amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.<br />
then ensure you are using amdgpu driver, but not radeon. <br />
<br />
Check which driver is currently in use: <br />
<br />
{{hc|lspci -k|<br />
03:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465]<br />
Subsystem: Acer Incorporated [ALI] Aspire V5 Radeon R7 M265<br />
'''Kernel driver in use: radeon'''<br />
Kernel modules: radeon, amdgpu<br />
}}<br />
<br />
See [[AMDGPU#Enable Southern Islands (SI) and Sea Islands (CIK) support]] for more information.<br />
<br />
== See also ==<br />
<br />
* [[Gentoo:AMDGPU-PRO]]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=AMDGPU_PRO&diff=777093AMDGPU PRO2023-05-06T13:50:49Z<p>Mesmer: add information about firmware problems</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[ja:AMDGPU PRO]]<br />
[[zh-hans:AMDGPU PRO]]<br />
{{Related articles start}}<br />
{{Related|AMDGPU}}<br />
{{Related|Vulkan}}<br />
{{Related|GPGPU}}<br />
{{Related|DaVinci Resolve}}<br />
{{Related articles end}}<br />
<br />
This page describes close source drivers for AMD GPUs.<br />
{{Tip|Most users do not need these proprietary drivers.}}<br />
<br />
== Purpose of proprietary components ==<br />
<br />
AMD releases their open source drivers via standard distribution channels. And they also periodically do releases of their ''Radeon Software for Linux'' suite, which includes both open and proprietary components. Open source components are not needed from there, and proprietary components are repacked from the latest ubuntu lts version. They are published in AUR in the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base.<br />
<br />
[https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1316628-radeon-software-for-linux-22-10-driver-being-prepared-for-release?p=1316713#post1316713 Comment] by the AMD explaining why they still package close source drivers:<br />
{{Text art|<nowiki><br />
These days our packaged drivers are mostly intended for:<br />
* customers using slower moving enterprise/LTS distros which do not automatically pick up the latest graphics drivers - we offer them both open source and proprietary/workstation options<br />
* customers using workstation apps who need the extra performance/certification from a workstation-oriented driver (although Marek has done a lot of great work over the last year to improve Mesa performance on workstation apps)<br />
* The third target audience is customers looking for ready-to-go OpenCL, either for use with the packaged open/closed drivers or with the upstream-based stack in a recent distro.<br />
</nowiki>}}<br />
<br />
There are several proprietary components: OpenGL, OpenCL, Vulkan and AMF. Sometimes you may want to use these components due to specific features that open source components may lack.<br />
<br />
AMDGPU PRO OpenGL is a proprietary, binary userland driver, which works on top of the open-source amdgpu kernel driver. From [https://www.phoronix.com/vr.php?view=27266 Radeon Software 18.50 vs Mesa 19 benchmarks] article: When it comes to OpenGL games, the RadeonSI Gallium3D driver simply dominates the proprietary AMD OpenGL driver. Users of graphic cards other than Radeon Pro are [https://www.amd.com/en/support/kb/release-notes/amdgpu-installation advised to use the amdgpu graphics stack]. Mostly used because of lacking compatibility layers that some software relies on. See gentoo wiki linked below.<br />
<br />
AMDGPU PRO Vulkan - currently the only implementation that has ray tracing (however, reported by users as glitchy). Also it is required dependency for AMF.<br />
<br />
AMDGPU PRO OpenCL - used because Mesa OpenCL is not fully complete. Proprietary component only for Polaris GPUs. The onward GPUs use the open ROCm OpenCL.<br />
<br />
AMDGPU AMF - used for gpu encoding/decoding.<br />
<br />
== Installation ==<br />
<br />
For proprietary OpenGL implementation, use the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base. It contains all the following packages:<br />
<br />
* {{AUR|amdgpu-pro-oglp}}: For proprietary OpenGL implementation<br />
* {{AUR|lib32-amdgpu-pro-oglp}}: For proprietary OpenGL implementation 32 bit applications support<br />
* {{AUR|vulkan-amdgpu-pro}}: For proprietary Vulkan implementation<br />
* {{AUR|lib32-vulkan-amdgpu-pro}}: For proprietary Vulkan implementation 32 bit applications support<br />
* {{AUR|amf-amdgpu-pro}} : For Advanced Media Framework implementation<br />
<br />
{{Note| OGLP is not a performance optimization of opengl, it is an all-new GL driver codebase written from scratch, based on the PAL architecture. in version > 22.20.5 it replaces the libgl}}<br />
<br />
For available OpenCL implementations see [[GPGPU#AMD/ATI]].<br />
<br />
For OBS to work with it use {{AUR|obs-studio-amf}}<br />
<br />
== Usage ==<br />
<br />
=== Using proprietary OpenGL ===<br />
<br />
Launch your application with progl prefix, for example:<br />
<br />
$ progl glmark2<br />
<br />
==== How to ensure you are using AMDGPU-PRO driver ====<br />
<br />
Run the following command:<br />
$ glxinfo | grep "OpenGL vendor string" | cut -f2 -d":" | xargs<br />
If it returns {{ic|AMD}}, then you are running open source driver. If it returns {{ic|Advanced Micro Devices, Inc.}}, then you are running proprietary driver.<br />
<br />
Alternatively, run [[Benchmarking#glmark2|glmark2]]. When using open driver, in OpenGL Information you will see:<br />
GL_VENDOR: AMD<br />
GL_RENDERER: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.7-arch1-1, LLVM 11.0.1)<br />
GL_VERSION: 4.6 (Compatibility Profile) Mesa 20.3.3<br />
<br />
But when using closed driver, you will see:<br />
GL_VENDOR: ATI Technologies Inc.<br />
GL_RENDERER: Radeon RX 580 Series<br />
GL_VERSION: 4.6.14756 Compatibility Profile Context<br />
<br />
=== Using proprietary Vulkan ===<br />
<br />
Launch your application with {{ic|vk_pro}}, for example:<br />
<br />
$ vk_pro vkmark<br />
<br />
See [[Vulkan#Selecting via AMD Vulkan Prefixes]] for more information.<br />
<br />
=== Using Advanced Multimedia Framework ===<br />
See [[FFmpeg#AMD AMF]]<br />
<br />
== Troubleshooting ==<br />
<br />
=== Firmware and AMD drivers ===<br />
<br />
Is a know problem that from time to time AMD and firmware (especially the lastest firmwares) get out of sync and some driver get problem or dont work at all<br />
for some cards if you get the latest driver and latest firmware and didn't work try to downgrade the firmware to see if this fix some problems<br />
<br />
{{ note| as 2023-05-06 for 7900 card it seems that it needs the 20221214.f3c283e1-1 firmware more info in [https://github.com/Ashark/archlinux-amdgpu-pro/issues/85 github] issue }}<br />
<br />
=== Intel + AMD hybrid graphics ===<br />
<br />
For users of a hybrid setup with both an Intel GPU and an AMD GPU, usage of the proprietary AMDGPU Pro Workstation Driver might not work as expected due to different MESA implementations. <br />
<br />
The symptom is the following: when you boot your machine, you get a black screen, but with your mouse cursor is moving normally. <br />
<br />
Unfortunately, [[PRIME#Reverse PRIME|Reverse PRIME]] is not a solution. See the [https://gitlab.freedesktop.org/drm/amd/-/issues/985#note_359417 developer response].<br />
<br />
=== Uninstalling packages ===<br />
<br />
If you are in trouble, for example, you cannot login to your system due to black screen, you can revert all back by uninstalling all packages related to AMDGPU PRO. <br />
<br />
Switch a [[virtual console]] (with e.g. {{ic|Ctrl+Alt+F2}}), login and run: <br />
<br />
# pacman -R $(pacman -Qg Radeon_Software_for_Linux | cut -f2 -d" ")<br />
<br />
then reboot.<br />
<br />
=== Southern Islands (SI) or Sea Islands (CIK) GPUs ===<br />
<br />
If using Southern Islands (SI) or Sea Islands (CIK) GPU, when running {{ic|clinfo}}, you get:<br />
amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.<br />
then ensure you are using amdgpu driver, but not radeon. <br />
<br />
Check which driver is currently in use: <br />
<br />
{{hc|lspci -k|<br />
03:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465]<br />
Subsystem: Acer Incorporated [ALI] Aspire V5 Radeon R7 M265<br />
'''Kernel driver in use: radeon'''<br />
Kernel modules: radeon, amdgpu<br />
}}<br />
<br />
See [[AMDGPU#Enable Southern Islands (SI) and Sea Islands (CIK) support]] for more information.<br />
<br />
== See also ==<br />
<br />
* [[Gentoo:AMDGPU-PRO]]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=AMDGPU_PRO&diff=762232AMDGPU PRO2022-12-26T17:09:05Z<p>Mesmer: /* Installation */ add replace info of libgl</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[ja:AMDGPU PRO]]<br />
{{Related articles start}}<br />
{{Related|AMDGPU}}<br />
{{Related|Vulkan}}<br />
{{Related|GPGPU}}<br />
{{Related|DaVinci Resolve}}<br />
{{Related articles end}}<br />
<br />
This page describes close source drivers for AMD GPUs.<br />
{{Tip|Most users do not need these proprietary drivers.}}<br />
<br />
== Purpose of proprietary components ==<br />
<br />
AMD releases their open source drivers via standard distribution channels. And they also periodically do releases of their ''Radeon Software for Linux'' suite, which includes both open and proprietary components. Open source components are not needed from there, and proprietary components are repacked from the latest ubuntu lts version. They are published in AUR in the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base.<br />
<br />
[https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1316628-radeon-software-for-linux-22-10-driver-being-prepared-for-release?p=1316713#post1316713 Comment] by the AMD explaining why they still package close source drivers:<br />
{{Text art|<nowiki><br />
These days our packaged drivers are mostly intended for:<br />
* customers using slower moving enterprise/LTS distros which do not automatically pick up the latest graphics drivers - we offer them both open source and proprietary/workstation options<br />
* customers using workstation apps who need the extra performance/certification from a workstation-oriented driver (although Marek has done a lot of great work over the last year to improve Mesa performance on workstation apps)<br />
* The third target audience is customers looking for ready-to-go OpenCL, either for use with the packaged open/closed drivers or with the upstream-based stack in a recent distro.<br />
</nowiki>}}<br />
<br />
There are several proprietary components: OpenGL, OpenCL, Vulkan and AMF. Sometimes you may want to use these components due to specific features that open source components may lack.<br />
<br />
AMDGPU PRO OpenGL is a proprietary, binary userland driver, which works on top of the open-source amdgpu kernel driver. From [https://www.phoronix.com/vr.php?view=27266 Radeon Software 18.50 vs Mesa 19 benchmarks] article: When it comes to OpenGL games, the RadeonSI Gallium3D driver simply dominates the proprietary AMD OpenGL driver. Users of graphic cards other than Radeon Pro are [https://www.amd.com/en/support/kb/release-notes/amdgpu-installation advised to use the amdgpu graphics stack]. Mostly used because of lacking compatibility layers that some software relies on. See gentoo wiki linked below.<br />
<br />
AMDGPU PRO Vulkan - currently the only implementation that has ray tracing (however, reported by users as glitchy). Also it is required dependency for AMF.<br />
<br />
AMDGPU PRO OpenCL - used because Mesa OpenCL is not fully complete. Proprietary component only for Polaris GPUs. The onward GPUs use the open ROCm OpenCL.<br />
<br />
AMDGPU AMF - used for gpu encoding/decoding.<br />
<br />
== Installation ==<br />
<br />
For proprietary OpenGL implementation, install {{AUR|amdgpu-pro-oglp}} and optionally {{AUR|lib32-amdgpu-pro-oglp}} for 32 bit applications support.<br />
{{Note| OGLP is not a performance optimization of opengl, it is an all-new GL driver codebase written from scratch, based on the PAL architecture. in version > 22.20.5 it replaces the libgl}}<br />
<br />
For available OpenCL implementations see [[GPGPU#AMD/ATI]].<br />
<br />
For proprietary Vulkan implementation, install {{AUR|vulkan-amdgpu-pro}} and optionally {{AUR|lib32-vulkan-amdgpu-pro}} for 32 bit applications support.<br />
<br />
For Advanced Media Framework implementation, install {{AUR|amf-amdgpu-pro}} <br />
<br />
For OBS to work with it use {{AUR|obs-studio-amf}}<br />
<br />
== Usage ==<br />
<br />
=== Using proprietary OpenGL ===<br />
<br />
Launch your application with progl prefix, for example:<br />
<br />
$ progl glmark2<br />
<br />
==== How to ensure you are using AMDGPU-PRO driver ====<br />
<br />
Run the following command:<br />
$ glxinfo | grep "OpenGL vendor string" | cut -f2 -d":" | xargs<br />
If it returns {{ic|AMD}}, then you are running open source driver. If it returns {{ic|Advanced Micro Devices, Inc.}}, then you are running proprietary driver.<br />
<br />
Alternatively, run [[Benchmarking#glmark2|glmark2]]. When using open driver, in OpenGL Information you will see:<br />
GL_VENDOR: AMD<br />
GL_RENDERER: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.7-arch1-1, LLVM 11.0.1)<br />
GL_VERSION: 4.6 (Compatibility Profile) Mesa 20.3.3<br />
<br />
But when using closed driver, you will see:<br />
GL_VENDOR: ATI Technologies Inc.<br />
GL_RENDERER: Radeon RX 580 Series<br />
GL_VERSION: 4.6.14756 Compatibility Profile Context<br />
<br />
=== Using proprietary Vulkan ===<br />
<br />
Launch your application with {{ic|vk_pro}}, for example:<br />
<br />
$ vk_pro vkmark<br />
<br />
See [[Vulkan#Selecting via AMD Vulkan Prefixes]] for more information.<br />
<br />
=== Using Advanced Multimedia Framework ===<br />
See [[FFmpeg#AMD AMF]]<br />
<br />
== Troubleshooting ==<br />
<br />
=== Intel + AMD hybrid graphics ===<br />
<br />
For users of a hybrid setup with both an Intel GPU and an AMD GPU, usage of the proprietary AMDGPU Pro Workstation Driver might not work as expected due to different MESA implementations. <br />
<br />
The symptom is the following: when you boot your machine, you get a black screen, but with your mouse cursor is moving normally. <br />
<br />
Unfortunately, [[PRIME#Reverse PRIME|Reverse PRIME]] is not a solution. See the [https://gitlab.freedesktop.org/drm/amd/-/issues/985#note_359417 developer response].<br />
<br />
=== Uninstalling packages ===<br />
<br />
If you are in trouble, for example, you cannot login to your system due to black screen, you can revert all back by uninstalling all packages related to AMDGPU PRO. <br />
<br />
Switch a [[virtual console]] (with e.g. {{ic|Ctrl+Alt+F2}}), login and run: <br />
<br />
# pacman -R $(pacman -Qg Radeon_Software_for_Linux | cut -f2 -d" "<br />
<br />
then reboot.<br />
<br />
=== Southern Islands (SI) or Sea Islands (CIK) GPUs ===<br />
<br />
If using Southern Islands (SI) or Sea Islands (CIK) GPU, when running {{ic|clinfo}}, you get:<br />
amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.<br />
then ensure you are using amdgpu driver, but not radeon. <br />
<br />
Check which driver is currently in use: <br />
<br />
{{hc|lspci -k|<br />
03:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465]<br />
Subsystem: Acer Incorporated [ALI] Aspire V5 Radeon R7 M265<br />
'''Kernel driver in use: radeon'''<br />
Kernel modules: radeon, amdgpu<br />
}}<br />
<br />
See [[AMDGPU#Enable Southern Islands (SI) and Sea Islands (CIK) support]] for more information.<br />
<br />
== See also ==<br />
<br />
* [[Gentoo:AMDGPU-PRO]]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=AMDGPU_PRO&diff=762231AMDGPU PRO2022-12-26T17:08:01Z<p>Mesmer: /* Installation */ correct typo</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[ja:AMDGPU PRO]]<br />
{{Related articles start}}<br />
{{Related|AMDGPU}}<br />
{{Related|Vulkan}}<br />
{{Related|GPGPU}}<br />
{{Related|DaVinci Resolve}}<br />
{{Related articles end}}<br />
<br />
This page describes close source drivers for AMD GPUs.<br />
{{Tip|Most users do not need these proprietary drivers.}}<br />
<br />
== Purpose of proprietary components ==<br />
<br />
AMD releases their open source drivers via standard distribution channels. And they also periodically do releases of their ''Radeon Software for Linux'' suite, which includes both open and proprietary components. Open source components are not needed from there, and proprietary components are repacked from the latest ubuntu lts version. They are published in AUR in the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base.<br />
<br />
[https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1316628-radeon-software-for-linux-22-10-driver-being-prepared-for-release?p=1316713#post1316713 Comment] by the AMD explaining why they still package close source drivers:<br />
{{Text art|<nowiki><br />
These days our packaged drivers are mostly intended for:<br />
* customers using slower moving enterprise/LTS distros which do not automatically pick up the latest graphics drivers - we offer them both open source and proprietary/workstation options<br />
* customers using workstation apps who need the extra performance/certification from a workstation-oriented driver (although Marek has done a lot of great work over the last year to improve Mesa performance on workstation apps)<br />
* The third target audience is customers looking for ready-to-go OpenCL, either for use with the packaged open/closed drivers or with the upstream-based stack in a recent distro.<br />
</nowiki>}}<br />
<br />
There are several proprietary components: OpenGL, OpenCL, Vulkan and AMF. Sometimes you may want to use these components due to specific features that open source components may lack.<br />
<br />
AMDGPU PRO OpenGL is a proprietary, binary userland driver, which works on top of the open-source amdgpu kernel driver. From [https://www.phoronix.com/vr.php?view=27266 Radeon Software 18.50 vs Mesa 19 benchmarks] article: When it comes to OpenGL games, the RadeonSI Gallium3D driver simply dominates the proprietary AMD OpenGL driver. Users of graphic cards other than Radeon Pro are [https://www.amd.com/en/support/kb/release-notes/amdgpu-installation advised to use the amdgpu graphics stack]. Mostly used because of lacking compatibility layers that some software relies on. See gentoo wiki linked below.<br />
<br />
AMDGPU PRO Vulkan - currently the only implementation that has ray tracing (however, reported by users as glitchy). Also it is required dependency for AMF.<br />
<br />
AMDGPU PRO OpenCL - used because Mesa OpenCL is not fully complete. Proprietary component only for Polaris GPUs. The onward GPUs use the open ROCm OpenCL.<br />
<br />
AMDGPU AMF - used for gpu encoding/decoding.<br />
<br />
== Installation ==<br />
<br />
For proprietary OpenGL implementation, install {{AUR|amdgpu-pro-oglp}} and optionally {{AUR|lib32-amdgpu-pro-oglp}} for 32 bit applications support.<br />
{{Note| OGLP is not a performance optimization of opengl, it is an all-new GL driver codebase written from scratch, based on the PAL architecture.}}<br />
<br />
For available OpenCL implementations see [[GPGPU#AMD/ATI]].<br />
<br />
For proprietary Vulkan implementation, install {{AUR|vulkan-amdgpu-pro}} and optionally {{AUR|lib32-vulkan-amdgpu-pro}} for 32 bit applications support.<br />
<br />
For Advanced Media Framework implementation, install {{AUR|amf-amdgpu-pro}} <br />
<br />
For OBS to work with it use {{AUR|obs-studio-amf}}<br />
<br />
== Usage ==<br />
<br />
=== Using proprietary OpenGL ===<br />
<br />
Launch your application with progl prefix, for example:<br />
<br />
$ progl glmark2<br />
<br />
==== How to ensure you are using AMDGPU-PRO driver ====<br />
<br />
Run the following command:<br />
$ glxinfo | grep "OpenGL vendor string" | cut -f2 -d":" | xargs<br />
If it returns {{ic|AMD}}, then you are running open source driver. If it returns {{ic|Advanced Micro Devices, Inc.}}, then you are running proprietary driver.<br />
<br />
Alternatively, run [[Benchmarking#glmark2|glmark2]]. When using open driver, in OpenGL Information you will see:<br />
GL_VENDOR: AMD<br />
GL_RENDERER: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.7-arch1-1, LLVM 11.0.1)<br />
GL_VERSION: 4.6 (Compatibility Profile) Mesa 20.3.3<br />
<br />
But when using closed driver, you will see:<br />
GL_VENDOR: ATI Technologies Inc.<br />
GL_RENDERER: Radeon RX 580 Series<br />
GL_VERSION: 4.6.14756 Compatibility Profile Context<br />
<br />
=== Using proprietary Vulkan ===<br />
<br />
Launch your application with {{ic|vk_pro}}, for example:<br />
<br />
$ vk_pro vkmark<br />
<br />
See [[Vulkan#Selecting via AMD Vulkan Prefixes]] for more information.<br />
<br />
=== Using Advanced Multimedia Framework ===<br />
See [[FFmpeg#AMD AMF]]<br />
<br />
== Troubleshooting ==<br />
<br />
=== Intel + AMD hybrid graphics ===<br />
<br />
For users of a hybrid setup with both an Intel GPU and an AMD GPU, usage of the proprietary AMDGPU Pro Workstation Driver might not work as expected due to different MESA implementations. <br />
<br />
The symptom is the following: when you boot your machine, you get a black screen, but with your mouse cursor is moving normally. <br />
<br />
Unfortunately, [[PRIME#Reverse PRIME|Reverse PRIME]] is not a solution. See the [https://gitlab.freedesktop.org/drm/amd/-/issues/985#note_359417 developer response].<br />
<br />
=== Uninstalling packages ===<br />
<br />
If you are in trouble, for example, you cannot login to your system due to black screen, you can revert all back by uninstalling all packages related to AMDGPU PRO. <br />
<br />
Switch a [[virtual console]] (with e.g. {{ic|Ctrl+Alt+F2}}), login and run: <br />
<br />
# pacman -R $(pacman -Qg Radeon_Software_for_Linux | cut -f2 -d" "<br />
<br />
then reboot.<br />
<br />
=== Southern Islands (SI) or Sea Islands (CIK) GPUs ===<br />
<br />
If using Southern Islands (SI) or Sea Islands (CIK) GPU, when running {{ic|clinfo}}, you get:<br />
amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.<br />
then ensure you are using amdgpu driver, but not radeon. <br />
<br />
Check which driver is currently in use: <br />
<br />
{{hc|lspci -k|<br />
03:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465]<br />
Subsystem: Acer Incorporated [ALI] Aspire V5 Radeon R7 M265<br />
'''Kernel driver in use: radeon'''<br />
Kernel modules: radeon, amdgpu<br />
}}<br />
<br />
See [[AMDGPU#Enable Southern Islands (SI) and Sea Islands (CIK) support]] for more information.<br />
<br />
== See also ==<br />
<br />
* [[Gentoo:AMDGPU-PRO]]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=AMDGPU_PRO&diff=762230AMDGPU PRO2022-12-26T17:07:33Z<p>Mesmer: /* Installation */ add of OGLP info</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[ja:AMDGPU PRO]]<br />
{{Related articles start}}<br />
{{Related|AMDGPU}}<br />
{{Related|Vulkan}}<br />
{{Related|GPGPU}}<br />
{{Related|DaVinci Resolve}}<br />
{{Related articles end}}<br />
<br />
This page describes close source drivers for AMD GPUs.<br />
{{Tip|Most users do not need these proprietary drivers.}}<br />
<br />
== Purpose of proprietary components ==<br />
<br />
AMD releases their open source drivers via standard distribution channels. And they also periodically do releases of their ''Radeon Software for Linux'' suite, which includes both open and proprietary components. Open source components are not needed from there, and proprietary components are repacked from the latest ubuntu lts version. They are published in AUR in the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base.<br />
<br />
[https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1316628-radeon-software-for-linux-22-10-driver-being-prepared-for-release?p=1316713#post1316713 Comment] by the AMD explaining why they still package close source drivers:<br />
{{Text art|<nowiki><br />
These days our packaged drivers are mostly intended for:<br />
* customers using slower moving enterprise/LTS distros which do not automatically pick up the latest graphics drivers - we offer them both open source and proprietary/workstation options<br />
* customers using workstation apps who need the extra performance/certification from a workstation-oriented driver (although Marek has done a lot of great work over the last year to improve Mesa performance on workstation apps)<br />
* The third target audience is customers looking for ready-to-go OpenCL, either for use with the packaged open/closed drivers or with the upstream-based stack in a recent distro.<br />
</nowiki>}}<br />
<br />
There are several proprietary components: OpenGL, OpenCL, Vulkan and AMF. Sometimes you may want to use these components due to specific features that open source components may lack.<br />
<br />
AMDGPU PRO OpenGL is a proprietary, binary userland driver, which works on top of the open-source amdgpu kernel driver. From [https://www.phoronix.com/vr.php?view=27266 Radeon Software 18.50 vs Mesa 19 benchmarks] article: When it comes to OpenGL games, the RadeonSI Gallium3D driver simply dominates the proprietary AMD OpenGL driver. Users of graphic cards other than Radeon Pro are [https://www.amd.com/en/support/kb/release-notes/amdgpu-installation advised to use the amdgpu graphics stack]. Mostly used because of lacking compatibility layers that some software relies on. See gentoo wiki linked below.<br />
<br />
AMDGPU PRO Vulkan - currently the only implementation that has ray tracing (however, reported by users as glitchy). Also it is required dependency for AMF.<br />
<br />
AMDGPU PRO OpenCL - used because Mesa OpenCL is not fully complete. Proprietary component only for Polaris GPUs. The onward GPUs use the open ROCm OpenCL.<br />
<br />
AMDGPU AMF - used for gpu encoding/decoding.<br />
<br />
== Installation ==<br />
<br />
For proprietary OpenGL implementation, install {{AUR|amdgpu-pro-oglp}} and optionally {{AUR|lib32-amdgpu-pro-oglpl}} for 32 bit applications support.<br />
{{Note| OGLP is not a performance optimization of opengl, it is an all-new GL driver codebase written from scratch, based on the PAL architecture.}}<br />
<br />
For available OpenCL implementations see [[GPGPU#AMD/ATI]].<br />
<br />
For proprietary Vulkan implementation, install {{AUR|vulkan-amdgpu-pro}} and optionally {{AUR|lib32-vulkan-amdgpu-pro}} for 32 bit applications support.<br />
<br />
For Advanced Media Framework implementation, install {{AUR|amf-amdgpu-pro}} <br />
<br />
For OBS to work with it use {{AUR|obs-studio-amf}}<br />
<br />
== Usage ==<br />
<br />
=== Using proprietary OpenGL ===<br />
<br />
Launch your application with progl prefix, for example:<br />
<br />
$ progl glmark2<br />
<br />
==== How to ensure you are using AMDGPU-PRO driver ====<br />
<br />
Run the following command:<br />
$ glxinfo | grep "OpenGL vendor string" | cut -f2 -d":" | xargs<br />
If it returns {{ic|AMD}}, then you are running open source driver. If it returns {{ic|Advanced Micro Devices, Inc.}}, then you are running proprietary driver.<br />
<br />
Alternatively, run [[Benchmarking#glmark2|glmark2]]. When using open driver, in OpenGL Information you will see:<br />
GL_VENDOR: AMD<br />
GL_RENDERER: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.7-arch1-1, LLVM 11.0.1)<br />
GL_VERSION: 4.6 (Compatibility Profile) Mesa 20.3.3<br />
<br />
But when using closed driver, you will see:<br />
GL_VENDOR: ATI Technologies Inc.<br />
GL_RENDERER: Radeon RX 580 Series<br />
GL_VERSION: 4.6.14756 Compatibility Profile Context<br />
<br />
=== Using proprietary Vulkan ===<br />
<br />
Launch your application with {{ic|vk_pro}}, for example:<br />
<br />
$ vk_pro vkmark<br />
<br />
See [[Vulkan#Selecting via AMD Vulkan Prefixes]] for more information.<br />
<br />
=== Using Advanced Multimedia Framework ===<br />
See [[FFmpeg#AMD AMF]]<br />
<br />
== Troubleshooting ==<br />
<br />
=== Intel + AMD hybrid graphics ===<br />
<br />
For users of a hybrid setup with both an Intel GPU and an AMD GPU, usage of the proprietary AMDGPU Pro Workstation Driver might not work as expected due to different MESA implementations. <br />
<br />
The symptom is the following: when you boot your machine, you get a black screen, but with your mouse cursor is moving normally. <br />
<br />
Unfortunately, [[PRIME#Reverse PRIME|Reverse PRIME]] is not a solution. See the [https://gitlab.freedesktop.org/drm/amd/-/issues/985#note_359417 developer response].<br />
<br />
=== Uninstalling packages ===<br />
<br />
If you are in trouble, for example, you cannot login to your system due to black screen, you can revert all back by uninstalling all packages related to AMDGPU PRO. <br />
<br />
Switch a [[virtual console]] (with e.g. {{ic|Ctrl+Alt+F2}}), login and run: <br />
<br />
# pacman -R $(pacman -Qg Radeon_Software_for_Linux | cut -f2 -d" "<br />
<br />
then reboot.<br />
<br />
=== Southern Islands (SI) or Sea Islands (CIK) GPUs ===<br />
<br />
If using Southern Islands (SI) or Sea Islands (CIK) GPU, when running {{ic|clinfo}}, you get:<br />
amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.<br />
then ensure you are using amdgpu driver, but not radeon. <br />
<br />
Check which driver is currently in use: <br />
<br />
{{hc|lspci -k|<br />
03:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465]<br />
Subsystem: Acer Incorporated [ALI] Aspire V5 Radeon R7 M265<br />
'''Kernel driver in use: radeon'''<br />
Kernel modules: radeon, amdgpu<br />
}}<br />
<br />
See [[AMDGPU#Enable Southern Islands (SI) and Sea Islands (CIK) support]] for more information.<br />
<br />
== See also ==<br />
<br />
* [[Gentoo:AMDGPU-PRO]]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=Open_Broadcaster_Software&diff=761907Open Broadcaster Software2022-12-23T04:25:45Z<p>Mesmer: /* Encoding using AMF */ correct text in AMF encoder</p>
<hr />
<div>[[Category:Multimedia]]<br />
[[Category:Streaming]]<br />
[[Category:Video]]<br />
[[ja:Open Broadcaster Software]]<br />
[[zh-hans:Open Broadcaster Software]]<br />
{{Related articles start}}<br />
{{Related|Streaming to twitch.tv}}<br />
{{Related articles end}}<br />
<br />
[https://obsproject.com/ Open Broadcaster Software] (OBS) is an open source cross-platform video recording and live-streaming application. It provides an easy to pick up and extensible workflow with customizable scenes, volume mixers, transitions, filters and more.<br />
<br />
== Installation ==<br />
<br />
OBS can be [[install]]ed with the {{Pkg|obs-studio}} package, or {{AUR|obs-studio-git}} for the development version.<br />
<br />
Other clients that provide other functionality are available:<br />
<br />
* {{AUR|obs-studio-tytan652}}<br />
* {{AUR|obs-studio-browser}}<br />
* {{AUR|obs-studio-minimal}}<br />
* {{AUR|obs-hevc-vaapi-git}}<br />
* {{AUR|obs-studio-amf}}<br />
<br />
== Configuration ==<br />
<br />
For easy configuration, ''Tools > Auto-Configuration Wizard'' can quickly set up base settings for both recording and live-streaming. The wizard auto-selects bitrate, resolution and encoder based on your hardware (and network connection if streaming was set up).<br />
<br />
=== Hardware video acceleration ===<br />
<br />
Hardware-accelerated encoding and decoding is best for performance, CPU/GPU usage and quality. The encoder can be changed in ''Settings > Output > Streaming > Encoder'' (may have to first set ''Settings > Output > Output Mode'' to ''Advanced''). See [[Hardware video acceleration]] if a hardware encoder is not detected.<br />
<br />
=== Recording output ===<br />
<br />
By default, OBS will output recordings in the user's home path with spaces in the video filename and the same encoder selected for streaming. The output path, filesize, file format, filename style and more can be changed in ''Settings > Output > Streaming > Encoder''.<br />
<br />
=== Hotkeys ===<br />
<br />
By default, OBS assigns no hotkeys. All hotkey pairs highlighted in red upon selection can use the same keybind for toggling the pair's function.<br />
<br />
=== Virtual camera output ===<br />
<br />
Starting from version 26.1, OBS supports virtual camera output on Linux. To use it, [[install]] the {{Pkg|v4l2loopback-dkms}} package and add yourself to the {{ic|video}} [[user group]], then the ''Start Virtual Camera'' button will appear in OBS. If the {{ic|v4l2loopback}} [[kernel module]] is not loaded yet, OBS will automatically try to load it and ask for administrative privileges to do so (using {{man|1|pkexec}}).<br />
<br />
=== Wayland ===<br />
<br />
Since OBS is a Qt application, see [[Wayland#Qt]] to make it work under Wayland. See [[PipeWire#WebRTC screen sharing]] to enable Wayland screen capture.<br />
<br />
==== Global shortcuts in KDE not working ====<br />
<br />
The global shortcuts set in OBS are working only when the OBS is in focus. As a workaround you can use a websocket plugin to control OBS. See [https://gitlab.com/AndrewShark/obs-wayland-shortcuts].<br />
<br />
== Tips and tricks ==<br />
<br />
=== Browser source ===<br />
<br />
The [https://github.com/obsproject/obs-browser obs-browser] plugin gives the ability to use a webpage within the canvas, typically for web-based overlays. The webpage can be interacted with and works like any other source type.<br />
<br />
The default {{Pkg|obs-studio}} package [https://bugs.archlinux.org/task/66008 does not provide this plugin]. It can be added via other clients or plugin packages:<br />
<br />
* {{AUR|obs-studio-git}} compiles with the browser plugin.<br />
* {{AUR|obs-linuxbrowser}} (or {{AUR|obs-linuxbrowser-bin}} for pre-compiled binary) provides the old [https://github.com/bazukas/obs-linuxbrowser linuxbrowser] plugin. Works with the default client, but is abandoned and slightly outdated. The quickest way to get the plugin as of December 2021.<br />
* {{AUR|obs-studio-tytan652}} is a custom client that provides the browser plugin as well as browser docks, along with other general improvements.<br />
<br />
=== Capturing via Vulkan/OpenGL ===<br />
<br />
The [https://github.com/nowrep/obs-vkcapture obs-vkcapture] plugin adds the capability to capture [[Vulkan]] or [[OpenGL]] programs by hooking into those APIs directly, rather than using generic [[Xorg]] or [[Wayland]] window capture APIs. To use it, [[install]] {{AUR|obs-vkcapture-git}}, as well as {{AUR|lib32-obs-vkcapture-git}} if capturing 32-bit applications. Follow the instructions in the GitHub repository to setup a ''Game Capture'' using the plugin.<br />
<br />
=== Encoding using GStreamer ===<br />
<br />
[https://github.com/fzwoch/obs-gstreamer obs-gstreamer] is a project which provides:<br />
<br />
* An encoder plugin for using GStreamer for encoding.<br />
* Plugins for using a [https://gstreamer.freedesktop.org/documentation/tutorials/basic/dynamic-pipelines.html GStreamer pipeline] as a source, video filter, or audio filter. This is an advanced capability intended for users familiar with GStreamer usage.<br />
<br />
AMD GPU users report that [[VA-API]] via GStreamer outperforms OBS's default VA-API video encoding capabilities. To use obs-gstreamer for encoding, [[install]] {{AUR|obs-gstreamer}} and change OBS' encoder to ''GStreamer Encoder''. If OBS gives an error regarding encoders you might need to [[install]] the {{Pkg|gstreamer-vaapi}} package.<br />
<br />
=== Encoding using AMF ===<br />
<br />
[https://github.com/obsproject/obs-studio/pull/7206 obs-studio-amf] is a pull request for obs-studio that try to implement the AMF as encoder for linux as the same way for the windows, with the same options as the windows version<br />
<br />
To make this work you need [[AMDGPU_PRO]] and {{AUR|obs-studio-amf}} and set the '''VK_ICD_FILENAMES''' as variable <br />
<br />
example:<br />
<br />
$VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/amd_pro_icd64.json:/usr/share/vulkan/icd.d/amd_pro_icd32.json obs<br />
<br />
As a PR for the main branch someday it could be merged to the main and this will no more exist as a separated patch<br />
<br />
the AMF should beat any HW encoder for AMD with speed and quality at the moment but it could change with new drivers, so its highly unstable<br />
<br />
=== Manual plugins installation ===<br />
<br />
You can manually install plugin to the {{ic|~/.config/obs-studio/plugins/}}. The folder structure is the following:<br />
~/.config/obs-studio/plugins/plugin_name/bin/64-bit/plugin_name.so<br />
~/.config/obs-studio/plugins/plugin_name/data/locale/en-US.ini<br />
<br />
== See also ==<br />
<br />
* [https://obsproject.com/wiki/Home OBS Wiki]<br />
* [https://www.youtube.com/watch?v=IZjTXVKYm2Q Fixing The Missing OBS Features On Arch Linux]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=Open_Broadcaster_Software&diff=761906Open Broadcaster Software2022-12-23T04:22:22Z<p>Mesmer: /* Tips and tricks */ add obs-studio-amf to the list with how to use</p>
<hr />
<div>[[Category:Multimedia]]<br />
[[Category:Streaming]]<br />
[[Category:Video]]<br />
[[ja:Open Broadcaster Software]]<br />
[[zh-hans:Open Broadcaster Software]]<br />
{{Related articles start}}<br />
{{Related|Streaming to twitch.tv}}<br />
{{Related articles end}}<br />
<br />
[https://obsproject.com/ Open Broadcaster Software] (OBS) is an open source cross-platform video recording and live-streaming application. It provides an easy to pick up and extensible workflow with customizable scenes, volume mixers, transitions, filters and more.<br />
<br />
== Installation ==<br />
<br />
OBS can be [[install]]ed with the {{Pkg|obs-studio}} package, or {{AUR|obs-studio-git}} for the development version.<br />
<br />
Other clients that provide other functionality are available:<br />
<br />
* {{AUR|obs-studio-tytan652}}<br />
* {{AUR|obs-studio-browser}}<br />
* {{AUR|obs-studio-minimal}}<br />
* {{AUR|obs-hevc-vaapi-git}}<br />
* {{AUR|obs-studio-amf}}<br />
<br />
== Configuration ==<br />
<br />
For easy configuration, ''Tools > Auto-Configuration Wizard'' can quickly set up base settings for both recording and live-streaming. The wizard auto-selects bitrate, resolution and encoder based on your hardware (and network connection if streaming was set up).<br />
<br />
=== Hardware video acceleration ===<br />
<br />
Hardware-accelerated encoding and decoding is best for performance, CPU/GPU usage and quality. The encoder can be changed in ''Settings > Output > Streaming > Encoder'' (may have to first set ''Settings > Output > Output Mode'' to ''Advanced''). See [[Hardware video acceleration]] if a hardware encoder is not detected.<br />
<br />
=== Recording output ===<br />
<br />
By default, OBS will output recordings in the user's home path with spaces in the video filename and the same encoder selected for streaming. The output path, filesize, file format, filename style and more can be changed in ''Settings > Output > Streaming > Encoder''.<br />
<br />
=== Hotkeys ===<br />
<br />
By default, OBS assigns no hotkeys. All hotkey pairs highlighted in red upon selection can use the same keybind for toggling the pair's function.<br />
<br />
=== Virtual camera output ===<br />
<br />
Starting from version 26.1, OBS supports virtual camera output on Linux. To use it, [[install]] the {{Pkg|v4l2loopback-dkms}} package and add yourself to the {{ic|video}} [[user group]], then the ''Start Virtual Camera'' button will appear in OBS. If the {{ic|v4l2loopback}} [[kernel module]] is not loaded yet, OBS will automatically try to load it and ask for administrative privileges to do so (using {{man|1|pkexec}}).<br />
<br />
=== Wayland ===<br />
<br />
Since OBS is a Qt application, see [[Wayland#Qt]] to make it work under Wayland. See [[PipeWire#WebRTC screen sharing]] to enable Wayland screen capture.<br />
<br />
==== Global shortcuts in KDE not working ====<br />
<br />
The global shortcuts set in OBS are working only when the OBS is in focus. As a workaround you can use a websocket plugin to control OBS. See [https://gitlab.com/AndrewShark/obs-wayland-shortcuts].<br />
<br />
== Tips and tricks ==<br />
<br />
=== Browser source ===<br />
<br />
The [https://github.com/obsproject/obs-browser obs-browser] plugin gives the ability to use a webpage within the canvas, typically for web-based overlays. The webpage can be interacted with and works like any other source type.<br />
<br />
The default {{Pkg|obs-studio}} package [https://bugs.archlinux.org/task/66008 does not provide this plugin]. It can be added via other clients or plugin packages:<br />
<br />
* {{AUR|obs-studio-git}} compiles with the browser plugin.<br />
* {{AUR|obs-linuxbrowser}} (or {{AUR|obs-linuxbrowser-bin}} for pre-compiled binary) provides the old [https://github.com/bazukas/obs-linuxbrowser linuxbrowser] plugin. Works with the default client, but is abandoned and slightly outdated. The quickest way to get the plugin as of December 2021.<br />
* {{AUR|obs-studio-tytan652}} is a custom client that provides the browser plugin as well as browser docks, along with other general improvements.<br />
<br />
=== Capturing via Vulkan/OpenGL ===<br />
<br />
The [https://github.com/nowrep/obs-vkcapture obs-vkcapture] plugin adds the capability to capture [[Vulkan]] or [[OpenGL]] programs by hooking into those APIs directly, rather than using generic [[Xorg]] or [[Wayland]] window capture APIs. To use it, [[install]] {{AUR|obs-vkcapture-git}}, as well as {{AUR|lib32-obs-vkcapture-git}} if capturing 32-bit applications. Follow the instructions in the GitHub repository to setup a ''Game Capture'' using the plugin.<br />
<br />
=== Encoding using GStreamer ===<br />
<br />
[https://github.com/fzwoch/obs-gstreamer obs-gstreamer] is a project which provides:<br />
<br />
* An encoder plugin for using GStreamer for encoding.<br />
* Plugins for using a [https://gstreamer.freedesktop.org/documentation/tutorials/basic/dynamic-pipelines.html GStreamer pipeline] as a source, video filter, or audio filter. This is an advanced capability intended for users familiar with GStreamer usage.<br />
<br />
AMD GPU users report that [[VA-API]] via GStreamer outperforms OBS's default VA-API video encoding capabilities. To use obs-gstreamer for encoding, [[install]] {{AUR|obs-gstreamer}} and change OBS' encoder to ''GStreamer Encoder''. If OBS gives an error regarding encoders you might need to [[install]] the {{Pkg|gstreamer-vaapi}} package.<br />
<br />
=== Encoding using AMF ===<br />
<br />
[https://github.com/obsproject/obs-studio/pull/7206 obs-studio-amf] is a pull request for obs-studio that try to implement the AMF as encoder for linux as the same way for the windows, with the same options as the windows version<br />
<br />
To make this work you need [[AMDGPU_PRO]] and {{AUR|obs-studio-amf}}<br />
set the `VK_ICD_FILENAMES` as variable for the AMDGPU-PRO to work, you could set as any way you want as example its a valid way:<br />
$VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/amd_pro_icd64.json:/usr/share/vulkan/icd.d/amd_pro_icd32.json obs<br />
<br />
As a PR for the main branch someday it could be merged to the main and this will no more exist as a separated patch<br />
<br />
the AMF should beat any HW encoder for AMD with speed and quality at the moment but it could change with new drivers, so its highly unstable<br />
<br />
=== Manual plugins installation ===<br />
<br />
You can manually install plugin to the {{ic|~/.config/obs-studio/plugins/}}. The folder structure is the following:<br />
~/.config/obs-studio/plugins/plugin_name/bin/64-bit/plugin_name.so<br />
~/.config/obs-studio/plugins/plugin_name/data/locale/en-US.ini<br />
<br />
== See also ==<br />
<br />
* [https://obsproject.com/wiki/Home OBS Wiki]<br />
* [https://www.youtube.com/watch?v=IZjTXVKYm2Q Fixing The Missing OBS Features On Arch Linux]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=Open_Broadcaster_Software&diff=761900Open Broadcaster Software2022-12-23T04:08:14Z<p>Mesmer: /* Installation */ add amf obs that patch the obs to work with amf</p>
<hr />
<div>[[Category:Multimedia]]<br />
[[Category:Streaming]]<br />
[[Category:Video]]<br />
[[ja:Open Broadcaster Software]]<br />
[[zh-hans:Open Broadcaster Software]]<br />
{{Related articles start}}<br />
{{Related|Streaming to twitch.tv}}<br />
{{Related articles end}}<br />
<br />
[https://obsproject.com/ Open Broadcaster Software] (OBS) is an open source cross-platform video recording and live-streaming application. It provides an easy to pick up and extensible workflow with customizable scenes, volume mixers, transitions, filters and more.<br />
<br />
== Installation ==<br />
<br />
OBS can be [[install]]ed with the {{Pkg|obs-studio}} package, or {{AUR|obs-studio-git}} for the development version.<br />
<br />
Other clients that provide other functionality are available:<br />
<br />
* {{AUR|obs-studio-tytan652}}<br />
* {{AUR|obs-studio-browser}}<br />
* {{AUR|obs-studio-minimal}}<br />
* {{AUR|obs-hevc-vaapi-git}}<br />
* {{AUR|obs-studio-amf}}<br />
<br />
== Configuration ==<br />
<br />
For easy configuration, ''Tools > Auto-Configuration Wizard'' can quickly set up base settings for both recording and live-streaming. The wizard auto-selects bitrate, resolution and encoder based on your hardware (and network connection if streaming was set up).<br />
<br />
=== Hardware video acceleration ===<br />
<br />
Hardware-accelerated encoding and decoding is best for performance, CPU/GPU usage and quality. The encoder can be changed in ''Settings > Output > Streaming > Encoder'' (may have to first set ''Settings > Output > Output Mode'' to ''Advanced''). See [[Hardware video acceleration]] if a hardware encoder is not detected.<br />
<br />
=== Recording output ===<br />
<br />
By default, OBS will output recordings in the user's home path with spaces in the video filename and the same encoder selected for streaming. The output path, filesize, file format, filename style and more can be changed in ''Settings > Output > Streaming > Encoder''.<br />
<br />
=== Hotkeys ===<br />
<br />
By default, OBS assigns no hotkeys. All hotkey pairs highlighted in red upon selection can use the same keybind for toggling the pair's function.<br />
<br />
=== Virtual camera output ===<br />
<br />
Starting from version 26.1, OBS supports virtual camera output on Linux. To use it, [[install]] the {{Pkg|v4l2loopback-dkms}} package and add yourself to the {{ic|video}} [[user group]], then the ''Start Virtual Camera'' button will appear in OBS. If the {{ic|v4l2loopback}} [[kernel module]] is not loaded yet, OBS will automatically try to load it and ask for administrative privileges to do so (using {{man|1|pkexec}}).<br />
<br />
=== Wayland ===<br />
<br />
Since OBS is a Qt application, see [[Wayland#Qt]] to make it work under Wayland. See [[PipeWire#WebRTC screen sharing]] to enable Wayland screen capture.<br />
<br />
==== Global shortcuts in KDE not working ====<br />
<br />
The global shortcuts set in OBS are working only when the OBS is in focus. As a workaround you can use a websocket plugin to control OBS. See [https://gitlab.com/AndrewShark/obs-wayland-shortcuts].<br />
<br />
== Tips and tricks ==<br />
<br />
=== Browser source ===<br />
<br />
The [https://github.com/obsproject/obs-browser obs-browser] plugin gives the ability to use a webpage within the canvas, typically for web-based overlays. The webpage can be interacted with and works like any other source type.<br />
<br />
The default {{Pkg|obs-studio}} package [https://bugs.archlinux.org/task/66008 does not provide this plugin]. It can be added via other clients or plugin packages:<br />
<br />
* {{AUR|obs-studio-git}} compiles with the browser plugin.<br />
* {{AUR|obs-linuxbrowser}} (or {{AUR|obs-linuxbrowser-bin}} for pre-compiled binary) provides the old [https://github.com/bazukas/obs-linuxbrowser linuxbrowser] plugin. Works with the default client, but is abandoned and slightly outdated. The quickest way to get the plugin as of December 2021.<br />
* {{AUR|obs-studio-tytan652}} is a custom client that provides the browser plugin as well as browser docks, along with other general improvements.<br />
<br />
=== Capturing via Vulkan/OpenGL ===<br />
<br />
The [https://github.com/nowrep/obs-vkcapture obs-vkcapture] plugin adds the capability to capture [[Vulkan]] or [[OpenGL]] programs by hooking into those APIs directly, rather than using generic [[Xorg]] or [[Wayland]] window capture APIs. To use it, [[install]] {{AUR|obs-vkcapture-git}}, as well as {{AUR|lib32-obs-vkcapture-git}} if capturing 32-bit applications. Follow the instructions in the GitHub repository to setup a ''Game Capture'' using the plugin.<br />
<br />
=== Encoding using GStreamer ===<br />
<br />
[https://github.com/fzwoch/obs-gstreamer obs-gstreamer] is a project which provides:<br />
<br />
* An encoder plugin for using GStreamer for encoding.<br />
* Plugins for using a [https://gstreamer.freedesktop.org/documentation/tutorials/basic/dynamic-pipelines.html GStreamer pipeline] as a source, video filter, or audio filter. This is an advanced capability intended for users familiar with GStreamer usage.<br />
<br />
AMD GPU users report that [[VA-API]] via GStreamer outperforms OBS's default VA-API video encoding capabilities. To use obs-gstreamer for encoding, [[install]] {{AUR|obs-gstreamer}} and change OBS' encoder to ''GStreamer Encoder''. If OBS gives an error regarding encoders you might need to [[install]] the {{Pkg|gstreamer-vaapi}} package.<br />
<br />
=== Manual plugins installation ===<br />
<br />
You can manually install plugin to the {{ic|~/.config/obs-studio/plugins/}}. The folder structure is the following:<br />
~/.config/obs-studio/plugins/plugin_name/bin/64-bit/plugin_name.so<br />
~/.config/obs-studio/plugins/plugin_name/data/locale/en-US.ini<br />
<br />
== See also ==<br />
<br />
* [https://obsproject.com/wiki/Home OBS Wiki]<br />
* [https://www.youtube.com/watch?v=IZjTXVKYm2Q Fixing The Missing OBS Features On Arch Linux]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=AMDGPU_PRO&diff=761899AMDGPU PRO2022-12-23T04:04:00Z<p>Mesmer: /* Installation */ with 22.40 a specific firmware is not needed anymore</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[ja:AMDGPU PRO]]<br />
{{Related articles start}}<br />
{{Related|AMDGPU}}<br />
{{Related|Vulkan}}<br />
{{Related|GPGPU}}<br />
{{Related|DaVinci Resolve}}<br />
{{Related articles end}}<br />
<br />
This page describes close source drivers for AMD GPUs.<br />
{{Tip|Most users do not need these proprietary drivers.}}<br />
<br />
== Purpose of proprietary components ==<br />
<br />
AMD releases their open source drivers via standard distribution channels. And they also periodically do releases of their ''Radeon Software for Linux'' suite, which includes both open and proprietary components. Open source components are not needed from there, and proprietary components are repacked from the latest ubuntu lts version. They are published in AUR in the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base.<br />
<br />
[https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1316628-radeon-software-for-linux-22-10-driver-being-prepared-for-release?p=1316713#post1316713 Comment] by the AMD explaining why they still package close source drivers:<br />
{{Text art|<nowiki><br />
These days our packaged drivers are mostly intended for:<br />
* customers using slower moving enterprise/LTS distros which do not automatically pick up the latest graphics drivers - we offer them both open source and proprietary/workstation options<br />
* customers using workstation apps who need the extra performance/certification from a workstation-oriented driver (although Marek has done a lot of great work over the last year to improve Mesa performance on workstation apps)<br />
* The third target audience is customers looking for ready-to-go OpenCL, either for use with the packaged open/closed drivers or with the upstream-based stack in a recent distro.<br />
</nowiki>}}<br />
<br />
There are several proprietary components: OpenGL, OpenCL, Vulkan and AMF. Sometimes you may want to use these components due to specific features that open source components may lack.<br />
<br />
AMDGPU PRO OpenGL is a proprietary, binary userland driver, which works on top of the open-source amdgpu kernel driver. From [https://www.phoronix.com/vr.php?view=27266 Radeon Software 18.50 vs Mesa 19 benchmarks] article: When it comes to OpenGL games, the RadeonSI Gallium3D driver simply dominates the proprietary AMD OpenGL driver. Users of graphic cards other than Radeon Pro are [https://www.amd.com/en/support/kb/release-notes/amdgpu-installation advised to use the amdgpu graphics stack]. Mostly used because of lacking compatibility layers that some software relies on. See gentoo wiki linked below.<br />
<br />
AMDGPU PRO Vulkan - currently the only implementation that has ray tracing (however, reported by users as glitchy). Also it is required dependency for AMF.<br />
<br />
AMDGPU PRO OpenCL - used because Mesa OpenCL is not fully complete. Proprietary component only for Polaris GPUs. The onward GPUs use the open ROCm OpenCL.<br />
<br />
AMDGPU AMF - used for gpu encoding/decoding.<br />
<br />
== Installation ==<br />
<br />
For proprietary OpenGL implementation, install {{AUR|amdgpu-pro-libgl}} and optionally {{AUR|lib32-amdgpu-pro-libgl}} for 32 bit applications support.<br />
<br />
For available OpenCL implementations see [[GPGPU#AMD/ATI]].<br />
<br />
For proprietary Vulkan implementation, install {{AUR|vulkan-amdgpu-pro}} and optionally {{AUR|lib32-vulkan-amdgpu-pro}} for 32 bit applications support.<br />
<br />
For Advanced Media Framework implementation, install {{AUR|amf-amdgpu-pro}} <br />
<br />
For OBS to work with it use {{AUR|obs-studio-amf}}<br />
<br />
== Usage ==<br />
<br />
=== Using proprietary OpenGL ===<br />
<br />
Launch your application with progl prefix, for example:<br />
<br />
$ progl glmark2<br />
<br />
==== How to ensure you are using AMDGPU-PRO driver ====<br />
<br />
Run the following command:<br />
$ glxinfo | grep "OpenGL vendor string" | cut -f2 -d":" | xargs<br />
If it returns {{ic|AMD}}, then you are running open source driver. If it returns {{ic|Advanced Micro Devices, Inc.}}, then you are running proprietary driver.<br />
<br />
Alternatively, run [[Benchmarking#glmark2|glmark2]]. When using open driver, in OpenGL Information you will see:<br />
GL_VENDOR: AMD<br />
GL_RENDERER: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.7-arch1-1, LLVM 11.0.1)<br />
GL_VERSION: 4.6 (Compatibility Profile) Mesa 20.3.3<br />
<br />
But when using closed driver, you will see:<br />
GL_VENDOR: ATI Technologies Inc.<br />
GL_RENDERER: Radeon RX 580 Series<br />
GL_VERSION: 4.6.14756 Compatibility Profile Context<br />
<br />
=== Using proprietary Vulkan ===<br />
<br />
Launch your application with {{ic|vk_pro}}, for example:<br />
<br />
$ vk_pro vkmark<br />
<br />
See [[Vulkan#Selecting via AMD Vulkan Prefixes]] for more information.<br />
<br />
=== Using Advanced Multimedia Framework ===<br />
See [[FFmpeg#AMD AMF]]<br />
<br />
== Troubleshooting ==<br />
<br />
=== Intel + AMD hybrid graphics ===<br />
<br />
For users of a hybrid setup with both an Intel GPU and an AMD GPU, usage of the proprietary AMDGPU Pro Workstation Driver might not work as expected due to different MESA implementations. <br />
<br />
The symptom is the following: when you boot your machine, you get a black screen, but with your mouse cursor is moving normally. <br />
<br />
Unfortunately, [[PRIME#Reverse PRIME|Reverse PRIME]] is not a solution. See the [https://gitlab.freedesktop.org/drm/amd/-/issues/985#note_359417 developer response].<br />
<br />
=== Uninstalling packages ===<br />
<br />
If you are in trouble, for example, you cannot login to your system due to black screen, you can revert all back by uninstalling all packages related to AMDGPU PRO. <br />
<br />
Switch a [[virtual console]] (with e.g. {{ic|Ctrl+Alt+F2}}), login and run: <br />
<br />
# pacman -R $(pacman -Qg Radeon_Software_for_Linux | cut -f2 -d" "<br />
<br />
then reboot.<br />
<br />
=== Southern Islands (SI) or Sea Islands (CIK) GPUs ===<br />
<br />
If using Southern Islands (SI) or Sea Islands (CIK) GPU, when running {{ic|clinfo}}, you get:<br />
amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.<br />
then ensure you are using amdgpu driver, but not radeon. <br />
<br />
Check which driver is currently in use: <br />
<br />
{{hc|lspci -k|<br />
03:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465]<br />
Subsystem: Acer Incorporated [ALI] Aspire V5 Radeon R7 M265<br />
'''Kernel driver in use: radeon'''<br />
Kernel modules: radeon, amdgpu<br />
}}<br />
<br />
See [[AMDGPU#Enable Southern Islands (SI) and Sea Islands (CIK) support]] for more information.<br />
<br />
== See also ==<br />
<br />
* [[Gentoo:AMDGPU-PRO]]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=AMDGPU_PRO&diff=758773AMDGPU PRO2022-12-03T18:40:02Z<p>Mesmer: amdgpu-fix is not needed anymore</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[ja:AMDGPU PRO]]<br />
{{Related articles start}}<br />
{{Related|AMDGPU}}<br />
{{Related|Vulkan}}<br />
{{Related|GPGPU}}<br />
{{Related|DaVinci Resolve}}<br />
{{Related articles end}}<br />
<br />
This page describes close source drivers for AMD GPUs.<br />
{{Tip|Most users do not need these proprietary drivers.}}<br />
<br />
== Purpose of proprietary components ==<br />
<br />
AMD releases their open source drivers via standard distribution channels. And they also periodically do releases of their ''Radeon Software for Linux'' suite, which includes both open and proprietary components. Open source components are not needed from there, and proprietary components are repacked from the latest ubuntu lts version. They are published in AUR in the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base.<br />
<br />
[https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1316628-radeon-software-for-linux-22-10-driver-being-prepared-for-release?p=1316713#post1316713 Comment] by the AMD explaining why they still package close source drivers:<br />
{{Text art|<nowiki><br />
These days our packaged drivers are mostly intended for:<br />
* customers using slower moving enterprise/LTS distros which do not automatically pick up the latest graphics drivers - we offer them both open source and proprietary/workstation options<br />
* customers using workstation apps who need the extra performance/certification from a workstation-oriented driver (although Marek has done a lot of great work over the last year to improve Mesa performance on workstation apps)<br />
* The third target audience is customers looking for ready-to-go OpenCL, either for use with the packaged open/closed drivers or with the upstream-based stack in a recent distro.<br />
</nowiki>}}<br />
<br />
There are several proprietary components: OpenGL, OpenCL, Vulkan and AMF. Sometimes you may want to use these components due to specific features that open source components may lack.<br />
<br />
AMDGPU PRO OpenGL is a proprietary, binary userland driver, which works on top of the open-source amdgpu kernel driver. From [https://www.phoronix.com/vr.php?view=27266 Radeon Software 18.50 vs Mesa 19 benchmarks] article: When it comes to OpenGL games, the RadeonSI Gallium3D driver simply dominates the proprietary AMD OpenGL driver. Users of graphic cards other than Radeon Pro are [https://www.amd.com/en/support/kb/release-notes/amdgpu-installation advised to use the amdgpu graphics stack]. Mostly used because of lacking compatibility layers that some software relies on. See gentoo wiki linked below.<br />
<br />
AMDGPU PRO Vulkan - currently the only implementation that has ray tracing (however, reported by users as glitchy). Also it is required dependency for AMF.<br />
<br />
AMDGPU PRO OpenCL - used because Mesa OpenCL is not fully complete. Proprietary component only for Polaris GPUs. The onward GPUs use the open ROCm OpenCL.<br />
<br />
AMDGPU AMF - used for gpu encoding/decoding.<br />
<br />
== Installation ==<br />
<br />
For proprietary OpenGL implementation, install {{AUR|amdgpu-pro-libgl}} and optionally {{AUR|lib32-amdgpu-pro-libgl}} for 32 bit applications support.<br />
<br />
For available OpenCL implementations see [[GPGPU#AMD/ATI]].<br />
<br />
For proprietary Vulkan implementation, install {{AUR|vulkan-amdgpu-pro}} and optionally {{AUR|lib32-vulkan-amdgpu-pro}} for 32 bit applications support.<br />
<br />
For Advanced Media Framework implementation, install {{AUR|amf-amdgpu-pro}} <br />
<br />
For OBS to work with it use {{AUR|obs-studio-amf}} <br />
<br />
{{Note|As of October 2022, because of a error in the AMD driver you need {{pkg|linux-firmware}} to be in the version 20220815.8413c63-1 to have H264 and HEVC working.}}<br />
<br />
== Usage ==<br />
<br />
=== Using proprietary OpenGL ===<br />
<br />
Launch your application with progl prefix, for example:<br />
<br />
$ progl glmark2<br />
<br />
==== How to ensure you are using AMDGPU-PRO driver ====<br />
<br />
Run the following command:<br />
$ glxinfo | grep "OpenGL vendor string" | cut -f2 -d":" | xargs<br />
If it returns {{ic|AMD}}, then you are running open source driver. If it returns {{ic|Advanced Micro Devices, Inc.}}, then you are running proprietary driver.<br />
<br />
Alternatively, run [[Benchmarking#glmark2|glmark2]]. When using open driver, in OpenGL Information you will see:<br />
GL_VENDOR: AMD<br />
GL_RENDERER: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.7-arch1-1, LLVM 11.0.1)<br />
GL_VERSION: 4.6 (Compatibility Profile) Mesa 20.3.3<br />
<br />
But when using closed driver, you will see:<br />
GL_VENDOR: ATI Technologies Inc.<br />
GL_RENDERER: Radeon RX 580 Series<br />
GL_VERSION: 4.6.14756 Compatibility Profile Context<br />
<br />
=== Using proprietary Vulkan ===<br />
<br />
Launch your application with {{ic|vk_pro}}, for example:<br />
<br />
$ vk_pro vkmark<br />
<br />
See [[Vulkan#Selecting via AMD Vulkan Prefixes]] for more information.<br />
<br />
=== Using Advanced Multimedia Framework ===<br />
See [[FFmpeg#AMD AMF]]<br />
<br />
== Troubleshooting ==<br />
<br />
=== Intel + AMD hybrid graphics ===<br />
<br />
For users of a hybrid setup with both an Intel GPU and an AMD GPU, usage of the proprietary AMDGPU Pro Workstation Driver might not work as expected due to different MESA implementations. <br />
<br />
The symptom is the following: when you boot your machine, you get a black screen, but with your mouse cursor is moving normally. <br />
<br />
Unfortunately, [[PRIME#Reverse PRIME|Reverse PRIME]] is not a solution. See the [https://gitlab.freedesktop.org/drm/amd/-/issues/985#note_359417 developer response].<br />
<br />
=== Uninstalling packages ===<br />
<br />
If you are in trouble, for example, you cannot login to your system due to black screen, you can revert all back by uninstalling all packages related to AMDGPU PRO. <br />
<br />
Switch a [[virtual console]] (with e.g. {{ic|Ctrl+Alt+F2}}), login and run: <br />
<br />
# pacman -R $(pacman -Qg Radeon_Software_for_Linux | cut -f2 -d" "<br />
<br />
then reboot.<br />
<br />
=== Southern Islands (SI) or Sea Islands (CIK) GPUs ===<br />
<br />
If using Southern Islands (SI) or Sea Islands (CIK) GPU, when running {{ic|clinfo}}, you get:<br />
amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.<br />
then ensure you are using amdgpu driver, but not radeon. <br />
<br />
Check which driver is currently in use: <br />
<br />
{{hc|lspci -k|<br />
03:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465]<br />
Subsystem: Acer Incorporated [ALI] Aspire V5 Radeon R7 M265<br />
'''Kernel driver in use: radeon'''<br />
Kernel modules: radeon, amdgpu<br />
}}<br />
<br />
See [[AMDGPU#Enable Southern Islands (SI) and Sea Islands (CIK) support]] for more information.<br />
<br />
== See also ==<br />
<br />
* [[Gentoo:AMDGPU-PRO]]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=AMDGPU_PRO&diff=751529AMDGPU PRO2022-10-07T11:42:57Z<p>Mesmer: /* Installation */ set the base for the fix package</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[ja:AMDGPU PRO]]<br />
{{Related articles start}}<br />
{{Related|AMDGPU}}<br />
{{Related|Vulkan}}<br />
{{Related|GPGPU}}<br />
{{Related|DaVinci Resolve}}<br />
{{Related articles end}}<br />
<br />
This page describes close source drivers for AMD GPUs.<br />
{{Tip|Most users do not need these proprietary drivers.}}<br />
<br />
== Purpose of proprietary components ==<br />
<br />
AMD releases their open source drivers via standard distribution channels. And they also periodically do releases of their ''Radeon Software for Linux'' suite, which includes both open and proprietary components. Open source components are not needed from there, and proprietary components are repacked from the latest ubuntu lts version. They are published in AUR in the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base.<br />
<br />
[https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1316628-radeon-software-for-linux-22-10-driver-being-prepared-for-release?p=1316713#post1316713 Comment] by the AMD explaining why they still package close source drivers:<br />
{{Text art|<nowiki><br />
These days our packaged drivers are mostly intended for:<br />
* customers using slower moving enterprise/LTS distros which do not automatically pick up the latest graphics drivers - we offer them both open source and proprietary/workstation options<br />
* customers using workstation apps who need the extra performance/certification from a workstation-oriented driver (although Marek has done a lot of great work over the last year to improve Mesa performance on workstation apps)<br />
* The third target audience is customers looking for ready-to-go OpenCL, either for use with the packaged open/closed drivers or with the upstream-based stack in a recent distro.<br />
</nowiki>}}<br />
<br />
There are several proprietary components: OpenGL, OpenCL, Vulkan and AMF. Sometimes you may want to use these components due to specific features that open source components may lack.<br />
<br />
AMDGPU PRO OpenGL is a proprietary, binary userland driver, which works on top of the open-source amdgpu kernel driver. From [https://www.phoronix.com/vr.php?view=27266 Radeon Software 18.50 vs Mesa 19 benchmarks] article: When it comes to OpenGL games, the RadeonSI Gallium3D driver simply dominates the proprietary AMD OpenGL driver. Users of graphic cards other than Radeon Pro are [https://www.amd.com/en/support/kb/release-notes/amdgpu-installation advised to use the amdgpu graphics stack]. Mostly used because of lacking compatibility layers that some software relies on. See gentoo wiki linked below.<br />
<br />
AMDGPU PRO Vulkan - currently the only implementation that has ray tracing (however, reported by users as glitchy). Also it is required dependency for AMF.<br />
<br />
AMDGPU PRO OpenCL - used because Mesa OpenCL is not fully complete. Proprietary component only for Polaris GPUs. The onward GPUs use the open ROCm OpenCL.<br />
<br />
AMDGPU AMF - used for gpu encoding/decoding.<br />
<br />
== Installation ==<br />
<br />
For proprietary OpenGL implementation, install {{AUR|amdgpu-pro-libgl}} and optionally {{AUR|lib32-amdgpu-pro-libgl}} for 32 bit applications support.<br />
<br />
For available OpenCL implementations see [[GPGPU#AMD/ATI]].<br />
<br />
For proprietary Vulkan implementation, install {{AUR|vulkan-amdgpu-pro}} and optionally {{AUR|lib32-vulkan-amdgpu-pro}} for 32 bit applications support.<br />
<br />
For Advanced Media Framework implementation, install {{AUR|amf-amdgpu-pro}} <br />
<br />
For OBS to work with it use {{AUR|obs-studio-amf}} <br />
<br />
{{Note| Right now because of a error in the AMD driver, to have H264 and HEVC working you need {{AUR|amdgpu-pro-installer-fix}} ( or the https://github.com/HannesMann/archlinux-amdgpu-pro if the fix is not working ) and the {{pkg|linux-firmware}} in the version 20220815.8413c63-1 }}<br />
<br />
== Usage ==<br />
<br />
=== Using proprietary OpenGL ===<br />
<br />
Launch your application with progl prefix, for example:<br />
<br />
$ progl glmark2<br />
<br />
==== How to ensure you are using AMDGPU-PRO driver ====<br />
<br />
Run the following command:<br />
$ glxinfo | grep "OpenGL vendor string" | cut -f2 -d":" | xargs<br />
If it returns {{ic|AMD}}, then you are running open source driver. If it returns {{ic|Advanced Micro Devices, Inc.}}, then you are running proprietary driver.<br />
<br />
Alternatively, run [[Benchmarking#glmark2|glmark2]]. When using open driver, in OpenGL Information you will see:<br />
GL_VENDOR: AMD<br />
GL_RENDERER: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.7-arch1-1, LLVM 11.0.1)<br />
GL_VERSION: 4.6 (Compatibility Profile) Mesa 20.3.3<br />
<br />
But when using closed driver, you will see:<br />
GL_VENDOR: ATI Technologies Inc.<br />
GL_RENDERER: Radeon RX 580 Series<br />
GL_VERSION: 4.6.14756 Compatibility Profile Context<br />
<br />
=== Using proprietary Vulkan ===<br />
<br />
Launch your application with {{ic|vk_pro}}, for example:<br />
<br />
$ vk_pro vkmark<br />
<br />
See [[Vulkan#Selecting via AMD Vulkan Prefixes]] for more information.<br />
<br />
=== Using Advanced Multimedia Framework ===<br />
See [[FFmpeg#AMD AMF]]<br />
<br />
== Troubleshooting ==<br />
<br />
=== Intel + AMD hybrid graphics ===<br />
<br />
For users of a hybrid setup with both an Intel GPU and an AMD GPU, usage of the proprietary AMDGPU Pro Workstation Driver might not work as expected due to different MESA implementations. <br />
<br />
The symptom is the following: when you boot your machine, you get a black screen, but with your mouse cursor is moving normally. <br />
<br />
Unfortunately, [[PRIME#Reverse PRIME|Reverse PRIME]] is not a solution. See the [https://gitlab.freedesktop.org/drm/amd/-/issues/985#note_359417 developer response].<br />
<br />
=== Uninstalling packages ===<br />
<br />
If you are in trouble, for example, you cannot login to your system due to black screen, you can revert all back by uninstalling all packages related to AMDGPU PRO. <br />
<br />
Switch a [[virtual console]] (with e.g. {{ic|Ctrl+Alt+F2}}), login and run: <br />
<br />
# pacman -R $(pacman -Qg Radeon_Software_for_Linux | cut -f2 -d" "<br />
<br />
then reboot.<br />
<br />
=== Southern Islands (SI) or Sea Islands (CIK) GPUs ===<br />
<br />
If using Southern Islands (SI) or Sea Islands (CIK) GPU, when running {{ic|clinfo}}, you get:<br />
amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.<br />
then ensure you are using amdgpu driver, but not radeon. <br />
<br />
Check which driver is currently in use: <br />
<br />
{{hc|lspci -k|<br />
03:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465]<br />
Subsystem: Acer Incorporated [ALI] Aspire V5 Radeon R7 M265<br />
'''Kernel driver in use: radeon'''<br />
Kernel modules: radeon, amdgpu<br />
}}<br />
<br />
See [[AMDGPU#Enable Southern Islands (SI) and Sea Islands (CIK) support]] for more information.<br />
<br />
== See also ==<br />
<br />
* [[Gentoo:AMDGPU-PRO]]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=AMDGPU_PRO&diff=751528AMDGPU PRO2022-10-07T11:39:40Z<p>Mesmer: /* Installation */ add github alternative for fix</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[ja:AMDGPU PRO]]<br />
{{Related articles start}}<br />
{{Related|AMDGPU}}<br />
{{Related|Vulkan}}<br />
{{Related|GPGPU}}<br />
{{Related|DaVinci Resolve}}<br />
{{Related articles end}}<br />
<br />
This page describes close source drivers for AMD GPUs.<br />
{{Tip|Most users do not need these proprietary drivers.}}<br />
<br />
== Purpose of proprietary components ==<br />
<br />
AMD releases their open source drivers via standard distribution channels. And they also periodically do releases of their ''Radeon Software for Linux'' suite, which includes both open and proprietary components. Open source components are not needed from there, and proprietary components are repacked from the latest ubuntu lts version. They are published in AUR in the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base.<br />
<br />
[https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1316628-radeon-software-for-linux-22-10-driver-being-prepared-for-release?p=1316713#post1316713 Comment] by the AMD explaining why they still package close source drivers:<br />
{{Text art|<nowiki><br />
These days our packaged drivers are mostly intended for:<br />
* customers using slower moving enterprise/LTS distros which do not automatically pick up the latest graphics drivers - we offer them both open source and proprietary/workstation options<br />
* customers using workstation apps who need the extra performance/certification from a workstation-oriented driver (although Marek has done a lot of great work over the last year to improve Mesa performance on workstation apps)<br />
* The third target audience is customers looking for ready-to-go OpenCL, either for use with the packaged open/closed drivers or with the upstream-based stack in a recent distro.<br />
</nowiki>}}<br />
<br />
There are several proprietary components: OpenGL, OpenCL, Vulkan and AMF. Sometimes you may want to use these components due to specific features that open source components may lack.<br />
<br />
AMDGPU PRO OpenGL is a proprietary, binary userland driver, which works on top of the open-source amdgpu kernel driver. From [https://www.phoronix.com/vr.php?view=27266 Radeon Software 18.50 vs Mesa 19 benchmarks] article: When it comes to OpenGL games, the RadeonSI Gallium3D driver simply dominates the proprietary AMD OpenGL driver. Users of graphic cards other than Radeon Pro are [https://www.amd.com/en/support/kb/release-notes/amdgpu-installation advised to use the amdgpu graphics stack]. Mostly used because of lacking compatibility layers that some software relies on. See gentoo wiki linked below.<br />
<br />
AMDGPU PRO Vulkan - currently the only implementation that has ray tracing (however, reported by users as glitchy). Also it is required dependency for AMF.<br />
<br />
AMDGPU PRO OpenCL - used because Mesa OpenCL is not fully complete. Proprietary component only for Polaris GPUs. The onward GPUs use the open ROCm OpenCL.<br />
<br />
AMDGPU AMF - used for gpu encoding/decoding.<br />
<br />
== Installation ==<br />
<br />
For proprietary OpenGL implementation, install {{AUR|amdgpu-pro-libgl}} and optionally {{AUR|lib32-amdgpu-pro-libgl}} for 32 bit applications support.<br />
<br />
For available OpenCL implementations see [[GPGPU#AMD/ATI]].<br />
<br />
For proprietary Vulkan implementation, install {{AUR|vulkan-amdgpu-pro}} and optionally {{AUR|lib32-vulkan-amdgpu-pro}} for 32 bit applications support.<br />
<br />
For Advanced Media Framework implementation, install {{AUR|amf-amdgpu-pro}} <br />
<br />
For OBS to work with it use {{AUR|obs-studio-amf}} <br />
<br />
{{Note| Right now because of a error in the AMD driver, to have H264 and HEVC working you need {{AUR|amf-amdgpu-pro-fix}} ( or the https://github.com/HannesMann/archlinux-amdgpu-pro if the fix is not working ) and the {{pkg|linux-firmware}} in the version 20220815.8413c63-1 }}<br />
<br />
== Usage ==<br />
<br />
=== Using proprietary OpenGL ===<br />
<br />
Launch your application with progl prefix, for example:<br />
<br />
$ progl glmark2<br />
<br />
==== How to ensure you are using AMDGPU-PRO driver ====<br />
<br />
Run the following command:<br />
$ glxinfo | grep "OpenGL vendor string" | cut -f2 -d":" | xargs<br />
If it returns {{ic|AMD}}, then you are running open source driver. If it returns {{ic|Advanced Micro Devices, Inc.}}, then you are running proprietary driver.<br />
<br />
Alternatively, run [[Benchmarking#glmark2|glmark2]]. When using open driver, in OpenGL Information you will see:<br />
GL_VENDOR: AMD<br />
GL_RENDERER: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.7-arch1-1, LLVM 11.0.1)<br />
GL_VERSION: 4.6 (Compatibility Profile) Mesa 20.3.3<br />
<br />
But when using closed driver, you will see:<br />
GL_VENDOR: ATI Technologies Inc.<br />
GL_RENDERER: Radeon RX 580 Series<br />
GL_VERSION: 4.6.14756 Compatibility Profile Context<br />
<br />
=== Using proprietary Vulkan ===<br />
<br />
Launch your application with {{ic|vk_pro}}, for example:<br />
<br />
$ vk_pro vkmark<br />
<br />
See [[Vulkan#Selecting via AMD Vulkan Prefixes]] for more information.<br />
<br />
=== Using Advanced Multimedia Framework ===<br />
See [[FFmpeg#AMD AMF]]<br />
<br />
== Troubleshooting ==<br />
<br />
=== Intel + AMD hybrid graphics ===<br />
<br />
For users of a hybrid setup with both an Intel GPU and an AMD GPU, usage of the proprietary AMDGPU Pro Workstation Driver might not work as expected due to different MESA implementations. <br />
<br />
The symptom is the following: when you boot your machine, you get a black screen, but with your mouse cursor is moving normally. <br />
<br />
Unfortunately, [[PRIME#Reverse PRIME|Reverse PRIME]] is not a solution. See the [https://gitlab.freedesktop.org/drm/amd/-/issues/985#note_359417 developer response].<br />
<br />
=== Uninstalling packages ===<br />
<br />
If you are in trouble, for example, you cannot login to your system due to black screen, you can revert all back by uninstalling all packages related to AMDGPU PRO. <br />
<br />
Switch a [[virtual console]] (with e.g. {{ic|Ctrl+Alt+F2}}), login and run: <br />
<br />
# pacman -R $(pacman -Qg Radeon_Software_for_Linux | cut -f2 -d" "<br />
<br />
then reboot.<br />
<br />
=== Southern Islands (SI) or Sea Islands (CIK) GPUs ===<br />
<br />
If using Southern Islands (SI) or Sea Islands (CIK) GPU, when running {{ic|clinfo}}, you get:<br />
amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.<br />
then ensure you are using amdgpu driver, but not radeon. <br />
<br />
Check which driver is currently in use: <br />
<br />
{{hc|lspci -k|<br />
03:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465]<br />
Subsystem: Acer Incorporated [ALI] Aspire V5 Radeon R7 M265<br />
'''Kernel driver in use: radeon'''<br />
Kernel modules: radeon, amdgpu<br />
}}<br />
<br />
See [[AMDGPU#Enable Southern Islands (SI) and Sea Islands (CIK) support]] for more information.<br />
<br />
== See also ==<br />
<br />
* [[Gentoo:AMDGPU-PRO]]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=AMDGPU_PRO&diff=751527AMDGPU PRO2022-10-07T11:28:53Z<p>Mesmer: /* Installation */ put F as uppercase</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[ja:AMDGPU PRO]]<br />
{{Related articles start}}<br />
{{Related|AMDGPU}}<br />
{{Related|Vulkan}}<br />
{{Related|GPGPU}}<br />
{{Related|DaVinci Resolve}}<br />
{{Related articles end}}<br />
<br />
This page describes close source drivers for AMD GPUs.<br />
{{Tip|Most users do not need these proprietary drivers.}}<br />
<br />
== Purpose of proprietary components ==<br />
<br />
AMD releases their open source drivers via standard distribution channels. And they also periodically do releases of their ''Radeon Software for Linux'' suite, which includes both open and proprietary components. Open source components are not needed from there, and proprietary components are repacked from the latest ubuntu lts version. They are published in AUR in the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base.<br />
<br />
[https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1316628-radeon-software-for-linux-22-10-driver-being-prepared-for-release?p=1316713#post1316713 Comment] by the AMD explaining why they still package close source drivers:<br />
{{Text art|<nowiki><br />
These days our packaged drivers are mostly intended for:<br />
* customers using slower moving enterprise/LTS distros which do not automatically pick up the latest graphics drivers - we offer them both open source and proprietary/workstation options<br />
* customers using workstation apps who need the extra performance/certification from a workstation-oriented driver (although Marek has done a lot of great work over the last year to improve Mesa performance on workstation apps)<br />
* The third target audience is customers looking for ready-to-go OpenCL, either for use with the packaged open/closed drivers or with the upstream-based stack in a recent distro.<br />
</nowiki>}}<br />
<br />
There are several proprietary components: OpenGL, OpenCL, Vulkan and AMF. Sometimes you may want to use these components due to specific features that open source components may lack.<br />
<br />
AMDGPU PRO OpenGL is a proprietary, binary userland driver, which works on top of the open-source amdgpu kernel driver. From [https://www.phoronix.com/vr.php?view=27266 Radeon Software 18.50 vs Mesa 19 benchmarks] article: When it comes to OpenGL games, the RadeonSI Gallium3D driver simply dominates the proprietary AMD OpenGL driver. Users of graphic cards other than Radeon Pro are [https://www.amd.com/en/support/kb/release-notes/amdgpu-installation advised to use the amdgpu graphics stack]. Mostly used because of lacking compatibility layers that some software relies on. See gentoo wiki linked below.<br />
<br />
AMDGPU PRO Vulkan - currently the only implementation that has ray tracing (however, reported by users as glitchy). Also it is required dependency for AMF.<br />
<br />
AMDGPU PRO OpenCL - used because Mesa OpenCL is not fully complete. Proprietary component only for Polaris GPUs. The onward GPUs use the open ROCm OpenCL.<br />
<br />
AMDGPU AMF - used for gpu encoding/decoding.<br />
<br />
== Installation ==<br />
<br />
For proprietary OpenGL implementation, install {{AUR|amdgpu-pro-libgl}} and optionally {{AUR|lib32-amdgpu-pro-libgl}} for 32 bit applications support.<br />
<br />
For available OpenCL implementations see [[GPGPU#AMD/ATI]].<br />
<br />
For proprietary Vulkan implementation, install {{AUR|vulkan-amdgpu-pro}} and optionally {{AUR|lib32-vulkan-amdgpu-pro}} for 32 bit applications support.<br />
<br />
For Advanced Media Framework implementation, install {{AUR|amf-amdgpu-pro}} <br />
<br />
For OBS to work with it use {{AUR|obs-studio-amf}} <br />
<br />
{{Note| Right now because of a error in the AMD driver, to have H264 and HEVC working you need {{AUR|amf-amdgpu-pro-fix}} and the {{pkg|linux-firmware}} in the version 20220815.8413c63-1 }}<br />
<br />
== Usage ==<br />
<br />
=== Using proprietary OpenGL ===<br />
<br />
Launch your application with progl prefix, for example:<br />
<br />
$ progl glmark2<br />
<br />
==== How to ensure you are using AMDGPU-PRO driver ====<br />
<br />
Run the following command:<br />
$ glxinfo | grep "OpenGL vendor string" | cut -f2 -d":" | xargs<br />
If it returns {{ic|AMD}}, then you are running open source driver. If it returns {{ic|Advanced Micro Devices, Inc.}}, then you are running proprietary driver.<br />
<br />
Alternatively, run [[Benchmarking#glmark2|glmark2]]. When using open driver, in OpenGL Information you will see:<br />
GL_VENDOR: AMD<br />
GL_RENDERER: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.7-arch1-1, LLVM 11.0.1)<br />
GL_VERSION: 4.6 (Compatibility Profile) Mesa 20.3.3<br />
<br />
But when using closed driver, you will see:<br />
GL_VENDOR: ATI Technologies Inc.<br />
GL_RENDERER: Radeon RX 580 Series<br />
GL_VERSION: 4.6.14756 Compatibility Profile Context<br />
<br />
=== Using proprietary Vulkan ===<br />
<br />
Launch your application with {{ic|vk_pro}}, for example:<br />
<br />
$ vk_pro vkmark<br />
<br />
See [[Vulkan#Selecting via AMD Vulkan Prefixes]] for more information.<br />
<br />
=== Using Advanced Multimedia Framework ===<br />
See [[FFmpeg#AMD AMF]]<br />
<br />
== Troubleshooting ==<br />
<br />
=== Intel + AMD hybrid graphics ===<br />
<br />
For users of a hybrid setup with both an Intel GPU and an AMD GPU, usage of the proprietary AMDGPU Pro Workstation Driver might not work as expected due to different MESA implementations. <br />
<br />
The symptom is the following: when you boot your machine, you get a black screen, but with your mouse cursor is moving normally. <br />
<br />
Unfortunately, [[PRIME#Reverse PRIME|Reverse PRIME]] is not a solution. See the [https://gitlab.freedesktop.org/drm/amd/-/issues/985#note_359417 developer response].<br />
<br />
=== Uninstalling packages ===<br />
<br />
If you are in trouble, for example, you cannot login to your system due to black screen, you can revert all back by uninstalling all packages related to AMDGPU PRO. <br />
<br />
Switch a [[virtual console]] (with e.g. {{ic|Ctrl+Alt+F2}}), login and run: <br />
<br />
# pacman -R $(pacman -Qg Radeon_Software_for_Linux | cut -f2 -d" "<br />
<br />
then reboot.<br />
<br />
=== Southern Islands (SI) or Sea Islands (CIK) GPUs ===<br />
<br />
If using Southern Islands (SI) or Sea Islands (CIK) GPU, when running {{ic|clinfo}}, you get:<br />
amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.<br />
then ensure you are using amdgpu driver, but not radeon. <br />
<br />
Check which driver is currently in use: <br />
<br />
{{hc|lspci -k|<br />
03:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465]<br />
Subsystem: Acer Incorporated [ALI] Aspire V5 Radeon R7 M265<br />
'''Kernel driver in use: radeon'''<br />
Kernel modules: radeon, amdgpu<br />
}}<br />
<br />
See [[AMDGPU#Enable Southern Islands (SI) and Sea Islands (CIK) support]] for more information.<br />
<br />
== See also ==<br />
<br />
* [[Gentoo:AMDGPU-PRO]]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=AMDGPU_PRO&diff=751526AMDGPU PRO2022-10-07T11:27:59Z<p>Mesmer: /* Installation */ update the aur instalation to have information about error in driver with firmware and correct usage of the obs</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[ja:AMDGPU PRO]]<br />
{{Related articles start}}<br />
{{Related|AMDGPU}}<br />
{{Related|Vulkan}}<br />
{{Related|GPGPU}}<br />
{{Related|DaVinci Resolve}}<br />
{{Related articles end}}<br />
<br />
This page describes close source drivers for AMD GPUs.<br />
{{Tip|Most users do not need these proprietary drivers.}}<br />
<br />
== Purpose of proprietary components ==<br />
<br />
AMD releases their open source drivers via standard distribution channels. And they also periodically do releases of their ''Radeon Software for Linux'' suite, which includes both open and proprietary components. Open source components are not needed from there, and proprietary components are repacked from the latest ubuntu lts version. They are published in AUR in the [https://aur.archlinux.org/pkgbase/amdgpu-pro-installer amdgpu-pro-installer] package base.<br />
<br />
[https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1316628-radeon-software-for-linux-22-10-driver-being-prepared-for-release?p=1316713#post1316713 Comment] by the AMD explaining why they still package close source drivers:<br />
{{Text art|<nowiki><br />
These days our packaged drivers are mostly intended for:<br />
* customers using slower moving enterprise/LTS distros which do not automatically pick up the latest graphics drivers - we offer them both open source and proprietary/workstation options<br />
* customers using workstation apps who need the extra performance/certification from a workstation-oriented driver (although Marek has done a lot of great work over the last year to improve Mesa performance on workstation apps)<br />
* The third target audience is customers looking for ready-to-go OpenCL, either for use with the packaged open/closed drivers or with the upstream-based stack in a recent distro.<br />
</nowiki>}}<br />
<br />
There are several proprietary components: OpenGL, OpenCL, Vulkan and AMF. Sometimes you may want to use these components due to specific features that open source components may lack.<br />
<br />
AMDGPU PRO OpenGL is a proprietary, binary userland driver, which works on top of the open-source amdgpu kernel driver. From [https://www.phoronix.com/vr.php?view=27266 Radeon Software 18.50 vs Mesa 19 benchmarks] article: When it comes to OpenGL games, the RadeonSI Gallium3D driver simply dominates the proprietary AMD OpenGL driver. Users of graphic cards other than Radeon Pro are [https://www.amd.com/en/support/kb/release-notes/amdgpu-installation advised to use the amdgpu graphics stack]. Mostly used because of lacking compatibility layers that some software relies on. See gentoo wiki linked below.<br />
<br />
AMDGPU PRO Vulkan - currently the only implementation that has ray tracing (however, reported by users as glitchy). Also it is required dependency for AMF.<br />
<br />
AMDGPU PRO OpenCL - used because Mesa OpenCL is not fully complete. Proprietary component only for Polaris GPUs. The onward GPUs use the open ROCm OpenCL.<br />
<br />
AMDGPU AMF - used for gpu encoding/decoding.<br />
<br />
== Installation ==<br />
<br />
For proprietary OpenGL implementation, install {{AUR|amdgpu-pro-libgl}} and optionally {{AUR|lib32-amdgpu-pro-libgl}} for 32 bit applications support.<br />
<br />
For available OpenCL implementations see [[GPGPU#AMD/ATI]].<br />
<br />
For proprietary Vulkan implementation, install {{AUR|vulkan-amdgpu-pro}} and optionally {{AUR|lib32-vulkan-amdgpu-pro}} for 32 bit applications support.<br />
<br />
For Advanced Media Framework implementation, install {{AUR|amf-amdgpu-pro}} <br />
<br />
for OBS to work with it use {{AUR|obs-studio-amf}} <br />
<br />
{{Note| Right now because of a error in the AMD driver, to have h264 and hevc to working you need {{AUR|amf-amdgpu-pro-fix}} and the {{pkg|linux-firmware}} in the version 20220815.8413c63-1 }}<br />
<br />
== Usage ==<br />
<br />
=== Using proprietary OpenGL ===<br />
<br />
Launch your application with progl prefix, for example:<br />
<br />
$ progl glmark2<br />
<br />
==== How to ensure you are using AMDGPU-PRO driver ====<br />
<br />
Run the following command:<br />
$ glxinfo | grep "OpenGL vendor string" | cut -f2 -d":" | xargs<br />
If it returns {{ic|AMD}}, then you are running open source driver. If it returns {{ic|Advanced Micro Devices, Inc.}}, then you are running proprietary driver.<br />
<br />
Alternatively, run [[Benchmarking#glmark2|glmark2]]. When using open driver, in OpenGL Information you will see:<br />
GL_VENDOR: AMD<br />
GL_RENDERER: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.7-arch1-1, LLVM 11.0.1)<br />
GL_VERSION: 4.6 (Compatibility Profile) Mesa 20.3.3<br />
<br />
But when using closed driver, you will see:<br />
GL_VENDOR: ATI Technologies Inc.<br />
GL_RENDERER: Radeon RX 580 Series<br />
GL_VERSION: 4.6.14756 Compatibility Profile Context<br />
<br />
=== Using proprietary Vulkan ===<br />
<br />
Launch your application with {{ic|vk_pro}}, for example:<br />
<br />
$ vk_pro vkmark<br />
<br />
See [[Vulkan#Selecting via AMD Vulkan Prefixes]] for more information.<br />
<br />
=== Using Advanced Multimedia Framework ===<br />
See [[FFmpeg#AMD AMF]]<br />
<br />
== Troubleshooting ==<br />
<br />
=== Intel + AMD hybrid graphics ===<br />
<br />
For users of a hybrid setup with both an Intel GPU and an AMD GPU, usage of the proprietary AMDGPU Pro Workstation Driver might not work as expected due to different MESA implementations. <br />
<br />
The symptom is the following: when you boot your machine, you get a black screen, but with your mouse cursor is moving normally. <br />
<br />
Unfortunately, [[PRIME#Reverse PRIME|Reverse PRIME]] is not a solution. See the [https://gitlab.freedesktop.org/drm/amd/-/issues/985#note_359417 developer response].<br />
<br />
=== Uninstalling packages ===<br />
<br />
If you are in trouble, for example, you cannot login to your system due to black screen, you can revert all back by uninstalling all packages related to AMDGPU PRO. <br />
<br />
Switch a [[virtual console]] (with e.g. {{ic|Ctrl+Alt+F2}}), login and run: <br />
<br />
# pacman -R $(pacman -Qg Radeon_Software_for_Linux | cut -f2 -d" "<br />
<br />
then reboot.<br />
<br />
=== Southern Islands (SI) or Sea Islands (CIK) GPUs ===<br />
<br />
If using Southern Islands (SI) or Sea Islands (CIK) GPU, when running {{ic|clinfo}}, you get:<br />
amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.<br />
then ensure you are using amdgpu driver, but not radeon. <br />
<br />
Check which driver is currently in use: <br />
<br />
{{hc|lspci -k|<br />
03:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465]<br />
Subsystem: Acer Incorporated [ALI] Aspire V5 Radeon R7 M265<br />
'''Kernel driver in use: radeon'''<br />
Kernel modules: radeon, amdgpu<br />
}}<br />
<br />
See [[AMDGPU#Enable Southern Islands (SI) and Sea Islands (CIK) support]] for more information.<br />
<br />
== See also ==<br />
<br />
* [[Gentoo:AMDGPU-PRO]]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=Wii_hacking&diff=480211Wii hacking2017-06-22T03:36:31Z<p>Mesmer: /* Emulation */ add a emulator</p>
<hr />
<div>[[Category:Gaming]]<br />
A few starting packages for hacking the Wii on Arch Linux. Also see [http://wiibrew.org/ Wiibrew.org] for a guide to getting homebrew setup on the Wii.<br />
<br />
==Native Coding==<br />
<br />
* {{AUR|wiiload}} lets you upload games to the Homebrew Channel<br />
* {{AUR|devkitppc}} for a basic toolchain (compiler) for C and C++ development.<br />
* {{AUR|libogc}} for libraries that work with the Wii, for working with graphics, wiimote, etc.<br />
* {{AUR|sdl-wii-svn}}{{Broken package link|{{aur-mirror|sdl-wii-svn}}}} - a library for SDL on the Wii.<br />
* {{AUR|libfat-ogc}} - a library for FAT handling (used in USB flash drives).<br />
<br />
==Game Hacking==<br />
<br />
* {{AUR|reggie-git}}{{Broken package link|{{aur-mirror|reggie-git}}}} - Level Editor for New Super Mario Bros. Wii.<br />
* {{AUR|riifs}}{{Broken package link|{{aur-mirror|riifs}}}} - a networked server for Riivolution to run file replacement hacks on the Wii.<br />
* {{AUR|arctool-git}}{{Broken package link|{{aur-mirror|arctool-git}}}} for opening .arc files found in Wii game discs.<br />
* {{AUR|arcman}}{{Broken package link|{{aur-mirror|arcman}}}}<br />
<br />
==Wiimote==<br />
<br />
* {{Pkg|cwiid}} - a library in C for working with the Wii Remote.<br />
* {{AUR|libwiimote}}{{Broken package link|{{aur-mirror|libwiimote}}}} - a library in C for working with the Wii Remote.<br />
* {{AUR|xwii}}{{Broken package link|{{aur-mirror|xwii}}}} - lets you control your computer from your Wii remote (even has Shell command support).<br />
* {{AUR|xwii-hypocorism}}{{Broken package link|{{aur-mirror|xwii-hypocorism}}}}<br />
* {{AUR|pymote}}{{Broken package link|{{aur-mirror|pymote}}}}<br />
<br />
==Emulation==<br />
<br />
* {{Pkg|dolphin-emu}} - the dominant emulator for the Wii (also supports Gamecube).<br />
* {{AUR|dolphin-emu-git}} - development version<br />
* {{AUR|decaf-emu-git}} - An experimental open-source Nintendo Wii U emulator</div>Mesmerhttps://wiki.archlinux.org/index.php?title=Spotify&diff=475064Spotify2017-04-25T03:34:03Z<p>Mesmer: fix for libssl 1.0.0</p>
<hr />
<div>[[Category:Multimedia players]]<br />
[[Category:Wine]]<br />
[[ja:Spotify]]<br />
[https://www.spotify.com/ Spotify] is a digital music service that gives you access to millions of songs. This Internet music service allows you to select any song in its database and stream for free.<br />
<br />
Spotify also offers free users the ability to create playlist which can be shuffled, and set to repeat tracks. Content provided by Spotify comes in explicit versions as well as censored.<br />
<br />
== Installation ==<br />
<br />
Choose which client you would prefer. The Linux client is receiving good reviews. However, if you are comfortable with wine and its configuration, you might want to choose the windows client. Please note that you do '''not''' need to install both. There is also the online player (requires [[Flash]]) on https://play.spotify.com/.<br />
<br />
=== Third-party clients ===<br />
<br />
* {{App|[[Wikipedia:Clementine (software)|Clementine]]|Able of streaming from Spotify with a premium account after activating (downloading) a plugin in the settings.|http://www.clementine-player.org/|{{Pkg|clementine}}}}<br />
* {{App|Mopidy|An alternative plug-in based implementation of [[Music Player Daemon]] is able of streaming from Spotify with an extension.|https://www.mopidy.com/|{{Pkg|mopidy}}+ {{AUR|mopidy-spotify}} or {{AUR|despotify-svn}}}}<br />
* {{App|Librespot|An open source client library for Spotify. It enables applications to use Spotify's service (streaming), without using the official closed-source ''libspotify''.|https://github.com/plietar/librespot|{{AUR|librespot-git}} {{AUR|librespot-alsa-git}}}}<br />
<br />
=== Official Linux client ===<br />
<br />
[[Install]] it with the {{AUR|spotify}} package. If you wish to play local files you will need to install {{Pkg|zenity}} and {{AUR|ffmpeg0.10}} as well.<br />
<br />
=== Official Windows client through Wine ===<br />
<br />
First, install [[Wine]].<br />
<br />
Obtaining Spotify can be done by registering for an account on their Website, the application does not offer in-app registration. Obtain the appliction from https://www.spotify.com/nl/download/windows/.<br />
<br />
After you have registered and downloaded your copy of the installer you will need to run the application through Wine, depending on your setup you may be able to run the application by right clicking the file. If not terminal will work just fine, as long as you run the below command in the directory of your download.<br />
<br />
$ wine SpotifySetup.exe<br />
<br />
Once the application is successfully installed you may run Spotify by using one of the following commands in terminal, or in the ALT+F2 launcher:<br />
<br />
If you use a x86_64 copy of Arch Linux, you will have to run it like this:<br />
<br />
$ wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Spotify/spotify.exe<br />
<br />
If you use a x86 copy of Arch Linux, you can use this command just fine:<br />
<br />
$ wine ~/.wine/drive_c/Program\ Files/Spotify/spotify.exe<br />
<br />
If you have any additional problems, I recommend setting the winecfg to Windows XP or Windows 7 emulation.<br />
<br />
== Tips & tricks ==<br />
<br />
=== Global media hotkeys ===<br />
<br />
The official Linux client has support for media keys like {{ic|XF86AudioPlay}}, but out of the box they only work inside Spotify. We can use for example [[xbindkeys]] to catch the global media keypresses, and then forward them to Spotify using one of the methods below. If you use xbindkeys, ensure that Spotify is restarted after installation and key configuration otherwise the key events will not be properly caught.<br />
<br />
==== MPRIS ====<br />
<br />
The Spotify client implements the [https://specifications.freedesktop.org/mpris-spec/latest/ MPRIS2] D-Bus interface which allows external control.<br />
<br />
===== Playerctl =====<br />
<br />
The {{Pkg|playerctl}} utility provides a command line tool to send commands to MPRIS clients. The only commands you will likely need to bind globally are {{ic|play-pause}}, {{ic|next}} and {{ic|previous}}<br />
<br />
$ playerctl play-pause<br />
$ playerctl next<br />
$ playerctl previous<br />
<br />
Playerctl will send the command to the first player it finds, so this method will also work with others players such as [[vlc]]. To ignore other players, pass {{ic|--player&#61;spotify}} as an argument.<br />
<br />
===== D-Bus =====<br />
<br />
An alternative to the above is to manually use [[D-Bus]], which should be available by default as it is a dependency of [[systemd]].<br />
<br />
To play or pause the current song in Spotify:<br />
<br />
$ dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause<br />
<br />
In order to bind this and the other commands to the media keys you need to install [[Xbindkeys]] and edit your .xbindkeysrc and add the following lines:<br />
<br />
# Play/Pause<br />
"dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause"<br />
XF86AudioPlay<br />
<br />
# Next<br />
"dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next"<br />
XF86AudioNext<br />
<br />
# Previous<br />
"dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous"<br />
XF86AudioPrev<br />
<br />
# Stop<br />
"dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Stop"<br />
XF86AudioStop<br />
<br />
If the above commands do not work, try setting the dbus address:<br />
<br />
USER=`whoami`<br />
PROCESS=spotify<br />
PID=`pgrep -o -u $USER $PROCESS`<br />
ENVIRON=/proc/$PID/environ<br />
if [ -e $ENVIRON ]<br />
then<br />
export `grep -z DBUS_SESSION_BUS_ADDRESS $ENVIRON`<br />
else<br />
echo "Unable to set DBUS_SESSION_BUS_ADDRESS."<br />
exit 1<br />
fi<br />
<br />
==== xdotool ====<br />
<br />
With the help of {{ic|xdotool}} it is possible to send your hotkeys to the application. The following script is an example of how to control Spotify from the outside:<br />
<br />
#!/bin/sh<br />
<br />
case $1 in<br />
"play")<br />
key="XF86AudioPlay"<br />
;;<br />
"next")<br />
key="XF86AudioNext"<br />
;;<br />
"prev")<br />
key="XF86AudioPrev"<br />
;;<br />
*)<br />
echo "Usage: $0 play|next|prev"<br />
exit 1<br />
;;<br />
esac<br />
xdotool key --window $(xdotool search --name "Spotify (Premium |Unlimited |Free )?- Linux Preview"|head -n1) $key<br />
exit 0<br />
<br />
Let us call it {{ic|musickeys.sh}}. Make the script executable:<br />
<br />
$ chmod +x musickeys.sh<br />
<br />
By executing {{ic|./musickeys.sh play}} you can now toggle playing a song. Now you can bind this script to any tool that catches keypresses, such as [[xbindkeys]].<br />
<br />
=== Disable track notifications===<br />
<br />
{{note|It is worth noting that if you have a {{AUR|SpotCommander}} [http://olejon.github.io/spotcommander/ Server] running alongside Spotify, and you disable track notifications by following the instructions below, the [https://play.google.com/store/apps/details?id&#61;net.olejon.spotcommander&hl&#61;en SpotCommander Client] running on your mobile device will display that “No Music is Playing” and will [http://askubuntu.com/questions/472325/remove-spotify-pop-up-notification-when-a-song-starts/472329#472329 fail to display track info] such as title, artist, album art, etc. Apart from that, the mobile client still works fine though, and is still able to skip, play, pause, control volume, etc.}}<br />
<br />
After version 0.9.10, track change notifications were enabled by default. They can be quite intrusive. To disable them, add the following line to {{ic|~/.config/spotify/Users/<spotifylogin>-user/prefs}}<br />
<br />
ui.track_notifications_enabled=false<br />
<br />
It is also possible to launch spotify with the {{ic|--ui.track_notifications_enabled&#61;false}} option.<br />
<br />
=== Show track notifications===<br />
<br />
{{Pkg|playerctl}} provides a library you can use with {{pkg|python-gobject}} and a notification daemon such as {{pkg|dunst}} to show the artist and title in a notification when the track changes.<br />
<br />
#!/usr/bin/env python3<br />
<br />
from gi.repository import Playerctl, GLib<br />
from subprocess import Popen<br />
<br />
player = Playerctl.Player()<br />
<br />
def on_track_change(player, e):<br />
track_info = '{artist} - {title}'.format(artist=player.get_artist(), title=player.get_title())<br />
Popen(['notify-send', track_info])<br />
<br />
player.on('metadata', on_track_change)<br />
<br />
GLib.MainLoop().run()<br />
<br />
=== Skip overplayed radio tracks===<br />
<br />
Another use of the {{Pkg|playerctl}} library is to skip tracks that are played too much on radio when you do not necessarily want to downvote these tracks because you may want to hear them again later on that station.<br />
<br />
#!/usr/bin/env python3<br />
<br />
from gi.repository import Playerctl, GLib<br />
<br />
player = Playerctl.Player()<br />
<br />
played_out = ['Zu Fuss', 'Walk And Talk', 'Neuland']<br />
<br />
def on_track_change(player, e):<br />
if player.get_title() in played_out:<br />
player.next()<br />
<br />
player.on('metadata', on_track_change)<br />
<br />
GLib.MainLoop().run()<br />
<br />
=== Mute commercials ===<br />
<br />
==== blockify ====<br />
<br />
With [https://github.com/mikar/blockify blockify] you can mute commercials. It is available in the [[AUR]] as {{AUR|blockify}}.<br />
<br />
To have this start and run in the background every time Spotify starts you will need to automate this yourself:<br />
<br />
{{bc|<nowiki><br />
#!/bin/sh<br />
<br />
spotify=/usr/bin/spotify<br />
<br />
if [[ -x $spotify && -x /usr/bin/blockify ]];<br />
then<br />
blockify &<br />
block_pid=$!<br />
$spotify<br />
trap "kill -9 $block_pid" SIGINT SIGTERM EXIT<br />
fi<br />
</nowiki>}}<br />
<br />
By placing this script at {{ic|/usr/local/bin/spotify}}, it gets preferred to {{ic|/usr/bin/spotify}} everytime you start Spotify, so there's nothing else to change and updates won't break it.<br />
<br />
==== spotblock ====<br />
<br />
[https://github.com/mahkoh/spotblock spotblock] ({{AUR|spotblock-git}}) is a resource-efficient ad blocker that runs as a systemd daemon.<br />
<br />
==== Spotify-AdKiller ====<br />
<br />
[https://github.com/SecUpwN/Spotify-AdKiller Spotify-AdKiller] ({{AUR|spotify-adkiller-git}}) is another alternative to block Spotify ads.<br />
<br />
=== Remote Control ===<br />
<br />
==== Send commands via SSH ====<br />
<br />
If you set up ssh on the server, you can send controls from a client to a remote Spotify instance with<br />
<br />
$ ssh user@host ''yourcommand''<br />
<br />
where ''yourcommand'' can be [https://code.google.com/p/spotifycmd/ spotifycmd] that you installed on the server, or a dbus script for the linux version, as described above.<br />
<br />
==== Grab the Spotify window via SSH ====<br />
<br />
Aside from grabbing the whole desktop with TeamViewer or VNC to remotely control your server, you can also only grab the Spotify Window from the server to your client.<br />
<br />
To do that, you need to configure sshd on your server and install x11vnc on both server and client as well as tigervnc on the client. Then you can use these scripts to grab either the complete dektop or only the Spotify window, which essentially gets you GUI client-like behavior as with MPD.<br />
<br />
{{bc|<nowiki><br />
#!/bin/bash<br />
# vncget.sh<br />
<br />
if [[ $1 == all ]];then<br />
ssh -f -t -L 5900:localhost:5900 user@host "x11vnc -q -display :0 -auth .Xauthority"<br />
else<br />
ssh -f -t -L 5900:localhost:5900 user@host ".bin/vncgetspotify.sh"<br />
fi<br />
<br />
for i in {1..4}; do<br />
sleep 2<br />
if vncviewer localhost:0; then break; fi<br />
done<br />
</nowiki>}}<br />
<br />
{{bc|<nowiki><br />
#!/bin/bash<br />
# vncgetspotify.sh<br />
<br />
export DISPLAY=:0<br />
<br />
id=$(wmctrl -lx | awk '/spotify.exe.Wine/ {print $1}')<br />
[[ -z $id ]] && id=$(wmctrl -lx | awk '/spotify.Spotify/ {print $1}')<br />
<br />
x11vnc -sid $id -display :0 -auth .Xauthority<br />
</nowiki>}}<br />
<br />
You will need to copy the second script to ~/.bin/vncgetspotify.sh on the server and the first script to any place on your client.<br />
<br />
Finally, to grab the spotify window, run on the client:<br />
<br />
$ sh vncget.sh<br />
<br />
or, for the whole desktop:<br />
<br />
$ sh vncget.sh all<br />
<br />
===HiDPI Mode===<br />
As the current Spotify build is not DPI aware, the amount to scale the interface by can be specified using the terminal command:<br />
$ spotify --force-device-scale-factor='''X'''<br />
<br />
where X is the amount to scale the interface by, e.g 2.<br />
<br />
This change can be added to the {{ic|spotify.desktop}} file in order to apply the scaling when launching from the desktop.<br />
<br />
To make sure the file does not get overwritten when the package is updated, copy it to you local applications folder:<br />
$ cp /usr/share/applications/spotify.desktop ~/.local/share/applications/<br />
<br />
Now edit {{ic|~/.local/share/applications/spotify.desktop}} and add the {{ic|--force-device-scale-factor}} option:<br />
<br />
{{hc|spotify.desktop|2=<br />
[Desktop Entry]<br />
Name=Spotify<br />
GenericName=Music Player<br />
Comment=Spotify streaming music client<br />
Icon=spotify-client<br />
Exec=spotify '''--force-device-scale-factor=2''' %U<br />
TryExec=spotify<br />
Terminal=false<br />
Type=Application<br />
Categories=Audio;Music;Player;AudioVideo<br />
MimeType=x-scheme-handler/spotify<br />
}}<br />
<br />
You might need to relaunch your Desktop Manager, before these override changes will be effective.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Desktop Environment alerts (beeps) mutes Spotify ===<br />
<br />
Comment out "module-role-cork" in pulse audio configuration file.<br />
<br />
Open {{ic|/etc/pulse/default.pa}} with your text editor and comment out:<br />
<br />
load-module module-role-cork <br />
<br />
Or simply unload it with:<br />
<br />
pactl unload-module module-role-cork<br />
<br />
=== Using search causes the whole interface to blink and then crash ===<br />
<br />
Spotify is using an old version of Chromium Embedded Framework and hits a bug causing it to crash repeatedly when trying to use the search. This can be worked around by using the following command line option:<br />
<br />
--force-device-scale-factor=1.0000001<br />
<br />
=== Blinking images and improper rendering while using Spotify Linux with DWM ===<br />
Start spotify as a floating window.<br />
<br />
You can add this rule to the rules array in your {{ic|config.h}}:<br />
{ "Spotify", NULL, NULL, 2, True, -1 },<br />
<br />
This will tell dwm to start spotify as a floating window associated with the tag "2" no matter what window mode you are in. Recompile and install dwm to apply your new settings.<br />
<br />
=== Broken search, browsing or radio ===<br />
<br />
: Spotify [http://community.spotify.com/t5/Help-Desktop-Linux-Mac-and/Bug-Desktop-Linux-0-9-0-133-gd18ed589-Having-mixed-locale-breaks/td-p/418270 bug report] concerning non-english locales<br />
If various tabs like browsing only show a blank screen, the search field doesn't seem to do anything or the radio page is broken (stuck when starting and unsresponsive to input) you might be using a custom locale.<br />
<br />
Try setting the environment variable {{ic|LC_NUMERIC}} to {{ic|en_US.utf8}} before starting Spotify.<br />
<br />
=== SpotifyHelper.exe crashes (Windows client) ===<br />
<br />
If SpotifyHelper.exe crashes when starting Spotify, disable the d3d9 library with {{ic|winecfg}}. Go to the "Libraries" tab, choose "d3d9" and click Add. To disable it, click edit and select the "Disable" option.<br />
<br />
=== Wrong launcher icon (Windows client) ===<br />
<br />
If the Spotify icon does not show up correctly in your launcher, add the following line to {{ic|~/.local/share/applications/wine/Programs/Spotify.desktop}}:<br />
<br />
StartupWMClass=spotify.exe<br />
<br />
=== Deadlock GUI Thread ===<br />
<br />
Can occur under tiling window managers, such as Awesome, when double-clicking new song or playlist. Edit the file {{ic|~/.config/spotify/Users/[1-9]*-user/prefs}} to add or change the following:<br />
<br />
ui.track_notifications_enabled=false<br />
<br />
Restart Spotify. Note that several causes appear to exist for this problem, and this particular fix only applies to select versions of Spotify client and Awesome, and it may be that additional root causes exist for the Debian and Ubuntu users reporting this issue. Observed with Spotify 0.9.17.1.g9b85d436 and Awesome 3.4.15.<br />
<br />
{{Note|As of Spotify 1.0.17.75-2, {{ic|1=ui.track_notifications_enabled=false}} seems to be ignored. On the other hand some, users report not experimenting the deadlock anymore as of Awesome 3.5.6. Deadlocks could be caused by scripts called by Awesome, which rely on buggy spotify dbus properties. See [https://github.com/acrisci/playerctl/issues/20].}}<br />
<br />
'''Note:''' This issue has multiple causes, so keep track of what you change while researching this. Update this section with additional scenarios and fixes.<br />
<br />
=== Pulseaudio ===<br />
<br />
See [[PulseAudio/Troubleshooting]] and [https://bbs.archlinux.org/viewtopic.php?pid=1393465#p1393465]<br />
<br />
=== Album art and images are missing, show up as squares ===<br />
<br />
Quit spotify, then open spotify preferences {{ic|~/.config/spotify/prefs}}<br />
<br />
Change @https to @http:<br />
<br />
network.proxy.addr="your-proxy.com:80<strong>@http</strong>"<br />
network.proxy.mode=2<br />
<br />
See original form post [http://community.spotify.com/t5/Help-Desktop-Linux-Mac-and/Mac-Windows-0-9-0-128-Apps-can-t-connect-anywhere-behind-proxy/m-p/448704#M52332 here].<br />
<br />
{{Note|As of 1.0.17 it looks like replacing https with http as suggested above can result in no connectivity at all. If this happens an alternative solution is to set 'no proxy' in the GUI use {{Pkg|proxychains-ng}} to force all TCP connection coming from the app through a proxy. Even with HTTP proxies that reject connections on port 80 (and only work for port 443) this works reliably.}}<br />
<br />
=== Spotify does not detect other devices on local network ===<br />
<br />
If a firewall is in place, open ports 57621 for UDP and TCP. If you use a variant of the [[iptables]] [[Simple stateful firewall]], the following should do it:<br />
<br />
iptables -A TCP -p tcp --dport 57621 -j ACCEPT -m comment --comment spotify<br />
iptables -A UDP -p udp --dport 57621 -j ACCEPT -m comment --comment spotify<br />
<br />
It is also possible to restrict the source and destination to the local network.<br />
<br />
If you are using Spotify Connect to play music on a wireless speaker or AVR, your firewall needs to be configured for Spotify's mDNS lookup of those. Sadly, it uses a random unprivileged port [https://community.spotify.com/t5/Desktop-Linux-Windows-Web-Player/Spotify-Connect-and-iptables-netfilter/td-p/1235049] which makes these firewall rules rather nasty. Fortunately, you can restrict the rules to source port 1900 or 5353.<br />
<br />
iptables -A UDP -p udp --sport 1900 --dport 1025:65535 -j ACCEPT -m comment --comment spotify<br />
iptables -A UDP -p udp --sport 5353 --dport 1025:65535 -j ACCEPT -m comment --comment spotify<br />
<br />
=== Search Bar text is invisible when using a dark theme ===<br />
<br />
The text in the search bar appears to be hardcoded to be white, making it invisible when using a dark Qt theme. To fix this, you'll need to make an override.<br />
<br />
First create a css file somewhere your account has permission to read/write from (such as your home folder). Call it whatever you like (eg. '''spotify-override.css''').<br />
<br />
Open the newly created css file and add the following:<br />
<br />
QLineEdit { color: #000 }<br />
<br />
Save the file and exit. Next, you need to add the following to the end of your Spotify launcher (substitute the path with the actual path of your css file):<br />
<br />
-stylesheet=/home/user/spotify-overide.css<br />
<br />
So your full launch path should look something like this:<br />
<br />
/usr/share/spotify/spotify-client/spotify -stylesheet=/home/user/spotify-override.css<br />
<br />
=== Segmentation fault when playing a local file ===<br />
<br />
The cause of this problem is a missing dependency. For Pulseaudio users, installing {{aur|ffmpeg-compat-54}} should fix it.<br />
<br />
<br />
=== openssl 1.0 error ===<br />
<br />
if you geting this error<br />
/usr/share/spotify/spotify: /usr/lib/libssl.so.1.0.0: version `OPENSSL_1.0.0' not found (required by /usr/share/spotify/spotify)<br />
/usr/share/spotify/spotify: /usr/lib/libcrypto.so.1.0.0: version `OPENSSL_1.0.0' not found (required by /usr/share/spotify/spotify)<br />
/usr/share/spotify/spotify: /usr/lib/libcurl.so.3: no version information available (required by /usr/share/spotify/spotify)<br />
it's because your ssl is updated to 1.1 (core) and the spotify use 1.0, so you have to use 1.0, a fast fix is use {{AUR|libopenssl-1.0-compat}} and {{AUR|libcurl-openssl-1.0}},and then preload the libs<br />
export "LD_PRELOAD=libcurl-openssl-1.0.so /usr/lib/openssl-1.0-compat/libssl.so /usr/lib/openssl-1.0-compat/libcrypto.so" /usr/share/spotify/spotify "$@";unset LD_PRELOAD<br />
<br />
for a complete fix, edit '''/usr/bin/spotify'''<br />
<br />
#!/bin/sh<br />
export "LD_PRELOAD=libcurl-openssl-1.0.so /usr/lib/openssl-1.0-compat/libssl.so /usr/lib/openssl-1.0-compat/libcrypto.so"<br />
/usr/share/spotify/spotify "$@"<br />
<br />
and now you can open spotify directly by terminal<br />
<br />
<br />
<br />
==See also==<br />
*[https://github.com/acrisci/playerctl playerctl]: A command-line utility and library for controlling media players<br />
*[[SpotCommander]]: A web based remote control for Spotify<br />
*http://www.spotify.com/int/help/faq/wine/<br />
*http://www.spotify.com/int/download/previews/</div>Mesmerhttps://wiki.archlinux.org/index.php?title=OpenSSL&diff=475059OpenSSL2017-04-25T01:40:11Z<p>Mesmer: /* libssl.so.1.0.0 error */ type error</p>
<hr />
<div>[[Category:Networking]]<br />
[[Category:Encryption]]<br />
[[ja:OpenSSL]]<br />
{{Warning|Collaborated research into OpenSSL protocol usage, published in May 2015, showed further significant risks for SSL connections; named "Logjam" attack. See https://weakdh.org/ for results and https://weakdh.org/sysadmin.html for suggested server-side configuration changes.}}<br />
<br />
[http://www.openssl.org OpenSSL] is an open-source implementation of the SSL and TLS protocols, dual-licensed under the OpenSSL (Apache License 1.0) and the SSLeay (4-clause BSD) licenses. It is supported on a variety of platforms, including BSD, Linux, OpenVMS, Solaris and Windows. It is designed to be as flexible as possible, and is free to use for both personal and commercial uses. It is based on the earlier SSLeay library. Version 1.0.0 of OpenSSL was released on March 29, 2010.<br />
<br />
==SSL introduction==<br />
<!-- Should be moved into [[SSL]] when someone covers other libraries, such as gnutls or the mozilla one. --><br />
In order to focus on setting up a SSL/TLS solution, rather than explaining the bare basics regarding the subject, the approach used throughout the article to explain SSL concepts is by and large file-oriented.<br />
<br />
Consult both [[Wikipedia:Certificate authority]] and [[Wikipedia:Public key infrastructure]] for more information.<br />
<br />
===Certificate authority (CA)===<br />
Certificate authorities return certificates from end-user requests. In order to do this, the returned end-user certificate is signed with the CA private key and CA certificate, which in turn contains the CA public key. CA also distribute certificate revocation lists (CRL) which tell the end-user what certificates are no longer valid, and when the next CRL is due.<br />
<br />
====CA private key====<br />
The CA private key is the crucial part of the trifecta. Exposing it would defeat the purpose of designating a central authority that validates and revokes permissions, and at the same time, it is the signed counter part to the CA public key used to certify against the CA certificate. An exposed CA private key could allow an attacker to replicate the CA certificate since the CA private key signature is embedded in the CA certificate itself.<br />
<br />
====CA certificate and public key====<br />
These are distributed in a single file to all end-users. They are used to certify other end-user certificates that claimed to be signed by the matching CA, such as mail servers or websites. <br />
<br />
===End-users===<br />
End-users submit certificate requests to the CA which contain a distinguished name (DN). Normally, CA do not allow more than one valid certificate with the same DN without revoking the previous one. End-user certificates may be revoked if they are not renewed when due, among other reasons.<br />
<br />
====End-user generated key====<br />
End-users generate keys in order to sign certificate requests that are submitted to the CA. As with the CA private key, an exposed user-key could facilitate impersonating the user to the point where an attacker could submit a request under the user's name, resulting in the CA revoking the former, legitimate, user certificate.<br />
<br />
====Certificate requests====<br />
These contain the user's DN and public key. As their name implies, they fully represent the initial part of the process of acquiring certification from a CA.<br />
<br />
====End-user certificate====<br />
The main distinction between an end-user certificate and CA certificate is that end-user ones cannot sign certificates themselves; they merely provide means of identification in exchanges of information.<br />
<br />
====Certificate revocation list (CRL)====<br />
CRLs are also signed with the CA key, but they only dictate information regarding end-user certificates. Usually, a 30 day span is given between new CRL submissions.<br />
<br />
==Configuring==<br />
The OpenSSL configuration file, conventionally placed in {{ic|/etc/ssl/openssl.cnf}}, may appear complicated at first. This isn't remedied by the fact that there's no ''include'' directive to split configuration into a modal setup. Nevertheless, this section covers the essential settings.<br />
<br />
Remember that variables may be expanded in assignments, much like how shell scripts work. For a more thorough explanation of the configuration file format, see ''config(5)''. In some operating systems, this [[man]] page is named ''openssl-config'' or ''config(5ssl)''. Sometimes, it may not even be available through the man hierarchy at all, for example, it may be placed in the following location {{ic|/usr/share/openssl}}.<br />
<br />
===Global variables===<br />
These settings are relevant in all sections. For that to happen, they can not be specified under a section header:<br />
<br />
{{bc|<nowiki><br />
DIR= . # Useful macro for populating real vars.<br />
RANDFILE= ${DIR}/private/.rnd # Entropy source.<br />
default_md= sha1 # Default message digest.<br />
</nowiki>}}<br />
<br />
===ca section===<br />
These settings are used when signing CRLs, and signing and revoking certificates. Users that only want to generate requests can safely skip to the [[#req section]].<br />
<br />
{{bc|<nowiki><br />
[ ca ]<br />
default_ca= dft_ca # Configuration files may have more than one CA<br />
# section for different scenarios.<br />
<br />
[ dft_ca ]<br />
certificate= ${DIR}/cacert.pem # The CA certificate.<br />
database= ${DIR}/index.txt # Keeps tracks of valid/revoked certs.<br />
new_certs_dir= ${DIR}/newcerts # Copies of signed certificates, for<br />
# administrative purposes.<br />
private_key= ${DIR}/private/cakey.pem # The CA key.<br />
serial= ${DIR}/serial # Should be populated with the next<br />
# cert hex serial.<br />
<br />
# These govern the way certificates are displayed while confirming<br />
# the signing process.<br />
name_opt= ca_default<br />
cert_opt= ca_default<br />
<br />
default_days= 365 # How long to sign certificates for.<br />
default_crl_days=30 # The same, but for CRL.<br />
<br />
policy= dft_policy # The default policy should be lenient.<br />
x509_extensions=cert_v3 # For v3 certificates.<br />
<br />
[ dft_policy ]<br />
# A value of 'supplied' means the field must be present in the certificate,<br />
# whereas 'match' means the field must be populated with the same contents as<br />
# the CA certificate. 'optional' dictates that the field is entirely optional.<br />
<br />
C= supplied # Country<br />
ST= supplied # State or province<br />
L= optional # Locality<br />
O= supplied # Organization<br />
OU= optional # Organizational unit<br />
CN= supplied # Common name<br />
<br />
[ cert_v3 ]<br />
# With the exception of 'CA:FALSE', there are PKIX recommendations for end-user<br />
# certificates that should not be able to sign other certificates.<br />
# 'CA:FALSE' is explicitely set because some software will malfunction without.<br />
<br />
subjectKeyIdentifier= hash<br />
basicConstraints= CA:FALSE<br />
keyUsage= nonRepudiation, digitalSignature, keyEncipherment<br />
<br />
nsCertType= client, email<br />
nsComment= "OpenSSL Generated Certificate"<br />
<br />
authorityKeyIdentifier=keyid:always,issuer:always<br />
</nowiki>}}<br />
<br />
===req section===<br />
Settings related to generating keys, requests and self-signed certificates.<br />
<br />
The req section is responsible for the DN prompts. A general misconception is the ''Common Name'' (CN) prompt, which suggests that it should have the user's proper name as a value. End-user certificates need to have the '''machine hostname''' as CN, whereas CA should ''not'' have a valid TLD, so that there's no chance that, between the possible combinations of certified end-users' CN and the CA certificate's, there's a match that could be misinterpreted by some software as meaning that the end-user certificate is self-signed. Some CA certificates do not even have a CN, such as [http://www.equifax.com Equifax]:<br />
# subject= /C=US/O=Equifax/OU=Equifax Secure Certificate Authority<br />
openssl x509 -subject -noout < /etc/ssl/certs/Equifax_Secure_CA.pem<br />
<br />
Even though splitting the files isn't strictly necessary to normal functioning, it is very confusing to handle request generation and CA administration from the same configuration file, so it is advised to follow the convention of clearly separating the settings into two {{ic|cnf}} files and into two containing directories.<br />
<br />
Here are the settings that are common to both tasks:<br />
<br />
{{bc|<nowiki><br />
[ req ]<br />
# Default bit encryption and out file for generated keys.<br />
default_bits= 2048<br />
default_keyfile=private/cakey.pem<br />
<br />
string_mask= utf8only # Only allow utf8 strings in request/ca fields.<br />
prompt= no # Do not prompt for field value confirmation.<br />
</nowiki>}}<br />
<br />
====CA req settings====<br />
The settings should produce a standard CA capable of only singing other certificates:<br />
<br />
{{bc|<nowiki><br />
distinguished_name=ca_dn # Distinguished name contents.<br />
x509_extensions=ca_v3 # For generating ca certificates.<br />
<br />
[ ca_dn ]<br />
# CN isn't needed for CA certificates<br />
C= US<br />
ST= New Jersey<br />
O= localdomain<br />
<br />
[ ca_v3 ]<br />
subjectKeyIdentifier= hash<br />
<br />
# PKIX says this should also contain the 'crucial' value, yet some programs<br />
# have trouble handling it.<br />
basicConstraints= CA:TRUE<br />
<br />
keyUsage= cRLSign, keyCertSign<br />
<br />
nsCertType= sslCA<br />
nsComment= "OpenSSL Generated CA Certificate"<br />
<br />
authorityKeyIdentifier=keyid:always,issuer:always<br />
</nowiki>}}<br />
<br />
====End-user req settings====<br />
Makes a v3 request suitable for most circumstances:<br />
<br />
{{bc|<nowiki><br />
distinguished_name=ca_dn # Distinguished name contents.<br />
req_extensions=req_v3 # For generating ca certificates.<br />
<br />
[ ca_dn ]<br />
C= US<br />
ST= New Jersey<br />
O= localdomain<br />
CN= localhost<br />
<br />
[ req_v3 ]<br />
basicConstraints= CA:FALSE<br />
keyUsage= nonRepudiation, digitalSignature, keyEncipherment<br />
</nowiki>}}<br />
<br />
===GOST engine support===<br />
First, be sure that libgost.so exist on your system<br />
pacman -Ql openssl | grep libgost<br />
<br />
In case everything is fine, add the following lines to the config:<br />
openssl_conf = openssl_def # this must be a top-level declaration<br />
<br />
Put the following lines in the end of the document:<br />
[ openssl_def ]<br />
engines = engine_section<br />
<br />
[ engine_section ]<br />
gost = gost_section<br />
<br />
[ gost_section ]<br />
engine_id = gost<br />
soft_load = 1<br />
dynamic_path = /usr/lib/engines/libgost.so<br />
default_algorithms = ALL<br />
CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet<br />
The official [http://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/crypto/external/bsd/openssl/dist/engines/ccgost/README.gost README.gost] should contain more examples on this.<br />
<br />
==Generating keys==<br />
Before generating the key, make a secure directory to host it:<br />
$ mkdir -m0700 private<br />
Followed by preemptively assigning secure permissions for the key itself:<br />
$ touch private/key.pem<br />
$ chmod 0600 private/key.pem<br />
Alternatively set [[umask]] to restrict permissions of newly created files and directories:<br />
umask 077<br />
<br />
An example {{ic|genpkey}} key generation:<br />
$ openssl genpkey -algorithm RSA -out private/key.pem -pkeyopt rsa_keygen_bits:4096<br />
<br />
If an encrypted key is desired, use the following command. Password will be prompted for:<br />
$ openssl genpkey -aes-256-cbc -algorithm RSA -out private/key.pem -pkeyopt rsa_keygen_bits:4096<br />
<br />
== Making requests ==<br />
<br />
To obtain a certificate from a CA, whether a public one such as [http://www.cacert.org CAcert.org] or a locally managed solution, a request file must be submitted which is known as a [[wikipedia:Certificate_signing_request|Certificate Signing Request]] or CSR.<br />
<br />
Make a new request and sign it with a previously [[#Generating keys|generated key]]:<br />
openssl req -new -sha256 -key private/key.pem -out req.csr<br />
<br />
==Signing certificates==<br />
Covers the process of local CA signing: directly self-signed certificates or through a local CA.<br />
<br />
===Self-signed certificate===<br />
A significant amount of programs will not work with self-signed certificates, and maintaining more than one system with self-signed certificates is more trouble than investing the initial effort in setting up a [[#Certificate authority|certificate authority]].<br />
<br />
If a key was already generated as [[#Generating keys|explained before]], use this command to sign the new certificate with the aforementioned key:<br />
openssl req -key private/key.pem -x509 -new -days 3650 -out cacert.pem<br />
<br />
===Certificate authority===<br />
[https://jamielinux.com/docs/openssl-certificate-authority/ OpenSSL Certificate Authority] is a detailed guide on using OpenSSL to act as a CA.<br />
<br />
The method shown in this section is mostly meant to show how signing works; it is not suited for large deployments that need to automate signing a large number of certificates. Consider installing an SSL server for that purpose.<br />
<br />
Before using the Makefile, make a configuration file according to [[#Configuring]]. Be sure to follow instructions relevant to CA administration; not request generation.<br />
<br />
====Makefile====<br />
Saving the file as {{ic|Makefile}} and issuing {{Ic|make}} in the containing directory will generate the initial CRL along with its prerequisites:<br />
<br />
{{bc|<nowiki><br />
OPENSSL= openssl<br />
CNF= openssl.cnf<br />
CA= ${OPENSSL} ca -config ${CNF}<br />
REQ= ${OPENSSL} req -config ${CNF}<br />
<br />
KEY= private/cakey.pem<br />
KEYMODE= RSA<br />
<br />
CACERT= cacert.pem<br />
CADAYS= 3650<br />
<br />
CRL= crl.pem<br />
INDEX= index.txt<br />
SERIAL= serial<br />
<br />
<br />
CADEPS= ${CNF} ${KEY} ${CACERT}<br />
<br />
all: ${CRL}<br />
<br />
${CRL}: ${CADEPS}<br />
${CA} -gencrl -out ${CRL}<br />
<br />
${CACERT}: ${CNF} ${KEY}<br />
${REQ} -key ${KEY} -x509 -new -days ${CADAYS} -out ${CACERT}<br />
rm -f ${INDEX}<br />
touch ${INDEX}<br />
echo 100001 > ${SERIAL}<br />
<br />
${KEY}: ${CNF}<br />
mkdir -m0700 -p $(dir ${KEY})<br />
touch ${KEY}<br />
chmod 0600 ${KEY}<br />
${OPENSSL} genpkey -algorithm ${KEYMODE} -out ${KEY}<br />
<br />
<br />
revoke: ${CADEPS} ${item}<br />
@test -n $${item:?'usage: ${MAKE} revoke item=cert.pem'}<br />
${CA} -revoke ${item}<br />
${MAKE} ${CRL}<br />
<br />
sign: ${CADEPS} ${item}<br />
@test -n $${item:?'usage: ${MAKE} sign item=request.csr'}<br />
mkdir -p newcerts<br />
${CA} -in ${item} -out ${item:.csr=.crt} <br />
</nowiki>}}<br />
<br />
To sign certificates:<br />
make sign item='''req.csr'''<br />
<br />
To revoke certificates:<br />
make revoke item='''cert.pem'''<br />
<br />
== libssl.so.1.0.0 error ==<br />
if your system get the error above after update to 1.1.0.e-1,<br />
libssl.so.1.0.0: cannot open shared object file: No such file or directory<br />
you cannot do the pacman -Syu because the pacman NEED this libs, so just do the soft links above<br />
ln -s /usr/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.0.0<br />
ln -s /usr/lib/libssl.so.1.1 /usr/lib/libssl.so.1.0.0<br />
and do the update<br />
pacman -Syu<br />
or just the openssl1-0 (with force because you already have the files, but dont worry)<br />
pacman -S openssl-1.0 --force<br />
<br />
==See also==<br />
* [[wikipedia:OpenSSL|Wikipedia page]] on OpenSSL, with background information.<br />
* [http://www.openssl.org OpenSSL] project page.<br />
* [http://www.freebsd.org/doc/en/books/handbook/openssl.html FreeBSD Handbook]<br />
* [http://www.akadia.com/services/ssh_test_certificate.html Step-by-step guide to create a signed SSL certificate]<br />
* [https://jamielinux.com/docs/openssl-certificate-authority/ OpenSSL Certificate Authority]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=OpenSSL&diff=475058OpenSSL2017-04-25T01:39:45Z<p>Mesmer: Undo revision 475057 by Rdeckard (talk) it's not "hack", with this error you CANNOT do the pacman (the pacman uses this libs)</p>
<hr />
<div>[[Category:Networking]]<br />
[[Category:Encryption]]<br />
[[ja:OpenSSL]]<br />
{{Warning|Collaborated research into OpenSSL protocol usage, published in May 2015, showed further significant risks for SSL connections; named "Logjam" attack. See https://weakdh.org/ for results and https://weakdh.org/sysadmin.html for suggested server-side configuration changes.}}<br />
<br />
[http://www.openssl.org OpenSSL] is an open-source implementation of the SSL and TLS protocols, dual-licensed under the OpenSSL (Apache License 1.0) and the SSLeay (4-clause BSD) licenses. It is supported on a variety of platforms, including BSD, Linux, OpenVMS, Solaris and Windows. It is designed to be as flexible as possible, and is free to use for both personal and commercial uses. It is based on the earlier SSLeay library. Version 1.0.0 of OpenSSL was released on March 29, 2010.<br />
<br />
==SSL introduction==<br />
<!-- Should be moved into [[SSL]] when someone covers other libraries, such as gnutls or the mozilla one. --><br />
In order to focus on setting up a SSL/TLS solution, rather than explaining the bare basics regarding the subject, the approach used throughout the article to explain SSL concepts is by and large file-oriented.<br />
<br />
Consult both [[Wikipedia:Certificate authority]] and [[Wikipedia:Public key infrastructure]] for more information.<br />
<br />
===Certificate authority (CA)===<br />
Certificate authorities return certificates from end-user requests. In order to do this, the returned end-user certificate is signed with the CA private key and CA certificate, which in turn contains the CA public key. CA also distribute certificate revocation lists (CRL) which tell the end-user what certificates are no longer valid, and when the next CRL is due.<br />
<br />
====CA private key====<br />
The CA private key is the crucial part of the trifecta. Exposing it would defeat the purpose of designating a central authority that validates and revokes permissions, and at the same time, it is the signed counter part to the CA public key used to certify against the CA certificate. An exposed CA private key could allow an attacker to replicate the CA certificate since the CA private key signature is embedded in the CA certificate itself.<br />
<br />
====CA certificate and public key====<br />
These are distributed in a single file to all end-users. They are used to certify other end-user certificates that claimed to be signed by the matching CA, such as mail servers or websites. <br />
<br />
===End-users===<br />
End-users submit certificate requests to the CA which contain a distinguished name (DN). Normally, CA do not allow more than one valid certificate with the same DN without revoking the previous one. End-user certificates may be revoked if they are not renewed when due, among other reasons.<br />
<br />
====End-user generated key====<br />
End-users generate keys in order to sign certificate requests that are submitted to the CA. As with the CA private key, an exposed user-key could facilitate impersonating the user to the point where an attacker could submit a request under the user's name, resulting in the CA revoking the former, legitimate, user certificate.<br />
<br />
====Certificate requests====<br />
These contain the user's DN and public key. As their name implies, they fully represent the initial part of the process of acquiring certification from a CA.<br />
<br />
====End-user certificate====<br />
The main distinction between an end-user certificate and CA certificate is that end-user ones cannot sign certificates themselves; they merely provide means of identification in exchanges of information.<br />
<br />
====Certificate revocation list (CRL)====<br />
CRLs are also signed with the CA key, but they only dictate information regarding end-user certificates. Usually, a 30 day span is given between new CRL submissions.<br />
<br />
==Configuring==<br />
The OpenSSL configuration file, conventionally placed in {{ic|/etc/ssl/openssl.cnf}}, may appear complicated at first. This isn't remedied by the fact that there's no ''include'' directive to split configuration into a modal setup. Nevertheless, this section covers the essential settings.<br />
<br />
Remember that variables may be expanded in assignments, much like how shell scripts work. For a more thorough explanation of the configuration file format, see ''config(5)''. In some operating systems, this [[man]] page is named ''openssl-config'' or ''config(5ssl)''. Sometimes, it may not even be available through the man hierarchy at all, for example, it may be placed in the following location {{ic|/usr/share/openssl}}.<br />
<br />
===Global variables===<br />
These settings are relevant in all sections. For that to happen, they can not be specified under a section header:<br />
<br />
{{bc|<nowiki><br />
DIR= . # Useful macro for populating real vars.<br />
RANDFILE= ${DIR}/private/.rnd # Entropy source.<br />
default_md= sha1 # Default message digest.<br />
</nowiki>}}<br />
<br />
===ca section===<br />
These settings are used when signing CRLs, and signing and revoking certificates. Users that only want to generate requests can safely skip to the [[#req section]].<br />
<br />
{{bc|<nowiki><br />
[ ca ]<br />
default_ca= dft_ca # Configuration files may have more than one CA<br />
# section for different scenarios.<br />
<br />
[ dft_ca ]<br />
certificate= ${DIR}/cacert.pem # The CA certificate.<br />
database= ${DIR}/index.txt # Keeps tracks of valid/revoked certs.<br />
new_certs_dir= ${DIR}/newcerts # Copies of signed certificates, for<br />
# administrative purposes.<br />
private_key= ${DIR}/private/cakey.pem # The CA key.<br />
serial= ${DIR}/serial # Should be populated with the next<br />
# cert hex serial.<br />
<br />
# These govern the way certificates are displayed while confirming<br />
# the signing process.<br />
name_opt= ca_default<br />
cert_opt= ca_default<br />
<br />
default_days= 365 # How long to sign certificates for.<br />
default_crl_days=30 # The same, but for CRL.<br />
<br />
policy= dft_policy # The default policy should be lenient.<br />
x509_extensions=cert_v3 # For v3 certificates.<br />
<br />
[ dft_policy ]<br />
# A value of 'supplied' means the field must be present in the certificate,<br />
# whereas 'match' means the field must be populated with the same contents as<br />
# the CA certificate. 'optional' dictates that the field is entirely optional.<br />
<br />
C= supplied # Country<br />
ST= supplied # State or province<br />
L= optional # Locality<br />
O= supplied # Organization<br />
OU= optional # Organizational unit<br />
CN= supplied # Common name<br />
<br />
[ cert_v3 ]<br />
# With the exception of 'CA:FALSE', there are PKIX recommendations for end-user<br />
# certificates that should not be able to sign other certificates.<br />
# 'CA:FALSE' is explicitely set because some software will malfunction without.<br />
<br />
subjectKeyIdentifier= hash<br />
basicConstraints= CA:FALSE<br />
keyUsage= nonRepudiation, digitalSignature, keyEncipherment<br />
<br />
nsCertType= client, email<br />
nsComment= "OpenSSL Generated Certificate"<br />
<br />
authorityKeyIdentifier=keyid:always,issuer:always<br />
</nowiki>}}<br />
<br />
===req section===<br />
Settings related to generating keys, requests and self-signed certificates.<br />
<br />
The req section is responsible for the DN prompts. A general misconception is the ''Common Name'' (CN) prompt, which suggests that it should have the user's proper name as a value. End-user certificates need to have the '''machine hostname''' as CN, whereas CA should ''not'' have a valid TLD, so that there's no chance that, between the possible combinations of certified end-users' CN and the CA certificate's, there's a match that could be misinterpreted by some software as meaning that the end-user certificate is self-signed. Some CA certificates do not even have a CN, such as [http://www.equifax.com Equifax]:<br />
# subject= /C=US/O=Equifax/OU=Equifax Secure Certificate Authority<br />
openssl x509 -subject -noout < /etc/ssl/certs/Equifax_Secure_CA.pem<br />
<br />
Even though splitting the files isn't strictly necessary to normal functioning, it is very confusing to handle request generation and CA administration from the same configuration file, so it is advised to follow the convention of clearly separating the settings into two {{ic|cnf}} files and into two containing directories.<br />
<br />
Here are the settings that are common to both tasks:<br />
<br />
{{bc|<nowiki><br />
[ req ]<br />
# Default bit encryption and out file for generated keys.<br />
default_bits= 2048<br />
default_keyfile=private/cakey.pem<br />
<br />
string_mask= utf8only # Only allow utf8 strings in request/ca fields.<br />
prompt= no # Do not prompt for field value confirmation.<br />
</nowiki>}}<br />
<br />
====CA req settings====<br />
The settings should produce a standard CA capable of only singing other certificates:<br />
<br />
{{bc|<nowiki><br />
distinguished_name=ca_dn # Distinguished name contents.<br />
x509_extensions=ca_v3 # For generating ca certificates.<br />
<br />
[ ca_dn ]<br />
# CN isn't needed for CA certificates<br />
C= US<br />
ST= New Jersey<br />
O= localdomain<br />
<br />
[ ca_v3 ]<br />
subjectKeyIdentifier= hash<br />
<br />
# PKIX says this should also contain the 'crucial' value, yet some programs<br />
# have trouble handling it.<br />
basicConstraints= CA:TRUE<br />
<br />
keyUsage= cRLSign, keyCertSign<br />
<br />
nsCertType= sslCA<br />
nsComment= "OpenSSL Generated CA Certificate"<br />
<br />
authorityKeyIdentifier=keyid:always,issuer:always<br />
</nowiki>}}<br />
<br />
====End-user req settings====<br />
Makes a v3 request suitable for most circumstances:<br />
<br />
{{bc|<nowiki><br />
distinguished_name=ca_dn # Distinguished name contents.<br />
req_extensions=req_v3 # For generating ca certificates.<br />
<br />
[ ca_dn ]<br />
C= US<br />
ST= New Jersey<br />
O= localdomain<br />
CN= localhost<br />
<br />
[ req_v3 ]<br />
basicConstraints= CA:FALSE<br />
keyUsage= nonRepudiation, digitalSignature, keyEncipherment<br />
</nowiki>}}<br />
<br />
===GOST engine support===<br />
First, be sure that libgost.so exist on your system<br />
pacman -Ql openssl | grep libgost<br />
<br />
In case everything is fine, add the following lines to the config:<br />
openssl_conf = openssl_def # this must be a top-level declaration<br />
<br />
Put the following lines in the end of the document:<br />
[ openssl_def ]<br />
engines = engine_section<br />
<br />
[ engine_section ]<br />
gost = gost_section<br />
<br />
[ gost_section ]<br />
engine_id = gost<br />
soft_load = 1<br />
dynamic_path = /usr/lib/engines/libgost.so<br />
default_algorithms = ALL<br />
CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet<br />
The official [http://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/crypto/external/bsd/openssl/dist/engines/ccgost/README.gost README.gost] should contain more examples on this.<br />
<br />
==Generating keys==<br />
Before generating the key, make a secure directory to host it:<br />
$ mkdir -m0700 private<br />
Followed by preemptively assigning secure permissions for the key itself:<br />
$ touch private/key.pem<br />
$ chmod 0600 private/key.pem<br />
Alternatively set [[umask]] to restrict permissions of newly created files and directories:<br />
umask 077<br />
<br />
An example {{ic|genpkey}} key generation:<br />
$ openssl genpkey -algorithm RSA -out private/key.pem -pkeyopt rsa_keygen_bits:4096<br />
<br />
If an encrypted key is desired, use the following command. Password will be prompted for:<br />
$ openssl genpkey -aes-256-cbc -algorithm RSA -out private/key.pem -pkeyopt rsa_keygen_bits:4096<br />
<br />
== Making requests ==<br />
<br />
To obtain a certificate from a CA, whether a public one such as [http://www.cacert.org CAcert.org] or a locally managed solution, a request file must be submitted which is known as a [[wikipedia:Certificate_signing_request|Certificate Signing Request]] or CSR.<br />
<br />
Make a new request and sign it with a previously [[#Generating keys|generated key]]:<br />
openssl req -new -sha256 -key private/key.pem -out req.csr<br />
<br />
==Signing certificates==<br />
Covers the process of local CA signing: directly self-signed certificates or through a local CA.<br />
<br />
===Self-signed certificate===<br />
A significant amount of programs will not work with self-signed certificates, and maintaining more than one system with self-signed certificates is more trouble than investing the initial effort in setting up a [[#Certificate authority|certificate authority]].<br />
<br />
If a key was already generated as [[#Generating keys|explained before]], use this command to sign the new certificate with the aforementioned key:<br />
openssl req -key private/key.pem -x509 -new -days 3650 -out cacert.pem<br />
<br />
===Certificate authority===<br />
[https://jamielinux.com/docs/openssl-certificate-authority/ OpenSSL Certificate Authority] is a detailed guide on using OpenSSL to act as a CA.<br />
<br />
The method shown in this section is mostly meant to show how signing works; it is not suited for large deployments that need to automate signing a large number of certificates. Consider installing an SSL server for that purpose.<br />
<br />
Before using the Makefile, make a configuration file according to [[#Configuring]]. Be sure to follow instructions relevant to CA administration; not request generation.<br />
<br />
====Makefile====<br />
Saving the file as {{ic|Makefile}} and issuing {{Ic|make}} in the containing directory will generate the initial CRL along with its prerequisites:<br />
<br />
{{bc|<nowiki><br />
OPENSSL= openssl<br />
CNF= openssl.cnf<br />
CA= ${OPENSSL} ca -config ${CNF}<br />
REQ= ${OPENSSL} req -config ${CNF}<br />
<br />
KEY= private/cakey.pem<br />
KEYMODE= RSA<br />
<br />
CACERT= cacert.pem<br />
CADAYS= 3650<br />
<br />
CRL= crl.pem<br />
INDEX= index.txt<br />
SERIAL= serial<br />
<br />
<br />
CADEPS= ${CNF} ${KEY} ${CACERT}<br />
<br />
all: ${CRL}<br />
<br />
${CRL}: ${CADEPS}<br />
${CA} -gencrl -out ${CRL}<br />
<br />
${CACERT}: ${CNF} ${KEY}<br />
${REQ} -key ${KEY} -x509 -new -days ${CADAYS} -out ${CACERT}<br />
rm -f ${INDEX}<br />
touch ${INDEX}<br />
echo 100001 > ${SERIAL}<br />
<br />
${KEY}: ${CNF}<br />
mkdir -m0700 -p $(dir ${KEY})<br />
touch ${KEY}<br />
chmod 0600 ${KEY}<br />
${OPENSSL} genpkey -algorithm ${KEYMODE} -out ${KEY}<br />
<br />
<br />
revoke: ${CADEPS} ${item}<br />
@test -n $${item:?'usage: ${MAKE} revoke item=cert.pem'}<br />
${CA} -revoke ${item}<br />
${MAKE} ${CRL}<br />
<br />
sign: ${CADEPS} ${item}<br />
@test -n $${item:?'usage: ${MAKE} sign item=request.csr'}<br />
mkdir -p newcerts<br />
${CA} -in ${item} -out ${item:.csr=.crt} <br />
</nowiki>}}<br />
<br />
To sign certificates:<br />
make sign item='''req.csr'''<br />
<br />
To revoke certificates:<br />
make revoke item='''cert.pem'''<br />
<br />
== libssl.so.1.0.0 error ==<br />
if your system get the error above after update to 1.1.0.e-1,<br />
libssl.so.1.0.0: cannot open shared object file: No such file or directory<br />
you cannot do the pacman -Syu because the pacman NEED this libs, so just do the soft links above<br />
ln -s /usr/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.0.0<br />
ln -s /usr/lib/libssl.so.1.1 /usr/lib/libssl.so.1.0.0<br />
and do the update<br />
pacman -Syu<br />
or just the openssl1-0 (with force because you already have the files, but dont worry)<br />
pacman -S openssl-1.0 --force<br />
<br />
==See also==<br />
* [[wikipedia:OpenSSL|Wikipedia page]] on OpenSSL, with background information.<br />
* [http://www.openssl.org OpenSSL] project page.<br />
* [http://www.freebsd.org/doc/en/books/handbook/openssl.html FreeBSD Handbook]<br />
* [http://www.akadia.com/services/ssh_test_certificate.html Step-by-step guide to create a signed SSL certificate]<br />
* [https://jamielinux.com/docs/openssl-certificate-authority/ OpenSSL Certificate Authority]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=OpenSSL&diff=475056OpenSSL2017-04-25T01:00:09Z<p>Mesmer: /* libssl.so.1.0.0 error */ add a fix</p>
<hr />
<div>[[Category:Networking]]<br />
[[Category:Encryption]]<br />
[[ja:OpenSSL]]<br />
{{Warning|Collaborated research into OpenSSL protocol usage, published in May 2015, showed further significant risks for SSL connections; named "Logjam" attack. See https://weakdh.org/ for results and https://weakdh.org/sysadmin.html for suggested server-side configuration changes.}}<br />
<br />
[http://www.openssl.org OpenSSL] is an open-source implementation of the SSL and TLS protocols, dual-licensed under the OpenSSL (Apache License 1.0) and the SSLeay (4-clause BSD) licenses. It is supported on a variety of platforms, including BSD, Linux, OpenVMS, Solaris and Windows. It is designed to be as flexible as possible, and is free to use for both personal and commercial uses. It is based on the earlier SSLeay library. Version 1.0.0 of OpenSSL was released on March 29, 2010.<br />
<br />
==SSL introduction==<br />
<!-- Should be moved into [[SSL]] when someone covers other libraries, such as gnutls or the mozilla one. --><br />
In order to focus on setting up a SSL/TLS solution, rather than explaining the bare basics regarding the subject, the approach used throughout the article to explain SSL concepts is by and large file-oriented.<br />
<br />
Consult both [[Wikipedia:Certificate authority]] and [[Wikipedia:Public key infrastructure]] for more information.<br />
<br />
===Certificate authority (CA)===<br />
Certificate authorities return certificates from end-user requests. In order to do this, the returned end-user certificate is signed with the CA private key and CA certificate, which in turn contains the CA public key. CA also distribute certificate revocation lists (CRL) which tell the end-user what certificates are no longer valid, and when the next CRL is due.<br />
<br />
====CA private key====<br />
The CA private key is the crucial part of the trifecta. Exposing it would defeat the purpose of designating a central authority that validates and revokes permissions, and at the same time, it is the signed counter part to the CA public key used to certify against the CA certificate. An exposed CA private key could allow an attacker to replicate the CA certificate since the CA private key signature is embedded in the CA certificate itself.<br />
<br />
====CA certificate and public key====<br />
These are distributed in a single file to all end-users. They are used to certify other end-user certificates that claimed to be signed by the matching CA, such as mail servers or websites. <br />
<br />
===End-users===<br />
End-users submit certificate requests to the CA which contain a distinguished name (DN). Normally, CA do not allow more than one valid certificate with the same DN without revoking the previous one. End-user certificates may be revoked if they are not renewed when due, among other reasons.<br />
<br />
====End-user generated key====<br />
End-users generate keys in order to sign certificate requests that are submitted to the CA. As with the CA private key, an exposed user-key could facilitate impersonating the user to the point where an attacker could submit a request under the user's name, resulting in the CA revoking the former, legitimate, user certificate.<br />
<br />
====Certificate requests====<br />
These contain the user's DN and public key. As their name implies, they fully represent the initial part of the process of acquiring certification from a CA.<br />
<br />
====End-user certificate====<br />
The main distinction between an end-user certificate and CA certificate is that end-user ones cannot sign certificates themselves; they merely provide means of identification in exchanges of information.<br />
<br />
====Certificate revocation list (CRL)====<br />
CRLs are also signed with the CA key, but they only dictate information regarding end-user certificates. Usually, a 30 day span is given between new CRL submissions.<br />
<br />
==Configuring==<br />
The OpenSSL configuration file, conventionally placed in {{ic|/etc/ssl/openssl.cnf}}, may appear complicated at first. This isn't remedied by the fact that there's no ''include'' directive to split configuration into a modal setup. Nevertheless, this section covers the essential settings.<br />
<br />
Remember that variables may be expanded in assignments, much like how shell scripts work. For a more thorough explanation of the configuration file format, see ''config(5)''. In some operating systems, this [[man]] page is named ''openssl-config'' or ''config(5ssl)''. Sometimes, it may not even be available through the man hierarchy at all, for example, it may be placed in the following location {{ic|/usr/share/openssl}}.<br />
<br />
===Global variables===<br />
These settings are relevant in all sections. For that to happen, they can not be specified under a section header:<br />
<br />
{{bc|<nowiki><br />
DIR= . # Useful macro for populating real vars.<br />
RANDFILE= ${DIR}/private/.rnd # Entropy source.<br />
default_md= sha1 # Default message digest.<br />
</nowiki>}}<br />
<br />
===ca section===<br />
These settings are used when signing CRLs, and signing and revoking certificates. Users that only want to generate requests can safely skip to the [[#req section]].<br />
<br />
{{bc|<nowiki><br />
[ ca ]<br />
default_ca= dft_ca # Configuration files may have more than one CA<br />
# section for different scenarios.<br />
<br />
[ dft_ca ]<br />
certificate= ${DIR}/cacert.pem # The CA certificate.<br />
database= ${DIR}/index.txt # Keeps tracks of valid/revoked certs.<br />
new_certs_dir= ${DIR}/newcerts # Copies of signed certificates, for<br />
# administrative purposes.<br />
private_key= ${DIR}/private/cakey.pem # The CA key.<br />
serial= ${DIR}/serial # Should be populated with the next<br />
# cert hex serial.<br />
<br />
# These govern the way certificates are displayed while confirming<br />
# the signing process.<br />
name_opt= ca_default<br />
cert_opt= ca_default<br />
<br />
default_days= 365 # How long to sign certificates for.<br />
default_crl_days=30 # The same, but for CRL.<br />
<br />
policy= dft_policy # The default policy should be lenient.<br />
x509_extensions=cert_v3 # For v3 certificates.<br />
<br />
[ dft_policy ]<br />
# A value of 'supplied' means the field must be present in the certificate,<br />
# whereas 'match' means the field must be populated with the same contents as<br />
# the CA certificate. 'optional' dictates that the field is entirely optional.<br />
<br />
C= supplied # Country<br />
ST= supplied # State or province<br />
L= optional # Locality<br />
O= supplied # Organization<br />
OU= optional # Organizational unit<br />
CN= supplied # Common name<br />
<br />
[ cert_v3 ]<br />
# With the exception of 'CA:FALSE', there are PKIX recommendations for end-user<br />
# certificates that should not be able to sign other certificates.<br />
# 'CA:FALSE' is explicitely set because some software will malfunction without.<br />
<br />
subjectKeyIdentifier= hash<br />
basicConstraints= CA:FALSE<br />
keyUsage= nonRepudiation, digitalSignature, keyEncipherment<br />
<br />
nsCertType= client, email<br />
nsComment= "OpenSSL Generated Certificate"<br />
<br />
authorityKeyIdentifier=keyid:always,issuer:always<br />
</nowiki>}}<br />
<br />
===req section===<br />
Settings related to generating keys, requests and self-signed certificates.<br />
<br />
The req section is responsible for the DN prompts. A general misconception is the ''Common Name'' (CN) prompt, which suggests that it should have the user's proper name as a value. End-user certificates need to have the '''machine hostname''' as CN, whereas CA should ''not'' have a valid TLD, so that there's no chance that, between the possible combinations of certified end-users' CN and the CA certificate's, there's a match that could be misinterpreted by some software as meaning that the end-user certificate is self-signed. Some CA certificates do not even have a CN, such as [http://www.equifax.com Equifax]:<br />
# subject= /C=US/O=Equifax/OU=Equifax Secure Certificate Authority<br />
openssl x509 -subject -noout < /etc/ssl/certs/Equifax_Secure_CA.pem<br />
<br />
Even though splitting the files isn't strictly necessary to normal functioning, it is very confusing to handle request generation and CA administration from the same configuration file, so it is advised to follow the convention of clearly separating the settings into two {{ic|cnf}} files and into two containing directories.<br />
<br />
Here are the settings that are common to both tasks:<br />
<br />
{{bc|<nowiki><br />
[ req ]<br />
# Default bit encryption and out file for generated keys.<br />
default_bits= 2048<br />
default_keyfile=private/cakey.pem<br />
<br />
string_mask= utf8only # Only allow utf8 strings in request/ca fields.<br />
prompt= no # Do not prompt for field value confirmation.<br />
</nowiki>}}<br />
<br />
====CA req settings====<br />
The settings should produce a standard CA capable of only singing other certificates:<br />
<br />
{{bc|<nowiki><br />
distinguished_name=ca_dn # Distinguished name contents.<br />
x509_extensions=ca_v3 # For generating ca certificates.<br />
<br />
[ ca_dn ]<br />
# CN isn't needed for CA certificates<br />
C= US<br />
ST= New Jersey<br />
O= localdomain<br />
<br />
[ ca_v3 ]<br />
subjectKeyIdentifier= hash<br />
<br />
# PKIX says this should also contain the 'crucial' value, yet some programs<br />
# have trouble handling it.<br />
basicConstraints= CA:TRUE<br />
<br />
keyUsage= cRLSign, keyCertSign<br />
<br />
nsCertType= sslCA<br />
nsComment= "OpenSSL Generated CA Certificate"<br />
<br />
authorityKeyIdentifier=keyid:always,issuer:always<br />
</nowiki>}}<br />
<br />
====End-user req settings====<br />
Makes a v3 request suitable for most circumstances:<br />
<br />
{{bc|<nowiki><br />
distinguished_name=ca_dn # Distinguished name contents.<br />
req_extensions=req_v3 # For generating ca certificates.<br />
<br />
[ ca_dn ]<br />
C= US<br />
ST= New Jersey<br />
O= localdomain<br />
CN= localhost<br />
<br />
[ req_v3 ]<br />
basicConstraints= CA:FALSE<br />
keyUsage= nonRepudiation, digitalSignature, keyEncipherment<br />
</nowiki>}}<br />
<br />
===GOST engine support===<br />
First, be sure that libgost.so exist on your system<br />
pacman -Ql openssl | grep libgost<br />
<br />
In case everything is fine, add the following lines to the config:<br />
openssl_conf = openssl_def # this must be a top-level declaration<br />
<br />
Put the following lines in the end of the document:<br />
[ openssl_def ]<br />
engines = engine_section<br />
<br />
[ engine_section ]<br />
gost = gost_section<br />
<br />
[ gost_section ]<br />
engine_id = gost<br />
soft_load = 1<br />
dynamic_path = /usr/lib/engines/libgost.so<br />
default_algorithms = ALL<br />
CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet<br />
The official [http://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/crypto/external/bsd/openssl/dist/engines/ccgost/README.gost README.gost] should contain more examples on this.<br />
<br />
==Generating keys==<br />
Before generating the key, make a secure directory to host it:<br />
$ mkdir -m0700 private<br />
Followed by preemptively assigning secure permissions for the key itself:<br />
$ touch private/key.pem<br />
$ chmod 0600 private/key.pem<br />
Alternatively set [[umask]] to restrict permissions of newly created files and directories:<br />
umask 077<br />
<br />
An example {{ic|genpkey}} key generation:<br />
$ openssl genpkey -algorithm RSA -out private/key.pem -pkeyopt rsa_keygen_bits:4096<br />
<br />
If an encrypted key is desired, use the following command. Password will be prompted for:<br />
$ openssl genpkey -aes-256-cbc -algorithm RSA -out private/key.pem -pkeyopt rsa_keygen_bits:4096<br />
<br />
== Making requests ==<br />
<br />
To obtain a certificate from a CA, whether a public one such as [http://www.cacert.org CAcert.org] or a locally managed solution, a request file must be submitted which is known as a [[wikipedia:Certificate_signing_request|Certificate Signing Request]] or CSR.<br />
<br />
Make a new request and sign it with a previously [[#Generating keys|generated key]]:<br />
openssl req -new -sha256 -key private/key.pem -out req.csr<br />
<br />
==Signing certificates==<br />
Covers the process of local CA signing: directly self-signed certificates or through a local CA.<br />
<br />
===Self-signed certificate===<br />
A significant amount of programs will not work with self-signed certificates, and maintaining more than one system with self-signed certificates is more trouble than investing the initial effort in setting up a [[#Certificate authority|certificate authority]].<br />
<br />
If a key was already generated as [[#Generating keys|explained before]], use this command to sign the new certificate with the aforementioned key:<br />
openssl req -key private/key.pem -x509 -new -days 3650 -out cacert.pem<br />
<br />
===Certificate authority===<br />
[https://jamielinux.com/docs/openssl-certificate-authority/ OpenSSL Certificate Authority] is a detailed guide on using OpenSSL to act as a CA.<br />
<br />
The method shown in this section is mostly meant to show how signing works; it is not suited for large deployments that need to automate signing a large number of certificates. Consider installing an SSL server for that purpose.<br />
<br />
Before using the Makefile, make a configuration file according to [[#Configuring]]. Be sure to follow instructions relevant to CA administration; not request generation.<br />
<br />
====Makefile====<br />
Saving the file as {{ic|Makefile}} and issuing {{Ic|make}} in the containing directory will generate the initial CRL along with its prerequisites:<br />
<br />
{{bc|<nowiki><br />
OPENSSL= openssl<br />
CNF= openssl.cnf<br />
CA= ${OPENSSL} ca -config ${CNF}<br />
REQ= ${OPENSSL} req -config ${CNF}<br />
<br />
KEY= private/cakey.pem<br />
KEYMODE= RSA<br />
<br />
CACERT= cacert.pem<br />
CADAYS= 3650<br />
<br />
CRL= crl.pem<br />
INDEX= index.txt<br />
SERIAL= serial<br />
<br />
<br />
CADEPS= ${CNF} ${KEY} ${CACERT}<br />
<br />
all: ${CRL}<br />
<br />
${CRL}: ${CADEPS}<br />
${CA} -gencrl -out ${CRL}<br />
<br />
${CACERT}: ${CNF} ${KEY}<br />
${REQ} -key ${KEY} -x509 -new -days ${CADAYS} -out ${CACERT}<br />
rm -f ${INDEX}<br />
touch ${INDEX}<br />
echo 100001 > ${SERIAL}<br />
<br />
${KEY}: ${CNF}<br />
mkdir -m0700 -p $(dir ${KEY})<br />
touch ${KEY}<br />
chmod 0600 ${KEY}<br />
${OPENSSL} genpkey -algorithm ${KEYMODE} -out ${KEY}<br />
<br />
<br />
revoke: ${CADEPS} ${item}<br />
@test -n $${item:?'usage: ${MAKE} revoke item=cert.pem'}<br />
${CA} -revoke ${item}<br />
${MAKE} ${CRL}<br />
<br />
sign: ${CADEPS} ${item}<br />
@test -n $${item:?'usage: ${MAKE} sign item=request.csr'}<br />
mkdir -p newcerts<br />
${CA} -in ${item} -out ${item:.csr=.crt} <br />
</nowiki>}}<br />
<br />
To sign certificates:<br />
make sign item='''req.csr'''<br />
<br />
To revoke certificates:<br />
make revoke item='''cert.pem'''<br />
<br />
== libssl.so.1.0.0 error ==<br />
if your system get the error above after update to 1.1.0.e-1<br />
libssl.so.1.0.0: cannot open shared object file: No such file or directory<br />
just do the soft links above<br />
ln -s /usr/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.0.0<br />
ln -s /usr/lib/libssl.so.1.1 /usr/lib/libssl.so.1.0.0<br />
and do the update<br />
pacman -Syu<br />
or just the openssl1-0 (with force because you already have the files, but dont worry)<br />
pacman -S openssl-1.0 --force<br />
<br />
==See also==<br />
* [[wikipedia:OpenSSL|Wikipedia page]] on OpenSSL, with background information.<br />
* [http://www.openssl.org OpenSSL] project page.<br />
* [http://www.freebsd.org/doc/en/books/handbook/openssl.html FreeBSD Handbook]<br />
* [http://www.akadia.com/services/ssh_test_certificate.html Step-by-step guide to create a signed SSL certificate]<br />
* [https://jamielinux.com/docs/openssl-certificate-authority/ OpenSSL Certificate Authority]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=OpenSSL&diff=475055OpenSSL2017-04-25T00:55:20Z<p>Mesmer: /* libssl.so.1.0.0 error */</p>
<hr />
<div>[[Category:Networking]]<br />
[[Category:Encryption]]<br />
[[ja:OpenSSL]]<br />
{{Warning|Collaborated research into OpenSSL protocol usage, published in May 2015, showed further significant risks for SSL connections; named "Logjam" attack. See https://weakdh.org/ for results and https://weakdh.org/sysadmin.html for suggested server-side configuration changes.}}<br />
<br />
[http://www.openssl.org OpenSSL] is an open-source implementation of the SSL and TLS protocols, dual-licensed under the OpenSSL (Apache License 1.0) and the SSLeay (4-clause BSD) licenses. It is supported on a variety of platforms, including BSD, Linux, OpenVMS, Solaris and Windows. It is designed to be as flexible as possible, and is free to use for both personal and commercial uses. It is based on the earlier SSLeay library. Version 1.0.0 of OpenSSL was released on March 29, 2010.<br />
<br />
==SSL introduction==<br />
<!-- Should be moved into [[SSL]] when someone covers other libraries, such as gnutls or the mozilla one. --><br />
In order to focus on setting up a SSL/TLS solution, rather than explaining the bare basics regarding the subject, the approach used throughout the article to explain SSL concepts is by and large file-oriented.<br />
<br />
Consult both [[Wikipedia:Certificate authority]] and [[Wikipedia:Public key infrastructure]] for more information.<br />
<br />
===Certificate authority (CA)===<br />
Certificate authorities return certificates from end-user requests. In order to do this, the returned end-user certificate is signed with the CA private key and CA certificate, which in turn contains the CA public key. CA also distribute certificate revocation lists (CRL) which tell the end-user what certificates are no longer valid, and when the next CRL is due.<br />
<br />
====CA private key====<br />
The CA private key is the crucial part of the trifecta. Exposing it would defeat the purpose of designating a central authority that validates and revokes permissions, and at the same time, it is the signed counter part to the CA public key used to certify against the CA certificate. An exposed CA private key could allow an attacker to replicate the CA certificate since the CA private key signature is embedded in the CA certificate itself.<br />
<br />
====CA certificate and public key====<br />
These are distributed in a single file to all end-users. They are used to certify other end-user certificates that claimed to be signed by the matching CA, such as mail servers or websites. <br />
<br />
===End-users===<br />
End-users submit certificate requests to the CA which contain a distinguished name (DN). Normally, CA do not allow more than one valid certificate with the same DN without revoking the previous one. End-user certificates may be revoked if they are not renewed when due, among other reasons.<br />
<br />
====End-user generated key====<br />
End-users generate keys in order to sign certificate requests that are submitted to the CA. As with the CA private key, an exposed user-key could facilitate impersonating the user to the point where an attacker could submit a request under the user's name, resulting in the CA revoking the former, legitimate, user certificate.<br />
<br />
====Certificate requests====<br />
These contain the user's DN and public key. As their name implies, they fully represent the initial part of the process of acquiring certification from a CA.<br />
<br />
====End-user certificate====<br />
The main distinction between an end-user certificate and CA certificate is that end-user ones cannot sign certificates themselves; they merely provide means of identification in exchanges of information.<br />
<br />
====Certificate revocation list (CRL)====<br />
CRLs are also signed with the CA key, but they only dictate information regarding end-user certificates. Usually, a 30 day span is given between new CRL submissions.<br />
<br />
==Configuring==<br />
The OpenSSL configuration file, conventionally placed in {{ic|/etc/ssl/openssl.cnf}}, may appear complicated at first. This isn't remedied by the fact that there's no ''include'' directive to split configuration into a modal setup. Nevertheless, this section covers the essential settings.<br />
<br />
Remember that variables may be expanded in assignments, much like how shell scripts work. For a more thorough explanation of the configuration file format, see ''config(5)''. In some operating systems, this [[man]] page is named ''openssl-config'' or ''config(5ssl)''. Sometimes, it may not even be available through the man hierarchy at all, for example, it may be placed in the following location {{ic|/usr/share/openssl}}.<br />
<br />
===Global variables===<br />
These settings are relevant in all sections. For that to happen, they can not be specified under a section header:<br />
<br />
{{bc|<nowiki><br />
DIR= . # Useful macro for populating real vars.<br />
RANDFILE= ${DIR}/private/.rnd # Entropy source.<br />
default_md= sha1 # Default message digest.<br />
</nowiki>}}<br />
<br />
===ca section===<br />
These settings are used when signing CRLs, and signing and revoking certificates. Users that only want to generate requests can safely skip to the [[#req section]].<br />
<br />
{{bc|<nowiki><br />
[ ca ]<br />
default_ca= dft_ca # Configuration files may have more than one CA<br />
# section for different scenarios.<br />
<br />
[ dft_ca ]<br />
certificate= ${DIR}/cacert.pem # The CA certificate.<br />
database= ${DIR}/index.txt # Keeps tracks of valid/revoked certs.<br />
new_certs_dir= ${DIR}/newcerts # Copies of signed certificates, for<br />
# administrative purposes.<br />
private_key= ${DIR}/private/cakey.pem # The CA key.<br />
serial= ${DIR}/serial # Should be populated with the next<br />
# cert hex serial.<br />
<br />
# These govern the way certificates are displayed while confirming<br />
# the signing process.<br />
name_opt= ca_default<br />
cert_opt= ca_default<br />
<br />
default_days= 365 # How long to sign certificates for.<br />
default_crl_days=30 # The same, but for CRL.<br />
<br />
policy= dft_policy # The default policy should be lenient.<br />
x509_extensions=cert_v3 # For v3 certificates.<br />
<br />
[ dft_policy ]<br />
# A value of 'supplied' means the field must be present in the certificate,<br />
# whereas 'match' means the field must be populated with the same contents as<br />
# the CA certificate. 'optional' dictates that the field is entirely optional.<br />
<br />
C= supplied # Country<br />
ST= supplied # State or province<br />
L= optional # Locality<br />
O= supplied # Organization<br />
OU= optional # Organizational unit<br />
CN= supplied # Common name<br />
<br />
[ cert_v3 ]<br />
# With the exception of 'CA:FALSE', there are PKIX recommendations for end-user<br />
# certificates that should not be able to sign other certificates.<br />
# 'CA:FALSE' is explicitely set because some software will malfunction without.<br />
<br />
subjectKeyIdentifier= hash<br />
basicConstraints= CA:FALSE<br />
keyUsage= nonRepudiation, digitalSignature, keyEncipherment<br />
<br />
nsCertType= client, email<br />
nsComment= "OpenSSL Generated Certificate"<br />
<br />
authorityKeyIdentifier=keyid:always,issuer:always<br />
</nowiki>}}<br />
<br />
===req section===<br />
Settings related to generating keys, requests and self-signed certificates.<br />
<br />
The req section is responsible for the DN prompts. A general misconception is the ''Common Name'' (CN) prompt, which suggests that it should have the user's proper name as a value. End-user certificates need to have the '''machine hostname''' as CN, whereas CA should ''not'' have a valid TLD, so that there's no chance that, between the possible combinations of certified end-users' CN and the CA certificate's, there's a match that could be misinterpreted by some software as meaning that the end-user certificate is self-signed. Some CA certificates do not even have a CN, such as [http://www.equifax.com Equifax]:<br />
# subject= /C=US/O=Equifax/OU=Equifax Secure Certificate Authority<br />
openssl x509 -subject -noout < /etc/ssl/certs/Equifax_Secure_CA.pem<br />
<br />
Even though splitting the files isn't strictly necessary to normal functioning, it is very confusing to handle request generation and CA administration from the same configuration file, so it is advised to follow the convention of clearly separating the settings into two {{ic|cnf}} files and into two containing directories.<br />
<br />
Here are the settings that are common to both tasks:<br />
<br />
{{bc|<nowiki><br />
[ req ]<br />
# Default bit encryption and out file for generated keys.<br />
default_bits= 2048<br />
default_keyfile=private/cakey.pem<br />
<br />
string_mask= utf8only # Only allow utf8 strings in request/ca fields.<br />
prompt= no # Do not prompt for field value confirmation.<br />
</nowiki>}}<br />
<br />
====CA req settings====<br />
The settings should produce a standard CA capable of only singing other certificates:<br />
<br />
{{bc|<nowiki><br />
distinguished_name=ca_dn # Distinguished name contents.<br />
x509_extensions=ca_v3 # For generating ca certificates.<br />
<br />
[ ca_dn ]<br />
# CN isn't needed for CA certificates<br />
C= US<br />
ST= New Jersey<br />
O= localdomain<br />
<br />
[ ca_v3 ]<br />
subjectKeyIdentifier= hash<br />
<br />
# PKIX says this should also contain the 'crucial' value, yet some programs<br />
# have trouble handling it.<br />
basicConstraints= CA:TRUE<br />
<br />
keyUsage= cRLSign, keyCertSign<br />
<br />
nsCertType= sslCA<br />
nsComment= "OpenSSL Generated CA Certificate"<br />
<br />
authorityKeyIdentifier=keyid:always,issuer:always<br />
</nowiki>}}<br />
<br />
====End-user req settings====<br />
Makes a v3 request suitable for most circumstances:<br />
<br />
{{bc|<nowiki><br />
distinguished_name=ca_dn # Distinguished name contents.<br />
req_extensions=req_v3 # For generating ca certificates.<br />
<br />
[ ca_dn ]<br />
C= US<br />
ST= New Jersey<br />
O= localdomain<br />
CN= localhost<br />
<br />
[ req_v3 ]<br />
basicConstraints= CA:FALSE<br />
keyUsage= nonRepudiation, digitalSignature, keyEncipherment<br />
</nowiki>}}<br />
<br />
===GOST engine support===<br />
First, be sure that libgost.so exist on your system<br />
pacman -Ql openssl | grep libgost<br />
<br />
In case everything is fine, add the following lines to the config:<br />
openssl_conf = openssl_def # this must be a top-level declaration<br />
<br />
Put the following lines in the end of the document:<br />
[ openssl_def ]<br />
engines = engine_section<br />
<br />
[ engine_section ]<br />
gost = gost_section<br />
<br />
[ gost_section ]<br />
engine_id = gost<br />
soft_load = 1<br />
dynamic_path = /usr/lib/engines/libgost.so<br />
default_algorithms = ALL<br />
CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet<br />
The official [http://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/crypto/external/bsd/openssl/dist/engines/ccgost/README.gost README.gost] should contain more examples on this.<br />
<br />
==Generating keys==<br />
Before generating the key, make a secure directory to host it:<br />
$ mkdir -m0700 private<br />
Followed by preemptively assigning secure permissions for the key itself:<br />
$ touch private/key.pem<br />
$ chmod 0600 private/key.pem<br />
Alternatively set [[umask]] to restrict permissions of newly created files and directories:<br />
umask 077<br />
<br />
An example {{ic|genpkey}} key generation:<br />
$ openssl genpkey -algorithm RSA -out private/key.pem -pkeyopt rsa_keygen_bits:4096<br />
<br />
If an encrypted key is desired, use the following command. Password will be prompted for:<br />
$ openssl genpkey -aes-256-cbc -algorithm RSA -out private/key.pem -pkeyopt rsa_keygen_bits:4096<br />
<br />
== Making requests ==<br />
<br />
To obtain a certificate from a CA, whether a public one such as [http://www.cacert.org CAcert.org] or a locally managed solution, a request file must be submitted which is known as a [[wikipedia:Certificate_signing_request|Certificate Signing Request]] or CSR.<br />
<br />
Make a new request and sign it with a previously [[#Generating keys|generated key]]:<br />
openssl req -new -sha256 -key private/key.pem -out req.csr<br />
<br />
==Signing certificates==<br />
Covers the process of local CA signing: directly self-signed certificates or through a local CA.<br />
<br />
===Self-signed certificate===<br />
A significant amount of programs will not work with self-signed certificates, and maintaining more than one system with self-signed certificates is more trouble than investing the initial effort in setting up a [[#Certificate authority|certificate authority]].<br />
<br />
If a key was already generated as [[#Generating keys|explained before]], use this command to sign the new certificate with the aforementioned key:<br />
openssl req -key private/key.pem -x509 -new -days 3650 -out cacert.pem<br />
<br />
===Certificate authority===<br />
[https://jamielinux.com/docs/openssl-certificate-authority/ OpenSSL Certificate Authority] is a detailed guide on using OpenSSL to act as a CA.<br />
<br />
The method shown in this section is mostly meant to show how signing works; it is not suited for large deployments that need to automate signing a large number of certificates. Consider installing an SSL server for that purpose.<br />
<br />
Before using the Makefile, make a configuration file according to [[#Configuring]]. Be sure to follow instructions relevant to CA administration; not request generation.<br />
<br />
====Makefile====<br />
Saving the file as {{ic|Makefile}} and issuing {{Ic|make}} in the containing directory will generate the initial CRL along with its prerequisites:<br />
<br />
{{bc|<nowiki><br />
OPENSSL= openssl<br />
CNF= openssl.cnf<br />
CA= ${OPENSSL} ca -config ${CNF}<br />
REQ= ${OPENSSL} req -config ${CNF}<br />
<br />
KEY= private/cakey.pem<br />
KEYMODE= RSA<br />
<br />
CACERT= cacert.pem<br />
CADAYS= 3650<br />
<br />
CRL= crl.pem<br />
INDEX= index.txt<br />
SERIAL= serial<br />
<br />
<br />
CADEPS= ${CNF} ${KEY} ${CACERT}<br />
<br />
all: ${CRL}<br />
<br />
${CRL}: ${CADEPS}<br />
${CA} -gencrl -out ${CRL}<br />
<br />
${CACERT}: ${CNF} ${KEY}<br />
${REQ} -key ${KEY} -x509 -new -days ${CADAYS} -out ${CACERT}<br />
rm -f ${INDEX}<br />
touch ${INDEX}<br />
echo 100001 > ${SERIAL}<br />
<br />
${KEY}: ${CNF}<br />
mkdir -m0700 -p $(dir ${KEY})<br />
touch ${KEY}<br />
chmod 0600 ${KEY}<br />
${OPENSSL} genpkey -algorithm ${KEYMODE} -out ${KEY}<br />
<br />
<br />
revoke: ${CADEPS} ${item}<br />
@test -n $${item:?'usage: ${MAKE} revoke item=cert.pem'}<br />
${CA} -revoke ${item}<br />
${MAKE} ${CRL}<br />
<br />
sign: ${CADEPS} ${item}<br />
@test -n $${item:?'usage: ${MAKE} sign item=request.csr'}<br />
mkdir -p newcerts<br />
${CA} -in ${item} -out ${item:.csr=.crt} <br />
</nowiki>}}<br />
<br />
To sign certificates:<br />
make sign item='''req.csr'''<br />
<br />
To revoke certificates:<br />
make revoke item='''cert.pem'''<br />
<br />
== libssl.so.1.0.0 error ==<br />
if your system get the error above after update to 1.1.0.e-1<br />
libssl.so.1.0.0: cannot open shared object file: No such file or directory<br />
just do the soft links above<br />
ln -s /usr/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.0.0<br />
ln -s /usr/lib/libssl.so.1.1 /usr/lib/libssl.so.1.0.0<br />
<br />
==See also==<br />
* [[wikipedia:OpenSSL|Wikipedia page]] on OpenSSL, with background information.<br />
* [http://www.openssl.org OpenSSL] project page.<br />
* [http://www.freebsd.org/doc/en/books/handbook/openssl.html FreeBSD Handbook]<br />
* [http://www.akadia.com/services/ssh_test_certificate.html Step-by-step guide to create a signed SSL certificate]<br />
* [https://jamielinux.com/docs/openssl-certificate-authority/ OpenSSL Certificate Authority]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=OpenSSL&diff=475054OpenSSL2017-04-25T00:54:07Z<p>Mesmer: new error about openssl 1.1.0.e-1</p>
<hr />
<div>[[Category:Networking]]<br />
[[Category:Encryption]]<br />
[[ja:OpenSSL]]<br />
{{Warning|Collaborated research into OpenSSL protocol usage, published in May 2015, showed further significant risks for SSL connections; named "Logjam" attack. See https://weakdh.org/ for results and https://weakdh.org/sysadmin.html for suggested server-side configuration changes.}}<br />
<br />
[http://www.openssl.org OpenSSL] is an open-source implementation of the SSL and TLS protocols, dual-licensed under the OpenSSL (Apache License 1.0) and the SSLeay (4-clause BSD) licenses. It is supported on a variety of platforms, including BSD, Linux, OpenVMS, Solaris and Windows. It is designed to be as flexible as possible, and is free to use for both personal and commercial uses. It is based on the earlier SSLeay library. Version 1.0.0 of OpenSSL was released on March 29, 2010.<br />
<br />
==SSL introduction==<br />
<!-- Should be moved into [[SSL]] when someone covers other libraries, such as gnutls or the mozilla one. --><br />
In order to focus on setting up a SSL/TLS solution, rather than explaining the bare basics regarding the subject, the approach used throughout the article to explain SSL concepts is by and large file-oriented.<br />
<br />
Consult both [[Wikipedia:Certificate authority]] and [[Wikipedia:Public key infrastructure]] for more information.<br />
<br />
===Certificate authority (CA)===<br />
Certificate authorities return certificates from end-user requests. In order to do this, the returned end-user certificate is signed with the CA private key and CA certificate, which in turn contains the CA public key. CA also distribute certificate revocation lists (CRL) which tell the end-user what certificates are no longer valid, and when the next CRL is due.<br />
<br />
====CA private key====<br />
The CA private key is the crucial part of the trifecta. Exposing it would defeat the purpose of designating a central authority that validates and revokes permissions, and at the same time, it is the signed counter part to the CA public key used to certify against the CA certificate. An exposed CA private key could allow an attacker to replicate the CA certificate since the CA private key signature is embedded in the CA certificate itself.<br />
<br />
====CA certificate and public key====<br />
These are distributed in a single file to all end-users. They are used to certify other end-user certificates that claimed to be signed by the matching CA, such as mail servers or websites. <br />
<br />
===End-users===<br />
End-users submit certificate requests to the CA which contain a distinguished name (DN). Normally, CA do not allow more than one valid certificate with the same DN without revoking the previous one. End-user certificates may be revoked if they are not renewed when due, among other reasons.<br />
<br />
====End-user generated key====<br />
End-users generate keys in order to sign certificate requests that are submitted to the CA. As with the CA private key, an exposed user-key could facilitate impersonating the user to the point where an attacker could submit a request under the user's name, resulting in the CA revoking the former, legitimate, user certificate.<br />
<br />
====Certificate requests====<br />
These contain the user's DN and public key. As their name implies, they fully represent the initial part of the process of acquiring certification from a CA.<br />
<br />
====End-user certificate====<br />
The main distinction between an end-user certificate and CA certificate is that end-user ones cannot sign certificates themselves; they merely provide means of identification in exchanges of information.<br />
<br />
====Certificate revocation list (CRL)====<br />
CRLs are also signed with the CA key, but they only dictate information regarding end-user certificates. Usually, a 30 day span is given between new CRL submissions.<br />
<br />
==Configuring==<br />
The OpenSSL configuration file, conventionally placed in {{ic|/etc/ssl/openssl.cnf}}, may appear complicated at first. This isn't remedied by the fact that there's no ''include'' directive to split configuration into a modal setup. Nevertheless, this section covers the essential settings.<br />
<br />
Remember that variables may be expanded in assignments, much like how shell scripts work. For a more thorough explanation of the configuration file format, see ''config(5)''. In some operating systems, this [[man]] page is named ''openssl-config'' or ''config(5ssl)''. Sometimes, it may not even be available through the man hierarchy at all, for example, it may be placed in the following location {{ic|/usr/share/openssl}}.<br />
<br />
===Global variables===<br />
These settings are relevant in all sections. For that to happen, they can not be specified under a section header:<br />
<br />
{{bc|<nowiki><br />
DIR= . # Useful macro for populating real vars.<br />
RANDFILE= ${DIR}/private/.rnd # Entropy source.<br />
default_md= sha1 # Default message digest.<br />
</nowiki>}}<br />
<br />
===ca section===<br />
These settings are used when signing CRLs, and signing and revoking certificates. Users that only want to generate requests can safely skip to the [[#req section]].<br />
<br />
{{bc|<nowiki><br />
[ ca ]<br />
default_ca= dft_ca # Configuration files may have more than one CA<br />
# section for different scenarios.<br />
<br />
[ dft_ca ]<br />
certificate= ${DIR}/cacert.pem # The CA certificate.<br />
database= ${DIR}/index.txt # Keeps tracks of valid/revoked certs.<br />
new_certs_dir= ${DIR}/newcerts # Copies of signed certificates, for<br />
# administrative purposes.<br />
private_key= ${DIR}/private/cakey.pem # The CA key.<br />
serial= ${DIR}/serial # Should be populated with the next<br />
# cert hex serial.<br />
<br />
# These govern the way certificates are displayed while confirming<br />
# the signing process.<br />
name_opt= ca_default<br />
cert_opt= ca_default<br />
<br />
default_days= 365 # How long to sign certificates for.<br />
default_crl_days=30 # The same, but for CRL.<br />
<br />
policy= dft_policy # The default policy should be lenient.<br />
x509_extensions=cert_v3 # For v3 certificates.<br />
<br />
[ dft_policy ]<br />
# A value of 'supplied' means the field must be present in the certificate,<br />
# whereas 'match' means the field must be populated with the same contents as<br />
# the CA certificate. 'optional' dictates that the field is entirely optional.<br />
<br />
C= supplied # Country<br />
ST= supplied # State or province<br />
L= optional # Locality<br />
O= supplied # Organization<br />
OU= optional # Organizational unit<br />
CN= supplied # Common name<br />
<br />
[ cert_v3 ]<br />
# With the exception of 'CA:FALSE', there are PKIX recommendations for end-user<br />
# certificates that should not be able to sign other certificates.<br />
# 'CA:FALSE' is explicitely set because some software will malfunction without.<br />
<br />
subjectKeyIdentifier= hash<br />
basicConstraints= CA:FALSE<br />
keyUsage= nonRepudiation, digitalSignature, keyEncipherment<br />
<br />
nsCertType= client, email<br />
nsComment= "OpenSSL Generated Certificate"<br />
<br />
authorityKeyIdentifier=keyid:always,issuer:always<br />
</nowiki>}}<br />
<br />
===req section===<br />
Settings related to generating keys, requests and self-signed certificates.<br />
<br />
The req section is responsible for the DN prompts. A general misconception is the ''Common Name'' (CN) prompt, which suggests that it should have the user's proper name as a value. End-user certificates need to have the '''machine hostname''' as CN, whereas CA should ''not'' have a valid TLD, so that there's no chance that, between the possible combinations of certified end-users' CN and the CA certificate's, there's a match that could be misinterpreted by some software as meaning that the end-user certificate is self-signed. Some CA certificates do not even have a CN, such as [http://www.equifax.com Equifax]:<br />
# subject= /C=US/O=Equifax/OU=Equifax Secure Certificate Authority<br />
openssl x509 -subject -noout < /etc/ssl/certs/Equifax_Secure_CA.pem<br />
<br />
Even though splitting the files isn't strictly necessary to normal functioning, it is very confusing to handle request generation and CA administration from the same configuration file, so it is advised to follow the convention of clearly separating the settings into two {{ic|cnf}} files and into two containing directories.<br />
<br />
Here are the settings that are common to both tasks:<br />
<br />
{{bc|<nowiki><br />
[ req ]<br />
# Default bit encryption and out file for generated keys.<br />
default_bits= 2048<br />
default_keyfile=private/cakey.pem<br />
<br />
string_mask= utf8only # Only allow utf8 strings in request/ca fields.<br />
prompt= no # Do not prompt for field value confirmation.<br />
</nowiki>}}<br />
<br />
====CA req settings====<br />
The settings should produce a standard CA capable of only singing other certificates:<br />
<br />
{{bc|<nowiki><br />
distinguished_name=ca_dn # Distinguished name contents.<br />
x509_extensions=ca_v3 # For generating ca certificates.<br />
<br />
[ ca_dn ]<br />
# CN isn't needed for CA certificates<br />
C= US<br />
ST= New Jersey<br />
O= localdomain<br />
<br />
[ ca_v3 ]<br />
subjectKeyIdentifier= hash<br />
<br />
# PKIX says this should also contain the 'crucial' value, yet some programs<br />
# have trouble handling it.<br />
basicConstraints= CA:TRUE<br />
<br />
keyUsage= cRLSign, keyCertSign<br />
<br />
nsCertType= sslCA<br />
nsComment= "OpenSSL Generated CA Certificate"<br />
<br />
authorityKeyIdentifier=keyid:always,issuer:always<br />
</nowiki>}}<br />
<br />
====End-user req settings====<br />
Makes a v3 request suitable for most circumstances:<br />
<br />
{{bc|<nowiki><br />
distinguished_name=ca_dn # Distinguished name contents.<br />
req_extensions=req_v3 # For generating ca certificates.<br />
<br />
[ ca_dn ]<br />
C= US<br />
ST= New Jersey<br />
O= localdomain<br />
CN= localhost<br />
<br />
[ req_v3 ]<br />
basicConstraints= CA:FALSE<br />
keyUsage= nonRepudiation, digitalSignature, keyEncipherment<br />
</nowiki>}}<br />
<br />
===GOST engine support===<br />
First, be sure that libgost.so exist on your system<br />
pacman -Ql openssl | grep libgost<br />
<br />
In case everything is fine, add the following lines to the config:<br />
openssl_conf = openssl_def # this must be a top-level declaration<br />
<br />
Put the following lines in the end of the document:<br />
[ openssl_def ]<br />
engines = engine_section<br />
<br />
[ engine_section ]<br />
gost = gost_section<br />
<br />
[ gost_section ]<br />
engine_id = gost<br />
soft_load = 1<br />
dynamic_path = /usr/lib/engines/libgost.so<br />
default_algorithms = ALL<br />
CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet<br />
The official [http://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/crypto/external/bsd/openssl/dist/engines/ccgost/README.gost README.gost] should contain more examples on this.<br />
<br />
==Generating keys==<br />
Before generating the key, make a secure directory to host it:<br />
$ mkdir -m0700 private<br />
Followed by preemptively assigning secure permissions for the key itself:<br />
$ touch private/key.pem<br />
$ chmod 0600 private/key.pem<br />
Alternatively set [[umask]] to restrict permissions of newly created files and directories:<br />
umask 077<br />
<br />
An example {{ic|genpkey}} key generation:<br />
$ openssl genpkey -algorithm RSA -out private/key.pem -pkeyopt rsa_keygen_bits:4096<br />
<br />
If an encrypted key is desired, use the following command. Password will be prompted for:<br />
$ openssl genpkey -aes-256-cbc -algorithm RSA -out private/key.pem -pkeyopt rsa_keygen_bits:4096<br />
<br />
== Making requests ==<br />
<br />
To obtain a certificate from a CA, whether a public one such as [http://www.cacert.org CAcert.org] or a locally managed solution, a request file must be submitted which is known as a [[wikipedia:Certificate_signing_request|Certificate Signing Request]] or CSR.<br />
<br />
Make a new request and sign it with a previously [[#Generating keys|generated key]]:<br />
openssl req -new -sha256 -key private/key.pem -out req.csr<br />
<br />
==Signing certificates==<br />
Covers the process of local CA signing: directly self-signed certificates or through a local CA.<br />
<br />
===Self-signed certificate===<br />
A significant amount of programs will not work with self-signed certificates, and maintaining more than one system with self-signed certificates is more trouble than investing the initial effort in setting up a [[#Certificate authority|certificate authority]].<br />
<br />
If a key was already generated as [[#Generating keys|explained before]], use this command to sign the new certificate with the aforementioned key:<br />
openssl req -key private/key.pem -x509 -new -days 3650 -out cacert.pem<br />
<br />
===Certificate authority===<br />
[https://jamielinux.com/docs/openssl-certificate-authority/ OpenSSL Certificate Authority] is a detailed guide on using OpenSSL to act as a CA.<br />
<br />
The method shown in this section is mostly meant to show how signing works; it is not suited for large deployments that need to automate signing a large number of certificates. Consider installing an SSL server for that purpose.<br />
<br />
Before using the Makefile, make a configuration file according to [[#Configuring]]. Be sure to follow instructions relevant to CA administration; not request generation.<br />
<br />
====Makefile====<br />
Saving the file as {{ic|Makefile}} and issuing {{Ic|make}} in the containing directory will generate the initial CRL along with its prerequisites:<br />
<br />
{{bc|<nowiki><br />
OPENSSL= openssl<br />
CNF= openssl.cnf<br />
CA= ${OPENSSL} ca -config ${CNF}<br />
REQ= ${OPENSSL} req -config ${CNF}<br />
<br />
KEY= private/cakey.pem<br />
KEYMODE= RSA<br />
<br />
CACERT= cacert.pem<br />
CADAYS= 3650<br />
<br />
CRL= crl.pem<br />
INDEX= index.txt<br />
SERIAL= serial<br />
<br />
<br />
CADEPS= ${CNF} ${KEY} ${CACERT}<br />
<br />
all: ${CRL}<br />
<br />
${CRL}: ${CADEPS}<br />
${CA} -gencrl -out ${CRL}<br />
<br />
${CACERT}: ${CNF} ${KEY}<br />
${REQ} -key ${KEY} -x509 -new -days ${CADAYS} -out ${CACERT}<br />
rm -f ${INDEX}<br />
touch ${INDEX}<br />
echo 100001 > ${SERIAL}<br />
<br />
${KEY}: ${CNF}<br />
mkdir -m0700 -p $(dir ${KEY})<br />
touch ${KEY}<br />
chmod 0600 ${KEY}<br />
${OPENSSL} genpkey -algorithm ${KEYMODE} -out ${KEY}<br />
<br />
<br />
revoke: ${CADEPS} ${item}<br />
@test -n $${item:?'usage: ${MAKE} revoke item=cert.pem'}<br />
${CA} -revoke ${item}<br />
${MAKE} ${CRL}<br />
<br />
sign: ${CADEPS} ${item}<br />
@test -n $${item:?'usage: ${MAKE} sign item=request.csr'}<br />
mkdir -p newcerts<br />
${CA} -in ${item} -out ${item:.csr=.crt} <br />
</nowiki>}}<br />
<br />
To sign certificates:<br />
make sign item='''req.csr'''<br />
<br />
To revoke certificates:<br />
make revoke item='''cert.pem'''<br />
<br />
== libssl.so.1.0.0 error ==<br />
if your system get the error <br />
libssl.so.1.0.0: cannot open shared object file: No such file or directory<br />
after update to 1.1.0.e-1 just do the soft links above<br />
ln -s /usr/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.0.0<br />
ln -s /usr/lib/libssl.so.1.1 /usr/lib/libssl.so.1.0.0<br />
<br />
==See also==<br />
* [[wikipedia:OpenSSL|Wikipedia page]] on OpenSSL, with background information.<br />
* [http://www.openssl.org OpenSSL] project page.<br />
* [http://www.freebsd.org/doc/en/books/handbook/openssl.html FreeBSD Handbook]<br />
* [http://www.akadia.com/services/ssh_test_certificate.html Step-by-step guide to create a signed SSL certificate]<br />
* [https://jamielinux.com/docs/openssl-certificate-authority/ OpenSSL Certificate Authority]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=Vim&diff=468004Vim2017-02-09T17:06:09Z<p>Mesmer: add ar apckages to clipboard</p>
<hr />
<div>[[Category:Development]]<br />
[[Category:Text editors]]<br />
[[de:Vim]]<br />
[[es:Vim]]<br />
[[it:Vim]]<br />
[[ja:Vim]]<br />
[[lt:Vim]]<br />
[[ru:Vim]]<br />
[[zh-hans:Vim]]<br />
[[zh-hant:Vim]]<br />
{{Related articles start}}<br />
{{Related|List of applications/Documents#Vi text editors}}<br />
{{Related articles end}}<br />
<br />
[[Wikipedia:Vim (text editor)|Vim]] is a terminal text editor. It is an extended version of [[Wikipedia:vi|vi]] with additional features, including syntax highlighting, a comprehensive help system, native scripting (vimscript), a visual mode for text selection, and comparison of files (vimdiff).<br />
<br />
== Installation ==<br />
<br />
[[Install]] one of the following packages:<br />
<br />
* {{Pkg|vim}} — with Python 2/3, Lua, Ruby and Perl interpreters support but without GTK/X support.<br />
* {{Pkg|gvim}} — which also provides the same as the above {{ic|vim}} package with GTK/X support.<br />
<br />
{{Note|<br />
* The {{Pkg|vim}} package is built without [[Xorg]] support; specifically the {{ic|+clipboard}} feature is missing, so Vim will not be able to operate with the ''primary'' and ''clipboard'' [[Clipboard|selection buffers]]. The {{Pkg|gvim}} package provides also the CLI version of Vim with the {{ic|+clipboard}} feature.<br />
* The unofficial repository [[Unofficial user repositories#herecura|herecura]] also provides a number of Vim/gVim variants: {{ic|vim-cli}}, {{ic|vim-gvim-common}}, {{ic|vim-gvim-gtk}}, {{ic|vim-gvim-qt}}, {{ic|vim-rt}} and {{ic|vim-tiny}}.<br />
}}<br />
<br />
== Usage ==<br />
<br />
For a basic overview on how to use Vim, follow the vim tutorial by running either ''vimtutor'' (for the terminal version) or ''gvimtutor'' (for the graphical version).<br />
<br />
Vim includes a broad help system that can be accessed with the {{ic|:h ''subject''}} command. Subjects include commands, configuration options, key bindings, plugins etc. Use the {{ic|:h}} command (without any subject) for information about the help system and jumping between subjects.<br />
<br />
== Configuration ==<br />
<br />
Vim's user-specific configuration file is located in the home directory: {{ic|~/.vimrc}}, and Vim files of current user are located inside {{ic|~/.vim/}}. The global configuration file is located at {{ic|/etc/vimrc}}. Global Vim files are located inside {{ic|/usr/share/vim/}}.<br />
<br />
{{Note|Commonly expected behavior such as syntax highlighting is enabled in {{ic|defaults.vim}}, which is loaded when no {{ic|~/.vimrc}} is present. Add {{ic|1=let skip_defaults_vim=1}} to {{ic|/etc/vimrc}} to disable loading of {{ic|defaults.vim}} completely. [https://github.com/vim/vim/issues/1033]}}<br />
<br />
=== Clipboard ===<br />
<br />
To enable +clipboard feature then you can to copy from vim to outside use one of these two aur packages that configure the vim to enable that. {{AUR|vim-clipboard}} {{AUR|vim-X11}} anyone of these fix the problem<br />
<br />
To verify that everything is alright<br />
<br />
vim --version | grep clipboard<br />
<br />
If you saw {{ic|+clipboard}} or {{ic|+xterm_clipboard}} you are good to go <br />
<br />
Vim commands such as {{ic|:yank}} or {{ic|:paste}} operate with the unnamed register, which by default corresponds to the {{ic|"*}} register. If the {{ic|+clipboard}} feature is available, the {{ic|"*}} register is reflected to the {{ic|PRIMARY}} buffer in X.<br />
<br />
To change the default register, you can {{ic|1=:set clipboard=unnamedplus}} to use the {{ic|"+}} register instead. The {{ic|"+}} register corresponds to the {{ic|CLIPBOARD}} buffer in X.<br />
<br />
For more information, see {{ic|:help 'clipboard'}}.<br />
<br />
{{Tip|Custom shortcuts for copy and paste operations can be created. See e.g. [http://superuser.com/a/189198] for binding {{ic|ctrl+c}}, {{ic|ctrl+v}} and {{ic|ctrl+x}}.}}<br />
<br />
=== Syntax highlighting ===<br />
<br />
To enable syntax highlighting (Vim supports a huge list of programming languages):<br />
<br />
:filetype plugin on<br />
:syntax on<br />
<br />
=== Visual wrapping ===<br />
<br />
The {{ic|wrap}} option is on by default, which instructs Vim to wrap lines longer than the width of the window, so that the rest of the line is displayed on the next line. The {{ic|wrap}} option only affects how text is displayed, the text itself is not modified.<br />
<br />
The wrapping normally occurs after the last character that fits the window, even when it is in the middle of a word. More intelligent wrapping can be controlled with the {{ic|linebreak}} option. When it is enabled with {{ic|set linebreak}}, the wrapping occurs after characters listed in the {{ic|breakat}} string option, which by default contains a space and some punctuation marks (see {{ic|:help breakat}}).<br />
<br />
Wrapped lines are normally displayed at the beginning of the next line, regardless of any indentation. The [https://retracile.net/wiki/VimBreakIndent breakindent] option instructs Vim to take indentation into account when wrapping long lines, so that the wrapped lines keep the same indentation of the previously displayed line. The behaviour of {{ic|breakindent}} can be fine-tuned with the {{ic|breakindentopt}} option, for example to shift the wrapped line another four spaces to the right for Python files (see {{ic|:help breakindentopt}} for details):<br />
<br />
autocmd FileType python set breakindentopt=shift:4<br />
<br />
=== Using the mouse ===<br />
<br />
Vim has the ability to make use of the mouse, but it only works for certain terminals: on Linux it is [[xterm]]-based terminals and Linux console with {{Pkg|gpm}} (see [[Console mouse support]] for details), and also PuTTY.<br />
<br />
To enable this feature, add this line into {{ic|~/.vimrc}}:<br />
<br />
set mouse=a<br />
<br />
The {{ic|1=mouse=a}} option is set in {{ic|defaults.vim}}, which is sourced if there is no {{ic|~/.vimrc}}.<br />
<br />
{{Note|When enabling the mouse in a terminal, copy/paste will use the {{ic|"*}} register if there is access to an X server. The xterm handling of the mouse buttons can still be used by keeping the shift key pressed. Also see the {{ic|clipboard}} option.}}<br />
<br />
=== Traverse line breaks with arrow keys ===<br />
<br />
By default, pressing {{ic|←}} at the beginning of a line, or pressing {{ic|→}} at the end of a line, will not let the cursor traverse to the previous, or following, line.<br />
<br />
The default behavior can be changed by adding {{ic|1=set whichwrap=b,s,<,>,[,]}} to your {{ic|~/.vimrc}} file.<br />
<br />
== Merging files ==<br />
<br />
Vim includes a diff editor (a program that shows differences between two or more files and aids to conveniently merge them). Use ''vimdiff'' to run the diff editor — just specify some couple of files to it: {{ic|vimdiff ''file1'' ''file2''}}. Here is the list of ''vimdiff''-specific commands.<br />
<br />
{| class="wikitable"<br />
! Action !! Shortcut<br />
|-<br />
| next change || {{ic|]c}}<br />
|-<br />
| previous change || {{ic|[c}}<br />
|-<br />
| diff obtain || {{ic|do}}<br />
|-<br />
| diff put || {{ic|dp}}<br />
|-<br />
| fold open || {{ic|zo}}<br />
|-<br />
| fold close || {{ic|zc}}<br />
|-<br />
| rescan files || {{ic|:diffupdate}}<br />
|}<br />
<br />
== Tips and tricks ==<br />
<br />
=== Line numbers ===<br />
<br />
To show the line number column, use {{ic|:set number}}. By default absolute line numbers are shown, relative numbers can be enabled with {{ic|:set relativenumber}}.<br />
<br />
Jumping to a specific line is possible with {{ic|:''line number''}} or {{ic|''line number''gg}}. Jumps are remembered in a jump list, see {{ic|:h jump-motions}} for details.<br />
<br />
<br />
=== Spell checking ===<br />
<br />
Vim has the ability to do spell checking, enable by entering:<br />
<br />
set spell<br />
<br />
By default, only English language dictionaries are installed. More dictionaries can be found in the [[official repositories]] by searching for {{ic|vim-spell}}. Additional dictionaries can be found in the [http://ftp.vim.org/vim/runtime/spell/ Vim's FTP archive]. Additional dictionaries can be put in the folder {{ic|~/.vim/spell/}} and enabled with the command: {{ic|1=:setlocal spell spelllang=''en_us''}} (replacing the {{ic|''en_us''}} with the name of the needed dictionary).<br />
<br />
{| class="wikitable"<br />
! Action !! Shortcut<br />
|-<br />
| next spelling || {{ic|]s}}<br />
|-<br />
| previous spelling || {{ic|[s}}<br />
|-<br />
| spelling suggestions || {{ic|1=z=}}<br />
|-<br />
| spelling good, add || {{ic|zg}}<br />
|-<br />
| spelling good, session || {{ic|zG}}<br />
|-<br />
| spelling wrong, add || {{ic|zw}}<br />
|-<br />
| spelling wrong, session || {{ic|zW}}<br />
|-<br />
| spelling repeat all in file || {{ic|:spellr}}<br />
|}<br />
<br />
{{Tip|<br />
* To enable spelling in two languages (for instance English and German), add {{ic|1=set spelllang=''en,de''}} into your {{ic|~/.vimrc}} or {{ic|/etc/vimrc}}, and then restart Vim.<br />
* You can enable spell checking for arbitrary file types (e.g. ''.txt'') by using the FileType plugin and a custom rule for file type detection. To enable spell checking for any file ending with ''.txt'', create the file {{ic|/usr/share/vim/vimfiles/ftdetect/plaintext.vim}}, and insert the line {{ic|autocmd BufRead,BufNewFile *.txt setfiletype plaintext}} into that file. Next, insert the line {{ic|1=autocmd FileType plaintext setlocal spell spelllang=''en_us''}} into your {{ic|~/.vimrc}} or {{ic|/etc/vimrc}}, and then restart Vim.<br />
* To enable spell checking for LaTeX (or TeX) documents only, add {{ic|1=autocmd FileType '''tex''' setlocal spell spelllang=''en_us''}} into your {{ic|~/.vimrc}} or {{ic|/etc/vimrc}}, and then restart Vim.}}<br />
<br />
=== Save cursor position ===<br />
<br />
If you want the cursor to [http://vim.wikia.com/wiki/Restore_cursor_to_file_position_in_previous_editing_session appear in its previous position] after you open a file, add the following to your {{ic|~/.vimrc}}:<br />
<br />
augroup resCur<br />
autocmd!<br />
autocmd BufReadPost * call setpos(".", getpos("'\""))<br />
augroup END<br />
<br />
=== Replace vi command with Vim ===<br />
<br />
Create an [[alias]] for {{ic|vi}} to {{ic|vim}}.<br />
<br />
Alternatively, if you want to be able to type {{ic|sudo vi}} and get {{ic|vim}}, install {{AUR|vi-vim-symlink}} which will remove {{ic|vi}} and replace it with a symlink to {{ic|vim}}.<br />
<br />
=== DOS/Windows carriage returns ===<br />
<br />
If there is a {{ic|^M}} at the end of each line then this means you are editing a text file which was created in MS-DOS or Windows. This is because in Linux only a single line feed character (LF) used for line break, but in Windows/MS DOS systems they are using a sequence of a carriage return (CR) and a line feed (LF) for the same. And this carriage returns are displayed as {{ic|^M}}.<br />
<br />
To remove all carriage returns from a file do:<br />
<br />
:%s/^M//g<br />
<br />
Note that there {{ic|^}} is a control letter. To enter the control sequence {{ic|^M}} press {{ic|Ctrl+v,Ctrl+m}}.<br />
<br />
Alternatively install the package {{pkg|dos2unix}} and run {{ic|dos2unix ''file''}} to fix the file.<br />
<br />
{{Note| Another simple way is by changing {{ic|fileformat}} setting. {{ic|<nowiki>set ff=unix</nowiki>}} to convert files with DOS/Windows line ending to Unix line ending. To do the reverse, just issue {{ic|<nowiki>set ff=dos</nowiki>}} to convert files with Unix line ending to DOS/Windows line ending. }}<br />
<br />
=== Empty space at the bottom of gVim windows ===<br />
<br />
When using a [[window manager]] configured to ignore window size hints, gVim will fill the non-functional area with the GTK theme background color.<br />
<br />
The solution is to adjust how much space gVim reserves at the bottom of the window. Put the following line in {{ic|~/.vimrc}}:<br />
<br />
set guiheadroom=0<br />
<br />
{{Note|If you set it to zero, you will not be able to see the bottom horizontal scrollbar.}}<br />
<br />
== Plugins ==<br />
<br />
Adding plugins to Vim can increase your productivity. Plugins can alter Vim's UI, add new commands, code completion support, integrate other programs and utilities with Vim, add support for additional languages and more.<br />
<br />
{{Tip|For a list of popular plugins, see [http://vimawesome.com/ Vim Awesome]}}<br />
<br />
=== Installation ===<br />
<br />
==== Using a plugin manager ====<br />
<br />
A plugin manager allows to install and manage Vim plugins in a similar way independently on which platform you are running Vim. It is a plugin that acts as a package manager for other Vim plugins.<br />
<br />
* [https://github.com/gmarik/Vundle.vim Vundle] is currently the most popular plugin manager for Vim.<br />
* [https://github.com/junegunn/vim-plug Vim-plug] is a minimalist Vim plugin manager with many features like on-demand plugin loading and parallel updating.<br />
* [https://github.com/tpope/vim-pathogen pathogen.vim] is a simple plugin for managing Vim's runtimepath.<br />
* [https://github.com/Shougo/dein.vim Dein.vim] is a plugin manager replacing [https://github.com/Shougo/neobundle.vim NeoBundle], available as {{AUR|vim-dein-git}}.<br />
<br />
==== From Arch repositories ====<br />
<br />
The {{Grp|vim-plugins}} group provides many various plugins. Use {{ic|pacman -Sg vim-plugins}} command to list available packages which you can then [[install]] with pacman.<br />
<br />
=== cscope ===<br />
<br />
[http://cscope.sourceforge.net/ Cscope] is a tool for browsing a project. By navigating to a word/symbol/function and calling cscope (usually with shortcut keys) it can find: functions calling the function, the function definition, and more.<br />
<br />
[[Install]] the {{Pkg|cscope}} package.<br />
<br />
Copy the cscope default file where it will be automatically read by Vim:<br />
<br />
mkdir -p ~/.vim/plugin<br />
wget -P ~/.vim/plugin http://cscope.sourceforge.net/cscope_maps.vim<br />
<br />
{{Note|You will probably need to uncomment these lines in {{ic|~/.vim/plugin/cscope_maps.vim}} in order to enable cscope shortcuts in Vim 7.x:<br />
{{bc|1=<br />
set timeoutlen=4000<br />
set ttimeout<br />
}}}}<br />
<br />
Create a file which contains the list of files you wish cscope to index (cscope can handle many languages but this example finds ''.c'', ''.cpp'' and ''.h'' files, specific for C/C++ project):<br />
<br />
cd ''/path/to/project/dir''<br />
find . -type f -print | grep -E '\.(c(pp)?|h)$' > cscope.files<br />
<br />
Create database files that cscope will read:<br />
<br />
cscope -bq<br />
<br />
{{Note|You must browse your project files from this location or set and export the {{ic|$CSCOPE_DB}} variable, pointing it to the {{ic|cscope.out}} file.}}<br />
<br />
Default keyboard shortcuts:<br />
<br />
Ctrl-\ and<br />
c: Find functions calling this function<br />
d: Find functions called by this function<br />
e: Find this egrep pattern<br />
f: Find this file<br />
g: Find this definition<br />
i: Find files #including this file<br />
s: Find this C symbol<br />
t: Find assignments to<br />
<br />
Feel free to change the shortcuts.<br />
<br />
#Maps ctrl-c to find functions calling the function<br />
nnoremap <C-c> :cs find c <C-R>=expand("<cword>")<CR><CR><br />
<br />
=== Taglist ===<br />
<br />
[http://vim-taglist.sourceforge.net/ Taglist] provides an overview of the structure of source code files and allows you to efficiently browse through source code files in different programming languages.<br />
<br />
[[Install]] the {{Pkg|vim-taglist}} package.<br />
<br />
Useful options to be put in {{ic|~/.vimrc}}:<br />
<br />
let Tlist_Compact_Format = 1<br />
let Tlist_GainFocus_On_ToggleOpen = 1<br />
let Tlist_Close_On_Select = 1<br />
nnoremap <C-l> :TlistToggle<CR><br />
<br />
== See also ==<br />
<br />
=== Official ===<br />
<br />
* [http://www.vim.org/ Homepage]<br />
* [http://vimdoc.sourceforge.net/ Documentation]<br />
* [http://vim.wikia.com Vim Wiki]<br />
* [http://www.vim.org/scripts/ Vim Scripts]<br />
<br />
=== Tutorials ===<br />
<br />
* [http://www.danielmiessler.com/study/vim/ vim Tutorial and Primer]<br />
* [http://usalug.org/vi.html vi Tutorial and Reference Guide]<br />
* [http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html Graphical vi-Vim Cheat Sheet and Tutorial]<br />
* [http://blog.interlinked.org/tutorials/vim_tutorial.html Vim Introduction and Tutorial]<br />
* [http://www.openvim.com/ Open Vim] — collection of Vim learning tools<br />
* [http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/ Learn Vim Progressively]<br />
* [http://benmccormick.org/learning-vim-in-2014/ Learning Vim in 2014]<br />
* [http://www.moolenaar.net/habits.html Seven habits of effective text editing]<br />
* [http://bencrowder.net/files/vim-fu/ Basic Vim Tips]<br />
* [http://www.gentoo-wiki.info/HOWTO_VIM HOWTO Vim]<br />
<br />
==== Videos ====<br />
<br />
* [http://vimcasts.org/ Vimcasts] — screencasts in ''.ogg'' format.<br />
* [http://derekwyatt.org/vim/tutorials/ Vim Tutorial Videos] — covering the basics up to advanced topics.<br />
<br />
==== Games ====<br />
<br />
* [http://vim-adventures.com/ Vim Adventures]<br />
* [http://vimgolf.com/ VimGolf]<br />
<br />
=== Configuration ===<br />
<br />
* [https://web.archive.org/web/20131020125020/http://nion.modprobe.de/setup/vimrc nion's]<br />
* [http://amix.dk/vim/vimrc.html A detailed configuration from Amir Salihefendic]<br />
* [https://web.archive.org/web/20131004071740/http://www.jukie.net/~bart/conf/vimrc Bart Trojanowski]<br />
* [https://github.com/spf13/spf13-vim Steve Francia'http://vimawesome.com/s Vim Distribution]<br />
* [https://github.com/W4RH4WK/dotVim W4RH4WK's Vim configuration]<br />
* [http://www.askapache.com/linux/fast-vimrc.html Fast vimrc/colorscheme from askapache]<br />
* [https://gist.github.com/anonymous/c966c0757f62b451bffa Basic vimrc]<br />
* [http://www.usevim.com/ Usevim]<br />
<br />
==== Colors ====<br />
<br />
* [http://bytefluent.com/vivify/ Vivify]<br />
* [https://linuxtidbits.wordpress.com/2014/10/14/vim-customize-installed-colorschemes/ Vim colorscheme customization]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=CloudCross_(Portugu%C3%AAs)&diff=465800CloudCross (Português)2017-01-19T05:16:21Z<p>Mesmer: Mesmer moved page CloudCross (portugues) to CloudCross (Português): erro de escrita</p>
<hr />
<div>[[Category: A compressão de dados e arquivamento (Português)]]<br />
[[Category: Recuperação do sistema (Português)]]<br />
[[Category: Português]]<br />
{{Related articles start}}<br />
{{Related|CloudCross}}<br />
{{Related|CloudCross (Русский)}}<br />
{{Related articles end}}<br />
[Http://cloudcross.mastersoft24.ru CloudCross] - multi-cliente para a nuvem de sincronização de arquivos locais com vários armazenamento em nuvem, escritos em puro [[Qt]], sem a utilização de bibliotecas de terceiros. atualmente suportado para trabalhar com [[Yandex. dRIVE]], [[Google drive]] e [[Dropbox]]. CloudCross publicado sob licença [[GPL]]. Principais características:<br />
<br />
* Ao trabalhar com o Google Drive - Suporta conversão de duas vias de documentos de formatos de arquivo do Microsoft Office e Abrir / LibreOffice em formato Google Doc, descarga e a transformação inversa ao carregar.<br />
* Suporte para as chamadas listas negras e brancas de arquivos que estão envolvidos na sincronização.<br />
* Configuração das preferências de arquivos locais ou remotos com as mudanças, o estado do qual ele será sincronizado.<br />
* Gerir a criação de novas versões dos arquivos no Google Drive.<br />
* Possibilidade de download ou upload de arquivos forçados.<br />
* Capacidade de download direto do arquivo para a nuvem no link para download.<br />
<br />
== Instalação ==<br />
<br />
Instale o pacote {{AUR | cloudcross}}.<br />
<br />
== Escolhendo um provedor ==<br />
<br />
A partir da versão 1.1.0 '' 'CloudCross' '' suporta múltiplos serviços em nuvem. Para selecionar o provedor utilizado opção --provider '' nome ''. Como um '' nome '' é usado o nome do fornecedor. O provedor padrão Google Drive.<br />
<br />
== Uso ==<br />
<br />
Depois de instalar, definir uma pasta, o conteúdo da qual vai ser sincronizada com a nuvem. Ir para ele e passar a autenticação:<br />
<br />
Google Drive para<br />
<br />
$ ccross -a<br />
<br />
para Dropbox<br />
<br />
$ ccross --provider dropbox -a<br />
<br />
<br />
<br />
Você será solicitado a copiar o link e cole no seu browser. Seguindo o link proposto, você efetuar logon em sua conta do Google, e permissão para levar aplicações CloudCross solicitado. Depois disso, você será dado um código de confirmação para ser inserido no programa.<br />
Depois de passar a autenticação, o programa está pronto para trabalhar.<br />
<br />
== Casos de Uso == <br />
<br />
CloudCross pode ser usado em diferentes situações quando necessário para sincronizar arquivos locais com os arquivos na nuvem. Pode ser, por exemplo, a duplicação de arquivos em um armazenamento remoto, trabalhando em conjunto com o Google Docs ou backup.<br />
<br />
== Resolução de Problemas ==<br />
<br />
<br />
Ao usar CloudCross pode ter alguns problemas.<br />
=== Excluir arquivos em vez de baixá ===<br />
Quando inicia a sincronização para uma pasta vazia, em vez de baixar arquivos do armazenamento remoto nos arquivos de nuvem são excluídos. Isso ocorre porque o programa está priorizando arquivos locais por padrão. Para evitar isso, use a opção de inicialização --prefer = remoto<br />
<br />
$ Ccross --prefer = remoto<br />
<br />
Mas, em qualquer caso, você tem que lembrar que há arquivos locais ou remotos não são excluídos permanentemente. Você sempre pode recuperá-los da Lixeira na nuvem (se for suportado pelo serviço) ou pastas Trash pasta sincronizada.<br />
<br />
=== arquivos do escritório upload / download constantes ===<br />
Quando você sincroniza com o Google Drive, se a opção for usada --convert-doc, que converte documentos do Office para o formato do Google Doc e para trás, você pode ver a situação que arquivos de escritório enviados para o servidor e inalterado desde então, durante a próxima sincronização começar a carregar de volta. E mais uma vez enviado para o servidor durante a próxima sincronização. Este não é um erro. Isso acontece porque a conversão altera a soma de verificação de um arquivo sem alterar o conteúdo eo programa tenta sincronizar as mudanças vê-las. Se o arquivo foi modificado desde a última sincronização, a versão mais recente do arquivo sincronizado.<br />
<br />
== Ligações ==<br />
<br />
* [Http://cloudcross.mastersoft24.ru/ru site do projeto]<br />
* [Https://www.facebook.com/groups/cloudcross Grupo Facebook]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=CloudCross_(Portugu%C3%AAs)&diff=465799CloudCross (Português)2017-01-19T05:15:43Z<p>Mesmer: </p>
<hr />
<div>[[Category: A compressão de dados e arquivamento (Português)]]<br />
[[Category: Recuperação do sistema (Português)]]<br />
[[Category: Português]]<br />
{{Related articles start}}<br />
{{Related|CloudCross}}<br />
{{Related|CloudCross (Русский)}}<br />
{{Related articles end}}<br />
[Http://cloudcross.mastersoft24.ru CloudCross] - multi-cliente para a nuvem de sincronização de arquivos locais com vários armazenamento em nuvem, escritos em puro [[Qt]], sem a utilização de bibliotecas de terceiros. atualmente suportado para trabalhar com [[Yandex. dRIVE]], [[Google drive]] e [[Dropbox]]. CloudCross publicado sob licença [[GPL]]. Principais características:<br />
<br />
* Ao trabalhar com o Google Drive - Suporta conversão de duas vias de documentos de formatos de arquivo do Microsoft Office e Abrir / LibreOffice em formato Google Doc, descarga e a transformação inversa ao carregar.<br />
* Suporte para as chamadas listas negras e brancas de arquivos que estão envolvidos na sincronização.<br />
* Configuração das preferências de arquivos locais ou remotos com as mudanças, o estado do qual ele será sincronizado.<br />
* Gerir a criação de novas versões dos arquivos no Google Drive.<br />
* Possibilidade de download ou upload de arquivos forçados.<br />
* Capacidade de download direto do arquivo para a nuvem no link para download.<br />
<br />
== Instalação ==<br />
<br />
Instale o pacote {{AUR | cloudcross}}.<br />
<br />
== Escolhendo um provedor ==<br />
<br />
A partir da versão 1.1.0 '' 'CloudCross' '' suporta múltiplos serviços em nuvem. Para selecionar o provedor utilizado opção --provider '' nome ''. Como um '' nome '' é usado o nome do fornecedor. O provedor padrão Google Drive.<br />
<br />
== Uso ==<br />
<br />
Depois de instalar, definir uma pasta, o conteúdo da qual vai ser sincronizada com a nuvem. Ir para ele e passar a autenticação:<br />
<br />
Google Drive para<br />
<br />
$ ccross -a<br />
<br />
para Dropbox<br />
<br />
$ ccross --provider dropbox -a<br />
<br />
<br />
<br />
Você será solicitado a copiar o link e cole no seu browser. Seguindo o link proposto, você efetuar logon em sua conta do Google, e permissão para levar aplicações CloudCross solicitado. Depois disso, você será dado um código de confirmação para ser inserido no programa.<br />
Depois de passar a autenticação, o programa está pronto para trabalhar.<br />
<br />
== Casos de Uso == <br />
<br />
CloudCross pode ser usado em diferentes situações quando necessário para sincronizar arquivos locais com os arquivos na nuvem. Pode ser, por exemplo, a duplicação de arquivos em um armazenamento remoto, trabalhando em conjunto com o Google Docs ou backup.<br />
<br />
== Resolução de Problemas ==<br />
<br />
<br />
Ao usar CloudCross pode ter alguns problemas.<br />
=== Excluir arquivos em vez de baixá ===<br />
Quando inicia a sincronização para uma pasta vazia, em vez de baixar arquivos do armazenamento remoto nos arquivos de nuvem são excluídos. Isso ocorre porque o programa está priorizando arquivos locais por padrão. Para evitar isso, use a opção de inicialização --prefer = remoto<br />
<br />
$ Ccross --prefer = remoto<br />
<br />
Mas, em qualquer caso, você tem que lembrar que há arquivos locais ou remotos não são excluídos permanentemente. Você sempre pode recuperá-los da Lixeira na nuvem (se for suportado pelo serviço) ou pastas Trash pasta sincronizada.<br />
<br />
=== arquivos do escritório upload / download constantes ===<br />
Quando você sincroniza com o Google Drive, se a opção for usada --convert-doc, que converte documentos do Office para o formato do Google Doc e para trás, você pode ver a situação que arquivos de escritório enviados para o servidor e inalterado desde então, durante a próxima sincronização começar a carregar de volta. E mais uma vez enviado para o servidor durante a próxima sincronização. Este não é um erro. Isso acontece porque a conversão altera a soma de verificação de um arquivo sem alterar o conteúdo eo programa tenta sincronizar as mudanças vê-las. Se o arquivo foi modificado desde a última sincronização, a versão mais recente do arquivo sincronizado.<br />
<br />
== Ligações ==<br />
<br />
* [Http://cloudcross.mastersoft24.ru/ru site do projeto]<br />
* [Https://www.facebook.com/groups/cloudcross Grupo Facebook]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=CloudCross&diff=465798CloudCross2017-01-19T05:15:01Z<p>Mesmer: </p>
<hr />
<div>[[Category: Data compression and archiving]]<br />
[[Category: System recovery]]<br />
{{Related articles start}}<br />
{{Related|CloudCross (Português)}}<br />
{{Related|CloudCross (Русский)}}<br />
{{Related articles end}}<br />
[Http://cloudcross.mastersoft24.ru CloudCross] - multi-client for cloud sync local files with various cloud storage, written in pure [[Qt]] without the use of other third-party library.is currently supported to work with [[Yandex. Drive]], [[Google Drive]] and [[Dropbox]]. CloudCross published under license [[GPL]]. Main features:<br />
<br />
* When working with Google Drive - Supports two-way conversion of documents from Microsoft Office file formats and Open / Libre Office in Google Doc format, unloading and the inverse transformation when loading.<br />
* Support for the so-called black and white lists of files that are involved in synchronization.<br />
* Setting preferences of local or remote files with the changes, the state of which it will be synchronized.<br />
* Manage the creation of new versions of files on Google Drive.<br />
* Possibility of forced download or upload files.<br />
* Ability to direct download the file to the cloud on the link to download.<br />
<br />
== Installation ==<br />
<br />
Install the package {{AUR | cloudcross}}.<br />
<br />
== Choosing a provider ==<br />
<br />
Starting with version 1.1.0 '' 'CloudCross' '' supports multiple cloud services. To select the provider used --provider option '' name ''. As a '' name '' is used name of the provider. The default provider Google Drive.<br />
<br />
== Usage ==<br />
<br />
After installing, define a folder, the contents of which will be synchronized with the cloud. Go into it and pass authentication:<br />
<br />
Google Drive for<br />
<br />
$ ccross -a<br />
<br />
for Dropbox<br />
<br />
$ ccross --provider dropbox -a<br />
<br />
<br />
<br />
You will be prompted to copy the link and paste it into your browser. Following the proposed link, you log on to your Google account, and requested permission to take CloudCross applications. After that, you will be given a confirmation code to be inserted into the program.<br />
After passing authentication, the program is ready to work.<br />
<br />
== Use Cases ==<br />
<br />
CloudCross can be used in different situations when necessary to synchronize local files with the files in the cloud. It may be, for example, the duplication of files in a remote storage, working together with Google Docs or backup.<br />
<br />
== Troubleshooting ==<br />
<br />
<br />
When using CloudCross may have some problems.<br />
=== Delete files instead of downloading ===<br />
When you start the sync to an empty folder, instead of downloading files from remote storage in the cloud files are deleted. This is because the program is prioritizing local files by default. To avoid this, use the startup option --prefer = remote<br />
<br />
$ Ccross --prefer = remote<br />
<br />
But, in any case, you have to remember that no local or remote files are not deleted permanently. You can always recover them from the Recycle Bin in the cloud (if supported by the service) or .trash folders synchronized folder.<br />
<br />
=== Constant upload / download office files ===<br />
When you synchronize with Google Drive, if the option is used --convert-doc, which converts Office documents to Google Doc format and back, you can see the situation that office files uploaded to the server and unchanged since then, during the next synchronization begin loading back. And once again uploaded to the server during the next synchronization. This is not an error. This happens because the conversion changes the checksum of a file without changing the content and the program tries to synchronize the changes seeing them. If the file has been modified since the last synchronization, the synchronized newer version of the file.<br />
<br />
== Links ==<br />
<br />
* [Http://cloudcross.mastersoft24.ru/ru project site]<br />
* [Https://www.facebook.com/groups/cloudcross Group Facebook]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=CloudCross_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=465797CloudCross (Русский)2017-01-19T05:14:42Z<p>Mesmer: </p>
<hr />
<div>[[Category:Data compression and archiving (Русский)]]<br />
[[Category:System recovery (Русский)]]<br />
[[Category:Русский]]<br />
<br />
{{Related articles start}}<br />
{{Related|CloudCross}}<br />
{{Related|CloudCross (Português)}}<br />
{{Related articles end}}<br />
<br />
[http://cloudcross.mastersoft24.ru CloudCross] - мульти-облачный клиент для синхронизации локальных файлов с различными облачными хранилищами, написанный на чистом [[Qt]] без использования других сторонних библиотек.На данный момент поддерживается работа с [[Яндекс.Диск]], [[Google Drive]] и [[Dropbox]]. CloudCross опубликован под лицензией [[GPL]]. Основные особенности программы:<br />
<br />
* При работе с Google Drive - поддержка двусторонней конвертации документов из форматов Microsoft Office и Open/Libre Office в формат Google Doc, при выгрузке и обратное преобразование, при загрузке.<br />
* Поддержка, так называемых, черных и белых списков файлов, которые участвуют в синхронизации.<br />
* Настройка предпочтения локальных или удаленных файлов с изменениями, состояние которых будет синхронизировано.<br />
* Управление созданием новых версий файлов на Google Drive.<br />
* Возможность принудительной загрузки или выгрузки файлов.<br />
* Возможность прямой загрузки файла в облако по ссылке на скачивание.<br />
<br />
== Установка ==<br />
<br />
Установите пакет {{AUR|cloudcross}}.<br />
<br />
== Выбор провайдера ==<br />
<br />
Начиная с версии 1.1.0 '''CloudCross''' поддерживает работу с несколькими облачными сервисами. Для выбора провайдера используется опция --provider ''name''. В качестве ''name'' используется имя провайдера. Провайдер по умолчанию Google Drive.<br />
<br />
== Использование ==<br />
<br />
После установки определите папку, содержимое которой будет синхронизироваться с облаком. Перейдите в нее и пройдите аутентификацию:<br />
<br />
для Google Drive<br />
<br />
$ ccross -a<br />
<br />
для Dropbox<br />
<br />
$ ccross --provider dropbox -a<br />
<br />
<br />
<br />
Вам будет предложено скопировать ссылку и вставить ее в браузер. Перейдя по предложенной ссылке, вы авторизуетесь на своем аккаунте Google и примете запрошенные разрешения для приложения CloudCross. После этого вам выдадут код подтверждения, который надо вставить в программу.<br />
После прохождения аутентификации программа готова к работе.<br />
<br />
== Варианты использования ==<br />
<br />
CloudCross может использоваться в различных ситуациях, когда необходима синхронизация локальных файлов с файлами в облаке. Это может быть, например, дублирование ценных файлов в удаленное хранилище, совместная работа с Google Docs или резервное копирование. <br />
<br />
== Возможные проблемы ==<br />
<br />
<br />
При использовании CloudCross могут возникнуть некоторые проблемы.<br />
=== Удаление файлов, вместо скачивания ===<br />
При запуске синхронизации в пустой папке, вместо скачивания файлов из удаленного хранилища, файлы в облаке удаляются. Это происходит потому, что по умолчанию программа считает приоритетными локальные файлы. Чтобы этого избежать, используйте при запуске опцию --prefer=remote<br />
<br />
$ ccross --prefer=remote<br />
<br />
Но, в любом случае, вы должны помнить, что ни локальные ни удаленные файлы не удаляются безвозвратно. Вы всегда можете восстановить их из корзины в облаке (если такая функция поддерживается сервисом) или из папки .trash в синхронизируемой директории.<br />
<br />
=== Постоянная загрузка/выгрузка офисных файлов ===<br />
При синхронизации с Google Drive, если используется опция --convert-doc, которая производит конвертацию офисных документов в формат Google Doc и обратно, то вы можете наблюдать ситуацию, что офисные файлы выгруженные на сервер и неизмененные с тех пор, при следующей синхронизации начинают загружаться обратно. А при следующей синхронизации опять выгружаться на сервер. Это не является ошибкой. Так происходит потому, что конвертация изменяет контрольную сумму файла, не изменяя содержимого и программа видя изменения пытается их синхронизировать. Если же файл был изменен, с момента последней синхронизации, то синхронизируется более новая версия файла.<br />
<br />
== Ссылки ==<br />
<br />
* [http://cloudcross.mastersoft24.ru/ru Рускоязычный сайт]<br />
* [https://www.facebook.com/groups/cloudcross Группа в Facebook]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=CloudCross_(Portugu%C3%AAs)&diff=465796CloudCross (Português)2017-01-19T05:13:28Z<p>Mesmer: </p>
<hr />
<div>[[Category: A compressão de dados e arquivamento (Portugues)]]<br />
[[Category: Recuperação do sistema (Portugues)]]<br />
[[Category: portugues]]<br />
{{Related articles start}}<br />
{{Related|CloudCross}}<br />
{{Related|CloudCross (Русский)}}<br />
{{Related articles end}}<br />
[Http://cloudcross.mastersoft24.ru CloudCross] - multi-cliente para a nuvem de sincronização de arquivos locais com vários armazenamento em nuvem, escritos em puro [[Qt]], sem a utilização de bibliotecas de terceiros. atualmente suportado para trabalhar com [[Yandex. dRIVE]], [[Google drive]] e [[Dropbox]]. CloudCross publicado sob licença [[GPL]]. Principais características:<br />
<br />
* Ao trabalhar com o Google Drive - Suporta conversão de duas vias de documentos de formatos de arquivo do Microsoft Office e Abrir / LibreOffice em formato Google Doc, descarga e a transformação inversa ao carregar.<br />
* Suporte para as chamadas listas negras e brancas de arquivos que estão envolvidos na sincronização.<br />
* Configuração das preferências de arquivos locais ou remotos com as mudanças, o estado do qual ele será sincronizado.<br />
* Gerir a criação de novas versões dos arquivos no Google Drive.<br />
* Possibilidade de download ou upload de arquivos forçados.<br />
* Capacidade de download direto do arquivo para a nuvem no link para download.<br />
<br />
== Instalação ==<br />
<br />
Instale o pacote {{AUR | cloudcross}}.<br />
<br />
== Escolhendo um provedor ==<br />
<br />
A partir da versão 1.1.0 '' 'CloudCross' '' suporta múltiplos serviços em nuvem. Para selecionar o provedor utilizado opção --provider '' nome ''. Como um '' nome '' é usado o nome do fornecedor. O provedor padrão Google Drive.<br />
<br />
== Uso ==<br />
<br />
Depois de instalar, definir uma pasta, o conteúdo da qual vai ser sincronizada com a nuvem. Ir para ele e passar a autenticação:<br />
<br />
Google Drive para<br />
<br />
$ ccross -a<br />
<br />
para Dropbox<br />
<br />
$ ccross --provider dropbox -a<br />
<br />
<br />
<br />
Você será solicitado a copiar o link e cole no seu browser. Seguindo o link proposto, você efetuar logon em sua conta do Google, e permissão para levar aplicações CloudCross solicitado. Depois disso, você será dado um código de confirmação para ser inserido no programa.<br />
Depois de passar a autenticação, o programa está pronto para trabalhar.<br />
<br />
== Casos de Uso == <br />
<br />
CloudCross pode ser usado em diferentes situações quando necessário para sincronizar arquivos locais com os arquivos na nuvem. Pode ser, por exemplo, a duplicação de arquivos em um armazenamento remoto, trabalhando em conjunto com o Google Docs ou backup.<br />
<br />
== Resolução de Problemas ==<br />
<br />
<br />
Ao usar CloudCross pode ter alguns problemas.<br />
=== Excluir arquivos em vez de baixá ===<br />
Quando inicia a sincronização para uma pasta vazia, em vez de baixar arquivos do armazenamento remoto nos arquivos de nuvem são excluídos. Isso ocorre porque o programa está priorizando arquivos locais por padrão. Para evitar isso, use a opção de inicialização --prefer = remoto<br />
<br />
$ Ccross --prefer = remoto<br />
<br />
Mas, em qualquer caso, você tem que lembrar que há arquivos locais ou remotos não são excluídos permanentemente. Você sempre pode recuperá-los da Lixeira na nuvem (se for suportado pelo serviço) ou pastas Trash pasta sincronizada.<br />
<br />
=== arquivos do escritório upload / download constantes ===<br />
Quando você sincroniza com o Google Drive, se a opção for usada --convert-doc, que converte documentos do Office para o formato do Google Doc e para trás, você pode ver a situação que arquivos de escritório enviados para o servidor e inalterado desde então, durante a próxima sincronização começar a carregar de volta. E mais uma vez enviado para o servidor durante a próxima sincronização. Este não é um erro. Isso acontece porque a conversão altera a soma de verificação de um arquivo sem alterar o conteúdo eo programa tenta sincronizar as mudanças vê-las. Se o arquivo foi modificado desde a última sincronização, a versão mais recente do arquivo sincronizado.<br />
<br />
== Ligações ==<br />
<br />
* [Http://cloudcross.mastersoft24.ru/ru site do projeto]<br />
* [Https://www.facebook.com/groups/cloudcross Grupo Facebook]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=CloudCross&diff=465795CloudCross2017-01-19T05:12:52Z<p>Mesmer: </p>
<hr />
<div>[[Category: Data compression and archiving]]<br />
[[Category: System recovery]]<br />
{{Related articles start}}<br />
{{Related|CloudCross (Portugues)}}<br />
{{Related|CloudCross (Русский)}}<br />
{{Related articles end}}<br />
[Http://cloudcross.mastersoft24.ru CloudCross] - multi-client for cloud sync local files with various cloud storage, written in pure [[Qt]] without the use of other third-party library.is currently supported to work with [[Yandex. Drive]], [[Google Drive]] and [[Dropbox]]. CloudCross published under license [[GPL]]. Main features:<br />
<br />
* When working with Google Drive - Supports two-way conversion of documents from Microsoft Office file formats and Open / Libre Office in Google Doc format, unloading and the inverse transformation when loading.<br />
* Support for the so-called black and white lists of files that are involved in synchronization.<br />
* Setting preferences of local or remote files with the changes, the state of which it will be synchronized.<br />
* Manage the creation of new versions of files on Google Drive.<br />
* Possibility of forced download or upload files.<br />
* Ability to direct download the file to the cloud on the link to download.<br />
<br />
== Installation ==<br />
<br />
Install the package {{AUR | cloudcross}}.<br />
<br />
== Choosing a provider ==<br />
<br />
Starting with version 1.1.0 '' 'CloudCross' '' supports multiple cloud services. To select the provider used --provider option '' name ''. As a '' name '' is used name of the provider. The default provider Google Drive.<br />
<br />
== Usage ==<br />
<br />
After installing, define a folder, the contents of which will be synchronized with the cloud. Go into it and pass authentication:<br />
<br />
Google Drive for<br />
<br />
$ ccross -a<br />
<br />
for Dropbox<br />
<br />
$ ccross --provider dropbox -a<br />
<br />
<br />
<br />
You will be prompted to copy the link and paste it into your browser. Following the proposed link, you log on to your Google account, and requested permission to take CloudCross applications. After that, you will be given a confirmation code to be inserted into the program.<br />
After passing authentication, the program is ready to work.<br />
<br />
== Use Cases ==<br />
<br />
CloudCross can be used in different situations when necessary to synchronize local files with the files in the cloud. It may be, for example, the duplication of files in a remote storage, working together with Google Docs or backup.<br />
<br />
== Troubleshooting ==<br />
<br />
<br />
When using CloudCross may have some problems.<br />
=== Delete files instead of downloading ===<br />
When you start the sync to an empty folder, instead of downloading files from remote storage in the cloud files are deleted. This is because the program is prioritizing local files by default. To avoid this, use the startup option --prefer = remote<br />
<br />
$ Ccross --prefer = remote<br />
<br />
But, in any case, you have to remember that no local or remote files are not deleted permanently. You can always recover them from the Recycle Bin in the cloud (if supported by the service) or .trash folders synchronized folder.<br />
<br />
=== Constant upload / download office files ===<br />
When you synchronize with Google Drive, if the option is used --convert-doc, which converts Office documents to Google Doc format and back, you can see the situation that office files uploaded to the server and unchanged since then, during the next synchronization begin loading back. And once again uploaded to the server during the next synchronization. This is not an error. This happens because the conversion changes the checksum of a file without changing the content and the program tries to synchronize the changes seeing them. If the file has been modified since the last synchronization, the synchronized newer version of the file.<br />
<br />
== Links ==<br />
<br />
* [Http://cloudcross.mastersoft24.ru/ru project site]<br />
* [Https://www.facebook.com/groups/cloudcross Group Facebook]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=CloudCross_(Portugu%C3%AAs)&diff=465794CloudCross (Português)2017-01-19T05:11:42Z<p>Mesmer: </p>
<hr />
<div>[[Category: A compressão de dados e arquivamento (portugues)]]<br />
[[Category: Recuperação do sistema (portugues)]]<br />
[[Category: portugues]]<br />
{{Related articles start}}<br />
{{Related|CloudCross}}<br />
{{Related|CloudCross (Русский)}}<br />
{{Related articles end}}<br />
[Http://cloudcross.mastersoft24.ru CloudCross] - multi-cliente para a nuvem de sincronização de arquivos locais com vários armazenamento em nuvem, escritos em puro [[Qt]], sem a utilização de bibliotecas de terceiros. atualmente suportado para trabalhar com [[Yandex. dRIVE]], [[Google drive]] e [[Dropbox]]. CloudCross publicado sob licença [[GPL]]. Principais características:<br />
<br />
* Ao trabalhar com o Google Drive - Suporta conversão de duas vias de documentos de formatos de arquivo do Microsoft Office e Abrir / LibreOffice em formato Google Doc, descarga e a transformação inversa ao carregar.<br />
* Suporte para as chamadas listas negras e brancas de arquivos que estão envolvidos na sincronização.<br />
* Configuração das preferências de arquivos locais ou remotos com as mudanças, o estado do qual ele será sincronizado.<br />
* Gerir a criação de novas versões dos arquivos no Google Drive.<br />
* Possibilidade de download ou upload de arquivos forçados.<br />
* Capacidade de download direto do arquivo para a nuvem no link para download.<br />
<br />
== Instalação ==<br />
<br />
Instale o pacote {{AUR | cloudcross}}.<br />
<br />
== Escolhendo um provedor ==<br />
<br />
A partir da versão 1.1.0 '' 'CloudCross' '' suporta múltiplos serviços em nuvem. Para selecionar o provedor utilizado opção --provider '' nome ''. Como um '' nome '' é usado o nome do fornecedor. O provedor padrão Google Drive.<br />
<br />
== Uso ==<br />
<br />
Depois de instalar, definir uma pasta, o conteúdo da qual vai ser sincronizada com a nuvem. Ir para ele e passar a autenticação:<br />
<br />
Google Drive para<br />
<br />
$ ccross -a<br />
<br />
para Dropbox<br />
<br />
$ ccross --provider dropbox -a<br />
<br />
<br />
<br />
Você será solicitado a copiar o link e cole no seu browser. Seguindo o link proposto, você efetuar logon em sua conta do Google, e permissão para levar aplicações CloudCross solicitado. Depois disso, você será dado um código de confirmação para ser inserido no programa.<br />
Depois de passar a autenticação, o programa está pronto para trabalhar.<br />
<br />
== Casos de Uso == <br />
<br />
CloudCross pode ser usado em diferentes situações quando necessário para sincronizar arquivos locais com os arquivos na nuvem. Pode ser, por exemplo, a duplicação de arquivos em um armazenamento remoto, trabalhando em conjunto com o Google Docs ou backup.<br />
<br />
== Resolução de Problemas ==<br />
<br />
<br />
Ao usar CloudCross pode ter alguns problemas.<br />
=== Excluir arquivos em vez de baixá ===<br />
Quando inicia a sincronização para uma pasta vazia, em vez de baixar arquivos do armazenamento remoto nos arquivos de nuvem são excluídos. Isso ocorre porque o programa está priorizando arquivos locais por padrão. Para evitar isso, use a opção de inicialização --prefer = remoto<br />
<br />
$ Ccross --prefer = remoto<br />
<br />
Mas, em qualquer caso, você tem que lembrar que há arquivos locais ou remotos não são excluídos permanentemente. Você sempre pode recuperá-los da Lixeira na nuvem (se for suportado pelo serviço) ou pastas Trash pasta sincronizada.<br />
<br />
=== arquivos do escritório upload / download constantes ===<br />
Quando você sincroniza com o Google Drive, se a opção for usada --convert-doc, que converte documentos do Office para o formato do Google Doc e para trás, você pode ver a situação que arquivos de escritório enviados para o servidor e inalterado desde então, durante a próxima sincronização começar a carregar de volta. E mais uma vez enviado para o servidor durante a próxima sincronização. Este não é um erro. Isso acontece porque a conversão altera a soma de verificação de um arquivo sem alterar o conteúdo eo programa tenta sincronizar as mudanças vê-las. Se o arquivo foi modificado desde a última sincronização, a versão mais recente do arquivo sincronizado.<br />
<br />
== Ligações ==<br />
<br />
* [Http://cloudcross.mastersoft24.ru/ru site do projeto]<br />
* [Https://www.facebook.com/groups/cloudcross Grupo Facebook]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=CloudCross_(Portugu%C3%AAs)&diff=465793CloudCross (Português)2017-01-19T05:08:36Z<p>Mesmer: </p>
<hr />
<div>[[Category: A compressão de dados e arquivamento (portugues)]]<br />
[[Category: Recuperação do sistema (portugues)]]<br />
[[Category: portugues]]<br />
[Http://cloudcross.mastersoft24.ru CloudCross] - multi-cliente para a nuvem de sincronização de arquivos locais com vários armazenamento em nuvem, escritos em puro [[Qt]], sem a utilização de bibliotecas de terceiros. atualmente suportado para trabalhar com [[Yandex. dRIVE]], [[Google drive]] e [[Dropbox]]. CloudCross publicado sob licença [[GPL]]. Principais características:<br />
<br />
* Ao trabalhar com o Google Drive - Suporta conversão de duas vias de documentos de formatos de arquivo do Microsoft Office e Abrir / LibreOffice em formato Google Doc, descarga e a transformação inversa ao carregar.<br />
* Suporte para as chamadas listas negras e brancas de arquivos que estão envolvidos na sincronização.<br />
* Configuração das preferências de arquivos locais ou remotos com as mudanças, o estado do qual ele será sincronizado.<br />
* Gerir a criação de novas versões dos arquivos no Google Drive.<br />
* Possibilidade de download ou upload de arquivos forçados.<br />
* Capacidade de download direto do arquivo para a nuvem no link para download.<br />
<br />
== Instalação ==<br />
<br />
Instale o pacote {{AUR | cloudcross}}.<br />
<br />
== Escolhendo um provedor ==<br />
<br />
A partir da versão 1.1.0 '' 'CloudCross' '' suporta múltiplos serviços em nuvem. Para selecionar o provedor utilizado opção --provider '' nome ''. Como um '' nome '' é usado o nome do fornecedor. O provedor padrão Google Drive.<br />
<br />
== Uso ==<br />
<br />
Depois de instalar, definir uma pasta, o conteúdo da qual vai ser sincronizada com a nuvem. Ir para ele e passar a autenticação:<br />
<br />
Google Drive para<br />
<br />
$ ccross -a<br />
<br />
para Dropbox<br />
<br />
$ ccross --provider dropbox -a<br />
<br />
<br />
<br />
Você será solicitado a copiar o link e cole no seu browser. Seguindo o link proposto, você efetuar logon em sua conta do Google, e permissão para levar aplicações CloudCross solicitado. Depois disso, você será dado um código de confirmação para ser inserido no programa.<br />
Depois de passar a autenticação, o programa está pronto para trabalhar.<br />
<br />
== Casos de Uso == <br />
<br />
CloudCross pode ser usado em diferentes situações quando necessário para sincronizar arquivos locais com os arquivos na nuvem. Pode ser, por exemplo, a duplicação de arquivos em um armazenamento remoto, trabalhando em conjunto com o Google Docs ou backup.<br />
<br />
== Resolução de Problemas ==<br />
<br />
<br />
Ao usar CloudCross pode ter alguns problemas.<br />
=== Excluir arquivos em vez de baixá ===<br />
Quando inicia a sincronização para uma pasta vazia, em vez de baixar arquivos do armazenamento remoto nos arquivos de nuvem são excluídos. Isso ocorre porque o programa está priorizando arquivos locais por padrão. Para evitar isso, use a opção de inicialização --prefer = remoto<br />
<br />
$ Ccross --prefer = remoto<br />
<br />
Mas, em qualquer caso, você tem que lembrar que há arquivos locais ou remotos não são excluídos permanentemente. Você sempre pode recuperá-los da Lixeira na nuvem (se for suportado pelo serviço) ou pastas Trash pasta sincronizada.<br />
<br />
=== arquivos do escritório upload / download constantes ===<br />
Quando você sincroniza com o Google Drive, se a opção for usada --convert-doc, que converte documentos do Office para o formato do Google Doc e para trás, você pode ver a situação que arquivos de escritório enviados para o servidor e inalterado desde então, durante a próxima sincronização começar a carregar de volta. E mais uma vez enviado para o servidor durante a próxima sincronização. Este não é um erro. Isso acontece porque a conversão altera a soma de verificação de um arquivo sem alterar o conteúdo eo programa tenta sincronizar as mudanças vê-las. Se o arquivo foi modificado desde a última sincronização, a versão mais recente do arquivo sincronizado.<br />
<br />
== Ligações ==<br />
<br />
* [Http://cloudcross.mastersoft24.ru/ru site do projeto]<br />
* [Https://www.facebook.com/groups/cloudcross Grupo Facebook]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=CloudCross_(Portugu%C3%AAs)&diff=465792CloudCross (Português)2017-01-19T05:07:28Z<p>Mesmer: Created page with "Category: A compressão de dados e arquivamento (portugues) Categoria: Recuperação do sistema (portugues) Category: portugues [Http://cloudcross.mastersoft24.ru..."</p>
<hr />
<div>[[Category: A compressão de dados e arquivamento (portugues)]]<br />
[[Categoria: Recuperação do sistema (portugues)]]<br />
[[Category: portugues]]<br />
[Http://cloudcross.mastersoft24.ru CloudCross] - multi-cliente para a nuvem de sincronização de arquivos locais com vários armazenamento em nuvem, escritos em puro [[Qt]], sem a utilização de bibliotecas de terceiros. atualmente suportado para trabalhar com [[Yandex. dRIVE]], [[Google drive]] e [[Dropbox]]. CloudCross publicado sob licença [[GPL]]. Principais características:<br />
<br />
* Ao trabalhar com o Google Drive - Suporta conversão de duas vias de documentos de formatos de arquivo do Microsoft Office e Abrir / LibreOffice em formato Google Doc, descarga e a transformação inversa ao carregar.<br />
* Suporte para as chamadas listas negras e brancas de arquivos que estão envolvidos na sincronização.<br />
* Configuração das preferências de arquivos locais ou remotos com as mudanças, o estado do qual ele será sincronizado.<br />
* Gerir a criação de novas versões dos arquivos no Google Drive.<br />
* Possibilidade de download ou upload de arquivos forçados.<br />
* Capacidade de download direto do arquivo para a nuvem no link para download.<br />
<br />
== Instalação ==<br />
<br />
Instale o pacote {{AUR | cloudcross}}.<br />
<br />
== Escolhendo um provedor ==<br />
<br />
A partir da versão 1.1.0 '' 'CloudCross' '' suporta múltiplos serviços em nuvem. Para selecionar o provedor utilizado opção --provider '' nome ''. Como um '' nome '' é usado o nome do fornecedor. O provedor padrão Google Drive.<br />
<br />
== Uso ==<br />
<br />
Depois de instalar, definir uma pasta, o conteúdo da qual vai ser sincronizada com a nuvem. Ir para ele e passar a autenticação:<br />
<br />
Google Drive para<br />
<br />
$ ccross -a<br />
<br />
para Dropbox<br />
<br />
$ ccross --provider dropbox -a<br />
<br />
<br />
<br />
Você será solicitado a copiar o link e cole no seu browser. Seguindo o link proposto, você efetuar logon em sua conta do Google, e permissão para levar aplicações CloudCross solicitado. Depois disso, você será dado um código de confirmação para ser inserido no programa.<br />
Depois de passar a autenticação, o programa está pronto para trabalhar.<br />
<br />
== Casos de Uso == <br />
<br />
CloudCross pode ser usado em diferentes situações quando necessário para sincronizar arquivos locais com os arquivos na nuvem. Pode ser, por exemplo, a duplicação de arquivos em um armazenamento remoto, trabalhando em conjunto com o Google Docs ou backup.<br />
<br />
== Resolução de Problemas ==<br />
<br />
<br />
Ao usar CloudCross pode ter alguns problemas.<br />
=== Excluir arquivos em vez de baixá ===<br />
Quando inicia a sincronização para uma pasta vazia, em vez de baixar arquivos do armazenamento remoto nos arquivos de nuvem são excluídos. Isso ocorre porque o programa está priorizando arquivos locais por padrão. Para evitar isso, use a opção de inicialização --prefer = remoto<br />
<br />
$ Ccross --prefer = remoto<br />
<br />
Mas, em qualquer caso, você tem que lembrar que há arquivos locais ou remotos não são excluídos permanentemente. Você sempre pode recuperá-los da Lixeira na nuvem (se for suportado pelo serviço) ou pastas Trash pasta sincronizada.<br />
<br />
=== arquivos do escritório upload / download constantes ===<br />
Quando você sincroniza com o Google Drive, se a opção for usada --convert-doc, que converte documentos do Office para o formato do Google Doc e para trás, você pode ver a situação que arquivos de escritório enviados para o servidor e inalterado desde então, durante a próxima sincronização começar a carregar de volta. E mais uma vez enviado para o servidor durante a próxima sincronização. Este não é um erro. Isso acontece porque a conversão altera a soma de verificação de um arquivo sem alterar o conteúdo eo programa tenta sincronizar as mudanças vê-las. Se o arquivo foi modificado desde a última sincronização, a versão mais recente do arquivo sincronizado.<br />
<br />
== Ligações ==<br />
<br />
* [Http://cloudcross.mastersoft24.ru/ru site do projeto]<br />
* [Https://www.facebook.com/groups/cloudcross Grupo Facebook]</div>Mesmerhttps://wiki.archlinux.org/index.php?title=CloudCross&diff=465791CloudCross2017-01-19T05:04:21Z<p>Mesmer: Created page with "Category: Data compression and archiving Category: System recovery [Http://cloudcross.mastersoft24.ru CloudCross] - multi-client for cloud sync local files with vario..."</p>
<hr />
<div>[[Category: Data compression and archiving]]<br />
[[Category: System recovery]]<br />
<br />
[Http://cloudcross.mastersoft24.ru CloudCross] - multi-client for cloud sync local files with various cloud storage, written in pure [[Qt]] without the use of other third-party library.is currently supported to work with [[Yandex. Drive]], [[Google Drive]] and [[Dropbox]]. CloudCross published under license [[GPL]]. Main features:<br />
<br />
* When working with Google Drive - Supports two-way conversion of documents from Microsoft Office file formats and Open / Libre Office in Google Doc format, unloading and the inverse transformation when loading.<br />
* Support for the so-called black and white lists of files that are involved in synchronization.<br />
* Setting preferences of local or remote files with the changes, the state of which it will be synchronized.<br />
* Manage the creation of new versions of files on Google Drive.<br />
* Possibility of forced download or upload files.<br />
* Ability to direct download the file to the cloud on the link to download.<br />
<br />
== Installation ==<br />
<br />
Install the package {{AUR | cloudcross}}.<br />
<br />
== Choosing a provider ==<br />
<br />
Starting with version 1.1.0 '' 'CloudCross' '' supports multiple cloud services. To select the provider used --provider option '' name ''. As a '' name '' is used name of the provider. The default provider Google Drive.<br />
<br />
== Usage ==<br />
<br />
After installing, define a folder, the contents of which will be synchronized with the cloud. Go into it and pass authentication:<br />
<br />
Google Drive for<br />
<br />
$ ccross -a<br />
<br />
for Dropbox<br />
<br />
$ ccross --provider dropbox -a<br />
<br />
<br />
<br />
You will be prompted to copy the link and paste it into your browser. Following the proposed link, you log on to your Google account, and requested permission to take CloudCross applications. After that, you will be given a confirmation code to be inserted into the program.<br />
After passing authentication, the program is ready to work.<br />
<br />
== Use Cases ==<br />
<br />
CloudCross can be used in different situations when necessary to synchronize local files with the files in the cloud. It may be, for example, the duplication of files in a remote storage, working together with Google Docs or backup.<br />
<br />
== Troubleshooting ==<br />
<br />
<br />
When using CloudCross may have some problems.<br />
=== Delete files instead of downloading ===<br />
When you start the sync to an empty folder, instead of downloading files from remote storage in the cloud files are deleted. This is because the program is prioritizing local files by default. To avoid this, use the startup option --prefer = remote<br />
<br />
$ Ccross --prefer = remote<br />
<br />
But, in any case, you have to remember that no local or remote files are not deleted permanently. You can always recover them from the Recycle Bin in the cloud (if supported by the service) or .trash folders synchronized folder.<br />
<br />
=== Constant upload / download office files ===<br />
When you synchronize with Google Drive, if the option is used --convert-doc, which converts Office documents to Google Doc format and back, you can see the situation that office files uploaded to the server and unchanged since then, during the next synchronization begin loading back. And once again uploaded to the server during the next synchronization. This is not an error. This happens because the conversion changes the checksum of a file without changing the content and the program tries to synchronize the changes seeing them. If the file has been modified since the last synchronization, the synchronized newer version of the file.<br />
<br />
== Links ==<br />
<br />
* [Http://cloudcross.mastersoft24.ru/ru project site]<br />
* [Https://www.facebook.com/groups/cloudcross Group Facebook]</div>Mesmer