Configure Graphics Cards

From Manjaro Linux
Jump to: navigation, search

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.


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!


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:

sudo mhwd -a [pci or usb connection] [free or nonfree drivers] 0300


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:

sudo mhwd -a pci nonfree 0300


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


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:

mhwd -l [optional: detailed view] [optional: --pci or --usb connection]


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:

mhwd -l -d


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:

mhwd -l -d --pci


Installing a Driver

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

sudo mhwd -i pci [name of driver]


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:

sudo mhwd -i pci video-nvidia

Forcing Re-installation of a Driver

Warning: use this command with care!


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

sudo mhwd -f -i pci [name of driver]


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


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:

mhwd  -li [optional: detailed view] [optional: pci or usb devices only]


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


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:

mhwd -li -d --pci


Removing Installed Drivers

Warning: use this command with care!


To remove an installed driver, the syntax is:

sudo mhwd -r [pci or usb] [name of driver]


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


Enable or disable 32 bit support on 64 bit (multilib)

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).

The following command will disable lib32 support from mhwd and prevent it from pulling lib32 packages:

sudo mhwd-gpu --setlib32 false

To enable:

sudo mhwd-gpu --setlib32 true

Reference: Manjaro forum

Checking configuration

You can check configuration with:

mhwd-gpu --check 
mhwd-gpu --status 

And if needed fix issues with:

mhwd-gpu --setmod
mhwd-gpu --setxorg [PATH]

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.

See also


Easier way

Manjaro Settings Manager --> Hardware Detection

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

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


How check driver

glxinfo | grep OpenGL


Example output command:


Nvidia driver ( closed 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 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: