嵌入式Linux移植USB网卡驱动「建议收藏」

嵌入式Linux移植USB网卡驱动「建议收藏」硬件平台:realARM6410操作系统:fedorakernel2.6.33.3-85.fc13.i686.PAE交叉编译器:arm-none-linux-gnueabigccversion4.3.2WIFI模组:磊科NW336芯片realtek8188cus

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用
开发板:友善之臂smart210
操作系统:Ubuntu 12,04
交叉编译器:arm-none-linux-gnueabi gcc version 4.3.2
WIFI 模组:TP-LINK TL-WN725N 2.0

驱动版本8188eu_USB_Linux

因为我们是要移植到ARM开发板上,所以首先我们需要更改驱动的Makefile;

CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_ANDROID_X86 = n
CONFIG_PLATFORM_ARM_S3C2K4 = n
CONFIG_PLATFORM_ARM_PXA2XX = n
CONFIG_PLATFORM_ARM_S3C6K4 = y


将I386_PC从y改为n, s3c6410 平台从 n 改为 y;

根据自身 linux 开发环境修改s3c6410处编译环境

ifeq ($(CONFIG_PLATFORM_ARM_S3C6K4), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
CROSS_COMPILE := arm-none-linux-gnueabi-
KVER  := 3.0.8
KSRC ?= /usr/src/linux-3.0.8
endif

其中KVER是你开发板的linux版本,一般情况下跟我们电脑环境的Linux版本是不一样的,那么此时我们就需要把开发板上的内核在电脑上编译一下(详细编译方法一般开发板光盘上面就有),编译完成后KSRC就指向你所编译的内核。

当这些全部完成之后,执行make命令编译,就可以得到开发板上面的驱动文件8188eu.ko。

zhaokeke@ubuntu:~/8188eu_USB_linux/driver/rtl8188eu$ make 
zhaokeke@ubuntu:~/8188eu_USB_linux/driver/rtl8188eu$ ls
8188eu.ko                    Makefile.bak                    hal
8188eu.mod.c                 Makefile_1                      ifcfg-wlan0
8188eu.mod.o                 Module.symvers                  include
8188eu.o                     READEME                         make_drv
Kconfig                      autoconf_rtl8188e_usb_linux.h   modules.order
Kconfig_rtl8188e_usb_linux   autoconf_rtl8189e_sdio_linux.h  os_dep
Kconfig_rtl8189e_sdio_linux  clean                           runwpa
Makefile                     core                            wlan0dhcp


将驱动文件拷贝到开发板上,然后加载驱动

[root@FriendlyARM /sdcard]# insmod 8188eu.ko
[root@FriendlyARM /sdcard]# ifconfig 
eth0
Link encap:Ethernet HWaddr 00:22:12:34:56:90
inet addr:192.168.1.20 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:57 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6144 (6.0 KiB) TX bytes:1338 (1.3 KiB)
Interrupt:108 Base address:0x8000
lo
Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

此时仍然看不到USB无线网卡wlan0,如何确定我们的驱动安装是否正确呢?此时我们可以在/proc/net 目录下可以看到 wlan0

[root@FriendlyARM /sdcard]# cd /proc/net/                                       
[root@FriendlyARM net]# cat wireless                                            
Inter-| sta-|   Quality        |   Discarded packets               | Missed | WE
 face | tus | link level noise |  nwid  crypt   frag  retry   misc | beacon | 22
 wlan0: 0000    0.    0.    0.       0      0      0      0      0        0    

如果能看到上面的wlan0,说明驱动是没有什么问题了,此时我们需要配置网卡;

首先我们需要绑定IP地址:

[root@FriendlyARM net]# ifconfig wlan0 192.168.1.22


为能够是 usb wifi 能够正常访问网络,还需一些应用软件:iwconfig iwlist 等
通过 ifconfig 命令可以看到比先前看到的多出 wlan0,可见目前已经将 wlan0 激活。但仍需要要一些设置才能访问网络。

[root@FriendlyARM net]# ifconfig wlan0 up 

这一步很重要,我觉得好像就是打开无线网卡,如果没有这一步的话,无论后面的再正确都是无法ping通的。

执行iwconfig命令可以看到如下结果,

[root@FriendlyARM net]# iwconfig                                                
lo        no wireless extensions.                                               
                                                                                
ifb0      no wireless extensions.                                               
                                                                                
ifb1      no wireless extensions.                                               
                                                                                
eth0      no wireless extensions.                                               
                                                                                
sit0      no wireless extensions.                                               
                                                                                
ip6tnl0   no wireless extensions.                                               
                                                                                
wlan0     unassociated  Nickname:"<WIFI@REALTEK>"                               
          Mode:Auto  Frequency=2.412 GHz  Access Point: Not-Associated          
          Sensitivity:0/0                                                       
          Retry:off   RTS thr:off   Fragment thr:off                            
          Encryption key:off                                                    
          Power Management:off                                                  
          Link Quality:0  Signal level:0  Noise level:0                         
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0              
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0  

扫描附近的wifi:

[root@FriendlyARM /sdcard]# iwlist wlan0 scan  


连接wifi:

[root@FriendlyARM net]# iwconfig wlan0 essid "AirJ"

这是没有密码的,如果有密码,需要在后面加上key ******;

连接过之后可以通过ping电脑来测试是否连接成功


[root@FriendlyARM net]# ping 172.21.15.1                                        
PING 172.21.15.1 (172.21.15.1): 56 data bytes                                   
64 bytes from 172.21.15.1: seq=0 ttl=64 time=2.700 ms                           
64 bytes from 172.21.15.1: seq=1 ttl=64 time=2.642 ms                           
64 bytes from 172.21.15.1: seq=2 ttl=64 time=4.012 ms                           
64 bytes from 172.21.15.1: seq=3 ttl=64 time=4.909 ms                           
64 bytes from 172.21.15.1: seq=4 ttl=64 time=193.940 ms                         
64 bytes from 172.21.15.1: seq=5 ttl=64 time=2.855 ms 


到此,USB网卡驱动移植结束,我在这只介绍了正确的,其实中间还出现了很多问题,尤其是后面没有打开无线网卡,导致出现ADDRCONF(NETDEV_UP): wlan0: link is not ready错误。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189913.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 微信公众平台应用开发实战「建议收藏」

    微信公众平台应用开发实战「建议收藏」微信公众平台应用开发实战微信营销ISBN 9787111438618作者 钟志勇含税价59.0元税后51.3元增值税7.7元卓越价 40.7元(满49元免运费) 有货出版社 机械工业出版社出版日期 2013年08月28日版次 第1版印刷时间2013年08月29日印次第1次装帧平装纸张胶版纸页数 256页语种 

    2022年8月21日
    7
  • eclipse配置安卓开发环境sdk_Android 设置网络代理

    eclipse配置安卓开发环境sdk_Android 设置网络代理原作者地址 http://www.cnblogs.com/sunzn/p/4242131.html启动AndroidSDKManager,打开主界面,依次选择「Tools」、「Options…」,弹出『AndroidSDKManager-Settings』窗口;在『AndroidSDKManager-Settings』窗口中,在「HT

    2022年10月4日
    3
  • 真封神虚拟服务器,服务器端文件详细介绍即修改(三)

    真封神虚拟服务器,服务器端文件详细介绍即修改(三)我们每星期加三个修改教程,废话不多说开始吧。1.打开服务器端,修改等级在version\chinese_gb\config的game_rule.ini可以设置最高等级和宝宝最高等级包括传送最高多钱。PK设置等等。这个相信大家一看就明白了。2.language这个文件夹属于指令的唯一能用的是W端可以读公告系统也就是点卡系统用公告修改器修改下能发公告这里就不多说了工具都是做好…

    2022年7月24日
    12
  • 什么是守护线程?「建议收藏」

    什么是守护线程?「建议收藏」Java线程分为用户线程和守护线程。守护线程是程序运行的时候在后台提供一种通用服务的线程。所有用户线程停止,进程会停掉所有守护线程,退出程序。Java中把线程设置为守护线程的方法:在start线程之前调用线程的setDaemon(true)方法。注意:setDaemon(true)必须在start()之前设置,否则会抛出IllegalThreadStateExc…

    2022年10月15日
    2
  • smarty怎么用_item怎么用

    smarty怎么用_item怎么用1、简介含义:Smarty是PHP的一个引擎模板,可以更好的进行逻辑与显示的分离,即我们常说的MVC,这个引擎的作用就是将C分离出来。环境需求:PHP5.2或者更高版本我使用的环境是:PHP5.

    2022年8月5日
    6
  • 阿里云部署django实现公网访问

    本博的主要目的是对阿里云部署django实现公网访问进行一次简单的记录,方便日后查询。内容目录:(1)申请阿里云服务器及安全组配置(2)实现ssh远程控制(3)实现ftp文件传输(4)安装p

    2021年12月29日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号