8,460
个编辑
更改
→下载Orange Pi 3G-IoT用户手册
[[Image:3G-iot-4.png]]<br><br>
=== 40pin GPIO 定义 规格 ===
<br>
<div class="table-3g-iot"> <table style="min-width: 800px; line-height:35px;text-align: center; lineborder-heightcolor:35px#CCCCCC;" border="1" bordercolor="#d8d8d8" cellspacing="0" cellpadding="0" > <tr> <td>OrangePi(4G-IOT)</td> <td></td> <td></td> </tr> <tr> <td style="background-color: #5a5a5a;">P01</td> <td style="background-color: #5a5a5a;">VIO28_PMU</td> <td></td> </tr>
<tr>
<td width="119" style="backgroundfont-colorweight: #5a5a5a700;">P02PIN1</td> <td width="216">VIO28 PMU</td> <td width="68" style="backgroundfont-colorweight: #5a5a5a700;">DC5V </td> <tdwidth="166" style="font-weight:700;">PIN21</td> <td width="219">GPIO24</td>
</tr>
<tr>
<td style="backgroundfont-colorweight: #b1a0c6700;">P03PIN2</td> <td>DC5V</td> <td style="backgroundfont-colorweight: #b1a0c6700;">SDA1 </td> <td style="backgroundfont-colorweight: #b1a0c6700;">GPIO49PIN22</td> <td>GPIO109</td>
</tr>
<tr>
<td style="backgroundfont-colorweight: #5a5a5a700;">P04PIN3</td> <td>SDA_1</td> <td style="font-weight:700;"> </td> <td style="backgroundfont-colorweight: #5a5a5a700;">DC5VPIN23</td> <td>GPIO25</td>
</tr>
<tr>
<td style="backgroundfont-colorweight: #b1a0c6700;">P05PIN4</td> <td>DC5V</td> <td style="backgroundfont-colorweight: #b1a0c6700;">SCL1 </td> <td style="backgroundfont-colorweight: #b1a0c6700;">GPIO50PIN24</td> <td>GPIO139</td>
</tr>
<tr>
<td style="backgroundfont-colorweight: #5a5a5a700;">P06PIN5</td> <td>SCL_1</td> <td style="font-weight:700;"> </td> <td style="backgroundfont-colorweight: #5a5a5a700;">GNDPIN25</td> <td>GND</td>
</tr>
<tr>
<td style="backgroundfont-colorweight: #938a53700;">P07PIN6</td> <td>GND</td> <td style="backgroundfont-colorweight: #938a53700;">EINT87 </td> <td style="backgroundfont-colorweight: #938a53700;">GPIO87PIN26</td> <td>EINT0/GPIO30/PWM B</td>
</tr>
<tr>
<td style="backgroundfont-colorweight: #d99694700;">P08PIN7</td> <td>EINT4/GPIO26</td> <td style="font-weight:700;"> </td> <td style="backgroundfont-colorweight: #d99694700;">UTXD2PIN27</td> <td>SDA_0</td>
</tr>
<tr>
<td style="backgroundfont-colorweight: #5a5a5a700;">P09PIN8</td> <td>UTXD2</td> <td style="font-weight:700;"> </td> <td style="backgroundfont-colorweight: #5a5a5a700;">GNDPIN28</td> <td>SCL_0</td>
</tr>
<tr>
<td style="backgroundfont-colorweight: #d99694700;">P10PIN9</td> <td>GND</td> <td style="backgroundfont-colorweight: #d99694700;">URXD2 </td> <td style="backgroundfont-colorweight: #d99694700;">GPIO57PIN29</td> <td>SPI_CS</td>
</tr>
<tr>
<td style="backgroundfont-colorweight: #c2d59a700;">P11PIN10</td> <td>URXD2</td> <td style="font-weight:700;"> </td> <td style="backgroundfont-colorweight: #c2d59a700;">URXD1PIN30</td> <td>GND</td>
</tr>
<tr>
<td style="backgroundfont-colorweight: #938a53700;">P12PIN11</td> <td>URXD1</td> <td style="backgroundfont-colorweight: #938a53700;">EINT8 </td> <td style="backgroundfont-colorweight: #938a53700;">EINT8PIN31</td> <td>SPI_CK</td>
</tr>
<tr>
<td style="backgroundfont-colorweight: #c2d59a700;">P13PIN12</td> <td>EINT10/GPIO56</td> <td style="font-weight:700;"> </td> <td style="backgroundfont-colorweight: #c2d59a700;">UTXD1PIN32</td> <td>EINT15/GPIO90</td>
</tr>
<tr>
<td style="backgroundfont-colorweight: #5a5a5a700;">P14PIN13</td> <td>UTXD1</td> <td style="font-weight:700;"> </td> <td style="backgroundfont-colorweight: #5a5a5a700;">GNDPIN33</td> <td>SPI_MO</td>
</tr>
<tr>
<td style="backgroundfont-colorweight: #c2d59a700;">P15PIN14</td> <td>GND</td> <td style="font-weight:700;"> </td> <td style="backgroundfont-colorweight: #c2d59a700;">UCTS1PIN34</td> <td>GND</td>
</tr>
<tr>
<td style="backgroundfont-colorweight: #f9c090700;">P16PIN15</td> <td>EINT2/GPIO128/PW A</td> <td style="backgroundfont-colorweight: #f9c090700;">EINT9 </td> <td style="backgroundfont-colorweight: #f9c090700;">EINT9PIN35</td> <td>SPI_MI</td>
</tr>
<tr>
<td style="backgroundfont-colorweight: #5a5a5a700;">P17PIN16</td> <td>EINT12/GPIO58</td> <td style="font-weight:700;"> </td> <td style="backgroundfont-colorweight: #5a5a5a700;">VIO28_PMUPIN36</td> <td>GPIO145/PWMBL</td>
</tr>
<tr>
<td style="backgroundfont-colorweight: #f9c090700;">P18PIN17</td> <td>VIO28 PMU</td> <td style="backgroundfont-colorweight: #f9c090700;">EINT11 </td> <td style="backgroundfont-colorweight: #f9c090700;">EINT11PIN37</td> <td>EINT3/GPIO27</td>
</tr>
<tr>
<td style="backgroundfont-colorweight: #92cddd700;">P19PIN18</td> <td>EINT14/GPIO89</td> <td style="backgroundfont-colorweight: #92cddd700;">SPI2_MI </td> <td style="backgroundfont-colorweight: #92cddd700;">EINT3PIN38</td> <td>EINT5/GPIO144/PWM B</td>
</tr>
<tr>
<td style="backgroundfont-colorweight: #5a5a5a700;">P20PIN19</td> <td>GPIO140</td> <td style="font-weight:700;"> </td> <td style="backgroundfont-colorweight: #5a5a5a700;">GNDPIN39</td> <td>GND</td>
</tr>
<tr>
<td style="backgroundfont-colorweight: #92cddd700;">P21PIN20</td> <td style="background-color: #92cddd;">SPI2_MO</td> <td style="background-color: #92cddd;">EINT4</td> </tr> <tr> <td style="background-color: #c2d59a;">P22</td> <td style="background-color: #c2d59a;">URTS1</td> <td></td> </tr> <tr> <td style="background-color: #92cddd;">P23</td> <td style="background-color: #92cddd;">SPI2_CK</td> <td style="background-color: #92cddd;">EINT6</td> </tr> <tr> <td style="background-color: #92cddd;">P24</td> <td style="background-color: #92cddd;">SPI2_CS</td> <td style="background-color: #92cddd;">EINT5</td> </tr> <tr> <td style="background-color: #5a5a5a;">P25</td> <td style="background-color: #5a5a5a;">GND</td> <td></td> </tr> <tr> <td style="background-color: #92cddd;">P26</td> <td style="background-color: #92cddd;">EINT12</td> <td></td> </tr> <tr> <td style="background-color: #528ed4;">P27</td> <td style="background-color: #528ed4;">SDA2</td> <td style="backgroundfont-colorweight: #528ed4700;">GPIO51</td> </tr> <tr> <td style="background-color: #938a53;">P28</td> <td style="background-color: #938a53 ">SCL2</td> <td style="backgroundfont-colorweight: #938a53700;">GPIO52PIN40</td> </tr> <tr> <td style="background-color: #528ed4;">P29</td> <td style="background-color: #528ed4;">SPI_CS</td> <td style="background-color: #528ed4;">GPIO65</td> </tr> <tr> <td style="background-color: #5a5a5a;">P30</td> <td style="background-color: #5a5a5a;">GND</td> <td></td> </tr> <tr> <td style="background-color: #528ed4;">P31</td> <td style="background-color: #528ed4;">SPI_CK</td> <td style="background-color: #528ed4;">GPIO66</td> </tr> <tr> <td style="background-color: #d99694;">P32</td> <td style="background-color: #d99694;">URTS2</td> <td style="background-color: #d99694;">GPIO60</td> </tr> <tr> <td style="background-color: #528ed4;">P33</td> <td style="background-color: #528ed4;">SPI_MO</td> <td style="background-color: #528ed4;">PA9</td> </tr> <tr> <td style="background-color: #5a5a5a;">P34</td> <td style="background-color: #5a5a5a;">GND</td> <td></td> </tr> <tr> <td style="background-color: #528ed4;">P35</td> <td style="background-color: #528ed4;">SPI_MI</td> <td style="background-color: #528ed4;">GPIO67</td> </tr> <tr> <td style="background-color: #d99694;">P36</td> <td style="background-color: #d99694;">UCTS2</td> <td style="background-color: #d99694;">GPIO59</td> </tr> <tr> <td style="background-color: #938a53;">P37</td> <td style="background-color: #938a53;">EINT_123</td> <td style="background-color: #938a53;">GPIO123</td> </tr> <tr> <td style="background-color: #938a53;">P38</td> <td style="background-color: #938a53;">SCL3</td> <td style="background-color: #938a53;">GPIO54</td> </tr> <tr> <td style="background-color: #5a5a5a;">P39</td> <td style="background-color: #5a5a5a;">GND</td> <td></td> </tr> <tr> <td style="background-color: #938a53;">P40</td> <td style="background-color: #938a53;">SDA3</td> <td style="background-color: #938a53;">GPIO53GPIO141</td>
</tr>
</table>
<br><br>接口详情视图:<br><br/div>[[Image:4G-Iot-1.png]]<br>[[Image:4G-Iot-2.png]]<br><br>
== 快速入门 ==
=== 准备硬件与软件工具 ===
硬件需求:<br>
* Orange Pi 4G3G-IoT 开发板<br>
* 一台编译用的主机,配置最好满足以下条件:<br>
64 位 CPU<br>
40GB 以上的空闲磁盘空间<br>
操作系统为 Ubuntu12.04 以上,最好为 Ubuntu14.04<br>
更详细的内容可以参考 Google 文档 https://source.android.com/source/building<br><br>
软件需求:<br>
* Orange Pi 4G3G-IoT SDK<br>* Orange Pi 4G3G-IoT 固件<br>
* Android 烧录工具<br>
以上软件均可以通过 Mega、百度云盘 的方式获取,详情参见中英文官网:<br>
1)中文版资料的下载网址为 '''http://www.orangepi.orgcn/html/hardWare/computerAndMicrocontrollers/downloadresourcesservice-and-support/<br>Orange-Pi-3G-IoT-B.html''' 2)英文版资料的下载网址为 '''http://www.orangepi.cnorg/html/hardWare/computerAndMicrocontrollers/downloadresourcescnservice-and-support/Orange-Pi-3G-IoT-B.html'''<br><br>
=== 开发板的供电方式 ===
开发板的供电方式有两种:<br>
* DC (5V Micro USB(5V 2A)供电:插入 DC Micro USB 适配器后即可开机。<br>* 电池供电:常用 34.7V 2V 电池,在背面有预留外接电池焊盘点 需要客户自己焊接 , 接上电池之后按开机键即可启动。<br>
=== 拆包说明 ===
收到产品后请将产品的天线从图 1 的位置放到图 2 的位置(或者放到板子外面的位置),不能贴在板子上面以免影响信号。<br><br>
[[Image:4G3G-Iotiot-35.png]]<br><br>
== Android 编译环境搭建 ==
=== 获取 SDK 源码压缩包 ===
为方便客户快速进行开发,OrangePi 有提供不同版本的 SDK 初始压缩包。<br>* '''Android6.0'''<br>下载压缩包,分别对应 OrangePi_4G初始压缩包。下载压缩包,分别对应 OrangePi_3G-IoT_Android6.0_V1IoT_Android4.04.tar.gz.00gz00, OrangePi_4GOrangePi_3G-IoT_Android6.0_V1IoT_Android4.04.tar.gz.01gz01, ...<br>OrangePi_4G...OrangePi_3G-IoT_Android6.0_V1IoT_Android4.04.tar. gz.14 总共 15 gz00 总共8 个分卷压缩包。获取到分卷压缩包后,把所有的压缩包放在一个同一目录下,如:<br>{| class="wikitable" style="width:800px;"|-| 创建目录<br> mkdir OrangePi_4GOrangePi_3G-IOT_Android6IOT_Android4.04<br> 拷贝分卷压缩包<br> cp -rf OrangePi_4GOrangePi_3G-IoT_Android6IoT_Android4.0_V1.04.tar.gz.* <br>OrangePi_4GOrangePi_3G-IOT_Android6IOT_Android4.04/<br> 合并压缩包<br> cat OrangePi_4GOrangePi_3G-IoT_Android6.0_V1IoT_Android4.04.tar.gz.* ><br>OrangePi_4GOrangePi_3G-IOT_Android6IOT_Android4.04.tar.gz<br> 解压<br> tar xzvf OrangePi_4GOrangePi_3G-IOT_Android6IOT_Android4.04.tar.gz<br>|}* '''Android8.1'''<br>下载压缩包,分别对应x00, x01, x02, x03 ...x10 总共 11 个分卷压缩包。获取到分卷压缩包后,把所有的压缩包放在一个同一目录下,如:<br>{| class="wikitable" style="width:800px;"|-|创建目录<br>mkdir OrangePi_4G-IOT_Android8.1<br>拷贝分卷压缩包cp -rf x00 x01 x02 ... x10 合并压缩包<br>cat x*>OrangePi_4G-IOT_Android8.1.tar.gz<br>解压<br>tar xzvf OrangePi_4G-IOT_Android8.tar.gz<br>|}
=== 搭建编译环境 ===
可以参考 Google 官方文档: http://source.android.com/source/initializing.html<br>
* '''安装 JDK'''
可以在终端执行如下命令配置环境变量。<br>
* '''安装软件包'''<br>
对于 Ubuntu12.04:<br>
对于 Ubuntu14.04:<br>
至此,我们可以开始进行 SDK 源码的编译。<br><br>
=== 编译 SDK 源码 ===
<big>'''全部编译'''</big><br>
为方便客户进行开发,Orange Pi 提供了一系列的编译脚本。<br>
目录为 SDK/code/orangepi/scripts<br>
auto.sh 为自动编译脚本<br>
clean.sh 为自动清除编译结果脚本<br>tar_img.sh 为打包脚本<br><br>
在 code/orangepi/scripts 目录下,我们执行自动编译脚本:<br>
传入的三个参数含义如下:<br>
#$1 project_info [eg: IoT_bd6737m_35g_b_m0_op_smt_hd720_pcb_v2IoT03L_mt6572_lca_b1258_wg_4g2g_ry_smt_v1.1] <br>#$2 version_info [eg: v00 v01 ...]<br>
#$3 compile_mode [eng:user userdebug eng]<br>
auto.sh带的三个参数含义,在脚本开头部分有详细说明。<br><br>
|-
|$ cd code/orangepi/scripts<br>$ ls anr_LM.sh auto.sh clean.sh codegen.sh init_project.sh tar_img.sh|}auto.sh 为自动编译脚本<br>clean.sh 为自动清除编译结果脚本<br><br> 在 code/orangepi/scripts 目录下,我们执行自动编译脚本:<br>{| classmk -o="wikitable" styleTARGET_BUILD_VARIANT="width:800px;"eng || hexing72_cwet_kk || n k &&
|-
| $ ./auto.sh IoT_k37mv1_bsp_ry_smt_hd720_pcb_v2 v00 mk -o=TARGET_BUILD_VARIANT=eng|| hexing72_cwet_kk || r bootimage
|}
== Android 固件烧录 ==
'''Orange Pi 3G-IoT 开发板''' <br><br>
烧录相关按键与接口如下:<br><br>
[[Image:3G-iot-6.png]]<br><br>
编译完成后固件将汇总在code/IoT03_b1258_32g4g_ry_smt_v1.1或code/IoT03L_b1258_wg_4g2g_ry_smt_v1.1 目录中,<br>
并打包形如 IoT03L_b1258_wg_4g2g_ry_smt_v1.1_20180403182516_v00_eng.zip 名字的压缩包。<br><br>
<div style="background:#f1f1f1;border:1px solid #ddd;padding:5px;width:800px; ">
├── images<br>
│ ├── boot.img<br>
│ ├── lk.bin<br>
│ ├── logo.bin<br>
│ ├── MT6737M_Android_scatterMT6572_Android_scatter.txt<br>│ ├── preloader_bd6737m_35g_b_m0preloader_hexing72_cwet_lca.bin<br>│ ├── ramdisk.img<br>│ ├── ramdisk-recovery.img<br>
│ ├── recovery.img<br>
│ ├── secro.img<br>
│ ├── system.img<br>
│ └── userdata.img<br>
└── modem<br>
├── APDB_MT6735_S01_alps-mp-m0APDB_MT6572_S01_MAIN2.mp1_W171_W10.2124<br>├── _APDB_MT6735_S01_alps-mp-m0_APDB_MT6572_S01_MAIN2.mp1_W171_W10.2124.check<br>└── APDB_MT6735_S01_alps-mp-m0.mp1_W17.21_ENUM</div><br>除此之外,开发者也可通过 Linux_Pack_Firmware 对以上固件进行打包,生成统一固件 update.img。<br>* '''Android8.1'''<br><br>编译完成后固件将汇总在 code/IoT_ry_smt_hd720_pcb_v2 目录中,并打包形如 IoT_ry_smt_hd720_pcb_v2_v09_eng_20180504163653├── APDB_MT6572_S01_MAIN2.tar1_W10.gz 名字的压缩包。<br><div style="background:#f1f1f1;border:1px solid #ddd;padding:5px;width:800px;">$ tree IoT_op_smt_hd720_pcb_v2 IoT_op_smt_hd720_pcb_v224_ENUM<br>├── imagesBPLGUInfoCustomAppSrcP_MT6572_S00_MOLY_WR8_W1315_MD_WG_MP_V47_1_wg_n<br>│ ├── bootcatcher_filter_1_wg_n.imgbin<br>│ ├── cacheDbgInfo_WR8.W1315.MD.img<br>│ ├── lkWG.bin<br>MP_HEXING72_CWET_KK_HSPA_MOLY_WR8_W1315_MD_WG_MP│ ├── logo.bin_V47_2017_10_26_22_35_1_wg_n<br>│ ├── MT6737M_Android_scattermodem_1_wg_n.txtimg<br>│ ├── preloader_k37mv1_bsp└── modem_1_wg_n.bin<br>mak│ ├── recovery.img<br>│ ├── secro.img<br/div>│ ├── system.img<br>│ ├── trustzone.bin<br>│ └── userdata.img此后,请参照执行完 《OrangePi 3G-IoT Android 固件烧录指南》完成固件的烧录。<br>└── modem我们提供已经编译且打包好的镜像分区文件,请根据自身的需求自行下载:<br>├── APDB_MT6735_S01_alps-mp-m0http://www.mp1_W18orangepi.04cn<br>├── _APDB_MT6735_S01_alps-mp-m0.mp1_W18通过如下命令进行Android 4.04.check4 镜像解压<br>└── APDB_MT6735_S01_alps-mp-m0 $ rar x IoT03L_b1258_wg_4g2g_ry_smt_v1.mp1_W181.04_ENUMrar</divbr>即可得到上文中固件清单中的文件。或者也可以参照Android 环境搭建及固件编译部分自行编译。<br>
<big>'''主机操作系统支持:'''</big><br>
* Windows 10<br>
=== 烧录工具介绍 ===
烧录工具为 '''Smart Phone Flash Tool请前往 Tool'''请前往 OrangePi官方网站中 4G3G-IoT 版块下载。<br><br>
本工具有 Windows 和 Linux 版。请根据自己的主机环境选取合适的版本。界面如下:<br><br>
[[Image:4G-Iot-5.png]]<br><br>
<br>
如果你是第一次打开软件,可能会出现 警告显示 scatter file 文件未找到 :<br>
[[Image:4G3G-Iotiot-307.png]]<br><br>
这是正常的。后面我们将手动指定 Scatter File 的路径。点击 OK 后我们进入软件。<br><br>
* <big>'''进入烧录模式'''</big><br>
a.首先切换到 Download 标签页,显示如下:
[[Image:4G3G-Iotiot-318.png]]<br><br>
b.我们点击 Scatter-loading File 一栏的最右侧的 choose并且选择 Scatter File 的路径,如下图
[[Image:4G3G-Iotiot-329.png]]<br><br> c.双击选择后,在下面的分区信息显示部分将会自动填充各个分区文件所在的路径,以及他们将要被烧录的绝对起始地址,如下图双击选择后,在下面的'''分区信息显示部分'''将会自动填充各个分区文件所在的路径,以及他们将要被烧录的绝对起始地址,如下图:[[Image:4G3G-Iotiot-3310.png]]<br><br>
d.在分区信息显示部分的左上角有一个下拉菜单其中有三个选项<br>
Format All + Download //擦除机器内的全部分区信息,并且重新下载选中分区<br>
因为我们的每台机器在出厂的时候都有针对于进行各项参数的校准,在 Format All后会丢失校准信息。<br>
如果不慎出现此情况请联系售后并根据指导通过机器码获取校准参数,并按照《4G-IOT 校准参数导入导出工具和说明》重新烧录校准参数。<br>
e.接下来使用 USB 下载线,连接主机的 USB 与机器的 MircoUSB 接口。右上角红灯亮。戴上跳线帽,具体如下图所示:<br><span style="color[[Image:red;">此时不需要连接 DC 电源。3G-iot-11.png]]</spanbr><br> f.点击 接下来使用 USB 下载线,连接主机的 USB 与机器的 MircoUSB 接口。右上角红灯亮点击 Download 按钮进行下载 [[Image:4G-Iot-34.png]]<br>
g.下载完成后界面如下
[[Image:4G-Iot-35.png]]<br>
h.拔掉USB线。插上DC电源。拔掉USB线。插上 Mirco USB 电源。。
等待5秒将会显示关机充电界面。<br>
长按Power按键5秒后松开,会开机进入系统。<br>
当更新的分区比较多时,第一次开机也会时间稍长(全分区更新的情况开机需要8min),请耐心等待。<br><br>
Window 系统需要下载 SP_Flash_Tool_v5.1644_Win.zip,然后解压安装,就可以烧录固件了。操作方法和 Linux 的一样。<br><br>
==linux 编译环境搭建 === 常见问题 == 获取linux 源码 ===Android8.1 编译工具链使用了全新的 Jack server 来取代以往的编译器工具,所以编译时会出现问题。以下是 Android8.1 编译的常见问题。* <br><brbig>'''1)编译前要先配 Jack serverOrangePi 源码下载器'''<br>1.修改$HOME 路径下的.jack 文件:<br>[[Image:4G-Iot-36.png]]<br><br>2.修改$HOME 路径下的.jack-settings 文件:<br>[[Image:4G-Iot-37.png]]<br>(注:此处两个文件的 TCP 端口号必须是没有用过的,且两个文件的端口配置要相同!)<br><br>3.code/prebuilts/sdk/tools/目录下,执行./jack-admin kill-server 和./jack-admin restart-server<br><br>'''2)Failed to contact Jack server'''<brbig>如果你在编译的过程中,出现了如下的问题:<br> FAILED: /bin/bash $ sudo apt-c "(prebuilts/sdk/tools/jack-admin get install-server prebuilts/sdk/tools/jack-launcher.jargit<br> prebuilts/sdk/tools/jack-server-4.8.ALPHA.jar 2>&1 || (exit 0) ) && <br> (JACK_SERVER_VM_ARGUMENTS=\"-Dfile.encoding=UTF-8-XX$ git clone https:+TieredCompilation\" prebuilts/sdk/tools/jack-admin start-server 2>&1 || exit 0 ) &&<br> (prebuilts/sdk/tools/jack-admin update server prebuilts/sdk/tools/jack-server-4github.8.ALPHA.jar 4.8.ALPHA 2>&1 || exit 0 ) &&<br> (prebuilts/sdk/toolscom/jackorangepi-admin update jack prebuiltsxunlong/sdk/tools/jacks/jack-2OrangePi_Build.28.RELEASE.jar 2.28.RELEASE || exit 47; prebuilts/sdk/tools/jack-admingit<br> update jack prebuilts/sdk/tools/jacks/jack-3.36.CANDIDATE.jar 3.36.CANDIDATE || exit 47; prebuilts/sdk/tools/jack-admin update jack$ cd OrangePi_Build<br> prebuilts/sdk/tools/jacks/jack-4.7.BETA.jar 4.7.BETA || exit 47 )"$ ls<br> Writing client settings in /home/user3/Build_OrangePi.jack-settings<br> Installing jack server in "/home/user3/sh lib README.jack-server"md
<br>
* <big>'''4)FAILED: setup-jack-server运行下载器'''<br/big>Jack server installation not found<br>解决方法:到 prebuilts/sdk/tools 目录下执行一下这个命令: $ ./jack-admin install-server jack-launcher.jar jack-server-4.11.ALPHA.jar<br>jack-launcher.jar,jack-server-4Build_OrangePi.11.ALPHA.jar 这两个文件的名字视 prebuilts/sdk/tools 目录下的文件名而定。<br><br>sh
输入 root 密码,然后回车<br>
[[Image:4G-Iot-52.png]]<br><br>
选择 0 Build system with kernel/uboot/rootfs,进入开发板型号选择界面。<br>
[[Image:4G-Iot-53.png]]<br><br>
选择 23 22 orangepi 4G3G-IoT,回车后将会开始下载 iot,回车后将会开始下载 Orange Pi 4G3G-IoT iot 的 Linux 源码<br>[[Image:4G3G-Iotiot-5413.png]]<br><br>
下载的源码会存放在 OrangePi_Build 的同级目录下。<br><br>
OrangePi 4G3G-IoT 的 Linux 源码目录结构如下所示<br>
<div style="background:#f1f1f1;border:1px solid #ddd;padding:5px; width:800px;">
├── external <br>
├── kernel<br>
├── output Store the output file, generate it after compiling the source code<br>
├── scripts<br>
└── toolchain<br>
=== 编译linux 源码 ===
* <big>'''执行编译启动脚本'''</big><br>
根据板子型号选择并回车<br><br>
[[Image:4G3G-Iotiot-3814.png]]<br><br>
输入 root 密码并回车,然后选择需要执行的功能<br><br>
[[Image:4G-Iot-39.png]]<br><br>
* '''2 Build Uboot 编译 preloader 和 lk'''
* '''3 Build Linux 编译内核源码'''<br>
<div style="background:#f1f1f1;border:1px solid #ddd;padding:5px;width:800px;">
output/images/<br>
├── OrangePi_4gOrangePi_3g-iot_ubuntu_xenial_server_linux3iot-A_ubuntu_xenial_server_linux3.184.19_v167_v1.1<br>
│ ├── boot.img<br>
│ ├── boot_nand.img<br>
│ ├── boot_sd.img<br>
│ ├── lk.bin<br>
│ ├── logo.bin<br>
│ ├── MT6737M_Android_scatterMT6572_Android_scatter.txt<br>│ ├── preloader_bd6737m_35g_b_m0preloader_hexing72_cwet_lca.bin<br>
│ ├── rootfs.img<br>
<br>
</div>
<br>
== Linux 系统的烧录 ==
目前 Linux 系统不支持 modem、LCD 屏。<br>
只能通过串口登录系统,连接 wifi 后,可通过 ssh 登录。<br>烧录系统时,跳线帽接法如下。<br>[[Image:3G-iot-16.png]]<br><br> === 3G-IoT-A 的linux 固件烧录 ===通过烧录工具把 preloader、lk、boot.img 烧录到板载 nand flash 上。<br><div style="border:1px solid #dddddd;background:#f1f1f1;padding:5px;">├── boot.img<br>├── boot_nand.img<br>├── boot_sd.img<br>├── lk.bin<br>├── logo.bin<br>├── MT6572_Android_scatter.txt<br>├── preloader_hexing72_cwet_lca.bin<br>└── rootfs.img</div><br><br>
前面的《安卓固件烧录》已经介绍了如何使用烧录工具了,这里不再赘述,直接打开烧录工具。<br>
a.'''我们点击Scatter-loading File一栏的最右侧的choose并且选择Scatter File的路径''',如下图File的路径,如下图[[Image:4G3G-Iotiot-6017.png]]<br><br> b.'''先断开板子与 PC 的连接,点击 Download 按钮'''[[Image:4G3G-Iotiot-6118.png]]<br><br> c.'''接下来使用 USB 下载线,连接主机的 USB 与机器的 MircoUSB 接口'''。烧录完成接口。[[Image:4G3G-Iotiot-6219.png]]<br><br> d.'''启动系统'''。前面仅烧录了lk 和 kernel,由于 3G-iot-A 只有 512M 的板载存储,存在空间不足的问题,所以需要把 rootfs 烧录到 TF 卡上,准备一张 8G 以上,class10 的 TF 卡。格式化后。按照以下方法烧录 roofs.img<br> pv rootfs.img | sudo dd of=/dev/sdb bs=1Msdb 是 TF 卡对应的设备文件<br>将板子连接 5V 3A 的电源适配器。连接串口可以看到系统启动。如果是在 windows 系统,也可以用 Win32DiskImager 软件烧录。<br> e.将 tf 卡插入板子,上电即可启动。[[Image:3G-iot-20.png]]<br><br> === 3G- IoT -B 的 linux 固件烧录 ===该板子有 4G的板载存储,所以可以直接将所有镜像烧到板载 EMMC 上。<br><br> a.我们点击 Scatter-Iotloading File 一栏的最右侧的 choose 并且选择 Scatter File 的路径,如下图[[Image:3G-iot-6321.png]]<br><br>如果板载空间不够,可以将 rootfs 烧录到 TF 卡上。步骤如下。 b.先断开板子与 PC 的连接,点击 Download 按钮[[Image:3G-iot-22.png]]<br><br> c.接下来使用 USB 下载线,连接主机的 USB 与机器的 MircoUSB 接口。烧录完成[[Image:3G-iot-23.png]]<br><br> ed.启动系统。 将板子连接 5V2A 的电源适配器。连接串口可以看到系统启动。[[Image:3G-iot-24.png]]<br><br>'''烧录支持挂载TF卡rootfs的lk如果板载空间不够,可以将 rootfs 烧录到 TF 卡上。步骤如下。''' a.烧录支持挂载 TF 卡 rootfs 的 boot.img 点击下图框中内容<br><br>[[Image:4G3G-Iotiot-6425.png]]<br><br>弹出窗口选择 lk_sdboot_sd.bin。img。<br><br>[[Image:4G3G-Iotiot-6526.png]]<br><br>点击 download,下载完成下载完成<br>[[Image:3G-iot-27.png]]<br><br> fb.'''烧录 rootfs 到 TF 卡中'''
准备一张 8G 以上,class10 的 TF 卡。格式化后。按照以下方法烧录 roofs.img<br>
pv rootfs.img | sudo dd of=/dev/sdb bs=1M
sdb 是 TF 卡对应的设备文件<br>
如果是在 windows 系统,也可以用 Win32DiskImager 软件烧录。<br><br> gc.启动系统
将 tf 卡插入板子,上电即可启动。<br><br>
== 串口调试工具介绍 串口调试工具 ==首先需要准备一根 USB 转 TTL 串口线,需要支持 921600 波特率4G波特率。3G-IoT 的调试串口没有引出,需要用户自己飞线,如下图方框的焊点就是串口的 TXD和 RXD,需要将 GND、RXD、TXD 引出来。<br>iot 的调试串口为串口 1,已引出到 40pin,波特率为 921600 。按下图接好串口线,不同颜色的线对应的功能如下:<br>* 黑色——GND* 绿色——RX* 白色——TX[[Image:4G3G-Iotiot-4115.png]]<br><br>接线方式:<br> 板子 TXD 接 USB 转 TTL 的 RXD <br>板子 RXD 接 USB 转 TTL 的 TXD <br>板子 GND 接 USB 转 TTL 的 GND <br><br>
=== 基于Windows 平台的使用 ===
在使用 OrangePi 做项目开发过程中,为了获得更多的调试信息,OrangePi 默认支持串口信息调试。对于开发者而言,只需准备上面提到的材料,即可简单的获得串口调试信息。<br>
不同的上位机使用的串口调试工具大同小异,基本可以参考下文的方法进行部署。使用 Windows 平台进行串口调试的工具很多,通常使用的工具是putty。<br>本节以 通常使用的工具是putty。本节以 putty 作为例子进行部署讲解。<br><br>
* <big>'''安装 USB 驱动'''</big><br>
下载最新版的驱动 PL2303_Prolific_DriverInstaller_v130.zip,下载解压<br><br>
* <big>'''下载安装 Putty'''</big><br>
Putty 可从下面的地址下载,请选择适合自己开发环境的版本。<br>
直接双击下载的 putty.exe 即可打开 putty,软件界面如下图所示。<br>
[[Image:4G-Iot-48.png]]<br><br>
在 Linux 平台使用 putty 和 Windows 平台区别不太,下面主要说明有差异地方的操作步骤。所有操作都是基于 Ubuntu 14.04 系统。<br><br>
* <big>'''安装并启动 Putty'''</big><br>
* <big>'''配置 Putty'''</big><br>
串口号可以通过 ls '''/dev/ttyUSB*''' 查看波特率需要设置为 921600 并且关闭流控<br><br>
[[Image:4G-Iot-51.png]]<br><br>
== GPIO 调试 其他设置 ==GPIO 调试有两种方法:<br><br>=== 连接wifi 上网 ===1.Linux 下面有一个通用的 GPIO 操作接口,那就是我要介绍的“/sys/class/gpio”方式。配置无线,首先要知道 ssid 和 psk(账号,密码),输入对应的 wlan*,ssid,psk <br>GPIO 的配置文件在$ sudo vi /sysetc/classnetwork/gpio 目录下,控制程序可以分为四个步骤:interfaces (添加如下内容)<br><br>①、配置 GPIO:auto wlan0<br>在/sys/class/gpio 目录下可以看到文件 export,调用该文件以实现配置。该文件对所有 GPIO 编号,40pin GPIO 口,可通过原理图或手册获取。iface wlan0 inet dhcp wpa-ssid xxxx<br>如 40pin 的第 37 个 pin 脚是 GPIO123 在终端输入: # echo 123 > /sys/class/gpio/export , 在此回到目录/sys/class/gpio 下,可以看到产生了wpa-psk xxxx<br>一个新的目录.之后执行/gpio123,里面包含了该 IO 口的输入输出设置等配置文件。注意:export 文件只有 root 写权限,执行上述命令或者以后用 C 编写的<br>可执行文件要以 ROOT 身份执行。<br><br>②、设置 GPIO 的方向(输入输出):<br>在终端输入:# echo "out" > etc/sys/class/gpio/gpio38init.d/direction,即设置该 GPIO 为输出。networking restart,无线即可连接上<br><br>③、设置 GPIO 的输出电平:<br>在终端输入:#echo 1 > /sys/class/gpio/gpio123/value,即设置 === GPIO 输出高电平,输入 echo "0" > /sys/class/gpio/gpio123/value 设置 GPIO 输出低电平。<br>操作 ===④、关闭 GPIO:<br>在终端输入:#echo "38" > /sys/class/gpio/unexport,即删除 GPIO 配置文件,可以看到目录 gpio38 已经被删除.<br><br>2.MTK 用 ADB 修改和显示 GPIO 状态<br>获取 GPIO 的状态, cat /sys/devices/virtual/misc/mtgpio/pin<br><br>在 adb 下面直接执行 cat /sys/devices/virtual/misc/mtgpio/pin 命令则显示:<br>pin:[mode] [pull_sel] [din] [dout] [pull en] [dir] [ies] [smt]<br><br>0:11101010<br><br>1:01101010<br><br>、、、、、、<br><br>22:1-100-10-1-1<br><br>、、、、、、、<br><br>
42:00000110<br><br>
每行分别对应:<br><br>
IO 编号:模式,输入上拉选择,输入值,输出值,输入上拉使能,方向 direction, 输入翻转<br><br>
修改 GPIO 的状态:<br><br>
40pin GPIO 口,可通过原理图或手册获取,如 40pin 的第 37 个 pin 脚是 GPIO123, <br>
echo -wdout123 1> pin 即设置该 GPIO 输出高电平<br>echo -wdout123 0> pin 即设置该 GPIO 输出低电平<br><br>
== 版本历史 ==
! 版本 !! 日期 !! 作者 !! 摘要 !! 发布 !! 备忘录
|-
| 1.1 || 2018-0105-26 25 || Younix 潘明敏 || 创建文档 || 2018-3-27 || -|6-| 1.2 14 || 2018-05-10 || Pan || 增加 Android8.1|| 2018-5-18 || -
|-
| 1.3 2 || 2018-10-18 || Pan 潘明敏 || GPIO 定义及调试 调试 || 2018-10-19 || -
|-
| 1.4 || 2019-0604-24 15 || Csy || Linux 源码编译及串口调试 || - || -
|-
| 1.5 || 2020-033-18 || Csy || 增加 Linux 系统烧录说明 固件烧录 || - || -
|}
<br>
<br>
== 下载Orange Pi 3G-IoT用户手册 ==
<br>
更多关于Orange Pi 3G-IoT的使用信息,请查看 [http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-3G-IoT-B.html Orange Pi 3G-IoT用户手册](下载-产品使用说明书)<br><br>