私はRaspberry PiでRaspbianを実行していて、起動時にブラウザを表示したいと思います。起動時に正しいページでMidoriウィンドウを開くことができますが、問題は、インターネットに接続していない場合に発生するエラーなどの「ホスト名を解決できません」というエラーが発生することです。上記の指示に従いました。http://www.niteoweb.com/blog/raspberry-pi-boot-to-browserコマンドラインに次のように入力します。
$ sudo nano /etc/xdg/lxsession/LXDE/autostart
すべての内容をコメントアウトし、次の行を追加します。
@xset s off
@xset -dpms
@xset s noblank
@midori -e Fullscreen -a http://google.com
このプロセスが開始されると、Midoriウィンドウが開きますが、上記のエラーが発生します。ページを更新すると機能しますが、マウスやキーボードなしでURLを呼び出すことができるようにしたいです。起動時にインターネットが接続できない可能性があることを読んだので、Midoriウィンドウを開く前にプロセスを20秒間遅らせるbashスクリプトを作成しました。これも機能せず、同じエラーが続きます。また、Chromeプロセスを試してみましたが、役に立ちませんでした。
答え1
私のPiには、他のタスクを実行する前にIPアドレスがあることを確認するスクリプトがあります:
IP.py
輸入ソケット 時間から睡眠を取得 デフチェックネットワーク(): ipi = false 努力する: s = ソケット.ソケット (ソケット.AF_INET, ソケット.SOCK_DGRAM) s.connect(('google.com', 0)) ip = s.getsockname()[0] s.閉じる() ソケットエラーを除いて: 戻りエラー その他: IPリターン デフメイン(): x = ネットワーク確認() x == Falseの場合: 「ネットワーク確認中…」印刷 x = ネットワーク確認() 睡眠(1)
これは単に既知のアドレスでソケットを開こうとし、実際に接続する前に失敗します。実行可能にする:
chmod +x ip.py
その後、/etc/rc.localに追加して起動時に追加する必要があります。
#!/bin/sh -e # #rc.ローカル # #このスクリプトは、各マルチユーザーランレベルの終わりに実行されます。 #成功や他の状況でスクリプトが「0で終了」していることを確認してください。 #エラー値。 # #このスクリプトを有効または無効にするには、実行方法を変更できます。 #少し。 # #デフォルトでは、このスクリプトは何もしません。 /usr/bin/python/directory/where/you/put/ip.py 0番出口
お役に立てば幸い
答え2
ワイヤレスネットワークキーを入力せずにAPルーターのボタンオプションを使用してこの問題を解決しました。ワイヤレスキーボードとマウス(電源付きUSBハブを介して)を使用してもすぐに接続すると、もはや問題は発生しません。
答え3
ifconfigを使用してIPアドレスを検出し、IPアドレス($? == 0など)が取得されるまで待ちます(ipv4と仮定)。
$ /sbin/ifconfig |grep "inet " |grep -v "127.0.0.1"
inet 10.2.3.15 netmask 255.255.255.0 broadcast 10.2.3.255
$ echo $?
0
それは、
#!/bin/bash
while [ 1 ]; do
ip=`/sbin/ifconfig |grep -v "127.0.0.1" |grep "inet "`
[[ $? == 0 ]] && break;
echo "wait for ip"; sleep 1;
done
echo "got ip: $ip"
答え4
/etc/xdg/lxsession/LXDE/自動起動:
@lxpanel --profile LXDE
@pcmanfm --desktop --profile LXDE
@xscreensaver -no-splash
@midori --inactivity-reset=60 -e Fullscreen -a http://www.google.com
私のために働く