Debian Squeeze

I assume that you have a working Debian Squeeze on your PC or inside a Virtual Machine (e.g. VirtualBox).

If you have an AMD64 Debian system, you need to either create a i386 chroot (google for schroot and linux32) or install an i386 Debian Squeeze in a Virtual Machine (that's probably easier).

= Install scripts for lazy people =

If you are fearless and lazy, you can try my new install scripts that will automatically do all of the step below. ;-)

These scripts are in alpha state! Do not complain if they crash your system! You have been warned!

http://www.flattermann.net/files/joggler/squeeze/prepare_squeeze_joggler.sh

http://www.flattermann.net/files/joggler/squeeze/squeeze_joggler_chroot_commands.sh

* Download the two scripts * Make them executable "chmod a+x prepare_squeeze_joggler.sh squeeze_joggler_chroot_commands.sh" * run "./prepare_squeeze_joggler.sh --usage" to see all options * run "sudo ./prepare_squeeze_joggler.sh" with all options that you like * wait while we are debootstrapping, downloading all packages, downloading/patching/compiling/installing the kernel * Continue at * Have fun!

= Create a work directory = sudo mkdir -p /opt/joggler

= Bootstrap Debian Squeeze = Create an empty bootstrap directory: sudo mkdir -p /opt/joggler/root sudo debootstrap --arch=i386 squeeze /opt/joggler/root

If debootstrap is not recognised apt-get install debootstrap

= Chroot = To chroot into the debootstrap dir (your jogger root), do this: sudo mount proc -t proc /opt/joggler/root/proc sudo chroot /opt/joggler/root

= Install necessary packages = chroot to the directory (see above)

Change to /tmp cd /tmp

Install the apt sources: wget http://www.flattermann.net/files/joggler/squeeze/sources.list -O /etc/apt/sources.list

Install the repo keys: wget http://www.debian-multimedia.org/pool/main/d/debian-multimedia-keyring/debian-multimedia-keyring_2008.10.16_all.deb dpkg -i debian-multimedia-keyring_2008.10.16_all.deb wget http://silicone.homelinux.org/repository/siliconerepositorykey.asc apt-key add siliconerepositorykey.asc

Update the apt database aptitude update

Install the packages for the kernel compilation aptitude -y install kernel-package

Install xserver 1.6 from unstable (ignore dependency errors for "xserver-xorg-*") aptitude -y install -t unstable xorg xserver-xorg-input-evtouch xserver-xorg-input-mouse xserver-xorg-input-kbd xserver-xephyr

Keep the xserver at version 1.6: aptitude hold xserver-common xserver-xephyr

Install lxde (ignore dependency error for "libfam0") aptitude -y install lxde

Install helper packages aptitude -y install less wicd initramfs-tools alsa-base ntp openssh-server

Set the timezone dpkg-reconfigure tzdata

= Install the vanilla kernel sources and the patches = chroot to the directory (see above)

cd /usr/src wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.5.tar.bz2 tar xvjf linux-2.6.33.5.tar.bz2 ln -s linux-2.6.33.5 linux

mkdir patches cd patches wget http://adqmisc.googlecode.com/svn/trunk/joggler/joggler-sound-fix-v2.6.33-v3.patch wget http://adqmisc.googlecode.com/svn/trunk/joggler/joggler-backlight-2.6.32-v1.patch wget http://adqmisc.googlecode.com/svn/trunk/joggler/joggler-i2c-fix-2.6.32-v1.patch wget http://stskeeps.subnetmask.net/joggler/linux-2.6.33.2-iegd.patch wget http://www.flattermann.net/files/joggler/squeeze/joggler-2.6.33.5-with-iegd.config cd ..

cd linux patch -p1 < ../patches/joggler-backlight-2.6.32-v1.patch patch -p1 < ../patches/joggler-i2c-fix-2.6.32-v1.patch patch -p1 < ../patches/joggler-sound-fix-v2.6.33-v3.patch patch -p1 < ../patches/linux-2.6.33.2-iegd.patch cp ../patches/joggler-2.6.33.5-with-iegd.config .config

You should be ready to compile the kernel now

= Compile and install the kernel = chroot to the directory (see above)

cd /usr/src/linux make-kpkg --initrd kernel_image

This should create a kernel .deb in /usr/src: ls -al /usr/src

-rw-r--r-- 1 root root 7045852 29. Mai 19:53 linux-image-2.6.33.5_2.6.33.5-10.00.Custom_i386.deb

Install the kernel: (That will automatically create the /boot/initrd.img*) dpkg -i /usr/src/linux-image-2.6.33.5_2.6.33.5-10.00.Custom_i386.deb

Keep the kernel at the current version: aptitude hold linux-image-2.6.33.5

= Install the additional files for IEGD/Xorg = chroot to the directory (see above)

cd /tmp wget http://www.flattermann.net/files/joggler/squeeze/xorg.conf -O /etc/X11/xorg.conf wget http://www.flattermann.net/files/joggler/squeeze/42-persistent-input.rules -O /etc/udev/rules.d/42-persistent-input.rules wget http://jogglerwiki.info/images/3/33/Iegd-deploy.tar.bz2 tar xvjf Iegd-deploy.tar.bz2 cd iegd-deploy ./install-iegd.sh

= Setup user account = chroot to the directory (see above)

adduser --add_extra_groups --gecos joggler joggler adduser joggler haldaemon adduser joggler powerdev adduser joggler sudo

Setup a root password as well (or skip this step and use "sudo" later to execute programs as root) passwd

= Activate auto logon = chroot to the directory (see above)

wget http://www.flattermann.net/files/joggler/squeeze/gdm.conf -O /etc/gdm/gdm.conf

= Configure Network = Follow the instructions mentioned in Fixing network issues to setup the MAC address and ensure that the wired network interface appears on the joggler.

Install r8168 ethernet driver
Some jogglers (AO2JOGON) contain the Realtek r8169 Ethernet chip, while others (AO2JOGXN) contain r8168. By default we use the r8169 driver, the following instructions describe how to install the r8168 driver:

First, patch the kernel to add the r8168 driver:

cd /usr/src/patches wget http://www.flattermann.net/files/joggler/squeeze/linux-2.6.33.5-r8168.patch cd /usr/src/linux patch -p1 < ../patches/linux-2.6.33.5-r8168.patch

Second, add the r8168 driver to the kernel config: echo "CONFIG_R8168=m" >> /usr/src/linux/.config

Third, blacklist the r8169 module: echo "blacklist r8169" >> /etc/modprobe.d/local.conf

In the end, recompile the kernel and install it: cd /usr/src/linux make-kpkg --initrd kernel_image aptitude -y purge linux-2.6.33.5 dpkg -i /usr/src/linux-image-2.6.33.5_2.6.33.5-10.00.Custom_i386.deb aptitude hold linux-image-2.6.33.5

Note that it is no longer neccesary to downgrade the ethernet driver if using kernel 2.6.34

= Prepare the USB stick = Create 2 partitions on the USB stick:
 * partition 1: ~50MB FAT32
 * partition 2: ext3

Unpack http://www.flattermann.net/files/joggler/squeeze/efi.tar.bz2 to partition 1.

= Install / Update the Debian System = Now, you are ready to copy the contents of your /opt/joggler/root to partition 2.

I prefer the "rsync" method: (The trailing slashes are important!) sudo rsync -av --del --exclude=/usr/src/* --exclude=/tmp/* --exclude=/proc/* /opt/joggler/root/ /media/ /

Call this command (from outside of your chroot) whenever you've changed something in your /opt/joggler/root directory.

= Kernel upgrade = chroot to the directory (see above)

If you want to compile a new kernel, you should remove the old package first

aptitude purge linux-image-2.6.33.5

After that, follow the instructions from.

= Additional Software = chroot to the directory (see above)

MythTV frontend
Install MythTV frontend, if you like: aptitude install mythtv-frontend

I can recommend EasyStroke to control MythTV by gestures: cd /tmp wget http://sourceforge.net/projects/easystroke/files/easystroke/0.4.11/easystroke_0.4.11-karmic_i386.deb/download wget http://mirrors.kernel.org/ubuntu/pool/main/b/boost1.38/libboost-serialization1.38.0_1.38.0-6ubuntu6.1_i386.deb dpkg -i libboost-serialization1.38.0_1.38.0-6ubuntu6.1_i386.deb easystroke_0.4.11-karmic_i386.deb aptitude upgrade
 * 1) Install .debs (you will have missing dependencies)
 * 1) Fix dependencies

SqueezePlay
Install dependencies: (There are still some deps missing, please add them if you know what is missing...) aptitude install libsdl1.2debian-alsa

Get the newest .deb from http://downloads.slimdevices.com/nightly/?ver=7.6 and install it dpkg -i squeezeplay_7.6.*.deb

Get the SqueezePlay skin from here:

http://github.com/3guk/Joggler-Squeezeplayer

http://wiki.github.com/3guk/Joggler-Squeezeplayer/