{{note | Since kernel 3.7.3 screen brightness keys are working out of the box (with boot parameter acpi_osi&#61;"!Windows 2012" - depending on the bootloader, it might be necessary to escape the doublequotes.), so this section is legacy and will soon be moved }}

Screen Brightness keymaps ({{keypress|Fn+F5}}, {{keypress|Fn+F6}}) does not work. It means the system does not get any keymap when the key combination is pressed. You get two options here :

Screen Brightness keymaps ({{keypress|Fn+F5}}, {{keypress|Fn+F6}}) does not work. It means the system does not get any keymap when the key combination is pressed. You get two options here :

Line 286:

Line 287:

notify-send "Keyboard brightness already at zero"

notify-send "Keyboard brightness already at zero"

fi

fi

+

+

==== Automatic Backlight Control ====

+

This C program will automatically turn off the backlight after a given idle time, and turn it on proportionally to the screen brightness. Written for Asus N56DP but will probably work here as well. Please email me if not. Note that you must run it as root, or if using some other user, give that user write permission to the backlight brightness file. This program works in plain tty mode as well as in X, but if you're using X you must start the X server first before starting this program, otherwise the X server will hang.

{{Tip|Multifinger taps: Two finger for middle click; three fingers for right click.}}

{{Tip|Multifinger taps: Two finger for middle click; three fingers for right click.}}

+

+

=== Multitouch gestures ===

+

To enable multitouch gestures like those under Windows, one can install {{AUR|touchegg}} from the AUR. Using {{ic|touchegg}} will require disabling some input-handling that is done by the synaptics input driver. Edit your {{ic|/etc/X11/xorg.conf.d/10-synaptics.conf}}

+

+

Section "InputClass"

+

Identifier "touchpad catchall"

+

Driver "synaptics"

+

MatchIsTouchpad "on"

+

MatchDevicePath "/dev/input/event*"

+

Option "TapButton1" "1"

+

Option "TapButton2" "0"

+

Option "TapButton3" "0"

+

Option "ClickFinger2" "0"

+

Option "ClickFinger3" "0"

+

Option "HorizTwoFingerScroll" "0"

+

Option "VertTwoFingerScroll" "0"

+

Option "ClickPad" "true"

+

Option "EmulateMidButtonTime" "0"

+

Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0"

+

EndSection

+

+

An alternative to X.org configuration files is to use the {{ic|synclient}} command within the {{ic|.xinitrc}} script. This method will limit changes to your desktop environment.

{{ic|touchegg}} will need to be autostarted for multitouch gestures to be activated. This can be done with {{ic|touchegg &}} in your {{ic|.xinitrc}}, or using the autostart/startup applications functionality of your desktop environment. {{ic|~/.config/touchegg/touchegg.conf}} can then be configured as necessary.

+

+

=== Multitouch gestures in Gnome 3 ===

+

GNOME 3's gnome-shell does its own mouse-handling, which can interfere with synaptics and touchegg settings unless the appropriate plugin is disabled.

+

+

gsettings set org.gnome.settings-daemon.plugins.mouse active false

+

+

Note that disabling this plugin will cause the the current settings within the Mouse & Touchpad section of System Settings to be ignored.

=== Disable Touchpad While Typing ===

=== Disable Touchpad While Typing ===

Line 329:

Line 439:

====PCI====

====PCI====

−

This is output of lscpci -nnn -k

+

This is output of lspci -nnn -k

{| class="wikitable" border="1" cellpadding="5" cellspacing="0"

{| class="wikitable" border="1" cellpadding="5" cellspacing="0"

Line 481:

Line 591:

So, net/net, there's no real issue.

So, net/net, there's no real issue.

+

+

====Issue with USB and Laptop_Mode_Tools====

+

+

USB mouse problems and hotplug does not working in some cases with messages in dmesg like:

The solution is to set "CONTROL_USB_AUTOSUSPEND" in /etc/laptop-mode/conf.d/usb-autosuspend.conf to 1 and having a long "AUTOSUSPEND_TIMEOUT"

== Random kernel panics on boot ==

== Random kernel panics on boot ==

Line 495:

Line 614:

This appears to avoid whatever race condition conflict that causes the kernel to panic on boot, but if you're still having the same issue, try removing 'modprobe btusb' from /etc/rc.local to avoid the module completely.

This appears to avoid whatever race condition conflict that causes the kernel to panic on boot, but if you're still having the same issue, try removing 'modprobe btusb' from /etc/rc.local to avoid the module completely.

+

+

==BIOS Version Issues==

+

+

It seems that updating the BIOS to versions 215 and higher causes issues with ACPI handling of the battery charge levels. In particular it seems that one cannot charge the battery beyond 91%-93%. The issue does not seem to be present in Windows however. For further details please see the forum thread [https://bbs.archlinux.org/viewtopic.php?pid=1211033#p1211033 here]. The most up to date BIOS version without any issues is 212. Unless it's absolutely necessary, refrain from updating your BIOS.

Boot from USB medium

Press Template:Keypress to get into the boot menu. If the USB bootable device is not listed, enter the configuration menu and directly press Template:Keypress to save. Press Template:Keypress again on reboot: This time the USB bootable device should appear in the menu.

Select 'Boot Arch Linux (x86_64)" and press Template:Keypress. The installation system will be booted and you will end up with a terminal.

Kernel Parameters

These kernel parameters offer some speed optimizations and longer battery life. It is recommended to enable them. To add kernel paramaters to GRUB2 you have to edit /etc/default/grub and add them to the GRUB_CMDLINE_LINUX_DEFAULT line.

Function keys

Note: A working keymap means that there is some output in xev when the key combination is pressed OR that the functionality is built in and "just works". It does not means that the keymap is linked to the functionality. For that it is often necessary to add a keyboard shortcut by the method of your choice or to use a desktop shell with built-in shortcut support for the keycode in question. For some of the keys the function operates on a BIOS level and no shortcut is needed.

This table shows the function keys, their intended function, what keycode (if any) X recognizes and whether the function key operates at the BIOS level or if it needs a shortcut.

Screen backlight

Note: Since kernel 3.7.3 screen brightness keys are working out of the box (with boot parameter acpi_osi="!Windows 2012" - depending on the bootloader, it might be necessary to escape the doublequotes.), so this section is legacy and will soon be moved

Screen Brightness keymaps (Template:Keypress, Template:Keypress) does not work. It means the system does not get any keymap when the key combination is pressed. You get two options here :

Screen backlight fix

Warning: This is highly experimental. It works for the UX32VD with bios 2.06, no guarantee that it works for different configurations.

First off, this method requires that you know what you are doing (although there are good tutorials anyway), and needs a little bit patience. It also requires that you have the hexidecimal dump and undump package xxd available in the AUR: https://aur.archlinux.org/packages.php?ID=35311 .

#!/bin/bash
#
# Asus UX32VD acpi backlight fix
#
# Copyright(C) 2012 Eugen Dahm <eugen.dahm@gmail.com>.
#
# fix is based on a proposed bugfix posted on <[url]https://bugs.freedesktop.org/show_bug.cgi?id=45452[/url]>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# Asus UX32VD acpi backlight fix
# Disclaimer!!!! not recommended to use if laptop is not the Asus UX32VD\
# probably works with other models too, but the didl and cadl offset needs to be extracted
# from the dsdt
# Tested with bios 2.06
# IGDM_BASE has to be determined for each notebook
# IGDM is the operation region (\_SB_.PCI0.GFX0.IGDM) containing the CADL/DIDL fields
# \aslb is a named field containing the base-address of the IGDM region
# this address depends on the installed ram
# how to get the address:
# - git clone git://github.com/Bumblebee-Project/acpi_call.git
# - make
# - load module with insmod or copy to /lib/modules/.... and modprobe
# - echo '\aslb' > /proc/acpi/call
# - cat /proc/acpi/call
# - this is the IGDM base address - fill in below
IGDM_BASE=0xBE8B7018
DIDL_OFFSET=0x120
CADL_OFFSET=0x160
# this basically copies the values of the initialized fields DIDL-DDL8 in the IGDM opregion and initializes CADL-CAL8 with it
# CADL-CAL8 are fields, telling the bios that a screen or something is connected (this is a bit speculation - check
# <[url]https://bugs.freedesktop.org/show_bug.cgi?id=45452[/url]> for more
# if interested, disasselbe the dsdt to understand, why no notifyevent gets thrown, when CADL isn't initialized
# (hint: _Q0E/_Q0F are the backlight methods on the UX32VD)
dd if=/dev/mem skip=$(( $IGDM_BASE + $DIDL_OFFSET )) count=32 bs=1 | xxd | xxd -r | dd of=/dev/mem bs=1 seek=$(( $IGDM_BASE + $CADL_OFFSET )) count=32

This script still needs to be adjusted to your notebook configuration (it uses a memory address which strongly depends on the amount of installed system memory.

load module acpi_call.ko.gz with insmod or copy to /lib/modules/.... and modprobe

echo '\aslb' > /proc/acpi/call

cat /proc/acpi/call

this is the IGDM base address - initialize the IGDM_BASE variable with this value in the script

Initialize your bios with this script on boot :

# echo "/usr/local/share/backlightfix" >> /etc/rc.local

Execute the script and hope the backlight buttons work afterwards. If they don't you probably have to disasselbe the dsdt for yourself, because you have to adjust the following 2 variables in the script:

DIDL_OFFSET=0x120
CADL_OFFSET=0x160

These are the offsets on the Asus UX32VD bios version 2.06. Try google to find a tutorial how to disassemble the dsdt.

Getting the DIDL and CADL offsets

Now comes the funny part:

open your disassembled dsdt. The should have the filename dsdt.dsl.

find the operationregion IGBM. It should have a Field statement below, and probably looks something like this:

This specifies some variables in this IGDM field (for me, they look similar to a c struct, except that you don't need to give the size of each element in a struct).
The numbers are the size for each element in bit.

You must add those field sizes until you reach the DIDL variable. With the UX32VD the DIDL offset is easy, because of this statement:

..
Offset (0x120),
DIDL, 32,

..
Don't know exactly why they use the Offset statement, since this is somewhat redundant. It tells you that the following element has the offset 0x120.

Since I thought it is obvious what this statement does, I didn't bother to look it up in the dsl language specification. I thought it tells the bios that the following
variable starts with an offset of 0x120 bytes relative to the previous element, but I was wrong. It basically tells you/bios that the following variable starts with an
offset of 0x120 relative to the beginning of the opregion (in this case its completely unnecessary).

Now the only thing left is the CADL offset. Add the numbers starting from DIDL until you reach CADL and add it to your previous offset. This should be the 2nd needed offset.

After updating both offset variables in the script and executing it again, the backlight should now work (no guarantee).

Automatic Backlight Control

This C program will automatically turn off the backlight after a given idle time, and turn it on proportionally to the screen brightness. Written for Asus N56DP but will probably work here as well. Please email me if not. Note that you must run it as root, or if using some other user, give that user write permission to the backlight brightness file. This program works in plain tty mode as well as in X, but if you're using X you must start the X server first before starting this program, otherwise the X server will hang.
Hyc (talk) 13:24, 16 January 2013 (UTC)

Solid State Drive

Touchpad

Tip: Multifinger taps: Two finger for middle click; three fingers for right click.

Multitouch gestures

To enable multitouch gestures like those under Windows, one can install toucheggAUR from the AUR. Using touchegg will require disabling some input-handling that is done by the synaptics input driver. Edit your /etc/X11/xorg.conf.d/10-synaptics.conf

touchegg will need to be autostarted for multitouch gestures to be activated. This can be done with touchegg & in your .xinitrc, or using the autostart/startup applications functionality of your desktop environment. ~/.config/touchegg/touchegg.conf can then be configured as necessary.

Multitouch gestures in Gnome 3

GNOME 3's gnome-shell does its own mouse-handling, which can interfere with synaptics and touchegg settings unless the appropriate plugin is disabled.

gsettings set org.gnome.settings-daemon.plugins.mouse active false

Note that disabling this plugin will cause the the current settings within the Mouse & Touchpad section of System Settings to be ignored.

Disable Touchpad While Typing

One of the criticisms this laptop gets (see reviews at Amazon) is that the placement of the touchpad results in frequent touchpad brushing during typing. You should use whatever touchpad disabling method you prefer. See Touchpad_Synaptics#Disable_Trackpad_while_Typing .

HDMI plugged at boot

There seems to be an issue whereby having an HDMI device plugged in at boot results in the screens being switched and also the laptop screen not coming on. To make this more bearable you can automate switching HDMI on with the following udev rule and script:

The MEI driver speaks to or through the "Local Manageability Service" or LMS. The LMS driver is available here. Note that with GCC 4.7.2-2, the driver will refuse to compile. I was able to convince it to compile by:

adding "#include <unistd.h>" to src/tools/ATVersion.cpp

adding "#include <stdio.h>" to src/tools/ATNetworkTool.cpp

It then installs the driver file lms in /usr/local/sbin and the init.d-type daemon file lms in /etc/init.d/.

rdrand

The i7 Core CPU has an on-chip random number generator, rdrand, code named "Bull Mountain". It appears that since 3.2, this is used as a source for /dev/urandom. It is also used as a randomness source by rng-tools version 4.

In contrast to other hardware random number generators, rdrand does not create a character device in /dev. However, rngd version 4 does appear to detect and use it.

Activating the watchdog under systemd is trivial, as systemd author Lennart Poettering explains in this blog post.

All you do is go into /etc/systemd/system.conf, uncomment the RuntimeWatchdogSec=0 line and change zero to how long the watchdog should go without receiving a ping before it reboots the system. I used 30s, which is the default setting for iTCO_wdt and seemed sane.

To fix the issue, blacklist the 'btusb' module on the next boot by running:

sudo echo "blacklist btusb" > /etc/modprobe.d/disable_btusb.conf

Then use rc.local to load it at the end of the boot process by running:

sudo echo "modprobe btusb" >> /etc/rc.local

This appears to avoid whatever race condition conflict that causes the kernel to panic on boot, but if you're still having the same issue, try removing 'modprobe btusb' from /etc/rc.local to avoid the module completely.

BIOS Version Issues

It seems that updating the BIOS to versions 215 and higher causes issues with ACPI handling of the battery charge levels. In particular it seems that one cannot charge the battery beyond 91%-93%. The issue does not seem to be present in Windows however. For further details please see the forum thread here. The most up to date BIOS version without any issues is 212. Unless it's absolutely necessary, refrain from updating your BIOS.