ASUS U31SD

From ArchWiki
Revision as of 19:18, 8 October 2012 by Anthonyclark (Talk | contribs) ((Pre-install) Configuring GPT (Erasing the whole disk))

Jump to: navigation, search
Note: Read the WHOLE guide, it's very verbose

System Specification

  • CPU: Intel(R) Core(TM) i3-2330M CPU @ 2.20GHz (Sandy Bridge)
  • Memory: 4 GB DDR3 PC1333 - can be expanded to a maximum of 8GB (two DIMM slots)
  • WiFi: Atheros Communications Inc. AR9285
  • Ethernet: Atheros Communications Inc. AR8151 v2.0 Gigabit Ethernet
  • Bluetooth: Atheros Communications, Inc. AR3011 Bluetooth
  • Hard-Drive: 640GB Hitachi HTS547564A9E384
  • Optical Drive: None
  • Integrated Graphics: Intel 2nd Generation
  • Discrete Graphics: Nvidia GT520M (GF119)
  • Sound: Intel Corporation 6 Series/C200
  • Screen: 13.3" LCD 1366x768)
  • SD Card Reader
  • Webcam: V4L compatible
Note: This page was written for the i3 model but I'm sure the i5 model will not be much different

What DOESN'T work out of the box

  • Sleep/Hibernate (see below)
  • Nvidia GPU (Switchable GPU, see below)
  • Fn Volume Keys (see below)

What Works out of the Box / With default configuration

  • CPU (all cores detected)
  • Wireless
  • Ethernet
  • Framebuffer resolution (nouveau and intel xorg drivers provide this)
  • Intel GPU
  • Touchpad
  • Bluetooth
  • Hotkeys (Brightness / Monitor on-off / wifi / sleep)
  • USB

Not Tested

  • HDMI

Installation

Before running the Arch installer, you MUST install and configure a GPT partition scheme. If you do not, you will get terrible performance when writing small files (which should effect most users).

(Pre-install) Configuring GPT (Erasing the whole disk)

I assume you are installing Arch as the single OS on your machine. We choose GPT because it's newer, it supports larger partition tables, and the machine in focus here does have UEFI but my revision allows you to turn that off in BIOS

<working on this>


At this point, you should install archlinux with the installer.

(Arch Installer) Installing

  • Assure that you do not install/configure anything on the first 200MB partition that you created. You should start modifying and configuring partitions starting after that partition; usually /dev/sda2
  • Do NOT install GRUB or any bootloader via the installer.

(Post-install) Installing GRUB2

  • CHROOT into your new installation

After you have exited the installer, mount the required data in order to use your new installation:

$ mount -o bind /dev /mnt/dev
$ mount -t proc /proc /mnt/proc
$ mount -t sysfs /sys /mnt/sys

Now enter the chroot.

$ chroot /mnt bash

You are now in your new installation. From here, update pacman and install 'gdisk', 'parted', and 'grub2-bios'.

We need to do a few things here. We need change a bios_grub FLAG on that 200M partition, and we need to add a boot FLAG on the partition with your /boot partition.

$ parted /dev/sda
$(parted) set 1 bios_grub on
$(parted) set 2 boot on

Now Install GRUB2

$ grub-install --directory=/usr/lib/grub/i386-pc --target=i386-pc --boot-directory=/boot --recheck --debug /dev/sda

Lastly, make a grub config. (also do this if you make changes /etc/default/grub)

$ grub-mkconfig -o /boot/grub/grub.cfg

Follow the rest of the Sections below to get all of the hardware working.

Input / Touchpad

The keyboard and touchpad work more or less without problems using the xf86-input-keyboard and xf86-input-synaptics modules, respectively. Right- and left-clicking works, as well as Two-Finger scroll. Tapping is enabled out of the box and can be disabled in
 /etc/X/xorg.conf.d/10-synaptics.

Bluetooth

Installing a tool like "blueman" from the AUR and starting the bluetooth DAEMON allowed communication to bluetooth keyboards and mice. Bluetooth speakers not tested. (*users feel free to add to this)

Nvidia GPU (Optimus)

Note: Your best bet for this part is to install 'yaourt' from the AUR to ease in installing the following packages

Read the Bumblebee/optimus page. I will only outline a few things...

You need to install the packages (and all of their dependencies) :

  • bumblebee
  • nvidia-bumblebee
  • nvidia-utils-bumblebee
  • bbswitch

In short, Bumblebee allows you to use the switchable GPU and use it only when you want to via the 'optirun' application.

Be sure to add 'bumblebeed' to your DAEMONS array in rc.conf.

Once you reboot, you should start seeing huge power saving.

To check and make sure that you aren't using your GPU all the time:

$ lsmod | grep nv

Should return nothing, this means your GPU is off.

You can check your GPU by running glxgears with and without the 'optirun' prefix and comparing the Frames Per Second.

Sound

Install the typical ALSA packages (libs, oss, plugins, utils). After the installation, you need to launch alsamixer

$ alsamixer

And raise the SPEAKER level, pressing ESC to save. You should now have (low quality) sound. This is a work in progress.

Suspend / Hibernate

Attempting to suspend will put your machine into a coma. The issue here is that you need to unload the EHCI module before sleeping.

Note: ACPI by default doesn't call pm-suspend, if we want to customize the sleep process, we need pm-suspend

Create a script:

$ nano /etc/pm/sleep.d/20-asus-u31sd
#!/bin/sh

BUSES="0000:00:1a.0 0000:00:1d.0"

case "${1}" in
    hibernate|suspend)
    # Switch USB buses off
    for bus in $BUSES; do
        echo -n $bus | tee /sys/bus/pci/drivers/ehci_hcd/unbind
    done
    ;;
    resume|thaw)
    # Switch USB buses back on
    for bus in $BUSES; do
        echo -n $bus | tee /sys/bus/pci/drivers/ehci_hcd/bind
    done
    ;;
esac

Give it executable flag:

$ chmod +x /etc/pm/sleep.d/20-asus-u31sd

If you want sleep your machine when you close your lid, you need to edit ACPI handler script:

$ nano /etc/acpi/handler.sh

Change line 20, to this:

 SLPB|SBTN)    pm-suspend ;;

And Towards the bottom, make lines 58 and 59 look line like this:

close)
        pm-suspend

So now you can use the hotkey (F1) or close your lid and your laptop will sleep.

Fn Multimedia Keys

As with most Asus laptops/netbooks, this laptop sends its Multimedia events via ACPI. Using `acpi_listen`, I was able to discover the button commands the buttons sent to acpi. Add the following to your /etc/acpi/handler.sh file (make sure you add this after the ;; in the button/lid section):

    button/volumeup)
      amixer set Master 5+
      ;;
    button/volumedown)
      amixer set Master 5-
      ;;
    button/mute)
      amixer set Master toggle
      ;;

You can mess with these values to move your volume at different intervals, 5 seemed to work well for me.