最小 Kiosk 浏览器在启动时无法与 xinit 配合使用

最小 Kiosk 浏览器在启动时无法与 xinit 配合使用

我的 Raspberry Pi 的启动顺序有问题。我的目标是让 Minimal Kiosk Browser (kweb) 在启动顺序中运行。为此,我在脚本 /etc/rc.local 中进行了更改:

(...)
sh /home/lustron/Lustron/starter.sh   &
sleep 5s
python /home/lustron/Lustron/sensor5.py  &


exit 0

和starter.sh脚本:

#!/bin/bash

xinit /usr/bin/kweb -KHCUA+-zbhrqfpoklgtjneduwxy file:///var/www/index.php &

不幸的是,当我的 RPi 启动时,它以用户 Lustron 的命令行结束,就像它根本没有使用 /etc/rc.local 文件一样。当我执行命令时sudo sh /etc/rc/local,脚本正在启动,我可以看到 xserver 启动,但屏幕的 3/4 部分只有一个白色的“窗口?”。我能看到的唯一错误是:FATAL: module g2d_23 not found 另一个脚本(sensor5.py)运行正常。

这里有什么问题?显然这里有两个问题: - xinit 没有正确初始化 - /etc/rc.local 没有在启动时执行

答案1

确保/etc/rc.local是可执行的(chmod a+rx)。您可以在开头添加一行以将错误重定向到日志文件:

exec 2>>/tmp/rc.errors

Linux 中有多个虚拟终端。每次只能在屏幕上显示 1 个。X11 服务器也使用 VT。文件/etc/inittab中每个 VT 都有一行,例如:

2:23:respawn:/sbin/getty 38400 tty2

稍后当一切正常时,您可能希望抑制这些。altF7例如,您可以通过键盘在 VT 之间切换,以进入 VT 7 (tty7),这通常是唯一未被使用的 VT getty(来自 inittab),因此 X11 服务器将处于该 VT 上。

您还可以使用chvt命令(以 root 身份)来更改 VT。

答案2

我使用了以下解决方案:http://blogs.wcode.org/2013/09/howto-boot-your-raspberry-pi-into-a-fullscreen-browser-kiosk/

我在 /etc/rc.local 中添加了以下内容:

if [ -f /boot/xinitrc ]; then
    ln -fs /boot/xinitrc /home/pi/.xinitrc;
    su - pi -c 'startx' &
fi

以及 /boot/xinitrc:

#!/bin/sh
while true; do

    # Clean up previously running apps, gracefully at first then harshly
    killall -TERM chromium 2>/dev/null;
    killall -TERM matchbox-window-manager 2>/dev/null;
    sleep 2;
    killall -9 chromium 2>/dev/null;
    killall -9 matchbox-window-manager 2>/dev/null;

    # Clean out existing profile information
    rm -rf /home/pi/.cache;
    rm -rf /home/pi/.config;
    rm -rf /home/pi/.pki;

    # Generate the bare minimum to keep Chromium happy!
    mkdir -p /home/pi/.config/chromium/Default
    sqlite3 /home/pi/.config/chromium/Default/Web\ Data "CREATE TABLE meta(key LONGVARCHAR NOT NULL UNIQUE PRIMARY KEY, value LONGVARCHAR); INSERT INTO meta VALUES('version','46'); CREATE TABLE keywords (foo INTEGER);";

    # Disable DPMS / Screen blanking
    xset -dpms
    xset s off

    # Reset the framebuffer's colour-depth
    fbset -depth $( cat /sys/module/*fb*/parameters/fbdepth );

    # Hide the cursor (move it to the bottom-right, comment out if you want mouse interaction)
    xwit -root -warp $( cat /sys/module/*fb*/parameters/fbwidth ) $( cat /sys/module/*fb*/parameters/fbheight )

    # Start the window manager (remove "-use_cursor no" if you actually want mouse interaction)
    matchbox-window-manager -use_titlebar no -use_cursor no &

    # Start the browser (See http://peter.sh/experiments/chromium-command-line-switches/)
    chromium  --app=http://URL.of.your/choice.html

done;

相关内容