首页 > 运维 > linux运维 > 正文

DRV_07_UInput分析_用户态创建input_dev

雪夜
发布: 2025-06-25 10:34:13
原创
294人浏览过

资料下载

coding无法使用浏览器打开,必须用git工具下载:

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git</code>
登录后复制
视频观看

百问网驱动大全

UInput分析_用户态创建input_dev

参考资料:

1. 概念

uinput是一个内核模块(驱动),它允许应用程序模拟输入设备(input_dev)。 应用程序通过访问/dev/uinput/dev/input/uinput

创建一个虚拟的输入设备设置它的属性APP发送数据给它,让它产生输入事件uinput就会把这些输入事件分发给其他使用者(APP或内核里其他模块)

框图如下:

DRV_07_UInput分析_用户态创建input_dev
2. 编写应用程序3. 上机实验3.1 设置工具链

在Ubuntu中执行:

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">export ARCH=armexport CROSS_COMPILE=arm-linux-gnueabihf-export PATH=$PATH:/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin</code>
登录后复制
3.2 配置内核

配置内核:执行make menuconfig

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">-> Device Drivers  -> Input device support    -> Generic input layer         -> Miscellaneous devices         <M>   User level driver support</code>
登录后复制
3.3 编译驱动代码语言:javascript代码运行次数:0运行复制
<code class="javascript">book@100ask:~/100ask_imx6ull-qemu$ cd linux-4.9.88book@100ask:~/100ask_imx6ull-qemu/linux-4.9.88$ make modules</code>
登录后复制

成功的话,可以得到:

AI建筑知识问答
AI建筑知识问答

用人工智能ChatGPT帮你解答所有建筑问题

AI建筑知识问答 22
查看详情 AI建筑知识问答
代码语言:javascript代码运行次数:0运行复制
<code class="javascript">drivers/input/misc/uinput.ko</code>
登录后复制

复制到如下目录:

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">$ cp drivers/input/misc/uinput.ko ~/nfs_rootfs/</code>
登录后复制
3.4 编译测试程序

把代码04_uinput上传到Ubuntu,设置好交叉编译工具链后,在04_uinput目录下执行make命令即可。

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">$ make$ cp uinput_test ~/nfs_rootfs/</code>
登录后复制
3.5 启动QEMU

在Ubuntu中执行:

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">$ cd ubuntu-18.04_imx6ul_qemu_system$ ./qemu-imx6ull-gui.sh</code>
登录后复制
3.6 挂载NFS、实验

在QEMU中执行:

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">$ mount -t nfs -o nolock,vers=3 10.0.2.2:/home/book/nfs_rootfs /mnt$ insmod /mnt/uinput.ko$ ls -l /dev/uinput   // 确认设备节点// 后台运行uinput_test/mnt/uinput_test &// 看到提示这个提示时: Will sleep 60s, in this time you should run ts_calibreate// 运行校准程序// 注意:如果有真实的触摸屏驱动,需要指定使用虚拟的设备节点//      方法示例: export TSLIB_TSDEVICE=/dev/input/event3ts_calibrate// 看到提示这个提示时: Will sleep 60s, in this time you should run ts_test// 运行测试程序ts_test</code>
登录后复制
4. 结合应用程序分析uinput

ibrate

// 看到提示这个提示时: Will sleep 60s, in this time you should run ts_test // 运行测试程序 ts_test

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">### 4. 结合应用程序分析uinput</code>
登录后复制

以上就是DRV_07_UInput分析_用户态创建input_dev的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号