Hi3516DV300烧录标准系统填坑指南基于Ubuntu环境使用DevEcoTool 原创 精华
【本文正在参与优质创作者激励】
@toc
$\color {#f00} {老规矩哈,还是先把烧录完成的视频放上来:}$点击播放
友情提醒,搭配harmony官方文档一起食用更加美味
PS:首先说一下哈,正常情况下烧录这点儿事,不值得发一篇文章。但是出于以下两点考虑,我还是觉得发出来比较好。
1.本身我支持linux去做尽可能多的开发,当然之所以ubuntu下有这么多坑,可能与ubuntu使用人数少有关,导致大家都不太关注,但是为了支持使用的这点人还是总结一下这些坑。
2.可能是上述的原因,导致ubuntu上使用dev tool的问题一直没有暴出来,所以我遇到的这些问题基本没有资料可查,甚至官方的文档感觉有些滞后,也有些不全,不能让仅存的使用ubuntu的这些人倒在这些坑上。
首先来张图体验一下,烧录成功的喜悦!
下面我就按照时间顺序来一个一个填这些坑。
1.CodeLLDB插件的安装
首先deveco device tool的使用必须依赖于vscode的这个插件。但是,这个问题大家可能不一定会遇到。因为我踩到这个坑的原因就是再配这个环境之前,我就已经在用vscode作为编辑器一直在使用了,然后就装了一些插件了,应该是这些插件与CodeLLDB插件出现了冲突。然后第一个坑就来了:CodeLLDB死活安装不上了。
1.1 判断在线安装是否能成功
当你在执行完成./deveco-device-tool-***.run之后,第一次打开vscode在联网的情况下,它就会自动开启安装CodeLLDB插件,在vscode的控制框中选择LLDB如下图:
可以看到正在安装CodeLLDB,它分成两个过程,下载和安装,下载的话可以很清楚的看到进度条的进度,这个取决于你的网速,下载很快的,然后进度条满了之后就开始安装,这个时候我建议你最多等三分钟,超过三分钟没有反应,就放弃吧,说明你已经遇到了 官方文档的所说的在线安装失败了,执行下一步。
1.2 如何离线安装成功
如果在1.1中可以确定是在线安装玩不转了,那就只能离线安装了。
- 1.离线安装的第一步先按照官网中所给的路径将离线包下载下来。
- 2.然后你按照官网中的操作点击完成之后在vscode的右下脚会弹出安装CodeLLDB前请先重启vscode(请在重新安装CodeLLDB之前重新启动 VS Code。)。然后你重启了之后,你就会发现并没有什么卵用,它还是会继续弹出让你重启vscode的提醒。
- 3.我甚至使用了在关闭掉vscode的情况下,然后敲命令去手动安装离线包,如下图:
然而它这次会换成英文提醒你继续重启vscode。 - 4.然后无奈的我开始卸载vscode,使用了sudo apt-get --purge remove code,这条命令据说会彻底卸载,但是我继续使用sudo dpkg -i code_1.61.2-1634656828_amd64.deb安装完成之后,继续安装CodeLLDB离线包依旧会继续报请在重新安装CodeLLDB之前重新启动 VS Code。
- 5.然后我开始怀疑vscode并没有卸载干净,为了确认我看了一下之前的配置,果然还在。所以只能想办法继续完全卸载干净这个问题,$\color {#f00} {最终再我删除了家目录下的.vocode目录之后}$,我继续sudo dpkg -i code_1.61.2-1634656828_amd64.deb进行安装vscode,然后继续安装CodeLLDB这个困扰我许久的问题终于被干掉了。
2.设置配置完成后点击保存提示家目录下./deveco-device-tool没有权限
2.1 原因定位
其中这个问题,应该是我在安装deveco device tool的时候使用了sudo导致的,因为我ls -al查看的时候,如下图:
发现上图中所框出文件的用户和组都是root,这就是问题,普通用户不可以操作root文件
2.2 解决方法
需要使用$\color {#f00} {chown,chgrp}$这两条命令将用户切回来切换成自己的普通用户名字,具体如下图:
3.官方文档中没有提到却需要配置的upload_net_server_port
当你按照官方文档把一切配置步骤都搞完之后,并且点击保存也成功之后,然后点击下面的按钮,开始烧录。然后它会报一个错误是 upload_net_server_port没有设置。
3.1 分析定位
然后你去工程配置文件中去找就会发现也是没有配置,这个配置在官方介绍文档中也没有提到,所以这个应该就是暂时被遗漏了,或者是新出来的,还没有来得及加入。
3.2 解决方法
$\color {#f00} {如下图进行设置:}$
4.ubuntu确定串口
如下图,首先ubuntu中的串口目录都在/dev/下,名字以tty开头的都是串口名。
为了确定是否端口选择正确,可以拔掉线,前后对比一下,消失的那个名字就确定无疑了。
5.提示找不到烧录需要用的img文件
5.1 报错提示如下图:
这个坑是点击开始烧录按钮之后提示的,具体报错如下图:
而且这个错误会依次将烧录所需要的img文件都报一遍
5.2 分析错误原因
报错信息已经很明显了说明了找不到指定的文件夹,所以我在使用 find -name 去搜索找不到文件,如下图:
然后就会发现这些文件所在的目录就在标准系统编译完成后的指定目录如下图:
5.3 解决方法
$\color {#f00} {所以我们就按照提示去把需要的目录建好,文件放好就可以了}$,我使用mkdir去把路径下的文件夹生成好,然后再使用cp命令将对应的img文件复制到对应的目录下去,具体见下图:
6.reset后串口中报 VFS: Unable to mount root fs导致系统启动不起来
6.1 具体报错信息如下:
end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-bloc
6.2 问题解决
$\color {#f00} {这个问题最后发现是因为在烧录前没有执行擦除操作所导致的,所以先执行一遍擦除操作,然后再进行一次烧录,具体操作见下图,也可以去官网中查看。}$
擦除成功后见下图:
7 切记,切记在配置文件中选择网口烧录
$\color {#f00} {串口进行全量烧录保守估计48个小时,网口半个多小时,所以没得选,具体配置见下图:}$