如何在启动时在tty中使Ubuntu启动fbterm?


11

大约一周前,当我测试openSUSE时,我注意到tty1(是的,只是tty1)具有openSUSE背景。我想在Ubuntu中做同样的事情。

我找到了一种使用fbsplash的方法。我不太热衷于此,因为它涉及修改内核。

然后我找到了fbterm,它可以让您使用自己的背景,并且不涉及修改内核。

所以我开始工作了。我设置好了,现在我可以自己运行(而不是以root身份运行),并且可以正常运行。

现在我需要的是启动Ubuntu时如何使其在tty中启动。

编辑:启动时还需要像getty这样的动作;否则我将无法登录。

Answers:


7

首先,您需要编辑inittab文件。在Debian上,它位于中/etc/inittab,我想它可能与Ubuntu上的相似。正常的TTY提示由名为的程序管理getty,因此您需要向下滚动到该程序的设置位置。您应该看到很多类似以下内容的行:

# 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

接下来,我们需要一个名为的程序rungetty。这允许您以特定用户的身份在TTY上运行程序。fbterm需要您以root身份访问by的帧缓冲区。因此,您可以fbterm像这样在TTY2上运行(双破折号表示的开关结尾rungetty):

2:23:respawn:/sbin/rungetty -u root tty2 -- fbterm

只有一个问题;您有一个漂亮的基于framebuffer的终端,但是您以root用户身份登录!拥有未经身份验证的root提示对安全性的危害就与它一样严重。那不会。

我们可以使用一个名为的程序login来解决此问题,方法是接受另一组用户凭据,然后启动bash或zsh或您的登录Shell碰巧的任何方式。幸运的是,fbterm可以接受命令作为其最终参数(同样,双破折号可以防止fbtermrungetty混淆参数:

2:23:respawn:/sbin/rungetty -u root tty2 -- fbterm -- login

这样,您应该fbterm在其中一个TTY上运行。


在“ rungetty”实用程序不可用的系统中该如何处理?是否有另一种方法可以实现相同目的?
dtmland'3

@dtmland看来agetty和mingetty有一些选项(分别是-l和--login-prog)可能会有所帮助,但我自己还没有尝试过。您也可以尝试从debian软件包档案中提取rungetty源,并在您的系统上进行构建。
Jacob Hume

顺便说一句,我在使用fbterm时遇到了麻烦-也许您的专业知识可以派上用场?superuser.com/questions/892028/…–
dtmland

1

您应该可以通过编辑来更改tty终端:

/etc/init/tty1.conf
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.