The TrimSlice is a low-power desktop system based on the Tegra2 ARM system-on-a-chip. Currently shipping is a 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:

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/<device>     # e.g. sdc or mmcblk3
o
n
p
1
<default>
<default>
w

Then create an ext3 filesystem on it and mount it somewhere, e.g.:

mkfs.ext3 /dev/<device>     # e.g. sdc1 or mmcblk3p1
mkdir -p /mnt/sd
mount /dev/<device> /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.