I have both the Toshiba Z830 and R850 for a couple of years now. On both, I’m using the current LTS versions of KUbuntu (at the time of writing this, 14.04). Although, I’m absolutely satisfied with them, there’s a little issue regarding the backlight:
On startup, the backlight works perfectly well. I can change the settings using FN+F6/F7 without any issues. However, after putting the device into standby and waking it up again, pressing said hotkeys shows the backlight percentage dialog, but does not change the brightness.
Because Ubuntu’s SSD reboots are pretty fast Iimply didn’t care about the issue for the past few years. However, out of curiosity, I successfully fixed the issue today.
On the root cause of most backlight issues:
Once I read through the forums I noticed that although this issue is related to the
toshiba_acpi driver, a similar issue occurs with other notebook brands (like Thinkpad) as well.
The Linux/Xorg combo supports several screens at once and therefore needs to support multiple backlight device drivers to be active concurrently.
One can show the currently active drivers using sysfs as shown here:
uli@uli-z830 ~ % ls /sys/class/backlight intel_backlight toshiba
The issue now is that the software that handles FN+F6/F7 inputs (eventually they seem to be redirected to XRandR) doesn’t inherently know the correct device to set the backlight.
As discussed on the Debian mailing list, there is a rather simple ruleset for selecting the correct backlight driver in Xorg.
When the backlight for my Toshiba hardware can’t be changed using the hotkeys, it’s possible to set the screen brightness using (root permissions required!)
root@uli-z830 ~ # echo 2000 > /sys/class/backlight/intel_backlight/brightness
2000 is — in this case — a value for a medium brightness. The range of valid values is driver-specific, however the minimum value is always
0 whereas the maximum value is always the one listed in
/sys/class/backlight/intel_backlight/max_brightness (of course, you might need to replace
intel_backlight with the name of your driver if you intend to change the brightness of a different background driver).
In the case of Toshiba notebooks, the rulesets of the software handling the hotkeys recognize either
toshiba (see below for the difference between those two) as default. However,
intel_backlight would be the correct one to use.
Although the people on the Debian mailing list discussed where to solve this, with KUbuntu 1.40 and a vanilla (self-compiled) 3.16-rc5 kernel it doesn’t work out of the box.
By default (i.e. on a fresh installation) there seems to be only the
acpi_video backlight driver. If I follow the numerous suggestion on the forum or on LinLap.com’s Z830 page and add
acpi_backlight=vendor to the GRUB2 boot command line (you can verify it worked by using
cat /proc/cmdline), that alone doesn’t work.
The central question therefore is: Where can I change the default backlight driver to use
Solving the issue:
Step 1: Fix the GRUB2 command line
EDIT: This is step is not strictly neccessary, however it is recommended.
Although I’m not sure if this is strictly neccessary to solve the underlying issue, I recommend changing the GRUB2 commandline as suggested on LinLap.com.
Currently, I use the following GRUB2 configuration (only the changed line is shown):
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop acpi_osi=Linux acpi_backlight=vendor pcie_aspm=force i915.i915_enable_rc6=1 i915.lvds_downclock=1"
elevator=noop changes the default IO scheduler, the other options deal with the ACPI backlight stuff and (according to LinLap.com) increase the Z830 battery life. I have not attempted verifying the battery life is improved, as I already have an excellent battery life on Linux.
Step 2: Creating xorg.conf
Even if they might work for others, the fix regarding
/etc/pm/sleep.d/restore_brightness suggested on LinLap.com did not work for me.
The excellent ArchLinux Backlight wiki page suggests to set the Backlight option in
/etc/X11/xorg.conf. However, this file does not exist on recent Ubuntu releases. If it exists in your Linux distribution, you can skip this step.
First, you need to login as root to a console that is not running inside X11 (e.g. by using
Ctrl+Alt+F1). After stopping X11 (I’m assuming you’re using
kdm as display manager — if you’re not, just replace it e.g. with
lightdm)we will create
/root and then move it to
uli@uli-z830 ~ # X -configure #Creates /root/xorg.conf.new uli@uli-z830 ~ # mv /root/xorg.conf.new /etc/X11/xorg.conf
If this should in any way break your display manager (i.e.
service kdm start does not work), just delete
Step 3: Modifying /etc/xorg.conf
/etc/X11/xorg.conf using your preferred editor and find the
Look for the
Driver clause in said section. Change it to
In some cases, it might be
intel already, but for my Z830 notebook it was
modeswitch being used as driver, the
Backlight option we’ll add will not be recognized. On my R850 however,
intel was already set.
After that you’ll need to add the backlight option line:
Option "Backlight" "intel_backlight"
The position of this line inside the driver section does not really matter — I placed it directly above the
After doing that, you’ll only need to restart your display manager (e.g.
service kdm start) (or just reboot if you’re lazy). This should solve all backlight issues.
Besides making it possible for me to use the backlight control hotkeys even after waking up from a standby, I now not only have 7 different backlight settings but 10 (which can be selected using the hotkeys) or more than 4000 (which can be selected by writing a value to
Here’s my full working
/etc/X11/xorg.conf for my Z830 notebook for further reference:
Section "ServerLayout" Identifier "X.org Configured" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" EndSection Section "Files" ModulePath "/usr/lib/xorg/modules" FontPath "/usr/share/fonts/X11/misc" FontPath "/usr/share/fonts/X11/cyrillic" FontPath "/usr/share/fonts/X11/100dpi/:unscaled" FontPath "/usr/share/fonts/X11/75dpi/:unscaled" FontPath "/usr/share/fonts/X11/Type1" FontPath "/usr/share/fonts/X11/100dpi" FontPath "/usr/share/fonts/X11/75dpi" FontPath "built-ins" EndSection Section "Module" Load "glx" EndSection Section "InputDevice" Identifier "Keyboard0" Driver "kbd" EndSection Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/input/mice" Option "ZAxisMapping" "4 5 6 7" EndSection Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Monitor Model" EndSection Section "Device" ### Available Driver options are:- ### Values: <i>: integer, <f>: float, <bool>: "True"/"False", ### <string>: "String", <freq>: "<f> Hz/kHz/MHz", ### <percent>: "<f>%" ### [arg]: arg optional #Option "SWcursor" # [<bool>] #Option "kmsdev" # <str> #Option "ShadowFB" # [<bool>] Option "Backlight" "intel_backlight" Identifier "Card0" Driver "intel" BusID "PCI:0:2:0" EndSection Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" SubSection "Display" Viewport 0 0 Depth 1 EndSubSection SubSection "Display" Viewport 0 0 Depth 4 EndSubSection SubSection "Display" Viewport 0 0 Depth 8 EndSubSection SubSection "Display" Viewport 0 0 Depth 15 EndSubSection SubSection "Display" Viewport 0 0 Depth 16 EndSubSection SubSection "Display" Viewport 0 0 Depth 24 EndSubSection EndSection