i ve got i Samsung X120, too.
My FN-Keys dont work. I installed samsung-tools via yaourt. Now i m able to switch on/off Bluetooth, Wlan, Backlight by pushing a button i have to chose. But not with pushing the FN key. How will i be able to adjust the brightness and loudness?
Can someone give me some support? Im not a Linux nerd
Thanks and regards!
]]>my backlight still won't work with Kernel 2.6.32. Trying to echo to /proc/acpi/video/IGPU/LCD0/brightness produces "Invalid Argument".
Meanwhile, is there maybe an easier way to get this to work, that doesn't require copying source from the Ubuntu kernel? Did someone make a package on aur for it?
I'm asking here since I was unable to find anything.
]]>The "repeating function key" problem will also be fixed in 2.6.32. This patch creates a new interface in /sys/devices/platform/i8042/serio0/force_release. You need input the keycodes of the keys that are getting "stuck" there.
Doesn't seem to help, running kernel 2.6.32. Xev still shows the keys getting stuck.
]]>But you still need to map the scancodes to keycodes first (apaige's post).
Then you can map the keycodes to keybindings, i.e. XF86Display, or to a script. For example, WLAN and Bluetooth can be turned on and off with the interfaces in /sys/class/rfkill/.
]]>Hope this will get mainline soon...
Greetings
diff -Naur linux-2.6.31/drivers/acpi/video.c linux-2.6.31-ubuntu/drivers/acpi/video.c
--- linux-2.6.31/drivers/acpi/video.c 2009-09-10 00:13:59.000000000 +0200
+++ linux-2.6.31-ubuntu/drivers/acpi/video.c 2009-10-16 16:04:02.000000000 +0200
@@ -603,6 +603,7 @@
unsigned long long *level)
{
acpi_status status = AE_OK;
+ int i;
if (device->cap._BQC || device->cap._BCQ) {
char *buf = device->cap._BQC ? "_BQC" : "_BCQ";
@@ -618,8 +619,15 @@
}
*level += bqc_offset_aml_bug_workaround;
- device->brightness->curr = *level;
- return 0;
+ for (i = 2; i < device->brightness->count; i++)
+ if (device->brightness->levels[i] == *level) {
+ device->brightness->curr = *level;
+ return 0;
+ }
+ /* BQC returned an invalid level. Stop using it. */
+ ACPI_WARNING((AE_INFO, "%s returned an invalid level",
+ buf));
+ device->cap._BQC = device->cap._BCQ = 0;
} else {
/* Fixme:
* should we return an error or ignore this failure?
@@ -870,7 +878,7 @@
br->flags._BCM_use_index = br->flags._BCL_use_index;
/* _BQC uses INDEX while _BCL uses VALUE in some laptops */
- br->curr = level_old = max_level;
+ br->curr = level = max_level;
if (!device->cap._BQC)
goto set_level;
@@ -892,15 +900,25 @@
br->flags._BQC_use_index = (level == max_level ? 0 : 1);
- if (!br->flags._BQC_use_index)
+ if (!br->flags._BQC_use_index) {
+ /*
+ * Set the backlight to the initial state.
+ * On some buggy laptops, _BQC returns an uninitialized value
+ * when invoked for the first time, i.e. level_old is invalid.
+ * set the backlight to max_level in this case
+ */
+ for (i = 2; i < br->count; i++)
+ if (level_old == br->levels[i])
+ level = level_old;
goto set_level;
+ }
if (br->flags._BCL_reversed)
level_old = (br->count - 1) - level_old;
- level_old = br->levels[level_old];
+ level = br->levels[level_old];
set_level:
- result = acpi_video_device_lcd_set_level(device, level_old);
+ result = acpi_video_device_lcd_set_level(device, level);
if (result)
goto out_free_levels;
@@ -1083,7 +1101,12 @@
*/
/* Does this device support video switching? */
- if (video->cap._DOS) {
+ if (video->cap._DOS || video->cap._DOD) {
+ if (!video->cap._DOS) {
+ printk(KERN_WARNING FW_BUG
+ "ACPI(%s) defines _DOD but not _DOS\n",
+ acpi_device_bid(video->device));
+ }
video->flags.multihead = 1;
status = 0;
}
diff -Naur linux-2.6.31/drivers/acpi/video_detect.c linux-2.6.31-ubuntu/drivers/acpi/video_detect.c
--- linux-2.6.31/drivers/acpi/video_detect.c 2009-09-10 00:13:59.000000000 +0200
+++ linux-2.6.31-ubuntu/drivers/acpi/video_detect.c 2009-10-16 16:04:02.000000000 +0200
@@ -82,7 +82,7 @@
return 0;
/* Does this device able to support video switching ? */
- if (ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOD", &h_dummy)) &&
+ if (ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOD", &h_dummy)) ||
ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOS", &h_dummy)))
video_caps |= ACPI_VIDEO_OUTPUT_SWITCHING;
I am running a custom kernel the whole time,
,tried to build the kernel with the Ubuntu 9.10 config, no change....
I've got a small data Server running Ubuntu 9.10, downloaded Ubuntu patched kernel sources for 2.6.31 and copied drivers/acpi/video.c and video_detect.c to the src folder of my Arch install and recompiled the kernel again, now after loading the video module, brightness is adjustable.
]]>Any other ideas ?
]]>lsmod : http://pastebin.com/m5e137b6f
zcat /proc/config.gz
gzip: /proc/config.gz: No such file or directory
cat /boot/config-2.6.31-14-generic : http://pastebin.com/m6aa658e4
]]>zcat /proc/config.gz
lsmod
There I can change the backlight. Got a /proc/acpi/video/IGPU/LCD0/brightness
When I echo there, backlight is adjustable.
With the gnome applet it´s also possible... just the FN Key are not working, but that´s not a big deal...
Any ideas, how to compare the systems in order to find the clue ?!
]]>Apaige, does your solution work on your netbook ? I tried as you said but
with no luck : no effect on brightness, and volume down doesn't work
anymore.
Nah, like I said, I have the same problem. My "solution" is only one step, that makes the Fn keys send a keycode.
- there seem to be a problem after the first click on one of these two keys, because the events repeat themselves indefinitely, until a click on another key
Same thing here, not sure why that is. I even disabled autorepeat for those keys with xset -r, but it doesn't seem to have much effect on those particular keys. Maybe it has something to do with the odd way the Fn key works on the N510 (being shared with the Menu key).
Finally : ok, keyboard shortcuts doesn't work (for the moment). But what about applets or command line ? This doesn't work either, as described by fiveseven...
None of those will work until there's a driver for controlling the backlight. Maybe in the next kernel version?
By the way, I forgot that you might have different keycodes because you bought the N510 in a different country. What I did was press all the Fn keys, then check out dmesg: I got a bunch of messages saying to run setkeycodes, along with the sets of codes to run it with. Remove the setkeycodes commands, reboot, and do that, you'll get the right codes.
]]>