写在开头:本篇报告有一些遇到的问题和解决方法,但是我觉得最大的坑就是我自己搭建Linux系统的编译环境,导致我连肝了四个晚上,所以Linux环境能下载还是下载吧,在这浪费时间并不是很值得,我觉得连老师配置的更好,奉上连老师的连接https://harmonyos.51cto.com/posts/943我的仅供大家参考吧。
开箱照
搭建环境
一定要用64bit的Ubuntu!!!
因为我之前有个别的开发板配套的ubuntu,很好用,samba,ssh都配置好了,我没怎么注意说明就拿过来用了,开始一顿下载,然后快乐的apt-get和.configure&make&make install三连。很快就出现问题了。
出现类似这样的警告,如果有其他的小伙伴也出现,注意一下是不是系统是32bit的。
从头开始
虚拟机安装
安装Ubuntu,我根据官方教程选择了Ubuntu18.04,当时没看到连老师的帖子,否则我绝对不自己装,不过已经开始了,那就继续吧。
软件环境是VM12.0.0。
新建一个虚拟机,选择自定义,虚拟机硬件兼容性要选择6.5-7.x,如果选择默认选项,安装会失败。
下一步后,安装客户机操作系统,选择稍后安装操作系统,否则会自动安装,到时候是英文的。附带的软件还比较少。需要后续自己安装。
后面安装位置选一个空闲位置比较大的地方,处理器我设成双核的了,设置别的我知道有啥影响,内存4096MB,网络设置成桥接,60G硬盘这些其实以后再配置也行。
在光盘中添加ubuntu的映像文件,确定后开启此虚拟机。
接着就图形话根据自己需要进行配置语言键盘。更新其他软件界面默认
后面设置时区选上海
磁盘默认
用户名,计算机名可以短点,长了后面嫌麻烦。这里设置harmony-vm,系统开始安装,漫长的等待中。。。
重启后不出意外应该是黑屏了。。。
重新启动,在读条的时候按上下键,进入下面这个页面的时候按e键,
出现下面这个页面,在quiet splash后面添加nomodeset(针对于英伟达的网卡,别的网卡不一样) ,然后按F10会进入系统,这时候就进入界面了,但是刚刚设置是一次性的,需要进入系统再配置启动配置文件。
sudo vim /etc/default/grub (顺手用apt-get安装了一个vim),在quiet splash后面添加nomodeset,如下图。
保存退出后,更新grub,
sudo update-grub
重启,已经可以正常启动系统了。
软件环境搭建
1、SSH服务器搭建
https://device.HarmonyOS.com/cn/docs/start/introduce/oem_quickstart_3861_build-0000001054781998
跟着官方文档走,包括我踩过的坑。
想要用PuTTY工具,首先搭建Linux环境,得有ssh服务器才能访问。
先安装一个ifconfig,方便看IP地址,现在Ubuntu不自动安装了,也可以用图形界面设置。
安装ssh服务器,参考下面这个文章
https://blog.csdn.net/liumiaocn/article/details/79427964?utm_source=blogxgwz9
用SSH Secure这个软件无法连接,提示如下图
用Putty就可以连接,推测是版本问题。
因为我们要用vscode烧录目标代码,所以我使用的不是Putty,而是vscode下面的SSH插件。
用官方推荐的powershell种ssh2.exe是无法访问的,跟上图提示类似。
点击左侧的应用扩展图标,搜索ssh,看到一个5星的应用果断安装了。
装完后,出现了左侧出现了一个小钥匙file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml1304/wps13.jpg。
点击上面加号,Add SSH Config,按下图配置
Connect后,如无意外,左侧出现Linux下的目录
点击红框部分出来终端
2、上传文件
登陆后将下载好的问文件上传到服务器上,选择要上传文件的位置,右键Upload File,
然后搭建环境,其实在Linux下,直接下载搭建也一样方便。
上传好后,主要是以下几个文件
3、配置安装
(1)将Linux shell改为bash,按教程中方法二来,下面两条命令
sudo rm -RF /bin/sh
sudo ln -s /bin/bash /bin/sh
(2)安装Python环境
这版自带的是Python3.6.9 按照要求安装Python3.8
sudo apt-get install python3.8
which python3.8
cd /usr/bin && sudo rm python&& sudo ln -s /usr/bin/python3.8 python && python --version
其中/usr/bin/python3.8是which python3.8这个命令的结果
最后显示Python 3.8.x表示安装完成
(下面这个一定要修改,否则后面会出错)
同时删除软连接/usr/bin/python3,指向python3.8
cd /usr/bin &&sudo rm python3&& sudo ln -s python3.8 python3
Python安装完后更新以下内容
l 安装并升级Python包管理工具(pip3)
sudo apt-get install python3-setuptools python3-pip -y
sudo pip3 install --upgrade pip
l 安装python模块setuptools
sudo pip3 install setuptools
l 安装GUI menuconfig工具(Kconfiglib)
sudo pip3 install kconfiglib
l 安装pycryptodome
$sudo su
#pip3 install pycryptodome
其实这里在我第二次做的时候出错了,导致我又重新走了一遍,其实不是很明确当时错误的原因,因为我sudo pip3 install pycryptodome报错,但是sudo su在执行就可以了,我也很困惑。
l 安装six
sudo pip3 install six --upgrade --ignore-instalLED six
l 安装ecdsa
sudo pip3 install ecdsa
(3)安装Scons
sudo apt-get install scons -y
(4)开始安装刚刚上传的那三个文件,其实就是把三个文件解压到用户目录下
l tar -xvf gn.1523.tar -C ~/
l tar -xvf ninja.1.9.0.tar -C ~/
l tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~/
l vim ~/.bashrc 添加下面这三句
export PATH=~/gn:$PATH
export PATH=~/ninja:$PATH
export PATH=~/gcc_riscv32/bin:$PATH
保存退出
l source ~/.bashrc
l riscv32-unknown-elf-gcc -v 检查安装是否成功
至此Linux下服务器编译环境基本搭完了(还有samba服务器,后面有连老师的连接),用源码包检验一下,上传一个源码包code-1.0.tar.gz。
4、编译源码测试
mkdir code-1.0
tar vxzf code-1.0.tar.gz -C code-1.0
cd code-1.0
python build.py wifiiot
中间报错了,说我python版本低,我感觉很诧异,我折腾时间最长的就是python,不知道什么时候被改会2.7的,我只好使用前面的命令重新改回3.8
cd /usr/bin && sudo rm python&& sudo ln -s /usr/bin/python3.8 python && python --version
cd /home/harmony/software/code-1.0/
python build.py wifiiot
出现下图,表示编译成功。
5、Windows端配置
配置完上面的内容,按照下面这个文档进行镜像烧录
https://device.harmonyos.com/cn/docs/start/introduce/oem_wifi_start_helloword-0000001051930719
但是其实这里有个问题就是,ssh模式只适合来回导文件,不能打开工程,最终还是需要samba服务器来打开工程,其实有samba,ssh的意义并不大唯一的好处就是配置好Linux环境后就不需要在去服务器上操作了。samba配置连老师(连老师的帖子https://bbs.elecfans.com/jishu_1992121_1_1.html)已经写的非常清楚了,这里就不再赘述了。配置完samba之后就,映射静态存储器和SSH设置的地方就可以用目标的主机名,好处就是可以使用自动分配IP.
windows只要仔细按照文档一步一步来,基本没坑
下面这个图片是大部分人会遇到的问题,有两种解决方法,一种是将默认的Shell选成系统的cmd.exe。
另一种是参考下面这个文档
https://www.jb51.net/article/95022.htm
但是需要以管理员身份运行Vscode,然后执行set-ExecutionPolicy RemoteSigned。但是在管理员身份运行的时候还没办法出现网络磁盘,所有就需要再次退出正常打开Vscode,
之后还会提示下面这个内容
默认回车就好,如果再次提示的话,说明NOTE_PATH系统变量没有设置好,重新设置,官方手册里有详细说明。
在之后就可以正常烧写了。为了最后这个界面真是不容易啊。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml1304/wps26.jpg