
私のルーターは、Busyboxが組み込まれているLinuxを実行します。自動的にログインしてWebブラウザを起動したいです。/etc/inittab
ファイルは次のとおりです。
# /etc/inittab init(8) BusyBox の設定 # #著作権(C)1999-2004、著者:Erik Andersen # # # BusyBox init は実行レベルをサポートしません。実行レベルフィールドは次のとおりです。 # BusyBox initはこれを完全に無視します。ランレベルが必要な場合は、sysvinitを使用してください。 # # #各項目の形式:::: # # : 警告: このフィールドは、BusyBox initに対して異なる意味を持ちます! # # BusyBox init は、id フィールドを使用してコントロール tty を指定します。 #実行する指定されたプロセス。このフィールドの内容は次のとおりです。 # "/dev/"に追加してそのまま使用します。このフィールドは必須ではありません。 #は一意ですが、そうでない場合は奇妙な結果が得られます。この場合 # そのフィールドを空白のままにすると完全に無視されます。また参考にしてください # BusyBoxはシリアルコンソールが使用中であることを検出し、すべての項目を #空でないIDフィールドを含めると実行されません。 BusyBoxの初期化は #utmpに内容がありません。臭いutmpは必要ありません。 # #: ランレベルフィールドは完全に無視されます。 # #: 有効な操作には sysinit, respawn, Askfirst, wait, Once, #再起動してctrlaltdelを押して終了します。 # #注:Askfirstはrespawnのように動作しますが、指定されたコマンドを実行する前に #プロセスを進めると、「この機能を有効にするにはEnterを押します」という行が表示されます。 # console." 次に、開始する前にユーザーが Enter を押すまで待ちます。 #プロセスを指定します。 # #注:認識できない操作(initdefaultなど)が原因でinitが実行されます。 #エラーメッセージが表示されたら操作を続行します。 # #: 実行するプロセスとそのコマンドラインを指定します。 # #注:BusyBox initはinittabなしで動作します。 inittabがない場合 #次の基本的な動作があることがわかりました: ::一度:/usr/sbin/usbconsole ::sysinit:/etc/init.d/rcS ::ctrlaltdel:/sbin/reboot ::終了:/etc/init.d/rc.shutdown ::終了:/sbin/swapoff -a ::終了:/bin/umount -a -r ::再起動:/sbin/init # # /dev/console このシリアルコンソールが_no_であると検出された場合、 #次も実行します。 #tty2::askfirst:/bin/sh #tty3::askfirst:/bin/sh # tty4::askfirst:/bin/sh # #起動時のシステム設定/初期化スクリプト。 #シングルユーザーモードで起動しない限り、最初に実行します。 # #::sysinit:/etc/init.d/rcS #::sysinit:/linuxrc #選択したttyに/ bin / shを呼び出します。 # #以下は、シェルコマンドの前に「-」を追加してこれを示します。 # shell ログインシェルでなければなりません。通常、これは次のように発生します。 #ログイン。ただし、この例ではログインをバイパスするため、BusyBoxを使用してこれを行うことができます。 #これは自分で... # #コンソールで「askfirst」シェル(何でも)を起動します。 ::最初に尋ねてください: -/bin/sh # /dev/tty2-4で"askfirst"シェルを起動します。 # tty2::askfirst:-/bin/sh # tty3::askfirst:-/bin/sh # tty4::askfirst:-/bin/sh #選択したttyに対して/ sbin / getty呼び出しを行います。 #tty4::respawn:/sbin/getty 38400 tty5 #tty5::respawn:/sbin/getty 38400 tty6 #シリアル回線(ターミナル用)にgettyを入れる方法の例 #::respawn:/sbin/getty -L ttyS0 115200 vt100 私のルーターは、Busyboxが組み込まれているLinuxを実行しています。起動時に自動的にログインしてWebブラウザを起動したいです。これは「/etc/inittabファイル」です: # #モデム回線にgettyを入れる方法の例です。 #::respawn:/sbin/getty 57600 ttyS2 #initプロセスを再起動するときにやるべきこと #::再起動:/sbin/init #再起動する前にすべきこと #::ctrlaltdel:/sbin/reboot #::shutdown:/bin/umount -a -r # ::shutdown:/sbin/swapoff -a
答え1
おそらく一つ少し答えが遅れましたが、とにかく追加することにしました。
Ciscoロゴ(または何でも)にぶら下がっているもの予想されるファイルが空のときの動作/etc/inittab
。答えは、コンピュータにログインする方法によって異なります。次の行のコメントを外します。
::respawn:/sbin/getty -L ttyS0 115200 vt100
にログインプロンプトを入力できます/dev/ttyS0
。シリアル経由で接続したとします/dev/ttyS0
(これが実際にあなたのインターフェースであることを確認してください。機械例/dev/ttyPS0
)以下を追加すると、自動ログインを追加できます。
ttyPS0::respawn:/bin/login -f <user>
これにより自動的にログインします<user>
。別の方法は、/sbin/getty
以下のようにカスタム自動ログインユーティリティを使用することです。ここ。
たとえば、自動ログインを使用したい場合は、例を変更できます/dev/tty3
。ブラウザの自動起動は、Xと使用しているブラウザによって異なります。最後に、次の内容を追加してディレクトリのまたは(通常)を変更します~/.profile
。~/.bashrc
${HOME}
/home/<user>
startx
google-chrome-stable &
ただし、特定のシリアル/ USBケーブルを介してルーターに接続すると、機能しない可能性があります。
答え2
テストするルータはありませんが、少なくともBuildroot + BusyBox + QEMUでは、次のfstabエントリが自動的にログインし、すべてが機能しているようです。
::respawn:-/bin/sh
私が説明したように:Buildroot BusyBox initにrootユーザー名またはパスワードを入力せずに自動的にログインする方法は?
リードすることを忘れないでください-
!そうしないと、TTY相互作用がわずかに損なわれます。たとえば、Ctrl + Cを使用してフォアグラウンドプログラムを終了することはできません。
他のユーザーとしてログインするには、/bin/login
次のように使用できます。https://unix.stackexchange.com/a/434799/32558ただし、次の理由でダッシュの前にダッシュを追加することもできます/bin/sh
。
::respawn:-/bin/login -f user0