web-dev-qa-db-ja.com

Ubuntuを起動時にttyでfbtermを起動させるにはどうすればよいですか?

約1週間前にopenSUSEをテストしていたとき、tty1(はい、tty1だけ)にopenSUSEのバックグラウンドがあることに気づきました。 Ubuntuでも同じことをしたいです。

Fbsplashを使用する方法を見つけました。カーネルの変更が含まれるので、私はあまり熱心ではありません。

次に、fbtermを見つけました。これにより、独自のバックグラウンドを使用でき、カーネルの変更は必要ありません。

だから私はfbtermを働かせました。私はそれを設定しました、そして今私はそれを自分自身として(ルートとしてではなく)実行することができます、そしてそれはうまく働きます。

今必要なのは、Ubuntuを起動するときにttyで起動する方法だけです。

編集:私がそれを起動するとき、それはまたゲッティのような何かをする必要があります。そうしないと、ログインできません。

11
biggles5107

まず、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では、byによってフレームバッファにアクセスするためにrootである必要があります。したがって、TTY2でfbtermを次のように実行できます(二重ダッシュはrungettyのスイッチの終了を示します):

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

問題は1つだけです。あなたは美しいフレームバッファベースのターミナルを持っていますが、rootとしてログインしています!認証されていないルートプロンプトがあると、セキュリティに悪影響を及ぼします。それはしません。

loginというプログラムを使用して、別のユーザー資格情報のセットを受け入れ、bashやzshなどのログインシェルを起動することで、これを回避できます。幸い、fbtermは最後の引数としてコマンドを受け入れることができます(ここでも、二重ダッシュはfbtermrungettyが引数を混同するのを防ぎます。

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

これで、TTYの1つでfbtermを実行する必要があります。

7
Jacob Hume

以下を編集することで、ttyターミナルを変更できるはずです。

/etc/init/tty1.conf
1
drk.com.ar