Asus M50SV

Summary
What works completely:
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * - (acpid actions and events linked below for brighness, volume, mute and media keys)
 * - (with the asus-laptop kernel module and a light_sensor init script linked below)
 * Touchpad - (pointing works well and two-finger scrolling etc. works with x11-drivers/synaptics)
 * New mail and touchpad enable LEDs - (with the in-tree asus-laptop kernel module)

What doesn't work:


 * Dual-mode Touchpad - (No LED switch for the light under the touchpad as yet)

The Asus M50SN is a very similar model with more more RAM a bigger HDD and Blu-Ray, so probably has a similar level of support.

Audio
The audio card is an Intel HD Audio controller. lspci

The necessary kernel config is shown below.

In order to have the main speakers mute when headphones are plugged in, you must add the following to /etc/modprobe.d/alsa.

Then a "headphone" switch should show up in alsamixer.

lsmod

Video
The video card is a nVidia GeForce 9600M GS that work very well with uvesafb (from the kernel) and with the proprietary drivers version 169.09-r1 or greater.

lspci

Then your kernel line in grub.conf might look like:

SATA Controller
The SATA Controller is an Intel that work with the ahci kernel module. It is probably better to build this one directly into the kernel instead to build it as module. lspci

Ethernet controller
See this Sky2 guide.

Wireless controller
See this iwlwifi guide.

Fingerprint reader
The fingerprint reader is a USB device that are recognized as AuthenTec AES1610 from the libfprint. lsusb

At the time of this writing (Spring 2011), libfprint is in portage for ~amd64. You can also emerge fprint_demo to have an utility for testing the fingerprint reader and pam_fprint to use it as PAM module.

USB controller
The USB controller is used through the ehci_hcd and uhci_hcd kernel modules. lspci

There are no need for special configurations.

MMC/SD Card reader
The MMC/SD Card reader works perfectly with the kernel modules mmc_core and sdhci without any special configuration. lspci

Firewire
The Firewire controller works with the kernel modules ohci1394 and ieee1394. lspci

I tested it only with a DV Camera and the dvgrab software. I never tested it with an external HD box.

Bluetooth
The Bluetooth is a normal bluetooth USB adapter that can be connected/disconnected using the switch and the Fn+F2 hotkey and that works perfectly with the kernel modules bluetooth, hidp, rfcomm and l2cap. lsusb

Webcam
The webcam is a Syntek. lsusb The M50SV has a model that supports the USB Video Class, and has had kernel support since 2.6.26. If you are using a kernel older than that, you can use the driver. You must have Video for Linux enabled in your kernel to emerge this driver. The compiled module will be called uvcvideo.

After you load the either module you can test it with

And see if you get some action.

ACPI controller
Hotkeys come through ACPI, which is sometimes good, sometimes bad.

This installs handlers for lid switch, battery and ac-adapter that work well. Gnome-power-manager gets the LCD on/off button.

I've written ACPI actions and events for the brightness buttons, volume, mute and music control (play/pause/stop/next/prev). The brightness action checks whether the light sensor is enabled and adjusts the correct brightness level appropriately. I've also included a light_sensor init script in the tarball to remember the brightness state from the last reboot. Volume and mute use alsactl. The media keys try to use mpc if mpd is running or audtool if audacious is running -- you want to run these as a user, so make sure you edit /etc/acpi/actions/musickeys.sh and put the user you want them to run as in. These also need wrapper scripts that are installed in /usr/local/bin.

http://www.it.usyd.edu.au/~tapted/files/m50sv_acpi.tar.gz tar -ztf m50sv_acpi.tar.gz

LCD auto-brightness light sensor
This works! Don't use the acpi4asus ebuild OR the old ACPI_ASUS. kernel >= 2.6.24 have an ASUS_LAPTOP module, and udev should autoload it as asus_laptop. Make sure you disable the old ACPI_ASUS or ASUS_LAPTOP won't show up (Depends on !ACPI_ASUS):

Kernel Help Section for module

Currently however, when udev loads the module, the light sensor gets enabled and gets reset to the lowest setting in /sys/devices/platform/asus-laptop/ls_level. This will make your screen go dark on boot.

There are some scripts to regulate the level on boot (and remember the state) in the m50sv_acpi.tar.gz tarball linked above AND to link up the hotkeys to alter the appropriate brightness level, depending whether the light sensor enable switch is on or not.

The you should

So that the init script gets called shortly after udev does coldplugging (which will fade your screen to dark).