A guide to Hybrid Video on Dell PCs with an Ubuntu Operating System

Summary: This article talks about Hybrid Video on a Dell PC using the Ubuntu Operating System.

Article Content


Symptoms

Table of Contents:

  1. Introduction
  2. Common video issues and solutions
  3. Find and install the correct drivers
  4. Set up and use Hybrid Graphics

Introduction

 

This article goes over the differences between Discrete Graphics and Video Card Graphics. What Proprietary Drivers and Open Source Drivers means for your Video output. This article deals with Dell PCs using the Ubuntu operating system and the common videos issues you are likely to experience over time. This article is as much a reference guide as it is a troubleshooting guide.

Remember that Dell supports the Hardware that ships with the unit and the reinstall or recovery of the Operating system that came with the unit. I hope you find the following information useful.

Hybrid Graphics:

Most Notebook and AIO (All in One) systems can run two GPUs on the motherboard. The first is the integrated GPU and is part of the onboard CPU and the other is called the discrete GPU. The discrete GPU is an optional extra and is always more powerful than the integrated GPU. If your system has a hardware mux, it can switch between GPUs.

Video Cards:

While add-on Video cards are technically a second GPU added to the Integrated GPU, they are not part of Hybrid Graphics. Most Desktop BIOS settings mean that when an add-in Video card is detected, it takes over from the Integrated GPU.


Back to Top


Cause

Common video issues and solutions

 

Note: Dell only supports the hardware that they ship with the PC and the factory-installed version of the Ubuntu Operating system. If the hardware checks out OK. The OS reinstall from the recovery partition does not resolve the issue. Then you could be directed to contact Canonical for further Software support. If the hardware in question is a third-party device, you may be directed to contact the manufacturer of the device for further help. Are you looking for a specific driver, that is not commonly available? You may be directed to contact the Ubuntu community forums with the information about your hardware for further support. I will give some general troubleshooting steps in the section below, but this information is used at your own risk.

No Display (i.e. nothing seen on screen.)

Are you experiencing the issue outside of the Ubuntu operating system?

  1. Are you seeing the issue outside the operating system? Go to either this article for an External Screen or this article for an Internal Screen to troubleshoot further.

  2. If you are not seeing the issue outside the operating system, then:

    1. In the Grub bootloader menu - select boot your computer into recovery mode

    2. Choose resume normal boot from the recovery menu (This will attempt a normal boot with failsafe video settings.)

    3. If the normal boot does not resolve the issue, then you can go back into recovery mode and select the run in failsafe graphic mode option.

    4. If you still have no video, then you may be looking at an operating system reinstall. Alternatively, you can drop to the root shell prompt if you have the experience or a guide to troubleshoot further using Terminal.

Distorted Display (i.e. you can see something on the screen, but not make it out.)

Are you experiencing the issue outside of the Ubuntu operating system?

  1. Are you seeing the issue outside the operating system? Go to either this article for an External Screen or this article for an Internal Screen to troubleshoot further.

  2. If you are not seeing the issue outside the operating system, then:

    1. Performance Issues and Video Stability can be helped by disabling visual effects. (This means changing to the 2D desktop environment.)

    2. Open Terminal (CTRL + ALT + T) and install compiz settings manager:

      sudo apt-get install compizconfig-settings-manager

    3. On Ubuntu Dash, search for compiz settings manager and open the application and disable or uncheck:

      • Effects > Animations, Fading Windows, Windows Decoration

    4. If you still have distorted video, then you may be looking at an operating system reinstall to resolve.

Resolution Issues (i.e. the screen is too big or too small.)

The default resolution for Ubuntu 14.04 is 640x480 at the low end and 1024x768 at the top.

Using the default video GPU, do you only see the low end of 640x480? I recommended that you run Xdiagnose and tick all 3 Debug options. This has been known to restore the screen to the upper default 1024x768.

To get resolutions above 1024x768, you need to use the xrandr command in Terminal to add a new mode with the new resolution. (This is not kept past a Reboot.)

If you are an experienced Ubuntu user, and are looking to keep the changes past a reboot. You can look to add the xrandr newmode and addmode commands into /etc/gdm/Init/Default before "initctl ..."

It should look similar to the code below:

xrandr --newmode "1280x1024_60_new" 138.54 1280 1368 1504 1728 1024 1025 1028 1069 -HSynch +V
xrandr --addmode VGA-0 1280x1024_60_new

Settings issues (i.e. Brightness.)

(i) Intel Video Card Brightness

Note: This method is used on systems with only 1 GPU. Check out the other methods for dealing with Hybrid Graphics.

If the Fn shortcut keys for adjusting the brightness are not working. You are looking for more control than they provide. There are applets that you can install that will give you a GUI (Graphical User Interface) window with various display settings. If you are an experienced Ubuntu user, terminal commands such as gksu and leafpad let you create a file to resolve the Fn shortcuts.

(ii) Using a Grub parameter to change the brightness

Again for experienced users, adding a Grub parameter may be all that you need. You will need gksu and leafpad installed and to be operating as admin with sudo control. Replace the existing line GRUB_CMDLINE_LINUX="" with the new line GRUB_CMDLINE_LINUX="acpi_osi=Linux" in the Grub text file and then update it in Terminal. If the brightness keys on the keyboard still do not work, you can replace GRUB_CMDLINE_LINUX="acpi_osi=Linux" with GRUB_CMDLINE_LINUX="acpi_backlight=vendor" and try again. If you still have issues after this, try the next method.

(iii) Using xbacklight to change the brightness

The first step is to install xbacklight if it is not already on your system. Create a startup application called brightness, by searching for startup applications and clicking Add. Give a new application the command below and reboot the system. If it does not work, try the next method.

xbacklight -set 70

 
Note: You can use other settings than 70, you need to experiment to see which setting suits you best. However be aware you need to log in for this to take effect, if you cannot see to log in then you could have a problem.

(iv) Using setpci to change the brightness

  1. The first thing to do is open a Terminal window and identify the exact type of card you have and the BusID. (The BusID has five (5) digits 00: 00.0, take a note of it.)

    Ispci | grep -i vga

  2. Combine the BusID with the following two commands to dim and increase the brightness on your display. (You need to experiment to see which settings suit you best.)

    sudo setpci -s 00:00.0 F4.B=50
    sudo setpci -s 00:00.0 F4.B=90

  3. To make this change survive a reboot, you will need gksu and leafpad installed. Open the /etc/re.local file in leafpad and add this line setpci -s 00:00.0 F4.B=50 above the existing line that says exit 0:

If you are still having problems after this. The next method is a last resort and only intended for those users who are experienced with Ubuntu.

(v) Using xrandr to change the brightness

You can even use xrandr to affect the brightness output. (I would recommend you be sure about the hardware of your machine. That you are confident in whichever guide you find to use. Before doing too much in Terminal using the sudo command.)

Fans running at full speed

Does your graphics card fan run at full speed? You can create a script using the following command to run before shutdown:

echo ON > /sys/kernel/debug/vgaswitcheroo/switch

Suspend or Wake Freezing

If you have turned off the unused discrete card and your laptop freezes when trying to wake. You can make a new file that is called 11_switcheroo_suspend under /etc/pm/sleep.d and make sure the file is executable:

#!/bin/bash

PATH=/bin:/usr/bin

switchfile=/sys/kernel/debug/vgaswitcheroo/switch

[[ -n "$1" && -f "$switchfile" ]] || exit 1

retval=0

case "$1" in
hibernate|suspend)
echo ON > /sys/kernel/debug/vgaswitcheroo/switch
retval=$?
;;
resume|thaw)
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
retval=$?
;;
*)
[ -x /bin/logger ] && /bin/logger -i -t switcheroo_suspend -p user.info "Unknown mode: $1"
=$?
;;
esac

exit $retval

Default GPU

Depending on which GPU is started on Boot - you may have an issue with it needing the system to be connected to mains power.


Back to Top


Resolution

Find and Install the correct drivers

 

Proprietary Drivers:

This is another term for Binary drivers, which are closed source drivers that the hardware manufacturers of the secondary GPU provide. Some hardware devices may require this kind of driver to function fully and properly. Unfortunately, there is no way for developers to affect this type of driver and work on any bugs that are found.

Open Source Drivers:

The Linux community creates open-source drivers to function with certain GPUs. They are most commonly used with GPUs where the manufacturer does not supply Linux versions and there is no proprietary driver available. The benefits of open source are that they are community supported and bugs tend to be fixed on an ongoing basis. The disadvantage is that they will not fully support all the features of every GPU.

The first thing is to correctly identify your Hardware.

You can determine you make and model using the command below in Terminal:

lspci | grep VGA

You can get more detailed information by running:

sudo lshw -C video

For a list of supported hardware please check out the article below:

There are two ways to install a proprietary driver in Ubuntu:

  1. The first way is through the GUI (Graphical User Interface) Hardware Manager window.

    1. Open Software Center and go to Edit

    2. Select Additional Drivers

    3. It will check what is already installed and download a list of all the other proprietary drivers available and any updates.

    4. You can enable or disable a driver. If there are multiple versions, please remember it is best to use the most recent version that applies to your hardware. It is usually got the best chance of working and containing the most recent fixes for any issues.

  2. The second way is through the CLI (Command Line Interface)

    1. Open a Terminal Window (CTRL + ALT + T)

    2. The example below shows commands for Nvidia:

      sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
      sudo apt-get update
      sudo apt-get install Nvidia-current

Several open-source drivers cover some manufacturers.

I have listed some current programs below:

VESA

This is the default driver and supports most cards without acceleration and has a limited set of possible resolutions.

xorg-video-intel

This is the latest open-source driver to support the Intel Graphics

radeon

This is another AMD Radeon driver which is looking to support 3D and is made up of radeon, r200, r300g, r600g, and radeonsi.

nouveau

This driver is based entirely on information that was gained through backward engineering Nvidia devices.

tegra-re

This driver is also based entirely on information that was gained through backward engineering Nvidia Tegra devices.

Matrox

This company supplied open-source drivers for all devices older than G550, any that are newer than G550 use a closed source driver.

opernChrome

This supports the S3 Chrome GPU, all other S3 products are closed source.

lima

This driver had support that is built in for the ARM Mali GPU.

etna_viv and BLTsville

These drivers support the Vivante GC400, GC800, and the GC1000 series.

freedreno

This supports the Qualcomm Adreno GPU series.

videocoreiv

This was an attempt to support the Videocore GPU series. Broadcom who make the Videocore series, released the source code for the IV graphics core. It was part of the second anniversary of the Broadcom Raspberry Pi being released.


Back to Top


Set up and use Hybrid Graphics

 

Enabling vga_switcheroo

vga_switcheroo is what allows you to switch between GPUs if your machine has a hardware mux.

Note: This method does not support all system types. It only works if you are using an open-source driver (nouveau, radeon) and not the proprietary ones (Nvidia, fglrx).

To check whether your kernel is compiled with the correct option, you can examine the file config-2.6.nn-mm-generic in the /boot directory:

grep -i switcheroo /boot/config-*

vga_switcheroo mechanism works when the kernel is booted with either the modeset=1 kernel option and/or the nomodeset option being absent. To test if vga_switcheroo is enabled, look for the switch file:

ls -l /sys/kernel/debug/vgaswitcheroo/switch

Using vga_switcheroo

If vga_switcheroo is available, you can switch between GPUs. Be prepared for something to go wrong and the system to lockup as the fact this file is there does not guarantee the machine is supported.

Use this command to turn on the GPU that is disconnected, but it does not switch the outputs:

echo ON > /sys/kernel/debug/vgaswitcheroo/switch

This command connects the integrated graphics with the outputs:

echo IGD > /sys/kernel/debug/vgaswitcheroo/switch

This command connects the discrete graphics with the outputs:

echo DIS > /sys/kernel/debug/vgaswitcheroo/switch

This command turns off the graphics card that is disconnected:

echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

This command lets you check the current state of the hybrid graphics. There will usually be two lines of output - the first should show Pwr and the second shows Off:

cat /sys/kernel/debug/vgaswitcheroo/switch

 

Note: do you want to turn one of the GPUs off and run on one full time? Search for guides on a kernel mechanism like Bumblebee. As a last resort, you could try acpi_call, but I would not recommend it unless you are an experienced Ubuntu user.

 


Back to Top


Additional Information
Note:
Software support for Canonical is through the following methods:
Technical Support is provided by Dell:


Back to Top


Article Properties


Affected Product

Inspiron, Latitude, Vostro, XPS, Fixed Workstations

Last Published Date

21 Feb 2021

Version

7

Article Type

Solution

Rate This Article


Accurate
Useful
Easy to Understand
Was this article helpful?

0/3000 characters