You are not logged in.
Hello,
After 4 years on Ubuntu, I decided to try Arch Linux. Almost all works fine but the brightness. I can't modify it. With Ubuntu, the combination Fn + brightness up/down does not works but I resolved the problem with xbacklight. So I tried it on Arch and xbacklight doesn't work ! So I searched through the wiki and forum and tried "light" from AUR. It doesn't work. I saw this post https://bbs.archlinux.org/viewtopic.php?id=158775 but I don't understand where to change "acpi_backlight" or "acpi_osi" parameters.
Can anyone help me ?
Thanks in advance !
EDIT : of course, I tried to run xbacklight and light with sudo
Last edited by AlVer (2013-03-24 20:22:08)
Offline
Arch usually does pretty well with detecting special functions on keyboards. You can try using the keyboard without xbacklight if xbacklight is not working. From what I can tell, acpi_backlight and acpi_osi are terminal parameters, so you will need to change them in the terminal. However, I do not have any values for either parameter, so it might be wrong. Read the man page for "export" to become more familiar with setting variable values from the terminal. For a more brief overview, see this page. To set the variable value, for example, just type (without quotes) "export acpi_backlight=VALUE_YOU_WANT". If you mess up, just run (again, without quotes) "unset VARIABLE_YOU_JUST_SET". Be sure to replace "VALUE_YOU_WANT" and "VARIABLE_YOU_JUST_SET" with your actual values.
Offline
Thank you for your response.
I've tried to use combination Fn + brightness up/down without xbacklight and it doesn't work.
On forum posts and on the wiki page about backlight, it said, for exemple to "boot with the acpi_backlight=vendor parameter" or "acpi_osi='!Windows 2012' in grub". How can I do that ? Moreover, I use the same Grub for Ubuntu and Arch (installed from Ubuntu), is that a problem for this solution ?
I don't understand why xbacklight works very well with Ubuntu and not with Arch...
Offline
I can't get my screen brightness to change either. It was the same story with the last distro I was using(poobuntu), so I'm assuming it has something to do with my hardware. I've tried everything.
To answer your question about the boot options.
Open up /etc/default/grub, you'll need root privs to edit.
Goto the line:
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
and add the parameters
GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_osi=Linux acpi_backlight=vendor"
Save.
And then issue the command:
grub-mkconfig -o /boot/grub/grub.cfg
Again, you'll need root privs.
Reboot
???
Profit?
Hope this works for you. I know how annoying it is to have a bright-ass light shinging in your face all the time. :\
Last edited by MagicSkyFairy (2013-03-23 14:48:28)
I have wasted atleast a second of your time by making you read my signature.
Offline
Hello,
After 4 years on Ubuntu, I decided to try Arch Linux. Almost all works fine but the brightness. I can't modify it. With Ubuntu, the combination Fn + brightness up/down does not works but I resolved the problem with xbacklight. So I tried it on Arch and xbacklight doesn't work ! So I searched through the wiki and forum and tried "light" from AUR. It doesn't work. I saw this post https://bbs.archlinux.org/viewtopic.php?id=158775 but I don't understand where to change "acpi_backlight" or "acpi_osi" parameters.
Can anyone help me ?
Thanks in advance !
EDIT : of course, I tried to run xbacklight and light with sudo
It may be an idea to have a look at what is in /sys/class/backlight/
There may be a single directory or more than one.
In one of my laptops I have for example:
ls /sys/class/backlight/dell_backlight/
actual_brightness bl_power brightness device max_brightness power subsystem type uevent
Having a look at the values of two specific files in that dir gives in my case:
cat /sys/class/backlight/dell_backlight/max_brightness
7
cat /sys/class/backlight/dell_backlight/brightness
7
If you want to reduce the brightness slightly then you can do for example
echo 6 > /sys/class/backlight/dell_backlight/brightness
In your case you need to check the name of the directory and use that instead of dell_backlight/ as necessary (i.e. do ls /sys/class/backlight/ and find the directory name there) and this allows you to build a small bash script to execute to change the brightness. The value in the brightness variable needs to be no more than whatever is in the max_brightness variable. I have another machine where the max_brightness variable is something around 1458 so the numbers vary depending on the hardware.
You can then put suitable scripts into the power control settings area in KDE eg for running on battery or ac and choose the brightness levels accordingly - and presumably can run scripts for other window managers/desktops too.
Perhaps this approach may help you get some control whilst you look for other solutions? Oh by the way the acpi brightness only works if acpi is running - not everyone has it installed and running. Hope this helps.
Last edited by mcloaked (2013-03-23 15:37:07)
Mike C
Offline
I can't get my screen brightness to change either. It was the same story with the last distro I was using(poobuntu), so I'm assuming it has something to do with my hardware. I've tried everything.
To answer your question about the boot options.
Open up /etc/default/grub, you'll need root privs to edit.
Goto the line:
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
and add the parameters
GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_osi=Linux acpi_backlight=vendor"
Save.
And then issue the command:
grub-mkconfig -o /boot/grub/grub.cfg
Again, you'll need root privs.
Reboot
???
Profit?
Hope this works for you. I know how annoying it is to have a bright-ass light shinging in your face all the time. :\
@OP are you using Intel graphics? This has been a recent issue with the latest kernels. You might have found this out if you had searched through the forums even a little.
The reason why I quote MagicSkyFairy above is that this is correct, you need to edit the kernel command line, which is what gives the kernel various boot options from the bootloader.
BUT, you should probably not be using acpi_backlight=vendor, as this sets of some random thermal warnings telling you to report it to the relevant mailing list. Instead, use acpi_osi="!Windows 2012" to tell acpi that this is not that particular operating system.
As far as how you would go about including quotes in a quoted string in /etc/defaults/grub... you are going to have to reference the grub documentation for that... I don't use such things (too many features I won't ever use... read bloat).
Offline
Thank you for your response.
I've tried to use combination Fn + brightness up/down without xbacklight and it doesn't work.
On forum posts and on the wiki page about backlight, it said, for exemple to "boot with the acpi_backlight=vendor parameter" or "acpi_osi='!Windows 2012' in grub". How can I do that ? Moreover, I use the same Grub for Ubuntu and Arch (installed from Ubuntu), is that a problem for this solution ?
I don't understand why xbacklight works very well with Ubuntu and not with Arch...
I just remembered something that just might be relevant. I was tearing my hair out with a Samsung laptop which gave good brightness when on ac but so dim that I could hardly see the screen when on battery. Eventually out of desperation I went into the BIOS settings and found a brightness setting that was set to "Auto" - after changing it to ""User controlled" and rebooting I was able to control screen brightness without any further problem after that. So it may be worth checking if there is any similar BIOS setting in your machine?
Mike C
Offline
So,
Before, in my /etc/default/grub I had "GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=vendor". I changed it as MagicSkyFairy said, it doesn't work. After I changed for GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_osi=!Windows 2012 acpi_backlight=vendor", it doesn't work either. After that, I changed for GRUB_CMDLINE_LINUX_DEFAULT="quiet" and it works with my Ubuntu (I can use the Fn + brightness up/down combination, I couldn't do that before, I had to use the xbacklight command), but not with Arch Linux. So I wondered if it's because I use my Ubuntu's Grub to launch Arch Linux (I skipped the " Install and configure a bootloader" of the beginner's guide). Is it possible ?
I tried the mcloaked solution too (echo 6 > /sys/class/backlight/acpid_video0/brightness) . First, I don't have the permission to do that, even with sudo. So I tried as root. It works only after I reboot the computer, which is not very useful.
Strange thing, it's /sys/class/backlight/acpid_video0/brightness with Arch and /sys/class/backlight/dell_backlight/brightness with Ubuntu...
Finally, I looked into my BIOS option and there's no brightness settings in it.
Any other ideas ?
Thank you very much for all your responses.
Offline
I tried all this stuff too with no luck.
Do you have the open source or propriatary drives installed?
The open source ones are good, but they aren't as good as the closed source ones.
Last edited by MagicSkyFairy (2013-03-23 17:21:51)
I have wasted atleast a second of your time by making you read my signature.
Offline
So,
Before, in my /etc/default/grub I had "GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=vendor". I changed it as MagicSkyFairy said, it doesn't work. After I changed for GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_osi=!Windows 2012 acpi_backlight=vendor", it doesn't work either. After that, I changed for GRUB_CMDLINE_LINUX_DEFAULT="quiet" and it works with my Ubuntu (I can use the Fn + brightness up/down combination, I couldn't do that before, I had to use the xbacklight command), but not with Arch Linux. So I wondered if it's because I use my Ubuntu's Grub to launch Arch Linux (I skipped the " Install and configure a bootloader" of the beginner's guide). Is it possible ?
I tried the mcloaked solution too (echo 6 > /sys/class/backlight/acpid_video0/brightness) . First, I don't have the permission to do that, even with sudo. So I tried as root. It works only after I reboot the computer, which is not very useful.
Strange thing, it's /sys/class/backlight/acpid_video0/brightness with Arch and /sys/class/backlight/dell_backlight/brightness with Ubuntu...Finally, I looked into my BIOS option and there's no brightness settings in it.
Any other ideas ?
Thank you very much for all your responses.
To help with doing things as user - if your laptop just has a single user apart from root then you can (as root) use the visudo command to edit the /etc/sudoers file - uncomment the line which allows members of the wheel group to run any command without a password - and save the changes. Then add the user to the wheel group. Then the user can run any command (prefixed with sudo). Of course if you would rather not allow the user to run "any" command prefixing it with sudo - then you can adapt the sudo facility to allow the user only to run specific commands - you will need to look up how to do that of course. You can set up your own scriptlet as a command in a newly created "bin" directory in the user area, and then allow the user to run only that command. If that scriptlet does brightness changes and nothing else - by say using "chbright x" where chbright is a file with execute permissions in /home/username/bin/ then that is a way round this restriction - of course there are other ways to achieve this also I guess.
Also it is possible to execute the brightness command before logging in - you can get the system to execute commands after the system boots but before login.
I don't know why the Ubuntu and Arch installations differ but I guess if the initialisation systems are different, or there is a different kernel, or if other key components are different versions then one or other can set up the /sys area differently though I am no expert on that! However maybe the notes above will help?
Last edited by mcloaked (2013-03-23 17:20:47)
Mike C
Offline
AlVer wrote:So,
Before, in my /etc/default/grub I had "GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=vendor". I changed it as MagicSkyFairy said, it doesn't work. After I changed for GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_osi=!Windows 2012 acpi_backlight=vendor", it doesn't work either. After that, I changed for GRUB_CMDLINE_LINUX_DEFAULT="quiet" and it works with my Ubuntu (I can use the Fn + brightness up/down combination, I couldn't do that before, I had to use the xbacklight command), but not with Arch Linux. So I wondered if it's because I use my Ubuntu's Grub to launch Arch Linux (I skipped the " Install and configure a bootloader" of the beginner's guide). Is it possible ?
I tried the mcloaked solution too (echo 6 > /sys/class/backlight/acpid_video0/brightness) . First, I don't have the permission to do that, even with sudo. So I tried as root. It works only after I reboot the computer, which is not very useful.
Strange thing, it's /sys/class/backlight/acpid_video0/brightness with Arch and /sys/class/backlight/dell_backlight/brightness with Ubuntu...Finally, I looked into my BIOS option and there's no brightness settings in it.
Any other ideas ?
Thank you very much for all your responses.
To help with doing things as user - if your laptop just has a single user apart from root then you can (as root) use the visudo command to edit the /etc/sudoers file - uncomment the line which allows members of the wheel group to run any command without a password - and save the changes. Then add the user to the wheel group. Then the user can run any command (prefixed with sudo). Of course if you would rather not allow the user to run "any" command prefixing it with sudo - then you can adapt the sudo facility to allow the user only to run specific commands - you will need to look up how to do that of course. You can set up your own scriptlet as a command in a newly created "bin" directory in the user area, and then allow the user to run only that command. If that scriptlet does brightness changes and nothing else - by say using "chbright x" where chbright is a file with execute permissions in /home/username/bin/ then that is a way round this restriction - of course there are other ways to achieve this also I guess. If you do this then you need to remember that in the scriptlet file the command has a line "sudo echo 6 > /sys/class/backlight/dell_backlight/brightness " to put the new value into the variable as the newly allowed user and you choose the value to use within the script (could be fed from an input parameter to the scriptlet if it is a bash file for example as $1).
Also it is possible to execute the brightness command before logging in - you can get the system to execute commands after the system boots but before login.
I don't know why the Ubuntu and Arch installations differ but I guess if the initialisation systems are different, or there is a different kernel, or if other key components are different versions then one or other can set up the /sys area differently though I am no expert on that! However maybe the notes above will help?
Last edited by mcloaked (2013-03-23 17:26:24)
Mike C
Offline
You have GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_osi=!Windows 2012 acpi_backlight=vendor" and you don't see a problem with that? First of all you don't need to have acpi_osi= as well as acpi_backlight= as it is one or the other. That is not where the problem should be obvious though.
When you have acpi_osi=!Windows 2012 just like that without quotes, how does the kernel know that the 2012 is part of the acpi_osi=!Windows? That is why it was expressed to you in quotes. The problem is that you will now have quotes inside quotes. So the space either needs to be delimited, or the string needs to be in quotes.
An example of this is how rEFInd handles this. In the documentation, Rod indicates that in order to have a quoted string on the kernel command line it should be double double-quotes. So it would be something like this for rEFInd
options "root=/dev/sda3 ro ""acpi_osi=!Windows 2012"" resume=/dev/sda4"
But, as I expressed earlier, I am not a grub user, so I am not sure how grub handles this. But in any case, I would not expect what you currently have tried to work under any circumstances anyway. So the proposed fixes are not necessarily wrong.
You can tank microsoft for being moronic enough to label their OS with a space in the string.
Offline
I've tried with the double quotes, it doesn't work.
So, I installed grub from Arch instead of that of Ubuntu. I tried again all solution suggested here and none works.
I also tried to put in /etc/default/grub :
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux acpi_backlight=vendor splash"
and
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=""!Windows 2012"" acpi_backlight=vendor splash"
and it doesn't work either.
I use the nvidia proprietary drivers.
Other ideas ?
Thank you
EDIT : Strange thing, the combination Fn + brightness up/down works on the grub "menu" (when you can choose the OS/Kernel to boot)
Last edited by AlVer (2013-03-24 10:07:44)
Offline
Try "quiet splash acpi_osi='!Windows 2012' acpi_backlight=vendor splash" but I can't promise anything, since I use syslinux(it is a nice little bootloader, maybe try it, it is really easy to configure)
Do you have acpi and acpid installed? Run "pacman -Q|grep acpi" and you should see acpi and acpid.
Do "systemctl status acpid.service", is it running and everything OK?
Edit: also try acpi_osi=Linux
Last edited by plam (2013-03-24 15:38:49)
Offline
Yes, acpi and acpid are installed and acpid.service is running. I've tried to edit the /etc/default/grub file like you said and it doesn't work.
syslinux could it solve my problem ?
Offline
Try "quiet splash acpi_osi='!Windows 2012' acpi_backlight=vendor splash" but I can't promise anything, since I use syslinux(it is a nice little bootloader, maybe try it, it is really easy to configure)
I am not sure how each particular bootloader handles this, but I do know that in order for the acpi_osi="!Windows 2012" it has to be double quotes instead of singles. With elilo (and presumably lilo because it is configured the same way), you can simply escape/delimit the double quotes so that they are not handled in a special way. So my particular elilo configuration has this in it:
<snip>
image=/EFI/arch/vmlinuz-linux.efi
label=arch
append="libahci.ignore_sss=1 quiet gpt add_efi_memmap acpi_osi=\"!Windows 2012\" "
root=/dev/mapper/volgrp0-root_arch
initrd=/EFI/arch/initramfs-linux.img
<snip>
I added the space between the enclosing quote and the escaped quote for the sake of clarity, but it is not necessary. Whether grub, syslinux, etc. handle this is the same way, I don't know. I do know that rEFInd simply has you use double quotes twice, so that leads me to think that there is not any real standard or consistency between boot loaders and boot managers.
Offline
syslinux could it solve my problem ?
If the only reason of the problem is that you can't pass double quotes to grub, then I think it will, but we don't really know that.
In syslinux.cfg my entry for arch looks like this:
LABEL arch
MENU LABEL arch
LINUX ../vmlinuz-linux
APPEND root=/dev/sda1 ro acpi_osi="Linux" pcie_aspm=force i915.lvds_downclock=1 i915.i915_enable_fbc=1 elevator=noop
INITRD ../initramfs-linux.img
As you can see there are no quotes in the beginning and end of the line, so double quotes are OK in the parameters. Some other benefits of syslinux are: no need for extra partition if you use GPT; no need to issue any commands after you change /boot/syslinux/syslinux.cfg, just save the file and you changes take effect on the next reboot. I used to use grub, but I think that with GRUB2 things got unnecesarily complicated, and after some research I decided to use syslinux, as it is really KISS.
Offline
I too really like syslinux. I use UEFI these days, but syslinux has always been enjoyable to me due to its amazing simplicity. It reminds me of a super stripped down version 1 grub, which was way better in my opinion.
@plam, I'm not saying to change this if it is working, but in the sace of acpi_osi="Linux" you don't actually need the quotes.
Offline
Problem solved !!!
I created the file /etc/X11/xorg.conf.d/20-nvidia.conf. I put in this file the following lines :
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
Option "RegistryDwords" "EnableBrightnessControl=1"
EndSection
(see http://wiki.archlinux.fr/Nvidia ).
And now I can use xbacklight ! The combination Fn + brightness up/down doesn't work but I don't care.
Thank you all for your help !
Offline
Problem solved !!!
I created the file /etc/X11/xorg.conf.d/20-nvidia.conf. I put in this file the following lines :
Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" Option "RegistryDwords" "EnableBrightnessControl=1" EndSection
(see http://wiki.archlinux.fr/Nvidia ).
And now I can use xbacklight ! The combination Fn + brightness up/down doesn't work but I don't care.
Thank you all for your help !
Nice, I wonder if I can do the same thing with my amd card...
I've gotta rapair my junk right now, but I have one or two things I can try because of this thread. It's been annoying having this bright screen shining in my face in the middle of the night. -_-
Glad you solved it.
I have wasted atleast a second of your time by making you read my signature.
Offline