对鸿蒙操作系统和AI Camera Hi3516dDV300 开发过程的记录和理解

对鸿蒙操作系统和AI Camera Hi3516dDV300 开发过程的记录和理解

写在前面

鸿蒙的资料比较少,各方面出现报错之后可能无法解决,所以在开始开发的时候,千万不要乱搞,不然会出现很多重大错误,等之后理解之后,会发现走不少弯路。
我个人支持官网的框架,所以在开发前先看官网,具体遇到问题再逐个解决,官网作为主线,我使用全部linux端开发,包括华为deveco工具的使用、系统烧录等等。
在下载源码的时候不要嫌弃设置git公钥麻烦,因为它的速度确实蛮快的,另外注意需要安装git-lfs工具(在适当位置进行下载,下面会说),不然下载源码之后的构建无法完成。
官方仓库 https://gitee.com/openharmony/docs/blob/master/zh-cn/readme.md
下载git-lfs:

1. curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
2. sudo apt-get install git-lfs
3. git lfs install

我是使用标准系统入门的
官方仓库:
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-standard.md

对于大部分开发者而言,对于鸿蒙一就是开发环境的搭建,比如python、node等开发环境,如果习惯使用docker则可以直接跳过这一步,自己配置的话有一些好处,就是在之后遇到问题的时候能快速定位,也能增加对Linux构架的熟悉程度。

搭建好基本环境之后一个大头就是下载源码和编译,需要借助repo,对于不熟悉git的人来说可能有些不适应,其中也需要克服一些环境问题

鸿蒙的烧录比较特殊,所以烧录也是侧重环境端的难点。

下载源码的坑

首先需要安装repo,这可能需要权限对于大部分虚拟机来说,对于双系统而言需要修改下载路径和添加环境变量。

权限

我喜欢用可视化和su

sudo nautilus #如果拒绝访问则输入xhost local:nautilus赋予本地身份重试
sudo su   #或者用root权限

安装repo

依赖工具
sudo apt-get install git-core
sudo apt-get install git-core curl
下载repo
mkdir ~/bin/
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo 
权限
chmod a+x ~/bin/repo
环境变量
export PATH=~/bin:$PATH  #加到 ~/.bashrc可永久保存PATH环境变量
用户配置  为了使你的主机能够下载仓库   
git config --global user.email "yourname@163.com"
git config --global user.name "yourname" 
#git config --global --list可以查看录入的信息对不对
生成公钥
ssh-keygen -t ed25519 -C "ohoslinux"  #引号内是这个公钥的名称  
cat ~/.ssh/id_ed25519.pub  #复制到gitee里面账户去添加即可  具体可看https://gitee.com/help/articles/4181#article-header0
ssh -T git@gitee.com    #次使用需要确认并添加主机到本机SSH可信列表。
#若返回 Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access. 内容,则证明添加成功。
记得需要安装git lfs       ubuntu安装
1. curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
2. sudo apt-get install git-lfs
3. git lfs install
下载源码
repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'


源码下载成功就已经成功一大半了,但是上述命令千万要全部跑好哦 如果出现警告或者报错可以留言,用码云下载源码速度会快很多 大概十几分钟不到的样子
顺利到这里就恭喜各位啦

修改代码

见下面官网链接教程
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-create.md

ohos.build文件包含两个部分,第一部分subsystem说明该子系统的名称,parts定义该子系统包含的部件,要添加一个部件,需要把该部件对应的内容添加进parts中去。添加的时候需要指明该部件包含的模块module_list,假如有提供给其它部件的接口,需要在inner_kits中说明,假如有测试用例,需要在test_list中说明,inner_kits与test_list没有也可以不添加。
“applications:hello”:{}, # “部件所属子系统名:部件名”:{}

编译

https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-build.md
官网说的很清楚了

编译所生成的文件都归档在out/{device_name}/目录下,结果镜像输出在out/{device_name}/packages/phone/images/ 目录下。

编译之后镜像操作需要烧录,要找对路径

这有几个坑:

  1. 报错 找不到dataclasses模块
    方法 pip3 install对应模块
  2. 编译报错 查找log文件定位
    发现ohos.build里面不能有#号键备注 全部删除
  3. build.gn 文件存在不恰当缩进,删除
  4. [OHOS ERROR] ninja: error: ‘…/…/applications/standard/hello/src/helloworld.c’, needed by ‘obj/applications/standard/hello/src/helloworld/helloworld.o’, missing and no known rule to make it
    解决方法

烧录

下载deveco tool之后运行下载好的.sh文件
chmod u+x datelog.sh
赋予权限之后运行
./xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.sh
报错解决:
请添加图片描述
这个需要安装一些依赖关系包

sudo apt-get install python3.8-dev
sudo apt-egt install libffi-dev
pip install PyNaCl==1.4.0

运行完成之后再次运行sh文件

记录的一些小插曲

Ubuntu开机出错

the root filesystem on /dev/sda6 requires a manual fsck

这个错误是要求重新检测磁盘,和终端出现的报错是一起出现的,重启的时候可能会出错,可能是错误修改码云repo文件权限导致的
解决方法:

fsck /dev/sda6
#之后一路yes即可  最终输入reboot
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值