usb无线网卡驱动(rtl8192cu)

内核编译、驱动编译、iw等工具编译

 (哈哈,如果有其他问题,麻烦留言;)
环境
板卡:hi3559av100(arm64)
交叉编译链:aarch64-himix100-linux-
usb无线网卡:rtl8192cu(ID 0bda:8178)
 
1、内核编译
在内核中,不仅要包含相应无线驱动、还有包含其他一些项,否则iw等等工具无法使用;
进入内核配置:make ARCH=arm64 CROSS_COMPILE=aarch64-himix100-linux- menuconfig
① 搜索:rtl8192cu(注意依赖项);
② RNDIS的API驱动和gadget driver(https://blog.csdn.net/zhenglie110/article/details/80223167):
Device Drivers —>
     [*] USB support —>
       <*> USB Gadget Support —>
              Ethernet Gadget (with CDC Ethernet support)
             [*] RNDIS support
如下图:
 
③ 内核关于wireless部分80211部分:cfg80211 wireless extension(https://blog.csdn.net/faihung/article/details/82497378)
Networking support ------>
Wireless----------------->
cfg80211 wireless extensions compatibility
 
④ 这个不太清楚是做啥的,只是看到网上写着(https://wenku.baidu.com/view/f2d2d7ea0975f46527d3e14b.html)
Device Drivers --------->
Network device support----------- >
Wireless LAN--------------------->
IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)
 
2、驱动编译
一开始在内核中没有加③和④,以为是驱动的问题,所以找到了无线驱动源码交叉编译,在这个编译过程中经历比较痛苦,中间出了好多错误,但都是一开始不规范导致;除了需要驱动源代码,还需要板卡对应内核源代码,并且源代码内核中一定不可以包含该驱动,否则驱动不会进行编译;
①内核准备
.config要准备好,并且放入内核目录下(可以看板卡对应文档);
 make ARCH=arm64 CROSS_COMPILE=aarch64-himix100-linux- menuconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-himix100-linux- prepare
  make ARCH=arm64 CROSS_COMPILE=aarch64-himix100-linux- scripts
如果不按照这三步走,在内核编译时可能会有以下提示错误:
  • asm/types.h不存在;
  • 提示警告:Module.symvers不存在;
②驱动源代码
makefile:
增加CONFIG_PLATFORM_HISI3559 = y,改CONFIG_PLATFORM_I386_PC = n
增加: ifeq ($(CONFIG_PLATFORM_HISI3559), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm64
CROSS_COMPILE :=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-
KVER := 4.9.37 #内核版本
KSRC ?= /home/deepglint/linux-4.9.37 #内核位置(该位置不要太过复杂,最好复制出来)
endif
编译:make
提示错误:implicit declaration of function ‘csum_ipv6_magic’
处理:在提示该错误的文件中增加相应的头文件,头文件位置通过命令在内核中:find /home/deepglint/linux-4.9.37 -name "*" | xargs grep "csum_ipv6_magic" >> 1.txt,在1.txt中搜索头文件,net/ip6_checksum.h,增加出现错误的完呢建在增加 include<net/ip6_checksum.h>
 
③加载驱动:
将生成的rtl8192cu.ko复制到板卡中,使用命令:insmod rtl8192cu.ko加载;如果出现错误:wiless_send_event未定义错误,则为内核中③没有配置;
 
3、iw等工具交叉编译
主要编译内容包含:iw、iwlist、iwconfig、dhcpd
①dhcpd 用于无线网卡连接后分配IP;(来源:https://www.cnblogs.com/helloworldtoyou/p/5457504.html)
  • 下载:ftp://roy.marples.name/pub/dhcpcd(我下载的版本是:dhcpcd-6.9.4.tar.xz)
  • 配置:./configure
  • 编译:make CC=aarch64-himix100-linux-gcc
  • 生成:直接复制dhcpd即可使用(./dhcpd wlan0)
 
②wireless_tool(包含iwlist、iwconfig)(https://blog.csdn.net/weixin_42432281/article/details/86524808)
  • 用于扫描、连接;
  • 下载:https://hewlettpackard.github.io/wireless-tools/Tools.html,如下图(或者:https://hewlettpackard.github.io/wireless-tools/wireless_tools.29.tar.gz)
  • 编译:Makefile ,修改:CC = aarch64-himix100-linux-gcc AR = aarch64-himix100-linux-ar RANLIB = aarch64-himix100-linux-ranlib
  • make;
  • 将生成的命令复制过去就可以直接使用;
 
③ iw(https://blog.csdn.net/lidroid/article/details/46725675)
需要提前安装好libnl
libnl:
  • 下载:http://www.infradead.org/~tgr/libnl/files/ 我这里选择的是libnl-3.2.25.tar.gz
  • 配置编译:./configure --host=aarch64-himix100-linux --prefix=$PWD/tmp
make( 如果出现错误:  sudo apt-get install bison sudo apt-get install flex)
make install
  • 生成:最终文件在当前目录下的TMP;
 
iw:
  • 下载:https://www.kernel.org/pub/software/network/iw/(注意下载4.0版本,其他版本没有编译通过)
  • export PKG_CONFIG_PATH=/home/deepglint/Hi3559AV100R001C02SPC010/iw/libnl-3.2.25/TMP/lib/pkgconfig:$PKG_CONFIG_PATH
  • 修改:NL3xFOUND := Y
  • make 便可生成iw;
 
openssl(https://blog.csdn.net/shunrenwang/article/details/80440647)
  • 下载 https://www.openssl.org/(openssl-1.0.2h)
  • ./config no-asm shared --prefix=$(pwd)/__install
  • make depend
  • 修改Makefile:
将下面
CC= gcc
AR= ar $(ARFLAGS) r
NM= nm
修改为
CC= aarch64-himix100-linux-gcc
AR= aarch64-himix100-linux-ar $(ARFLAGS) r
NM= aarch64-himix100-linux-nm
 
删除-m64
  • make clean
  • make
  • make install
 
libnl(为编译wpa_supplicant.conf https://blog.csdn.net/shunrenwang/article/details/80439876)
  • 下载: http://www.infradead.org/~tgr/libnl/(libnl-3.2.25.tar.gz )
  • ./configure CC=aarch64-himix100-linux-gcc --host=aarch64-himix100-linux --enable-static --enable-shared LIBS=-lpthread --prefix=$(pwd)/__install
  • make clean
  • make
  • make install
 
 
wpa_supplicant(https://blog.csdn.net/shunrenwang/article/details/80448959)
  • 下载http://w1.fi/wpa_supplicant/(wpa_supplicant-2.5.tar.gz )
  • cd wpa_supplicant-2.5/wpa_supplicant/
  • cp defconfig .config
  • 修改.config
将#CONFIG_LIBNL32=y
修改为
CONFIG_LIBNL32=y
  • 修改Makefile
增加下面几行(地址需要根据实际编译的地址改变)
#openssl 
CFLAGS += -I/home/deepglint/8192cu/wpa_supplication/openssl-1.0.2h/__install/include/
LIBS += -L/home/deepglint/8192cu/wpa_supplication/openssl-1.0.2h/__install/lib
LIBS_p += -L/home/deepglint/8192cu/wpa_supplication/openssl-1.0.2h/__install/lib
#libnl
CFLAGS += -I/home/deepglint/Hi3559AV100R001C02SPC010/iw/libnl-3.2.25/TMP/include/libnl3/
CFLAGS += -I/home/deepglint/Hi3559AV100R001C02SPC010/iw/libnl-3.2.25/TMP/include/
LIBS += -L/home/deepglint/Hi3559AV100R001C02SPC010/iw/libnl-3.2.25/TMP/lib/
 
  • make clean
  • make CC=aarch64-himix100-linux-gcc(有些打印 No package 'libnl-3.0' found,可以忽略)
 
wpa_supplicant使用配置:
设置配置文件:vi /etc/wpa_supplicant.conf
内容(ctrl_interface为文件夹,update_config表示wpa_cli可以更新该配置文件):
update_config=1
ctrl_interface=/etc/wpa_supplicant
network={
    ssid="DG"
    proto=WPA RSN
    key_mgmt=WPA-PSK WPA-EAP
    pairwise=CCMP
    group=CCMP
    psk="On1shiuva4"
}
运行: wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -d &
 

hisi3559的usb无线网卡驱动(rtl8192cu)(一条龙服务:内核编译、驱动编译、iw等工具编译)的更多相关文章

  1. TP-link TL-WN725 USB无线网卡在DX2 CPU下的Xlinux 驱动移植

    网上查到,TP-link TL-WN725 USB无线网卡用的芯片是8188EU 下载驱动:http://download.csdn.net/detail/zzz_mraz/5262010 tar z ...

  2. Centos7VMware虚拟机最小化安装后,安装Tenda U12 USB无线网卡驱动

    前几天买下了Tenda U12 USB 无线网卡 ,想连接上无线玩玩,可惜买下折腾了一周才解决他它驱动问题,前后在VMware上装了十多次,测试了好几个内核版本才搞定,好了废话不多说,分享下我安装过程 ...

  3. Kali Linux安装TL-WN821N USB无线网卡驱动(make失败)

    主要有下面几个步骤: 1.刚插上网卡,network-manager识别出来了网卡,也能搜索到WiFi,但就是连接不上.查看/var/log/syslog日志或者使用nmcli m查看网络信息,显示认 ...

  4. UP Board USB无线网卡一贴通

    前言 原创文章,转载引用务必注明链接,水平有限,欢迎指正. 本文环境:ubilinux 3.0 kernel 4.4.0 本文使用Markdown写成,为获得更好的阅读体验和正常的图片.链接,请访问我 ...

  5. 在orangepi-PC, ubuntu mini下使用usb wifi(rtl8188cu/rtl8192cu)

    本文章针对orangepi-pc下的ubuntu,分两部分,分别介绍在ubuntu14.04(trusty)mini下使用usb无线网卡的方式,以及怎样在ubuntu15.10(wily)mini下正 ...

  6. UP Board USB无线网卡选购指南

    前言 原创文章,转载引用务必注明链接,水平有限,欢迎指正. 本文环境:ubilinux 3.0 kernel 4.4.0 本文使用Markdown写成,为获得更好的阅读体验和正常的图片.链接,请访问我 ...

  7. Kali Linux下破解WIFI密码挂载usb无线网卡的方法

    Kali Linux下破解WIFI密码挂载usb无线网卡的方法 时间:2014-10-12    来源:服务器之家    投稿:root 首先我要说的是,wifi密码的破解不是想象中的那么容易,目前还 ...

  8. wifi pineapple 外接USB无线网卡桥接外网

    0:选择USB网卡 在没有有线网络的情况下,可以外挂一个usb无线网卡来桥接上网,目前支持3070L.8187L芯片的网卡,反正linux系统都用这些芯片, 免的安装驱动, 我选择的是 WN-722N ...

  9. [转] linux(debian)安装USB无线网卡(tp-link TL-WN725N rtl8188eu )

    1: 台式机家里面不想再走线了. 于是去某东买了个USB无线网卡.tp的WN725N  USB,非常小, 和罗技的优联接收器差不多大. 2:  驱动能自己识别是不指望了,既然是usb网卡,插入USB后 ...

随机推荐

  1. RollViewPager图片轮播效果开源框架的使用

    RollViewPager是一个自动轮播的Viewpager, 支持无限循环. 触摸时会暂停播放,直到结束触摸一个延迟周期以后继续播放. 看起来就像这样.指示器可以为点可以为数字还可以自定义,位置也可 ...

  2. TYPE_SCROLL_INSENSITIVE is not compatible with CONCUR_UPDATABLE

    There are two options when setting ResultSet to be scrollable: TYPE_SCROLL_INSENSITIVE - The result ...

  3. OpenLDAP 2.4 禁止匿名用户访问

    ldapmodify -Q -Y EXTERNAL -H ldapi:/// <<EOF dn: cn=config changetype: modify add: olcDisallow ...

  4. 回归JavaScript基础(九)

    主题:理解对象,创建对象. 小明是一名程序猿,也是一条单身狗!他常常自嘲:每天都会有很多对象,但却没有女朋友! 多么痛的领悟.哈哈,目前比较流行的编程语言都是面向对象的语言(Object-Orient ...

  5. 《SQL Server 2008从入门到精通》--20180628

    数据库基本概念:区.页.行 区:SQL Server中管理空间的基本单位.一个区大小为64KB,是八个物理上连续的页.SQL Server中每MB有16个区.一旦一个区被存储满,SQL Server将 ...

  6. Elasticsearch部分节点不能发现集群(脑裂)问题处理

    **现象描述** es1,es2,es3三台es组成一个集群,集群状态正常, 当es1 服务器重启后,es1不能加到集群中,自己选举自己为master,这就产生了es集群中所谓的“脑裂” , 把es1 ...

  7. Redis学习---Redis操作之Set

    Set操作,Set集合就是不允许重复的列表 sadd(name,values) name对应的集合中添加元素 --------------------------------------------- ...

  8. MATLAB 正则表达式(一)(转)

    http://blog.sina.com.cn/s/blog_53f29119010009uf.html 正则表达式这个词上大学的时候就听同寝室的一个家伙常念叨——那家伙当然很厉害啦,现在已经发洋财去 ...

  9. 缓存知识整理(包含Redis)

    一.缓存知识 1.buffer和cache的区别 Buffer 缓冲 写操作 写缓冲    Cache 缓存 读操作 读缓存 磁盘-->内存-->CPU 2.PHP的缓存方案 官方文档:h ...

  10. mac lnmp

    Mac下安装LNMP(Nginx+PHP5.6)环境 Mac下安装LNMP(Nginx+PHP5.6)环境 安装Homebrew 最近工作环境切换到Mac,所以以OS X Yosemite(10.10 ...