切换ivi-shell后Weston黑屏求助——wayland-ivi-extension移植问题
检查Weston启动日志:
启动Weston时添加--log=debug参数,查看是否有ivi-shell、ivi-controller加载失败的错误,比如找不到ivi-input-controller.so,或者模块初始化失败的日志,这些可能是核心原因。验证ivi-shell相关模块路径:
确认ivi-shell.so、ivi-controller.so、ivi-input-controller.so是否在Weston的模块搜索路径下(通常是/usr/lib/weston/或Yocto构建的对应lib目录),可以用ldd ivi-shell.so检查依赖库是否都存在且能正常加载。检查layer配置有效性:
确认layer-add-surfaces命令中的layer ID(1000)是否是ivi-shell预定义或已正确注册的layer。可以先调用LayerManagerControl get layers查看系统中存在的layer列表,确保使用的layer ID是合法的。验证ivi-controller服务状态:
检查ivi-controller是否正确初始化并提供D-Bus服务,用busctl list | grep ivi查看是否有对应的D-Bus服务存在,若不存在说明controller模块加载或初始化失败。测试基础surface创建:
尝试用ivi-shell自带的test-client示例程序创建surface,而不是直接用layer-add-surfaces,看是否能成功创建并显示,排除命令工具本身的问题。检查硬件适配相关:
确认Weston的backend配置是否正确,比如是否使用了正确的DRM backend,显卡驱动是否正常加载,weston-info命令可以查看当前Weston的backend和输出设备信息,确保显示设备被正确识别。查看系统日志:
检查dmesg或journalctl中的内核日志,看是否有DRM、显卡相关的错误,或者内存不足、权限问题导致的模块加载失败。
内容的提问来源于stack exchange,提问作者gundom02

