一、开发环境

linux主机:ubuntu-18.04

交叉编译器:gcc version 4.6.2 20110630 (prerelease)

wifi硬件:RTL8188CUS 迷你WIFI

WIFI驱动版本:rtl8192_8188CU_linux_v3.0.2164.20110715.rar(可以到我的资源中下载)

开发板kernel:linux-3.0.35

开发板:MarsBoard(imx6d)

二、内核配置

进入开发板kernel目录:

$ /home/ubuntu/marsboard/kernel/linux-3.0.35-src3482
$ make menuconfig

1)网络配置:

增加802.11协议栈的支持

Networking support->Wireless
--- Wireless                                                                                                        | |  <*>   cfg80211 - wireless configuration API                                                                         | |  [*]     nl80211 testmode command                                                                                    | |  [ ]     enable developer warnings                                                                                   | |  [*]     cfg80211 regulatory debugging                                                                               | |  [*]     enable powersave by default                                                                                 | |  [*]     cfg80211 DebugFS entries                                                                                    | |  [ ]     use statically compiled regulatory rules database                                                           | |  [*]     cfg80211 wireless extensions compatibility                                                                  | |  [*]   Wireless extensions sysfs files                                                                               | |  -*-   Common routines for IEEE802.11 drivers                                                                        | |  [ ]   lib80211 debugging messages                                                                                   | |  <*>   Generic IEEE 802.11 Networking Stack (mac80211)                                                               | |  [ ]   PID controller based rate control algorithm                                                                   | |  [*]   Minstrel                                                                                                      | |  [*]     Minstrel 802.11n support                                                                                    | |  Default rate control algorithm (Minstrel)  --->                                                               | |  [*]   Enable mac80211 mesh networking (pre-802.11s) support                                                         | |  [ ]   Enable LED triggers                                                                                           | |  [ ]   Export mac80211 internals in DebugFS                                                                          | |  [ ]   Select mac80211 debugging features  --->   

2)无线网卡配置

Device Drivers->Network device support->Wireless LAN

3)USB网卡配置

Device Drivers->USB support

注意:配置完成后,必须编译一次,因为单独编译USB wifi驱动需要用到内核里部分.o文件,我这里是执行make uImage 编译内核。

三、无线网卡驱动编译

修改MakeFile

vim MakeFile

配置,接下来需要增加一个平台信息,名字随便,内容主要包括指定编译器、内核源码目录:

CONFIG_PLATFORM_MARSBOARD = y# Marsboard  imx6
ifeq ($(CONFIG_PLATFORM_MARSBOARD), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
# SUBARCH := $(shell uname -m | sed -e s/i.86/i386/)
ARCH ?= arm
CROSS_COMPILE ?= arm-none-linux-gnueabi-
KVER  := $(shell uname -r)
#KSRC := /home/linux/marsboard/kernel/kernel_imx
KSRC := /home/ubuntu/marsboard/kernel/linux-3.0.35-src3482# MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
# INSTALL_PREFIX :=
endif

注意:内核版本必须和开发板上运行的Linux版本一致,否则加载驱动会提示Unknown symbol skb_put (err -22)等错误,该错误说明内核版本和实际不一致!!!

然后执行make,编译完成后会生成8192cu.ko文件,接着在开发板上加载

root@freescale /app$ insmod 8192cu.ko

这样驱动就是加载成功了,并且成功识别了无线网卡。

查看所有网卡:

root@freescale /app$ ifconfig -a

启动无线网卡

root@freescale /app$ ifconfig wlan0 up
root@freescale /app$ ifconfig

可以看到已经出现一个名为wlan0的无线网卡,但是要使用该网卡还需要wireless tools 工具。

root@freescale /app$ ping -I 192.168.3.38 www.baidu.com  //-I是指定执行 ping 操作的网卡 IP 地址

通过ping命令来指定网卡的IP来ping通百度,接下来就可以利用wifi上网了!
若这里ping不通百度,请确保/etc目录下有resolv.conf文件(DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名),且该文件中保存有DNS服务器的IP地址(例如:nameserver 114.114.114.114 )

四、wireless tools 工具移植

wireless tools 是操作 WIFI 的工具集合,包括一下工具:

iwconfig:设置无线网络相关参数。
iwlist:扫描当前无线网络信息,获取 WIFI 热点。
iwspy:获取每个节点链接的质量。
iwpriv:操作 WirelessExtensions 特定驱动。
ifrename:基于各种静态标准命名接口。
wireless tools源码下载:wireless tools
wireless tools 工具只能连接开放或者WEP加密的AP,但是现在大多数WIFI都是WPA加密的,如果要连接这些WPA加密的WIFI,需要使用其他的工具(wpa_supplicant),这个后面会介绍。

以上wpa_supplicant、wireless tools在freescale开发环境ltib中都有编译,所以单独不进行编译了,编译好的文件系统已经自带。

iwlist wlan0 scan //扫描wifi
iwconfig wlan0 essid “201487” //连接热点"201487"
udhcpc –i wlan0 //动态获取ip -i指定网卡wpa_cli -i wlan0 scan          //搜索附件wifi热点
wpa_cli -i wlan0 scan_result   //显示搜索wifi热点
wpa_cli -i wlan0 status        //当前WPA/EAPOL/EAP通讯状态
wpa_cli -i wlan0 ping          //pings wpa_supplicant

有时候,当利用 udhcpc –i wlan0获取到ip之后,再次执行ifconfig可能会发现wlan0的ip依旧是空白,这是因为udhcpc只是请求一个ip可用的ip地址,但是这个地址并没有被写入到网卡设备中去,我们还需要一个配置文件来将申请到的ip地址写入设备。
配置文件如下:

#!/bin/sh# udhcpc script edited by Tim Riker <Tim@Rikers.org>[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1RESOLV_CONF="/etc/resolv.conf"
[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
[ -n "$subnet" ] && NETMASK="netmask $subnet"case "$1" indeconfig)/sbin/ifconfig $interface 0.0.0.0;;renew|bound)/sbin/ifconfig $interface $ip $BROADCAST $NETMASKif [ -n "$router" ] ; thenecho "Deleting routers"while route del default gw 0.0.0.0 dev $interface 2>/dev/null ; do:donefor i in $router ; doroute add default gw $i dev $interfacedonefiecho -n > $RESOLV_CONF[ -n "$domain" ] && echo search $domain >> $RESOLV_CONFfor i in $dns ; doecho adding dns $iecho nameserver $i >> $RESOLV_CONFdone;;
esacexit 0

将该文件命名为default.script,放在/usr/share/udhcpc目录下即可。

五、配置wifi连接路由器

root@freescale /app$ vim app.sh
echo "------->install 8192cu.ko driver------------->"
insmod /app/8192cu.ko
sleep 3echo "------->start wifi---------------------------->"
ifconfig wlan0 upecho "------->connect router device----------------->"
wpa_supplicant -B -Dwext -iwlan0 -c/etc/wpa_supplicant.confecho "------->dhcp ip------------------------------->"
udhcpc -i wlan0  &

wpa_supplicant.conf配置如下:

update_config=1
ctrl_interface=/etc/wpa_supplicant
network={ssid="201487"proto=WPA RSN WPA2key_mgmt=WPA-PSK WPA-EAPpairwise=TKIP CCMPgroup=TKIP CCMPpsk="xxxxx"

这样开发板启动后执行

RTL8188CUS usb wifi驱动移植到(arm-linux)相关推荐

  1. 嵌入式linux usb wifi驱动移植

    文档名称:嵌入式linux usb wifi驱动移植 版本历史 版本号        时间        内容 v1.0b001        2012-6-18        初始版本,介绍在嵌入式 ...

  2. EP-N8530S USB WIFI 驱动移植

    /************************************************************************ EP-N8530S USB WIFI 驱动移植* 说 ...

  3. usb wifi 驱动移植rtl5370

    我用的wifi是tenda W311MI 150m无线usb网卡 内核版本2.6.37 架构cortex A8 首先去tenda官网下载驱动 移植过程: 1 修改内核配置选项 make clean m ...

  4. android usb wifi驱动下载,android 平台USB wifi驱动移植及使用

    一.   Android平台Wifi的基本代码路径 1.       Wpa_supplicant源码部分 external/wpa_supplicant_6/ 生成库libwpa_client.so ...

  5. 海思平台上USB WIFI的移植与局域网无线调试和视频流预览-第5/11季视频课程-朱有鹏-专题视频课程...

    海思平台上USB WIFI的移植与局域网无线调试和视频流预览-第5/11季视频课程-143人已学习 课程介绍         本季课程在开发板上移植USB WIFI模块(套装附带的MT7601模块), ...

  6. realtek+wifi+linux驱动下载,RealTek wifi 驱动移植说明_V1.0 PDF 下载

    1. 驱动修改说明: 1. 修改驱动入口函数 一般来说,RealTek 的驱动,只需修改适合 RK 平台的入口函数就可以正常运行了,以下 分别对 USB WIFI 和 SDIO WIFI 驱动需要修改 ...

  7. Linux环境下使用WIFI模块:WIFI驱动移植

    WIFI驱动移植 实验平台 内核版本:Linux-4.19.5 开发板:SAMSUNG JZ2440 WIFI模块:Ralink rt3070 查看WIFI设备的PID 直接将WIFI模块接到电脑的U ...

  8. 图文讲解 WiFi 驱动移植过程,很肝~

    关注.星标公众号,直达精彩内容 来源:嵌入式基础学习 作者:小二 本篇文章打算对WiFi 驱动移植文章进行一次系统性的总结.复盘,分享一下自己的思考过程,遇到的问题等. 希望对您有点帮助??????? ...

  9. linux 混音处理 arm,alsa移植到arm linux嵌入式系统中

    1  alsa-lib的移植 1.1  软件包下载 alsa-lib库:进入网站http://www.alsa-project.org/选择下载,在这里下载的是alsa-lib-1.0.22.tar. ...

最新文章

  1. 李名洋(1983-),男,中国电信股份有限公司云计算分公司数据分析师。
  2. kafka报错:Error writing out kafka.log:type=Log,name=LogStartOffset,topic=xx EofException
  3. HandlerInterceptor与MethodInterceptor
  4. [2019上海网络赛J题]Stone game
  5. log4j配置文件详解------自学
  6. photoshop高光,暗,中间调选区获取
  7. 速卖通关键词挖掘工具_谷歌优化关键词挖掘工具大全
  8. Ubuntu赋予root权限
  9. Dex.top新手使用教程
  10. 将无线鼠标改造成有线鼠标
  11. 如何制作一款Chrome浏览器扩展程序
  12. SLAM_视觉SLAM面试题及答案汇总
  13. git提交 [rejected] fetch first 解决办法
  14. C# 浅谈基于Wpf下的MVVM模式的设计思想
  15. R——关联规则分析(二 例题:中医证型的关联规则挖掘)
  16. 用VASP+VTST计算Raman光谱 (抛砖引玉)
  17. iPhone在线音乐盒,代码开源
  18. 深入了解bash与sh的区别
  19. 实习日志(总结一些前端知识)
  20. 跨境电商一周要闻:蜜淘获B轮$3000万融资

热门文章

  1. 有网站建设比较好的公司推荐吗?
  2. 使用React Hooks模拟生命周期
  3. 使用HTML语言和CSS开发商业站点_HTML基础
  4. Exhaustive search 和 Beam search 详解(图文并茂)
  5. 仿微信多人音视频通话界面
  6. Android 蓝牙开发(三) -- 低功耗蓝牙开发
  7. 微信小程序表单验证错误提示。
  8. 用Processing实现北京地铁的一天动态可视化
  9. 2021年中国机器学习平台软件及服务市场规模近100亿,市场保持高速增长
  10. Linux 中 sudo、su命令