怎么在红帽企业版linux下,装无线驱动和USB 鼠标驱动!

怎么在红帽企业版linux下,装无线驱动和USB 鼠标驱动!,第1张

看你是什么牌子的电脑,在相应的官网下载驱动,例如华硕的 在华硕的官网下载相应的Linux驱动,然后你在图形界面下,插上u盘,安装就可以了,你也可以在cli下安装不过有点麻烦,下输入:mount /dev/ ''(u盘名字) rmp -ivh /(目录)应该这就可以了,本人只安装过网卡的驱动,和无线网卡的驱动,希望对你有用

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 驱动程序,这样一次数据传输就完成了。

貌似是这个意思:

1,在你下载的驱动源代码文件夹中(这个驱动你估计要到官网找,找到后下载到linux下并用tar -xvzf xxxx.tar.bz什么的类似命令解压),在命令行(终端)下cd到文件目录后,执行./configure,提示完成后(要没有错误)再执行make

make---这里执行了make命令,即gcc的编译命令

【通常make后应该用make install命令来安装的,这样就不用下面的cp了,可惜提示里面没有】

2,编译完成后(make)在当前文件夹找一下有没有firmware的文件或者文件夹,然后拷贝到系统的(linux根文件系统)/lib/firmware或者/lib/firmware/(内核版本对应目录)/,你可以用鼠标也可以在终端下用这个命令

cp -rf firmware/RTL8192U /lib/firmware(拷贝 -递归+强制 源文件 目标文件)

或者执行

cp -rf firmware/RTL8192U /lib/firmware/(KERNEL_VERSION) 目标文件指向的是内核版本对应的目录

注意部分:具体情况要看(内核)目录是不是存在与/lib/firmware下了

3,装载驱动模块并且启动网卡,这里你可以要找找有没有在编译完的目录下找找有没有.ko文件,如果有的话,尝试在终端下用insmod xxx.ko安装这个驱动的动态模块

然后在编译好的文件夹的目录中,终端下执行./wlan0up,这个应该是调用驱动的应用程序用来管理这块无线网卡的

注意部分:当"insmod:error inserting 'xxxx.ko': -1 File exists(安装动态模块:插入xxxx.ko模块错误,文件存在)"的错误提示出来时候,在运行./wlan0up(无线启动)命令后,请先运行./wan0down(无线关闭),这时应该就可以了【xxxx.ko文件有点像windows系统中的sys和lib文件】

注意部分:如果你运行./wlan0up(无线启用)命令时候看到了"unkonw symbol(位置符号表)"的提示信息的时候,建议通过《Method 1》(方法一)建立驱动

-------------------------------------------

你自己可以试一下。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8986296.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存