修改文件:
1、在hid-ids.h中加入vid pid
2、在hid-multitouch..c->mt_devices[] 中加入
{
.driver_data=MT_CLS_DEFAULT,
HID_USB_DEVICE(VID,PID)
}
HID_USB_DEVICE(VID,PID)
}
3、在hid-core.c->hid_have_special_driver[]中加入HID_USB_DEVICE(VID,PID)
------------------------------------------------------------------------------------------------------------------------------------------------------
4:添加内核配置选项:
5:
7:
----------------------------------------------------------------------------------------------------------------------------------------------------------
根据这个网站添加上层IDC文件:
9:
# Copyright (C) 2012 Beijing IRTOUCH SYSTEMS Co.,Ltd
#
#
# Input Device Configuration File for the IRTOUCH touch screen.
#
# Basic Parameters
touch.deviceType = touchscreen
touch.orientationAware = 1
# 0 外部设备,1 内部设备
device.internal = 1
# Touch Size
#touch.touchSize.calibration = pressure
#touch.toolSize.calibration = linear
#touch.toolSize.linearScale = 10
#touch.toolSize.linearBias = 160
#touch.toolSize.isSummed = 1
# Size
#touch.size.calibration = diameter
#touch.size.scale = 10
#touch.size.bias = 0
#touch.size.isSummed = 0
#scale 规模,面,比例;
#bias 偏压,偏差
#summed 总结
# Pressure压力-/amplitude振幅
#touch.pressure.calibration = amplitude
#touch.pressure.scale = 0.005
# Orientation方向-/校准
touch.orientetion.calibration = none
---------------------------------------------------------------------------------------------------------------------------------------------------
上面那个idc文件不能用,用下面这个idc文件,Android 触摸屏idc文件一般都是通用的,我的用这个下面这个idc文件就可以了,知识触摸屏没有鼠标箭头,但是鼠标点哪里就是去哪里:
# Copyright (C) 2010 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Emulator keyboard configuration file #1.
#
# Basic Parameters
touch.deviceType = touchScreen
touch.orientationAware = 1
touch.size.calibration=diameter
touch.size.scale=10
touch.size.bias=0
touch.size.isSummed=0
touch.size.pressure.calibration=amplitude
touch.pressure.scale=0.005
touch.orientation.calibration=none
---------------------------------------------------------------------------------------------------------------------------------------------------
10: adb shell
su
mount
mount -w -o remount /dev/block/platform/omap/omap_hsmmc.0/by-name/system /system
chmod 777 /system/usr/idc =>修改idc文件可写权限;
adb push /home/tonsincs/Vendor_0416_Product_5030_Version_0110.idc /system/usr/idc/
-----------------------------------------------------------------------------------------------------------------------------------------------------------
11:还有一种把 IDC 文件放到/system/usr/idc/ 目录下的方法:
1)把你的 IDC 文件拷贝到android源码:frameworks/base/data/keyboards/ 目录下;
2)修改common.mk文件:
3)croot 到android源码根目录: make -j8 完成后,find 命令在out目录查找下……结果如下则OK;
-----------------------------------------------------------------------------------------------------------------------------------------------------------
总结:
最近一直移植Android(4.1)下面的触摸屏驱动,也接触到了几种触摸屏,总的来说,要么把触摸屏当标准的HID设备来用,这个移植就简单,把触摸屏的VID/PID加到hid-ids.h hid-core.c hid-multitouch.c 文件里面,而且还要上层/system/usr/idc/Vendor_xxx_Product_xxx.idc文件配合,触摸屏才能使用,否则你的触摸屏用着跟笔记本的触摸板似得!
个人理解,修改drivers/input/touchscreen/usttouchscreen.c文件中添加你的触摸屏驱动可以,不过这个比较麻烦,你要知道怎么写驱动,一些函数怎么实现,算法怎么实现;比较麻烦;
也接触到了i2c总线的触摸屏驱动,这个又比较麻烦一点,要根据你的arch/arm/mach-xxxx/board-xxx.c文件中注册你的触摸屏驱动i2c总线信息;再添加你的驱动源码;
总得来说,写驱动的话比较麻烦,你必须有电路原理图、芯片数据手册,而且要看的明明白白,怎么去是实现那些算法,而且要对linux 驱动很了解,你的驱动挂载哪里,i2c总线、usb总线,又要很多协议;很多知识;usb2.0协议,英文287页;很麻烦!慢慢学习了!以上为个人理解!也是个人工作笔记!以备自己忘记了查阅!也供刚入门的朋友们参考!
-------------------------------------------------------------------------------------------------------------------------------------------------------------