Unable to adjust screen brightness on Gateway NV54

There's nothing to install, it's there by default. This question is a duplicate of

Intel HD Graphics card not recognized in System Info

In response to the ACPI tweak proposed, it's important to understand what you're actually doing to achieve "brightness controls" for your Linux desktop and what the cost is. There's this thing called ACPI, it's like perl for HW control, actual code is kept in your BIOS and then executed on demand by the OS (it has an interpreter). This code will change depending on the OS you're running, or in your case, the OS name you changed it to. These tables describe everything from how to clock your CPUS, to suspend/resume, thermal regulation, multiple displays (the external display button), and of course, hotkeys like brightness.

When you change the acpi_os name, you're literally changing the way all of your HW will behave at runtime. My thermal remark is a worse case scenario, and is indeed possible, as by specifying Linux as the ACPI name, you're literally running untested or poorly tested code, that's telling these very low level resources what to do.

So if you want to continue with this shortcut then it's your responsibility to ensure the machine is operating within reasonable tolerances. That especially means thermal, going down this road can be an all or nothing thing where the fans are on full blast or to the bare minimum. You also need to double check all the other runtime features, like can it even suspend and resume anymore? volume control? Super Key? All that stuff depends on ACPI.

So the way Linux works is it impersonates the latest version Windows, like Windows 2009. Think about it, when you specify Linux, what version is that? There isn't one, so the next time you update your kernel, the behavior of "Linux" ACPI name could change and you're stuck with the side effects. People take this for granted, Windows releases are explictly versioned, the kernel+acpi runtime is all under one benchmark. Linux just rolls it forward, sure there's an ACPI version, but no vendor codes to it (yet).

Well, how does that help you? You want brightness controls after all and all this technical background isn't really solving your problem, it is however framing the risks involved.

Canonical has developed a test suite that excels at drilling into the firmware and testing for correctness. We can then use this information to fix the problem at it's source and get you updated firmware.

https://wiki.ubuntu.com/Kernel/Reference/fwts

Running this and submitting a bug, without those hacks enabled, will put us into a position to solve the problem. We might be able to enable just brightness controls through a platform quirk.

The other thing you have to consider is your hardware might not even be ready to run Windows 2009. What's the little sticker on the laptop say for "Windows Certified"? You can tell Linux to impersonate an earlier version of Windows, like Vista or XP. It could be that there's a bug in your ACPI table, Linux asked for Windows 2009, it wasn't there, the code was bad so it just bailed out and nothing was configured. If you instead changed acpi_osi='Windows\ 2006' (e.g. Vista), it might all work. Even better, your laptop was probably certified for that OS so we know all that code works.

Here's a table of all the names Linux impersonates, start from the end and roll back until you find one that works. I believe we defaulted to Windows 2009 when 2.6.38 was released: http://lxr.linux.no/#linux+v3.2.7/drivers/acpi/acpica/utosi.c

/*
 * Strings supported by the _OSI predefined control method (which is
 * implemented internally within this module.)
 *
 * March 2009: Removed "Linux" as this host no longer wants to respond true
 * for this string. Basically, the only safe OS strings are windows-related
 * and in many or most cases represent the only test path within the
 * BIOS-provided ASL code.
 *
 * The last element of each entry is used to track the newest version of
 * Windows that the BIOS has requested.
 */
static struct acpi_interface_info acpi_default_supported_interfaces[] = {
    /* Operating System Vendor Strings */

    {"Windows 2000", NULL, 0, ACPI_OSI_WIN_2000},   /* Windows 2000 */
    {"Windows 2001", NULL, 0, ACPI_OSI_WIN_XP}, /* Windows XP */
    {"Windows 2001 SP1", NULL, 0, ACPI_OSI_WIN_XP_SP1}, /* Windows XP SP1 */
    {"Windows 2001.1", NULL, 0, ACPI_OSI_WINSRV_2003},  /* Windows Server 2003 */
    {"Windows 2001 SP2", NULL, 0, ACPI_OSI_WIN_XP_SP2}, /* Windows XP SP2 */
    {"Windows 2001.1 SP1", NULL, 0, ACPI_OSI_WINSRV_2003_SP1},  /* Windows Server 2003 SP1 - Added 03/2006 */
    {"Windows 2006", NULL, 0, ACPI_OSI_WIN_VISTA},  /* Windows Vista - Added 03/2006 */
    {"Windows 2006.1", NULL, 0, ACPI_OSI_WINSRV_2008},  /* Windows Server 2008 - Added 09/2009 */
    {"Windows 2006 SP1", NULL, 0, ACPI_OSI_WIN_VISTA_SP1},  /* Windows Vista SP1 - Added 09/2009 */
    {"Windows 2006 SP2", NULL, 0, ACPI_OSI_WIN_VISTA_SP2},  /* Windows Vista SP2 - Added 09/2010 */
    {"Windows 2009", NULL, 0, ACPI_OSI_WIN_7},  /* Windows 7 and Server 2008 R2 - Added 09/2009 */

Note, you don't see Linux on that list do you? Also, make sure you escape the string correctly to include the space in the grub defaults or it won't work. You'll able to see the OSI name take affect by examining the dmesg logs.


Your graphics driver is part of the default installation.

To check it and to know which driver is currently in use open a terminal and type this in

sudo lshw -C display

Look for a line that says configuration: driver=i915 latency=0. If its present then the drivers are enabled.

To keep the driver updated you just need to keep your system updated with the Update Manager.

To be able to use the brightness buttons you need to add something to your grub configuration file.

Open it with you favorite text editor in a terminal, ie gedit

gksudo gedit /etc/default/grub

Locate the line

GRUB_CMDLINE_LINUX=""

and change it to

GRUB_CMDLINE_LINUX="acpi_osi=Linux acpi_backlight=vendor"

Save the file and in a terminal type

sudo update-grub

Reboot your computer with

sudo reboot

Your brightness buttons should now be working as expected.

(source)