时间:2022-06-28 23:18:16
绪论:在寻找写作灵感吗?爱发表网为您精选了8篇网卡驱动程序,愿这些内容能够启迪您的思维,激发您的创作热情,欢迎您的阅读与分享!
1、原因:驱动有问题。
2、要想正常使用无线网卡,就必须先得安装网卡驱动程序。在一般情况下,购买无线网卡时会自带驱动程序。如果没有找到驱动程序,可以利用“驱动人生”等程序来自动获取与网卡类型相匹配的驱动程序。
3、方法:当出现电脑无法识别无线网卡的情况时,是简单的方法就是将无线USB网卡插到电脑后置USB接口上,以保证供电的充足。当然如果是偶然出现无法识别的情况,建议重启一下电脑试试。
4、步骤:启用USB无线网卡驱动:右击“计算机”,从弹出的菜单中选择“管理”项进入。在打开的窗口中,切换到“设备管理器”,确保“网络适配器”列表中的无线网卡驱动被正常启用。如果被禁用,则右击选择“启用”项即可。
(来源:文章屋网 )
1、单击右键,点开管理中的设备管理窗口;2、再点击网络适配器,显示的是当前电脑所有的网络适配器;3、然后单击右键,出现属性框,即可查看网卡驱动。
网卡驱动是CPU控制和使用网卡的程序。驱动程序全称为“设备驱动程序”,是一种可以使计算机中央处理器控制和使用设备的特殊程序,相当于硬件的接口,操作系统通过这个接口,控制硬件设备的工作。网卡驱动程序就是中央处理器控制和使用网卡的程序。
(来源:文章屋网 )
1、原因:驱动有问题。
2、要想正常使用无线网卡,就必须先得安装网卡驱动程序。在一般情况下,购买无线网卡时会自带驱动程序。如果没有找到驱动程序,可以利用“驱动人生”等程序来自动获取与网卡类型相匹配的驱动程序。
3、方法:当出现电脑无法识别无线网卡的情况时,是简单的方法就是将无线USB网卡插到电脑后置USB接口上,以保证供电的充足。当然如果是偶然出现无法识别的情况,建议重启一下电脑试试。
4、步骤:启用USB无线网卡驱动:右击“计算机”,从弹出的菜单中选择“管理”项进入。在打开的窗口中,切换到“设备管理器”,确保“网络适配器”列表中的无线网卡驱动被正常启用。如果被禁用,则右击选择“启用”项即可。
(来源:文章屋网 )
1、在我们的电脑桌面上,鼠标右键此电脑,选择管理,进去管理界面之后,点击设备管理器
2、进去设备管理器之后,点击网络适配器,查看网卡驱动“Realtek PCle GBE Family Controller”是否有黄色感叹号和是否被禁用。
3、如果网卡驱动出现黄色感叹号,鼠标右键进行更新驱动程序,也可以通过一些驱动程序软件进行更新,如果网卡驱动被禁用,进行启用就可以
(来源:文章屋网 )
1、原因:win10系统下,未安装网卡驱动程序。
2、解决方法:进入MAC系统或者其它可以上网的电脑下载网卡驱动,返回安装即可。操作如下:首先在MAC系统中,或者其它可以联网的电脑上下载“驱动精灵网卡版”;然后将下载的驱动精灵网卡版通过U盘复制到当前WIN10系统下,打开软件,点击“一键体检”;然后软件就会提示“电脑未安装网卡驱动”,点击弹出的网卡驱动进行安装;等待安装完成即可;安装完成之后,即可正常上网。
(来源:文章屋网 )
就象UNIX,Linux支持的网卡主要是以太网卡。如3COM、ACCTON、AT&T、IBM、CRYSTAL、D-LINK等众多品牌的以太网卡只要安装配置正确,都可以得到你所期望的效果。
一、 Linux中网卡的工作原理
为了将这个问题说明的更清楚一些,不妨先简要地剖析一下Linux是如何让网卡工作的。一般来说,Linux核心已经实现了OSI参考模型的网络层及更上层部分。网络层的实现依赖于数据链路层的有效工作。网卡的驱动程序就是数据链路层与物理层的接口。通过调用驱动程序的发送例程向物理端口发送数据,调用驱动程序的接收例程从物理端口接收数据。
1.网卡驱动程序
简单地说,要将你手中的网卡利用起来,你唯一要做的是得到这块网卡的驱动程序。驱动程序提供了面向操作系统核心的接口和面向物理层的接口。
驱动程序的操作系统接口是一些用于发现网卡、检测网卡参数以及发送接收数据的例程。当驱动程序开始运作时,操作系统首先调用检测例程以发现系统中安装的网卡。如果该网卡支持即插即用,那么检测例程应该可以自动发现网卡的各种参数;否则你就要在驱动程序运作前,设置好网卡的参数供驱动程序使用。当核心要发送数据时,它调用驱动程序的发送例程。发送例程将数据写入正确的空间,然后激活物理发送过程。
驱动程序面向物理层的接口是中断处理例程。当网卡接收到数据、发送过程结束,或者发现错误时,网卡产生一个中断,然后核心调用该中断的处理例程。中断处理例程判断中断发生的原因,并进行响应的处理。比如当网卡接收到数据而发生中断时,中断处理例程调用接收例程进行接收。
2.驱动程序工作参数
驱动程序的工作参数因网卡性质的不同而不同,大致包括I/O端口号、中断号、DMA通道、共享存储区等。输入输出端口号又被称为输入输出基地址,当网卡工作于端口输入输出模式时被使用。端口输入输出模式需要CPU的全程干预,但所需硬件及存储空间要求较低。CPU通过端口号指定的空间与网卡交换数据。中断号是网卡的中断序号,只要不与其它设备冲突即可。当网卡使用DMA方式时,它要使用DMA通道批量传输数据而不需要CPU的干预。
对于一块具体的网卡,如果网卡支持完全自动检测,那么一个参数也不用指定,驱动程序的检测例程会自动设定所需参数。一般情况,你需要人工设定这些参数的一部分。如果你的网卡使用端口输入输出模式,你要设定端口号和中断号。如果你的网卡使用DMA模式,你要设定DMA通道和中断号。如果你的网卡使用共享存储区的模式,那你就得设定共享存储区的地址范围。
3.驱动程序的使用方式
有了网卡的驱动程序后,你可以选择是把驱动程序加入到Linux核心之中还是把驱动程序加工成独立模块。Linux系统一个引人入胜的长处就是可以定制系统的核心。把需要频繁调用的功能加入系统核心,可以大大提高系统的效率。在这种情况下系统启动时,系统核心自动加载网卡的驱动程序。驱动程序的参数可以通过LILO命令参数加以指定。系统启动后驱动程序永久驻留核心,不能用常规的方法将其卸载。至于定制的系统核心,是通过重新编译得到的;如何编译核心将在后文叙及。
如果把驱动程序编译成可装载模块,就可以用系统提供的命令在系统启动后随时加载。随时加载的好处是减少内存开销,易于管理,但同时也牺牲了一点网络传输的效率。驱动程序的参数是在命令行中直接输入或通过配置文件指定。二、 网卡安装前的准备
在安装网卡前,务必检查是否具备下列条件:
1.硬件方面
以太网卡
网络连接线及连接头,如10base-T一般为8芯双绞线配RJ-45接口
2.软件方面
Linux操作系统
网卡驱动程序(目标码或源代码)
*网卡配置程序
*软件开发工具,如GNU工具包(包括编译器gcc、make等)
3.系统配置信息
可用的端口地址
可用的中断号
以上不带星号标记的是必要条件,带星号的是视情况不同而要求的条件。具体情况在下面进一步说明。
三、 网卡的安装及配置
第一步:配置以太网卡的工作参数
配置网卡就是配置网卡的工作参数,如端口地址、中断号等。网卡的缺省参数一般存储于网卡内部的EEPROM,这是网卡出厂前设置好的。缺省参数在大多数情况下是可行的,但如果这些参数与你的系统有冲突并且网卡又不支持软件动态设置,那么你就要使用网卡的设置程序。并不是所有的网卡都要经过这一步,因为有些网卡支持通过驱动软件及其输入参数来确定网卡的工作参数。可以通过查阅网卡使用说明书来确定这一点。
网卡的设置程序与驱动程序不同,设置程序仅仅用来对网卡EEPROM中的设置进行修改。网卡程序本身可能运行在其它操作系统下,如WINDOWS95/98、OS/2、DOS等。如果是非Linux平台,那你就先在适合设置程序运行的系统中安装网卡,按设置程序说明设置网卡参数。然后再在Linux系统下安装该网卡。
第二步:安装Linux系统
假如你将要安装以太网卡的Linux系统本身还未安装,那么可以先试着在安装Linux的同时安装网卡。这一步成功的前提是你的Linux发行版本包含将要安装的网卡的驱动程序。
运行Linux的安装程序,按提示进行操作,别忘了安装核心的网络部分。当进行到LAN配置时,安装程序会列出它支持的所有网卡的类型。看看你的网卡是否榜上有名。随着Linux发行版本的不断升级,目前RedHat 6.0已经覆盖了常用的网卡类型。如果很幸运地你的网卡恰好在其中,那么下文讨论的很多步骤都可以不必考虑了,安装程序会自动完成网卡的安装与驱动。但如果没找到适用于你的网卡类型,也不必担心,继续下一步。
第三步:手工安装网卡
安装网卡也就是安装网卡的驱动程序。网卡要工作必须要有驱动程序,并且驱动程序越成熟越好。驱动程序一般由网卡的生产或供应商提供。由于Linux是一个起步不久的新兴操作系统,网卡的生产商并不一定提供Linux环境下的驱动程序。这时候你就得从其它途径想办法了,比如到INTERNET上专门提供硬件驱动程序的网站查找一下,也可以在新闻组上贴个求助信息。总之,只有得到网卡的驱动程序后,方可进行下一步。
网卡的驱动程序有两种类型。一是可直接使用的二进制代码;另一种是驱动程序的源代码。二进制代码一般是预先编译好的可装载模块。源代码可以编译成可装载模块,也可以编译成系统核心的一部分。如何把源代码编译成可装载模块不在本文讨论之列,具体可以查阅驱动程序的说明书。
1.可装载模块的使用
系统提供了一组命令用于将驱动程序模块载入内存执行。这些命令包括modprobe、insmod、Ismod、rmmod。modprobe 与insmod命令功能相似,但是方式各异。
modprobe 命令使用配置文件/erc/config.modules来加载可执行模块。要用 modprobe命令加载以太网卡的驱动程序,可以在 config.modules文件中加入:
alias eth0 drivermodule (drivermodule是驱动程序模块的名称)
这行配置信息把以太网卡的设备名与驱动程序模块联系起来。modprobe命令依据这条信息,自动加载存放于 /lib/library/xxxx/net目录下名为 drivermodule.o的模块。因此要使 modprobe命令找到驱动程序模块,必须将该模块放在 /lib/library/xxxx/net目录下。
那么驱动程序的参数如何指定呢?还是使用conf.modules文件。方法是在接着上述配置信息的后面加入下行信息:
options drivermodule parml=valuel,parm2=value2,……
这里parm1 是驱动程序可以接受的参数名,valuel是该参数值;依次类推。
比如options cs89x0 io=0x200 irq=0xA media=aui
insmod命令直接通过命令行参数将驱动程序模块载入内存,并可以在命令中指定驱动程序参数。例如:
insmod drivermodule.o parml=valuel,parm2=value2,……
以上两个命令中可以使用驱动程序参数要依据具体的网卡及其驱动程序而定,要仔细阅读网卡及驱动程序的说明书。有的网卡驱动程序可以用这些参数覆盖网卡本身EEPROM中存储的参数。有的则必须使用EEPROM中的参数。有的因为驱动程序不自动检测网卡使用的参数,所以还得把网卡使用的EEPROM中的参数传给驱动程序。
卸载驱动程序模块使用rmmod命令:
rmmod drivermodule.o
2.把驱动程序编译入系统核心
除了以可装载模块的形式使用驱动程序,还可以把驱动程序编译进Linux核心,以获取更高的效率。这种方式需要驱动程序的源代码、Linux核心源代码及其编译工具。Linux核心的编译过程包括配置核心、重建依赖关系、生成核心代码等步骤。配置核心的过程是用系统提供的配置工具(make config 或make menuconfig)重新生成用来编译核心的众多make文件的过程。为了让核心的配置工具了解你的网卡驱动程序,你需要修改一些核心的配置文件。
(1)修改配置文件:主要修改核心源代码目录下的四个文件,即drivers/net/CONFIG文件、drivers/net/Config.in文件、drivers/net/Makefile 文件和drivers/net/Space.c文件。CONFIG和Config.in文件用于控制核心配置工具(make config 或make menuconfig)的运行,主要是加入关于是否包括该网卡的支持提示。Makefile 和Space.c文件用于编译核心代码并说明面向核心的接口。详细语句参见下面例子。
(2)运行核心配置工具:在核心源代码目录下执行make config或 make menuconfig命令。 make config是面向命令行的,通过逐句回答提问来配置核心。由于其在配置过程中不可改变或撤消以前的回答,故多有不便。make menuconfig 则是通过窗口菜单方式,使用起来很方便。就本文而言,你只要在上一步中正确修改了配置文件,那么在config中会出现是否需要该网卡支持的提问,你选择‘y’。或者在menuconfig中的 network菜单中出现表示该网卡的菜单项,把它选上即可。
(3)重建依赖关系:很简单,执行make dep和make clean命令。
(4)生成核心代码:执行make zImage 命令。这个命令开始真正编译核心代码,并把核心代码存放为arch/i386/boot 目录下的zImage。
(5)为了使用新的核心代码,你需要用新的核心代码替换原有的。原有的核心代码一般存放在/boot 目录下,文件名称类似于vmlinuz-v.s.r-m (v.s.r-m)表示核心的版本号)。如vmlinuz-2.0.34-1。执行下列命令:
cp arch/i386/boot/zImage /boot/vmlinuz-v.s.r-m
为了安全起见,可以先把原有的核心代码做个备份,以便发生错误时恢复。
至此,你可以重新引导系统以使用新的带有正确网卡驱动支持的Linux核心。唯一剩下未解决的是驱动程序的参数问题。有些网卡驱动程序如果不输入参数,那它工作就会不正常,甚至根本不工作。由于现在网卡的驱动程序是系统启动时由核心载入运行的,系统启动之后用户就很难改变这些参数了,所以你必须在系统启动时告诉Linux核心网卡驱动程序使用的参数。具体方法有两种:
(1)在系统引导程序LILO中输入。
在LILO开始引导系统时,用ether子命令设定以太网卡驱动程序的参数。ether命令的使用方式为:
LILO:linu xether=IRO.BASE_ADDR,NAME
这里带下划线的是要输入的部分,IRQ表示中断号,BASE_ADDR表示端口号,NAME表示网卡的设备名。例如:linux ether=15,0x320,eth0
(2)在LILO配置文件中设定。
每次在系统启动时再输入驱动程序参数似乎有点过于麻烦。幸好系统提供了LILO的配置文件可以用来永久性的设置Linux系统启动时的子命令。方法是在/etc/lilo.conf文件中的适当位置加入以下一行:
append=“ether=IRQ, BASE_ADDR,NAME”
这里带下划线部分的意义同上。加入这一行后,还需要用/sbin/lilo命令把这个配置写入引导程序。
第四步:网络配置及测试
安装完网卡就可以配置网络通信了。配置网络简单地就是使用ifconfig命令,
例如:
ifconfig eth0 1.2.3.4 netmask 255.0.0.0 up
最后ping一下网上其它机器的ip地址,检查网络是否连通。
五、一个以太网卡安装实例
下面以Cirrus公司生产的Crystal CS8920以太网卡为例,详细说明上述安装配置过程。本例中,有些命令参数,如核心源代码目录等,是以我使用的系统环境为出发点。具体应用中还要加以本地化。为了更接近实际,例子中也包括了对安装中碰到的问题的描述。
1.此网卡是IBM PC机的内置式网卡,机器只提供了Windows95/98环境下的驱动程序。由于RedHat 5.0发行版本尚未提供对此网卡的直接支持,所以从Cirrus的站点上找到并下载了该网卡驱动程序的Linux版本,是一个名为Linux102_tar.gz的压缩文件。
2.文件Linux102_tar.gz解压后包括五个文件。包括源代码,仅适用于Linux 2.0版本的目标模块以及readme文件。
3.查阅readme文件后,了解到这个驱动程序只能使用网卡EEPROM中设定的端口号(I/O基地址)、中断号。为了知道网卡EEPROM的设置,又从Cirrus站点下载了该网卡DOS版本的设置程序setup.exe
4.在DOS中运行setup.exe,发现网卡的起始端口号为0x360,中断号为10,与别的设备有冲突。选择setup.exe程序的相应菜单,把中断号改成5。另外,此驱动程序不支持plug and Play,故也在setup.exe中将网卡的PnP功能屏蔽掉。
5.我所使用的RedHat 5.0的Linux核心版本为2.0.34,所以不能用现成的驱动程序目标模块,需要自己动手编译。如上文所述,有两种方式使用此驱动程序。
6.如果要编译成独立模块,执行下列命令:
gcc -D_KERNEL_-I/usr/src/linux/include -I/usr/src/linux/net/inet-Wall -Wstrictprototypes -02 -fomit-frame-pointer -DMODULE -DCONFIG_MODVERSIONS -ccs89x0.c
编译结果是名为cs89x0.o的驱动程序目标模块。要装载此驱动程序,输入下列命令: insmod cs89x0.o io=0x360 irq=10
要卸载此驱动程序,用rmmod命令:
rmmod cs89x0.o
7.如果要将驱动程序编进系统核心,
修改/usr/src/linux/drivers/net/CONFIG,加入:
CS89x0_OPTS=
修改/usr/src/linux/drivers/net/Config.in,加入:
tristate‘CS8920 Support’CONFIG_CS8920
以上两行是为了让make config在配置过程中询问是否增加CS8920网卡的支持。修改/usr/src/linux/drivers/net/Makefile加入:
ifeq((CONFIG_CS8920),y)
L_OBJS+=cs89x0.o
endif
修改/usr/src/linux/drivers/net/Space.c,加入:
extern int cs89x0_probe(struct device *dev);
……
#ifdef CONFIG_CS8920
&& cs89x0_probe(dev);
#endif
以上两段是为了编译并输出网卡驱动程序及其例程。
把驱动程序源代码拷到/usr/src/linux/drivers/net目录下。
在/usr/src/linux目录下执行 make config或 make menuconfig,选择核心CS8920网卡支持。
执行make dep、make clean命令。最后用 make zImage 编译Linux核心。
如何设置核心驱动程序参数,上节已有说明,不再赘述。
1、电脑不开机能卸载驱动,先进入安全模式,卸载主板驱动后,电脑即可开机。
2、主板驱动是指计算机用来识别电脑硬件的驱动程序,主要包括:芯片组驱动、集成显卡驱动、集成网卡驱动、集成声卡驱动、USB驱动等。
3、操作系统在运行的时候,不需要任何驱动程序,系统正常运行后,再安装驱动程序即可。
4、不安装驱动程序会导致部分功能无法使用,但系统可以正常运行。
(来源:文章屋网 )
关键词:NW335;嵌入式Linux移植;WPA
1 背景
当今的物联网时代,移动终端设备的通信得到广泛的应用。各种设备相继接入无线网络,从而实现更灵活、更方便快速的网络通信。
无线网卡模块是实现无线网络通信的硬件条件,目前来看主要有两种形式(1)内置式无线网卡:即将网卡芯片与主板集成在一起,如手机、笔记本电脑等;(2)外置式无线网卡:利用USB接口外接USB无线网卡。这两种方式各有优势,本文主要研究外置式无线网卡的实际应用。
2 无线网卡驱动程序的配置与移植
2.1 无线网卡的选择
从技术角度看,无线网卡的选择要注意以下几点:
(1)支持802.11b/g/n无线传输协议。
(2)采用主流厂商的无线网卡芯片.
(3)具备外置增益天线。
根据以上要求,本论文中选用了磊科的NW335型号的无线网卡来进行测试操作。
2.2软硬件平台
硬件平台:S3c6410
软件平台:linux2.36.2
交叉编译工具:arm-linux-gcc 4.3.2
2.3 NW335驱动程序的移植
不同厂商,不同型号的无线网卡的驱动程序不尽相同。因此,对于无线网卡驱动程序的移植就必不可少了。下面开始介绍对该款网卡的驱动程序移植到嵌入式linux操作系统的过程:
(1)登录realtek官网:http://.tw/Default.aspx,获取驱动程序源代码,rtl8188C_8192C_usb_linux_v3.4.4_4749.20120730.tar.gz
(2)将驱动程序以共享文件夹的方式移动到ubuntu虚拟机中,然后解压缩,运行: tar xzvf rtl8188C_8192C_usb_linux_v3.4.4_4749.20120730.tar.gz
(3) 打开解压后的文件夹,如下图:
修改Makefile,运行gedit Makefie,打开文件,将原来的代码
CONFIG_PLATFORM_ANDROID_X86=y
CONFIG_PLATFORM_ARM_S3C6K4 =n
改为:
CONFIG_PLATFORM_ANDROID_X86=n
CONFIG_PLATFORM_ARM_S3C6K4 =y
执行make命令,会生成一个.ko文件,这里生成一个8188cu.ko文件。即是我们生成的linux下无线网卡的驱动程序。将该文件复制到开发板存储器中,执行:insmod /8188cu.ko 即可加载该网卡的驱动程序。
3 安全认证与加密
对于无线网络来说,由于信号不是在密闭的线路中传输,其安全性是必须要考虑的因素,数据传输过程中的协议与加密算法是非常重要的。目前主要的加密算法有两种(1) WEP安全加密方式(2) WPA安全加密方式,其中wpa加密方式是目前最安全的加密技术,其配置过程如下:
一、下载并解压缩源码
登录 http://hostap.epitest.fi/wpa_supplicant/,下载wpa_supplicant-0.7.3.tar.gz (openssl用到0.7.3提供的补丁),并进行解压缩:
#tar xvfz wpa_supplicant-0.7.3.tar.gz
下载/source/openssl-0.9.8e.tar.gz,并进行解压缩
#tar zxvf openssl-0.9.8e.tar.gz
二、编译openssl库
将wpa_supplicant中的补丁拷贝到openssl中 ,修改配置文件,如下图所示:
三、编译wpa_supplicant ,修改配置文件后进行编译,如下图所示:
经过编译后的wpa_supplicant源程序可以看到两个主要的可执行工具:wpa_supplicant和wpa_cli。 wpa_supplicant是核心程序,它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supplicant,使用wpa_cli 来搜索、设置、和连接网络。
四、配置wpa_supplicant工具
修改wpa_supplicant.conf配置文件,其内容如下:
wpa_supplicant -B -i wlan0 -c /mnt/disk/home/wireless/wpa_supplicant.conf
4 保证不断网的方案
因为各种各样的原因,网络有可能会连接不成功。如网络设备故障,断电,设备自身重启,软件硬件故障等。为了保证网络连接的稳定性,需要制定的联网策略,对断网情况进行修复处理。
1.启动时进行网络检测,若不能通过便重新启动,代码如下:
2.在运行期间每隔一段时间检测网络,若不成功便重新连接网络:
5 结论
通过对磊科NW335无线网卡的移植,可以实现带有USB接口的LINUX设备的联网,实用效果比较理想。在具备网络连接检测软件运行的情况下,设备可以实现不间断的网络通信。
参考文献
[1] 李俊.嵌入式Linux设备驱动开发详解[M].北京:人民邮电出版社,2008.126-167
[2] 宋宝华.Linux设备驱动开发详解[M].北京:人民邮电出版社,2008.477-528
[3] 刘淼.嵌入式系统接口设计与Linux驱动程序开发[M].北京:航空航天大学出版社,2006.205-234
[4] 华清远见嵌入式培训中心linux设备驱动开发详解 [M]北京:人民邮电出版社2007