Linux嵌入式配置USB鼠标支持+触摸板

在linux嵌入式中加入鼠标支持,首先在内核里面将mice驱动加入编译,这里用到的是usb所以还要有usb的支持,下载到板子上启动

1、定位鼠标

要用鼠标,首先要知道生成的鼠标设备是哪个,直接直接ls input目录,当时我发现

然后插上USB鼠标,再一次运行查看变化如下:

此时,event2 和mouse1都是新出现了,那么这个就是鼠标设备。

控制台 cat /dev/input/mouse1| hexdump

移动鼠标,然后终端会打印出你的鼠标坐标,进一步确认。

2、设置环境变量

vi /etc/profile

2.1导入环境变量

export QWS_MOUSE_PROTO=intellimouse:/dev/input/mouse1

使用触摸屏,导入环境变量

export QWS_MOUSE_PROTO=tslib:/dev/input/event0

2.2如果想同时两个都支持

export QWS_MOUSE_PROTO="tslib:/dev/input/event0 intellimouse:/dev/input/mouse1"

保存/etc/profile文件,重启嵌入式。

鼠标有反应了,

3、设置USB鼠标热插拔

4、程序函数

下面我将QMouseDriverFactory::create函数贴出来,大家可以对照此函数来指定driver的名字。

cpp 复制代码
QWSMouseHandler *QMouseDriverFactory::create(const QString& key, const QString &device)
{
    QString driver = key.toLower();
    if (driver == QLatin1String("linuxtp") || driver.isEmpty())
        return new QWSLinuxTPMouseHandler(key, device);
    if (driver == QLatin1String("yopy") || driver.isEmpty())
        return new QWSYopyMouseHandler(key, device);
    if (driver == QLatin1String("vr41xx") || driver.isEmpty())
        return new QWSVr41xxMouseHandler(key, device);
    if (driver == QLatin1String("auto")
        || driver == QLatin1String("intellimouse")
        || driver == QLatin1String("microsoft")
        || driver == QLatin1String("mousesystems")
        || driver == QLatin1String("mouseman")
        || driver.isEmpty()) {
        return new QWSPcMouseHandler(key, device);
    }
    if (driver == QLatin1String("bus"))
        return new QWSBusMouseHandler(key, device);
    if (driver == QLatin1String("tslib") || driver.isEmpty())
        return new QWSTslibMouseHandler(key, device);
    if (driver == QLatin1String("qvfbmouse") || driver == QLatin1String("qvfb"))
        return new QVFbMouseHandler(key, device);
#ifndef QT_NO_LIBRARY
    if (QWSMouseHandlerFactoryInterface *factory = qobject_cast<QWSMouseHandlerFactoryInterface*>(loader()->instance(driver)))
        return factory->create(driver, device);
#endif
    return 0;
}

还有需要注意的是QWS_MOUSE_PROTO这个环境变量是Qt程序运行时才会去读取的。

相关推荐
宿州派大星20 分钟前
Python实战:PyQt5 + OpenCV + Dlib 打造AI桌面应用
人工智能·python·qt
曦夜日长6 小时前
Git系统篇,Git本地使用(一):从“究极进化版“到三个区域的底层原理
大数据·linux·git·elasticsearch
shimly1234567 小时前
给断网无 sudo ubuntu22.04 机器安装 nodejs
linux
别动我齐刘海8 小时前
Linux 系统调试学习1
linux·运维·服务器·c++·学习·机器学习·机器人
Lsetea9 小时前
OpenSSL报certificate chain too long:error 22与verify_depth深度排查
linux·https·ssl证书·openssl·证书链
不像程序员的程序媛10 小时前
linux常见文本操作命令
linux·运维·服务器
wangbing112510 小时前
开发指南149-IotDB-常用命令
linux·运维·iotdb
长沙红胖子Qt10 小时前
Qt+TiePieHS3开发笔记(二):HS3发送器发出内置波形、直连示波器,示波器检测内置波形Demo
qt·示波器·tiepiehs3·发生器·同步发射和示波器采集
看着博客敲代码10 小时前
WorkBuddy 接上 Kali MCP 做自动化渗透:信息收集到初步验证的落地记录
linux·人工智能·安全·网络安全·自动化
小HANN12 小时前
华为云企业网站上云实战|从零搭建高可用WordPress全站架构(ECS+RDS+ELB+弹性伸缩+云监控闭环)
linux·运维·服务器·经验分享