电子产业一站式赋能平台

PCB联盟网

搜索
查看: 860|回复: 0
收起左侧

【鸿蒙编译烧录】“后台服务”虚拟机 一个软件搞定远程、编译、烧录

[复制链接]

2607

主题

2607

帖子

7472

积分

高级会员

Rank: 5Rank: 5

积分
7472
发表于 2020-10-22 13:56:32 | 显示全部楼层 |阅读模式
【鸿蒙编译烧录】“后台服务”虚拟机 一个软件搞定远程、编译、烧录,   
本帖最后由 Bright_ML 于 2020-10-22 13:04 编辑



原创文章,转载请注明出处:

鸿蒙2.0发布有一个多月了,今天来分享一个我自己调试鸿蒙用的环境。首先是运行linux虚拟机,系统我用的是Ubuntu20.04。因为默认python环境正好符合官方要求。软件是开源的VirtualBox,官方下载地址:https://www.virtualbox.org/wiki/Downloads 接下来按照官方文档把环境编译好,这种教程太多了,我就不写了。

[size=18.6667px]

一、“后台服务”虚拟机

1.这里假设虚拟机的开发环境已经配置好了,在搭好环境的虚拟机上右击“创建桌面快捷方式”



1.png (42.58 KB, 下载次数: 0)

下载附件  保存到相册  

1 小时前 上传

2. 右击打开创建好的快捷方式的属性,复制目标里的内容



2.png (40.84 KB, 下载次数: 0)

下载附件  保存到相册  

1 小时前 上传

3. 将复制的命令,按照下图修改。注意引号和 --



  • <!--StartFragment-->“C:\Program Files\Oracle\VirtualBox\VirtualBoxVM.exe“ --comment “Ubuntu64_20.04“ --startvm “{3998f28f-1fc4-4c5d-953f-9e21a28179a5}“  

复制代码

3.png (40.79 KB, 下载次数: 0)

下载附件  保存到相册  

1 小时前 上传

4. 点击确定修改完成。快捷键win+R打开运行,输入     shell:Startup



4.png (20.39 KB, 下载次数: 0)

下载附件  保存到相册  

1 小时前 上传

5. 把刚才改好的快捷方式,放入开始启动的这个文件夹。这样我们的电脑一开机就可以后台运行一个linux服务器了。 注意:windows关机的时候,一定要先远程关闭虚拟机,再关闭windows。不然服务器属于非法关机。



二、一个软件搞定linux的远程代码编译,固件烧录

他就是MobaXterm,可以下载免费的Home Edition版本,完全不影响使用,接下来和大家分享这个软件几个比较好用的功能。



  • 软件集成SSH、FTP、Serial等多种连接方式,配合我们上面的“后台运行”的服务器,远程、串口、文件共享,一个软件搞定。
      


6.png (47.02 KB, 下载次数: 0)

下载附件  保存到相册  

1 小时前 上传



  • 再就是这个录制宏命令功能,这才是这个软件牛X的地方【重点讲解】
      
1. 用录制宏命令实现【一键烧录】,其实实现原理和官方的VScode插件、HiTool等工具的方式是一样的,只不过这些功能被制作成一个按钮,我们并不知道他是如何运行的,而我们使用开发板就是为了学习,所以了解其中的原理,才能更好的学到知识。

2. 固件烧录常用的就是USB、网络、串口,串口太慢就不考虑,网络方式速度比较快,我下面演示的就是网络烧录,先用这个软件远程我们的“后台服务器”然后输入以下命令建立tftp服务器



  • <!--StartFragment--><div yne-bulb-block=“paragraph“>sudo apt-get install tftpd-hpa           #安装</div><div yne-bulb-block=“paragraph“>sudo vim /etc/default/tftpd-hpa       #修改下配置文件,文件内容如下,修改完成,保存退出</div><div yne-bulb-block=“paragraph“>      TFTP_USERNAME=“tftp“</div><div yne-bulb-block=“paragraph“>      TFTP_DIRECTORY=“/home/bright/Harmony/out/ipcamera_hi3516dv300/“ #这个是我编译生成镜像的文件夹,修改成自己的文件夹路径就可以</div><div yne-bulb-block=“paragraph“>      TFTP_ADDRESS=“:69“</div><div yne-bulb-block=“paragraph“>      TFTP_OPTIONS=“--secure“</div><div yne-bulb-block=“paragraph“>sudo service tftpd-hpa restart           #修改完需要重启下服务</div><!--5f39ae17-8c62-4a45-bc43-b32064c9388a:W3siYmxvY2tJZCI6IjgwMjctMTYwMzM0MjI0Njg5NiIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJiYWNrLWNvbG9yIjoiIn0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoicyJ9LHsiY2hhciI6InUifSx7ImNoYXIiOiJkIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoicCJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiItIn0seyJjaGFyIjoiZyJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoiICJ9LHsiY2hhciI6ImkifSx7ImNoYXIiOiJuIn0seyJjaGFyIjoicyJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoibCJ9LHsiY2hhciI6ImwifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6ImYifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoicCJ9LHsiY2hhciI6ImQifSx7ImNoYXIiOiItIn0seyJjaGFyIjoiaCJ9LHsiY2hhciI6InAifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiIyJ9LHsiY2hhciI6IuWuiSJ9LHsiY2hhciI6IuijhSJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjUwNDctMTYwMzM0MjI0Njg5NiIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJiYWNrLWNvbG9yIjoiIn0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoicyJ9LHsiY2hhciI6InUifSx7ImNoYXIiOiJkIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJ2In0seyJjaGFyIjoiaSJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiLyJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoiYyJ9LHsiY2hhciI6Ii8ifSx7ImNoYXIiOiJkIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6ImYifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoidSJ9LHsiY2hhciI6ImwifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoiLyJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiJmIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6InAifSx7ImNoYXIiOiJkIn0seyJjaGFyIjoiLSJ9LHsiY2hhciI6ImgifSx7ImNoYXIiOiJwIn0seyJjaGFyIjoiYSJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiIyJ9LHsiY2hhciI6IuS/riJ9LHsiY2hhciI6IuaUuSJ9LHsiY2hhciI6IuS4iyJ9LHsiY2hhciI6IumFjSJ9LHsiY2hhciI6Iue9riJ9LHsiY2hhciI6IuaWhyJ9LHsiY2hhciI6IuS7tiJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IuaWhyJ9LHsiY2hhciI6IuS7tiJ9LHsiY2hhciI6IuWGhSJ9LHsiY2hhciI6IuWuuSJ9LHsiY2hhciI6IuWmgiJ9LHsiY2hhciI6IuS4iyJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IuS/riJ9LHsiY2hhciI6IuaUuSJ9LHsiY2hhciI6IuWujCJ9LHsiY2hhciI6IuaIkCJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IuS/nSJ9LHsiY2hhciI6IuWtmCJ9LHsiY2hhciI6IumAgCJ9LHsiY2hhciI6IuWHuiJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjI1NjctMTYwMzM0MjI0Njg5NiIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJiYWNrLWNvbG9yIjoiIn0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IlQifSx7ImNoYXIiOiJGIn0seyJjaGFyIjoiVCJ9LHsiY2hhciI6IlAifSx7ImNoYXIiOiJfIn0seyJjaGFyIjoiVSJ9LHsiY2hhciI6IlMifSx7ImNoYXIiOiJFIn0seyJjaGFyIjoiUiJ9LHsiY2hhciI6Ik4ifSx7ImNoYXIiOiJBIn0seyJjaGFyIjoiTSJ9LHsiY2hhciI6IkUifSx7ImNoYXIiOiI9In0seyJjaGFyIjoiXCIifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoiZiJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiJwIn0seyJjaGFyIjoiXCIifV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiIzODUwLTE2MDMzNDIyNDY4OTYiLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYmFjay1jb2xvciI6IiJ9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W3siY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJUIn0seyJjaGFyIjoiRiJ9LHsiY2hhciI6IlQifSx7ImNoYXIiOiJQIn0seyJjaGFyIjoiXyJ9LHsiY2hhciI6IkQifSx7ImNoYXIiOiJJIn0seyJjaGFyIjoiUiJ9LHsiY2hhciI6IkUifSx7ImNoYXIiOiJDIn0seyJjaGFyIjoiVCJ9LHsiY2hhciI6Ik8ifSx7ImNoYXIiOiJSIn0seyJjaGFyIjoiWSJ9LHsiY2hhciI6Ij0ifSx7ImNoYXIiOiJcIiJ9LHsiY2hhciI6Ii8ifSx7ImNoYXIiOiJoIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoiLyJ9LHsiY2hhciI6ImIifSx7ImNoYXIiOiJyIn0seyJjaGFyIjoiaSJ9LHsiY2hhciI6ImcifSx7ImNoYXIiOiJoIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6Ii8ifSx7ImNoYXIiOiJIIn0seyJjaGFyIjoiYSJ9LHsiY2hhciI6InIifSx7ImNoYXIiOiJtIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6Im4ifSx7ImNoYXIiOiJ5In0seyJjaGFyIjoiLyJ9LHsiY2hhciI6Im8ifSx7ImNoYXIiOiJ1In0seyJjaGFyIjoidCJ9LHsiY2hhciI6Ii8ifSx7ImNoYXIiOiJpIn0seyJjaGFyIjoicCJ9LHsiY2hhciI6ImMifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoibSJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJyIn0seyJjaGFyIjoiYSJ9LHsiY2hhciI6Il8ifSx7ImNoYXIiOiJoIn0seyJjaGFyIjoiaSJ9LHsiY2hhciI6IjMifSx7ImNoYXIiOiI1In0seyJjaGFyIjoiMSJ9LHsiY2hhciI6IjYifSx7ImNoYXIiOiJkIn0seyJjaGFyIjoidiJ9LHsiY2hhciI6IjMifSx7ImNoYXIiOiIwIn0seyJjaGFyIjoiMCJ9LHsiY2hhciI6Ii8ifSx7ImNoYXIiOiJcIiJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIjIn0seyJjaGFyIjoi6L+ZIn0seyJjaGFyIjoi5LiqIn0seyJjaGFyIjoi5pivIn0seyJjaGFyIjoi5oiRIn0seyJjaGFyIjoi57yWIn0seyJjaGFyIjoi6K+RIn0seyJjaGFyIjoi55SfIn0seyJjaGFyIjoi5oiQIn0seyJjaGFyIjoi6ZWcIn0seyJjaGFyIjoi5YOPIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi5paHIn0seyJjaGFyIjoi5Lu2In0seyJjaGFyIjoi5aS5In0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5L+uIn0seyJjaGFyIjoi5pS5In0seyJjaGFyIjoi5oiQIn0seyJjaGFyIjoi6IeqIn0seyJjaGFyIjoi5bexIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi5paHIn0seyJjaGFyIjoi5Lu2In0seyJjaGFyIjoi5aS5In0seyJjaGFyIjoi6LevIn0seyJjaGFyIjoi5b6EIn0seyJjaGFyIjoi5bCxIn0seyJjaGFyIjoi5Y+vIn0seyJjaGFyIjoi5LulIn1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiMTYxNS0xNjAzMzQyMjQ2ODk2IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImJhY2stY29sb3IiOiIifSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiVCJ9LHsiY2hhciI6IkYifSx7ImNoYXIiOiJUIn0seyJjaGFyIjoiUCJ9LHsiY2hhciI6Il8ifSx7ImNoYXIiOiJBIn0seyJjaGFyIjoiRCJ9LHsiY2hhciI6IkQifSx7ImNoYXIiOiJSIn0seyJjaGFyIjoiRSJ9LHsiY2hhciI6IlMifSx7ImNoYXIiOiJTIn0seyJjaGFyIjoiPSJ9LHsiY2hhciI6IlwiIn0seyJjaGFyIjoiOiJ9LHsiY2hhciI6IjYifSx7ImNoYXIiOiI5In0seyJjaGFyIjoiXCIifV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiI5OTg0LTE2MDMzNDIyNDY4OTYiLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYmFjay1jb2xvciI6IiJ9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W3siY2hhciI6IiAifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiJUIn0seyJjaGFyIjoiRiJ9LHsiY2hhciI6IlQifSx7ImNoYXIiOiJQIn0seyJjaGFyIjoiXyJ9LHsiY2hhciI6Ik8ifSx7ImNoYXIiOiJQIn0seyJjaGFyIjoiVCJ9LHsiY2hhciI6IkkifSx7ImNoYXIiOiJPIn0seyJjaGFyIjoiTiJ9LHsiY2hhciI6IlMifSx7ImNoYXIiOiI9In0seyJjaGFyIjoiXCIifSx7ImNoYXIiOiItIn0seyJjaGFyIjoiLSJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoiYyJ9LHsiY2hhciI6InUifSx7ImNoYXIiOiJyIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6IlwiIn1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiNjMzOS0xNjAzMzQyMjQ2ODk2IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImJhY2stY29sb3IiOiIifSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiJzIn0seyJjaGFyIjoidSJ9LHsiY2hhciI6ImQifSx7ImNoYXIiOiJvIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoiciJ9LHsiY2hhciI6InYifSx7ImNoYXIiOiJpIn0seyJjaGFyIjoiYyJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6ImYifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoicCJ9LHsiY2hhciI6ImQifSx7ImNoYXIiOiItIn0seyJjaGFyIjoiaCJ9LHsiY2hhciI6InAifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6InIifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoicyJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoiciJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoiICJ9LHsiY2hhciI6IiMifSx7ImNoYXIiOiLkv64ifSx7ImNoYXIiOiLmlLkifSx7ImNoYXIiOiLlrowifSx7ImNoYXIiOiLpnIAifSx7ImNoYXIiOiLopoEifSx7ImNoYXIiOiLph40ifSx7ImNoYXIiOiLlkK8ifSx7ImNoYXIiOiLkuIsifSx7ImNoYXIiOiLmnI0ifSx7ImNoYXIiOiLliqEifV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fV0=--><!--EndFragment-->

复制代码 3.然后回到windows,还是使用这个软件的串口Serial连接我们的开发板,启动完成进入U-Boot(hisilicon)的界面。

7.png (59.81 KB, 下载次数: 0)

下载附件  保存到相册  

1 小时前 上传

4. 点击录制,然后在uboot依次输入以下命令,输入完成点击结束录制,刚才输入的命令就被制作成宏了



  • setenv ipaddr 192.168.0.208
      
  • setenv ethaddr 00:11:22:33:44:55
      
  • setenv netmask 255.255.255.0
      
  • setenv gatewayip 192.168.0.1
      
  • setenv serverip 192.168.0.220
      
  • #这5条命令用于配置uboot的网络环境,以便使用tftp,可以直接uboot下设置,然后saveenv,这样就不用写到宏里面了。
      

  •   
  • mw.b 0x81000000 0xFF 0x4f0000                  #清空一块内存区域
      
  • tftp 0x81000000 OHOS_Image.bin                #从tftp服务器下载镜像到内存
      
  • mmc write 0x0 0x81000000 0x800 0x2780   #从内存写入mmc
      

  •   
  • mw.b 0x81000000 0xFF 0xe05c00                #下面烧录这两个文件是同样的道理
      
  • tftp 0x81000000 rootfs.img
      
  • mmc write 0x0 0x81000000 0x5000 0x702e
      

  •   
  • mw.b 0x81000000 0xFF 0x3200000
      
  • tftp 0x81000000 useRFs.img
      
  • mmc write 0x0 0x81000000 0xc800 0x19000

复制代码 5. 当然你可以修改宏的内容,修改输入的命令,时间间隔等等,按照自己的方式自定义。



clipboard.png (228.68 KB, 下载次数: 0)

下载附件  保存到相册  

1 小时前 上传

6. 录制完成可以重命名“烧录”,当然也可以在SSH服务器界面录制宏,python3 build.py ipcamera_hi3516dv300 -b debug重命名“构建”



8.png (126.44 KB, 下载次数: 0)

下载附件  保存到相册  

1 小时前 上传

7.如此一来就真正实现,一键编译,一键烧录了。当然你还可以录制USB的烧录,这里我也只是抛砖引玉,其他姿势,请自行解锁。



clipboard1.png (31.9 KB, 下载次数: 0)

下载附件  保存到相册  

1 小时前 上传

8.因为串口只能独占,使用这种方式,烧录的时候,就不需要重新断电上电开发板,也不需要来回切换串口工具。更重要的是学习到了u-boot关于tftp的一下操作指令。

注意:免费用户可以生成4条宏命令,已经够用了,不够用也可以支持下正版。



  • 还有一个功能代码高亮显示
      


9.png (362.58 KB, 下载次数: 0)

下载附件  保存到相册  

1 小时前 上传

1. 不知道你有没有一大堆消息里找第一行报错的经历,命令行看的头晕眼花,而MobaXterm就实现了高亮文本这样的小功能,巴适。

2. 设置很简单,将需要高亮的关键词设置到对应的颜色保存即可,关键词要逗号隔开就行了。



10.png (140.48 KB, 下载次数: 0)

下载附件  保存到相册  

1 小时前 上传

好了,以上就我在开发中使用的小技巧了,希望对你有所帮助,好用别忘了给我点个赞
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表