原文链接:https://bbs.elecfans.com/jishu_2001121_1_1.html
Hispark WiFi Iot的代码需要在Linux环境下才能进行编译。前几天在进行编译环境的搭建,我使用WM虚拟机+Ubuntu/Deepin系统镜像进行搭建Linux编译环境。但是这个过程并不顺利,经过了几天的摸索得到了一些经验和方法,已经一次性在Ubuntu18/Ubuntu20/Deepin15系统上完成编译环境的搭建,并且一次性编译成功。接下来我将我的一些经验和搭建过程的一些关键点分享给大家。
一、关键要素 二、搭建准备 三、编译环境搭建 四、编译验证 五、总结
一、关键要素 Linux编译环境搭建的关键点有三个: 1、python3的版本 Ubuntu/Deepin系统都默认自带python3,但是不同版本系统所带python3的版本都不一样。但是HisparkWiFi Iot的代码编译需要python3版本在3.7以上。如果系统自带的python3的版本在3.7以上,可以不用重新安装python3。如果是低于3.7版本的,则需要重新安装python3。例如我安装的Ubuntu20系统就自带3.8版本的python 3,不需要再安装python3。Ubuntu18自带3.6版本python3,Deepin15自带3.5版本pyhon3,这则需要重新安装python3。 Python3版本可以通过 python3 –version或者python –version命令查看。 2、pip3是否对应你python3的版本 需要使用python包软件管理工具pip3,可以进行开发工具的安装和下载。安装完新的python3,一定要安装和升级pip3工具,让pip3与新的python3对应。 我之前就出现过安装完python3之后,没有升级pip3,使用pip3命令进行开发工具安装时,都没有被安装到正确位置。 我使用的Ubuntu18自带的python3版本为3.6。我重新下载了python3.8,但是没有升级pip3,这时pip3会跟之前的python3.6对应。这时使用pip3下载工具时,会把工具下载到/usr/local/lib/python3.6 ,但是我们需要的是工具应该安装到/usr/local/lib/python3.8,最后再编译的时候,就会出现python相关的错误。 所以说一定要确认好pip3是否跟python3相关对应。可以使用pip3 –version命令进行查看。例如我的Ubuntu18 python3版本为3.8。输入pip3 –version即可看到pip3对应到了python3.8。 注意有些系统默认是没有pip3命令的例如Deepin15默认没有pip3命令,而是使用pip3.X命令,3.X对应的是python3的版本。可以使用which pip3.X 查看pip3.X的地址,再使用软连接命令,把pip3.X链接到pip3。 3、开发工具是否都能正确安装 H ARMony提供的编译环境搭建指导中(地址为 https://device.HarmonyOS.com/cn/ ... ld-0000001054781998),开发工具安装方式有两种:命令行方式,安装包方式。命令行方式:输入命令即可自动完成包的下载和安装。安装包:先在网上把安装包下载下来,再执行命令进行安装。命令行方式虽然省事,但是如果网络不好,很有可能有些东西没下载成功,导致安装失败。我推荐使用安装包方式,这样可以按照的工具版本使我们所需要的,而且安装包工具内容不会被遗漏。每个开发工具安装包都不大,很快就能下载下来,安装包可以在Linux系统上下载,也可以在windows上下载再通过共享文件夹传入linux中。我都是使用安装包方式进行开发工具的安装,最后都搭建成功了。
二、搭建准备 1、虚拟机安装 其实Linux系统环境有很多种方式,我使用的虚拟机WM+Ubuntu/Deepin镜像的方式。 但是,这里我就不再说明虚拟机安装步骤了。大家可以某度一下,网上很多教程。 建议安装Ubuntu20版本,该版本python3版本为3.8,可以省去python3和pip3的安装。 安装启动完之后,记得设置国内的软件更新源。 2、Samba安装 如何完成windows和linux的文件共享?有一种方法,使用samba工具。 (1)输入命令 sudo apt-get install samba (2)输入命令 sudo apt-get install samba-common (3)执行命令打开samba配置文件 sudo vim /etc/samba/smb.conf (4)修改samba配置文件 在最后加入 [harmony] comment = harmony browseable = yes path = /home/lyj/harmony/code create mask = 0700 directory mask = 0700 valid users = lyj force user = lyj force group = lyj public = yes available = yes writable = yes 上面内容需要根据你实际情况进行修改。 修改说明如下。 [harmony] --在windows开启网络驱动器时需要使用到 path = /home/lyj/harmony/code --相当于设置了共享文件夹的所在路径 valid users = lyj --修改为你linux的用户名 force user = lyj --修改为你linux的用户名 force group = lyj --修改为你linux的用户名 (5)设置samba密码
sudo smbpasswd -a lyj --lyj修改为你的用户名 (6)重启samba服务
sudo service smbd restart (7)查看linux网络ip 输入 ifconfig (8)设置windows网络驱动器 a、 打开计算器选择映射网络驱动器
b 、输入\192.168.3.32harmony
192.168.3.32修改为你ifconfig得到的ip;harmony修改为smb.conf中[]里面的值,例如我上面第④点[harmony] c 、最后输入linux的用户名和密码就行了 d设置成功后,如下图所示。
三、编译环境搭建 在编译环境搭建的时候,一定要注意我上面所说的几个关键点。我是在Harmony官方的指导文档上做了一些修改,确保大家都能一次性搭建成功。下面的操作都是在Linux系统上终端输入命令行进行的,而官方指导文档是在windows使用putty远程连接到linux进行操作,本质都是一样。 1、python3默认版本确认 先看系统自带python3的版本是什么,如果系统自带的python3的版本在3.7以上,可以不用重新安装python3,如果是低于3.7版本的,则需要重新安装python3。 命令行输入python3 –version 2、pip3是否和新安装的python3对应 输入pip3 --version,可以观察到pip3与python对应情况。 3、将Linux shell改为bash (1)查看shell是否为bash,在终端运行如下命令 ls -l /bin/sh 如果显示为“/bin/sh -> bash”则为正常,否则请按以下方式修改: (2)在终端运行如下命令,然后选择 no。 sudo dpkg-reconfigure dash 4、安装Python环境 (1)输入如下命令,查看Python3版本号,python3版本大于3.7,则可不需要重新安装,否则需要重新安装python3 python3 --version (2)python3安装 如果需要安装python,参考官方文档。 (3)如果python重新安装后,将新的python3路径链接到"/usr/bin/python" a、查看python3.8路径在哪 which python3.8 b、设置软链接 cd /usr/bin && sudo rm python && sudo ln-s /usr/local/bin/python3.8 python && python --version 其中/usr/local/bin/python3.8替换为which python3.8得到的实际路径。 可能会出现错误提示python文件不存在的情况,那么就输入cd /usr/bin && sudo ln -s/usr/local/bin/python3.8 python && python –version C、返回python3的版本号则设置成功。 (4)安装并升级Python包管理工具(pip3)。 我采用安装包方式进行安装。 A、输入命令 这是可能提示curl命令不存在,这时需要先执行 sudo apt install curl b、输入命令 python get-pip.py c、确认pip3版本是不是跟python3版本对应,输入命令 pip3 –version 注意在Deepin15 系统下默认没有pip3命令,需要把pip3命令链接到pip3.X。 (5)python模块setuptools pip3 install setuptools (6)安装GUImenuconfig工具(Kconfiglib),官方建议安装13.2.0+版本 a、下载.whl 文件(例如kconfiglib-14.1.0-py2.py3-none-any.whl)。 b、运行如下命令,安装.whl文件。需要先进入到文件目录下。 sudo pip3 install kconfiglib-14.1.0-py2.py3-none-any.whl (7)安装GUImenuconfig工具(Kconfiglib),官方建议安装13.2.0+版本 我使用安装包方式安装 a、下载.whl文件该文件需要跟python3版本对应 b、运行如下命令,安装.whl文件。 需要先进入到文件目录下。 sudo pip3 install pycryptodome-3.9.8-cp38-cp38-manylinux1_x86_64.whl (8)安装six 下载.whl文件(例如:six-1.14.0-py2.py3-none-any.whl)。 运行如下命令,安装.whl文件。要先进入到文件目录下。 sudo pip3 install six-1.14.0-py2.py3-none-any.whl (9)安装ecdsa a、下载.whl文件(例如:ecdsa-0.16.0-py2.py3-none-any.whl)。 b、运行如下命令,安装.whl文件。要先进入到文件目录下。 sudo pip3 install ecdsa-0.16.0-py2.py3-none-any.whl 5、安装Scons a、下载Scons安装包,官方推荐SCons版本是3.0.4以上,这里我下载4.0.1版本。 b、解压下载的SCons源码包到任意目录 c、进入解压目录,执行命令进行安装 sudo python3 setup.py install d、查看scons是否安装正确,输入命令 scons -v 6、安装编译工具环境 (1)安装gn a、下载gn工具 b、解压gn安装包至~/gn路径下。 输入命令tar -xvf gn.1523.tar -C ~/ (1)安装ninja a、下载ninja工具。 b、解压ninja安装包至~/ninja路径下。 tar -xvf ninja.1.9.0.tar -C ~/ (3)安装gcc_riscv32 a、下载gcc_riscv32工具 下载路径: https://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz b、解压gcc_riscv32安装包至~/gcc_riscv32路径下。 tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C~/ (4)设置环境变量 a、vim ~/.bashrc b、将以下命令拷贝到.bashrc文件的最后一行,保存并退出。 export PATH=~/gn:$PATH export PATH=~/ninja:$PATH export PATH=~/gcc_riscv32/bin:$PATH c、生效环境变量。 source ~/.bashrc d、查看环境变量设置是否正确 输入env (5)输入如下命令,如果能正确显示编译器版本号,表明编译器安装成功。 riscv32-unknown-elf-gcc -v 四、编译验证 (1)源码获取 获取地址为: https://repo.huaweicloud.com/harmonyos/os/1.0/code-1.0.tar.gz 可以直接在linux上获取,也可以在先在windows获取,再通过共享文件夹传入到linux。 (2)源码解压 源码必须在linux系统里进行解压。解压目录推荐为共享文件夹目录。 进入到源码包目录,使用下面命令进行解压 tar -xzvf code-1.0.tar.gz(该命令默认解压到源码包目录下) (3)编译 进入解压目录,执行一下命令 python build.py wifiiot 执行结果
五、总结 1、官方要求python3的版本需要在3.7以上,所以我们需要注意linux系统python3的版本。 2、注意pip3命令是不是对应最新安装的python3版本。 3、建议能使用安装包方式进行工具的安装,这样才能确保安装的工具版本是我们所需要的版本。 4、不同的操作系统,python3和pip3的安装都不一样,上面针对的是Ubuntu。其他系统可以自行某度一下进行查找,网上很多。我在Deepin15上安装python3和pip3就是在网上查找教程进行安装的。 只要python3和pip3安装好,其他的开发工具安装安装基本和上面类似。 5、linux编译环境搭建所需要的安装包和源码,我都放在百度云网盘,大家需要可以去下载。 提取码:vz9c
|