|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
文章目录( g( H. |7 [7 I+ c9 a$ W
1.1 在Linux内核中添加wifi驱动$ N$ z3 k2 ?& }1 y7 Y& D* Q& M" l
1.2 配置Linux内核( Y& g* k5 o; g7 x- J
1.3 Rtl8723 wifi模块驱动测试
9 u: F& k" Y3 L: M8 {% R! X![]()
$ L' r4 a4 R$ Y! |: s7 T$ l在迅为i.MX6UL终结者开发板上使用的是usb接口的RTL8723 wifi模块,原理图如图 1所示:
5 Z+ w5 s+ ^) q4 N![]()
6 O3 E) a- k( v7 {可以看到RTL8723模块的接口非常简单,只有DP1和DM1连接到usb HUB芯片上,就可以完成通信电路。RTL8723是realtek公司的wifi芯片,已经提供了wifi驱动源码,就不需要我们自己去编写了,只需要将提供的wifi驱动源码添加到Linux内核中进行编译就可以了。
' ~3 H1 f G5 w3 j1.1 在Linux内核中添加wifi驱动4 O; q2 D1 F6 F2 o; n4 K, ~
首先获取wifi驱动源码,放到Linux内核drivers/net/wireless目录下,如图 1.1.1所示:$ n$ A7 T5 I) D/ u! ?' |
/ y8 \2 C; O* j4 T$ n* k
rtl8723BU目录下内容如图 1.1.2所示:
. ^3 w U* S3 j1 b3 P![]()
( o7 J5 R, i6 M( b/ ^其中Kconfig文件是rtl8723驱动的配置文件,这样可以通过 Linux 内核图形化配置界面来选择是否编译 WIFI 驱动,Kconfig 文件内容如下所示:
2 ?* B2 U5 {4 a' D ) |$ f t7 w" f* v; N# q
当添加完rtl8723 wifi驱动时,需要修改上一级的Kconfig和Makefile。
# i8 Z2 ^8 T, T6 O+ N- G* G4 K1 ?: T修改drivers/net/wireless/Kconfig,添加如下内容:
" C" m3 }- {0 M( xsource “drivers/net/wireless/rtl8723BU/Kconfig”
( a3 T( F# z& r8 D/ V添加完成后如图 1.1.3所示:$ Q) e2 E1 H* b x2 X; F: R* u2 z z
$ g1 i; K R( ]3 ? Q
![]()
9 t+ i8 L* T- A8 f) N7 ]1 Y2 J添加完成后,在Linux内核的驱动配置界面上才会出现rtl8723的配置选项。
- C, q4 ^( v& @( c4 a修改drivers/net/wireless/Makefile文件,添加如下内容:
( B2 l: _. A! G: d( @9 \( q) Bobj-$(CONFIG_RTL8723BU) += rtl8723BU/, X5 M6 N5 b$ [0 f3 \% z, {/ K' ~
修改后如图 1.1.4所示:
' f% H9 H9 \" p* g
" m# }/ f! u* U X7 A![]()
. W2 ~0 m$ T: F X1 a% Y3 Y7 S1.2 配置Linux内核$ h# m, }9 {" X( ?. Y# T' S
添加好rtl8723 wifi驱动并修改完配置文件后,需要在Linux内核中在进行配置。: c" n0 w. R6 m6 V! J
1、配置支持USB设备
, g5 r0 N- F$ B1 n, n: ~Linux内核配置路径如下: V% I5 g8 E0 x/ l! q1 x7 C
2 A6 S" ]% g$ I: B4 g" `( F) |; [![]()
5 c% `! T+ ]+ H& x+ D1 u! n配置完成如下图 1.2.1所示:
/ |* G% V% D' ?/ T6 O9 I![]()
: U" x1 X- g8 P' L2、配置支持wifi设备+ e- r; l B" Q9 W) B7 r1 @6 i6 r$ T$ L
Linux内核配置路径如下:
( I* ]: q& h/ U D) T$ Q+ h+ f$ A, K* A9 I, H3 L3 w8 j
![]()
; T& \. K& Z5 ^8 B7 z) o配置完成如图 1.2.2所示:/ q* V) H9 Q t, w
![]()
" a' U5 F- k' g) q3、配置支持IEEE 802.11
7 n% H7 }, Y |Linux内核配置路径如下:" Z9 ^9 U- F6 K
Q8 k: M5 a7 g9 I![]()
0 W7 }9 h/ u; l! }( l# ]4 {/ e. W配置完成如图 1.2.3所示:
. k( Q8 N) ~' \* g) k% r' ?![]()
5 ]7 N+ |% t3 L h7 U8 ?4、配置rtl8723 wifi驱动
1 P! Y @9 `9 }# D9 }Linux内核配置路径如下:$ g1 I& L' t) m9 }4 m1 [$ V
: R6 Q0 \7 D2 g0 S) P8 B
3 u. {! b4 m4 S3 W! Q. m! J0 P; c
配置结果如图 1.2.4所示:
6 o7 {+ C2 o h4 J9 }# I9 ] . d: a! R+ B4 h& r5 f+ w
直接将rtl8723 wifi模块的驱动编译到内核中去。
$ I' E* ~# V6 A6 X) C9 v- s+ m. g以上Linux内核配置完成后,重新编译内核生成zImage,使用新的zImage启动开发板。- x4 x0 U0 ~" q$ P, u
1.3 Rtl8723 wifi模块驱动测试
9 N9 b1 G; x0 }& e0 B使用新的zImage镜像启动开发板,系统启动过程中会有如图 1.3.1信息打印:
+ O9 j1 k" T" ?
0 P2 A* H& {- T# l6 n% C![]()
( ?, | Z' E0 Q, U0 p! a" s5 f2 z7 _上图说明在Linux系统启动过程中使用了rtl8723 wifi模块的驱动程序。当启动完成驱动后使用“ifconfig -a”命令查看wlan网卡是否存在,结果如图 1.3.2所示:
) \! @7 \' F0 w$ _/ ^5 L![]()
g w7 @$ Z& F! A" I" L. T, ?福利链接:B站搜(北京迅为)入门视频教程免费学习: [ s& O6 H+ u2 ~2 O
Linux学习方法-框架学习法; 嵌入式学习之QT进阶篇; 新增嵌入式学习之Linux驱动篇; 7 y- D, {4 H5 p, \
|
|