You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Weston-Wayland中校准矩阵位置查询及Yocto嵌入式Linux系统触摸屏永久校准方案咨询

解决Yocto构建Weston系统触摸屏校准重启失效的问题

我之前在基于Yocto构建的Weston(Wayland)嵌入式Linux系统里,也碰到过和你一模一样的触摸屏校准后重启失效的问题,折腾了好一阵才找到几个可行的解决办法,分享给你:

方法1:手动将校准矩阵写入Weston配置文件

这是最直接的方式,核心是把校准后的矩阵值持久化到Weston的配置文件里:

  • 第一步:获取校准矩阵
    运行weston-touch-calibrator完成校准后,不要直接关闭窗口,回到启动该工具的终端,你会看到类似如下的输出(如果终端没显示,可以将输出重定向到文件:weston-touch-calibrator > calibration.txt):
    Calibration matrix: 0.9876 0.0123 -0.0045 0.0067 1.0234 -0.0123 0 0 1
    
    把这串矩阵值记下来。
  • 第二步:修改Weston配置文件
    先找到Weston的配置文件位置,Yocto构建的系统里通常在/etc/weston/weston.ini或/etc/xdg/weston/weston.ini,可以用find / -name weston.ini查找。
    打开文件后,添加或修改[input]章节,把校准矩阵加进去:
    [input]
    # 替换成你拿到的校准矩阵值
    calibration_matrix = 0.9876 0.0123 -0.0045 0.0067 1.0234 -0.0123 0 0 1
    
  • 第三步:生效配置
    如果系统是只读文件系统,需要先重新挂载为可写:mount -o remount,rw /,修改保存后再改回只读:mount -o remount,ro /。
    重启Weston服务(systemctl restart weston)或者直接重启系统,校准值就会永久生效了。

方法2:用udev规则自动加载校准矩阵

这种方式适合依赖udev管理设备的系统,设备启动时自动应用校准:

  • 第一步:获取触摸设备名称
    运行libinput list-devices,找到你的触摸屏设备,记下它的Name字段,比如"Generic Touchscreen"。
  • 第二步:创建udev规则文件
    在/etc/udev/rules.d/目录下创建一个规则文件,比如99-touch-calibration.rules,内容如下:
    SUBSYSTEM=="input", ATTRS{name}=="Generic Touchscreen", ENV{LIBINPUT_CALIBRATION_MATRIX}="0.9876 0.0123 -0.0045 0.0067 1.0234 -0.0123 0 0 1"
    
    注意替换设备名称和校准矩阵值。
  • 第三步:生效规则
    重新加载udev规则:udevadm control --reload-rules && udevadm trigger,之后重启系统,校准值就会自动应用。

方法3:Yocto构建时集成校准配置(适合批量生产)

如果是批量部署设备,可以直接在Yocto构建时把校准配置集成到镜像里,避免每台设备手动操作:

  • 在你的自定义Yocto层(比如meta-custom)里,创建recipes-graphics/weston/weston-custom/目录,放入修改好的weston.ini文件(包含校准矩阵)。
  • 编写weston-custom.bbappend文件,内容如下:
    FILESEXTRAPATHS_prepend := "${THISDIR}/weston-custom:"
    SRC_URI += "file://weston.ini"
    
    do_install_append() {
        install -m 0644 ${WORKDIR}/weston.ini ${D}${sysconfdir}/weston/
    }
    
    这样构建出来的镜像就会自带校准好的Weston配置,烧写后直接生效。

额外注意事项

  • 如果找不到weston-touch-calibrator的输出,可以用libinput debug-events --touch辅助查看触摸数据,但还是优先看校准工具的终端输出更准确。
  • 部分Yocto版本可能需要确保Weston编译时启用了触摸校准支持,检查你的Weston recipe是否包含了PACKAGECONFIG += "touch-calibrator"。

内容的提问来源于stack exchange,提问作者ahmet cihan Akınca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 14:34:07