12

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.

3 Answers 3

7

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.

3
  • How about in a system where the "rungetty" utility is not available? Is there another method to accomplish the same?
    – dtmland
    Mar 20, 2015 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, 2015 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, 2015 at 18:41
1

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

/etc/init/tty1.conf
1

Old question, but I thought it deserved a better answer rather than one that was copy pasted and doesn't apply to modern Ubuntu (22.04 at time of writing).

Start by creating a new script using the following command:

$ sudoedit /usr/sbin/fbterm-login

Enter the following as its contents, then save and exit.

#!/usr/bin/sh
fbterm -- /usr/bin/sh -c "TERM=fbterm login -p"

Then mark the script as executable with:

$ sudo chmod +x /usr/sbin/fbterm-login

This script starts fbterm with the correct arguments to launch the login program. It will also set the TERM environment variable to fbterm which will enable 256 color support.

Next, edit the getty service file by calling:

$ sudoedit /usr/lib/systemd/system/[email protected]

Find the following line:

ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear %I $TERM

Comment it out and add the following line after it:

ExecStart=-/sbin/agetty --noclear -n -l /usr/sbin/fbterm-login %I $TERM

Then save and exit the editor.

Now restart and enjoy using fbterm as your virtual terminal.

As an additional note, I've noticed that fbterm doesn't allow you to switch between vts using Ctrl+Alt+F[1-9], but it does allow you move to other vts using Alt+LeftArrow and Alt+RightArrow.

New contributor
John Driscoll is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .