如果可以运行 snap 版本,请回答火狐在Ubuntu Core 32 位物联网之内Ubuntu 框架?
我目前正在使用 Raspberry Pi 4 (4GB),但计划将 SD 卡移至 Raspberry Pi Zero 2W(因此使用32 位 armhf架构的兼容性,尽管Pi Zero 2 是 64 位?)依据本文 (欣赏表演可能会让人无法忍受)。
我有成功地关注本指南使用wpe-webkit-mir-kiosk但是,如果我导航到某些页面,浏览器似乎会崩溃,并且对于我的使用情况来说似乎不太稳定。此外,我希望使用的 Web 应用程序仅正式支持 Linux 上的 Firefox、Windows 上的 Edge 和 Android 上的 Chrome(来自开发者)。
- 看起来Ubuntu 框架支持本地显示韦兰。我不知道这是否会取代米尔亭 (我也尝试过通过 Wayland 提供显示输出)。
- 火狐在最新版本中支持 Wayland。Firefox
MOZ_ENABLE_WAYLAND=1
无法设置为守护进程,因此不会像其他 snap 包一样在启动时启动。 - 这些是所有支持的 snap 包Ubuntu 核心
snap install ubuntu-frame | snap install firefox
我在 Pi 4 上运行了 Ubuntu Core 20(32 位),并成功安装了所有 snap 包,但我只是不知道如何操作,或者是否可以让 Firefox 连接 Wayland 显示输出?
目前,我在启动 Firefox 时收到以下信息:Error: no DISPLAY environment variable specified
我曾尝试过本指南但是由于我之前没有使用过 snap 包,这确实超出了我的理解范围,尽管我相信从我的专业经验来看,我对这些概念有很好的理解。
我不知道下面的内容是否有帮助,我需要以 root 用户身份运行 Firefox 吗?
Ubuntu 核心:ubuntu-frame 在 Core 上以 root 身份运行,因此 Wayland 套接字位于/运行/用户/0/wayland-0
强制使用$DISPLAY
环境变量显然不会成功。
我觉得这应该是可行的,非常感谢任何关于前进方向的建议。一旦完成,将非常乐意分享/博客整个构建。实际上,它应该是一个不错的轻量级客户端浏览器信息亭。
答案1
要实现这一目标,需要采取许多步骤。
1/ 测试 Firefox 是否启动:
在 shell 中,以 root 身份运行(使用sudo -i
以成为 root ):
WAYLAND_DISPLAY=wayland-0 MOZ_ENABLE_WAYLAND=1 firefox http://www.askubuntu.com
2/ 启动时自动运行 ubuntu-frame
如果您不是使用 Ubuntu,您可能需要运行一次:
snap set ubuntu-frame daemon=true
您还应该删除 mir 包(否则会占用内存):
snap remove wpe-webkit-mir-kiosk
3/ 启动时自动启用 Firefox
您需要配置 systemd 服务。为此,您需要创建一个文件/etc/systemd/system/firefox-frame.service内容如下:
[Unit]
Description=Firefox Display
After=snap.ubuntu-frame.daemon.service
After=getty.target
Conflicts=display-manager.service
[Service]
Type=simple
Environment=HOME=/root
Environment=WAYLAND_DISPLAY=wayland-0
Environment=MOZ_ENABLE_WAYLAND=1
Environment=XDG_RUNTIME_DIR=/run/user/0
Environment=XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop
Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/0/bus
ExecStart=/usr/bin/firefox --kiosk http://www.askubuntu.com
Nice=15
[Install]
WantedBy=default.target
用以下方法测试一下(“firefox-frame”是上面文件的名称)
systemctl daemon-reload
systemctl start firefox-frame
如果一切正常,你可以使用以下命令启用它
systemctl enable firefox-frame
PS:我目前正在使用 Debian,带有原生的 Firefox-esr。
答案2
在传统桌面会话中开发的 snap 与为 IoT 设备开发的 snap 之间存在差异。
Firefox snap 由 Mozilla 维护(从https://snapcraft.io/firefox) 并针对传统桌面会话 (仅)。据我所知,目前还不指望它能在 Ubuntu Core 上运行。
要让 Firefox 在 Ubuntu Core 上作为守护进程运行,需要对 snap 打包进行一些(重新)工作。我怀疑 Mozilla 团队是否有兴趣做这项工作,但我没有问过他们。
如果您有兴趣尝试重新打包,我在此 Wiki 上记录了该过程和一些潜在问题:使用 Ubuntu Frame 嵌入 IoT GUI。
祝你好运!