当前位置:首页 » 操作系统 » linux鼠标驱动

linux鼠标驱动

发布时间: 2022-06-12 16:20:43

❶ 请问linux 2.6内核的鼠标驱动程序路径是什么

linux
没有什么鼠标驱动程序,只有驱动鼠标的模块,名字叫psmouse,你可以用modprobe
psmouse加载。

❷ Linux输入设备驱动

输入设备(如按键、键盘、触摸屏、鼠标等)是典型的字符设备,其一般的工作机理是底层在按键、触摸等动作发送时产生一个中断(或驱动通过Timer定时查询),然后CPU通过SPI、I-C或外部存储器总线读取键值、坐标等数据,并将它们放入一个缓冲区,字符设备驱动管理该缓冲区,而驱动的read ()接口让用户可以读取键值、坐标等数据。显然,在这些工作中,只是中断、读键值/坐标值是与设备相关的,而输入事件的缓冲区管理以及字符设备驱动的file operations接口则对输入设备是通用的。基于此,内核设计了输入子系统,由核心层处理公共的工作。drivers/input/keyboardgpio_keys.c基于input架构实现了一个通用的GPIO按键驱动。该驱动是基于platform_driver架构的,名为“gpio-keys”。它将与硬件相关的信息(如使用的GPIO号,按下和抬起时的电平等)屏蔽在板文件platform_device的platform_data中,因此该驱动可应用于各个处理器,具有良好的跨平台性。GPIO按键驱动通过input_event () 、input_sync()这样的函数来汇报按键事件以及同步事件。从底层的GPIO按键驱动可以看出,该驱动中没有任何file_operations的动作,也没有各种IO模型,注册进入系统也用的是input_register_device ()这样的与input相关的API。这是由于与Linux VFS接口的这一部分代码全部都在drivers/input/evdev.c中实现了。

❸ 如何实现linux下的鼠标驱动 v0.6

USB 总线引出两个重要的链表!

一个 USB 总线引出两个重要的链表,一个为
USB 设备链表,一个为 USB 驱动链表。设备链表包含各种系统中的USB 设备以及这些设备的所有接口,驱动链表包含 USB 设备驱动程序(usb
device driver)和 USB 驱动程序(usb driver)。

USB 设备驱动程序(usb device driver)和 USB 驱动程序(usb driver)的区别是什么?

USB 设备驱动程序包含 USB 设备的一些通用特性,将与所有 USB 设备相匹配。在 USB core 定义了:struct usb_device_driver usb_generic_driver。usb_generic_driver 是 USB 子系统中唯一的一个设备驱动程序对象。而 USB 驱动程序则是与接口相匹配,接口是一个完成特定功能的端点的集合。
设备是如何添加到设备链表上去的?
在设备插入 USB 控制器之后,USB core 即会将设备在系统中注册,添加到 USB 设备链表上去。

USB 设备驱动程序(usb device driver)是如何添加到驱动链表上去的?
在系统启动注册 USB core 时,USB 设备驱动程序即将被注册,也就添加到驱动链表上去了。

接口是如何添加到设备链表上去的?
在 USB 设备驱动程序和 USB 设备的匹配之后,USB core 会对设备进行配置,分析设备的结构之后会将设备所有接口都添加到设备链表上去。比如鼠标设备中有一个接口,USB core 对鼠标设备配置后,会将这个接口添加到设备链表上去。

USB 驱动程序(usb driver)是如何添加到驱动链表上去的?
在每个 USB 驱动程序的被注册时,USB 驱动程序即会添加到驱动链表上去。
比如鼠标驱动程序,usb_mouse_init 函数将通过 usb_register(&usb_mouse_driver)
将鼠标驱动程序注册到 USB core 中,然后就添加到驱动链表中去了。其中 usb_mouse_driver 是描述鼠标驱动程序的结构体。

已配置状态(configured status)之后话
当鼠标的设备、接口都添加到设备链表,并且鼠标驱动程序也添加到驱动链表上去了,
系统就进入一种叫做已配置(configured)的状态。
要达到已配置状态,将经历复杂的过程,USB core 为 USB
设备奉献着无怨无悔。在这个过程中,系统将会建立起该设备的的设备、配置、接口、设置、端点的描述信息,它们分别被
usb_device、usb_configuration、usb_interface、usb_host_interface、
usb_host_endpoint 结构体描述。
设备达到已配置状态后,首先当然就要进行 USB 驱动程序和相应接口的配对,对于鼠标设备来说则是鼠标驱动程序和鼠标中的接口的配对。USB core 会调用usb_bus 总线的usb_device_match
函数,通过比较设备中的接口信息和 USB 驱动程序中的 id_table,来初步决定该 USB 驱动程序是不是跟相应接口相匹配。通过这一道关卡后,USB core 会认为这个设备应该由这个驱动程序负责。
然而,仅仅这一步是不够的,接着,将会调用 USB 驱动程序中的 probe 函数对相应接口进行进一步检查。如果该驱动程序确实适合设备接口,对设备做一些初始化工作,分配 urb 准备数据传输。
当 鼠标设备在用户空间打开时,
将提交 probe 函数构建的 urb 请求块,urb 将开始为传送数据而忙碌了。urb 请求块就像一个装东西的“袋子”,USB
驱动程序把“空袋子”提交给 USB core,然后再交给主控制器,主控制器把数据放入这个“袋子”后再将装满数据的“袋子”通过 USB core
交还给
USB 驱动程序,这样一次数据传输就完成了。

❹ linux主机侧与设备侧USB驱动

USB采用树形拓扑结构,主机侧和设备侧的USB控制器分别称为主机控制器((Host Controller)和USB设备控制器(UDC),每条总线上只有一个主机控制器,负责协调主机和设备间的通信,而设备不能主动向主机发送任何消息。

在Linux系统中,USB驱动可以从两个角度去观察,一个角度是主机侧,一个角度是设备侧。从上图主机侧去看,在Linux驱动中,处于USB驱动最底层的是USB主机控制器硬件,在其上运行的是USB主机控制器驱动,在主机控制器上的为USB核心层,再上层为USB设备驱动层(插入主机上的U盘、鼠标、USB转串口等设备驱动)。因此,在主机侧的层次结构中,要实现的USB驱动包括两类:USB主机控制器驱动和USB设备驱动,前者控制插入其中的USB设备,后者控制USB设备如何与主机通信。Linux内核中的USB核心负责USB驱动管理和协议处理的主要工作。主机控制器驱动和设备驱动之间的USB核心非常重要,其功能包括:通过定义一些数据结构、宏和功能函数,向上为设备驱动提供编程接口,向下为USB主机控制器驱动提供编程接口;维护整个系统的USB设备信息;完成设备热插拔控制、总线数据传输控制等。

❺ 写个usb鼠标或键盘驱动需要哪些知识,linux为平台

首先需要了解Linux输入子系统,因为鼠标是输入设备,一种input_device。然后需要了解USB设备驱动。使用了USB接口,urb来获得鼠标的数据,然后把数据往上层应用提交。可以参看内核已经有的USB鼠标驱动,位置是\linux-3.0.86\drivers\hid\usbhid\usbmouse.c。linux-3.0.86是Linux内核的根目录。并不难。至于哪些书,可以看‘Linux设备驱动程序’这本书,里头主要知识都有讲到。

❻ 高手帮忙!请问在Linux下如何安装USB接口的鼠标驱动!

虚拟机?哪种?对于virtual
box需要启用usb接口共享。

❼ 请问Linux内核里,USB键盘和鼠标的驱动都是哪些文件

usbhid和usbmouse.c都在/usr/src/linux/drivers/hid/usbhid目录下

USB 总线引出两个重要的链表!

一个 USB 总线引出两个重要的链表,一个为
USB 设备链表,一个为 USB 驱动链表。设备链表包含各种系统中的USB 设备以及这些设备的所有接口,驱动链表包含 USB 设备驱动程序(usb
device driver)和 USB 驱动程序(usb driver)。

USB 设备驱动程序(usb device driver)和 USB 驱动程序(usb driver)的区别是什么?

USB 设备驱动程序包含 USB 设备的一些通用特性,将与所有 USB 设备相匹配。在 USB core 定义了:struct usb_device_driver usb_generic_driver。usb_generic_driver 是 USB 子系统中唯一的一个设备驱动程序对象。而 USB 驱动程序则是与接口相匹配,接口是一个完成特定功能的端点的集合。
设备是如何添加到设备链表上去的?
在设备插入 USB 控制器之后,USB core 即会将设备在系统中注册,添加到 USB 设备链表上去。

USB 设备驱动程序(usb device driver)是如何添加到驱动链表上去的?
在系统启动注册 USB core 时,USB 设备驱动程序即将被注册,也就添加到驱动链表上去了。

接口是如何添加到设备链表上去的?
在 USB 设备驱动程序和 USB 设备的匹配之后,USB core 会对设备进行配置,分析设备的结构之后会将设备所有接口都添加到设备链表上去。比如鼠标设备中有一个接口,USB core 对鼠标设备配置后,会将这个接口添加到设备链表上去。

USB 驱动程序(usb driver)是如何添加到驱动链表上去的?
在每个 USB 驱动程序的被注册时,USB 驱动程序即会添加到驱动链表上去。
比如鼠标驱动程序,usb_mouse_init 函数将通过 usb_register(&usb_mouse_driver)
将鼠标驱动程序注册到 USB core 中,然后就添加到驱动链表中去了。其中 usb_mouse_driver 是描述鼠标驱动程序的结构体。

已配置状态(configured status)之后话
当鼠标的设备、接口都添加到设备链表,并且鼠标驱动程序也添加到驱动链表上去了,
系统就进入一种叫做已配置(configured)的状态。
要达到已配置状态,将经历复杂的过程,USB core 为 USB
设备奉献着无怨无悔。在这个过程中,系统将会建立起该设备的的设备、配置、接口、设置、端点的描述信息,它们分别被
usb_device、usb_configuration、usb_interface、usb_host_interface、
usb_host_endpoint 结构体描述。
设备达到已配置状态后,首先当然就要进行 USB 驱动程序和相应接口的配对,对于鼠标设备来说则是鼠标驱动程序和鼠标中的接口的配对。USB core 会调用usb_bus 总线的usb_device_match
函数,通过比较设备中的接口信息和 USB 驱动程序中的 id_table,来初步决定该 USB 驱动程序是不是跟相应接口相匹配。通过这一道关卡后,USB core 会认为这个设备应该由这个驱动程序负责。
然而,仅仅这一步是不够的,接着,将会调用 USB 驱动程序中的 probe 函数对相应接口进行进一步检查。如果该驱动程序确实适合设备接口,对设备做一些初始化工作,分配 urb 准备数据传输。
当 鼠标设备在用户空间打开时,
将提交 probe 函数构建的 urb 请求块,urb 将开始为传送数据而忙碌了。urb 请求块就像一个装东西的“袋子”,USB
驱动程序把“空袋子”提交给 USB core,然后再交给主控制器,主控制器把数据放入这个“袋子”后再将装满数据的“袋子”通过 USB core
交还给
USB 驱动程序,这样一次数据传输就完成了。

❽ linux驱动开发1之什么是驱动

准确来说,驱动是针对于硬件设备的,比如:

一个键盘,插到电脑上,那么电脑是如何使用键盘的呢,它们两者之间是如何相互交互的呢。这个过程是需要驱动程序来实现的。

键盘插入电脑,引发一个中断,然后中断程序会检查设备,并将一个驱动程序与这个键盘设备进行绑定,当你按下一个按键,会触发键盘内的电子信号的传输(理解为电位1和0吧),并最终转换为数字信号(即0和1表示的),然后Linux系统中的驱动程序接收到了这个信号,根据这个信号来判断触发了哪个按键(这个中间,其实有很多工作,不过可以这样概括的理解),最终反馈到屏幕上。

看到了吗,驱动,就是一个可以和硬件通信(能够正确理解硬件发出的信号)的程序。

看到这,我想你应该明白了,你也可以为一个鼠标写一个驱动(前提是你了解这个鼠标的通信协议,即电位转换情况),然后你可以把鼠标左键点击的效果,更改成正常情况下,鼠标右键点击的效果。是不是挺有意思的。

另外,因为现在系统的日益成熟,现在Linux系统工作者很少有机会再写硬件驱动程序了,因为这些驱动,大多数硬件产商都会给做好了(因为Linux驱动接口封装的很好)。在移植到其它平台的时候,可能只需要简单的修改一下Linux的驱动,就可以用了。

(ps:望采纳)

❾ linux键盘和鼠标驱动有HAL层吗

没有,这是windowsNT的技术,linux认为键盘和鼠标都属于同样的设备,不需要HAL的屏蔽

❿ linuxf的鼠标驱动怎么让它在windows和虚拟机之间自由切换

在虚拟机里安装vmware自带的驱动

热点内容
android平板系统 发布:2024-11-03 00:20:43 浏览:663
malody谱面服务器地址是什么 发布:2024-11-03 00:19:13 浏览:170
cifslinux 发布:2024-11-02 23:56:04 浏览:311
java培训去哪好 发布:2024-11-02 23:53:57 浏览:861
入手安卓二手机如何检测 发布:2024-11-02 23:47:21 浏览:568
超短发编程 发布:2024-11-02 23:38:48 浏览:132
熊片数据库邀请码 发布:2024-11-02 23:31:39 浏览:762
大连dns服务器ip 发布:2024-11-02 23:29:44 浏览:796
linuxsed文件内容 发布:2024-11-02 23:15:41 浏览:258
安卓手机如何打开zrp文件 发布:2024-11-02 23:09:32 浏览:957