Quote:
Ideally you should do it as a daemon and just leave it as a normal login prompt on the console. If you want to do what the empeg does then you'll have to alter the boot up sequence and you can do that by replacing init or fiddling with the startup scripts. You don't need a custom kernel or anything like that.

It's true, it's all done with a custom init. The Empeg's init is C and not open-source, but in normal use it just forks, runs the player, waits for it to exit, forks again, runs a shell on console, waits for it to exit, and then back to the beginning again in an endless loop. (There's a bit more to it than that, to do with mounting and unmounting filesystems etc., but that's the bit that does the behaviour you're looking for.)

If you want a Linux box to boot to a root shell on console only, you can just link /sbin/init to /bin/sh -- or even delete /sbin/init, as /bin/sh is one of the things the kernel fails over to if /sbin/init doesn't exist, see the end of init/main.c in a kernel distribution.

If you want a Linux box to boot to a root shell as well as all the normal daemons etc., then you need the normal init process to run, and you can configure it in /etc/inittab to run a root shell on console instead of a getty.

Peter