Saturday, November 26, 2011

Arch Linux on Eee PC 900 Chronicle

Work in progress!!!

I have been pretty intrigued with Arch Linux for sometime. I have read numerous times in Distrowatch forum that this distribution can easily replace Ubuntu and that Ubuntu actually makes the name of Linux bad. It is touted by most that it is one of those real Linux, in the same ranks as Debian or Gentoo.

My recent experience with Ubuntu 11.10 and Linux Mint 12 on VirtualBox were not good to put it mildly. Now I am in quest for the best Linux distro that can be installed on VirtualBox. By the way, Ubuntu 11.10 works like charm on VMware ESXi 5.0. Should I just dump VirtualBox? Maybe not just yet. With VirtualBox, I can run it on Windows and Linux and still be productive. With VMware ESXi, I need to dedicate a machine for that. I do have 5 boxes running VMware ESXi for software testing but I do need access to Windows on my work laptop.

I can also move to VMware Workstation but I have higher hopes for VirtualBox as it is developed at a much faster pace. Plus, I can also help with the project as it is opensource.

The Eee PC 900 Hardware
Processor: (to come)

Arch Linux installation on Eee PC 900
With that said, I will deep dive and use Arch Linux on my aging Eee PC 900.

Follow Arch Linux Beginner’s Guide to get the latest installation media. As of this  writing, archlinux-2011.08.19-netinstall-i686.iso is available for download. You probably notice that I am going to do network install. 

Anyway, with ISO downloaded, start to check all the stroage media in the system, like:
$: sudo fdisk -l | grep "Disk /dev"
Ah, I am using Ubuntu :(. The venerable sudo. Anyway, output should look like this:
Disk /dev/sda: 60.0 GB, 60011642880 bytes
Disk /dev/sdb: 80.0 GB, 80026361856 bytes
Disk /dev/sdc: 203.9 GB, 203928109056 bytes

Plugin USB thumb drive that will be used for the installation. Run sudo fdisk -l | grep "Disk /dev" again to determine the location of the USB thumb drive. Now, burn the ISO, like:
$: umount /dev/sdd1
$: sudo dd if=archlinux-2011.08.19-netinstall-i686.iso of=/dev/sdd bs=4M
Assuming that the USB was partitioned and auto-mounter is working its magic, need to umount before writing the ISO to the thumb drive. Should now be ready to plug this in to my Eee PC 900.

While Eee PC 900 is booting up, hit on ESC so that it displays the boot options. Select USB: USB Disk. Arch Linux should now show you options what to do next. Select Boot Arch Linux and hit on Enter. You should be dropped to tty session with a root user.

Begin installation by running:
#: /arch/setup
Follow the instructions as they are presented. In "Select source", ensure that core is selected and optionally select a mirror that is closest to you. For the editor, select either vi or nano. I am a bit comfortable with vi so I have it selected.

For clock, thus say for region and timezone, I selected North_Dakota/Center as this is my current location. If not very familiar with how time is handled in Linux, select UTC and opt to use an ntp.

Now for preparing the hardrives. Setup /dev/sda as boot drive, set fs type to Linux (83). For /dev/sdb, create one partition (/dev/sdb1) and set fs type to 83 as well. Then set /dev/sda1 as /boot (ext2) and /dev/sdb1 as / (root mount point) formatted as ext2. You should be curious by now why ext2 is used here. From Arch Linux Eee PC 701 it is generally not recommended use journaling file system on SSDs. Though ext4 can be configured to disable journaling, I will be using ext2 here for now and see how it performs.

For packages, select base and wireless_tools.

Now wait for the installation to complete, be patient here as it can take time depending on connection speed.

In configuration, change /etc/fstab, add noatime for both /dev/sda1 and /dev/sdb1. It should look like below:
/dev/sda1 /boot ext2 defaults,noatime 0 1
/dev/sdb1 / ext2 defaults,noatime 0 1
Set the root password for obvious security reasons.

Install boot loader as instructed. And reboot. Yeay... I now have a working Arch Linux running on Eee PC 900

Install graphical user interface (X Org)

Install X Org basic package, like:
#: pacman -S xorg-server xorg-xinit xorg-utils xorg-server-utils xterm
Eee PC 900 comes with Intel embedded video controller, so install that driver.
# pacman -S xf86-video-intel
Next, install driver for the mouse pad
#: pacman -S xf86-input-synaptics
Let us detour here and install non-root user, see this for more info.
#: adduser
It will show you something like this:
Login name for new user []: timus
User ID ('UID') [ defaults to next available ]:
Initial group [ users ]:
Additional groups (comma separated) []: audio,lp,storage,video,wheel,power
Home directory [ /home/timus ]:
Shell [ /bin/bash ]:
Expiry date (YYYY-MM-DD) []:
In Linux, there lots of options for desktop environments but I will be using LXDE as it is a bit lightweight. Now install this DE:
#: pacman -S lxde
LXDE needs D-Bus (message bus system for simple inter-application communication).
#: pacman -S dbus
And ensure that D-Bus runs after boot-up, so add it in DAEMONS array in /etc/rc.conf. It should look like:
DAEMONS=(syslog-ng network crond dbus sshd)
Next up, install display manager. Again, so many choises to make in Linux. I will be doing xdm this time.
#: pacman -S xorg-xdm xorg-xconsole
Note that I am installing both xorg-xdm and xorg-xconsole.

Make .xsession executable:
$: chmod 744 .xsession
If you don't have that file in /home/[username]/, copy one from /etc/skel/.xession. By the way, this is the reason why a detour was done above to create a user. If you don't have /home/[username], open a new virtual console (like Alt+F2) and login. This should initialize the files and folders for that user.

I like that xdm look a little more appealing, so I have to install xdm-archlinux, like:
#: pacman -S xdm-archlinux
Since xdm-archlinux uses terminus fonts, installing it is in order:
#: pacman -S terminus-font
Almost done with setting up the basic GUI system, to start the machine in graphical mode, edit /etc/inittab to change runlevel to 5, like:
## Only one of the following two lines can be uncommented!
# Boot to console
# Boot to X11
Towards the end of /etc/inittab, uncomment or add xdm, like:
# Example lines for starting a login manager
x:5:respawn:/usr/bin/xdm -nodaemon -config /etc/X11/xdm/archlinux/xdm-config
#x:5:respawn:/usr/sbin/gdm -nodaemon
#x:5:respawn:/usr/bin/kdm -nodaemon
#x:5:respawn:/usr/bin/slim >/dev/null 2>&1
#x:5:respwan:/usr/sbin/lxdm >/dev/null 2>&1
# End of file
Reboot machine and viola!!! Nice looking xdm.
------------------------------- To be continued



Anonymous said...

is there any way to get the wifi working?

Techno Scavenger said...

I got it working in my unit but... the way to configure it depends on your wireless AP. It took me awhile to figure out how to connect to my wireless network and I was also not able to document the process. I will try to do it again and hopefully come up with a right-up. But no promises though. Thanks for dropping a comment.