One Image Adapt for Multiple Touch Application Notes
来源:互联网 发布:mysql查看数据库编码 编辑:程序博客网 时间:2024/06/05 15:09
• 需求描述
受制于供应链的情况,客户会采用选择多种类型的touch。如果软件上不做改动,就可以烧写在不同touch的板子上,带来研发和生产的便利。
• 解决方案
把所有的touch driver都编译成module,列之于module.alias。系统启动时,ueventd会根据已经注册的device名称,寻找对应的driver进行insmod。
Solution
1. driver编译成module
把支持的touch对应的driver都编译成module,只需要把KERNEL里的CONFIG设定成m即可。
linux/kernel/arch/x86/configs/i386_byt_defconfig:CONFIG_TOUCHSCREEN_GOODIX_GT9XX=m
2. 使module列之于modules.alias
在touch driver中添加MODULE_DEVICE_TABLE语句,id table中列明该driver支持的device名称。
linux/modules/drivers/input/touchscreen/gt9xx/gt9xx.c
static struct acpi_device_id goodix_acpi_match[] = {
{ "GODX0911", 0 },
{ },
};
MODULE_DEVICE_TABLE(acpi, goodix_acpi_match);
3. 不可出现于黑名单(blacklist)
确保所有的touch driver,没有出现在blacklist文件中
device/intel/common/ueventd.modules.blacklist
@@ -1,6 +1,5 @@
-blacklist gt9xx_ts
原理介绍
1. MODULE_DEVICE_TABLE(acpi, id_table)
该宏会在/modules.alias中生成一个条目:alias acpi*:GODX0911:* gt9xx_ts
2. ueventd insmod module流程
1) 函数调用关系:
ueventd_main -> device_init -> coldboot(“/sys/devices”) ->
do_coldboot -> handle_device_fd ->
parse_event/handle_device_event -> handle_module_loading ->
get_module_dep/get_mod_args/insmod_s
2) coldboot(“/sys/devices”)会找到所有其子目录下的uevent进行处理。
/sys/devices/LNXSYSTM:00/device:00/80860F41:03/GODX0911:00/uevent
ACTION=add
DEVPATH=/devices/LNXSYSTM:00/device:00/80860F41:03/GODX0911:00
SUBSYSTEM=acpi
MODALIAS=acpi:GODX0911:PNP0C50:
3) uevent中的MODALIAS模式匹配于/modules.alias的条目,就会load
modules.alias里指定的driver。
【uevent】 MODALIAS=acpi:GODX0911:PNP0C50:
【/modules.alias】 alias acpi*:GODX0911:* gt9xx_ts
3. uevent中MODALIAS来源
kernel启动时跑到acpi_device_uevent,调用:
add_uevent_var(env, “MODALIAS=“)
create_modalias()
MODALIAS由”acpi:”和&acpi_dev->pnp.id拼接而成。其中&acpi_dev->pnp.id由firmware定义。
NOTE: 关键在于device uevent MODALIAS和/modules.alias中条目的匹配。
- One Image Adapt for Multiple Touch Application Notes
- notes for "Discrete Mathematics and its Application" : Chapter one
- Multiple Kernels for Image Classification
- How to merge multiple images into one image - Java ImageIO
- up-to-date Ubuntu image for touch
- Deep Neural Network for Image Classification:Application
- How to define multiple controllers for one view in angularJS?
- Notes On <Codeigniter for Rapid PHP Application Development> - 01
- ONE-CLASS SVM FOR LEARNING IN IMAGE RETRIEVAL
- one page one application
- One Page,One Application
- 《DLL for Win32/MFC》Part 2, DLL Client Application One
- the diary for one command application of pipe in Linux
- iPhone/iPod Touch: application executable is missing a required architecture. At least one of the fo
- Eclipse Notes one
- Cloud Computing Application Notes
- Objective-C Primer(3)Multiple arguments for one method, synthesize and dynamic
- At least one JAR was scanned for TLDs yet contained no TLDs.&Multiple bindings were found
- 配置文件properties的读取
- 南阳OJ--语言入门--来自小代码
- PHP打开zip文件中的图片
- 抽象类与接口 虚函数、纯虚函数与非虚函数
- NYOJ106背包问题
- One Image Adapt for Multiple Touch Application Notes
- Javassist2-使用实例
- mark
- 校验输入框输入字符的数量
- 编译nodejs及其源码研究
- 取石子游戏 【Beatty定理】
- 疑问--关于不同等级网络之下的路由表添加和传输线路的确定
- iOS有关图片处理的总结 (五)------iOS绘图(UIBezierPath)
- Verilog中文件输入与输出任务实例解析