# Backlight turns off on boot

## tjscollins

I haven't been able to figure this one out for the life of me.  When booting my laptop the backlight comes on, and stays on until the kernel loads at which point it switches off and I have to manually turn it back on.  In every other respect it behaves normally--powerdevil and laptop-mode are able to manipulate the backlight correctly.  The only thing I could find in dmesg output that looked relevant were these:

```

[    0.866360] [Firmware Bug]: ACPI: No _BQC method, cannot determine initial brightness

[    0.871175] [Firmware Bug]: ACPI: No _BQC method, cannot determine initial brightness

[   97.361990] video LNXVIDEO:00: Restoring backlight state

```

Since the third one is probably related to powerdevil, since I'm generally logged in less than 30 seconds from the kernel loading.  This is a problem I've noticed in some distros and not in others.  The Gentoo LiveDVD doesn't have this problem, so I'm guessing that I must be missing some kernel option, but I'm pretty sure I already have everything enabled:

```

# Power management and ACPI options

CONFIG_ACPI=y

CONFIG_ACPI_SLEEP=y

# CONFIG_ACPI_PROCFS is not set

# CONFIG_ACPI_PROCFS_POWER is not set

CONFIG_ACPI_POWER_METER=y

CONFIG_ACPI_SYSFS_POWER=y

# CONFIG_ACPI_EC_DEBUGFS is not set

# CONFIG_ACPI_PROC_EVENT is not set

CONFIG_ACPI_AC=y

CONFIG_ACPI_BATTERY=y

CONFIG_ACPI_BUTTON=y

CONFIG_ACPI_VIDEO=y

CONFIG_ACPI_FAN=y

CONFIG_ACPI_DOCK=y

CONFIG_ACPI_PROCESSOR=y

CONFIG_ACPI_HOTPLUG_CPU=y

CONFIG_ACPI_PROCESSOR_AGGREGATOR=y

CONFIG_ACPI_THERMAL=y

# CONFIG_ACPI_CUSTOM_DSDT is not set

CONFIG_ACPI_BLACKLIST_YEAR=0

# CONFIG_ACPI_DEBUG is not set

CONFIG_ACPI_PCI_SLOT=y

CONFIG_ACPI_CONTAINER=y

CONFIG_ACPI_SBS=y

CONFIG_ACPI_HED=y

# CONFIG_ACPI_APEI is not set

CONFIG_X86_ACPI_CPUFREQ=y

CONFIG_PNPACPI=y

CONFIG_ATA_ACPI=y

# CONFIG_PATA_ACPI is not set

# ACPI drivers

# ACPI drivers

```

Maybe Custom_DSDT?  It's the one setting I can't find in make menuconfig, so I haven't tried it.

----------

## zertyz

Maybe this is a problem with KMS -- see https://bbs.archlinux.org/viewtopic.php?pid=859472

... or a buggy ACPI Firmware -- see http://cannibalcandy.wordpress.com/2011/02/18/dsdt-editing-put-an-end-to-your-acpi-woes/

BTW, the Custom DSDT kernel option is to be used when you want to recompile the kernel with a correction to your ACPI AML table.

[]s

Luiz

----------

## HeissFuss

I saw a similar issue when I tried using nouveau (probably the same KMS issue zertyz mentioned.)

What video driver are you using?

----------

## tjscollins

With further testing I've found two partial workarounds.

Toggling kernel modesetting off for the intel i915 driver (which I use for my chipset) does stop the backlight from being turned off and having to be turned back on by hand, but leaves me with the large, ugly fonts and low resolution in the initial console (X and KDE function the same as usual).

Alternatively, I edited the DSDT file to return a fixed value for the BQC method.  Combined with kernel modesetting toggled on this results in the backlight switching off for about half a second, and then switching back on (so I don't have to do it manually).

Neither solution is ideal, but both are functional.

Is there a way to get the high resolution console without kernel modesetting?  I've tried the grub vga option, but it doesn't seem to do anything (or else I'm doing it wrong):

```

default 0

timeout 30

splashimage=(hd0,1)/boot/grub/splash.xpm.gz

vga=0x0365

title Gentoo Linux

root (hd0,1)

kernel /boot/linux-img root=/dev/sda5

```

----------

## zertyz

You may wish to test the standard vesa modes first:

```
#  FRAMEBUFFER RESOLUTION SETTINGS

#     +-------------------------------------------------+

#          | 640x480    800x600    1024x768   1280x1024

#      ----+--------------------------------------------

#      256 | 0x301=769  0x303=771  0x305=773   0x307=775

#      32K | 0x310=784  0x313=787  0x316=790   0x319=793

#      64K | 0x311=785  0x314=788  0x317=791   0x31A=794

#      16M | 0x312=786  0x315=789  0x318=792   0x31B=795

#     +-------------------------------------------------+

```

Also, try adding the vga= parameter at the end of the kernel line:

```
...

kernel /boot/linux-img root=/dev/sda5 vga=773

```

You can also try vga=ask.

[]s

Luiz

----------

## ManDay

I do have the same problem for an Intel Arrandale i915. I'd rather solve this problem than working arround it, especially since turning of KMS is not an option for me. I use vgaswitcheroo which requires KMS to be on from the start.

----------

## tjscollins

I tried futzing with the vga parameter, and I got it to work, but it broke desktop effects with me.  So I've given up and gone with KMS enabled and the edited DSDT file as a the solution of choice.

 *Quote:*   

> 
> 
> I do have the same problem for an Intel Arrandale i915. I'd rather solve this problem than working arround it, especially since turning of KMS is not an option for me. I use vgaswitcheroo which requires KMS to be on from the start.

 

Follow the instructions at the link zertyz provided: http://cannibalcandy.wordpress.com/2011/02/18/dsdt-editing-put-an-end-to-your-acpi-woes/

Find the line in dsdt.dsl that says:

```

                    Method (_BQC, 0, NotSerialized)

```

and change the function to something like this:

```

                    Method (_BQC, 0, NotSerialized)

                    {

                        Return (0x10)

                    }

```

0x10 is the value I picked (originally it returned BRTL in mine), the link said 0x1E (which didn't work for me).  Find one that works for you.  This should solve the problem.  It's a hack, but it works.  Make sure to recompile your kernel according to http://www.lesswatts.org/projects/acpi/overridingDSDT.php (link from the HOWTO on the DSDT above) after you've finished with the DSDT file.

----------

