Difference between revisions of "ASUS Eee PC 901"

From ArchWiki
Jump to: navigation, search
(Bluetooth)
(A complete working set Xorg/HAL config files: HAL is not supported.)
(48 intermediate revisions by 17 users not shown)
Line 1: Line 1:
[[Category:Getting and installing Arch (English)]]
+
[[Category:ASUS]]
[[Category:HOWTOs (English)]]
+
{{out of date}}
 
+
== Introduction ==
+
 
+
 
This page contains instructions, tips, pointers, and links for installing and configuring Arch Linux on the ASUS EEE 901 PC.
 
This page contains instructions, tips, pointers, and links for installing and configuring Arch Linux on the ASUS EEE 901 PC.
  
Line 12: Line 9:
 
This wiki page supplements these pages:  '''[[Beginners Guide]]''', the '''[[Official Arch Linux Install Guide|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.
 
This wiki page supplements these pages:  '''[[Beginners Guide]]''', the '''[[Official Arch Linux Install Guide|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.
  
Most of this information is from the Arch Forum EEE 901 [http://bbs.archlinux.org/viewtopic.php?id=53464 thread].  Consult this thread, and other resources on the Arch forum, for more details and discussion.
+
Most of this information is from the Arch Forum EEE 901 [https://bbs.archlinux.org/viewtopic.php?id=53464 thread].  Consult this thread, and other resources on the Arch forum, for more details and discussion.
  
 
== Kernel Installation and configuration ==  
 
== Kernel Installation and configuration ==  
Line 18: Line 15:
 
Follow the Arch Linux installation Guide to install the latest stock distribution from USB media or CDROM.  Install the '''BASE''' and '''DEVEL''' package categories.  Reboot your PC.
 
Follow the Arch Linux installation Guide to install the latest stock distribution from USB media or CDROM.  Install the '''BASE''' and '''DEVEL''' package categories.  Reboot your PC.
  
 
+
As of the advent of kernel 2.6.30, all drivers needed for the EEE 901 are included in the Arch Linux stock kernel.  In case you would like to compile your own kernel, make sure that you build the following modules:
As of the advent of kernel 2.6.30, all drivers needed for the EE 901 are included in the Archlinux stock kernel.  In case you would like to compile your own kernel, make sure that you build the following modules:
+
  
 
Network card:
 
Network card:
Line 43: Line 39:
  
 
=== Using the Stock kernel ===
 
=== Using the Stock kernel ===
This section gives some hints and clues about how to tweak the stock ArchLinux kernel for the EeePC 901.  For more general information about building custom ArchLinux kernels, see [[Kernel Compilation]].  
+
This section gives some hints and clues about how to tweak the stock Arch Linux kernel for the EeePC 901.  For more general information about building custom Arch Linux kernels, see [[Kernel Compilation]].  
  
 
The stock kernel has some advantages over the custom kernel:
 
The stock kernel has some advantages over the custom kernel:
Line 50: Line 46:
  
 
* As of kernel 2.6.29 the Ralink wireless driver is [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=91980990527258a075361490cecadbb7356fc0d2 included] in the stock kernel (though it is still a work in progress). Just add the '''rt2860sta''' module to /etc/rc.conf and it works out of the box.
 
* As of kernel 2.6.29 the Ralink wireless driver is [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=91980990527258a075361490cecadbb7356fc0d2 included] in the stock kernel (though it is still a work in progress). Just add the '''rt2860sta''' module to /etc/rc.conf and it works out of the box.
 +
 +
* From kernel '''2.6.33''' on you only need to blacklist rt2800pci in /etc/rc.conf and wireless works flawlessly
  
 
* It is likely that more Asus and EeePC-specific features will be included in future versions of the stock kernel, and current drivers will improve with each kernel release. (Word has it that Linus Torvalds himself bought an EeePc).  Chances are that the stock kernel now includes the drivers and features you need for your EeePC.
 
* It is likely that more Asus and EeePC-specific features will be included in future versions of the stock kernel, and current drivers will improve with each kernel release. (Word has it that Linus Torvalds himself bought an EeePc).  Chances are that the stock kernel now includes the drivers and features you need for your EeePC.
Line 61: Line 59:
  
 
== OS Configuration ==
 
== OS Configuration ==
 +
 +
To support the devices listed below, make sure the module '''eeepc_laptop''' is loaded on boot.
 +
 +
To automatically all the modules needed (including bluetooth, if it is enabled in BIOS, and the ALSA sound drivers), enable autoloading in your /etc/rc.conf:
 +
 +
  MOD_AUTOLOAD="yes"
  
 
=== Networking:  Ethernet ===
 
=== Networking:  Ethernet ===
Line 67: Line 71:
  
 
=== Networking:  Wireless ===
 
=== Networking:  Wireless ===
 +
From Kernel 3.0, The staging driver rt2860sta is replaced by mainline driver rt2800pci, and the staging drivers are deleted.
 +
 
After a bios-upgrade the wireless-card of the Eee PC will be disabled by default, so if you have any troubles with wlan check that it is enabled in the bios.
 
After a bios-upgrade the wireless-card of the Eee PC will be disabled by default, so if you have any troubles with wlan check that it is enabled in the bios.
 +
 +
To enable/disable the wireless card from the command line:
 +
 +
  # enable
 +
  echo 1 > /sys/devices/platform/eeepc/wlan
 +
  # disable
 +
  echo 0 > /sys/devices/platform/eeepc/wlan
 +
 +
For newer kernels enable/disable wireless the following way:
 +
 +
  # enable
 +
  echo 1 > /sys/devices/platform/eeepc/rfkill/rfkill0/state
 +
  # disable
 +
  echo 0 > /sys/devices/platform/eeepc/rfkill/rfkill0/state
  
 
The precompiled kernels listed above contain a [http://www.itwriting.com/blog/778-fixing-wi-fi-on-asus-eee-pc-901-with-linux.html patched] version of the wifi driver '''rt2860sta''' and it should work with both WEP and WPA.   
 
The precompiled kernels listed above contain a [http://www.itwriting.com/blog/778-fixing-wi-fi-on-asus-eee-pc-901-with-linux.html patched] version of the wifi driver '''rt2860sta''' and it should work with both WEP and WPA.   
  
If you are compiling the '''rt2860sta''' kernel driver yourself, use the newest (1.8) version of the driver in AUR: http://aur.archlinux.org/packages.php?ID=14557.  
+
If you are compiling the '''rt2860sta''' kernel driver yourself, use the newest (1.8) version of the driver in AUR: https://aur.archlinux.org/packages.php?ID=14557.  
  
 
Make sure you have the '''wireless_tools''' package installed, also.  You may need to manually download the package from a [[Mirror]] (look in ''core/os/i686/'') and install it locally (e.g. after moving it with a usb-stick to your eeePC) using [[Pacman#Other_Usage|Pacman]].
 
Make sure you have the '''wireless_tools''' package installed, also.  You may need to manually download the package from a [[Mirror]] (look in ''core/os/i686/'') and install it locally (e.g. after moving it with a usb-stick to your eeePC) using [[Pacman#Other_Usage|Pacman]].
Line 146: Line 166:
 
=== ACPI (Hotkeys) ===
 
=== ACPI (Hotkeys) ===
  
==== Option 1:  Install the '''[http://aur.archlinux.org/packages.php?ID=23318 acpi-eeepc-generic]''' package from AUR ====
+
==== Option 1:  Install the '''[https://aur.archlinux.org/packages.php?ID=23318 acpi-eeepc-generic]''' package from AUR ====
 
+
yaourt -Sy acpi-eeepc-generic
+
  
 
For this package to work, make sure the '''eeepc_laptop''' and '''rfkill''' modules are loaded at boot.
 
For this package to work, make sure the '''eeepc_laptop''' and '''rfkill''' modules are loaded at boot.
  
Consult the notes included with the install for instructions on configuring <tt>/etc/conf.d/acpi-eeepc-generic.conf</tt>.
+
Consult the notes included with the install for instructions on configuring {{Ic|/etc/conf.d/acpi-eeepc-generic.conf}}.
  
This will enable all the ''Fn + xx'' and the four silver hotkey buttons buttons as configured in the default Xandros distribution, with some minor variations.  Edit the <tt>/etc/conf.d/acpi-eeepc-generic.conf</tt> file to change, modify the function keys.
+
This will enable all the ''Fn + xx'' keys and the four silver hotkey buttons buttons as configured in the default Xandros distribution, with some minor variations.  Edit the {{Ic|/etc/conf.d/acpi-eeepc-generic.conf}} file to change or modify the behavior of the function keys.
  
 
==== Option 2:  Configure the stock kernel ACPI features ====
 
==== Option 2:  Configure the stock kernel ACPI features ====
Line 164: Line 182:
 
You can use Robertek's PKGBUILD and files for '''acpi-www901''' at http://robertek.brevnov.net/files/linux/arch/acpi-eee901/ as a base to incorporate the stock kernel modules and ASUS OSD into the ACPI system.
 
You can use Robertek's PKGBUILD and files for '''acpi-www901''' at http://robertek.brevnov.net/files/linux/arch/acpi-eee901/ as a base to incorporate the stock kernel modules and ASUS OSD into the ACPI system.
  
Note: The kernel interfaces <tt>/proc/acpi/asus</tt> or <tt>/proc/acpi/eee</tt> are not available with the '''eeepc_laptop''' module. The corresponding '''eeepc_laptop''' interfaces are files in: <tt>/sys/devices/platform/eeepc/</tt>.  You may need to edit some of the scripts under <tt>/etc/acpi/</tt> to point to the correct paths.
+
Note: The kernel interfaces {{Ic|/proc/acpi/asus}} or {{Ic|/proc/acpi/eee}} are not available with the '''eeepc_laptop''' module. The corresponding '''eeepc_laptop''' interfaces are files in: {{Ic|/sys/devices/platform/eeepc/}}.  You may need to edit some of the scripts under {{Ic|/etc/acpi/}} to point to the correct paths.
 +
Also easier links to the interfaces can be found inside of /sys/class/ . For instance the first battery is in /sys/class/power_supply/BAT0/ .
  
 
==== ASUS OSD ====
 
==== ASUS OSD ====
  
Asus OSD is included as part of the '''acpi-eee901''' package.  Simply add the command <tt>asusosd &</tt> to your desktop manager startup script, or create the file <tt>/etc/xdg/autostart/asusosd.desktop</tt> with these contents:
+
Asus OSD is included as part of the '''acpi-eee901''' package.  Simply add the command {{Ic|asusosd &}} to your desktop manager startup script, or create the file {{Ic|/etc/xdg/autostart/asusosd.desktop}} with these contents:
  
 
     [Desktop Entry]
 
     [Desktop Entry]
Line 184: Line 203:
 
Currently, Bluetooth is not enabled with the ''Fn + F2'' hotkey.  To communicate with Bluetooth devices, make sure Bluetooth has been enabled in the BIOS.
 
Currently, Bluetooth is not enabled with the ''Fn + F2'' hotkey.  To communicate with Bluetooth devices, make sure Bluetooth has been enabled in the BIOS.
  
Install the '''bluez''' package, then <tt>modprobe bluetooth</tt>.
+
To enable/disable bluetooth from the command line :
 +
 
 +
  # enable
 +
  echo 1 > /sys/devices/platform/eeepc/bt
 +
  # disable
 +
  echo 0 > /sys/devices/platform/eeepc/bt
 +
 
 +
Install the '''bluez''' package.  Make sure the '''bluetooth''' module is loaded.
  
 
See the Arch Linux [[Bluetooth]] and  [[Bluetooth Mouse]] wiki pages for more information about configuring and using Bluetooth devices.
 
See the Arch Linux [[Bluetooth]] and  [[Bluetooth Mouse]] wiki pages for more information about configuring and using Bluetooth devices.
Line 191: Line 217:
  
 
To enable/disable the camera:
 
To enable/disable the camera:
 
  # enable
 
  echo 1 > /proc/acpi/asus/camera
 
  # disable
 
  echo 0 > /proc/acpi/asus/camera
 
 
or with kernel26-eee901:
 
  
 
   # enable
 
   # enable
Line 208: Line 227:
 
   pacman -S wxcam
 
   pacman -S wxcam
  
To simply test the camera, you may use <tt>mplayer</tt>:
+
To simply test the camera, you may use {{Ic|mplayer}}:
  
 
   mplayer -fps 15 tv://
 
   mplayer -fps 15 tv://
Line 216: Line 235:
 
=== Audio ===
 
=== Audio ===
  
Audio output is enabled with the default ALSA drivers distributed with the kernels.  You may need to install the '''alsa-lib''' and '''alsa-utils''' packages to get full functionality. The internal microphone only works with ALSA 1.0.18+ (included by default in the '''zen-eee901''' kernels).
+
Audio output is enabled with the default ALSA drivers distributed with the kernels.  You may need to install the '''alsa-lib''' and '''alsa-utils''' packages to get full functionality.
 +
Make sure the '''snd-hda-intel''' module is loaded.
  
To load the module upon boot add the snd-hda-intel module to your list of MODULES in /etc/rc.conf:
+
Both the microphone and PC speakers should work out-of-the-box with current versions of the kernel and ALSA drivers. A common gotcha: if you're not getting any sound, did you run {{Ic|alsamixer}} and unmute your channels?
  
  MODULES=( ... snd-hda-intel ... )
+
See the Arch Linux [[ALSA]] wiki page for more information about configuring and using ALSA.
  
or to automatically load modules for your hardware (including bluetooth, if it is enabled in BIOS), enable autoloading in your /etc/rc.conf:
+
=== X ===
  
  MOD_AUTOLOAD="yes"
+
''<font color="red">This section is out-of-date, and needs to be cleaned up.</font>''
 
+
Note: The current set of scripts isn't prepared to deal with several audio devices, which means that the pc-speaker should not be enabled at the same time. You can black-list the corresponding driver in /etc/rc.conf as follows:
+
 
+
  MODULES=( ... !snd-pcsp ... )
+
 
+
=== X ===
+
  
 
==== Video ====
 
==== Video ====
Line 237: Line 251:
 
   pacman -S xf86-video-intel
 
   pacman -S xf86-video-intel
  
Then X should run out of the box, including with direct rendering, even without xorg.conf. To get full use of the touchpad (including tapping for mouse click), install the xorg.conf file in the [[Installing Arch Linux on the Asus EEE PC]] wiki page, with this change:
+
To set-up the touchpad, (including two-fingers scrolling & tapping), just install xf86-input-synaptics (no xorg.conf required):
 
+
   pacman -S xf86-input-synaptics
   Section "Monitor"
+
    Identifier  "Monitor0"
+
    VendorName  "ASUS"
+
    ModelName    "eeePC 901"
+
    Modeline    "1024x600" 48.96 1024 1064 1168 1312 600 601 604 622 -HSync +VSync # 60 Hz
+
  EndSection
+
 
+
Also remove: 'RgbPath "/usr/share/X11/rgb"' from Section "Files"
+
  
Some users have reported problems with vsync and the '''xf86-video-intel''' driver.  These problems may be partially solved in the application (see this forum [http://bbs.archlinux.org/viewtopic.php?pid=416645#p416645 post].)
+
Some users have reported problems with vsync and the '''xf86-video-intel''' driver.  These problems may be partially solved in the application (see this forum [https://bbs.archlinux.org/viewtopic.php?pid=416645#p416645 post].)
  
 
===== Connecting an external Monitor =====
 
===== Connecting an external Monitor =====
Line 274: Line 280:
 
On the LCD, the additional space will be unused, but when switching to the external monitor, the screen will be. Note that some window managers (such as ratpoison) might need to be restarted to realize that the visible screen size has changed.
 
On the LCD, the additional space will be unused, but when switching to the external monitor, the screen will be. Note that some window managers (such as ratpoison) might need to be restarted to realize that the visible screen size has changed.
  
==== Mouse and Synaptics driver ====
+
===== Letterboxing with XRandR =====
  
The '''zen-eee901''' kernels include the Elantech/synaptics touchpad mouse driver, as described on the Gentoo wiki at http://gentoo-wiki.com/Asus_EEE_PC_901#Elantech_Driver .
+
If you have set up your X server and kernel to use KMS you might have some trouble getting a 800x600 resolution letterboxed (centered) rather than stretched, which might be unpleasant in some programs that do not support 1024x600 such as older games. This is because with KMS the xrandr syntax is a bit different [https://bugs.freedesktop.org/show_bug.cgi?id=24331].
 +
To get a centered 800x600 visual field on your 1024x600 panel run:
 +
$ xrandr --output LVDS1 --set "scaling mode" "Center"
 +
$ xrandr -s 800x600
 +
Replace "800x600" with "1024x600" to go back to the native resolution.
 +
 
 +
==== Mouse and Synaptics driver ====
  
 
To enable the Synaptics drivers, first install the synaptics package:
 
To enable the Synaptics drivers, first install the synaptics package:
Line 286: Line 298:
 
   pacman -S xf86-input-evdev
 
   pacman -S xf86-input-evdev
  
Then make these changes to <tt>/etc/X11/xorg.conf</tt>:
+
Then make these changes to {{Ic|/etc/X11/xorg.conf}}:
  
 
   Section "ServerLayout"
 
   Section "ServerLayout"
Line 364: Line 376:
 
   '''EndSection'''
 
   '''EndSection'''
  
The latest version of the Elantech touchpad driver patch is available at http://arjan.opmeer.net/elantech/. You'll need to apply this patch to your kernel source, then recompile the kernel.  This patch has been tested on the 2.6.27.6 and 2.6.27.7 kernels.
+
The latest version of the Elantech touchpad driver patch is available at http://arjan.opmeer.net/elantech/ or here [http://www.mac-how.net/ mac how to] You'll need to apply this patch to your kernel source, then recompile the kernel.  This patch has been tested on the 2.6.27.6 and 2.6.27.7 kernels.
 
+
 
+
 
+
====A complete working set Xorg/HAL config files====
+
 
+
The latest version of <tt>xserver</tt> recommends using the HAL subsystem to manage X device configurations, in place of <tt>xorg.conf</tt>.
+
 
+
If it isn't installed already, install HAL, then add '''hal'''  to the list of daemons in your <tt>/etc/rc.conf</tt> file:
+
 
+
  pacman -s hal
+
 
+
Create the following HAL device configuration files for X:
+
 
+
'''File:''' /etc/hal/fdi/policy/10-keymap.fdi (configure the '''input.xkb.layout''' parameter to match your locale)
+
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
+
<deviceinfo version="0.2">
+
  <device>
+
    <match key="info.capabilities" contains="input.keymap">
+
      <append key="info.callouts.add" type="strlist">hal-setup-keymap</append>
+
    </match>
+
+
    <match key="info.capabilities" contains="input.keys">
+
      <merge key="input.xkb.rules" type="string">base</merge>
+
+
      <merge key="input.xkb.model" type="string">keyboard</merge>
+
      <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux">
+
        <merge key="input.xkb.model" type="string">evdev</merge>
+
      </match>
+
+
      <merge key="input.xkb.layout" type="string">se</merge>
+
      <merge key="input.xkb.variant" type="string" />
+
      <merge key="input.xkb.options" type="string">ctrl:nocaps</merge>
+
    </match>
+
  </device>
+
</deviceinfo>
+
 
+
 
+
'''File:''' /etc/hal/fdi/policy/9-x11-elantech.fdi (configuration for the Elantech touchpad -- <font color="red">could be improved</font>)
+
<?xml version="1.0" encoding="ISO-8859-1"?>
+
<deviceinfo version="0.2">
+
  <device>
+
    <match key="info.capabilities" contains="input.touchpad">
+
      <match key="info.product" contains="Elantech Touchpad">
+
<merge key="input.x11_driver" type="string">synaptics</merge>
+
<merge key="input.x11_options.SHMConfig" type="string">on</merge>
+
<merge key="input.x11_options.MaxSpeed" type="string">1.00</merge>
+
<merge key="input.x11_options.MinSpeed" type="string">0.75</merge>
+
<merge key="input.x11_options.Emulate3Buttons" type="string">on</merge>
+
<merge key="input.x11_options.VertTwoFingerScroll" type="string">1</merge>
+
<merge key="input.x11_options.HorizTwoFingerScroll" type="string">1</merge>
+
<merge key="input.x11_options.TapButton1" type="string">1</merge>
+
<merge key="input.x11_options.TapButton2" type="string">2</merge>
+
<merge key="input.x11_options.TapButton3" type="string">3</merge>
+
<merge key="input.x11_options.LockedDrags" type="string">1</merge>
+
      </match>
+
    </match>
+
  </device>
+
</deviceinfo>
+
 
+
'''File:''' /etc/X11/xorg.conf
+
Section "ServerLayout"
+
Identifier "ArchLinux"
+
Screen         "Screen0"
+
EndSection
+
+
Section "Device"
+
Identifier "Device0"
+
Driver "intel"
+
Option "XAANoOffScreenPixmaps" "true"
+
Option "AccelMethod" "XAA"
+
EndSection
+
+
Section "Screen"
+
Identifier "Screen0"
+
Device "Device0"
+
EndSection
+
The <tt>xorg.conf</tt> file is no longer strictly necessary, but some features, such as windowtitles in wmii, run faster if configured here.
+
  
 
==== Miscellaneous ====
 
==== Miscellaneous ====
If you don't have an xorg.conf file, and want to configure the keyboard layout on the fly:
+
If you do not have an xorg.conf file, and want to configure the keyboard layout on the fly:
  
 
   # Set keyboard to cz with qwerty
 
   # Set keyboard to cz with qwerty
Line 453: Line 388:
 
   xset m 2 1
 
   xset m 2 1
  
== Power management & Tips ==
+
== Performance Tips ==
  
 
The following tweaks can be used to improve performance and/or power consumption.
 
The following tweaks can be used to improve performance and/or power consumption.
 
<font color="red">''Warning:  these tweaks have not yet been empirically proven to decrease battery power consumption or improve performance.  Moreover, they have the potential to cause real havoc to your system, up to and including kernel panic and/or frying your CPU.  Caveat Emptor.''</font>
 
 
=== FSB (front side bus) ===
 
 
To improve power consumption, and get more hours from your battery, try changing the FSB speed:
 
 
* Insert the eee module (included in the '''zen-eee901''' kernels, above)
 
 
  modprobe eee
 
 
Or add '''eee''' to your '''MODULES''' list in <tt>/etc/rc.conf</tt>, to load on boot.  The '''zen-eee901''' kernels are distributed with the '''eee''' module.
 
 
Once the module is loaded, there should be a new directory <tt>/proc/eee</tt>.  To see the default (boot) FSB settings:
 
 
  cat /proc/eee/fsb
 
 
You will see a string similar to <tt>100 50 1</tt>, where 100=PLL multiplier, 50=PLL divisor, and 1=normal voltage
 
 
In general, follow these rules of thumb:
 
 
*  The key value is the PLL multiplier (the first value).  Some testing indicates that on the EEE 901, with the PLL divisor set to 50, this value will approximate the percentage of the rated speed of the CPU (1600 MHz).  Setting the PLL multiplier to "85", for example, will change your CPU speed to around 1360MHz (.85 * 1600).  User experiences indicate that safe PLL multiplier values are between 85 and 110. YMMV.
 
*  Don't change the PLL divisor (50).
 
*  The special file <tt>/proc/cpuinfo</tt> will not report accurate CPU speeds.  Use '''gkrellm''' or '''conky''' to measure CPU speed.
 
*  Valid values for the voltage flag are '''0''' (low voltage) and '''1''' (normal voltage).  Some users have encountered problems running at low CPU speeds with normal voltage;  to be on the safe side, use the low voltage flag whenever changing the PLL multiplier to a value below 85.
 
*  Change the FSB speed in steps, not in large jumps.  For example, to change from 110 to 85:
 
 
  echo 100 50 1 > /proc/eee/fsb
 
  echo 95 50 1 > /proc/eee/fsb
 
  echo 90 50 1 > /proc/eee/fsb
 
  echo 85 50 1 > /proc/eee/fsb
 
 
* To change the FSB to low voltage mode:
 
 
  echo 100 50 0 > /proc/eee/fsb
 
 
The '''acpi-eee901''' package in ''robertek's'' repository contains scripts for managing the FSB speed.
 
 
For more information on the Front Side Bus on the Asus EEE PC line, see http://wiki.eeeuser.com/howto:overclockfsb .
 
  
 
=== Speedstep ===
 
=== Speedstep ===
Line 500: Line 396:
 
Speedstep is included by default in the Linux 2.6.x kernel.
 
Speedstep is included by default in the Linux 2.6.x kernel.
  
The '''zen-eee901''' kernels contain the Speedstep modules.  Add '''acpi-cpufreq''' to your MODULES list in <tt>/etc/rc.conf</tt> to enable it on boot, or execute:
+
The '''zen-eee901''' kernels contain the Speedstep modules.  Add '''acpi-cpufreq''' to your MODULES list in {{Ic|/etc/rc.conf}} to enable it on boot, or execute:
  
 
   modprobe acpi-cpufreq
 
   modprobe acpi-cpufreq
Line 506: Line 402:
 
See http://rffr.de/acpi for more information.
 
See http://rffr.de/acpi for more information.
  
== Faster Boot ==
+
For more information on overclocking the Asus EEE PC line, see http://wiki.eeeuser.com/howto:overclockfsb
=== udev ===
+
 
 +
{{Note|Speedstep is applicable to the 901 as it's CPU is of the Intel Atom family. The eee 900 and 904 use an Intel Celeron M CPU and so should use the p4-clockmod module instead. }}
 +
 
 +
=== Faster boot and udev ===
 
To safe a little time with udev during boot, you can edit your '''/etc/rc.conf''' and disable MOD_AUTOLOAD. It should look like this
 
To safe a little time with udev during boot, you can edit your '''/etc/rc.conf''' and disable MOD_AUTOLOAD. It should look like this
  
 
   MOD_AUTOLOAD="no"
 
   MOD_AUTOLOAD="no"
   MODULES=(atl1e rt2860sta acpi-cpufreq pciehp intel_agp snd-hda-intel !snd-pcsp)
+
   MODULES=(atl1e rt2860sta rfkill acpi-cpufreq pciehp intel_agp snd-hda-intel !snd-pcsp bluetooth)
  
 
In addition, it may be helpful to do the following:
 
In addition, it may be helpful to do the following:
Line 525: Line 424:
 
=== Boot Booster ===
 
=== Boot Booster ===
  
Enable Asus Boot Booster feature in BIOS to skip some test during boot.
+
Enable Asus Boot Booster feature in BIOS to skip some tests during boot.
"Boot">"Boot Settings Configuration">"Quick Boot">[Enabled]
+
 
 +
  "Boot">"Boot Settings Configuration">"Quick Boot">[Enabled]
  
 
== Appendix ==
 
== Appendix ==

Revision as of 09:31, 8 March 2013

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:ASUS Eee PC 901#)

This page contains instructions, tips, pointers, and links for installing and configuring Arch Linux on the ASUS EEE 901 PC.

Most of the article can also be applied to eeepc-models which are similar to the 901 such the 901H, 1000 and 1000H. If you discover a configuration or software option applicable to a certain model that differs from what is described in this article, please add it, with a note about which model the suggestion pertains to.

Install Tips for the Asus Eee PC

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.

Most of this information is from the Arch Forum EEE 901 thread. Consult this thread, and other resources on the Arch forum, for more details and discussion.

Kernel Installation and configuration

Follow the Arch Linux installation Guide to install the latest stock distribution from USB media or CDROM. Install the BASE and DEVEL package categories. Reboot your PC.

As of the advent of kernel 2.6.30, all drivers needed for the EEE 901 are included in the Arch Linux stock kernel. In case you would like to compile your own kernel, make sure that you build the following modules:

Network card:

 Device Drivers - Ethernet (1000Mbit) - Atheros L1E Gigabit Ethernet support

WiFi card:

 Device Drivers - Staging Drivers - Ralink 2860

Eee Hotkey stuff:

 Device Drivers - X86 Platform Specific Device Drivers - EeePC Hotkey Driver

Video Camera:

 Device Drivers - Multimedia Devices -  Video Capture adapters - V4L USB devices - USB Video Class (UVC)

Sound Card:

 Device Drivers - Sound card support - ALSA - PCI Sound devices - Intel HDA - Build Realtek HDA codec

Touchpad:

 Device Drivers - Input Device support - Mice - PS/2 mouse - Synaptics & Elantech PS/2 protocol ext.

For flawless operation with the eee-control FSB frequency changing mechanism, you have to compile

 Device Drivers - I2C support - I2C Hardware Bus support - Intel 82801 (ICH)

as a _module_ (thanks for the hint, dieghen89, even though I never got to include it...)

For some tricks to speed up udev boot time, see below.

Blind

Using the Stock kernel

This section gives some hints and clues about how to tweak the stock Arch Linux kernel for the EeePC 901. For more general information about building custom Arch Linux kernels, see Kernel Compilation.

The stock kernel has some advantages over the custom kernel:

  • The ethernet driver is now available in stock kernel (called: Atheros L1E Gigabit Ethernet support), so no external modules or patching needed
  • As of kernel 2.6.29 the Ralink wireless driver is included in the stock kernel (though it is still a work in progress). Just add the rt2860sta module to /etc/rc.conf and it works out of the box.
  • From kernel 2.6.33 on you only need to blacklist rt2800pci in /etc/rc.conf and wireless works flawlessly
  • It is likely that more Asus and EeePC-specific features will be included in future versions of the stock kernel, and current drivers will improve with each kernel release. (Word has it that Linus Torvalds himself bought an EeePc). Chances are that the stock kernel now includes the drivers and features you need for your EeePC.
  • The stock kernel, as part of the core repository, is always available and maintained in a number of mirror repositories.

example .config

Here is a sample kernel .config file created for the 1000H with the stock 2.6.27.7 kernel: .config.

You can take it as starting point to build your own kernel. Make sure that the filesystem types you want to use are configured (at the moment this configuration only contains ext2, compiled in, and ext3 as module).

OS Configuration

To support the devices listed below, make sure the module eeepc_laptop is loaded on boot.

To automatically all the modules needed (including bluetooth, if it is enabled in BIOS, and the ALSA sound drivers), enable autoloading in your /etc/rc.conf:

 MOD_AUTOLOAD="yes"

Networking: Ethernet

Ethernet (wired) network access should work right out of the box with precompiled kernels, or with atl1e module you built from AUR.

Networking: Wireless

From Kernel 3.0, The staging driver rt2860sta is replaced by mainline driver rt2800pci, and the staging drivers are deleted.

After a bios-upgrade the wireless-card of the Eee PC will be disabled by default, so if you have any troubles with wlan check that it is enabled in the bios.

To enable/disable the wireless card from the command line:

 # enable
 echo 1 > /sys/devices/platform/eeepc/wlan
 # disable
 echo 0 > /sys/devices/platform/eeepc/wlan

For newer kernels enable/disable wireless the following way:

 # enable
 echo 1 > /sys/devices/platform/eeepc/rfkill/rfkill0/state
 # disable
 echo 0 > /sys/devices/platform/eeepc/rfkill/rfkill0/state

The precompiled kernels listed above contain a patched version of the wifi driver rt2860sta and it should work with both WEP and WPA.

If you are compiling the rt2860sta kernel driver yourself, use the newest (1.8) version of the driver in AUR: https://aur.archlinux.org/packages.php?ID=14557.

Make sure you have the wireless_tools package installed, also. You may need to manually download the package from a Mirror (look in core/os/i686/) and install it locally (e.g. after moving it with a usb-stick to your eeePC) using Pacman.

There are reported some problems associating an AP with netcfg2 (WEP and open, WPA-PSK works ok). If you experience problems, try another connection manager, for example wicd works fine.

 pacman -S wicd

If you experience problems with the Ralink driver and your connection manager, try using the following script to connect:

 #!/bin/bash
 
 case "$1" in
 start)
   sudo ifconfig ra0 up
   sudo wpa_supplicant -B -Dwext -ira0 -cwifi_up.conf
   sleep 3
   sudo dhcpcd ra0
   ;;
 stop)
   sudo kill -15 `cat /var/run/dhcpcd-ra0.pid`
   sudo rm /var/run/wpa_supplicant/ra0
   sudo ifconfig ra0 down
   ;;
 list)
   sudo ifconfig ra0 up
   sleep 1
   sudo iwlist ra0 scanning
   sudo ifconfig ra0 down
   ;;
 restart)
   $0 stop
   $0 start
   ;;
 *)
   echo "usage: $0 {start|stop|list|restart}"  
 esac
 
 exit 0

Here's a working example wpa_supplicant config file:

 ctrl_interface=/var/run/wpa_supplicant
 # change ap_scan to 2 if running into problems
 ap_scan=1
 fast_reauth=1
 eapol_version=1
 
 network={
   key_mgmt=NONE
 }
 
 network={
   ssid="WPA"
   scan_ssid=1
   proto=WPA
   key_mgmt=WPA-PSK
   pairwise=TKIP
   group=TKIP
   #psk="passphrase"
   psk=hexkey
 }
 
 network={
   ssid="WEP"
   scan_ssid=1
   key_mgmt=NONE
   #wep_key0="passphrase"
   wep_key0=hexkey
   wep_tx_keyidx=0
 }

Your mileage may vary, but experience seems to show that the ap_scan=1 parameter is critical. Try tweaking the other "header" settings, too, if you continue to experience problems.

ACPI (Hotkeys)

Option 1: Install the acpi-eeepc-generic package from AUR

For this package to work, make sure the eeepc_laptop and rfkill modules are loaded at boot.

Consult the notes included with the install for instructions on configuring /etc/conf.d/acpi-eeepc-generic.conf.

This will enable all the Fn + xx keys and the four silver hotkey buttons buttons as configured in the default Xandros distribution, with some minor variations. Edit the /etc/conf.d/acpi-eeepc-generic.conf file to change or modify the behavior of the function keys.

Option 2: Configure the stock kernel ACPI features

Enable the ASUS_LAPTOP (Device Drivers -> Misc Devices) switch in your kernel config and turn off ACPI_ASUS switch (Power managment options -> ACPI).

To enable the FN keys, the WLAN and Camera on/off toggles, etc., activate the EEEPC_LAPTOP switch also (Device Drivers -> Misc Devices).

You can use Robertek's PKGBUILD and files for acpi-www901 at http://robertek.brevnov.net/files/linux/arch/acpi-eee901/ as a base to incorporate the stock kernel modules and ASUS OSD into the ACPI system.

Note: The kernel interfaces /proc/acpi/asus or /proc/acpi/eee are not available with the eeepc_laptop module. The corresponding eeepc_laptop interfaces are files in: /sys/devices/platform/eeepc/. You may need to edit some of the scripts under /etc/acpi/ to point to the correct paths. Also easier links to the interfaces can be found inside of /sys/class/ . For instance the first battery is in /sys/class/power_supply/BAT0/ .

ASUS OSD

Asus OSD is included as part of the acpi-eee901 package. Simply add the command asusosd & to your desktop manager startup script, or create the file /etc/xdg/autostart/asusosd.desktop with these contents:

   [Desktop Entry]
   Encoding=UTF-8
   Name=ASUS OSD
   Comment=ASUS OSD
   Exec=/usr/bin/asusosd
   Terminal=false
   Type=Application
   StartupNotify=false
   Hidden=false

Bluetooth

Currently, Bluetooth is not enabled with the Fn + F2 hotkey. To communicate with Bluetooth devices, make sure Bluetooth has been enabled in the BIOS.

To enable/disable bluetooth from the command line :

 # enable
 echo 1 > /sys/devices/platform/eeepc/bt
 # disable
 echo 0 > /sys/devices/platform/eeepc/bt

Install the bluez package. Make sure the bluetooth module is loaded.

See the Arch Linux Bluetooth and Bluetooth Mouse wiki pages for more information about configuring and using Bluetooth devices.

Webcam

To enable/disable the camera:

 # enable
 echo 1 > /sys/devices/platform/eeepc/camera
 # disable
 echo 0 > /sys/devices/platform/eeepc/camera

To record video and take photos, you may use cheese or the wxcam package (available in the edgy repository or AUR).

 pacman -S wxcam

To simply test the camera, you may use mplayer:

 mplayer -fps 15 tv://

The webcam is reported to work with Skype.

Audio

Audio output is enabled with the default ALSA drivers distributed with the kernels. You may need to install the alsa-lib and alsa-utils packages to get full functionality. Make sure the snd-hda-intel module is loaded.

Both the microphone and PC speakers should work out-of-the-box with current versions of the kernel and ALSA drivers. A common gotcha: if you're not getting any sound, did you run alsamixer and unmute your channels?

See the Arch Linux ALSA wiki page for more information about configuring and using ALSA.

X

This section is out-of-date, and needs to be cleaned up.

Video

You will need the xf86-video-intel video driver:

 pacman -S xf86-video-intel

To set-up the touchpad, (including two-fingers scrolling & tapping), just install xf86-input-synaptics (no xorg.conf required):

 pacman -S xf86-input-synaptics

Some users have reported problems with vsync and the xf86-video-intel driver. These problems may be partially solved in the application (see this forum post.)

Connecting an external Monitor

The xrandr utility (part of Xorg) can be used to switch into screen modes appropriate either for the EeePC's LCD or an externally connected monitor. Running "xrandr -q" will show you the available output devices and the supported modes. Then run the tool as follows:

 xrandr --output LVDS --off  --output VGA --auto   # disable LCD, enable monitor
 xrandr --output LVDS --auto --output VGA --auto   # enable both
 etc.

Your monitor will probably support a bigger resolution than the LCD. To make use of that additional screen space, tell the X server to create an appropriately large framebuffer by adding the "Virtual" directive to the Screen/Display section in /etc/X11/xorg.conf:

 Section "Screen"
   Identifier "Screen0"
   Device     "Card0"
   Monitor    "Monitor0"
   DefaultDepth     24
   SubSection "Display"
       Viewport   0 0
       Depth     24
       Virtual 1600 1200   # max resolution is 1600x1200
   EndSubSection
 EndSection

On the LCD, the additional space will be unused, but when switching to the external monitor, the screen will be. Note that some window managers (such as ratpoison) might need to be restarted to realize that the visible screen size has changed.

Letterboxing with XRandR

If you have set up your X server and kernel to use KMS you might have some trouble getting a 800x600 resolution letterboxed (centered) rather than stretched, which might be unpleasant in some programs that do not support 1024x600 such as older games. This is because with KMS the xrandr syntax is a bit different [1]. To get a centered 800x600 visual field on your 1024x600 panel run:

$ xrandr --output LVDS1 --set "scaling mode" "Center"
$ xrandr -s 800x600

Replace "800x600" with "1024x600" to go back to the native resolution.

Mouse and Synaptics driver

To enable the Synaptics drivers, first install the synaptics package:

 pacman -S synaptics

You also need the evdev driver for Xorg:

 pacman -S xf86-input-evdev

Then make these changes to /etc/X11/xorg.conf:

 Section "ServerLayout"
   Identifier     "ArchLinux"
   Screen      0  "Screen0"
   InputDevice    "keyboard"
   InputDevice    "mouse"
   InputDevice    "synaptics"
 EndSection
 
 [...]
  
 Section "Files"
   #    RgbPath      "/usr/share/X11/rgb"
   ModulePath   "/usr/lib/xorg/modules"
   FontPath     "/usr/share/fonts/misc"
   FontPath     "/usr/share/fonts/100dpi:unscaled"
   FontPath     "/usr/share/fonts/75dpi:unscaled"
   FontPath     "/usr/share/fonts/TTF"
   FontPath     "/usr/share/fonts/Type1"
 EndSection
  
 Section "Module"
   Load  "GLcore"
   Load  "glx"
   Load  "record"
   Load  "dri"
   Load  "extmod"
   Load  "xtrap"
   Load  "dbe"
   Load  "freetype"
   Load  "synaptics"
 EndSection
     
 [...]
  
 Section "InputDevice"
   Identifier  "mouse"
   Driver      "mouse"
   Option        "Device" "/dev/input/mice"
   Option        "Protocol" "IMPS/2"
   Option        "Emulate3Buttons" "yes"
   Option        "ZAxisMapping" "4 5"
   Option        "CorePointer"
 EndSection
  
 Section "InputDevice"
   Identifier  "synaptics"
   Driver      "synaptics"
   Option      "Device"           "/dev/psaux"
   Option      "Protocol"         "auto-dev"
   Option      "PalmDetect"       "0"
   Option      "SHMConfig"        "true"
   Option      "SendCoreEvents"   "yes"
   Option      "RBCornerButton"   "0"
   Option      "RTCornerButtom"   "0"
   Option      "TapButton1"       "1"
   Option      "TapButton2"       "2"
   Option      "TapButton3"       "3"
   Option      "AccelFactor"   "0.0320"
   Option      "MaxSpeed"      "0.72"
   Option      "MinSpeed"      "0.6"
   Option      "Emulate3Buttons"       "true"
   Option      "TouchPadOff"       "0"
   Option      "LBCornerButton"        "2"
   Option      "LeftEdge"      "60"
   Option      "RightEdge"     "1070"
   Option      "TopEdge"       "90"
   Option      "BottomEdge"    "680"
   Option      "VertTwoFingerScroll"   "1"
   Option      "HorizTwoFingerScroll"  "1"
   Option      "HorizScrollDelta"  "20"
   Option      "LockedDrags"   "1"
   Option      "CoastingSpeed" "0.13"
   Option      "CircularScrolling"     "1"
   Option      "CircScrollTrigger"     "8"     # 8=Top Left Corner
 EndSection

The latest version of the Elantech touchpad driver patch is available at http://arjan.opmeer.net/elantech/ or here mac how to You'll need to apply this patch to your kernel source, then recompile the kernel. This patch has been tested on the 2.6.27.6 and 2.6.27.7 kernels.

Miscellaneous

If you do not have an xorg.conf file, and want to configure the keyboard layout on the fly:

 # Set keyboard to cz with qwerty
 setxkbmap cz qwerty

To configure the mouse speed:

 # Set mouse movement and acceleration (you need to tweak this to your needs)
 xset m 2 1

Performance Tips

The following tweaks can be used to improve performance and/or power consumption.

Speedstep

Speedstep is included by default in the Linux 2.6.x kernel.

The zen-eee901 kernels contain the Speedstep modules. Add acpi-cpufreq to your MODULES list in /etc/rc.conf to enable it on boot, or execute:

 modprobe acpi-cpufreq

See http://rffr.de/acpi for more information.

For more information on overclocking the Asus EEE PC line, see http://wiki.eeeuser.com/howto:overclockfsb

Note: Speedstep is applicable to the 901 as it's CPU is of the Intel Atom family. The eee 900 and 904 use an Intel Celeron M CPU and so should use the p4-clockmod module instead.

Faster boot and udev

To safe a little time with udev during boot, you can edit your /etc/rc.conf and disable MOD_AUTOLOAD. It should look like this

 MOD_AUTOLOAD="no"
 MODULES=(atl1e rt2860sta rfkill acpi-cpufreq pciehp intel_agp snd-hda-intel !snd-pcsp bluetooth)

In addition, it may be helpful to do the following:

 MODULES=( ... !eeepc_laptop ... )

and then load that module in the background in rc.local:

 modprobe eeepc_laptop &

(insert that line)

Boot Booster

Enable Asus Boot Booster feature in BIOS to skip some tests during boot.

 "Boot">"Boot Settings Configuration">"Quick Boot">[Enabled]

Appendix

Hardware Overview for 901

The following hardware is used in the Asus EEE 901:

   * CPU: 1.6GHz N270 Intel Atom
   * RAM: 1024 MB, DDR2 667
   * ports: 3x USB, VGA
   * LAN/ethernet: Atheros L1e 1000 Mbit
   * WLAN: Ralink rt2860 802.11b/g/n
   * Bluetooth, webcam 1.3 Mpix
   * Card reader: SD, SDHC, MMC
   * touchpad: "Multi-touch" elantech
   * display: 1024x600 8.9"
   * weight: 1 kg
   * battery: Li-ion, 6600mAh
   * HDD: 4 + 8GB, empty slot for 1,8" (remove of the 8GB module needed)
   * Graphics:  Intel GM950 core, 945GME chipset
 00:00.0 Host bridge: Intel Corporation Mobile 945GME Express Memory Controller Hub (rev 03)
 00:02.0 VGA compatible controller: Intel Corporation Mobile 945GME Express Integrated Graphics Controller (rev 03)
 00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)
 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.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (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 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
 00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller (rev 02)
 00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
 01:00.0 Network controller: RaLink Device 0781