約1週間前にopenSUSEをテストしていたとき、tty1(はい、tty1だけ)にopenSUSEのバックグラウンドがあることに気づきました。 Ubuntuでも同じことをしたいです。
Fbsplashを使用する方法を見つけました。カーネルの変更が含まれるので、私はあまり熱心ではありません。
次に、fbtermを見つけました。これにより、独自のバックグラウンドを使用でき、カーネルの変更は必要ありません。
だから私はfbtermを働かせました。私はそれを設定しました、そして今私はそれを自分自身として(ルートとしてではなく)実行することができます、そしてそれはうまく働きます。
今必要なのは、Ubuntuを起動するときにttyで起動する方法だけです。
編集:私がそれを起動するとき、それはまたゲッティのような何かをする必要があります。そうしないと、ログインできません。
まず、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
は最後の引数としてコマンドを受け入れることができます(ここでも、二重ダッシュはfbterm
とrungetty
が引数を混同するのを防ぎます。
2:23:respawn:/sbin/rungetty -u root tty2 -- fbterm -- login
これで、TTYの1つでfbterm
を実行する必要があります。
以下を編集することで、ttyターミナルを変更できるはずです。
/etc/init/tty1.conf