Asus X401A brightness through Fn keys not working

Hi everybody.

I’m new to openSUSE but had rich experience with Debian and FreeBSD in past.

After a long time I decided to return to Linux back again and chosen openSUSE, because openSUSE use more fresh versions of software, than Debian and currently I run Linux as my home system, not a server, so I prefer freshness instead of stability.

Everything is working flawlessly, even wifi driver, except the Fn keys for regulating display brightness. I’ve searched a little bit and found out that it might be Intel driver problem and could be solved by adding Index of /repositories/X11:/XOrg/openSUSE_12.3 as a software repository and switching to it, then downloading latest Intel drivers from there. It didn’t helped though.

Then I’ve found a post here, on openSUSE forums, where people said that following options to GRUB could fix the problem:


acpi_backlight=vendor acpi_osi=Linux

I’ve added it through YaST, in the [Optional Kernel Command Line Parameter] field, then checked it in the /etc/default/grub. It was under GRUB_CMDLINE_LINUX_DEFAULT. It didn’t helped me either.

I cannot regulate brightness through KDE too. When I try to move brightness slider to left or right in Energy Saving (on appropriate tab of course), it has no effect. Display brightness remains same.

Though I can regulate brightness by:


echo 1000 > /sys/class/backlight/intel_backlight/brightness

Here is lspci output:


chekh:/home/chekh # lspci -nnk | grep -i vga -A2
00:02.0 VGA compatible controller [0300]: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0106] (rev 09)
        Subsystem: ASUSTeK Computer Inc. Device [1043:14f7]
        Kernel driver in use: i915
chekh:/home/chekh # 

Other Fn keys work as expected (volume + or -, mute, disable/enable touchpad etc.)

Hope you can help me to solve my problem. Thanks! :slight_smile:

I have the same problem with my Asus F201E-KX062DU, although in my case I can`t regulate the brightness at all.

JakobAbfalter wrote:

>
> I have the same problem with my Asus
> F201E-KX062DU, although in my case I can`t regulate the brightness at
> all.
Evently help acpi_osi=Linux acpi_backlight=vendor as bootparameter on
Grub.

>

As I wrote earlier, I have tried to add those parameters to GRUB and it failed to help me.

After adding that parameter, did you run the following command?

grub2-mkconfig -o /boot/grub2/grub.cfg

What exactly do you mean by adding the parameter?
I typed acpi_osi=Linux acpi_backlight=vendor into the terminal and than did the grub command that you wrote, but it didn`t change anything.

I found out that in my case this also works

echo 1000 > /sys/class/backlight/intel_backlight/brightness

You don’t have to run it into the terminal.
Add it to the end of the GRUB_CMDLINE_LINUX variable in the /etc/default/grub file.
Then run the* grub2-mkconfig -o /boot/grub2/grub.cfg* command to update the configuration …
It forces to load the vendor specific driver (e.g. thinkpad_acpi, sony_acpi, etc.) instead of the ACPI video.ko driver …

thanks for the explanation, didnt help sadly.

You can use the following bash script to make easy edits to your grub 2 config fies: https://forums.opensuse.org/blogs/jdmcdaniel3/gnu-grub2-command-listing-helper-help-input-106/

Thank You,

I have checked again: here is my /etc/default/grub file head:


# Modified by YaST2. Last modification on Mon Oct 14 15:57:02 AMT 2013
# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# For the new kernel it try to figure out old parameters. In case we are not able to recognize it (e.g. change of flavor or strange install order ) it it use as fallback installation parameters from /etc/sysconfig/bootloader

# If you change this file, run 'grub2-mkconfig -o /boot/grub2/grub.cfg' afterwards to update
# /boot/grub2/grub.cfg.
GRUB_DISTRIBUTOR="openSUSE 12.3"
GRUB_DEFAULT=saved
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=8
GRUB_CMDLINE_LINUX_DEFAULT=" resume=/dev/disk/by-id/ata-TOSHIBA_MQ01ABD032_62I4F0D0S-part2 splash=silent quiet showopts acpi_backlight=vendor acpi_osi=Linux"
# kernel command line options for failsafe mode
GRUB_CMDLINE_LINUX_RECOVERY="showopts apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe"
GRUB_CMDLINE_LINUX=""

I have executed grub2-mkconfig as root, with key “-o” and parameter /boot/grub2/grub.cfg, then rebooted.

When I press Fn + f12, e.g., (that’s volume up button), I have thing on my screen, with the volume indicator (100% e.g.). When I click on Fn + f6 (brightness up), nothing appears.

When I click on the battery indicator, I have the screen brightness indicator. I can move the slider to left or right and appropriate brightness value is shown, nevertheless, no reaction on display. Brightness isn’t decreased or increased.

I’ve saw this script few topics above. It can be assigned to the brightness hotkeys, if properly modified (my suggestion is added as a comment above sudo setpci). What you think about that?


#!/bin/bash
export SEED=50
if  ! -f ~/.brightness ]; then
       echo 255 > ~/.brightness;
fi
export BRIGHTNESS=`cat ~/.brightness`
case "$1" in
       "up")
               export BRIGHTNESS=$$BRIGHTNESS+$SEED];
       ;;
       "down")
               export BRIGHTNESS=$$BRIGHTNESS-$SEED];
       ;;
       *)
               export BRIGHTNESS=1;
       ;;
esac
if  "$BRIGHTNESS" -gt "255" ]; then
       export BRIGHTNESS=255;
fi
if  "$BRIGHTNESS" -gt "0" ]; then
       echo $BRIGHTNESS > ~/.brightness
#sudo echo `printf '%x' $BRIGHTNESS` > /sys/class/backlight/intel_backlight/brightness
sudo setpci -s 00:02.0 F4.B=`printf '%x' $BRIGHTNESS`
fi
if  "$BRIGHTNESS" -lt "0" ]; then
       echo "This makes your screen off";
fi

Couldn’t find how to edit my post, so adding modified script version as a reply:


#!/bin/bash
export SEED=300
if  ! -f ~/.brightness ]; then
       echo 2000 > ~/.brightness;
fi
export BRIGHTNESS=`cat ~/.brightness`
case "$1" in
       "up")
               export BRIGHTNESS=$$BRIGHTNESS+$SEED];
       ;;
       "down")
               export BRIGHTNESS=$$BRIGHTNESS-$SEED];
       ;;
       *)
               export BRIGHTNESS=1;
       ;;
esac
if  "$BRIGHTNESS" -gt "4295" ]; then
       export BRIGHTNESS=4295;
fi
if  "$BRIGHTNESS" -gt "0" ]; then
      echo $BRIGHTNESS > ~/.brightness
      sudo echo `printf '%d' $BRIGHTNESS` > /sys/class/backlight/intel_backlight/brightness
fi
if  "$BRIGHTNESS" -lt "0" ]; then
       echo "This makes your screen off";
fi

I’ve failed to assign this script to Fn+F5 (with key down) and Fn+F6 (with key up), so I’ve added it to Ctrl+(F5|F6) respectively.
Now I can regulate my screen brightness using my shortcuts. However, if you find a way how to assign a shortcut using Fn keys, or to fix this problem correctly (because I think it’s temporary workaround), I would greatly appreciate your feedback.

Thanks!

I confirm that with update to 13.1 all is working as expected. If anybody didn’t upgrade, then try to install 3.11.6-4 kernel.

You could try to add a newer kernel …
Packages