I.MX6 linux eGalaxTouch 自动获取设备节点

                       I.MX6 linux eGalaxTouch 自动获取设备节点

                        \\\\\\\\\\\\\\-*- 目录 -*-/////////////
                        |  一. 需求:
                        |  二. /proc/bus/input/devices 内容:
                        |  三. 解决方法:
                        |  四. 实际应用:
                        --------------------------------------

一. 需求:
    获取eGalaxTouch的输入设备节点

二. /proc/bus/input/devices 内容:
    root@freescale /proc/bus/input$ cat /proc/bus/input/devices
    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: PROP=0
    B: EV=3
    B: KEY=100000 0 0 0

    I: Bus=0003 Vendor=0eef Product=7201 Version=0210
    N: Name="eGalax Inc. eGalaxTouch EXC7200-0031v1000"
    P: Phys=usb-fsl-ehci.1-1.3/input0
    S: Sysfs=/devices/platform/fsl-ehci.1/usb2/2-1/2-1.3/2-1.3:1.0/input/input1
    U: Uniq=
    H: Handlers=cpufreq_interactive
    B: PROP=0
    B: EV=1b
    B: KEY=421 0 30001 0 0 0 0 0 0 0 0
    B: ABS=100 3f
    B: MSC=10

    I: Bus=0006 Vendor=0eef Product=0020 Version=0001
    N: Name="eGalaxTouch Virtual Device for Multi"
    P: Phys=
    S: Sysfs=/devices/virtual/input/input2
    U: Uniq=
    H: Handlers=cpufreq_interactive event1
    B: PROP=2
    B: EV=b
    B: KEY=400 0 0 0 0 0 0 0 0 0 0
    B: ABS=6608000 1000003

    I: Bus=0006 Vendor=0eef Product=0010 Version=0001
    N: Name="eGalaxTouch Virtual Device for Single"
    P: Phys=
    S: Sysfs=/devices/virtual/input/input3
    U: Uniq=
    H: Handlers=event2
    B: PROP=2
    B: EV=b
    B: KEY=30000 0 0 0 0 0 0 0 0
    B: ABS=3

    root@freescale /proc/bus/input$ 

三. 解决方法:
    1. 采用shell脚本的进行解决;
    2. shell脚本如下:
        inputCheckLine=`cat /proc/bus/input/devices | grep -n "Vendor=0eef" | grep "Product=0020 Version=0001"| awk -F: '{print $1}'`
        touchEvent=`sed -n "$((${inputCheckLine}+5))p" /proc/bus/input/devices | grep -o "event."`

四. 实际应用:
    ......
    while [ -z $touchEvent ]
    do
        inputCheckLine=`cat /proc/bus/input/devices | grep -n "Vendor=0eef" | grep "Product=0020 Version=0001"| awk -F: '{print $1}'`
        touchEvent=`sed -n "$((${inputCheckLine}+5))p" /proc/bus/input/devices | grep -o "event."`
        echo "please hang up USB TOUCH !"
        usleep 10
    done
    ......
    export TSLIB_TSDEVICE=/dev/input/${touchEvent}
    export QWS_MOUSE_PROTO=tslib:/dev/input/${touchEvent}
    ......

 

时间: 2024-07-30 03:56:47

I.MX6 linux eGalaxTouch 自动获取设备节点的相关文章

linux驱动开发--字符设备:自动创建设备节点

自动创建设备文件 定义在<linux/device.h>中 class结构:该结构体类型变量对应一个设备类,被创建的类存放在/sys目录下面 device结构:该结构体类型变量对应设备,被创建的设备存放于/sys目录下面 在加载驱动模块时,用户空间中的udev会自动响应device_create()函数,在/sys下寻找对应的类,从而为这个设备在/dev目录下创建设备文件 内核版本问题: 在内核2.4版本中使用devfs_register 在内核2.6早起版本中使用class_device_r

platform型设备在/dev目录下自动创建设备节点的分析【转】

转自:http://blog.csdn.net/rockrockwu/article/details/7357648 系统启动过程中platform设备.驱动注册完毕,为什么在/dev目录下就自动创建好设备节点了? 在/dev目录自动创建设备节点可以通过class_create(),然后再device_create().但是在跟踪 内核platform注册过程中可以发现,其实这里面并未调用上诉两个函数,那么platform注册后 如何在/dev目录下创建设备文件节点?     [cpp] vie

Linux下自动获取和静态配置IP的方法

  第一步:激活网卡 系统装好后默认的网卡是eth0,用下面的命令将这块网卡激活. 代码如下: # ifconfig eth0 up 第二步:设置网卡进入系统时启动 想要每次开机就可以自动获取IP地址上网,就要设置网络服务在系统启动时也启动.Linux有一点与windows不同的是很多服务默认是停止的,而且你在某次使用该服务时启动这个服务,但是没设置它为默认启动,则下次进入系统这个服务依然是停止的.下面是设置网络服务在系统启动时也启动的方法. 使用chkconfig命令让网络服务在系统启动级别是

I.MX6 Linux 自动获取AR1020 event input节点

/*********************************************************************** * I.MX6 Linux 自动获取AR1020 event input节点 * 说明: * 本文主要记录如何自动获取AR1020 SPI电阻Touch产生的设备节点. * * 2016-4-5 深圳 南山平山村 曾剑锋 ******************************************************************

linux驱动开发--字符设备:通过cdd_cdev结构中的led变量区分是哪个节点,private_data使用

private_data改进 为设备驱动支持多个设备个体做准备,针对private_data进行改进 在设备打开操作中通过inode中保存的i_cdev获取代表当前设备的cdev对象 通过代表当前设备的cdev对象得到包含该对象的设备私有数据结构体 将设备私有数据结构体指针保存到struct file的private_data成员中 在其它设备操作中直接使用保存在struct file的private_date成员中的当前设备私有数据结构体 /** *Copyright (c) 2013.Tia

linux驱动开发--字符设备:创建一组设备节点

cdev改进 为设备驱动支持多个设备个体做准备,针对cdev进行改进 将代表字符设备的cdev对象包含在设备驱动定义的私有数据结构体中 对设备驱动私有数据结构体采用内核内存分配方式为其分配内存 将为每个设备添加cdev对象和创建设备节点封装为一个独立函数 支持多个设备个体 为设备驱动支持多个设备个体对驱动进行改进 循环调用为每个设备添加cdev对象和创建设备节点而封装的独立函数实现在系统中添加对多个设备个体的支持 /** *Copyright (c) 2013.TianYuan *All rig

linux中配置静态IP地址上网与自动获取IP地址

自动获取IP地址 第一步:激活网卡 Linux系统装好后默认的网卡是eth0,用下面的命令将这块网卡激活.  代码如下 复制代码 # ifconfig eth0 up 第二步:设置网卡进入系统时启动     想要每次开机就可以自动获取IP地址上网,就要设置网络服务在系统启动时也启动.Linux有一点与windows不同的是很多服务默认是停止的,而且你 在某次使用该服务时启动这个服务,但是没设置它为默认启动,则下次进入系统这个服务依然是停止的.下面是设置网络服务在系统启动时也启动的方法. 使用ch

Linux系统下设置静态IP或自动获取动态IP的简单方法

Linux下为机器设置静态IP地址: 代码如下:vim  /etc/sysconfig/network-scripts/ifcfg-eth0 修改这个文件内容如下形式: 代码如下:# Intel Corporation 82541GI Gigabit Ethernet ControllerDEVICE=eth0BOOTPROTO=static    #为静态的HWADDR=00:15:17:B2:DC:B5ONBOOT=yesIPADDR=10.20.134.199 #这个是设置的静态IP地址N

I.MX6 Android 设备节点权限

/********************************************************************************** * I.MX6 Android 设备节点权限 * 说明: * Android 是使用ueventd来创建设备节点的,会解析ueventd.rc和ueventd.xxx.rc两个 * 文件中对设备节点权限设定来设定权限. * * 2017-4-30 深圳 龙华民治樟坑村 曾剑锋 ***************************