Manjaro Difference between revisions of "Configure Graphics Cards"

Difference between revisions of "Configure Graphics Cards"

From Manjaro
imported>Tele
(Marked this version for translation)
 
(39 intermediate revisions by 9 users not shown)
Line 1: Line 1:
= Overview =
<languages/>
__TOC__
<translate>
= Overview = <!--T:1-->


<!--T:2-->
{{note|The mhwd command is still ''under development'', and at present is only able to install drivers for graphics cards connected internally via pci.}}
{{note|The mhwd command is still ''under development'', and at present is only able to install drivers for graphics cards connected internally via pci.}}


 
<!--T:3-->
Where installing the full version of Manjaro (i.e. complete with a pre-installed desktop environment, codecs, and software applications), the mhwd command will be automatically run by the GUI and CLI installer to automatically detect your graphics card and install the most appropriate driver for it. '''Whether free or proprietary drivers are installed will depend on your initial choice of using free or nonfree graphics drivers to boot up'''.  
Where installing the full version of Manjaro (i.e. complete with a pre-installed desktop environment, codecs, and software applications), the mhwd command will be automatically run by the GUI and CLI installer to automatically detect your graphics card and install the most appropriate driver for it. '''Whether free or proprietary drivers are installed will depend on your initial choice of using free or nonfree graphics drivers to boot up'''.  
Otherwise, it will be necessary to run the mhwd command manually as part of the post-installation process for the minimalistic '''NET-Edition''' of Manjaro.  
Otherwise, it will be necessary to run the mhwd command manually as part of the post-installation process for the minimalistic '''NET-Edition''' of Manjaro.  


'''For Beginners, it is recommended to use "Hardware Detection" in [[Manjaro Settings Manager]] to change or install new graphics drivers.'''
<!--T:4-->
'''For Beginners, it is recommended to use "Hardware Detection" in [[Manjaro Settings Manager]] to change or install new graphics drivers.'''<br />
For intermediate and advanced users, it is also possible to use the mhwd command to install, re-install, and remove installed graphics drivers at any time, as illustrated below.
For intermediate and advanced users, it is also possible to use the mhwd command to install, re-install, and remove installed graphics drivers at any time, as illustrated below.


= Automated Identification and Installation = <!--T:5-->


{{warning|For the NET-Edition, ensure that the graphics drivers are installed '''prior''' to installing and configuring your desired desktop and greeter. Without video drivers to show them, you won't get very far upon rebooting!}}
<!--T:6-->
 
 
= Automated Identification and Installation =
 
This is the recommended method for the detection and installation of graphics drivers. The syntax for the automated installation method is:
This is the recommended method for the detection and installation of graphics drivers. The syntax for the automated installation method is:


  sudo mhwd -a [pci or usb connection] [free or nonfree drivers] 0300
  <!--T:7-->
 
{{UserCmd|command=sudo mhwd -a [pci or usb connection] [free or nonfree drivers] 0300}}


<!--T:8-->
A breakdown of the command used for the automated method is as follows:
A breakdown of the command used for the automated method is as follows:


<!--T:9-->
* '''-a''': Automatically detect and install the appropriate driver
* '''-a''': Automatically detect and install the appropriate driver
* '''[pci or usb]''': Install the appropriate driver for devices connected internally via pci, or externally via usb (again, mhwd currently only supports pci connections at this stage in its development)
* '''[pci or usb]''': Install the appropriate driver for devices connected internally via pci, or externally via usb (again, mhwd currently only supports pci connections at this stage in its development)
Line 29: Line 33:




<!--T:10-->
For example, the following command would result in the automatic detection and installation of the best available '''proprietary driver''' for a pci-connected graphics card:
For example, the following command would result in the automatic detection and installation of the best available '''proprietary driver''' for a pci-connected graphics card:


  sudo mhwd -a pci nonfree 0300
  <!--T:11-->
{{UserCmd|command=sudo mhwd -a pci nonfree 0300}}




<!--T:12-->
Otherwise, the following command would result in the automatic detection and installation of the best available '''free driver''' for a pci-connected graphics card:
Otherwise, the following command would result in the automatic detection and installation of the best available '''free driver''' for a pci-connected graphics card:


  sudo mhwd -a pci free 0300
  <!--T:13-->
{{UserCmd|command=sudo mhwd -a pci free 0300}}


= Manual Identification and Installation = <!--T:14-->


= Manual Identification and Installation =
<!--T:15-->
 
Taking a do-it-yourself approach is itself relatively easy and straightforward using the mhwd command. This should be undertaken in two stages:
Taking a do-it-yourself approach is itself relatively easy and straightforward using the mhwd command. This should be undertaken in two stages:


<!--T:16-->
'''1.''' Identify the appropriate driver to be installed, and then
'''1.''' Identify the appropriate driver to be installed, and then


<!--T:17-->
'''2.''' Install the driver
'''2.''' Install the driver


<!--T:18-->
{{tip| Just ensure that you have identified and are indeed about to install the correct driver for your particular graphics card!}}
{{tip| Just ensure that you have identified and are indeed about to install the correct driver for your particular graphics card!}}




== Identifying Available Drivers ==
== Identifying Available Drivers == <!--T:19-->


<!--T:20-->
Prior to manually installing a graphics driver, it will be necessary to identify what drivers are available for your system. To list the appropriate drivers available, the basic syntax is:
Prior to manually installing a graphics driver, it will be necessary to identify what drivers are available for your system. To list the appropriate drivers available, the basic syntax is:


  mhwd -l [optional: detailed view] [optional: --pci or --usb connection]
  <!--T:21-->
 
{{UserCmd|command=mhwd -l [optional: detailed view] [optional: --pci or --usb connection]}}


<!--T:22-->
Using this command without the additional options will list basic information for all the available drivers for devices connected to your system. '''All drivers graphics card drivers will have the prefix (video-) in their name'''. The basic information provided for all listed drivers will be:
Using this command without the additional options will list basic information for all the available drivers for devices connected to your system. '''All drivers graphics card drivers will have the prefix (video-) in their name'''. The basic information provided for all listed drivers will be:


<!--T:23-->
* Name
* Name
* Version
* Version
Line 65: Line 79:




<!--T:24-->
A more detailed list of installed drivers can be obtained by entering:
A more detailed list of installed drivers can be obtained by entering:


  mhwd -l -d
  <!--T:25-->
 
{{UserCmd|command=mhwd -l -d}}


<!--T:26-->
A detailed list will provide the following information:
A detailed list will provide the following information:


<!--T:27-->
* Name
* Name
* Version
* Version
Line 84: Line 101:




<!--T:28-->
In addition, using the ''--pci'' filter in the following example will list detailed information for only the drivers available for devices (e.g. graphics cards) using an internal PCI connection:
In addition, using the ''--pci'' filter in the following example will list detailed information for only the drivers available for devices (e.g. graphics cards) using an internal PCI connection:


  mhwd -l -d --pci
  <!--T:29-->
{{UserCmd|command=mhwd -l -d --pci}}


== Installing a Driver == <!--T:30-->


== Installing a Driver ==
<!--T:31-->
 
To install a driver for a graphics card, the syntax is:
To install a driver for a graphics card, the syntax is:


  sudo mhwd -i pci [name of driver]
  <!--T:32-->
{{UserCmd|command=sudo mhwd -i pci [name of driver]}}




<!--T:33-->
A breakdown of the command used to manually install a driver is as follows:
A breakdown of the command used to manually install a driver is as follows:


<!--T:34-->
* '''-i''': Install a driver
* '''-i''': Install a driver
* '''[pci]''': Install a driver for a device connected internally via pci (e.g. graphics cards)
* '''[pci]''': Install a driver for a device connected internally via pci (e.g. graphics cards)
* '''[name of driver]''': The name of the driver to be installed
* '''[name of driver]''': The name of the driver to be installed


<!--T:35-->
For example, to install the proprietary nvidia graphics card driver, the following command would be used:
For example, to install the proprietary nvidia graphics card driver, the following command would be used:


  sudo mhwd -i pci video-nvidia
  <!--T:36-->
{{UserCmd|command=sudo mhwd -i pci video-nvidia}}


== Forcing Re-installation of a Driver ==
== Force Reinstall a Driver == <!--T:37-->


<!--T:38-->
{{warning|use this command with care!}}
{{warning|use this command with care!}}


 
<!--T:39-->
To force the re-installation of an existing driver without removing it first, the syntax is:
To force the re-installation of an existing driver without removing it first, the syntax is:


  sudo mhwd -f -i pci [name of driver]
  <!--T:40-->
 
{{UserCmd|command=sudo mhwd -f -i pci [name of driver]}}


<!--T:41-->
For example, to force the re-installation of a previously installed nvidia graphics card driver, the following command would be used:
For example, to force the re-installation of a previously installed nvidia graphics card driver, the following command would be used:


  sudo mhwd -f -i pci video-nvidia
  <!--T:42-->
{{UserCmd|command=sudo mhwd -f -i pci video-nvidia}}


= Removing an Installed Driver = <!--T:43-->


= Removing an Installed Driver =
<!--T:44-->
 
On occasion it may be necessary to remove an installed graphics card driver. Similarly to manually installing a graphics card driver, two steps should be undertaken for removal:
On occasion it may be necessary to remove an installed graphics card driver. Similarly to manually installing a graphics card driver, two steps should be undertaken for removal:


<!--T:45-->
'''1.''' Identify the installed driver
'''1.''' Identify the installed driver


<!--T:46-->
'''2.''' Remove the identified driver
'''2.''' Remove the identified driver


<!--T:47-->
After all, it would be somewhat difficult to remove an installed driver if you don't know what it's called!
After all, it would be somewhat difficult to remove an installed driver if you don't know what it's called!




== Identifying Installed Drivers ==
== Identifying Installed Drivers == <!--T:48-->


<!--T:49-->
To identify and list Manjaro's installed drivers - including the graphics driver to be removed, the syntax is:
To identify and list Manjaro's installed drivers - including the graphics driver to be removed, the syntax is:


  mhwd  -li [optional: detailed view] [optional: pci or usb devices only]
  <!--T:50-->
 
{{UserCmd|command=mhwd  -li [optional: detailed view] [optional: pci or usb devices only]}}


<!--T:51-->
Using this command without the additional options will list the basic information of all the drivers currently installed on your system. '''Once again, all drivers for graphics cards will have the prefix (video-) in their name'''. As with listing drivers available for your system, the ''-d'' option used in the following command will list detailed information:
Using this command without the additional options will list the basic information of all the drivers currently installed on your system. '''Once again, all drivers for graphics cards will have the prefix (video-) in their name'''. As with listing drivers available for your system, the ''-d'' option used in the following command will list detailed information:


  mhwd -li -d
  <!--T:52-->
{{UserCmd|command=mhwd -li -d}}


<!--T:53-->
This information may prove useful to determine any otherwise unforeseen consequences or problems upon removing a driver. And again, it is also possible to filter your list of installed drivers by whether they are used on hardware connected via pci or usb. In this instance, a detailed list will be generated only for installed drivers used on hardware with a PCI connection:


This information may prove useful to determine any otherwise unforeseen consequences or problems upon removing a driver. And again, it is also possible to filter your list of installed drivers by whether they are used on hardware connected via pci or usb. In this instance, a detailed list will be generated only for installed drivers used on hardware with a PCI connection:
<!--T:54-->
{{UserCmd|command=mhwd -li -d --pci}}
 
<!--T:55-->
One other way of reporting drivers installed andin use is using the {{ic|inxi}} tool.


mhwd -li -d --pci
  <!--T:56-->
{{UserCmd|command=inxi -G}}


<!--T:57-->
{{note|The mhwd profile 'video-linux' corresponds to the latest opensource driver availablefor your hardware.}}
{{note|The mhwd profile 'video-vesa' is a generic fallback driver which should not be used in the vast majority of cases.}}


== Removing Installed Drivers ==
== Removing Installed Drivers == <!--T:58-->


<!--T:59-->
{{warning|use this command with care!}}
{{warning|use this command with care!}}


<!--T:60-->
To remove an installed driver, the syntax is:
<!--T:61-->
{{UserCmd|command=sudo mhwd -r [pci or usb] [name of driver]}}


To remove an installed driver, the syntax is:
<!--T:62-->
For example, to remove the installed driver for a nvidia graphics card (connected internally via pci), the following command would be used:
 
<!--T:63-->
{{UserCmd|command=sudo mhwd -r pci video-nvidia}}
 
= Checking configuration = <!--T:64-->
 
<!--T:65-->
You can check configuration with:
{{UserCmd|command=sudo mhwd-gpu --check}}
{{UserCmd|command=mhwd-gpu --status}}
 
<!--T:66-->
And if needed fix issues with:
{{UserCmd|command=sudo mhwd-gpu --setmod}}
{{UserCmd|command=sudo mhwd-gpu --setxorg [PATH]}}
 
<!--T:67-->
Make sure the path to xorg config file is valid.
 
<!--T:68-->
Note about ati, xorg file and login artifacts or kicad: if you get artifacts upon logging in or if kicad rendering and zooming is slow, try adding [Option "EXAPixmaps" "off"] in the "Device" section of xorg config file. See [https://wiki.archlinux.org/title/ATI#Performance_and/or_artifacts_issues_when_using_EXA here.]
 
=Dual GPU= <!--T:69-->
 
==PRIME GPU offloading== <!--T:70-->
 
<!--T:71-->
If your hardware includes more than one GPU card you can make use of PRIME offloading. PRIME is a technology used to manage hybrid graphics found on recent desktops and laptops (Optimus for NVIDIA, AMD Dynamic Switchable Graphics for Radeon). PRIME detects both cards and automatically selects Intel card by default; using the more powerful discrete graphics card, when called, for more demanding applications.
 
<!--T:72-->
In Manjaro this will automatically be available for hybrid graphics systems using intel/modesetting for the integrated card and free drivers (AMDGPU or Nouveau) for the dGPU.
 
<!--T:73-->
You may choose to run a program with a specific GPU, prepending the application's command with ''DRI_PRIME=x'', where ''x'' is the card priority number.
 
<!--T:74-->
For example, to run an application using the second card prepend the application command with '''DRI_PRIME=1'''
 
  <!--T:75-->
{{UserCmd|command=DRI_PRIME=1 glxspheres64}}
 
<!--T:76-->
To use the 1st card (usually when the CPU has an embedded GPU, this is used)
 
  <!--T:77-->
{{UserCmd|command=DRI_PRIME=0 glxspheres64}}
 
<!--T:78-->
If you want to always run some application with the discrete gpu, you may copy that application's .desktop file to {{ic|~/.local/share/applications/}} and edit the "Exec" property
 
  <!--T:79-->
{{UserCmd|command=Exec=DRI_PRIME=1 inkscape}}
 
<!--T:80-->
Some applications (usually games like steam) may have an embedded option to specify the command line, where it is preferred to use this way.
 
<!--T:81-->
For example, in Steam, select a game - that you want to run using your discrete Nvidia card - from the Library page of the Steam client, right-click, and select Properties.
Click the SET LAUNCH OPTIONS... button and specify for the command line options followed by the default launch hook %command%.
 
<!--T:82-->
DRI_PRIME=1 %command%
 
<!--T:83-->
To use the dGPU by default see '''[https://wiki.archlinux.org/index.php/PRIME#Reverse_PRIME Reverse Prime]'''
 
= NVIDIA Proprietary (non-free) drivers = <!--T:84-->
 
<!--T:85-->
If you have a Nvidia card, you have the option to use the proprietary (closed source = non-free) drivers instead of the open source (free) nouveau driver.
 
<!--T:86-->
For Legacy/older nvidia cards, Manjaro maintains older drivers for compatibility. In these cases the driver name is different, instead of nvidia it is nvidia-390xx or nvidia340xx, whether in nvidia-only or bumblebee mhwd driver configuration.
 
<!--T:87-->
When you install the non-free driver, mhwd includes a Nvidia utility "Nvidia Settings Utility" that can help you configure several settings. You can find this utility in your GUI Applications Menu or start it from a terminal
 
  <!--T:88-->
{{UserCmd|command=sudo nvidia-settings}}
 
<!--T:89-->
If you are using bumblebee, the nvidia utility needs a special command
 
  <!--T:90-->
{{UserCmd|command=sudo optirun -b none nvidia-settings -c :8}}
 
==Nvidia Optimus== <!--T:91-->
For Optimus laptops or dual GPU hardware with intel and nvidia GPUs, you have three options to utilize the card driver usage at your preference or your hardware capabilities.
 
<!--T:92-->
'''[[#nvidia-prime|PRIME]] (mhwd default)'''
 
<!--T:93-->
'''[[#Bumblebee|Bumblebee]]'''
 
<!--T:95-->
When you install Manjaro with the non-free option selected from Grub menu, or when you use automatic driver installation, PRIME or bumblebee is installed by default, depending on support for your GPU, PRIME being preferred. In these cases, the mhwd driver is named "video-hybrid-intel-nvidia-***xx-prime" or "video-hybrid-intel-nvidia-***xx-bumblebee".
 
==Configure The Resolution/Refresh Rate== <!--T:96-->
 
<!--T:97-->
{{warning|The method provided does not currently work for the Cinnamon Edition. As soon as a solution is found, then this article will be updated.}}
 
 
<!--T:98-->
'''1.'''  Start nvidia-settings utility
 
<!--T:99-->
'''2.'''  Change resolution and refresh rate in 'X Server Display Configuration' tab.
 
<!--T:100-->
'''3.'''  Hit the 'Save to X Configuration File' button and save to '''/etc/X11/mhwd.d/nvidia.conf'''
 
<!--T:101-->
'''4.'''  Now start your terminal and enter the following command to complete the process:
 
<!--T:102-->
{{UserCmd|command=sudo mhwd-gpu --setmod nvidia --setxorg /etc/X11/mhwd.d/nvidia.conf}}
 
==Configure X Screen settings (OpenGL Settings, Antialiasing, X Server XVideo)== <!--T:103-->
 
 
<!--T:104-->
'''1.'''  Start nvidia-settings utility
 
<!--T:105-->
'''2.''' Change settings in X Server XVideo Settings, OpenGL and Antialiasing, in the 'X Screen' tab.
 
<!--T:106-->
'''3.''' Click on 'nvidia-settings configuration' tab and click on the 'Save Current Configuration' button.
 
<!--T:107-->
'''4.''' Save the .nvidia-settings-rc to the default location specified ('''/home/[your account name]''')
 
<!--T:108-->
'''5.''' Edit the .xinitrc file with your preferred text editor. For example, if you use gedit, run this in your terminal:
 
<!--T:109-->
{{UserCmd|command=gedit ~/.xinitrc}}
 
<!--T:110-->
'''6.''' Once opened, add the following line into the configuration file:
 
<!--T:111-->
{{UserCmd|command=exec nvidia-settings --load-config-only}}
 
<!--T:112-->
'''7.''' Save and exit.
 
==Nvidia settings for special cases == <!--T:113-->


sudo mhwd -r [pci or usb] [name of driver]
<!--T:114-->
In case your monitor is not entering powersave mode (DPMS), try adding `Option "HardDPMS" "true"` in your Xorg monitor section. For example:


  <!--T:115-->
Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier    "Monitor0"
    VendorName    "Unknown"
    ModelName      "BenQ ZOWIE XL LCD"
    HorizSync      30.0 - 160.0
    VertRefresh    56.0 - 144.0
    Option        "DPMS"
    Option        "HardDPMS" "true"
  EndSection


For example, to remove the installed driver for a nvidia graphics card (connected internally via pci), the following command would be used:


sudo mhwd -r pci video-nvidia
<!--T:116-->
After forum [https://forum.manjaro.org/t/display-does-not-go-to-powersave/84004/5 issue]




= Enable or disable 32 bit support on 64 bit (multilib) =
==nvidia-prime== <!--T:117-->


If one does not do any gaming or use Wine for Windows based applications, 32 bit support can be removed from mhwd on 64 bit systems (multilib).
<!--T:118-->
Manjaro also offers an easy way to use PRIME with proprietary Nvidia drivers.<br>
Simply select and install an 'nvidia-prime' profile through MSM or mhwd (such as ''video-hybrid-intel-nvidia-440xx-prime'') and ensure the package ''nvidia-prime'' is installed.


The following command will disable lib32 support from mhwd and prevent it from pulling lib32 packages:
<!--T:119-->
Then to use the discrete Nvidia card it works the same as [[#PRIME_GPU_offloading|PRIME offloading]] above but uses a different command. Prepend the application command with '''prime-run'''. For example:


sudo mhwd-gpu --setlib32 false
  <!--T:120-->
{{UserCmd|command=prime-run glxspheres64}}


To enable:
==Bumblebee== <!--T:122-->


sudo mhwd-gpu --setlib32 true
<!--T:123-->
Bumblebee configuration is mainly developed to help minimize laptop battery consumption, since Nvidia usually consumes significant power, while Intel cards are more power efficient. So, bumblebee detects both cards and automatically selects Intel card by default and can use the Nvidia for more demanding applications.
For an application to use the Nvidia card, prepend the application command with optirun or primusrun. For example:


Reference: [https://forum.manjaro.org/index.php?topic=14080.msg155909#msg155909 Manjaro forum]
  <!--T:124-->
{{UserCmd|command=optirun glxspheres64}}
{{UserCmd|command=primusrun inkscape}}


= Checking configuration =
<!--T:125-->
If you want to specifically run some application with the nvidia driver, you may edit that application's .desktop file "Exec" property, or run it in terminal like this


You can check configuration with:
  <!--T:126-->
mhwd-gpu --check
Exec=primusrun chromium
mhwd-gpu --status


And if needed fix issues with:
<!--T:127-->
mhwd-gpu --setgl
Some applications (usually games like steam) may have an embedded option to specify the command line, where it is preferred to use this way.
mhwd-gpu --setxorg


Make sure the path to xorg config file is valid.  
<!--T:128-->
For example, in Steam, select a game - that you want to run using your discrete Nvidia card - from the Library page of the Steam client, right-click, and select Properties.
Click the SET LAUNCH OPTIONS... button and specify for the command line options followed by the default launch hook %command%.
 
primusrun %command%


Note about ati, xorg file and login artifacts or kicad: if you get artifacts upon logging in or if kicad rendering and zooming is slow, try adding [Option "EXAPixmaps" "off"] in the "Device" section of xorg config file. See [https://wiki.archlinux.org/index.php/ATI#Artifacts_upon_logging_in here.]


= See also =
= See also = <!--T:130-->


* [[Manjaro_Hardware_Detection_Overview]]
<!--T:131-->
* [[Manjaro Hardware Detection Overview]]




= Easier way =
= Easier way = <!--T:132-->


[[Manjaro Settings Manager]] --> Hardware Detection
<!--T:133-->
You may use a GUI version of mhwd in [[Manjaro Settings Manager#Hardware Detection]]
: With this tool you can:
: With this tool you can:
: - install graphic driver
: - install graphic driver
: - switch graphic driver
: - switch graphic driver


<!--T:134-->
https://www.youtube.com/watch?v=UAFGukpEIJw
https://www.youtube.com/watch?v=UAFGukpEIJw




= How check driver =
= How to check the driver = <!--T:135-->
 
glxinfo | grep OpenGL


<!--T:136-->
{{UserCmd|command=glxinfo &#124; grep OpenGL}}


<!--T:137-->
Example output command:
Example output command:


<!--T:138-->
'''Nvidia driver''' ( proprietary driver )


'''Nvidia driver''' -> closed driver
<!--T:139-->
 
{{UserCmdOutput|command=glxinfo &#124; grep OpenGL|result= OpenGL vendor string: NVIDIA Corporation<br> OpenGL renderer string: GeForce GTX 660/PCIe/SSE2<br> OpenGL core profile version string: 4.3.0 NVIDIA 331.49<br> OpenGL core profile shading language version string: 4.30 NVIDIA via Cg compiler<br> OpenGL core profile context flags: (none)<br> OpenGL core profile profile mask: core profile<br> OpenGL core profile extensions:<br> OpenGL version string: 4.4.0 NVIDIA 331.49<br> OpenGL shading language version string: 4.40 NVIDIA via Cg compiler<br> OpenGL context flags: (none)<br> OpenGL profile mask: (none)<br> OpenGL extensions:}}
$ glxinfo | grep OpenGL
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 660/PCIe/SSE2
OpenGL core profile version string: 4.3.0 NVIDIA 331.49
OpenGL core profile shading language version string: 4.30 NVIDIA via Cg compiler
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.4.0 NVIDIA 331.49
OpenGL shading language version string: 4.40 NVIDIA via Cg compiler
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:


<!--T:140-->
'''Nouveau''' , '''Gallium''' from '''Mesa''' ( open source driver )


'''Nouveau''' , '''Gallium''' from '''Mesa''' -> open driver
<!--T:141-->
{{UserCmdOutput|command=glxinfo &#124; grep OpenGL|result= OpenGL vendor string: nouveau<br> OpenGL renderer string: Gallium 0.4 on NVE6<br> OpenGL core profile version string: 3.1 (Core Profile) Mesa 9.2.5<br> OpenGL core profile shading language version string: 1.40<br> OpenGL core profile context flags: (none)<br> OpenGL core profile extensions:<br> OpenGL version string: 3.0 Mesa 9.2.5<br> OpenGL shading language version string: 1.30<br> OpenGL context flags: (none)<br> OpenGL extensions:}}


$ glxinfo | grep OpenGL
<!--T:142-->
OpenGL vendor string: nouveau
'''Intel''' driver from '''Mesa''' ( open driver )
OpenGL renderer string: Gallium 0.4 on NVE6
OpenGL core profile version string: 3.1 (Core Profile) Mesa 9.2.5
OpenGL core profile shading language version string: 1.40
OpenGL core profile context flags: (none)
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 9.2.5
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:


<!--T:143-->
{{UserCmdOutput|command=glxinfo &#124; grep OpenGL|result= OpenGL vendor string: Intel Open Source Technology Center<br> OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Desktop<br> OpenGL core profile version string: 3.3 (Core Profile) Mesa 11.0.6<br> OpenGL core profile shading language version string: 3.30<br> OpenGL core profile context flags: (none)<br> OpenGL core profile profile mask: core profile<br> OpenGL core profile extensions:<br> OpenGL version string: 3.0 Mesa 11.0.6<br> OpenGL shading language version string: 1.30<br> OpenGL context flags: (none)<br> OpenGL extensions:<br> OpenGL ES profile version string: OpenGL ES 3.0 Mesa 11.0.6<br> OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00<br> OpenGL ES profile extensions:}}


'''Intel''' driver from '''Mesa''' -> open driver
==== Checking vulkan support ==== <!--T:144-->


$ glxinfo | grep OpenGL
<!--T:145-->
OpenGL vendor string: Intel Open Source Technology Center
OpenGL is a graphics API specification and it has been superseded by the Vulkan api. To check support for Vulkan applications, you can install vulkan-tools and run
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Desktop
{{UserCmdOutput|command=vkcube|result=Selected GPU 0: NVIDIA GeForce RTX 3050 Laptop GPU, type: DiscreteGpu}}
OpenGL core profile version string: 3.3 (Core Profile) Mesa 11.0.6
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 11.0.6
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 11.0.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:


<!--T:146-->
With integrated GPU you can select the GPU:
{{UserCmdOutput|command=vkcube --gpu_number 0|result=Selected GPU 0: NVIDIA GeForce RTX 3050 Laptop GPU, type: DiscreteGpu}}
{{UserCmdOutput|command=vkcube --gpu_number 1|result=Selected GPU 1: AMD Radeon Graphics (RADV RENOIR), type: IntegratedGpu
}}$


</translate>
[[Category:Contents Page]]
[[Category:Contents Page]]

Latest revision as of 18:38, 11 February 2024

Other languages:
English • ‎Türkçe • ‎español • ‎русский • ‎中文(中国大陆)‎

Overview

Note
The mhwd command is still under development, and at present is only able to install drivers for graphics cards connected internally via pci.

Where installing the full version of Manjaro (i.e. complete with a pre-installed desktop environment, codecs, and software applications), the mhwd command will be automatically run by the GUI and CLI installer to automatically detect your graphics card and install the most appropriate driver for it. Whether free or proprietary drivers are installed will depend on your initial choice of using free or nonfree graphics drivers to boot up. Otherwise, it will be necessary to run the mhwd command manually as part of the post-installation process for the minimalistic NET-Edition of Manjaro.

For Beginners, it is recommended to use "Hardware Detection" in Manjaro Settings Manager to change or install new graphics drivers.
For intermediate and advanced users, it is also possible to use the mhwd command to install, re-install, and remove installed graphics drivers at any time, as illustrated below.

Automated Identification and Installation

This is the recommended method for the detection and installation of graphics drivers. The syntax for the automated installation method is:

user $ sudo mhwd -a [pci or usb connection] [free or nonfree drivers] 0300 COPY TO CLIPBOARD


A breakdown of the command used for the automated method is as follows:

  • -a: Automatically detect and install the appropriate driver
  • [pci or usb]: Install the appropriate driver for devices connected internally via pci, or externally via usb (again, mhwd currently only supports pci connections at this stage in its development)
  • [free or nonfree]: Install either free drivers (e.g. provided by the Linux community), or nonfree drivers (e.g. provided by hardware manufacturers)
  • 0300: Identify that a driver is to be installed for a graphics card (0300 is the ID for graphics cards. As the mhwd command develops, new ids will be used for other hardware devices).


For example, the following command would result in the automatic detection and installation of the best available proprietary driver for a pci-connected graphics card:

user $ sudo mhwd -a pci nonfree 0300 COPY TO CLIPBOARD



Otherwise, the following command would result in the automatic detection and installation of the best available free driver for a pci-connected graphics card:

user $ sudo mhwd -a pci free 0300 COPY TO CLIPBOARD


Manual Identification and Installation

Taking a do-it-yourself approach is itself relatively easy and straightforward using the mhwd command. This should be undertaken in two stages:

1. Identify the appropriate driver to be installed, and then

2. Install the driver



Tip
Just ensure that you have identified and are indeed about to install the correct driver for your particular graphics card!


Identifying Available Drivers

Prior to manually installing a graphics driver, it will be necessary to identify what drivers are available for your system. To list the appropriate drivers available, the basic syntax is:

user $ mhwd -l [optional: detailed view] [optional: --pci or --usb connection] COPY TO CLIPBOARD


Using this command without the additional options will list basic information for all the available drivers for devices connected to your system. All drivers graphics card drivers will have the prefix (video-) in their name. The basic information provided for all listed drivers will be:

  • Name
  • Version
  • Free or proprietary, and
  • PCI or USB connection


A more detailed list of installed drivers can be obtained by entering:

user $ mhwd -l -d COPY TO CLIPBOARD


A detailed list will provide the following information:

  • Name
  • Version
  • PCI or USB connection
  • Description
  • Priority
  • Free or proprietary
  • Dependencies
  • Conflicts
  • Class ID (e.g. '0300' for graphics card drivers), and
  • Vendor ID


In addition, using the --pci filter in the following example will list detailed information for only the drivers available for devices (e.g. graphics cards) using an internal PCI connection:

user $ mhwd -l -d --pci COPY TO CLIPBOARD


Installing a Driver

To install a driver for a graphics card, the syntax is:

user $ sudo mhwd -i pci [name of driver] COPY TO CLIPBOARD



A breakdown of the command used to manually install a driver is as follows:

  • -i: Install a driver
  • [pci]: Install a driver for a device connected internally via pci (e.g. graphics cards)
  • [name of driver]: The name of the driver to be installed

For example, to install the proprietary nvidia graphics card driver, the following command would be used:

user $ sudo mhwd -i pci video-nvidia COPY TO CLIPBOARD


Force Reinstall a Driver

Warning
use this command with care!

To force the re-installation of an existing driver without removing it first, the syntax is:

user $ sudo mhwd -f -i pci [name of driver] COPY TO CLIPBOARD


For example, to force the re-installation of a previously installed nvidia graphics card driver, the following command would be used:

user $ sudo mhwd -f -i pci video-nvidia COPY TO CLIPBOARD


Removing an Installed Driver

On occasion it may be necessary to remove an installed graphics card driver. Similarly to manually installing a graphics card driver, two steps should be undertaken for removal:

1. Identify the installed driver

2. Remove the identified driver

After all, it would be somewhat difficult to remove an installed driver if you don't know what it's called!


Identifying Installed Drivers

To identify and list Manjaro's installed drivers - including the graphics driver to be removed, the syntax is:

user $ mhwd -li [optional: detailed view] [optional: pci or usb devices only] COPY TO CLIPBOARD


Using this command without the additional options will list the basic information of all the drivers currently installed on your system. Once again, all drivers for graphics cards will have the prefix (video-) in their name. As with listing drivers available for your system, the -d option used in the following command will list detailed information:

user $ mhwd -li -d COPY TO CLIPBOARD


This information may prove useful to determine any otherwise unforeseen consequences or problems upon removing a driver. And again, it is also possible to filter your list of installed drivers by whether they are used on hardware connected via pci or usb. In this instance, a detailed list will be generated only for installed drivers used on hardware with a PCI connection:

user $ mhwd -li -d --pci COPY TO CLIPBOARD


One other way of reporting drivers installed andin use is using the inxi tool.

user $ inxi -G COPY TO CLIPBOARD



Note
The mhwd profile 'video-linux' corresponds to the latest opensource driver availablefor your hardware.
Note
The mhwd profile 'video-vesa' is a generic fallback driver which should not be used in the vast majority of cases.

Removing Installed Drivers

Warning
use this command with care!

To remove an installed driver, the syntax is:

user $ sudo mhwd -r [pci or usb] [name of driver] COPY TO CLIPBOARD


For example, to remove the installed driver for a nvidia graphics card (connected internally via pci), the following command would be used:

user $ sudo mhwd -r pci video-nvidia COPY TO CLIPBOARD


Checking configuration

You can check configuration with:

user $ sudo mhwd-gpu --check COPY TO CLIPBOARD


user $ mhwd-gpu --status COPY TO CLIPBOARD


And if needed fix issues with:

user $ sudo mhwd-gpu --setmod COPY TO CLIPBOARD


user $ sudo mhwd-gpu --setxorg [PATH] COPY TO CLIPBOARD


Make sure the path to xorg config file is valid.

Note about ati, xorg file and login artifacts or kicad: if you get artifacts upon logging in or if kicad rendering and zooming is slow, try adding [Option "EXAPixmaps" "off"] in the "Device" section of xorg config file. See here.

Dual GPU

PRIME GPU offloading

If your hardware includes more than one GPU card you can make use of PRIME offloading. PRIME is a technology used to manage hybrid graphics found on recent desktops and laptops (Optimus for NVIDIA, AMD Dynamic Switchable Graphics for Radeon). PRIME detects both cards and automatically selects Intel card by default; using the more powerful discrete graphics card, when called, for more demanding applications.

In Manjaro this will automatically be available for hybrid graphics systems using intel/modesetting for the integrated card and free drivers (AMDGPU or Nouveau) for the dGPU.

You may choose to run a program with a specific GPU, prepending the application's command with DRI_PRIME=x, where x is the card priority number.

For example, to run an application using the second card prepend the application command with DRI_PRIME=1

user $ DRI_PRIME=1 glxspheres64 COPY TO CLIPBOARD


To use the 1st card (usually when the CPU has an embedded GPU, this is used)

user $ DRI_PRIME=0 glxspheres64 COPY TO CLIPBOARD


If you want to always run some application with the discrete gpu, you may copy that application's .desktop file to ~/.local/share/applications/ and edit the "Exec" property

user $ Exec=DRI_PRIME=1 inkscape COPY TO CLIPBOARD


Some applications (usually games like steam) may have an embedded option to specify the command line, where it is preferred to use this way.

For example, in Steam, select a game - that you want to run using your discrete Nvidia card - from the Library page of the Steam client, right-click, and select Properties. Click the SET LAUNCH OPTIONS... button and specify for the command line options followed by the default launch hook %command%.

DRI_PRIME=1 %command%

To use the dGPU by default see Reverse Prime

NVIDIA Proprietary (non-free) drivers

If you have a Nvidia card, you have the option to use the proprietary (closed source = non-free) drivers instead of the open source (free) nouveau driver.

For Legacy/older nvidia cards, Manjaro maintains older drivers for compatibility. In these cases the driver name is different, instead of nvidia it is nvidia-390xx or nvidia340xx, whether in nvidia-only or bumblebee mhwd driver configuration.

When you install the non-free driver, mhwd includes a Nvidia utility "Nvidia Settings Utility" that can help you configure several settings. You can find this utility in your GUI Applications Menu or start it from a terminal

user $ sudo nvidia-settings COPY TO CLIPBOARD


If you are using bumblebee, the nvidia utility needs a special command

user $ sudo optirun -b none nvidia-settings -c :8 COPY TO CLIPBOARD


Nvidia Optimus

For Optimus laptops or dual GPU hardware with intel and nvidia GPUs, you have three options to utilize the card driver usage at your preference or your hardware capabilities.

PRIME (mhwd default)

Bumblebee

When you install Manjaro with the non-free option selected from Grub menu, or when you use automatic driver installation, PRIME or bumblebee is installed by default, depending on support for your GPU, PRIME being preferred. In these cases, the mhwd driver is named "video-hybrid-intel-nvidia-***xx-prime" or "video-hybrid-intel-nvidia-***xx-bumblebee".

Configure The Resolution/Refresh Rate

Warning
The method provided does not currently work for the Cinnamon Edition. As soon as a solution is found, then this article will be updated.


1. Start nvidia-settings utility

2. Change resolution and refresh rate in 'X Server Display Configuration' tab.

3. Hit the 'Save to X Configuration File' button and save to /etc/X11/mhwd.d/nvidia.conf

4. Now start your terminal and enter the following command to complete the process:

user $ sudo mhwd-gpu --setmod nvidia --setxorg /etc/X11/mhwd.d/nvidia.conf COPY TO CLIPBOARD


Configure X Screen settings (OpenGL Settings, Antialiasing, X Server XVideo)

1. Start nvidia-settings utility

2. Change settings in X Server XVideo Settings, OpenGL and Antialiasing, in the 'X Screen' tab.

3. Click on 'nvidia-settings configuration' tab and click on the 'Save Current Configuration' button.

4. Save the .nvidia-settings-rc to the default location specified (/home/[your account name])

5. Edit the .xinitrc file with your preferred text editor. For example, if you use gedit, run this in your terminal:

user $ gedit ~/.xinitrc COPY TO CLIPBOARD


6. Once opened, add the following line into the configuration file:

user $ exec nvidia-settings --load-config-only COPY TO CLIPBOARD


7. Save and exit.

Nvidia settings for special cases

In case your monitor is not entering powersave mode (DPMS), try adding `Option "HardDPMS" "true"` in your Xorg monitor section. For example:

  Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "BenQ ZOWIE XL LCD"
    HorizSync       30.0 - 160.0
    VertRefresh     56.0 - 144.0
    Option         "DPMS"
    Option         "HardDPMS" "true"
  EndSection


After forum issue


nvidia-prime

Manjaro also offers an easy way to use PRIME with proprietary Nvidia drivers.
Simply select and install an 'nvidia-prime' profile through MSM or mhwd (such as video-hybrid-intel-nvidia-440xx-prime) and ensure the package nvidia-prime is installed.

Then to use the discrete Nvidia card it works the same as PRIME offloading above but uses a different command. Prepend the application command with prime-run. For example:

user $ prime-run glxspheres64 COPY TO CLIPBOARD


Bumblebee

Bumblebee configuration is mainly developed to help minimize laptop battery consumption, since Nvidia usually consumes significant power, while Intel cards are more power efficient. So, bumblebee detects both cards and automatically selects Intel card by default and can use the Nvidia for more demanding applications. For an application to use the Nvidia card, prepend the application command with optirun or primusrun. For example:

user $ optirun glxspheres64 COPY TO CLIPBOARD


user $ primusrun inkscape COPY TO CLIPBOARD


If you want to specifically run some application with the nvidia driver, you may edit that application's .desktop file "Exec" property, or run it in terminal like this

 Exec=primusrun chromium

Some applications (usually games like steam) may have an embedded option to specify the command line, where it is preferred to use this way.

For example, in Steam, select a game - that you want to run using your discrete Nvidia card - from the Library page of the Steam client, right-click, and select Properties. Click the SET LAUNCH OPTIONS... button and specify for the command line options followed by the default launch hook %command%.

primusrun %command%


See also


Easier way

You may use a GUI version of mhwd in Manjaro Settings Manager#Hardware Detection

With this tool you can:
- install graphic driver
- switch graphic driver

https://www.youtube.com/watch?v=UAFGukpEIJw


How to check the driver

user $ glxinfo | grep OpenGL COPY TO CLIPBOARD


Example output command:

Nvidia driver ( proprietary driver )


$ glxinfo | grep OpenGL

OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 660/PCIe/SSE2
OpenGL core profile version string: 4.3.0 NVIDIA 331.49
OpenGL core profile shading language version string: 4.30 NVIDIA via Cg compiler
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.4.0 NVIDIA 331.49
OpenGL shading language version string: 4.40 NVIDIA via Cg compiler
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:


Nouveau , Gallium from Mesa ( open source driver )


$ glxinfo | grep OpenGL

OpenGL vendor string: nouveau
OpenGL renderer string: Gallium 0.4 on NVE6
OpenGL core profile version string: 3.1 (Core Profile) Mesa 9.2.5
OpenGL core profile shading language version string: 1.40
OpenGL core profile context flags: (none)
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 9.2.5
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:


Intel driver from Mesa ( open driver )


$ glxinfo | grep OpenGL

OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Desktop
OpenGL core profile version string: 3.3 (Core Profile) Mesa 11.0.6
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 11.0.6
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 11.0.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:


Checking vulkan support

OpenGL is a graphics API specification and it has been superseded by the Vulkan api. To check support for Vulkan applications, you can install vulkan-tools and run


$ vkcube

Selected GPU 0: NVIDIA GeForce RTX 3050 Laptop GPU, type: DiscreteGpu


With integrated GPU you can select the GPU:


$ vkcube --gpu_number 0

Selected GPU 0: NVIDIA GeForce RTX 3050 Laptop GPU, type: DiscreteGpu


$ vkcube --gpu_number 1

Selected GPU 1: AMD Radeon Graphics (RADV RENOIR), type: IntegratedGpu

$

Cookies help us deliver our services. By using our services, you agree to our use of cookies.