当前位置: 技术问答>linux和unix
linux 2.6.36 与 2.6.38.8的内核 的 input 子系统有什么本质的驱别吗?
来源: 互联网 发布时间:2017-02-03
本文导语: 这几天我想把移植2.6.38.8的内核移植到我的OK6410开发板上,当移植触屏驱动时,便卡住啦! 移植好的触屏驱动在飞凌官方给的QT程序下根本没有反应,但是可以从串口中看到驱动输出的X,Y 坐标值 ...
这几天我想把移植2.6.38.8的内核移植到我的OK6410开发板上,当移植触屏驱动时,便卡住啦!
移植好的触屏驱动在飞凌官方给的QT程序下根本没有反应,但是可以从串口中看到驱动输出的X,Y 坐标值
后来搞了很久,实在找不出原因,于是便想在2.6.36.4上做一下试验,结果同样的触屏驱动在2.6.36.4上就完全没有问题
这是怎么回事?
后来我用 cat /proc/bus/input/devices 分别对我移植的两个内核测了一下,结果如下
********************** 2.6.36.4 ***************************
I: Bus=0019 Vendor=0001 Product=0001 Version=0100
N: Name="gpio-keys"
P: Phys=gpio-keys/input0
S: Sysfs=/class/input/input0
U: Uniq=
H: Handlers=kbd event0
B: EV=3
B: KEY=1680 0 0 10000002
I: Bus=0019 Vendor=dead Product=beef Version=0102
N: Name="S3C24XX TouchScreen"
P: Phys=ts0
S: Sysfs=/class/input/input1
U: Uniq=
H: Handlers=mouse0 event1
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=1000003
********************** 2.6.38.8 ***************************
I: Bus=0019 Vendor=0001 Product=0001 Version=0100
N: Name="gpio-keys"
P: Phys=gpio-keys/input0
S: Sysfs=/devices/platform/gpio-keys/input/input0
U: Uniq=
H: Handlers=kbd event0
B: EV=3
B: KEY=1680 0 0 10000002
I: Bus=0019 Vendor=dead Product=beef Version=0102
N: Name="S3C24XX TouchScreen"
P: Phys=ts0
S: Sysfs=/devices/virtual/input/input1
U: Uniq=
H: Handlers=mouse0 event1
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=1000003
不同的地方就在上面的红色标记处,不知是不是这个原因呢,如果是的话,要在哪里修改呢?
请各位大侠帮帮忙啦,很头痛啊!
移植好的触屏驱动在飞凌官方给的QT程序下根本没有反应,但是可以从串口中看到驱动输出的X,Y 坐标值
后来搞了很久,实在找不出原因,于是便想在2.6.36.4上做一下试验,结果同样的触屏驱动在2.6.36.4上就完全没有问题
这是怎么回事?
后来我用 cat /proc/bus/input/devices 分别对我移植的两个内核测了一下,结果如下
********************** 2.6.36.4 ***************************
I: Bus=0019 Vendor=0001 Product=0001 Version=0100
N: Name="gpio-keys"
P: Phys=gpio-keys/input0
S: Sysfs=/class/input/input0
U: Uniq=
H: Handlers=kbd event0
B: EV=3
B: KEY=1680 0 0 10000002
I: Bus=0019 Vendor=dead Product=beef Version=0102
N: Name="S3C24XX TouchScreen"
P: Phys=ts0
S: Sysfs=/class/input/input1
U: Uniq=
H: Handlers=mouse0 event1
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=1000003
********************** 2.6.38.8 ***************************
I: Bus=0019 Vendor=0001 Product=0001 Version=0100
N: Name="gpio-keys"
P: Phys=gpio-keys/input0
S: Sysfs=/devices/platform/gpio-keys/input/input0
U: Uniq=
H: Handlers=kbd event0
B: EV=3
B: KEY=1680 0 0 10000002
I: Bus=0019 Vendor=dead Product=beef Version=0102
N: Name="S3C24XX TouchScreen"
P: Phys=ts0
S: Sysfs=/devices/virtual/input/input1
U: Uniq=
H: Handlers=mouse0 event1
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=1000003
不同的地方就在上面的红色标记处,不知是不是这个原因呢,如果是的话,要在哪里修改呢?
请各位大侠帮帮忙啦,很头痛啊!
|
根本原因:INPUT VERSION升级导致的问题。
#define EV_VERSION 0x010001
把这个改回
#define EV_VERSION 0x010000
就可以工作了
祝你好运!
#define EV_VERSION 0x010001
把这个改回
#define EV_VERSION 0x010000
就可以工作了
祝你好运!
|
命令行下
hexdump /dev/input/xxx
然后点击触屏,如果能够读取到东西,证明驱动没有问题
hexdump /dev/input/xxx
然后点击触屏,如果能够读取到东西,证明驱动没有问题
|
该你的qt环境变量脚本 里面有指定输入设备的环境变量
|
2.6.36-2.6.39不建议使用,反正掌握一个规律,bug修订号小的最好别用,没有特别的需求的话,2.6.27,2.6.32、2.6.33、2.6.35这几个是首选,尤其是2.6.32,大部分新特性都有,还特别稳定,是目前最新的服务器linux都在使用的内核版本(空前统一,没有例外,RHELDebianSUSE)