view · edit · print · history

Serial-less Installation

NOTE !! this page may not be necessary anymore, as serial-less installation of Debian has been supported for some time now, via Debian-Installer project (D-I).

This page describes the setup for serial-less installation of Debian (little endian) on the NSLU2. It should be seen as an addon to the normal Debian/LE installation instructions at http://peter.korsgaard.com/articles/debian-nslu2.php.


The Debian-installer (http://d-i.alioth.debian.org/manual/) has two features which we will use for serial-less installation:


The setup is basically to preseed the network configuration (as the installer would otherwise ask for the settings over the serial port) and enable network console so the installation can be done over ssh.


The following preeseed.cfg is placed in the root of the initrd and used by the installer:

 # The NSLU2 only has 32MB RAM, so the installer will go into lowmem mode.
 # Don't let the installer wait for user to accept this
 d-i lowmem/low                         note

 # Install for unstable branch
 d-i mirror/udeb/suite string unstable
 d-i mirror/udeb/suite seen false

 # Configure network for static IP
 d-i netcfg/choose_interface            select eth0
 d-i netcfg/disable_dhcp                boolean true
 d-i netcfg/get_nameservers             string
 d-i netcfg/get_ipaddress               string
 d-i netcfg/get_netmask                 string
 d-i netcfg/get_gateway                 string
 d-i netcfg/confirm_static              boolean true

 # Set hostname/domain
 d-i netcfg/get_hostname                string slug
 d-i netcfg/get_domain                  string slug.invalid

 # Setup ssh password
 d-i network-console/password password install
 d-i network-console/password-again password install

And the installer is configured to use this file:

 echo 'PRESEED=/tmp/preseed.cfg' >>installer/build/config/local


Network console support is added to the lart netboot configuration:

 echo '#include "network-console"' >>installer/build/pkg-lists/netboot/arm/lart.cfg


A precompiled and byteswapped initrd of the installer can be downloaded here: http://peter.korsgaard.com/articles/initrd-netcon.gz-swap (2.6MB)


Once downloaded, the initrd can be booted like in the original howto (http://peter.korsgaard.com/articles/debian-nslu2.php#debian-install). The installer will then automatically configure itself with IP:, generate a ssh host key and start a ssh server. Notice that it will take a minute or two to generate the host key.

Once everything is done you can ssh to the installer with login: installer, password: install. The installer uses UTF-8 for output, so remember to configure your term for a UTF-8 locale before running ssh, otherwise some of the graphical characters will be screwed up, E.G:

 LC_CTYPE=en_US.UTF-8 xterm -e ssh installer@

Replace en_US.UTF-8 with whatever UTF-8 locale you have installed (check with locale -a).

You can now continue the installation like described in http://peter.korsgaard.com/articles/debian-nslu2.php#debian-install.

Remember to install ssh, otherwise you won't be able to connect to your system once it's installed!


For simple customizations (E.G. network setup) you can simply modify the precompiled initrd (byteswap it back, gunzip it and mount -o loop it so you can edit /preseed.cfg). For bigger customizations you can recompile the installer (make build_lart_netboot). See http://wiki.debian.org/DebianInstaller/Build for information about this.

Notice that the debian-installer doesn't support cross compilation, so you need a working debian/arm system running unstable for this!

view · edit · print · history · Last edited by Rob Lockhart.
Based on work by eddyp.
Originally by PeterKorsgaard.
Page last modified on April 07, 2007, at 07:13 PM