|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
文章目录
$ l% Y t1 u+ B H# P4 q$ l8 Y1 {1.1 在Linux内核中添加wifi驱动2 T9 V0 Y% `- H7 {% B8 t/ Y" w7 O
1.2 配置Linux内核2 T3 m' M3 j. M4 s% Q
1.3 Rtl8723 wifi模块驱动测试" e/ o. z) B5 p5 [. l3 X0 }
![]()
9 f n- H6 K! k2 O1 \在迅为i.MX6UL终结者开发板上使用的是usb接口的RTL8723 wifi模块,原理图如图 1所示:
0 R ~1 n2 c2 O6 A![]()
8 v1 ~' v& u" |7 _7 |( d7 X4 ^3 C可以看到RTL8723模块的接口非常简单,只有DP1和DM1连接到usb HUB芯片上,就可以完成通信电路。RTL8723是realtek公司的wifi芯片,已经提供了wifi驱动源码,就不需要我们自己去编写了,只需要将提供的wifi驱动源码添加到Linux内核中进行编译就可以了。
" }* r# b, {) ?2 }5 T1.1 在Linux内核中添加wifi驱动! L/ b/ X; Z7 N' s7 ^& g
首先获取wifi驱动源码,放到Linux内核drivers/net/wireless目录下,如图 1.1.1所示:" I3 j/ y1 d( ]9 x/ f$ ?
![]()
. j9 O, k. P( ^- L4 Krtl8723BU目录下内容如图 1.1.2所示:. ] c( X* s! d/ w$ A2 g( H
( p' `5 z: X/ k; a9 A. p* x
其中Kconfig文件是rtl8723驱动的配置文件,这样可以通过 Linux 内核图形化配置界面来选择是否编译 WIFI 驱动,Kconfig 文件内容如下所示:
# J- n9 d/ u$ O/ d( ~ ! U. u) r9 z& @ x. e( r
当添加完rtl8723 wifi驱动时,需要修改上一级的Kconfig和Makefile。
! R+ r4 G, u* B% n4 K8 @修改drivers/net/wireless/Kconfig,添加如下内容:, q; M/ ~: m: X' O; L
source “drivers/net/wireless/rtl8723BU/Kconfig”
! v2 J! U3 V v* U' g添加完成后如图 1.1.3所示:; I" p0 U1 t" ~+ w( s$ }; \# A
) {% J8 P6 |2 ~* T
![]()
5 ^/ G5 n/ ]: }: r" O5 a添加完成后,在Linux内核的驱动配置界面上才会出现rtl8723的配置选项。
9 z# X6 }4 O4 H- }; L* E3 I修改drivers/net/wireless/Makefile文件,添加如下内容:
8 I0 X2 x. I( Z* h" [obj-$(CONFIG_RTL8723BU) += rtl8723BU/3 Q+ u5 X$ M; b7 ]9 C/ O
修改后如图 1.1.4所示:
& u1 s; `/ z/ W+ t8 E$ ?
# w( W' Z) a# K7 A l# N# y 2 d1 \0 T# F8 R$ v1 n( J2 s
1.2 配置Linux内核
1 f" T0 C+ V9 q- z% u8 X2 m* D9 C添加好rtl8723 wifi驱动并修改完配置文件后,需要在Linux内核中在进行配置。6 p1 t, M6 w, |9 P: Y) S
1、配置支持USB设备
5 W1 Y) v5 C3 i/ Q$ KLinux内核配置路径如下:
8 }+ b0 Q% d5 X# P2 P# C8 }2 z- i9 p. H( u! {1 E0 s1 q
* k, l' g5 B: q) M4 Z
配置完成如下图 1.2.1所示:
3 E- a* I6 u0 Z* k![]()
1 _5 E5 b4 X7 t1 w8 }2、配置支持wifi设备
8 K0 x" N5 k9 r8 X. A2 \Linux内核配置路径如下:4 [6 I$ q( T. ^! f5 {& q; m
) \/ ~5 e/ n6 H+ k, T- i6 o5 ? & \3 p4 }3 P6 j& U5 I; h6 W
配置完成如图 1.2.2所示:$ ^, N; F! w" s3 o' {- ^
' n" P$ l% m7 D5 G4 w9 w# N6 p
3、配置支持IEEE 802.119 [9 M. p4 P" n3 @+ Q4 h
Linux内核配置路径如下:
1 f. l5 A* r( b/ J$ W3 g7 [. k
1 x% j- F0 R9 W0 S9 ]* A/ ?( J$ T![]()
' B: a& G7 f2 j配置完成如图 1.2.3所示:: C. J2 u! k& ~9 k. F
![]()
; _& N g5 @$ d% n/ n+ @% @4、配置rtl8723 wifi驱动
/ F3 J# e" Q4 m; M! t$ DLinux内核配置路径如下:
5 u; a. @1 N( E) t* n5 X2 |1 |- a) I7 q7 s \1 e
# [7 h% t; Z4 I! r4 N! a
配置结果如图 1.2.4所示:
6 \, y7 @' X" X! f3 v* C) o![]()
8 d: q, f+ Z$ ^ }直接将rtl8723 wifi模块的驱动编译到内核中去。# I) Y0 a! q7 n" ?% \
以上Linux内核配置完成后,重新编译内核生成zImage,使用新的zImage启动开发板。
1 b8 V9 `" C' c- ]1.3 Rtl8723 wifi模块驱动测试
( H' I3 g+ J# D! X3 i; u# ?2 ]3 V使用新的zImage镜像启动开发板,系统启动过程中会有如图 1.3.1信息打印:' u; s' }2 G+ E. `4 F6 j' R3 N" \# }
- ~% J: R% l" V![]()
% N6 _- Q% [1 Z" O& {' t上图说明在Linux系统启动过程中使用了rtl8723 wifi模块的驱动程序。当启动完成驱动后使用“ifconfig -a”命令查看wlan网卡是否存在,结果如图 1.3.2所示:
+ ^: l$ U. K& L v: E2 U![]()
5 T: ?0 {. T# b- t# u: E9 G& G r福利链接:B站搜(北京迅为)入门视频教程免费学习
9 Q' |& I7 y1 I" m% {6 j) MLinux学习方法-框架学习法; 嵌入式学习之QT进阶篇; 新增嵌入式学习之Linux驱动篇; % L! V- J3 w) ^ J8 ^- u+ r- {
|
|