Netbook Asus 1005HA
Characteristics
- ASUS 1005HA ACPI BIOS revision 1102
- Build Date 10/16/09
- EC Firmware Version:EPCD-029
- CPU Intel Atom N280 @ 1.66GHz, FSB 667MHz, L1 24kb, L2 512kb (2 logical cores, 1 physical)
- 2Gb 667MHz DDR2 non-ECC CL5 SODIMM (the original one was a 1Gb SODIMM)
- 1024x600 Intel Corporation Mobile 945GME Express Integrated Graphics Controller
- BIOS v02.58 American Megatrends
- HDD ST9250315AS 250GB
Disk /dev/sda: 250.0 GB, 250059350016 bytes 255 heads, 63 sectors/track, 30401 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x8da2c67c Device Boot Start End Blocks Id System /dev/sda1 * 1 13055 104857600 7 HPFS/NTFS /dev/sda2 13055 29094 128835584 7 HPFS/NTFS /dev/sda3 29094 30400 10485760 1b Hidden W95 FAT32 /dev/sda4 30400 30401 16064+ ef EFI (FAT-12/16/32)
- Atheros AR8132 / L1c Gigabit Ethernet Adapter
- Atheros AR9285 Wireless Network Adapter (PCI-Express) AW-NE785H
- ASUSTek Broadcom Bluetooth 2.1 (USB) AW-BT253
- Battery LION ASUS 1005HA 5800mAh 63Wh
- Intel Corporation 82801GBM/GHM (ICH7 Family) SATA AHCI Controller
- Webcam 0.3Mpx UVC 1.00 IMC Networks (13d3:5108)
- SynPS/2 Synaptics TouchPad
Firmware upgrade
It has v1102, since there were a couple of new versions:
1401 Update brightness table 1301 Improve Wifi performance 1301 Update EC firmware 1203 Fix there is no "safely remove hardware" icon in windows 7 when plug in SD card.
So let's try to install v1401
- http://support.asus.com/download/download.aspx
- EEE family / EEE PC / 1005HA / Linux
- BIOS 1401
- Unzip archive
- Rename file 1005HA-ASUS-1401.ROM into 1005HA.ROM and move it to a USB stick (my 6Gb USB HD wasn't detected I had to use a real 1Gb USB Flash)
- Reboot on the USB by pressing ALT-F2 while rebooting
- Flash is done automatically
- Remove USB stick & reboot
Ubuntu
Install
For this one I wanted a minimal maintenance stuff for basic laptop operations so I chose the latest Ubuntu at the moment: Lucid Lynx.
Actually they have a version special for netbooks, installable from a USB stick, cool:
Ubuntu Netbook 10.04
The only thing is that I wanted to only replace the 2 NTFS partitions and keep the last 2 partitions for now.
First time I tried I used the partition tool from Ubuntu installer but if it succeeded completing the install, after reboot it appeared that the partition table didn't contain refs to the root partition, ouch! So the new partition table was never written to the disk.
I rebooted on a good old FCCU liveCD v12 and changed the partition table the way I wanted then I did again the Ubuntu install, this time without troubles.
I advise to keep at least the EFI partition as it's an 8Mb primary partition used by the BIOS for its "Boot Booster".
In case you already deleted it, simply recreate it with fdisk: 8Mb, type "ef". On reboot, hit F2, and re-enable boot booster in the BIOS.
Mine is at end of the 250Gb HDD:
Device Boot Start End Blocks Id System /dev/sda4 30400 30401 16064+ ef EFI (FAT-12/16/32)
Out-of-the-Box
Working:
- Suspend-to-RAM
- Suspend-to-Disk (hibernate)
- Webcam
- VGA output
- Ethernet
- Wi-Fi
- Audio playback
- CPU freq scaling 1/1.33/1.66GHz, ondemand
- sdcard reader
- Silverkey disable touchpad
- Hotkeys: suspend, Wi-Fi on/off, disable touchpad, brightness up/down, volume off/up/down
- Bluetooth, it detected a W300i phone and I could use the phone as remote control OOB, could use it to access Internet as well apparently
- My 3G USB key (Vodaphone K3565 = Huawei E160)
Not working?:
- multi-touchpad. See below the paragraph about Touchpad
- audio mic. See below the paragraph about Microphone
- Hotkeys: backlight on/off (not clear, it worked at the beginning, anyway it's barely usable without any backlight... Once Jupiter is used it seems it's used as VGAOFF)
- Hotkeys: hotkey display toggle, hotkey display resize, taskmanager, super-hybrid-engine. See below how to use them with eeepc-laptop & Jupiter
Powersave Tuning
eeepc-laptop
eeepc-laptop module gives access to the eee hotkeys & eee Super Hybrid Engine for better powersafe control
Install driver:
$ modinfo eeepc-laptop filename: /lib/modules/2.6.32-23-generic/kernel/drivers/platform/x86/eeepc-laptop.ko license: GPL description: Eee PC Hotkey Driver author: Corentin Chary, Eric Cooper srcversion: 9A474055673699361160D37 alias: acpi*:ASUS010:* depends: vermagic: 2.6.32-23-generic SMP mod_unload modversions 586 parm: hotplug_disabled:Disable hotplug for wireless device. If your laptop need that, please report to acpi4asus-user@lists.sourceforge.net. (bool)
sudo vi /etc/default/grub => GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux" sudo update-grub reboot
Now eeepc-laptop kernel module will be properly loaded
In /var/log/syslog
eeepc_laptop: Eee PC Hotkey Driver eeepc_laptop: wlan hotplug disabled eeepc_laptop: Hotkey init flags 0x41 eeepc_laptop: TYPE (2000000) not reported by BIOS, enabling anyway eeepc_laptop: PANELPOWER (4000000) not reported by BIOS, enabling anyway eeepc_laptop: TPD (8000000) not reported by BIOS, enabling anyway eeepc_laptop: Get control methods supported: 0xe101713 eeepc_laptop: Backlight controlled by ACPI video driver input: Asus EeePC extra buttons as /devices/platform/eeepc/input/input11 NetworkManager: <info> Found wlan radio killswitch rfkill5 (at /sys/devices/platform/eeepc/rfkill/rfkill5) (driver eeepc)
Sysfs controls:
$ ls /sys/devices/platform/eeepc/ available_cpufv cpufv_disabled input/ subsystem/ camera disp modalias uevent cardr driver/ power/ cpufv hwmon/ rfkill/
Display:
/sys/devices/platform/eeepc/disp: 1 = LCD 2 = CRT 3 = LCD+CRT
If you run X11, you should use xrandr instead.
Camera:
/sys/devices/platform/eeepc/camera: 1 = on 0 = off
SDCard reader:
/sys/devices/platform/eeepc/cardr: 1 = on 0 = off
CPU clock configuration:
/sys/devices/platform/eeepc/cpufv: 0 = Super Performance Mode 1 = High Performance Mode 2 = Power Saving Mode
Reading this file will show the raw hexadecimal value which is defined as follow:
| 8 bit | 8 bit | | `---- Current mode `------------ Availables modes
For example, 0x301 means: mode 1 selected, 3 available modes.
Jupiter
Jupiter is taking care of multiple power saving settings including the eee SHE & GMA950 overclocking if you install also jupiter-support-eee
See http://www.webupd8.org/2010/06/jupiter-take-advantage-of-asus-super.html
To install it, there are a few pre-requisite:
aptitude install libnotify-bin acpi
Get .deb packages jupiter & jupiter-support-eee from here & install them
It takes also care of the extra FN buttons (there is also packages eee-applet & eeepc-acpi-scripts or eeepc-control if you prefer not to use Jupiter)
Applet will start at reboot, otherwise you can already start it manually by calling "jupiter.exe" (oups, C#...)
Hovering applet displays CPU temperature.
Issue: very slow at displaying messages when pressing several times / several buttons in a short amount of time.
Support:
powertop & greedy applications
powertop permits to spot easily which applications are wakening the CPU dozen of times per second and/or are writing files to the disk, preventing spin down.
aptitude install powertop
Maybe you can simply disable applications at startup but as I didn't use them anyway I removed them completely:
ubuntuone-* was causing 16% of the wakeups
How to remove it?
killall ubuntuone-login ubuntuone-preferences ubuntuone-syncdaemon rm -rf ~/.local/share/ubuntuone rm -rf ~/.cache/ubuntuone rm -rf ~/.config/ubuntuone rm -rf ~/Ubuntu\ One/ # unless you've valuable data here, be careful! sudo apt-get purge ubuntuone-client* python-ubuntuone-storage*
It removed rhythmbox-ubuntuone-music-store python-ubuntuone libubuntuone-1.0-1 ubuntuone-client-gnome ubuntuone-client python-ubuntuone-client python-ubuntuone-storageprotocol
Desktopcouch is also quite active, actually it's used amongst others by evolution, gwibber, ubuntu-one,... so let's remove gwibber
killall gwibber-service apt-get purge gwibber*
It removed gwibber gwibber-service
and all CouchDB
pkill -f couch apt-get purge couch*
It removed python-desktopcouch-records python-desktopcouch desktopcouch couchdb-bin python-couchdb
other monitoring commands
We just saw powertop, here are some other handy commands which can help debugging activities on the HDD & spindown matters.
You can skip completely this section if you don't plan to get your hands dirty.
Smartmontools:
aptitude install -R smartmontools
by default the daemon will not run, we just want to have smartctl available
smartctl -A /dev/sda|grep ^193 193 Load_Cycle_Count 0x0032 100 100 000 Old_age Always - 352
so here 352 spinoff cycles over the HDD lifetime.
Hdparm:
Will be used by laptop-mode-tools for powersaving, see next chapter.
To watch if the drive is spinning or not:
watch hdparm -C /dev/sda
To spin down immediately (for debug only. You want it to be automated, don't you?)
hdparm -y /dev/sda
Ngflushd:
A kind of super noflushd, but more oriented towards server & supports journaling fs
You can install the .deb but make sure to edit /etc/default/ngflushd to disable the daemon startup, we'll use it here only for statistics collection
Example if you want to try ngflushd to actually spin down the HDD, not to be used simultaneously with laptop-mode!
Note that in this example I disabled partitions remount because it failed with "ngflushd: Remount error: /dev/sda7: Invalid argument"
ngflushd -t1 -w50 -j6 -l500 -a
Watching the results after two hours:
ngflushd -c status Daemon state: IDLE Disks: 0/1 (up/dn) Uptime: 1:54 (h:mm) Disk: /dev/sda S mounts: 3 down: 68% cycles: 23 (484.5 day)
OK, now here we'll start the daemon in foreground, then switch it to PAUSED mode so it will collect data but won't act on the HDD. It's a nice way to watch laptop-mode efficiency.
ngflushd -vv -d -a
From another terminal, send a suspend command to the daemon to switch it to PAUSED mode:
ngflushd -c suspend
Back to the daemon window, you can observe in realtime when external event spins down the HDD:
ngflushd: Daemon state: PAUSED Disks: 1/0 (up/dn) Uptime: 0:00 (h:mm) ngflushd: External spindown: /dev/sda ngflushd: Normal spinup: /dev/sda: after 0:00 (h:mm) etc
blktrace:
Watching which application writes to the drive, preventing it to spin down:
aptitude install blktrace blktrace -d /dev/sda -o - | blkparse -i -
The output is buffered and will be flushed when CTRL-C, a pity.
The output is quite hard to understand, see man page
iostat:
Only global IO usage on HDD:
aptitude install sysstat iostat -p sda 2
Some more details about HDD spinning down in this thread
laptop-mode-tools
aptitude install -R laptop-mode-tools
=> accept to remove pm-utils-powersave-policy
pm-utils-powersave-policy was doing two things:
- increase dirty_writeback to one minute
- Power down HDA controller with corresponding Sigmatel/IDT codec after 10 idle seconds
laptop-mode-tools is doing the same, but we've to enable the Intel HDA powersave mode manually
Default config of the main laptop-mode-tools in /etc/laptop-mode/laptop-mode.conf was ok for me, I just wanted to enable a few extra modules, see below
Intel HDA power saving settings:
Modify /etc/laptop-mode/conf.d/intel-hda-powersave.conf
CONTROL_INTEL_HDA_POWER=1
FYI powertop suggested automatically this powersave setting, which corresponds to
echo 1 > /sys/module/snd_hda_intel/parameters/power_save
Intel SATA power management settings:
Modify /etc/laptop-mode/conf.d/intel-sata-powermgmt.conf
CONTROL_INTEL_SATA_POWER=1
FYI powertop suggested automatically this powersave setting, which corresponds to
echo min_power > /sys/class/scsi_host/host0/link_power_management_policy
Note that it seems min_power is always set even when on AC
USB autosuspend settings:
Modify /etc/laptop-mode/conf.d/usb-autosuspend.conf
CONTROL_USB_AUTOSUSPEND=1
FYI powertop suggested automatically this powersave setting
Note that laptop-mode could also take care of CPUfreq & eee SHE but we're already using Jupiter for that.
relatime
ngflushd sets relatime when remounting ext3/ext4 but laptop-mode-tools doesn't do it so we've to set it ourselves in /etc/fstab:
UUID=xxx / ext4 errors=remount-ro,relatime 0 1 UUID=xxx /home ext4 defaults,relatime 0 2
See here what is relatime: to summarize, relatime is a good compromise between atime (most expensive) and noatime (least expensive)
Power consumption measurements
Using powertop, you can get an idea of the power consumption of the various elements.
Getting it right is always a bit tricky as you've to make sure there is no other active elements than the ones you want to measure, especially check that the HDD is spin down (hdparm -C /dev/sda).
Measurements are not per sub-system but the total power consumption, then only you can approximate what's the diff when feature is on/off, and for basis X=(LCD_off, WiFi_off) you've to find it from A=(LCD_on, WiFi_off), B=(LCD_off,WiFi_on) and C=(LCD_on,WiFi_on): X=A-(C-B)
How I did measurements:
- HDD standby (spinning down), better to run it at start of each non HDD test...
hdparm -y /dev/sda
- LCD backlight off (be sure it's not just a black screen!)
DISPLAY=:0.0 xset dpms force off
- HDD read once per second to keep it spinning
for i in /usr/bin/*; do sleep 1; cat $i >/dev/null; done
- HDD read continuously
dd if=/dev/sda of=/dev/null
- HDD read/write continuously
dd if=/dev/sda of=/tmp/foo
- Camera active
cheese
- Keeping CPU busy (!logical dualcore)
while :;do :;done& while :;do :;done
- Forcing CPU to 1GHz
echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor echo powersave > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
- Forcing CPU to 1.66GHz
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor echo performance > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
- Bluetooth scanning
while :;do hcitool scan; done
- Disabling camera & SDCard reader
echo 0 > /sys/devices/platform/eeepc/camera echo 0 > /sys/devices/platform/eeepc/cardr
- Wi-Fi TX 100%
# From another machine ssh eeepc "dd if=/dev/zero" >/dev/null
Running in minimal mode (4.6W, with Wi-Fi active every 10s) for 8.5 hours:
- -> battery at 38% capacity, remains 5.2h (4.6*(8.5+5.2)=63Wh)
- expected total autonomy: 13.7h
So I got the following approximations:
- Basis (laptop-mode, CPU 1GHz idle, HDD standby, Wi-Fi disabled, BT disabled, LCD off, camera disabled, cardr disabled)
- 4.1W / 4.8W
- different results on different days... CPU fan on/off??
- 4.1W / 4.8W
- CPU
- +0.5W 1.00GHz active 100%
- +0.3W 1.66GHz idle
- +1.3W 1.66GHz active 100%
- Wi-Fi
- +? enabled with powersave
- +0.5W enabled, active every 10s
- +1.6W active TX 100%
- Bluetooth
- +0W enabled inactive (probably due to USB autosuspend)
- +0.2W active scanning
- HDD
- +0.5W spinning
- +3.8W read/write
- LCD backlight
- +1.4W min level
- +2.9W max level
- camera
- +0W enabled inactive (probably due to USB autosuspend)
- +1.8W active
- Ethernet
- +0.2W connected
- +1.0W active TX 100%
- VGA out
- +0.9W active
- SDCard reader
- +0W enabled inactive (probably due to USB autosuspend)
- +0.2W card mounted
- +1.1W card read/write
- Audio??
- Touchpad??
- 3G USB stick ??
Tuning ONGOING
powertop proposed some more power saving settings:
Wireless card powersave mode:
iwconfig wlan0 power timeout 500ms
Disable camera USB (but we've seen that with USB autosuspend, enabled but inactive camera doesn't consume much)
echo 0 > /sys/devices/platform/eeepc/camera
Disable SDCard reader (but we've seen that with USB autosuspend, enabled but inactive camera doesn't consume much)
echo 0 > /sys/devices/platform/eeepc/cardr
could be done via /etc/laptop-mode scripts or scripts via Jupiter
laptop-mode:
? auto-hibernate required or is it already the case??
Touchpad
aptitude install gpointing-device-settings
& enable circular scrolling (System / Pointing Devices)
For multi-touch I'm not sure how to proceed. Lucid Lynx doesn't use hal anymore.
See
- http://blog.mfabrik.com/2009/10/11/setting-up-multi-touch-scrolling-for-ubuntu-9-10-karmic-koala-linux-on-asus-eee-1005ha-netbook/
- http://www.mydellmini.com/forum/other-distributions/19036-two-finger-scrolling-ubuntu-variants.html
- http://ubuntuforums.org/showthread.php?t=1451316
- http://ubuntuforums.org/showthread.php?t=1419833
- http://www.bhagwad.com/blog/2010/technology/alps-synaptics-touchpad-configuration-in-lucid-lynx-ubuntu-10-04.html
- http://wiki.archlinux.org/index.php/Asus_Eee_PC_1005HA
Microphone
Microphone does not work out of the box.
From here:
Install the pulse audio tools
aptitude install paman pavucontrol pavumeter padevchooser
Sound & Video / PulseAudio Volume Control / Input Devices tab:
Unmute audio
Unlock channels
Set front left channel to 100% and the front right channel to 0%.
Additional packages
Skype
Enable Canonical PArtners Repositories: System / Software Sources / Other Software:
http://archive.canonical.com/ubuntu lucid
aptitude install skype
Bugs
At reboot I encountered once the following bug: getpwuid_r(): failed due to unknown user id(0), gone after a reboot.
Misc links
- https://wiki.ubuntu.com/HardwareSupport/Machines/Netbooks#Ubuntu%2010.4%20Lucid%20Netbook%20Edition
- http://forum.ubuntu-fr.org/viewtopic.php?id=337986
- http://doc.ubuntu-fr.org/asus_eee_pc_1005ha
- http://wiki.debian.org/DebianEeePC/Models
- http://wiki.debian.org/DebianEeePC/Model/1005HA
- http://www.blogeee.net/category/asustek/nb10/1005h/ (fr)
- http://www.blogeee.net/codex/index.php?title=Asus_EeePc_1005HA (fr)
- How to open a 1005HA
- http://support.asus.com/download/download.aspx EEE family / EEE PC / 1005HA / Linux