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


11

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

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

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

だから私はfbtermを動かしました。私はそれをセットアップし、今では(rootとしてではなく)自分で実行することができ、問題なく動作します。

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

編集:また、起動時にgettyのような動作をする必要があります。そうしないと、ログインできません。

回答:


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でプログラムを実行できます。fbtermbyによってフレームバッファにアクセスするには、rootである必要があります。したがってfbterm、TTY2で次のように実行できます(2つのダッシュはのスイッチの終わりを示しますrungetty)。

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

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

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

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

これで、fbtermTTYの1つで実行できるはずです。


「rungetty」ユーティリティが利用できないシステムではどうですか?同じことを達成する別の方法はありますか?
dtmland 2015年

@dtmland agettyとmingettyには役立つオプション(それぞれ-lと--login‐prog)があるようですが、私はそれらを自分で試していません。また、debianパッケージアーカイブからrungettyソースをプルして、システムでビルドすることもできます。
Jacob Hume、

ちなみに、fbterm全般に問題があります。おそらくあなたの専門知識が役立つでしょう。superuser.com/questions/892028/...
dtmland

1

次のように編集してtty端末を変更できるはずです。

/etc/init/tty1.conf
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.