ASUS Eee PC T101MT

From ArchWiki
Revision as of 23:44, 14 November 2011 by Stealthsheath (Talk | contribs) (Rotating the touch screen in openbox)

Jump to: navigation, search
Device Status Information
Graphics Working Intel GMA 3150
Ethernet Working
Wireless Working
Audio Working
Camera Working 3.0.0
Card Reader Working
Function Keys Working
Suspend2RAM Working
Hibernate Not working
Touchscreen Working 3.0.0
Multi-Touch Not working

Installing Arch

This wiki page supplements these pages: Beginners Guide, the Official Install Guide, and Installing Arch Linux on the Asus EEE PC. Please refer to those guides first before following the eeepc-specific pointers on this page.

Following the Beginners Guide

Graphics, Ethernet, Wireless, Audio and the Card Reader work "out of the box".

Camera

Is working fine with Ekiga, Skype displays the image upside-down
to fix this use command:

for x86_x64

LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so skype

for i686

LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype

To make this happen automatically just create a script named skyp (or anything you want it to be)

#!/bin/bash

#get the architecture of the system
arch=`uname -m`

#corrects upside down webcam in skype
case $arch in
     x86_64)
       LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so skype;
       ;;
     i686)
       LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype;
       ;;
esac

Save this script as "skyp" and '#chmod +x skyp'. Move this script to '/usr/bin/' with '#mv skyp /usr/bin/'. From now on typing in skyp should load skype with the proper webcam orientation.

Function Keys

Suspend-, Brightness- and Audiokeys work. Others may need special configuration. My Suspendkey was executing the suspend from KDE and from the acpi Interface. I disabled the KDE event, and now Suspend works.

In openbox, editting ~/.config/rc.xml and appending (under <keyboard>); this was taken from https://wiki.archlinux.org/index.php/Openbox:

   <!-- Keybindings for audio control -->
   <keybind key="XF86AudioRaiseVolume">
     <action name="Execute">
       <command>amixer set Master 5%+ unmute</command>
     </action>
   </keybind>
   <keybind key="XF86AudioLowerVolume">
     <action name="Execute">
       <command>amixer set Master 5%- unmute</command>
     </action>
   </keybind>
   <keybind key="XF86AudioMute">
     <action name="Execute">
       <command>amixer set Master toggle</command>
     </action>
   </keybind>

will make the audio keys work if alsa is installed.

Installing OpenBox

OpenBox can be installed by issuing #pacman -S openbox. Follow the instructions on screen to copy the openbox scripts to '~/.config/openbox/'.

Rotating the touch screen in openbox

Editing the openbox rc.xml file in '~/.config/openbox/rc.xml' will allow configuration of the Express Gate button. Open a terminal and run $xev (non-root) to find out the key associated with the Express Gate button (just click it while in xev). For my system it was key 248 (0xF8) in hexadecimal. Edit your ~/.config/openbox/rc.xml to include the following code under <keyboard>:

   <!-- Keybindings for express gate button --> 
   <keybind key="0xF8">
       <action name="ShowMenu">
         <menu>root-menu</menu>
        </action>
    </keybind>

This will bind the express gate key to show the openbox menu whenever clicked.

To rotate the screen, use the following script (note the following script can also be bound to the expressgate button itself to generate rotations (bypass any menu):

#!/bin/bash

#Written by Mark Lee
#New and improved script to rotate the touch screen by pressing the 'Express Gate Button'
#Has both a command line interface as well as a single button click interface
#Records rotation in the ram disk directory as 'cur_rot'
#Does not require cur_rot to be initially created, only that all rotations use this script.


#works in the ram disk directory
cd /dev/shm/

#Obtains the current rotation
cur_rot=`cat cur_rot`;

#Increases the current rotation variable by 1 to signify a change: $[++cur_rot]; increases cur_rot by 1.
#Takes the modulus of the cur_rot by 4: var=$[$a % $b]; where $b is the modulus
new_rot=$[$[++cur_rot] % 4];

#Command line interface for rotating the monitor
#If an argument is specified, it is converted to a digit
case "$1" in
  normal)
	  new_rot=0
	  ;;
  left)
	  new_rot=1
	  ;;
  right)
	  new_rot=3
	  ;;
  upside_down)
	  new_rot=2
	  ;;
esac

#Rotates the screen based on current rotation
case $new_rot in
  0)
    #Rotates the display
    xrandr -o 0;
    #find the device id of the touch screen with 'xinput list | grep Asus'
    #set the device id by switching out '10' with your device id number.
    #invert touch axes for (x,y) for device with id=10
    xinput set-prop 10 "Evdev Axes Swap" 0;
    #swaps the x and y axes of the touch screen for device with id=10
    xinput set-prop 10 "Evdev Axis Inversion" 0 0;
    #Sets the new cur_rot as a file
    echo $new_rot >cur_rot;
    #Exits the script
    exit;
    ;;
  1)
    xrandr -o 1;
    xinput set-prop 10 "Evdev Axes Swap" 1;
    xinput set-prop 10 "Evdev Axis Inversion" 1 0;
    echo $new_rot >cur_rot;
    exit;
    ;;
  2)
    xrandr -o 2;
    xinput set-prop 10 "Evdev Axes Swap" 0;
    xinput set-prop 10 "Evdev Axis Inversion" 1 1;
    echo $new_rot >cur_rot;
    exit;
    ;;
  3)
    xrandr -o 3;
    xinput set-prop 10 "Evdev Axes Swap" 1;
    xinput set-prop 10 "Evdev Axis Inversion" 0 1;
    echo $new_rot >cur_rot;
    exit;
    ;;
esac

Save this script as 'rotate_touch_screen' (or whatever you want to name it) and make it executable with '#chmod +x rotate_touch_screen'. Move it to /usr/bin with '#mv rotate_touch_screen /usr/bin/'.

Edit '~/.config/openbox/menu.xml' to include the following code:

		<menu id="root-menu-773645" label="Rotate Screen">
			<item label="Normal">
				<action name="Execute">
					<execute>
						rotate_touch_screen normal
					</execute>
				</action>
			</item>
			<item label="Right">
				<action name="Execute">
					<execute>
						rotate_touch_screen right
					</execute>
				</action>
			</item>
			<item label="Upside Down">
				<action name="Execute">
					<execute>
						rotate_touch_screen upside_down
					</execute>
				</action>
			</item>
			<item label="Left">
				<action name="Execute">
					<execute>
						rotate_touch_screen left
					</execute>
				</action>
			</item>

You can edit the position of this piece of code (if you know XML) or just add it in somewhere before the last line '</openbox_menu>' of the script. Change the position by using obmenu (GUI interface for editing openbox menu).

On Screen Keyboard

Install kvkbd with from the Arch user repository (if using packer : packer -S kvkbd). Make sure you have some sort of system tray (I used tint2) and edit '~/.config/openbox/autostart' to include the following statement:

kvkbd &

This will start up kvkbd everytime openbox starts up. Once kvkbd is started up it will appear in the system tray, simply clicking the icon in the tray will pop out the virtual keyboard.

Suspend2RAM

Touchscreen is not working afterwards.

Hibernate

Not Working.

Multi-Touch

Not Working.

Hardware

For N450 versions:

$ lspci
00:00.0 Host bridge: Intel Corporation Pineview DMI Bridge
00:02.0 VGA compatible controller: Intel Corporation Pineview Integrated Graphics Controller
00:02.1 Display controller: Intel Corporation Pineview Integrated Graphics Controller
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02)
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation Tigerpoint LPC Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation 82801GR/GH (ICH7 Family) SATA AHCI Controller (rev 02)
01:00.0 Ethernet controller: Atheros Communications Atheros AR8132 / L1c Gigabit Ethernet Adapter (rev c0)
02:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01)

For N570 versions:

00:00.0 Host bridge: Intel Corporation N10 Family DMI Bridge (rev 02)
00:02.0 VGA compatible controller: Intel Corporation N10 Family Integrated Graphics Controller (rev 02)
00:02.1 Display controller: Intel Corporation N10 Family Integrated Graphics Controller (rev 02)
00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 2 (rev 02)
00:1c.3 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 4 (rev 02)
00:1d.0 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation NM10 Family LPC Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation N10/ICH7 Family SATA AHCI Controller (rev 02)
01:00.0 Ethernet controller: Atheros Communications AR8132 Fast Ethernet (rev c0)
02:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01)

More Resources