Linux(kernel 3.2.x)下,基于EETI触屏控制器、USB触控线的触屏应用,发现将USB触控线拔掉再插上后,触屏失灵,此时触屏驱动 eGTouhD的CPU急剧飙升,占用率在90%以上。

查看触屏设备,发现USB触控线拔掉后,/dev/hidraw仍然存在,没有及时remove,此时再插上USB触控线,会在/dev下出现hidraw0的设备。因此判断故障点出在这里:USB触控线拔掉后,触控设备实际上已不存在,但是/dev/hidraw的存在使eGTouhD认为触控设备还存在,一直在读取/dev/hidraw,而不是读取重新插上后生成的新设备号/dev/hidraw1。

运行udevadm --monitor,发现在拔掉USB触控线,内核没有发出remove 设备的信息。

后从kernel.org官网找到一篇文档,更改drivers/hid/hidraw.c中更改device_destory执行的位置后,问题斛决,更改内容如下:

diff --git a/drivers/hid/hidraw.c b/drivers/hid/hidraw.c
index cb0137b..ab24ce2 100644
--- a/drivers/hid/hidraw.c
+++ b/drivers/hid/hidraw.c

@@ -320,13 +320,13 @@ static void drop_ref(struct hidraw *hidraw, int exists_bit)

hid_hw_close(hidraw->hid);

wake_up_interruptible(&hidraw->wait);

}

+ device_destroy(hidraw_class,

+ MKDEV(hidraw_major, hidraw->minor));

} else {

--hidraw->open;

}

if (!hidraw->open) {

if (!hidraw->exist) {

- device_destroy(hidraw_class,

- MKDEV(hidraw_major, hidraw->minor));

hidraw_table[hidraw->minor] = NULL;

kfree(hidraw);

} else {

参考文档:

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/hid/hidraw.c?id=47587fc098451c2100dc1fb618855fc2e2d937af

转载于:https://blog.51cto.com/11438258/1847304

Linux下,基于EETI触屏控制器的触屏失灵解决方法相关推荐

  1. Linux下CST和UTC时间的区别以及不一致的解决方法

    1.在linux中,用date查看时间的时候显示: 2013年 2月 17日 星期三 19:04:14 CST 世界协调时间(Universal Time Coordinated,UTC): GPS ...

  2. [收藏]Linux下update错误 E: Dynamic MMap ran out of room. 解决方法

    原文链接:http://forum.lupaworld.com/forum.php?mod=viewthread&tid=59980&ordertype=2 错误内容为:E: Dyna ...

  3. Thinkpad在Linux下指点杆和无线网络的配置和故障解决方法

    型号是Thinkpad R60i,系统为Fedora Linux 11,内核版本号:2.6.30.10 一.trackpoint 指点杆的调整 1.灵敏度的调整: 前文:指点杆(小红帽)是我最喜欢小黑 ...

  4. linux cst utc时间转换,Linux下CST和UTC时间的区别以及不一致的解决方法

    1.在linux中,用date查看时间的时候显示: 2013年 2月 17日 星期三 19:04:14 CST 世界协调时间(Universal Time Coordinated,UTC): GPS ...

  5. linux下svn客户端报错Cannot negotiate authentication mechanism的解决方法

    svn客户端报错Cannot negotiate authentication mechanism的解决方法: 问题出现的原因之一: 因为SVN服务器配置了saslauthd服务用来实现与ldap的对 ...

  6. (GPS移植三部曲)Linux下移植GPS应用程序之常见问题的分析与解决方法之三

    GPS应用程序移植常见问题分析与解决 ID Issue Description Analyse Causation Solution 1 导航系统一运行,就退出 使用ps命令,发现进程中cld_nav ...

  7. Linux下使用ls查看文件颜色全部为白色的解决方法,以及Linux中文件颜色介绍

    1 解决ls查看文件爱呢颜色为白色 方法一: 1.修改~/.bashrc文件,添加如下内容 alias ls='ls --color=auto' 2.source一下,让修改配置生效 source ~ ...

  8. linux下 db2日志满了,DB2事务日志已满的解决方法

    bzoj3208--记忆化搜索 题目大意: 花花山峰峦起伏,峰顶常年被雪,Memphis打算帮花花山风景区的人员开发一个滑雪项目.    我们可以把风景区看作一个n*n的地图,每个点有它的初始高度,滑 ...

  9. linux img提取文件系统,Linux下 mount IMG文件提示“您必须制定文件系统类型”解决方法...

    以Ubuntu 12.04为例: 假设我有个文件test.img,要挂载到/mnt/img文件目录下: 操作如下: $ cd "你的img镜像所在目录" $ losetup /de ...

  10. Linux下修复修改profile文件导致命令不用可的解决方法

    在配置环境变量时,修改了/etc/profile 文件,然后source /etc/profile 由于一个配置错误,导致一些系统命令没法使用了 ll -bash: ls: command not f ...

最新文章

  1. Scala基础教程(四):if语句、循环语句、while语句
  2. Script:列出失效索引或索引分区
  3. 数字中国建设再提速,智慧金融发展如何跑出“加速度”?
  4. jqgrid学习(1)
  5. 使用 intellijIDEA + gradle构建的项目如何debug
  6. u-net语义分割_使用U-Net的语义分割
  7. 给 asp.net core 写个中间件来记录接口耗时
  8. python循环删除包含字符串_删除包含完全字符串的文件中的行(Python)
  9. n 的第 k 个因子
  10. Tomcat安装及环境配置(详细教程)
  11. html中字体 楷体_HTML,CSS,font-family:中文字体的英文名称
  12. JAVA:实现HillCipher希尔密码算法(附完整源码)
  13. webSocket和http长连接短连接
  14. 计算机电缆国家标准是什么,计算机电缆执行标准是什么
  15. 【论文阅读】基于深度神经网络的人体运动姿态估计与识别
  16. 大白菜装机教程win10_大白菜U盘启动工具|大白菜超级U盘启动制作工具 V6.0_2009.25官方版下载...
  17. Flask 和 requests 搭建一个简单的API服务
  18. TensorFlow深度学习:3.API示范
  19. 闩锁和锁(Latches and Locks)
  20. MarkdownPad2注册码——亲测有效

热门文章

  1. elementUI兼容ie浏览器问题(笔记)
  2. 基于ZYNQ、AM5728、AM5708、AM437x、AM335x、STM32+FPGA等平台提供了开源EtherCAT主站IgH案例
  3. 梦工厂动画CEO:不迷信大数据,只迷信耐心与好故事
  4. 生物信息相关岗位及任职要求整理
  5. springcloud @ComponentScan 多模块 扫描其他模块
  6. 详解高速缓存存储器的3种映射方式
  7. SSH Key的生成和使用
  8. IE5,IE6,IE7,IE8的css兼容性列表
  9. 关于安装软件时x86 ,x64,x86_64,ARM 64, ARM 32 的选择
  10. max计算机什么函数,计算机max函数使用方法