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

linux驱动

发布时间: 2022-01-11 02:19:14

‘壹’ linux驱动有哪些

1、将驱动程序文件bcm5700src.rpm复制到一个临时目录中,并在此目录中运行以下命令;

2、运行以下命令切换到驱动目录中;

3、此目录中会生成一个名字为bcm5700.spec的文件,运行以下命令对驱动程序进行编译

4、运行以下命令切换到RPM目录中;

5、运行以下命令安装驱动程序;

6、运行以下命令加载驱动模块;

7、运行kudzu命令,系统会自动搜索到硬件,进行配置即可。

linux是文件型系统,在linux中,一切皆文件,所有硬件都会在对应的目录(/dev)下面用相应的文件表示。 文件系统的linux下面,都有对于文件与这些设备关联的,访问这些文件就可以访问实际硬件。 通过访问文件去操作硬件设备,一切都会简单很多,不需要再调用各种复杂的接口。 直接读文件,写文件就可以向设备发送、接收数据。 按照读写存储数据方式,我们可以把设备分为以下几种:字符设备(character device)、块设备(Block device)和网络设备( network interface)。

字符设备(character device):指应用程序采用字符流方式访问的设备。这些设备节点通常为传真、虚拟终端和串口调制解调器、键盘之类设备提供流通信服务, 它通常只支持顺序访问。字符设备在实现时,大多不使用缓存器。系统直接从设备读取/写入每一个字符。

块设备(Block device):通常支持随机存取和寻址,并使用缓存器,支持mount文件系统。典型的块设备有硬盘、SD卡、闪存等,但此类设备一般不需要自己开发,linux对此提过了大部分的驱动。

网络设备(network interface):是一种特殊设备,它并不存在于/dev下面,主要用于网络数据的收发。网络驱动同块驱动最大的不同在于网络驱动异步接受外界数据,而块驱动只对内核的请求作出响应。

上述设备中,字符设备驱动程序适合于大多数简单的硬件设备,算是各类驱动程序中最简单的一类,一般也是从这类驱动开始学习,然后再开始学习采用IIC、SPI等通讯接口的一些设备驱动。可以基于此类驱动调试LKT和LCS系列加密芯片。注意7位IIC地址是0x28。

‘贰’ 如何编写Linux 驱动程序

以装载和卸载模块为例:

1、首先输入代码

#include <linux/init.h>

#include <linux/mole.h>

‘叁’ 什么叫Linux驱动程序

linux发行版本是什么呢,一般来说无需格外安装,都完美解决

‘肆’ linux驱动哪里最全

一般Linux是不需要安装驱动程序的。因为一般发行版都会收集所有到发行为止的所有驱动程序。
如果遇到更新的驱动时,就需要你去手动安装了。

你可以将需要配置的设备在上后面空一个格,加上Linux 或者你使用的发行版名称,比如说:Radeon Linux或者Radeon Fedora,搜索一下。

驱动程序可能有.run的,这个是自动安装配置的文件包。
.tar等等扩展名的源码包,需要手动配置。
如果不太了解命令行的话,可以用.run。

‘伍’ 如何在Linux下添加自己的驱动

一.驱动编译到内核
1.先选择一个放置驱动代码的位置,例:drivers/char/xxx.c
2.在drivers/char/Kconfig文件添加以下内容:
menu " xxx support"
config xxx
tristate "xxx support"
---help---
xxx use gpio as ir input .
If you want xxx support, you should say Y here and also to the
specific driver for your bus adapter(s) below.
This xxx support can be built as a mole.
endmenu
3.编写Makefile,位置与上相同(drivers/char/),内容如下:
obj-$(CONFIG_xxx) += xxx.o //黑色xxx与上面Kconfig中的xxx相同,而红色xxx应与
驱动xxx.c的命名相同
4.修改上一级Makefile和Kconfig //根据自己驱动的位置做相应的修改,参考上级的Mak_
efile和Kconfig的内容
至此,修改完毕,此时你可以使用make menuconfig,发现已有 xxx support ---> 选项,进入后选择M,再make moles,到char目录下,已生成xxx.ko。
最后,再进入make menuconfig ,选择 xxx support,编译进内核.

二. 驱动作成模块加载
一般在开发时采用这种方式比较方便,无需每次都要通过tftp下载内核,nfs去挂载根文件系统,我们只需要把驱动作为模块,在本地虚拟机中完成操作。
1>.模块制作
a.驱动编译
把 xxx.c文件放入drivers/char子目录下,修改drivers/char/Makefile
obj-m += xxx.o
然后,
make moles,生成模块都 drivers/char/xxx.ko
再把 xxx.ko 放到单板根文件系统的/lib/moles/2.6.14.1(自己的内核版本)/目录下
b.驱动测试
编写测试代码及Makefile文件,make后,把生成文件放在单板跟文件系统/usr/bin/目录下
2>.调试
在根文件系统中建立设备文件:
# mknod /dev/buttons c 232 0
加载模块
# insmod s3c24xx_buttons
卸载模块
# rmmod s3c24xx_buttons

‘陆’ Linux系统需要“驱动程序”吗

恩,这个是肯定的。我就是学linux的,分为驱动,内核,文件系统(应用层)。不但可以添加,还可以自己写的,跟windows的差不多道理,只要用到新硬件就要装驱动,不然操作系统是没法使用新硬件的,网卡有网卡驱动,声卡有声卡驱动,显示器也有驱动,包括键盘,鼠标都有驱动。一般windows都会自动检测和网上自动搜索添加,甚至好点的键盘鼠标都会自带驱动程序,对于用户windows自动完成,我们需要做的就是连接电脑。Linux添加的话建议网络,这里说不清。。。学一下没坏处的,看你问的句子都感觉你电脑知识不是很好。简单一句,一般硬件都需要驱动,要装驱动先把linux是哪个版本弄清楚,是什么用不到比如网卡工作不正常,对应的网络或谷歌一下对你有好处的(一步一步教你做的帖子非常多,我初学就是这样模过来的)

‘柒’ 如何将linux驱动程序添加到内核中 / 蓝讯

1.进入你的内核源码文档,创建一个DoneLin_Driver文件夹来存放你的驱动,于是文件夹路径:drivers/DoneLin_Driver/:

2.复制你的范例驱动到刚刚建立的DoneLin_Driver文件夹中,我的范例名字叫global_mem_two.c:

3.在DoneLin_Driver文件夹中建立两个新文本文件:Kconfig 和 Makefile

4.修改DoneLin_Driver文件夹下的Kconfig文件,输入以下内容:
menu "DoneLin-driver "
comment "global_mem_two-driver "

config GLOBAL_MEM_TWO tristate "global_mem_two DriTst" help this is global mem 2 test programming
endmenu

5.接着修改DoneLin_Driver的另一个文件Makefile,输入以下内容:

obj-$(CONFIG_GLOBAL_MEM_TWO) += global_mem_two.o

6.修改上一层目录(Driver目录)中的Kconfig文件,声明自己的源代码:在"menu "Device drivers""下面加入如下内容:

source "drivers/DoneLin_Driver/Kconfig"##...add my tst driver mole

7.修改arch/arm/Kconfig

同样,跟在driver/Kconfig一样,在"menu device drivers"下面加入同样的语句:

source "drivers/DoneLin_Driver/Kconfig"

就是说:在arch/arm/Kconfig menu "Device Drivers" endmenu之间添加source "drivers/DoneLin_Driver/Kconfig"
在drivers/Kconfig menu "Device Drivers" endmenu之间添加source "drivers/hello/Kconfig"(不知为什么arch/arm/Kconfig中竟然含有Drivers里Kconfig内容的一个复本,实验证明只对drivers/Kconfig中修改内容无效。)

8.修改Drivers目录下的Makefile,在如图位置,加入:

obj-$(CONFIG_GLOBAL_MEM_TWO) += DoneLin_Driver/#ADD FOR TEST add_for_test add for test测试的驱动

8.都修改好,保存好之后,回到linux内核根目录,make menuconfig,奇迹出现了,我自己的linux驱动程序出现在内核的device drivers选项里面了:

选择global_mem_tow_DriTst为m,表示编译成模块,编译成ko文件

然后,保存退出,make, make zImage, make moles即可生成新的内核和新的moles,

完成了,

‘捌’ linux如何安装驱动

在Intel网站直接下载的Linux驱动是e1000-5.2.52.tar.gz(版本可能会有改变),这个压缩包里面没有编译好的.o的文件,需要在Linux系统下编译之后才能使用,
因为网卡需要编译,所以要先确认将内核源文件安装好,下面是关于内核源文件的安装
● Linux下添加内核源文件
1. 用rpm –qa|grep kernel-source查看是否安装了这个包;
如果返回结果中有kernel-source-xxx(其中xxx为当前redhat的内核版本,如rhel3为2.4.21-4EL), 即已经 安装。如无返回结果则需要安装kernel-source包。到安装光盘中找到kernel-source-xxx.i386.rpm,用下面命令安装此rpm包:
2.如果安装了用rpm -V kernel-source校验是否有文件丢失,如果没有输出,表示文件完整;
3.如果有丢失用rpm -ivh --force kernel-source-xxxx...把包重新安装一下;
这个kernel-source包,在您的RH安装光盘中,在Redhat/RPMS中,如果以前没有安装过这个包,那么用rpm -ivh kernel-source-xxxx...来安装,如果安装过,需要覆盖安装,使用rpm -ivh --force kernel-source-xxxx...这个命令强制安装。
注:AS 4 开始,没有kernel-source这个包了,取而代之的是kernel-dev这个包,检查这个包有没有安装的方法同上
● 驱动安装步骤:
1. 把这个tar文件拷贝到用户自己定义的目录中,例如:
/home/username/e1000 or /usr/local/src/e1000
2. 用tar命令解这个压缩包:
tar zxf e1000-5.2.52.tar.gz
3. 切换到驱动的src目录下:
cd e1000-5.2.52/src/
4. 编译这个驱动模块:
make
然后安装这个模块
make install
这个二进制元将被安装到如下位置:
/lib/moles//kernel/drivers/net/e1000.o
以上的路径是默认的安装位置,在某些linux版本中可能是其他位置,具体信息可以查看在驱动的 tar压缩包中的ldistrib.txt文件.
5. 安装模块:
insmod e1000 (2.6以上的版本最好使用全路径安装 P insmod /lib/moles//kernel/drivers/net/e1000/e1000.ko)
6. 设定网卡IP地址:
ifconfig ethx <IP_address> x是网卡接口的号
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
若多个网卡的芯片相同可以cp ifcfg-eth0 ifcfg-eth1~~~~~~
修改下里面的drive名称就OK
!!!!!!!!!!!!!!!!!!!
在网卡的编译中很可能不能进行下去~这个原因除了kernel的开发包没有安装外还可能是由于开发环境不完全所引起的!
这时就需要你讲开发环境安装完成,最简单的办法就是通过 sysconfig-config-packet 安装gcc
安装完成后继续执行 make ;make install

了解更多开源相关,去LUPA社区看看吧

热点内容
安卓上哪里下大型游戏 发布:2024-12-23 15:10:58 浏览:189
明日之后目前适用于什么配置 发布:2024-12-23 14:56:09 浏览:56
php全角半角 发布:2024-12-23 14:55:17 浏览:829
手机上传助手 发布:2024-12-23 14:55:14 浏览:733
什么样的主机配置吃鸡开全效 发布:2024-12-23 14:55:13 浏览:830
安卓我的世界114版本有什么 发布:2024-12-23 14:42:17 浏览:711
vbox源码 发布:2024-12-23 14:41:32 浏览:279
诗经是怎么存储 发布:2024-12-23 14:41:29 浏览:661
屏蔽视频广告脚本 发布:2024-12-23 14:41:24 浏览:420
php解析pdf 发布:2024-12-23 14:40:01 浏览:819