The [[http://www.trimslice.com/|TrimSlice]] is a low-power desktop system based on the Tegra2 ARM system-on-a-chip. Currently shipping is a [[http://www.trimslice.com/forum/viewtopic.php?f=9&t=22|development board]], which comes with Ubuntu preinstalled on a built-in SSD. In the long run, it should be possible to adapt debian-installer and install using an SD card with a downloaded image and keyboard and monitor. Meanwhile, here are instructions on how to manually install Debian armel on an SD card. You need: * a TrimSlice dev-kit, i.e. the actual hardware target; * an SD-card >= 1G; * a computer with an SD-card reader, serial port, Debian installed, and root on this computer. * Optional: a USB to Serial cable adapter which allows you to plug in a serial cable to your computer on a USB port if you don't have a serial port. All commands need root. ==== Prepare SD ==== Insert the SD in your Debian system. Make sure it is not mounted. Then create a single partition of type "linux", e.g.: {{{ fdisk -uc /dev/ # e.g. sdc or mmcblk3 o n p 1 w }}} Then create an ext3 filesystem on it and mount it somewhere, e.g.: {{{ mkfs.ext3 /dev/ # e.g. sdc1 or mmcblk3p1 mkdir -p /mnt/sd mount /dev/ /mnt/sd # e.g. sdc1 or mmcblk3p1 }}} Now, install multistrap: {{{ apt-get install multistrap }}} and create a file `multistrap.conf`: {{{ [General] arch=armel directory=/mnt/sd aptsources=Debian bootstrap=Debian [Debian] packages=apt netbase ifupdown source=http://ftp.debian.org/debian/ keyring=debian-archive-keyring suite=squeeze omitdebsrc=true }}} Then run {{{ multistrap -f multistrap.conf }}} Finally, we need some tweaks to make sure the image boots properly: {{{ cd /mnt/sd cp -a /dev/ttyS0 dev/ cp -a /dev/console dev/ echo "proc /proc proc defaults 0 0" > etc/fstab cp /etc/inittab etc/inittab echo "T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100" >> etc/inittab echo "trimslice" > etc/hostname cp /etc/hosts etc/hosts # and edit to set hostname to "trimslice" cp /etc/resolv.conf etc # and edit appropriately }}} Finally, edit `/mnt/sd/etc/network/interfaces`. If you want to use DHCP, write {{{ auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp }}} or if you want to use a static IP, use something like {{{ auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.2 netmask 255.255.255.0 gateway 192.168.1.1 }}} ==== Boot SD ==== Connect the serial cable from the dev-kit. On the Debian machine, do {{{ screen /dev/ttyS1 115200,cs8,-ixon,-ixoff }}} then plug in the power for the TrimSlice. Quickly press a key to interrupt the default boot. Then type {{{ usb start 1 mmc init 0 setenv bootargs root=/dev/mmcblk3p1 rw rootwait console=ttyS0,115200n8 mem=448M@0M mem=512M@512M nvmem=64M@448M vmalloc=320M nohdparm init=/bin/sh ext2load usb 0:1 4080000 /boot/uImage bootm 4080000 }}} Note that this uses the Ubuntu kernel from the builtin SSD. After you get a root prompt, do {{{ date -s 'Apr 25 13:50 2011 CEST' # set to current date mount /proc PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \ DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true \ LC_ALL=C LANGUAGE=C LANG=C dpkg --configure -a }}} As of 25 April 2011, configuring will fail with the following error: {{{ Setting up dash (0.5.5.1-7.4) ... No diversion 'diversion of /bin/sh by dash', none removed. This should never be reached dpkg: error processing dash (--configure): subprocess installed post-installation script returned error exit status 1 }}} This seems to be a bug. As a workaround, do {{{ /var/lib/dpkg/info/dash.preinst install }}} Finally, do {{{ dpkg-reconfigure tzdata passwd # set root passwd mount /dev/root -oremount,ro }}} Then sync, power-cycle and this time boot without the `init=/bin/sh`, that is {{{ usb start 1 mmc init 0 setenv bootargs root=/dev/mmcblk3p1 rw rootwait console=ttyS0,115200n8 mem=448M@0M mem=512M@512M nvmem=64M@448M vmalloc=320M nohdparm ext2load usb 0:1 4080000 /boot/uImage bootm 4080000 }}} You'll be prompted to change the root password; this is because PAM is confused by the date being 1970. Change it and fix the date again. You can then use `apt-get` to install additional packages.