尝试在我的 Raspberry Pi 上启动时打开浏览器

尝试在我的 Raspberry Pi 上启动时打开浏览器

我的 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 窗口,但出现上述错误。如果刷新页面,那么它就可以工作,但我希望能够在没有鼠标或键盘的情况下调出网址。我读到在启动开始时,互联网可能还没有连接,所以我创建了一个 bash 脚本,在打开 Midori 窗口之前将进程延迟了二十秒。这也不起作用,同样的错误仍然存​​在。我也尝试过使用铬的过程,但也无济于事。

答案1

在我的 Pi 上,我有一个脚本,可以在执行其他操作之前检查我是否有 IP 地址:

IP.py

进口插座
从时间导入睡眠

def 检查网络():
    ip = 假
    尝试:
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        s.connect(('google.com', 0))
        ip = s.getsockname()[0]
        s.close()
    除了套接字错误:
        返回错误
    别的:
        返回ip

def main():
    x = 检查网络()
    当 x == False 时:
        打印“正在检查网络...”
        x = 检查网络()
        睡觉(1)

这只是尝试打开某个已知地址的套接字,并且在实际获得连接之前会失败。使其可执行:

chmod +x ip.py

然后,您需要通过将其添加到 /etc/rc.local 来将其添加到启动中:

#!/bin/sh -e
#
# rc.local
#
# 该脚本在每个多用户运行级别结束时执行。
# 确保脚本在成功或任何其他情况下将“退出 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

为我工作

相关内容