How do I make Ubuntu start fbterm in the tty on startup?

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 rungetty):

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 fbterm and 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.


You should be able to change the tty terminal by editing:

/etc/init/tty1.conf