ASUS Eee PC 1015pn
This page includes general information regarding Asus EEE PC 1015pn and related notes on installing/using Arch Linux on it.
- CPU: Intel Atom Dual-Core N550 (1.5 GHz)
- RAM: 1GB 1066MHz DDR3 (up to 2GB)
- HDD: 250 5400RPM
- GPU: nVidia ION2 with Optimus
- Display: 10,1" 1024 x 600 pixels LCD display
- Wireless: BCM4313
- Bluetooth: TODO
- Webcam: Working (remenber to add yourself to video group)
- Card Reader: TODO
- Extras: 3 USB 2.0 ports, Bluetooth 3
HDD important issue
With the Western Digital hard drive (not SSD), there is an important issue: using the APM (Advanced Power Management) there are too nomerous spin-down, that can damage the hard drive. To confirm this issue you have to install smartmontools:
# pacman -S smartmontools
And you have to run multiple times this command (once in a minute for like 5 minutes):
# smartctl -a /dev/sda|grep Load_Cycle_Count
If the number under Load_Cycle_Count is increasing in a small amount of time (1 or 2 in a minute) you have this issue.
The problem is easily solvable using laptop-mode-tools. In your /etc/laptop-mode/laptop-mode.conf you have to set:
# # Should laptop mode tools control the hard drive power management settings? # CONTROL_HD_POWERMGMT=1 # # Power management for HD (hdparm -B values) # BATT_HD_POWERMGMT=255 LM_AC_HD_POWERMGMT=255 NOLM_AC_HD_POWERMGMT=255
This disable all power management systems of the hard drive cause a light heat up (maybe). The same behaviour can be obtained running this command:
# hdparm -B 255 /dev/sda
the 255 number is the power-management level, in a range of 1-255 where 1 is maximum powersaving and 255 powersaving disabled. However setting the value to 253 causes a lot of spin-down. Setting the spin-down feature (it parks the heads away from disk) however can save hdd in case of fall.
This method correct this issue once and for all : WDIDLE3
nVidia ION 2 with Optimus
Optimus doesn't work at all but it is possible to choose which graphical card will be used on next reboot.
You can get 2 'modes' :
- By default (if you don't do anything) the machine starts with the Nvidia beeing the only VGA controller visible (so it will use the ION chip).
- Using some tools you can start with the Intel and Nvidia VGA controller visible. In this mode the Intel controller is used and it's possible to powerdown the Nvidia part.
To switch between those modes you will need acpi_call.
git clone http://github.com/mkottman/acpi_call.git cd acpi_call make sudo insmod acpi_call.ko
Using AUR (recommended):
yaourt -S acpi_call-git
Add acpi_call module into /etc/rc.conf
Selecting Video Card
To select Intel + Nvidia on next reboot :
echo "\OSGS 0x03" > /proc/acpi/call
Note: You will need to do this at each boot as long as you want to stay with the Intel part (If you don't do this the Eee will start with only the Nvidia Ion part).
You can check the current mode with :
echo "\AMW0.DSTS 0x90013" > /proc/acpi/call cat /proc/acpi/call
For example if the result is 0x30003 :
- First byte 0x03 means mode 3 (returnvalue &= 3)
- Logical AND with 0x10000 and right-bitshift 16 bytes gives whether Optimus is supported (1=true, 0=false): here 1
After reboot you can see with lspci that the Intel VGA controller is visible. You can now power down the ion part with (you'll need the acpi_call module loaded):
echo "\_SB.PCI0.P0P4.DGPU.DOFF" > /proc/acpi/call
Note: When leaving suspend you need to do this again because the Nvidia part reactivates itself.
rc script to disable nvidia:
#!/bin/bash . /etc/rc.conf . /etc/rc.d/functions if lsmod | grep -q acpi_call; then stat_busy 'Swith per ACPI_CALL to Optimus' echo "\OSGS 0x03" > /proc/acpi/call echo "\_SB.PCI0.P0P4.DGPU.DOFF" > /proc/acpi/call echo "\AMW0.DSTS 0x90013" > /proc/acpi/call result=$(cat /proc/acpi/call) case "$result" in 0x30003) stat_done ;; *) stat_fail ;; esac else stat_busy 'ACPI_CALL mod not loaded' stat_fail fi
You can check consumption with :
- Before disabling: ~1700mA.
- After disabling: ~1000mA.
As you can see this method saves a lot of battery !
To enable acpi you need to edit menu.lst and add acpi_osi=Linux to the kernel line like so:
kernel /boot/vmlinuz-linux root=/dev/sda1 ro acpi_osi=Linux
This enabled you to trigger devices in /sys/devices/platform/eeepc/.
Kernel >= 2.6.37 include the required module natively.
Note: The Broadcom BCM4313 card requires the compat-wireless-brcm80211 module which is available in the AUR if kernel <=2.6.36
For kernel 3.0 or higher, wireless card seems to be blocked due to a bug. To solve this issue, you can add "blacklist bcma" to /etc/modprobe.d/modprobe.conf and restart. (FS#25485)
- Manage to get the xf86-video-intel and nvidia packages installed (specific libgl being used by each one)
- Get the bluetooth working, without kernel panic attacks.