Machine/bender/Buildslave-debian-squeeze-armel

From Sugar Labs
Jump to: navigation, search

Description

buildslave-debian-squeeze-armel is an ARM VM running Debian squeeze for the BuildBot network.

TODO

  • proper networking (on virbr0, including IPv6)
  • libvirtd integration

Installation

Kernel

All kernels I could find had (different) issues that prevented the installation from finishing, so I built my own:

wget -nd http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.5.tar.bz2
tar -xjf linux-2.6.30.5.tar.bz2
cd linux-2.6.30.5
make ARCH=arm versatile_defconfig
make ARCH=arm menuconfig
[many changes]
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- targz-pkg

The resulting tarball will contain the uncompressed kernel image which won't work with qemu. You need to use arch/arm/boot/zImage instead. A copy of the initrd image used for installation is kept for reference.

Base system

wget -nd http://people.sugarlabs.org/~silbe/armel/vmlinuz-2.6.30.50-ss1
wget -O initrd-netboot.gz http://people.debian.org/~joeyh/d-i/armel/images/daily/versatile/netboot/initrd.gz
qemu-img create -f qcow2 hda.img 10G
qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.30.50-ss1 \
 -initrd initrd-netboot.gz -m 256 -hda hda.img -nographic \
 -append 'root=/dev/ram mem=256M console=ttyAMA0'

Config options:

  • english, Italy
  • buildslave-debian-squeeze-armel.sugarlabs.org
  • mirror Italy, ftp.it.debian.org, no proxy
  • continue without kernel modules, ignore LVM warning, continue without installable kernel
  • use entire disk (no LVM/encryption), all in one, set noatime + user_xattr for /
  • user "administrator" (not used) with root password
  • no package sets, not even "Standard system"
  • continue without boot loader

After the VM has rebooted, kill it (otherwise it boots into the installer again):

killall qemu-system-arm

Boot into early shell on installed system:

qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.30.50-ss1 \
-m 256 -hda hda.img -nographic \
-append 'root=/dev/sda1 mem=256M console=ttyAMA0 init=/bin/bash'

Inside the VM, work around/fix Debian bugs #544202 / 544184 and set up a serial console:

for x in /etc/rcS.d/S* ; do "$x" start ; done
sed -i -e 's/logsave .*\(fsck[^&]*\)$/\1/' /etc/rcS.d/S10checkroot.sh
echo ttyAMA0 >> /etc/securetty
echo 'T0:2345:respawn:/sbin/getty -L ttyAMA0 115200 vt100' >> /etc/inittab
pkill dhclient3
mount -o remount,ro /

Kill the VM again (poweroff doesn't work):

killall qemu-system-arm

Boot into installed system:

qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.30.50-ss1 \
-m 256 -hda hda.img -nographic \
-append 'root=/dev/sda1 mem=256M console=ttyAMA0'

Log in as root and install packages for next steps:

aptitude install openssh-server git-core etckeeper sudo

Initial set up

adduser --uid 1666 --gecos 'Bernie H. Innocenti,,,' --disabled-password bernie
adduser --uid 8193 --gecos 'Sascha Silbe,,,' --disabled-password silbe
adduser --uid 1001 --gecos ,,, --disabled-password buildslave
gpasswd -a bernie sudo
gpasswd -a silbe sudo