我的 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;