【EASY-EAI-PI2(RV1126B)开发板试用体验】开机直接显示浏览器方案总结

原创2026-07-01 08:57:23浏览1
1
Star

背景

在 ARM 嵌入式开发板(EasyEAI-PI2)上实现开机直接显示浏览器打开指定网页,无需桌面环境和登录窗口。系统配置如下:

  • 硬件: ARM64 四核处理器,1GB 内存

  • 系统盘: 3.3GB(空间非常紧张)

  • 外挂盘: 60GB 挂载在 /home

  • 操作系统: Ubuntu 22.04 + Xfce 桌面

需求

  • 开机直接显示浏览器全屏打开百度

  • 无登录窗口

  • 无桌面环境

  • 无浏览器地址栏和按钮

尝试过程

方案一:systemd 直接启动 X11 + 浏览器

思路: 绕过显示管理器,直接用 systemd 启动 X server 和浏览器。

配置文件:

# /etc/systemd/system/kiosk.service
[Unit]
Description=Kiosk Browser
After=systemd-user-sessions.service network-online.target

[Service]
Type=simple
User=lq
Environment=DISPLAY=:0
ExecStart=/usr/bin/startx /usr/local/bin/kiosk.sh -- :0 vt7
Restart=always

[Install]
WantedBy=multi-user.target

问题:

Fatal server error: xf86OpenConsole: Cannot open virtual console 7 (Permission denied)

原因: 非特权用户无法访问 /dev/tty7,即使添加用户组也无法解决。

结论: 此方案在嵌入式设备上权限管理复杂,不适合。


方案二:LightDM 自动登录 + Xfce 自动启动

思路: 使用 LightDM 显示管理器,配置自动登录,然后在 Xfce 中设置应用程序自动启动。

配置:

# /etc/lightdm/lightdm.conf.d/50-autologin.conf
[Seat:*]
autologin-user=lq
autologin-user-timeout=0
autologin-session=xfce
# ~/.config/autostart/browser.desktop
[Desktop Entry]
Type=Application
Exec=epiphany --kiosk-mode https://www.baidu.com

问题:

  1. LightDM 配置语法问题([SeatDefaults] 已弃用,需用 [Seat:*]

  2. 用户需加入 nopasswdlogin 组才能免密登录

  3. 启动后仍然显示桌面环境

结论: 可以实现自动登录,但无法跳过桌面直接显示浏览器。


方案三:LightDM + 自定义 Kiosk Session

思路: 创建自定义 X session,只启动窗口管理器和浏览器,不启动桌面环境。

配置:

# /usr/share/xsessions/kiosk.desktop
[Desktop Entry]
Name=Kiosk
Exec=/usr/local/bin/kiosk-session.sh
Type=Application
# /usr/local/bin/kiosk-session.sh
#!/bin/bash
xset s off
xset -dpms
matchbox-window-manager &
epiphany --kiosk-mode https://www.baidu.com

问题:

  1. Epiphany 浏览器的 --kiosk-mode 参数无效

  2. 浏览器仍然显示地址栏和窗口按钮

  3. 尝试用 xdotool 移动窗口位置隐藏地址栏,但效果不理想

结论: Epiphany 不支持真正的 kiosk 模式。


方案四:安装 Chromium 浏览器

思路: Chromium 支持 --kiosk 参数,可以实现真正的全屏 kiosk 模式。

问题:

E: 您在 /var/cache/apt/archives/ 上没有足够的可用空间。

Ubuntu 22.04 的 chromium-browser 包实际上是一个 snap 包装器:

=> Installing the chromium snap
error: cannot communicate with server: timeout exceeded while waiting for response

原因:

  1. 系统盘只有 3.3GB,频繁空间不足

  2. Snap 需要连接 snap store,嵌入式设备网络受限

  3. Snap 安装路径无法更改到 /home 分区

结论: Snap 机制在嵌入式离线/受限环境下不适用。


最终方案:Firefox 便携版 + LightDM Kiosk Session

思路: 下载 Firefox 便携版到 /home 分区,配合 LightDM 的自定义 session。

步骤 1:下载 Firefox 便携版

cd /home/lq
wget "https://download.mozilla.org/?product=firefox-latest&os=linux64-aarch64&lang=zh-CN" -O firefox.tar.bz2
tar -xjf firefox.tar.bz2

Firefox 便携版解压即用,不需要安装到系统目录。

步骤 2:创建 Kiosk 启动脚本

#!/bin/bash
# /home/lq/firefox/kiosk.sh

# 禁用屏保和电源管理
xset s off
xset -dpms
xset s noblank

# 隐藏鼠标光标
unclutter -idle 0 &

# 启动轻量级窗口管理器(无标题栏)
matchbox-window-manager -use_titlebar no -use_cursor no &

sleep 2

# 启动 Firefox kiosk 模式
/home/lq/firefox/firefox --kiosk https://www.baidu.com

步骤 3:创建 Kiosk Session

# /usr/share/xsessions/kiosk.desktop
[Desktop Entry]
Name=Kiosk
Comment=Firefox Kiosk Mode
Exec=/home/lq/firefox/kiosk.sh
Type=Application
DesktopNames=Kiosk

步骤 4:配置 LightDM 自动登录

# /etc/lightdm/lightdm.conf.d/50-autologin.conf
[Seat:*]
autologin-user=lq
autologin-user-timeout=0
autologin-session=kiosk

步骤 5:配置用户权限

sudo groupadd -r autologin
sudo groupadd -r nopasswdlogin
sudo usermod -aG autologin,nopasswdlogin lq

最终效果

  • ✅ 开机自动登录(无需输入密码)

  • ✅ 直接显示 Firefox 全屏打开百度

  • ✅ 无桌面环境

  • ✅ 无浏览器地址栏和按钮

  • ✅ 无鼠标光标

经验总结

1. 空间管理

嵌入式设备系统盘通常很小,需要注意:

  • 清理 apt 缓存:rm -rf /var/cache/apt/archives/*.deb

  • 清理日志:journalctl --vacuum-size=5M

  • 删除不需要的语言包和字体

  • 大型软件安装到外挂盘

2. Snap 的坑

Ubuntu 22.04 很多软件(chromium、firefox)转向 snap:

  • Snap 需要网络连接 snap store

  • Snap 安装路径固定,无法更改

  • 嵌入式/离线环境建议使用便携版或 deb 包

3. LightDM 自动登录

关键配置点:

  • 使用 [Seat:*] 而非 [SeatDefaults]

  • 用户需加入 autologinnopasswdlogin

  • autologin-session 必须对应 /usr/share/xsessions/ 中的 .desktop 文件

4. 浏览器 Kiosk 模式

浏览器

Kiosk 支持

说明

Chromium

--kiosk

完美支持,但 snap 安装困难

Firefox

--kiosk

支持,推荐便携版

Epiphany

--kiosk-mode 参数无效

参考命令

# 查看可用 session
ls /usr/share/xsessions/

# 查看显示管理器状态
systemctl status lightdm

# 查看 LightDM 配置
lightdm --show-config

# 查看磁盘空间
df -h

# 手动测试 kiosk 脚本
DISPLAY=:0 /home/lq/firefox/firefox --kiosk https://www.baidu.com

开机情况参考视频