/************************************************************************
* backports移植rtlwifi驱动
* 说明:
* Linux内核版本算是蛮多的,版本越高其内核自带的驱动也是越多,对于低版本
* 如何使用高版本中的驱动是个问题,左栋提醒使用backports来做移植,尝试一下。
*
* 2017-9-13 深圳 龙华樟坑村 曾剑锋
***********************************************************************/ 一、参考文档:
. backports: Linux kernel backports
http://drvbp1.linux-foundation.org/~mcgrof/rel-html/backports/
. ubuntu15.04安装Atheros AR8161网卡驱动
https://jingyan.baidu.com/article/3ea51489d814c052e71bba7a.html
. ath10k backports releases
https://wireless.wiki.kernel.org/en/users/drivers/ath10k/backports
. Linux wifi backports cross compile
https://stackoverflow.com/questions/18855554/linux-wifi-backports-cross-compile
. compat: exports duplicate symbol clk_disable (owned by kernel)
corehtml5canvas.com/code-live/
. cfg80211: exports duplicate symbol __ieee80211_get_channel (owned by kernel)
http://blog.csdn.net/wuqingwei/article/details/53374309
. Beaglebone Black fails in installing RTL8892CU WIfi module
https://github.com/beagleboard/kernel/issues/39 二、backports编译、测试:
. Download backports:
http://www.kernel.org/pub/linux/kernel/projects/backports/stable/v4.2.6/backports-4.2.6-1.tar.xz
. 参考教程:https://wireless.wiki.kernel.org/en/users/drivers/ath10k/backports
. 配置交叉编译器和硬件架构:
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
. 修改Makefile,主要是修改内核目录,编译后库目录:
...
KMODDIR ?= updates
KLIB := /home/Qt/kernel/RTL8188/backports-4.2.-/
ifneq ($(origin KLIB), undefined)
KMODPATH_ARG := "INSTALL_MOD_PATH=$(KLIB)"
else
# KLIB := /lib/modules/$(shell uname -r)/
KLIB := /home/Qt/kernel/RTL8188/backports-4.2.-/
KMODPATH_ARG := "INSTALL_MOD_PATH=$(KLIB)"
endif
KLIB=/home/Qt/kernel/RTL8188/backports-4.2.-/
# KLIB_BUILD ?= $(KLIB)/build/
KLIB_BUILD ?= /home/Qt/kernel/linuxQt_kernel/
...
. make defconfig-rtlwifi
. make
. 拷贝当前目录下lib目录到文件系统lib目录
. 下载rtl8192cufw.bin,并拷贝到文件系统/lib/firmware/rtlwifi/:
https://github.com/beagleboard/kernel/issues/39
. wpa_supplicant:
. configure:
[zengjf@root ~]# cat /etc/wpa_supplicant.conf
network={
ssid="LTE_CPE_EDEDBE"
psk="EDEDBED2"
}
. wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf
. wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf &
. wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf > /dev/null >& &
. dhcpcd wlan0 获取ip,路由;
. 如果有双网卡,需要检查route表,是否将无线网卡的路由放在第一个,路由表默认采用第一个通信; 三、注意事项:
* 主要是要注意解决其中的duplicate symbol之类的问题,因为内核中可能选择了,在backports中有选择了,导致双重声明,或者没有声明之类的错误。
* 在移植的时候,有将内核中80211功能关闭,保存config,然后又打开,保存config,这样内核中的80211的选项就是默认的,之后内核就可以了。

backports移植rtlwifi驱动的更多相关文章

  1. 第一章 Android系统移植与驱动开发概述

    本书第一章首先简单概要地介绍了关于Android系统移植和驱动开发的相关内容. 所谓“移植”是指为特定的自己的设备,如手机定制Android的过程.自己开发一些程序(移植)装载在设备上,使得Andro ...

  2. 第一章Android系统移植与驱动开发概述--读书笔记

    以前,初步学习过嵌入式Linux驱动开发的基础课程,对于驱动开发可以说是有了一点点微末的基础吧.首先我们要对Android嵌入式系统有一个初步的认识,Android系统发展到今天已经具备了完善的架构. ...

  3. 第一章 Andorid系统移植与驱动开发概述 - 读书笔记

    Android驱动月考1 第一章 Andorid系统移植与驱动开发概述 - 读书笔记 1.Android系统的架构: (1)Linux内核,Android是基于Linux内核的操作系统,并且开源,所以 ...

  4. 1Android系统移植与驱动开发概述

    1.Android系统架构分为四层,从下至上依次为Linux内核层,C/C++代码库.Android SDK API.应用程序,要熟悉每一层的内容以及功能: 2.Android移植分为应用移植和系统移 ...

  5. Android系统移植与驱动开发----第一章

    第一章 Android系统移植与驱动开发 Android源代码定制完全属于自己的嵌入式系统,但是支持的设备不多,所以要移植,而在移植的过程中使用的不得不提的是驱动开发. Android系统构架主要包括 ...

  6. 【转】 linux内核移植和驱动添加(三)

    原文网址:http://blog.chinaunix.net/uid-29589379-id-4708909.html 原文地址:linux内核移植和驱动添加(三) 作者:genehang 四,LED ...

  7. 3.移植驱动到3.4内核-移植DM9000C驱动

    在上章-使内核支持烧写yaffs2,裁剪内核并制作补丁了 本章,便开始移植以前2.6内核的驱动到3.4新内核 1.介绍 首先内核更新,有可能会重新定义新的宏,去除以前的宏,以前更改函数名等 所以移植驱 ...

  8. 【Linux高级驱动】如何分析并移植网卡驱动

    dm9000的驱动分析 m9000_init platform_driver_register(); db); db); );  ; id_val ; id_val ; /* 获取芯片型号 */ id ...

  9. Android系统移植与驱动开发

    21世纪,Android发展非常迅速,在市场上占有很大的比例,遥遥领先与iOS,很大程度上是因为任何人都可以利用Android的源代码定制完全属于自己的嵌入式开发系统,而不需要向Google交一分钱. ...

随机推荐

  1. 统计编程的框架与R语言统计分析基础——摘(1)

    清屏命令ctrl+L 一.基础 1.产生数据结构 a.直接输入 b.冒号,1:10 c.seq函数 d.rep函数 > 1:10 [1] 1 2 3 4 5 6 7 8 9 10 > 10 ...

  2. jquery map方法使用示例

    jquery的map方法非常好用,其作用是将数组或单个对象,替换为新的内容 感觉jquery的map方法非常好用. 方法作用:将数组或单个对象,替换为新的内容.  应用实例:获取一组checkbox的 ...

  3. NULL头文件

    #include<stddef.h> NULL不是C语言基本类型,其定义在stddef.h文件中,作为最基本的语言依赖宏存在.但是随着C/C++的发展,很多文件只要涉及了系统或者标准操作都 ...

  4. js中 a : function(){}这是什么格式? 代表什么含义?怎样学习这样的格式?

    js中的json. 一种轻量级数据格式.json中的值是map形式的就是key->value. 具体看下边的示例; var person = { // 用 大括号括声明一个json. " ...

  5. python中format函数

    python中format函数用于字符串的格式化 通过关键字 1 print('{名字}今天{动作}'.format(名字='陈某某',动作='拍视频'))#通过关键字 2 grade = {'nam ...

  6. Java基础学习笔记(一)

    Java基础学习笔记(一) Hello World 基础代码学习 代码编写基础结构 class :类,一个类即一个java代码,形成一个class文件,写于每个代码的前端(注意无大写字母) XxxYy ...

  7. Springboot与日志

    日志框架 比如开发一个大型系统:1.System.out.println(""):将关键数据打印在控制台:去掉?写在一个文件?2.框架来记录系统的一些运行时信息:日志框架 :riz ...

  8. 计算机基础教程11 - 互联网&内联网

    在本章中,我们将看到什么是Internet和Intranet,以及讨论两者之间的异同. 互联网 它是互联计算机网络的全球/全球系统.它使用标准的Internet协议(TCP / IP).Interne ...

  9. JS+Canvas的棋盘游戏和Java的动态结合

    二维数组的题做了有几个了,感觉很有趣,随后想到想做一个五子棋的游戏. 因为前端知识匮乏,但感觉只是Java中去用二维数组做的话还是不太难的. 首先生成15*15的棋盘,(先不考虑前后端交互),其后Ha ...

  10. PistgreSQL9.6手册(基础摘录)

    学习目的:基础使用. 能够开发RoR就行. git: https://github.com/postgres-cn/pgdoc-cn 1.2. 架构基础 PostgreSQL使用一种客户端/服务器的模 ...