Arch Linux
From JogglerWiki
NOTE: It's not perfect, but you should be able to get started with this!
By following this tutorial you should end up with fully functional Arch Linux OS on your O2 Joggler powered by Gnome technologies.
This tutorial is heavily based on information found in other tutorials written in Joggler Wiki and assumes that you have actually installed Arch Linux before at least once.
You will need a USB stick at least 4GB in size. Don't forget to make backups before you begin!
Installing Arch Linux base system into the USB stick
Perhaps the easiest way to accomplish this is to start up a virtual machine.
Using Virtual Box (non-OSE version) is preferred. Just get Arch Linux [install iso], plug your USB stick into the computer, set Virtual Box to let the virtual machines to see the USB device, create new virtual system and start up the installation.
Do NOT install the boot loader, we are using our own instead. Also the kernel26 kernel is useless, it does not support booting from EFI, so we are using our own kernel package.
While you are at it create a ms-dos partition table on the USB stick with two partitions: 32MB fat16 partition in the beginning of disk and make rest an ext3 partition.
Set the mount point for root(/) file system to be your ext3 partition.
After finishing the base installation shutdown the virtual machine, we are not using it anymore (unless you really want to), and replug your USB-stick.
If you haven't already, you can create the FAT16 file system on the first partition with following command (make sure you are writing to the right device and partition!):
mkdosfs -n efiboot /dev/sdX1
Setting up the EFI boot loader
After creating the file system, mount the partition to location of your choice and unpack the following archive into it: http://www.ihku.biz/joggler/efi_fat16.tar.gz . The archive contains EFI boot loader set to load kernel and initrd image from the USB sticks second partition (our Arch Linux system root).
Installing more software and setting up the system
Chancing the Arch root file system label
Before anything else lets make mounting the root file system a little easier and change/set its label to "archroot" (once again, check the device and change it accordingly):
e2label /dev/sdX2 archroot
Mounting USB sticks second partition and chrooting into it
Now lets mount our root partition, bind some essential file systems and chroot into it:
mkdir -p /mnt/archroot mount /dev/sdX2 /mnt/archroot cd /mnt/archroot cp /etc/resolv.conf etc/ mount -o bind /proc proc/ mount -o bind /dev dev/ mount -o bind /dev/pts dev/pts mount -o bind /sys/ sys/ chroot . /bin/bash
Now you should be inside the Arch Linux we are going to set up for O2 Joggler.
Installing kernel (kernel26-joggler)
I have created a kernel package patched with all known patches and IEGD driver support for us all to enjoy. You can grab the PKGBUILD and files from AUR[1], but in this tutorial we are going to use prebuild package to make the installation much more painless.
Following command will download and install the kernel for you.
pacman -U http://www.ihku.biz/joggler/kernel26-joggler-2.6.33.4-1-i686.pkg.tar.xz
Installing software packages
We are going to build some applications from AUR so installing base-devel is recordement:
pacman -S base-devel
Yaourt - AUR the easy way
First we install AUR repository tool, yaourt, to make installing some packages from AUR much easier. Append following into the end of /etc/pacman.conf.
[archlinuxfr] Server = http://repo.archlinux.fr/i686
Lets refresh our package repositories and install yaourt:
pacman -Sy pacman -S yaourt
SSH, alsa, networkmanager, Gnome and friends
pacman -S openssh alsa-utils alsa-oss gnome gnome-terminal network-manager-applet gdm
Chromium and flashplugin
Maximizing the Internet experience!
pacman -S chromium flashplugin
You may also want to install chromeTouch extension for Chromium.
Fonts
pacman -S ttf-dejavu ttf-ms-fonts
Xorg
Currently there are two drivers to use to get X working: IEGD and FBDEV.
- IEGD
- Provides some sort of hardware acceleration.
- Is incomplete.
- Backlight can be only controlled manually through /sys/class/backlight/openframe-bl/.
- Features graphic glitches and hardlocks. (At least for me.)
- Supports currently only xorg-server up to version 1.6.x.
- FBDEV
- Slow, but stable.
- Backlight control works correctly.
Lets start by installing the xorg package group:
pacman -S xorg
Using FBDEV driver (xf86-input-fbdev)
Install the fbdev video driver and some other usefull X input device drivers:
pacman -S xf86-video-fbdev xf86-input-mouse xf86-input-keyboard xf86-input-evdev
Fetch xorg.conf configured for fbdev and place it into /etc/X11/:
wget http://www.ihku.biz/joggler/xorg_fbdev.conf -O /etc/X11/xorg.conf
Using old xorg-server 1.6 and IEGD
It is possible to achieve hardware accelerated graphics on joggler using Intel Embedded Graphics Driver (IEGD), but the driver sadly support xorg-server only up to version 1.6 and the current version in Arch Linux is 1.7 so we have to downgrade. [2]
First remove the current xorg-server package:
pacman -R xorg-server
Then install old xorg version 1.6 and device drivers for it:
pacman -U http://chakra-project.org/repo/xorg-old/i686/xorg-server-1.6.3.901-1-i686.pkg.tar.gz http://chakra-project.org/repo/xorg-old/i686/xf86-input-evdev-2.2.5-1-i686.pkg.tar.gz http://chakra-project.org/repo/xorg-old/i686/xf86-input-keyboard-1.3.2-2-i686.pkg.tar.gz http://chakra-project.org/repo/xorg-old/i686/xf86-input-mouse-1.4.0-2-i686.pkg.tar.gz
Now you propably would like to edit /etc/pacman.conf, uncomment IgnorePkg line and make it look like something similar to:
IgnorePkg = xf86-input-evdev xf86-input-keyboard xf86-input-mouse xorg-server
This will prevent the packages from being upgraded.
An older version of libssl is also needed. This requirement can be fullfilled with the openssl-compatibility package from the Arch User Repository. We can install it easily using yaourt:
yaourt --aur -S openssl-compatibility
Installing IEGD binary drivers: The IEGD drivers can be downloaded from http://edc.intel.com/Software/Downloads/IEGD/, but that needs registeration and playing with exe file so I have created an archive that includes only the needed files (much smaller to download and easier to install, Intel might not like this approach ;P).
pacman -U http://www.ihku.biz/joggler/iegd-10.3.1-2-i686.pkg.tar.xz
Finaly, lets fetch xorg.conf configured for IEGD and place it into /etc/X11/:
wget http://www.ihku.biz/joggler/xorg_iegd.conf -O /etc/X11/xorg.conf
Touchscreen driver: xf86-input-evtouch
The evtouch driver for xorg can be found from AUR and can be easily installed using yaourt:
yaourt --aur -S xf86-input-evtouch
On-screen keyboard: onboard
I have tried various on-screen keyboards and in my opinion onboard is the best so far. It is available in AUR, but will conflict with gnome-python, so you will have to replace the onboard packages python-gconf dependency with 'gnome-python'.
yaourt --aur -S onboard
To get the application running we also need to upgrade the icon cache:
gtk-update-icon-cache /usr/share/icons/hicolor/
Setting up the system
Now it is good time to update the DAEMONS array in /etc/rc.conf to look like someting similar to:
DAEMONS=(syslog-ng joggler dbus hal networkmanager sshd crond alsa gdm)
Add acpi-cpufreq into MODULES, this will enable automatic CPU frequency scaling:
MODULES=(acpi-cpufreq)
Also upgrade the JOGGLER_HWADDR to match your MAC ID or network hardware address. The value can be found behind your device. The joggler service will update the value for you automaticly on startup.
It is also a good idea to add sshd:ALL into /etc/hosts.allow so you can ssh into your system.
Change the /etc/fstab to match something similar to following:
# <file system> <dir> <type> <options> <dump> <pass> devpts /dev/pts devpts defaults 0 0 shm /dev/shm tmpfs nodev,nosuid 0 0 LABEL="archroot" / ext3 defaults,noatime 0 1 tmpfs /tmp/ tmpfs defaults,nr_inodes=1M,size=256M 0 0
You may notice that the filesystem checking on startup is disabled for the root filesystem. We are using the filesystem label archroot to mount our root so make sure it matches your setup if you have done something another way. Also, tmpfs is mounted to tmp to reduce wearing. Take note that the small size of used tmpfs filesystem might affect some applications that use /tmp/ to store lots of data (yaourt).
If you installed GDM add following into /etc/gdm/custom.conf to enable auto-login for user archuser. Remove pre-existing [daemon] text or replace the content.
[daemon] AutomaticLoginEnable=true AutomaticLogin=archuser
To get ALSA and its daemon happy run alsaconf once and smash some return key:
alsaconf
Adding normal user
If you have not set the root password now it is good time to do that:
passwd root
Create the user archuser
adduser archuser
Add the archuser into various groups:
usermod -a -G audio,video,network,wheel,adm,games,users,storage archuser
Exiting chroot environment
Exit the chroot when ready with "exit" and then clean up the mounts:
exit umount sys/ proc/ dev/pts/ dev/ cd .. umount /mnt/archroot rmdir /mnt/archroot
Now just plug your USB-stick into O2 Joggler and power it on! Enjoy!
Tips and Tricks
- Using Synergy to control your Joggler http://wiki.archlinux.org/index.php/Synergy
Run ntpdate when network interface comes up
O2 Joggler does not store time or date so we have to upgrade them every boot. Easiest way to accomplish this is using ntpdate and networkmanager magic. First install ntpdate, it can be found in package ntp:
pacman -S ntp
Create file /etc/NetworkManager/dispatcher.d/10ntpdate.sh with following content:
#!/bin/bash case "$2" in up) logger "Interface $1 $2, running ntpdate" /usr/bin/ntpdate pool.ntp.org & ;; *) ;; esac exit 0
and make it executable:
chmod +x /etc/NetworkManager/dispatcher.d/10ntpdate.sh
Try hardware accelerated video playback with mplayer-vaapi
Install with yaourt:
yaourt -S mplayer-vaapi
And play your h.264 videos:
mplayer -vo vaapi -va vaapi -ao alsa video.mp4
With some videos it works really well.