Asus EEE 900 16G
From Zenwalk Wiki
| Desktops | Laptops | Graphic Devices |Networking Devices | Peripherals | Printers |
This wiki page is made to share my experience installing a stock Zenwalk 5.2 on my black Asus EEE 16G. This article doesn't cover everything but do cover the most important areas to get a productive system up and running. --Tactus 07:56, 9 August 2008 (MDT)
Contents |
[edit] Preparing the USB stick from Zenwalk
I started following the detailed guide here but found a quicker way to prepare a bootable USB disk using UNetbootin.
For this task I used a dos formated (fat16 or fat32) 1 GB USB stick. To mount the drive, which is necessary for UNetbootin, I just opened it in Thunar.
When starting up UNetbootin it did complain about udev and p7zip not being installed in my stock Zenwalk 5.2. Udev is already installed by default as far as I know and I installed p7zip from repository. UNetbootin seem to support automatically downloading of various distributions but I just used my zenwalk-5.2.iso since I already had it on disk.
The UNetbootin GUI is mostly self explaining so I just accepted my options and the rest happened automatically.
[edit] Installing to SSD
Set up boot order in bios clicking f2 at boot or else the thumbdrive kernelpanics. It's seems like it doesn't like being booted from hitting esc key.
When setup program starts chose your keyboard and set up your partitions. Normally you wouldn't need much swap space with 1 GB ram, if any at all. With the slow and small SSD found in the Asus EEE 900 it's a good idea to save disk writes and storage space. However take into account that tmpfs by default use up to half your ram and dynamically utilize swap space if you run out of ram for other tasks. (More on tmpfs later.) Personally I have a small 256 MB swap and used the rest for Zenwalk (ext3), but it's up to you to decide what works best. :-)
Now exit the setup after you have sat up the partitions. You'll see the command prompt, enter the following.
fdisk -l mkdir /zeniso mount /dev/sdb1 /zeniso setup
Notice that fdisk -l is just to find your usb stick. In my case the usb stick existed on /dev/sdb.
Now continue your installation by running "setup" command.
When the setup program asks you about the location of you files, don't pick cdrom instead chose pre-mounted directory and enter /zeniso.
Lilo seem a bit tricky, it throws an error using the defaults. To repair lilo just follow this guide when setup is finished: LILO_The_Bootloader_How_To_Repair_It. Reboot, restore hard disk order in BIOS and you should boot into Zenwalk.
[edit] Setting up wireless drivers
The guide found here seems fine -> Madwifi-ng_(Atheros), however additional steps are needed. Beside madwifi-ng I also found I needed a fresh version of madwifi-hal. It can be downloaded from snapshots.madwifi.org. Current "madwifi-hal-0.10.5.6-r3835-20080801" worked fine for me. The installation for madwifi-hal is straight forward, just decompress the files somewhere, and run make, make install.
In summary:
1) Use this guide -> Madwifi-ng_(Atheros)
2) Install a fresh version of madwifi-hal from here. -> snapshots.madwifi.org
To activate the correct module on boot up you can add the following at the end of /etc/rc.d/rc.modules
/sbin/modprobe ath_pci
And blacklist modules we don't want to interfere, add the something like this into /etc/modprobe.d/blacklist
# Wireless blacklist ath5k blacklist ndiswrapper
[edit] Setting up Ethernet drivers
The Asus EEE ships with Attansic L2 Ethernet chipset. Currently work is done to make the driver merged into Linux kernel, but for now it can be downloaded from here: http://atl2.sourceforge.net/
PS: Make sure atl2 isn't already included in your kernel. Do "modprobe -l | grep atl" and look for atl2 or atlx. (atl1 is not compatible.)
Unpack the sourcefile somewhere, then compile and install.
$ cd /path/to/atl2/drivers/ $ make # mkdir /lib/modules/`uname -r`/kernel/drivers/net/atl2 # cp /path/to/atl2/drivers/*.ko /lib/modules/`uname -r`/kernel/drivers/net/atl2/
Add "/sbin/modprobe atl2" into "/etc/rc.d/rc.modules" to load driver on boot.
[edit] Install webcam drivers
To compile this driver make sure you have the kernelsource package installed first, then do the following.
$ svn checkout svn://svn.berlios.de/linux-uvc/linux-uvc/trunk linux-uvc $ cd linux-uvc $ make
Log in as root and go to the linux-uvc directory.
# make install # echo "/sbin/modprobe uvcvideo" >> /etc/rc.d/rc.modules
Reboot, push f2 and enter bios. Make sure webcam is enabled. If everything went OK, programs like Skype 2+ should pick up your camera automatically. However so far I've only gotten it to work under Skype, other programs throws some v4l2 error.
[edit] CPU frequency scaling
Add or uncomment the following to your /etc/rc.d/rc.modules
/sbin/modprobe p4-clockmod /sbin/modprobe cpufreq_ondemand
To activate ondemand governor at boot up, add the following line to /etc/rc.d/rc.local
# CPU scaling /bin/echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
At default Zenwalk runs at full 900 Mhz. With ondemand I get 112.5 MHz when idle and 900 Mhz under load.
Sounds good for saving battery live, unfortunately scaling from 112.5 MHz makes the userinterface very slow. To solve this we can bump the minimum frequency up to 450 MHz. Include the following in /etc/rc.d/rc.local
/bin/echo "450000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
If you still find the machine to slow with ondemand governor you can lower the threshold to activate scaling. Normally it starts at 80% load, to lower the threshold to 60% include the following to your /etc/rc.d/rc.local
/bin/echo "60" > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold
[edit] Avoid disk writing
tmpfs is an excellent tool to avoid disk writing, basically it creates a virtual file partition in virtual memory. This is ideal to store temporary files when you have slow SSD disks like in the Asus EEE 900 16G. To mount /tmp directory into a tmpfs just add the following into /etc/fstab:
tmpfs /tmp tmpfs noatime 0 0
Empty the old /tmp folder and then use mount -a or reboot to activate the extra partition.
(PS: It might be a good idea to have a swap partition when using tmpfs.)
[edit] Make Firefox/Iceweasel 3 store cache files in tmpfs
In the url field, type "about:config", then right click and add new string type. Name it "browser.cache.disk.parent_directory" and give it string value "/tmp/ff3_SOMERANDOMNAME". Restart Firefox/Iceweasel.
Alternatively you can also try to turn off cache in preferences for Firefox/Iceweasel 3.
[edit] Make bittorrent not hang your system
The default Transmission klient for bittorrent really kills system performance with its aggressive IO activity on the SSD. Instead use KTorrent, you'll find it in repository. Under Settings -> Configure KTorrent -> General change folder for temporary files to /tmp (your tmpfs partition). That will cure the problem.
[edit] noop I/O scheduler
This tip is for tweaking performance in reading and writing data to the SSD disk or any other flash based storage.
Usually Linux uses I/O schedulers that assists read and writes to happen in a sequential matter, however flash based drives are much simpler than traditional hard drives and have no seek penalty. For that reason "noop" is much better suited for flash-drives since it just pushes things forward in the order data come in (FIFO). More detail here.
To see what I/O scheduler is available and used do:
# cat /sys/block/sda/queue/scheduler noop [cfq]
This tells us cfq is used for /dev/sda. If you want to change I/O scheduler on fly just enter:
# echo "noop" > /sys/block/sda/queue/scheduler
To set noop as system default add elevator=noop as boot parameter in /etc/lilo.conf. Look for the line starting with append and change it to something like this:
append="resume=/dev/sda2 splash=silent elevator=noop "
When done updating lilo.conf run lilo -v to save the new boot up settings to mbr.
[edit] Misc details
Various details regarding hardware and software setup as of this writing, 9 august 2008.
[edit] uname -a
Linux zenwalk 2.6.25.4 #1 SMP PREEMPT Fri May 16 14:10:46 CEST 2008 i686 Intel(R) Celeron(R) M processor 900MHz GenuineIntel GNU/Linux
[edit] lspci
00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 04) 00:02.0 VGA compatible controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 04) 00:02.1 Display controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 04) 00:1b.0 Audio device: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 04) 00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 04) 00:1c.1 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (rev 04) 00:1c.2 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 (rev 04) 00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 04) 00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 04) 00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 04) 00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 04) 00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 04) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d4) 00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 04) 00:1f.2 IDE interface: Intel Corporation 82801FBM (ICH6M) SATA Controller (rev 04) 00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 04) 01:00.0 Ethernet controller: Atheros Communications Inc. AR242x 802.11abg Wireless PCI Express Adapter (rev 01) 03:00.0 Ethernet controller: Attansic Technology Corp. L2 100 Mbit Ethernet Adapter (rev a0)
[edit] fdisk -l
Notice that the Asus EEE 16G only ships with the much slower replaceable SSD.
Disk /dev/sda: 16.1 GB, 16139354112 bytes 255 heads, 63 sectors/track, 1962 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x039e039d Device Boot Start End Blocks Id System /dev/sda1 * 1 1931 15510726 83 Linux /dev/sda2 1932 1962 249007+ 82 Linux swap

