When I was testing openSUSE about a week ago, I noticed that tty1 (yes, just tty1) had the openSUSE background. I want to do the same in Ubuntu.

I found a way using fbsplash. I'm not too keen on that since it involves modifying the kernel.

Then I found fbterm, which allows you to use your own background and it doesn't involve modifying the kernel.

So I got fbterm working; I set it up and now I can run it as myself (not as root) and it works just fine.

Now all I need is how to make it start in the tty when I start Ubuntu.

Edit: It also needs to act something like getty when I start it up; otherwise I won't be able to log in.


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.

  • How about in a system where the "rungetty" utility is not available? Is there another method to accomplish the same? – dtmland Mar 20 '15 at 6:20
  • @dtmland It looks like agetty and mingetty have options ( -l and --login‐prog respectively) that may be helpful, but I haven't tried them myself. You can also try pulling the rungetty sources from the debian package archive and building on your system. – Jacob Hume Mar 20 '15 at 16:56
  • By the way, I'm having trouble with fbterm in general - perhaps your expertise could come in handy? superuser.com/questions/892028/… – dtmland Mar 20 '15 at 18:41

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


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.