|
|
1.文件说明
2 P* W" o2 a) z* A: [( c/ V5 lAndroid OS系统( e% ^0 v( G# f$ Y) [
文件说明:* s s- }8 _0 Y+ P( l
Android_tool/rtlbtmp: 应用程序2 U. v) ~; l. _% N; U" H/ C
Android_tool/btmp.default.so: 应用程序
0 X) Q% w, T' l' C L1 Z6 _ BT_Firmware/mp_rtlxxx_fw: 蓝牙芯片专用的 firmware. J L! P$ D: R( C) k b+ C
BT_Config/mp_rtlxxx_config 蓝牙芯片专用的 config # k( F& J3 l1 c8 R0 h
Readme/Readmexxxx.txt: 本说明文档) ^9 ^* f( p5 p6 ~$ J& Z
User Guide/MP tool User guide for androidxxx.pdf:mp tool 的命令集3 v5 _" N: g( Q; u E# C
% w9 V1 M/ \5 P 下面是蓝牙芯片名称、rtlxxx_config、mp_rtlxxx_config 的名称表:
6 h z' T* q2 S9 X. X6 K' [ ---------------------------------------------------------------------------------
, P; b6 o* h% h' d/ c5 i% v4 m | 蓝牙芯片名称 | rtlxxx_config名称 | mp_rtlxxx_config名称 |; v* H0 {& `- w$ F, K& E: C
|---------------------------------------------------------------------------------|7 V, H4 P4 q$ r5 j/ p" }; }0 Y
| RTL8703AS | rtl8703as_config | mp_rtl8703as_config |
: Z7 `8 Q% U4 z* y | RTL8703BS | rtl8703bs_config | mp_rtl8703bs_config |0 c3 p; K+ K& Z! _
| RTL8723AS | rtl8723as_config | mp_rtl8723as_config |+ s" m- ?9 ~( I$ @1 O$ T! C6 ^9 v0 X
| RTL8723A | rtl8723a_config | mp_rtl8723a_config |) D, t- D' Q: w) w) k! ~
| RTL8723AE | rtl8723a_config | mp_rtl8723a_config |& l4 n8 x5 K. c0 u# b
| RTL8723AU | rtl8723a_config | mp_rtl8723a_config |% F a4 F6 k$ A) r3 E' k1 `8 [
| RTL8723BS | rtl8723bs_config | mp_rtl8723bs_config |, r4 }* O! P! q, n ^; ^
| RTL8723BE | rtl8723b_config | mp_rtl8723b_config |9 h8 ]6 x8 U* L7 ~# ^
| RTL8723BU | rtl8723bu_config | mp_rtl8723bu_config |" F' B0 j( {. t" a: ]
| RTL8723CS | rtl8723cs_xx_config | mp_rtl8703bs_config |
" B- `$ ]6 A; F; S7 j | RTL8723CU | rtl8723c_config | mp_rtl8723c_config |
# W$ l, j) b" p0 H, L) W | RTL8723DS | rtl8723ds_config | mp_rtl8723ds_config |' F+ R6 Y# Z' ^: a0 f
| RTL8723DE | rtl8723d_config | mp_rtl8723d_config |
1 o$ H3 m0 E( O" Z5 K | RTL8723DU | rtl8723d_config | mp_rtl8723d_config |! v; q2 v7 U9 Q' M
| RTL8761AT | rtl8761at_config | mp_rtl8761at_config |
+ A- P3 S7 |" j& C | RTL8761AU | rtl8761a_config | mp_rtl8761a_config |7 P* W! [+ G6 x3 B/ D
| RTL8761AU + 8192EE | rtl8761a_config | mp_rtl8761a_config |
; M. a$ g6 f! u0 g | RTL8761AU + 8812AE | rtl8761a_config | mp_rtl8761a_config |7 R7 M& p% X. d$ A3 A* I
| RTL8761AUV | rtl8761a_config | mp_rtl8761a_config |
7 h+ m0 I, P) j& x7 f | RTL8761AW + 8192EU | rtl8761aw8192eu_config | mp_tl8761aw8192eu_config |
& P/ U8 W* ~- x8 _" ` | RTL8821AS | rtl8821as_config | mp_rtl8821as_config |
: V- E8 y7 S+ W* ^' k7 \ | RTL8821AE | rtl8821a_config | mp_rtl8821a_config |3 c5 [! V/ X' ^$ g6 @/ I
| RTL8821AU | rtl8821a_config | mp_rtl8821a_config |3 U9 b/ }! R. {5 m4 P$ ^5 [/ r2 c
| RTL8821CE | rtl8821c_config | mp_rtl8821c_config |2 Y5 N" l, |2 W; P N5 C ] v1 ^
| RTL8821CS | rtl8821cs_config | mp_rtl8821cs_config |
~' _: H) ~- T3 q | RTL8821CU | rtl8821c_config | mp_rtl8821c_config |( P( d, Z; J# O- d
| RTL8822BS | rtl8822bs_config | mp_rtl8822bs_config |- b" x, X K2 i7 M* K1 y9 `$ F
| RTL8822BE | rtl8822b_config | mp_rtl8822b_config |
\7 P3 z! L. ]0 a7 l+ d" k | RTL8822BEH | rtl8822bs_config | mp_rtl8822bs_config |
! j) ^4 Z. b2 }, u0 h9 @, P | RTL8822BU | rtl8822b_config | mp_rtl8822b_config |+ `: x* V4 S9 `% b
| RTL8761BU | rtl8761b_config | mp_rtl8761b_config |! M2 ]8 u) Q) }3 c, M8 @& m
| RTL8761BT | rtl8761bt_config | mp_rtl8761bt_config |
# ~3 n; o; @) i | RTL8822CU | rtl8822c_config | mp_rtl8822c_config |% F6 S' h6 y3 ]
| RTL8822CS | rtl8822cs_config | mp_rtl8822cs_config |5 |- V5 K, m" ^+ s' I& `7 `2 |4 F
---------------------------------------------------------------------------------
5 g4 E9 |3 p) k# e9 G; i6 MLinux OS 系统$ x0 H' t; v2 w/ c3 ]$ I
文件说明:, R9 {% |+ \2 x) t5 c
Linux_tool/rtlbtmp: 应用程序,需客户提供平台的交叉编译工具链来生成
% V k( a4 r( g, L! N7 S BT_Firmware/mp_rtlxxx_fw: 蓝牙芯片专用的 firmware8 D$ x& ~, x4 R8 M
BT_Config/mp_rtlxxx_config 蓝牙芯片专用的 config 9 z! N6 \6 y$ E9 r# j2 {2 _5 L( c; `
Readme/Readmexxxx.txt: 本说明文档8 X2 [2 ]1 M2 C$ X5 q) ^8 d# J
User Guide/MP tool User guide for linuxxxx.pdf:mp tool 的命令集% X9 v: c# x; l! i6 t; S6 E
下面是蓝牙芯片名称、rtlxxx_config、mp_rtlxxx_config 的名称表:
2 m/ }* I9 n& U: E P* J: m/ q -----------------------------------------------------------------------------------2 q3 s3 y8 u& k: o
| 蓝牙芯片名称 | rtlxxx_config名称 | mp_rtlxxx_config名称 |
( i( \3 \% W q2 I6 l" l |----------------------------------------------------------------------------------|7 J4 W. j0 o/ U2 w+ y
| RTL8703AS | rtl8703a_config | mp_rtl8703as_config |
% c2 u4 G, n9 G# q7 b- I' }& s7 r | RTL8703BS | rtl8703b_config | mp_rtl8703bs_config |
9 Z* }6 w6 h4 f8 k& j0 }$ Z | RTL8723AE | rtl8723a_config | mp_rtl8723a_config |- @6 E; D) S, A
| RTL8723AS | rtl8723a_config | mp_rtl8723as_config |$ j9 D, x# U+ F
| RTL8723AU | rtl8723a_config | mp_rtl8723a_config |( W/ e9 X' b! W9 j
| RTL8723BE | rtl8723b_config | mp_rtl8723b_config |6 _2 ]" W; \- f6 d0 x/ |
| RTL8723BS | rtl8723b_config | mp_rtl8723bs_config |2 H$ r8 f( b6 b( h8 f6 z* u- f
| RTL8723BU | rtl8723bu_config | mp_rtl8723bu_config |; L1 E$ G' P8 r- m! @, j
| RTL8723CS | rtl8723cs_xx_config | mp_rtl8703bs_config |
" w: S2 ~7 X) `, M4 g1 T | RTL8723DS | rtl8723d_config | mp_rtl8723ds_config |/ R2 Y4 n$ E* `1 I9 F/ o. g2 M6 `/ m2 d
| RTL8723DU | rtl8723du_config | mp_rtl8723d_config |
% M4 C O0 {' K | RTL8761AT | rtl8761at_config | mp_rtl8761at_config |
. u* S3 s+ @- e( N6 Z1 D | RTL8761ATV | rtl8761a_config | mp_rtl8761at_config |6 R( K" _( E9 c' `# e" B
| RTL8761AU | rtl8761a_config | mp_rtl8761a_config |) } e+ W: w% ?1 l9 s4 H% M
| RTL8761AW + 8192EU | rtl8761aw_config | mp_tl8761aw8192eu_config |
% E5 S( |. x, a$ l% m0 T. z | RTL8761AU + 8192EE | rtl8761a_config | mp_rtl8761a_config |1 q1 B. X$ q2 z- I4 Z/ X
| RTL8761AU + 8812AE | rtl8761a_config | mp_rtl8761a_config |
% v0 ?$ J! d! t | RTL8821AE | rtl8821a_config | mp_rtl8821a_config |
, `" h7 o) s! D6 ~ | RTL8821AS | rtl8821a_config | mp_rtl8821a_config |
8 S0 |8 n) K- A% Q2 u9 H | RTL8821AU | rtl8821a_config | mp_rtl8821a_config |
- c. q6 y! ?2 X4 b5 }7 _ | RTL8821CS | rtl8821c_config | mp_rtl8821c_config |
$ @/ Y5 g. L+ R: Q: T8 r+ X! H c | RTL8821CU | rtl8821cu_config | mp_rtl8821c_config |
8 u8 B' t5 \ V9 f | RTL8822BS | rtl8822b_config | mp_rtl8822b_config |( G5 z! J; F( L5 @! {
| RTL8822BU | rtl8822bu_config | mp_rtl8822b_config |" {1 E- t" ~' f$ r; M
| RTL8761BU | rtl8761b_config | mp_rtl8761b_config |
+ t5 T l0 g( [ | RTL8761BT | rtl8761bt_config | mp_rtl8761bt_config |# i, ?. |8 w: K- _+ n$ o
| RTL8822CU | rtl8822c_config | mp_rtl8822c_config | z& Q3 p* v+ j: N1 E
| RTL8822CS | rtl8822cs_config | mp_rtl8822cs_config |
$ L: E! Z# |* W( l5 r -----------------------------------------------------------------------------------4 L, i1 ^- U: l! `
6 `6 R, F9 X4 ?& V3 X2 z2.运行环境搭建
) b; O, F4 C- V# @1 Q1 q$ PAndroid OS 环境
% u ?) {6 [+ `& n将 tool 所需文件放到系统里
: ^+ y: A- E3 ]将 rtlbtmp 文件放到 /system/bin/目录,并修改权限为 777;
" {% a" {# s% K3 D% jadb push rtlbtmp /system/bin/
9 u5 \6 P0 o' Cadb chmod 777 /system/bin/rtlbtmp
' I. j5 P$ Q& ~) ^( e将 btmp.default.so 文件放到 /system/lib/hw/目录,并修改权限为 644;
3 L+ r; D7 H9 P3 ?" J) Ladb push btmp.default.so /system/lib/hw/
6 `/ e5 A$ W+ v# b* e+ _adb chmod 644 /system/lib/hw/btmp.default.so+ H7 r3 y0 f; N
将 mp_rtlxxxx_config 文件放到 /system/etc/firmware/目录,并修改权限为 644;' J$ S( X2 i. h6 i% b
adb push mp_rtlxxxx_config /system/etc/firmware/1 W3 o% J; B! t$ W9 \- W# `
adb chmod 644 /system/etc/firmware/mp_rtlxxxx_config/ G% Q% B3 i% v/ q
将 mp_rtlxxxx_fw 文件放到 /system/etc/firmware/目录,并修改权限为 644;0 _2 X v/ u+ F: N- ]2 b
adb push mp_rtlxxxx_fw /system/etc/firmware/
* j$ p" V( e# z# i+ m, a- wadb chmod 644 /system/etc/firmware/mp_rtlxxxx_fw8 f/ Q0 _4 Y2 {, W
' h9 ?& K; |* N# P8 k- a- y" s
* v$ g& m. @) c; S9 p#Note: 从Android 8.0及以后的系统开始,以上文件都将放到/vendor/目录下面! i" k {) F. I" A0 A9 Q
将 rtlbtmp 文件放到 /vendor/bin/目录,并修改权限为 777;# ] u1 ?# ]5 D9 X
cp rtlbtmp /vendor/bin/
$ D3 J" H2 l# B" W1 zchmod 777 /vendor/bin/rtlbtmp
( d- @- }* @8 P& F" y8 D: r3 w将 btmp.default.so 文件放到/vendor/lib/hw/目录,并修改权限为 644;
+ q5 E8 G! k1 h: k' E$ _cp btmp.default.so /vendor/lib/hw/0 [, ` f, u; E/ }
chmod 644 /vendor/lib/hw/btmp.default.so
3 B* r1 e }% Q/ l将 mp_rtlxxxx_config 文件放到 /vendor/firmware/目录,并修改权限为 644;/ A$ I9 W8 d# j8 G! V! ]
cp mp_rtlxxxx_config /vendor/firmware/* _. E+ S! e/ O) Y; s* p
chmod 644 /system/vendor/firmware/mp_rtlxxxx_config* i4 _* m* V) ]8 ?
将 mp_rtlxxxx_fw 文件放到 /vendor/firmware/目录,并修改权限为 644;4 u5 y) E: a+ n; T& y/ ]
cp mp_rtlxxxx_fw /vendor/firmware/5 j# ]4 |3 k. X, ?; Z3 S; {2 @; n
chmod 644 /vendor/firmware/mp_rtlxxxx_fw
; x1 Q- R$ F: T6 O% h- \0 T以上文件建议放到 SDK 里,不会影响正常的蓝牙使用;
( }& h2 f+ w2 I, N5 ?5 ? 关闭 normal BT$ P% t3 S# W& B; y& ^
rtlbtmp 使用的时候都需要先关闭 normal 的蓝牙,如果 UI 上不能关闭蓝牙,可以使用如下的方案:* j7 V8 @9 h$ Z& m. e) g% x
service call bluetooth_manager 8(关) /6(开)" L2 j7 k' n. E; j" ^
或者* `1 m5 H/ G1 M# u6 g: Z# W
cd /system/lib/hw" g; f I/ b/ E
mv bluetooth.default.so bluetooth.default.so_ORG
+ m8 |* q- {/ G( b1 R( \(for android P 之后:是在 /system/lib/目录,mv libbluetooth.so libbluetooth.so_ORG)5 w8 U3 H( l) c; I! c$ r
reboot- S9 G+ ]% Q; K- p
+ T8 J* x8 M q( |1 _! f! v
Linux OS 环境
! D, c i, j* x8 |# o# A1 ]9 V2 r 将 tool 所需文件放到系统里
; B6 n1 D- v* x; c3 V; u2 I/ B5 gcp rtlbtmp /usr/sbin/! b+ E p7 |& I8 T9 c+ d
chmod 777 /usr/sbin/rtlbtmp
& ]" K! x: }, Qcp mp_rtlxxxx_config /lib/firmware/
( P( v5 A# e- y# A* Vchmod 644 /lib/firmware/mp_rtlxxxx_config
0 @) m' l" {. k! R) Z; i! G: {cp mp_rtlxxxx_fw /lib/firmware/
: W3 \- c) J! Y. u5 Q6 p kchmod 644 /lib/firmware/mp_rtlxxxx_fw; p, |# h5 k1 G$ R( w
UART 接口芯片准备
+ ]( J/ N. T! M请关闭 normal 蓝牙,即开机后默认不加载 rtk_hciattach 等流程;
; W! U% C" o. c( i USB 接口芯片准备
+ l( G2 L' d( E c m0 _) M, U先打开 normal 蓝牙,再 hciconfig hci0 up
' `; ^5 E5 Z1 e" x& p, p) R% R0 A- I' w6 ~: m" N& j1 Q N
* c! \8 `0 j3 B$ ]7 }
3.BT RF Performance Test & TX Power Calibration. ~" y$ U4 S/ O
参考User Guide8 P6 P" w7 a7 c
#Note:8761B & 8822C 相比之前的IC比较特殊,参考单独的User Guide0 W9 I8 |6 u2 v1 }* p! U: ?5 M) C) \' V$ w
# k- S. c3 G8 N) z6 x' H. G/ R( I2 X$ n* n1 k' P7 t) j& [
一般就是要细化linux还是Android,对应其中kernle版本有对应的config、fw、btmp.default.so、rtlbtmt、rtlbtmt_clt、rtlbtmt_skt,一些疑问可沟通!9 | P: c8 Q6 S) p0 Q }' m
5 B2 w0 ~2 }: f
: h! t3 L7 v4 W' H1 a7 h
|
|