开发板的/dev/input没有event设备文件

Iris_Zhou 2012-10-29 07:42:01
公司的项目需要用到遥控器,打算驱动层通过对eventX设备文件进行读写的方式来与QT进行交互,但是发现开发板上内核起来后/dev/input目录下只有一个Mice设备文件,只支持了鼠标,如何将event也支持起来?
...全文
924 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qianqian2125 2013-12-16
  • 打赏
  • 举报
回复
引用 3 楼 qq514011465 的回复:
博主,你这个问题最后是怎么解决的呢?我碰到的问题几乎和你一样的。插上usbHID设备会有event,我可以用应用程序来模拟键盘和鼠标,拔了之后就没了~~~
你好,麻烦问一下,你是用什么方法来模拟鼠标和键盘的呢?
qianqian2125 2013-12-13
  • 打赏
  • 举报
回复
博主,解决了吗
starofstars 2013-09-05
  • 打赏
  • 举报
回复
博主,你这个问题最后是怎么解决的呢?我碰到的问题几乎和你一样的。插上usbHID设备会有event,我可以用应用程序来模拟键盘和鼠标,拔了之后就没了~~~
Iris_Zhou 2012-10-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

内核配置打开event支持,在驱动层配
[/Quote]

你好,非常感谢你的回答,你指的是在内核中进行如下配置吗?
Device Drivers->Input device support->Event interface && Event debugging
我试过这样配置内核,启动后/dev/input目录下还是没有event文件,我希望像PC机上的Linux系统一样,起来后,即使没有插上设备,也已经建立了对应的event文件。
我们的板子现在的情况是插上USB鼠标后/dev/input目录下有event0文件,cat /proc/bus/input/device可知该event0是跟mouse0绑定的。
但是如何板子一启动就自动建立一个,并且是可操作的?
li32768 2012-10-29
  • 打赏
  • 举报
回复
内核配置打开event支持,在驱动层配
全志R58的官方开发板加载bmi160驱动的步骤3B.txt 开发板:全志R58的官方开发板R58_PER3_LPDDR3_32X1_V1_1.pdf(板载加速度传感器bma250) 目标:外挂bmi160模块可以检测到加速度和角速度(acc+gyr/加速度传感器+陀螺仪) BSP:r58_20160823.tar.gz(2016/8/22从全志的git服务器拿下来的系统) 显示:HDMI输出1080p分辨率的LCD显示器。 计划步骤: 1、打通开发板上的bma250(证明开发板硬件是好的。全志官方的BSP也是好的。) 2、将驱动程序bma250.c中的bma250全部替换为bmi160,验证是可以加入新的gsensor的(陀螺仪类似)。 3、借用bma250.c这个驱动程序,初始化的部分修改为初始化bmi160,调通BMI160的gsensor部分。 4、完善全志/博世提供的bmi160的驱动程序,调通BMI160的gsensor部分。 (陀螺仪部分鱼刺类似,陀螺仪部分借用l3gd20.c来验证bmi160的gyr部分) 下面进行第三步:借用bma250.c这个驱动程序,初始化的部分修改为初始化bmi160,调通BMI160的gsensor部分。 为了方便观察,直接注释掉除了bma250之外的全部的gsensor: Z:\home\wwt\only_bma250_r58\android\device\softwinner\common\hardware-common\libhardware\libsensors\aw_sensors\sensorDetect.cpp struct sensor_extend_t gsensorList[] = { { { "bma250", LSG_BMA250, }, { "Bosch 3-axis Accelerometer", "Bosch Sensortec", 1, 0, SENSOR_TYPE_ACCELEROMETER, 4.0f*9.81f, (4.0f*9.81f)/1024.0f, 0.2f, 0,0,0, { }, }, }, }; Z:\home\wwt\only_bma250_r58\android\device\softwinner\octopus-perf\configs\gsensor.cfg ;Direction parameter adjustment, including the x, y, z axis, and xy interchange four variables, ;the name of the module used for identification, and drive registered name consistent ;-------------------------- ;name:bma250 ;-------------------------- gsensor_name = bma250 gsensor_direct_x = false gsensor_direct_y = true gsensor_direct_z = true gsensor_xy_revert = true Z:\home\wwt\only_bma250_r58\android\device\softwinner\octopus-perf\BoardConfig.mk #gsensor & Gyr sensor SW_BOARD_USES_SENSORS_TYPE = aw_sensors 注意:lunch的f1选项在HAL层中使用的ST的9轴(ACC+GYR+MAG)传感器。 #gsensor & Gyr sensor SW_BOARD_USES_SENSORS_TYPE = lsm9ds0 Z:\home\wwt\only_bma250_r58\android\device\softwinner\octopus-perf\init.sun8i.rc on boot # use automatic det
在嵌入式Linux下,设备树(device tree)用来描述硬件平台的各种资源,Linux内核在启动过程中,会解析设备树,获取各种硬件资源来初始化硬件。设备树的overlay功能是指可以在系统运行期间动态修改设备树。一般情况下,如上图所示,设备树经过DTC编译器编译为二进制的hello.dtb文件,加载到内存,随Linux内核一起启动后,一般就无法更改了。如果我们想修改设备树,需要修改hello.dts文件文件,重新编译成二进制文件:hello.dtb,然后重新启动内核,重新解析。有了设备树的overlay功能,省去了设备树的重新编译和内核重启,我们可以直接编写一个设备树插件:overlay.dts,编译成overlay.dtbo后,直接给设备树“打补丁”,在运行期间就可以动态添加节点、修改节点...设备树的overlay功能,在很多场合都会用得到,会让我们的开发更加方便:外界插拔设备,无法在设备树中预先描述:耳机树莓派 + FPGA开发板基于I2C的温度传感器管脚的重新配置:PIN multiplexing修改bootcmd、分区...设备树的overlay功能,目前还没有加入到内核mainline(linux-5.10.x),但目前有些开发板和配套的BSP已经支持了,支持在系统运行期间动态修改设备文件。如果你手头的开发板或内核平台还没有支持device tree overlay,可以学习本期课程,学习内核中设备树overlay的实现原理,如何给内核打补丁,使内核支持设备树的overlay功能。有了本期课程的学习基础,明白了设备树overlay的实现原理和运行机制,你就可以尝试在自己的开发板平台上实现这个功能了。本期课程的主要内容如下:在开发板上如何实现设备树的overlay功能Configfs文件系统的配置与挂载Configfs编程接口如何编写设备树 overlay插件设备树 overlay的编译和运行设备树overlay运行机制分析本期课程适合哪些人学习:嵌入式驱动工程师嵌入式BSP工程师嵌入式软件工程师想从事嵌入式开发的同学全网首家讲解设备树overlay的视频教程。   
基于arm开发板的2048游戏的实现:实现功能及其原理如下: 2048是平面二维游戏,在4*4图片方格内,通过对滑动方向(上、下、左、右)的判断实 现对各个图片的移动、合并(在沿滑动方向上,两相邻元素值相等或者两相等元素值之间 的元素内容为空(即为0),即要进行合并)等操作。 首先:需要实现的是在屏幕上显示出相应界面,这涉及到对lcd屏幕的操作,arm开发版运行 的是linux系统,通过对设备文件(路径为/dev/fb0 的文件)进行操作,实现现屏幕显示功能。 因为是系统内的文件,采用系统IO函数实现,主要是open、read、write、lseek函数。同时 为了提高显示效率,还采用了mmap映射函数。 其次:该游戏需要判断出滑动的方向,来实现对相应图片的移动、合并操作,所以还需要对 触摸屏设备文件(路径名为/dev/input/event0 的设备文件)进行操作。要判断出滑动类型, 获取点下屏幕时的坐标点x1、y1以及离开屏幕时的坐标点x2、y2。根据两值只差可判断出 滑动方向(差值绝对值大的,滑动方向就是哪边) 实现对图画的移动、合并操作,这是本游戏设计的一大难点,本项目 采用如下方法实现该功能: 该游戏本质上是对二维数组的操作,该项目中,定义了如下量 //该节点用来保存4*4二维数组每一个元素的信息 struct position { int x; int y; int data; char *names; }; struct position * pos[4][4] = {0}; char *name[12]; //指向要显示图片的路径名 结构体用来保存二维数组中每一个元素的信息,x、y保存的是显示图片的位置信息, data保存的是图片对应的值(根据此值可以显示出相应的图片,如果值为8,则显示值 为8的图片),names是一个字符型指针,指向的是要显示图片的路径名信息(该信息保 存在char *name[12]的指针数组中,该数组指针保存了路径名信息)。 据此,便可以显示出相应的图片,接下来便是操作 pos[4][4]是一个二维数组,当朝着一个方向滑动时,便需要根据pos->data 值进行 相关操作 ,研滑动方向上,判断第一个元素值是否为0(空白图片表示值为0),如果为0 则继续找,直到找到下一个不为0的元素,然后将该值赋值给开头元素,该元素置0, 如果开头元素不为0,那么就往后面寻找,直到找到一个不为0的元素,如果该元素与开头元素 值相等,则合并(开头元素值乘以2,然后该元素置0)。以上便是一轮判断,然后开头元素再 往后挪一个,按照同样的方法判断,进行相关操作。 然后,还需要有产生随机数的功能, 定义了两个值XX ,YY,用rand函数产生小于4的两个数,然后对二维数组pos进行遍历, 如果pos[i][j]->data == pos[XX][YY]->data 那么就可以在改位置产生随机数,否则,就重新产 生一次随机数,直到产生为止,产生不了则游戏结构 最后, 为了实现计分功能,通过计算,在像素坐标点为(50,20)(75,20)(100,20)(125,20)的位置显示出0到9的数字, 通过计分,可以将所得分数在该四个点显示出

4,438

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧