First of all, you'll need to edit your inittab file. On Debian, it's located in
/etc/inittab, and I would guess it might be somewhere similar on Ubuntu. The normal TTY prompt is managed with a program called
getty, so you'll need to scroll down to where that program is set up. You should see a lot of lines similar to this:
# Note that on most Debian systems tty7 is used by the X Window System,
# so if you want to add more getty's go ahead but skip tty7 if you run X.
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6
Next, we'll need a program called
rungetty. This allows you to run programs on a TTY as a particular user.
fbterm requires you to be root to access the framebuffer, by the by. So you could run
fbterm on TTY2 like so (double dashes signify the end of switches for
2:23:respawn:/sbin/rungetty -u root tty2 -- fbterm
Only one problem; you have a beautiful framebuffer-based terminal, but you're logged in as root! Having an unauthenticated root prompt is about as bad for security as it gets. That won't do.
We can use a program called
login to get around this by accepting another set of user credentials, and then starting bash or zsh or whatever your login shell happens to be. Luckily,
fbterm can accept a command as its final argument (again, double dashes prevent
rungetty from getting arguments mixed up:
2:23:respawn:/sbin/rungetty -u root tty2 -- fbterm -- login
With that, you should have
fbterm running on one of your TTYs.