1# 搭建环境<a name="ZH-CN_TOPIC_0000001054781998"></a> 2 3## 环境要求<a name="section466851916410"></a> 4 5## 硬件要求<a name="section07318322310"></a> 6 7- Linux服务器 8- Windows工作台(主机电脑) 9- BearPi-HM_Nano开发板 10- USB Type-C线(Windows工作台通过USB与BearPi-HM_Nano开发板组连接) 11 12各硬件连接关系如下图所示。 13 14**图 1** 硬件连线图<a name="fig1651211924914"></a> 15![](figures/硬件连线图.png "硬件连线图") 16 17## 软件系统要求<a name="section182305581332"></a> 18 19**表 1** BearPi-HM_Nano开发板开发平台要求 20 21<a name="tc50585b2b3fe43f7835154789b0e25af"></a> 22<table><thead align="left"><tr id="ra9df6acc53154b819d5f86d885d994de"><th class="cellrowborder" valign="top" width="12.41%" id="mcps1.2.5.1.1"><p id="a999bb40532eb4f74a7383e1e776bb94a"><a name="a999bb40532eb4f74a7383e1e776bb94a"></a><a name="a999bb40532eb4f74a7383e1e776bb94a"></a>硬件</p> 23</th> 24<th class="cellrowborder" valign="top" width="12.389999999999999%" id="mcps1.2.5.1.2"><p id="ae63cf791fbe348d3b907d20fc4927df8"><a name="ae63cf791fbe348d3b907d20fc4927df8"></a><a name="ae63cf791fbe348d3b907d20fc4927df8"></a>软件</p> 25</th> 26<th class="cellrowborder" valign="top" width="46.21%" id="mcps1.2.5.1.3"><p id="a54c4c80c43c84cb187342865a1d2b51e"><a name="a54c4c80c43c84cb187342865a1d2b51e"></a><a name="a54c4c80c43c84cb187342865a1d2b51e"></a>描述</p> 27</th> 28<th class="cellrowborder" valign="top" width="28.99%" id="mcps1.2.5.1.4"><p id="a11e8d096fb204378a63d8805cd6d1f88"><a name="a11e8d096fb204378a63d8805cd6d1f88"></a><a name="a11e8d096fb204378a63d8805cd6d1f88"></a>备注</p> 29</th> 30</tr> 31</thead> 32<tbody><tr id="row117591159175819"><td class="cellrowborder" valign="top" width="12.41%" headers="mcps1.2.5.1.1 "><p id="a0c1290183f2548898dbfc516a4db2c4b"><a name="a0c1290183f2548898dbfc516a4db2c4b"></a><a name="a0c1290183f2548898dbfc516a4db2c4b"></a>Linux编译服务器</p> 33</td> 34<td class="cellrowborder" valign="top" width="12.389999999999999%" headers="mcps1.2.5.1.2 "><p id="a687efa8001f140488dc1da9a2ee8f6d1"><a name="a687efa8001f140488dc1da9a2ee8f6d1"></a><a name="a687efa8001f140488dc1da9a2ee8f6d1"></a>操作系统</p> 35</td> 36<td class="cellrowborder" valign="top" width="46.21%" headers="mcps1.2.5.1.3 "><p id="ace724e00c9094eccb8c600d6ad426ed8"><a name="ace724e00c9094eccb8c600d6ad426ed8"></a><a name="ace724e00c9094eccb8c600d6ad426ed8"></a>Ubuntu16.04及以上64位系统版本,Shell使用bash</p> 37</td> 38<td class="cellrowborder" rowspan="2" valign="top" width="28.99%" headers="mcps1.2.5.1.4 "><p id="a4d0e2c8444484554ab58949ce322be32"><a name="a4d0e2c8444484554ab58949ce322be32"></a><a name="a4d0e2c8444484554ab58949ce322be32"></a>开发人员可以在Windows工作台中进行程序开发,或者远程登录到Linux服务器进行程序开发。</p> 39</td> 40</tr> 41<tr id="r85c4bf56ff3244e48db9d2f5b622b340"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="a8e99fd0262cb4489b70cf86c2144c294"><a name="a8e99fd0262cb4489b70cf86c2144c294"></a><a name="a8e99fd0262cb4489b70cf86c2144c294"></a>Windows工作台</p> 42</td> 43<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="a44d6164ce2e9421f9ade362f600c2815"><a name="a44d6164ce2e9421f9ade362f600c2815"></a><a name="a44d6164ce2e9421f9ade362f600c2815"></a>操作系统</p> 44</td> 45<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="a1c17349e334a44ada5c5f150457fe17d"><a name="a1c17349e334a44ada5c5f150457fe17d"></a><a name="a1c17349e334a44ada5c5f150457fe17d"></a>Windows XP/Windows7/Windows10</p> 46</td> 47</tr> 48</tbody> 49</table> 50 51## Linux构建工具要求<a name="section20374218687"></a> 52 53Linux服务器通用环境配置需要的工具及其获取途径如下表所示。 54 55**表 2** Linux服务器开发工具及获取途径 56 57<a name="table6299192712513"></a> 58<table><thead align="left"><tr id="row122993276512"><th class="cellrowborder" valign="top" width="25.562556255625562%" id="mcps1.2.4.1.1"><p id="p1829914271858"><a name="p1829914271858"></a><a name="p1829914271858"></a>开发工具</p> 59</th> 60<th class="cellrowborder" valign="top" width="20.7020702070207%" id="mcps1.2.4.1.2"><p id="p429918274517"><a name="p429918274517"></a><a name="p429918274517"></a>用途</p> 61</th> 62<th class="cellrowborder" valign="top" width="53.73537353735374%" id="mcps1.2.4.1.3"><p id="p12997271757"><a name="p12997271757"></a><a name="p12997271757"></a>获取途径</p> 63</th> 64</tr> 65</thead> 66<tbody><tr id="row1829915274517"><td class="cellrowborder" valign="top" width="25.562556255625562%" headers="mcps1.2.4.1.1 "><p id="p1629902717511"><a name="p1629902717511"></a><a name="p1629902717511"></a>交叉编译器gcc_riscv32</p> 67</td> 68<td class="cellrowborder" valign="top" width="20.7020702070207%" headers="mcps1.2.4.1.2 "><p id="p1219863434519"><a name="p1219863434519"></a><a name="p1219863434519"></a>交叉编译工具</p> 69</td> 70<td class="cellrowborder" valign="top" width="53.73537353735374%" headers="mcps1.2.4.1.3 "><p id="p165031126103215"><a name="p165031126103215"></a><a name="p165031126103215"></a><a href="https://pan.baidu.com/s/1bp2ypAfH2HaNPTY2KwEhEA" target="_blank" rel="noopener noreferrer">https://pan.baidu.com/s/1bp2ypAfH2HaNPTY2KwEhEA </a>提取码:1234 </p> 71</td> 72</tr> 73<tr id="row430016273514"><td class="cellrowborder" valign="top" width="25.562556255625562%" headers="mcps1.2.4.1.1 "><p id="p330015271158"><a name="p330015271158"></a><a name="p330015271158"></a>Python3.7+</p> 74</td> 75<td class="cellrowborder" valign="top" width="20.7020702070207%" headers="mcps1.2.4.1.2 "><p id="p43003270510"><a name="p43003270510"></a><a name="p43003270510"></a>编译构建工具</p> 76</td> 77<td class="cellrowborder" valign="top" width="53.73537353735374%" headers="mcps1.2.4.1.3 "><p id="p18254155164617"><a name="p18254155164617"></a><a name="p18254155164617"></a><a href="https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz" target="_blank" rel="noopener noreferrer">https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz</a></p> 78</td> 79</tr> 80<tr id="row1397335913612"><td class="cellrowborder" valign="top" width="25.562556255625562%" headers="mcps1.2.4.1.1 "><p id="p097355911620"><a name="p097355911620"></a><a name="p097355911620"></a>SCons3.0.4+</p> 81</td> 82<td class="cellrowborder" valign="top" width="20.7020702070207%" headers="mcps1.2.4.1.2 "><p id="p1973195917619"><a name="p1973195917619"></a><a name="p1973195917619"></a>编译构建工具</p> 83</td> 84<td class="cellrowborder" valign="top" width="53.73537353735374%" headers="mcps1.2.4.1.3 "><p id="p1722663441514"><a name="p1722663441514"></a><a name="p1722663441514"></a>通过互联网获取</p> 85</td> 86</tr> 87<tr id="row42668197206"><td class="cellrowborder" valign="top" width="25.562556255625562%" headers="mcps1.2.4.1.1 "><p id="p426711912014"><a name="p426711912014"></a><a name="p426711912014"></a>bash</p> 88</td> 89<td class="cellrowborder" valign="top" width="20.7020702070207%" headers="mcps1.2.4.1.2 "><p id="p14267131962014"><a name="p14267131962014"></a><a name="p14267131962014"></a>命令处理器</p> 90</td> 91<td class="cellrowborder" valign="top" width="53.73537353735374%" headers="mcps1.2.4.1.3 "><p id="p14267101962014"><a name="p14267101962014"></a><a name="p14267101962014"></a>通过互联网获取</p> 92</td> 93</tr> 94<tr id="row1463517494402"><td class="cellrowborder" valign="top" width="25.562556255625562%" headers="mcps1.2.4.1.1 "><p id="p258814561424"><a name="p258814561424"></a><a name="p258814561424"></a>build-essential</p> 95</td> 96<td class="cellrowborder" valign="top" width="20.7020702070207%" headers="mcps1.2.4.1.2 "><p id="p1749611716181"><a name="p1749611716181"></a><a name="p1749611716181"></a>编译依赖的基础软件包</p> 97</td> 98<td class="cellrowborder" valign="top" width="53.73537353735374%" headers="mcps1.2.4.1.3 "><p id="p8635174916403"><a name="p8635174916403"></a><a name="p8635174916403"></a>通过互联网获取</p> 99</td> 100</tr> 101<tr id="row1711946154018"><td class="cellrowborder" valign="top" width="25.562556255625562%" headers="mcps1.2.4.1.1 "><p id="p15588165684216"><a name="p15588165684216"></a><a name="p15588165684216"></a>gn</p> 102</td> 103<td class="cellrowborder" valign="top" width="20.7020702070207%" headers="mcps1.2.4.1.2 "><p id="p4588135634213"><a name="p4588135634213"></a><a name="p4588135634213"></a>产生ninja编译脚本</p> 104</td> 105<td class="cellrowborder" valign="top" width="53.73537353735374%" headers="mcps1.2.4.1.3 "><p id="p10572194318318"><a name="p10572194318318"></a><a name="p10572194318318"></a><a href="https://pan.baidu.com/s/1bp2ypAfH2HaNPTY2KwEhEA" target="_blank" rel="noopener noreferrer">https://pan.baidu.com/s/1bp2ypAfH2HaNPTY2KwEhEA </a>提取码:1234</p> 106</td> 107</tr> 108<tr id="row16990164213404"><td class="cellrowborder" valign="top" width="25.562556255625562%" headers="mcps1.2.4.1.1 "><p id="p1858825613428"><a name="p1858825613428"></a><a name="p1858825613428"></a>ninja</p> 109</td> 110<td class="cellrowborder" valign="top" width="20.7020702070207%" headers="mcps1.2.4.1.2 "><p id="p15844174611816"><a name="p15844174611816"></a><a name="p15844174611816"></a>执行ninja编译脚本</p> 111</td> 112<td class="cellrowborder" valign="top" width="53.73537353735374%" headers="mcps1.2.4.1.3 "><p id="p377581023312"><a name="p377581023312"></a><a name="p377581023312"></a><a href="https://pan.baidu.com/s/1bp2ypAfH2HaNPTY2KwEhEA" target="_blank" rel="noopener noreferrer">https://pan.baidu.com/s/1bp2ypAfH2HaNPTY2KwEhEA </a>提取码:1234</p> 113</td> 114</tr> 115</tbody> 116</table> 117 118## Windows开发工具要求<a name="section11161833102716"></a> 119 120**表 3** Windows工作台开发工具及获取途径 121 122<a name="table1313323311274"></a> 123<table><thead align="left"><tr id="row3133133312711"><th class="cellrowborder" valign="top" width="16.371637163716375%" id="mcps1.2.4.1.1"><p id="p16132203372716"><a name="p16132203372716"></a><a name="p16132203372716"></a>开发工具</p> 124</th> 125<th class="cellrowborder" valign="top" width="50.29502950295029%" id="mcps1.2.4.1.2"><p id="p1413219339278"><a name="p1413219339278"></a><a name="p1413219339278"></a>用途</p> 126</th> 127<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.2.4.1.3"><p id="p17133183312711"><a name="p17133183312711"></a><a name="p17133183312711"></a>获取途径</p> 128</th> 129</tr> 130</thead> 131<tbody><tr id="row138432533451"><td class="cellrowborder" valign="top" width="16.371637163716375%" headers="mcps1.2.4.1.1 "><p id="p163612016916"><a name="p163612016916"></a><a name="p163612016916"></a>Visual Studio Code</p> 132</td> 133<td class="cellrowborder" valign="top" width="50.29502950295029%" headers="mcps1.2.4.1.2 "><p id="p1563690791"><a name="p1563690791"></a><a name="p1563690791"></a>代码编辑工具。</p> 134</td> 135<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p146361701097"><a name="p146361701097"></a><a name="p146361701097"></a><a href="https://code.visualstudio.com/" target="_blank" rel="noopener noreferrer">https://code.visualstudio.com/</a></p> 136</td> 137 138</tr> 139<tr id="row18342145821513"><td class="cellrowborder" valign="top" width="16.371637163716375%" headers="mcps1.2.4.1.1 "><p id="p123421958131517"><a name="p123421958131517"></a><a name="p123421958131517"></a>MobaXterm、PuTTY或其他超级终端(选其一)</p> 140</td> 141<td class="cellrowborder" valign="top" width="50.29502950295029%" headers="mcps1.2.4.1.2 "><p id="p18342658131511"><a name="p18342658131511"></a><a name="p18342658131511"></a>远程连接Linux编译服务器,连接模组串口工具。</p> 142</td> 143<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p17342125851518"><a name="p17342125851518"></a><a name="p17342125851518"></a>通过互联网获取(如:<a href="https://mobaxterm.mobatek.net/" target="_blank" rel="noopener noreferrer">https://mobaxterm.mobatek.net/</a>)</p> 144</td> 145</tr> 146<tr id="row244884215147"><td class="cellrowborder" valign="top" width="16.371637163716375%" headers="mcps1.2.4.1.1 "><p id="p1044974291416"><a name="p1044974291416"></a><a name="p1044974291416"></a>CH341SER.EXE</p> 147</td> 148<td class="cellrowborder" valign="top" width="50.29502950295029%" headers="mcps1.2.4.1.2 "><p id="p94491342131413"><a name="p94491342131413"></a><a name="p94491342131413"></a>USB转串口驱动。</p> 149</td> 150<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p6449184214148"><a name="p6449184214148"></a><a name="p6449184214148"></a><a href="http://www.wch.cn/search?q=ch340g&t=downloads" target="_blank" rel="noopener noreferrer">http://www.wch.cn/search?q=ch340g&t=downloads</a></p> 151</td> 152</tr> 153<tr id="row18342145821513"><td class="cellrowborder" valign="top" width="16.371637163716375%" headers="mcps1.2.4.1.1 "><p id="p123421958131517"><a name="p123421958131517"></a><a name="p123421958131517"></a>Hiburn烧录工具</p> 154</td> 155<td class="cellrowborder" valign="top" width="50.29502950295029%" headers="mcps1.2.4.1.2 "><p id="p18342658131511"><a name="p18342658131511"></a><a name="p18342658131511"></a>代码烧录工具。</p> 156</td> 157<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.2.4.1.3 "><p id="p6449184214148"><a name="p6449184214148"></a><a name="p6449184214148"></a><a href="https://pan.baidu.com/s/1bp2ypAfH2HaNPTY2KwEhEA" target="_blank" rel="noopener noreferrer">https://pan.baidu.com/s/1bp2ypAfH2HaNPTY2KwEhEA</a>密码:1234</p> 158</td> 159</tr> 160</tbody> 161</table> 162 163## 安装编译基础环境<a name="section497484245614"></a> 164 165## 连接Linux服务器<a name="section15541530155711"></a> 166 167使用Windows远程登录Linux,以MobaXterm工具为例: 168 1691. 打开[MobaXterm工具](https://mobaxterm.mobatek.net/), 输入Linux服务器IP地址,后点击“OK”,打开连接。 170 171 **图 2** MobaXterm界面示例图<a name="f825e6d7569cc487db9b744e454c7157a"></a> 172 173 ![](figures/MobaXterm登录服务器.png "MobaXterm登录服务器") 174 1752. 弹框告警选择“是\(Y\)”。 1763. 弹出界面中输入账号并按回车键,继续输入密码并回车键。 177 178 **图 3** 登录界面图<a name="fe1428afffbdd45f9b4a39497691ff5ff"></a> 179 ![](figures/Linux服务器登录.png "Linux服务器登录") 180 1814. 登录成功。 182 183 **图 4** 登录成功界面<a name="f11bea69483e14bd39fef4a10b1ed1a3a"></a> 184 ![](figures/Linux服务器登录成功.png "Linux服务器登录成功") 185 186 187## 将Linux shell改为bash<a name="section182814544221"></a> 188 189查看shell是否为bash,在终端运行如下命令 190 191``` 192ls -l /bin/sh 193``` 194 195如果为显示为/bin/sh -\> bash则为正常,否则请按以下方式修改: 196 197**方法一**:在终端运行如下命令,然后选择 no。 198 199``` 200sudo dpkg-reconfigure dash 201``` 202 203**方法二**:先删除sh,再创建软链接。 204 205``` 206rm -rf /bin/sh 207sudo ln -s /bin/bash /bin/sh 208``` 209 210## 安装Python环境<a name="section126831816258"></a> 211 2121. 打开Linux编译服务器终端。 2132. 输入命令“python3 --version”,查看Python版本号。需使用python3.7以上版本,否则请按以下步骤执行,以python3.8为例: 214 - 如果Ubuntu 版本为18,运行"sudo apt-get install python3.8" 215 - 如果Ubuntu 版本为16,请以下载包的方式安装python: 216 217 1. python安装环境依赖\(gcc, g++, make, zlib, libffi\)请运行: 218 219 "sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install make && sudo apt-get install zlib\* && sudo apt-get install libffi-dev " 220 221 2. 获取[python3.8.5安装包](https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz),将其放至linux服务器中,运行 : 222 223 "tar -xvzf Python-3.8.5.tgz && cd Python-3.8.5 && sudo ./configure && make && sudo make install" 224 2253. 确定Python-3.8.5安装好后,运行"which python3.8",将回显路径链接到"/usr/bin/python",示例: 226 227 "cd /usr/bin && sudo rm python && sudo ln -s /usr/bin/python3.8 python && python --version" 228 229 若系统存在python3,通过"python3 --version"指令查询版本,若不是3.7以上版本,则还需要执行下面指令 230 231 "cd /usr/bin && sudo rm python3 && sudo ln -s /usr/bin/python3.8 python3 && python3 --version" 232 233 2344. 安装Python包管理工具,运行“sudo apt-get install python3-setuptools python3-pip -y”命令。(需root/sudo权限安装),升级pip3运行"sudo pip3 install --upgrade pip"。 235 236 或按官网方式安装Python包管理工具:下载"curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py"后,再执行"python get-pip.py" 237 238 2395. 安装python模块setuptools,运行"pip3 install setuptools" 2406. 运行“sudo pip3 install kconfiglib”命令,安装GUI menuconfig工具,建议安装Kconfiglib 13.2.0+版本。(需root/sudo权限安装)。 241 242 或者按以下方法安装Kconfiglib 13.2.0+。 243 244 1. 下载.whl文件(例如:kconfiglib-13.2.0-py2.py3-none-any.whl)。 245 246 下载路径:“[https://pypi.org/project/kconfiglib\#files](https://pypi.org/project/kconfiglib#files)” 247 248 249 1. 运行“sudo pip3 install kconfiglib-xxx.whl”命令(例如:sudo pip3 install kconfiglib-13.2.0-py2.py3-none-any.whl),安装.whl文件(需root/sudo权限安装)。 250 2. 可能会遇到错误:"subprocess.CalledProcessError: Command '\('lsb\_release', '-a'\)' returned non-zero exit status 1.",解决方法:"find / -name lsb\_release",找到lsb\_release位置并删除,如:"rm -rf /usr/bin/lsb\_release" 251 2527. 安装pycryptodome。运行“sudo pip3 install pycryptodome”命令,或者按照以下方式安装: 253 254 >![](public_sys-resources/icon-note.gif) **说明:** 255 >- 安装升级文件签名依赖的Python组件包,包括:pycryptodome、six、ecdsa。 256 >- 安装ecdsa依赖six,请按文档要求,先安装six,再安装ecdsa。 257 258 1. 下载.whl文件(例如:pycryptodome-3.7.3-cp37-cp37m-manylinux1\_x86\_64.whl)。 259 260 下载路径:“[https://pypi.org/project/pycryptodome/\#files](https://pypi.org/project/pycryptodome/#files)”。 261 262 263 1. 运行“sudo pip3 install pycryptodome-xxx.whl”命令(例如:sudo pip3 install pycryptodome-3.7.3-cp37-cp37m-manylinux1\_x86\_64.whl),安装.whl文件(需root/sudo权限安装)。 264 265 安装完成后界面会提示“Successfully installed pycryptodome-3.7.3”。 266 2678. 安装six。运行"sudo pip3 install six --upgrade --ignore-installed six"或者按照以下方式安装: 268 269 1. 下载.whl文件(例如:six-1.12.0-py2.py3-none-any.whl)。 270 271 下载路径:“[https://pypi.org/project/six/\#files](https://pypi.org/project/six/#files)” 272 273 274 1. 运行“sudo pip3 install six-xxx.whl”命令(例如:sudo pip3 install six-1.12.0-py2.py3-none-any.whl),安装.whl文件(需root/sudo权限安装)。 275 276 安装完成后界面会提示“Successfully installed six-1.12.0”。 277 2789. 安装ecdsa。运行"sudo pip3 install ecdsa"或者按照以下方式安装: 279 280 1. 下载.whl文件(例如:ecdsa-0.14.1-py2.py3-none-any.whl)。 281 282 下载路径:“[https://pypi.org/project/ecdsa/\#files](https://pypi.org/project/ecdsa/#files)” 283 284 285 1. 运行“sudo pip3 install ecdsa-xxx.whl”命令(例如:sudo pip3 install ecdsa-0.14.1-py2.py3-none-any.whl),安装.whl文件(需root/sudo权限安装)。 286 287 安装完成后界面会提示“Successfully installed ecdsa-0.14.1”。 288 289 290## 安装Scons<a name="section2462246562"></a> 291 2921. 打开Linux编译服务器终端。 2932. 安装SCons安装包(需root/sudo权限安装)。 294 295 运行命令:“sudo apt-get install scons -y”。如果软件源中无法找到安装包,请按以下步骤处理: 296 297 1. 下载源码包(下载路径:“ [https://scons.org/pages/download.html](https://scons.org/pages/download.html) ”,推荐SCons版本是3.0.4+)。 298 2. 解压源码包到任意目录。 299 3. 安装源码包:进入解压目录,运行命令“sudo python3 setup.py install”(需root/sudo权限安装),等待安装完毕。 300 3013. 输入命令“scons -v”,查看是否安装成功。如果安装成功,查询结果下图所示。 302 303 **图 5** SCons安装成功界面<a name="fig235815252492"></a> 304 ![](figures/SCons安装成功界面.png "SCons安装成功界面") 305 306 307## 安装编译工具环境<a name="section7227629152013"></a> 308 309>![](public_sys-resources/icon-notice.gif) **须知:** 310>- 如果后续通过“HPM组件方式”或“HPM包管理器命令行工具方式”获取源码,不需要安装gn、ninja、gcc\_riscv32编译工具。 311>- (推荐)如果后续通过“镜像站点方式”或“代码仓库方式”获取源码,需要安装gn、ninja、gcc\_riscv32编译工具。 312> 安装gn、ninja、gcc\_riscv32编译工具时,请确保编译工具的环境变量路径唯一。 313 314## 安装gn<a name="section2024354014506"></a> 315 3161. 打开Linux编译服务器终端。 3172. 下载gn工具:https://pan.baidu.com/s/1bp2ypAfH2HaNPTY2KwEhEA 提取码:1234 3183. 解压gn安装包至\~/gn路径下:"tar -xvf gn.1523.tar -C \~/"。 3194. 设置环境变量:"vim \~/.bashrc", 新增:"export PATH=\~/gn:$PATH"。 3205. 生效环境变量:"source \~/.bashrc"。 321 322## 安装ninja<a name="section182441140185010"></a> 323 3241. 打开Linux编译服务器终端 3252. 下载ninja工具:https://pan.baidu.com/s/1bp2ypAfH2HaNPTY2KwEhEA 提取码:1234 3263. 解压ninja安装包至\~/ninja路径下:"tar -xvf ninja.1.9.0.tar -C \~/"。 3274. 设置环境变量:"vim \~/.bashrc", 新增:"export PATH=\~/ninja:$PATH"。 3285. 生效环境变量:"source \~/.bashrc"。 329 330## 安装gcc\_riscv32(WLAN模组类编译工具链)<a name="section2014123416523"></a> 331 332>![](public_sys-resources/icon-notice.gif) **须知:** 333>Hi3861平台仅支持使用libgcc运行时库的静态链接,**不建议开发者使用libgcc运行时库的动态链接,会导致商业分发时被GPL V3污染。** 334 3351. 打开Linux编译服务器终端。 3362. 下载gcc\_riscv32工具:https://pan.baidu.com/s/1bp2ypAfH2HaNPTY2KwEhEA 提取码:1234 3373. 解压gcc\_riscv32安装包至/opt/gcc\_riscv32路径下:"tar -xvf gcc\_riscv32-linux-7.3.0.tar.gz -C \~/"。 3384. 设置环境变量:"vim \~/.bashrc",新增:"export PATH=\~/gcc\_riscv32/bin:$PATH"。 3395. 生效环境变量:"source \~/.bashrc"。 3406. Shell命令行中输入“riscv32-unknown-elf-gcc -v”,如果能正确显示编译器版本号,表明编译器安装成功。 341 342