1. 车载Linux Wayland开发环境搭建与验证
任务说明
在车载Linux系统(以Ubuntu 22.04 LTS为参考)上安装Wayland开发所需的库与工具,配置环境变量,并启动Weston合成器验证环境可用。完成后应能在Weston终端中运行Wayland客户端程序。
环境依赖
- 操作系统:Ubuntu 22.04 LTS(x86_64或aarch64)
- 权限:sudo权限
- 网络:可访问Ubuntu软件源
安装步骤
执行以下命令安装Wayland开发库、Weston合成器及构建工具:
sudo apt update
sudo apt install -y weston wayland-protocols libwayland-dev libwayland-bin \
libwayland-client++0 libwayland-cursor++0 libwayland-egl1 \
meson ninja-build pkg-config wayland-scanner++
配置环境变量
将以下内容追加到 ~/.bashrc,使Wayland客户端能找到运行时目录:
export XDG_RUNTIME_DIR=/run/user/$(id -u)
export WAYLAND_DISPLAY=wayland-1
执行 source ~/.bashrc 使配置生效。
验证Weston运行
在无图形界面的终端中启动Weston(若已有桌面环境,请切换到TTY终端执行):
weston --backend=headless-backend.so --socket=wayland-1
Weston启动后,另开一个终端,检查Wayland socket是否存在:
ls -la $XDG_RUNTIME_DIR/wayland-1
预期输出:显示socket文件 wayland-1,权限为 srwxrwxrwx。
验证客户端连接
在第二个终端中运行Weston自带的客户端测试程序:
weston-simple-shm
若环境配置正确,Weston窗口中会显示一个旋转的彩色方块。按 Ctrl+C 退出测试程序。
通过条件
- Weston进程无报错持续运行
wayland-1socket文件存在且可访问weston-simple-shm客户端成功连接并显示图形
常见问题
- XDG_RUNTIME_DIR未设置:Weston启动报错
fatal: could not create wayland socket,确认已执行source ~/.bashrc或手动export。 - 权限不足:若socket创建失败,检查
/run/user/$(id -u)目录存在且属主为当前用户,必要时执行sudo chmod 700 /run/user/$(id -u)。 - headless后端无输出:若需在开发板上验证,可改用
weston --backend=drm-backend.so(需DRM设备权限)。
环境验证脚本
以下脚本可一键验证环境是否就绪,保存为 check_wayland_env.sh 并执行 bash check_wayland_env.sh:
#!/bin/bash
echo "=== Wayland环境检查 ==="
pkg-config --exists wayland-client && echo "[OK] wayland-client 开发库" || echo "[FAIL] wayland-client 未安装"
pkg-config --exists wayland-server && echo "[OK] wayland-server 开发库" || echo "[FAIL] wayland-server 未安装"
which weston >/dev/null && echo "[OK] weston 已安装" || echo "[FAIL] weston 未安装"
which wayland-scanner >/dev/null && echo "[OK] wayland-scanner 已安装" || echo "[FAIL] wayland-scanner 未安装"
echo "XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR"
echo "WAYLAND_DISPLAY=$WAYLAND_DISPLAY"
echo "=== 检查完成 ==="
所有检查项输出 [OK] 且环境变量非空,即表示开发环境配置完成。