e-x-a.org » Asus K50IP on Linux

Asus K50IP on Linux (gentoo)

This is a small howto that roughly describes how I got my new laptop running with Gentoo Linux. It also applies as a nice resource for other distros, esp. for kernel/driver settings.

lspci

    00:00.0 Host bridge: nVidia Corporation MCP79 Host Bridge (rev b1)
    00:00.1 RAM memory: nVidia Corporation MCP79 Memory Controller (rev b1)
    00:03.0 ISA bridge: nVidia Corporation MCP79 LPC Bridge (rev b3)
    00:03.1 RAM memory: nVidia Corporation MCP79 Memory Controller (rev b1)
    00:03.2 SMBus: nVidia Corporation MCP79 SMBus (rev b1)
    00:03.3 RAM memory: nVidia Corporation MCP79 Memory Controller (rev b1)
    00:03.5 Co-processor: nVidia Corporation MCP79 Co-processor (rev b1)
    00:04.0 USB Controller: nVidia Corporation MCP79 OHCI USB 1.1 Controller (rev b1)
    00:04.1 USB Controller: nVidia Corporation MCP79 EHCI USB 2.0 Controller (rev b1)
    00:08.0 Audio device: nVidia Corporation MCP79 High Definition Audio (rev b1)
    00:09.0 PCI bridge: nVidia Corporation MCP79 PCI Bridge (rev b1)
    00:0b.0 SATA controller: nVidia Corporation MCP79 AHCI Controller (rev b1)
    00:10.0 PCI bridge: nVidia Corporation MCP79 PCI Express Bridge (rev b1)
    00:15.0 PCI bridge: nVidia Corporation MCP79 PCI Express Bridge (rev b1)
    00:16.0 PCI bridge: nVidia Corporation MCP79 PCI Express Bridge (rev b1)
    02:00.0 VGA compatible controller: nVidia Corporation C79 [GeForce G102M] (rev b1)
    03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)
    04:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01)

lspci -n

    00:00.0 0600: 10de:0a83 (rev b1)
    00:00.1 0500: 10de:0a88 (rev b1)
    00:03.0 0601: 10de:0aae (rev b3)
    00:03.1 0500: 10de:0aa4 (rev b1)
    00:03.2 0c05: 10de:0aa2 (rev b1)
    00:03.3 0500: 10de:0a89 (rev b1)
    00:03.5 0b40: 10de:0aa3 (rev b1)
    00:04.0 0c03: 10de:0aa5 (rev b1)
    00:04.1 0c03: 10de:0aa6 (rev b1)
    00:08.0 0403: 10de:0ac0 (rev b1)
    00:09.0 0604: 10de:0aab (rev b1)
    00:0b.0 0106: 10de:0ab9 (rev b1)
    00:10.0 0604: 10de:0aa0 (rev b1)
    00:15.0 0604: 10de:0ac6 (rev b1)
    00:16.0 0604: 10de:0ac7 (rev b1)
    02:00.0 0300: 10de:0873 (rev b1)
    03:00.0 0200: 10ec:8168 (rev 01)
    04:00.0 0280: 168c:002b (rev 01)

getting hardware to work

Happy to say – most things just work out of the box. Be sure to include kernel drivers that you get from pasting above stuff into Debian HCL. I’m describing nontrivial stuff here: kernel issues

several BIOS settings cause kernel to be unable to reboot (so it hangs). If this happens, try to add reboot=force parameter, or reset bios settings to default.

chipset

Be sure to check AHCI and AMD/nVidia PATA support, or you’ll be diskless. This doesn’t appear to be mentioned in HCL.

asus-laptop driver seems to work perfectly. Only problem is that it leaves WLAN led ON by default after every startup, which is just completely wrong. Best solution is to add module parameter to kernel command line: asus-laptop.wlan_status=0. Asus-laptop module also gives you access to ACPI power button and Fn-key shortcuts. I prefer to use acpid with own script, others may use pbbuttonsd.

sound

Works with intel-hda driver. Default settings work, but model that best matches my card capabilities is “3stack-6ch”, so I add kernel parameter snd-hda-intel.model=3stack-6ch

Xorg

Probably just use nvidia driver, as noveau doesn’t seem to work very well with 205G. Performance on nvidia is excellent, everything runs fine, and glxgears give good FPS.

Touchpad

I had quite a problem here, touchpad IS handled by Xorg synaptics driver, but it needs to be somehow emulated using kernel Elantech driver. Most kernels have this on by default, but be sure to check CONFIG_MOUSE_PS2_ELANTECH is present. After that, you probably want to use synclient to tune touchpad parameters. My config in Xorg looks like this:

    Section "InputDevice"
    	Identifier "Touchpad"
    	Driver "synaptics"
    	Option	"Protocol"	"auto-dev"
    	Option	"Device"  	"/dev/input/by-path/platform-i8042-serio-4-event-mouse"
    	Option	"CornerCoasting" "on"
    	Option	"VertEdgeScroll" "on"
    	Option	"HorizEdgeScroll" "on"
    	Option	"VertTwoFingerScroll" "off"
    	Option	"HorizTwoFingerScroll" "off"
    	Option 	"TapButton1"	"1"
    	Option 	"TapButton2"	"2"
    	Option 	"TapButton3"	"3"
    	Option	"RTCornerButton" "2"
    	Option	"RBCornerButton" "3"
    	Option	"LeftEdge"      "53"
    	Option	"RightEdge"     "1000
    	Option	"TopEdge"       "230"
    	Option	"BottomEdge"    "640"
    	Option	"SHMConfig"	"on"
    EndSection

Wireless LAN

Works with ath9k driver. I had no chance to test 802.11N mode yet, but everything else seems to work (Master mode using hostapd, WPA, WEP,...). If card refuses to associate with some accesspoint, the thing that always helps is iwconfig wlan0 ap off command.

Numpad

Numpad works “as expected”, but shows a little weird behavior. I use it turned off, because I can type numbers faster in the upper row, and need to have end/home/pageup/pagedown buttons at hand. The problem is that some applications in some terminals (less in urxvt) can’t properly catch those keys, and well do wrong things when the key is pressed. Workaround is to put this in your .Xdefaults:

    URxvt.keysym.KP_End: \033[8~
    URxvt.keysym.KP_Home: \033[7~
    URxvt.keysym.KP_Prior: \033[5~
    URxvt.keysym.KP_Next: \033[6~

URxvt.keysym.KP_Down: \033[B~ URxvt.keysym.KP_Up: \033[A~ URxvt.keysym.KP_Right: \033[C~ URxvt.keysym.KP_Left: \033[D~ URxvt.keysym.KP_Insert: \033[2~ URxvt.keysym.KP_Delete: \033[3~

...which in one side disables correct detection of numpad keys by some programs (of which I don’t actually have an example, ask in #rxvt-unicode on freenode), but on the other hand makes less&vim work correctly.

You might also be surprised that stuff like Shift+NumpadHome doesn’t do obvious “select everything to the beginning of line, but writes number 7 instead. This is caused by default behavior set in Xorg. You can easily change it adding this to your keyboard section of Xorg.conf:

    Options "XKbOption" "numpad:microsoft"

Camera

    USB Bus 001 Device 002: ID 13d3:5130 IMC Networks 
    uvcvideo: Found UVC 1.00 device USB 2.0 Camera (13d3:5130)

Works with using v4l/usb ‘uvcvideo’ driver from kernel. If you have mplayer with v4l support, you can easily see yourself using mplayer tv:// command.

Tunables

Be sure to have your CPU throttled, especially when you’re running without power. It can save around 1 hour of battery life. Best thing to have is a script that sets CPU governors to ‘powersave’ when it’s without battery (performance doesnt suffer that much, it’s still 1.2Ghz :D ).

The disk is kindof slow. This is especially annoying with XFS filesystem (I’m a reiserfs refugee :D ). There are two things to do about it: First, add logbufs=8 parameter to XFS mounting line to /etc/fstab, which kindof stabilizes the unimpressive file-deleting operation speed. Second, the laptop has 4GB of RAM, which is a giant load of RAM I’ll never use. So I’m running portage and stuff in tmpfs. The speedup is around 25%, and the thing isn’t that complicated. Just add this to fstab:

        #tmpfs for portage&pals
        none			/var/tmp	tmpfs		auto		0 0
        #tmpfs for /tmp
        none			/tmp		tmpfs		auto		0 0
Well, that’s all. Have a nice time laptoping, and feel free to mail me if you have questions or want to contribute to this.