[ Note of maintainer : this tip applies mainly to Debian, but should be useful
for other distributions with small changes ]
I've seen FreeBSD being installed over a serial console and thought
"Hmm, how can I do this with debian?". I was aware of the sercons
stuff in recent 2.1 kernels. Initiated by a question from Shane Wegner
on debian-user I tried it out (up to "partition a harddisk" - I had no
spare disk to continue). Cleto Pescia <c l e t o @ e - l i n k . c h> finished an
installation and sent me all those missing hints. I'm summing this up
for all those of you intereseted in it. It's based on Debian 2.0
(hamm), but should work with other versions, too.
Get a recent 2.1 (or 2.2) kernel or patch your 2.0 sources with Miquel
van Smoorenburg's patch to backport the sercons stuff:
ftp://ftp.cistron.nl/pub/people/miquels/kernel/
Build a replacement kernel for the installation disk. Enable sercons,
initrd, ext2, msdosfs and all needed drivers. Do not use modules (or
prepare to hack the driver disk, too). Check the install manual for
more details (in case I missed something)
Put the kernel on the rescue disk:
mount /tmp/resc1440.bin /mnt -o loop
cp the new kernel to /mnt/linux and run
sh /mnt/rdev.sh
Edit /mnt/syslinux.cfg to automatically boot with sercons:
set TIMEOUT to 1 and
add "console=ttyS0,9600n8" to all APPEND lines (for "COM1", 9600 Baud,
no parity, 8bits, software handshake) (possibly unneded if you have no
graphics card and keyboard attached)
Add the needed /dev/console to the rescue disk's root-fs:
zcat /mnt/root.bin > /tmp/root.bin
mount /tmp/root.bin /floppy
mknod -m 622 console c 5 1 as root
umount /floppy
gzip -c9 /tmp/root.bin > /mnt/root.bin
The new rescue disk image is done.
umount /mnt
Make a boot floppy
cp /tmp/resc144.bin /dev/fd0
boot from the rescue disk,
select monocolor and your keyboard (used for virtual console),
select "open a shell" from the menu,
manually run "fdisk" (cfdisk segfaults),
exit the shell and
continue installation as usual
(alternatively symlink cfdisk -> fdisk in root.bin)
before you reboot your new system, reopen a shell.
make the new-style console device
rm /target/dev/console
cp /dev/console /target/dev/
(alternatively modify base*.tgz)
Instruct lilo to use the sercons, too:
echo 'append = "console=ttyS0,9600n8"' >> /target/etc/lilo.conf
echo 'serial=0,9600n8' >> /target/etc/lilo.conf
lilo
Make root logins via the sercons possible:
echo "ttyS0" >> /target/etc/securetty
and put a getty on the serial line: Edit /target/etc/inittab and
uncomment the line starting with T0. (alternatively modify
/etc/init-tab in root.bin)
reboot
Special Thanks to:
Miquel van Smoorenburg for the sercons patch
Cleto Pescia <c l e t o @ e - l i n k . c h> for finishing what I started.