[i=s] 本帖最后由 jf_58250416 于 2022-5-23 16:15 编辑 [/i]
[i=s] 本帖最后由 jf_58250416 于 2022-5-16 09:51 编辑 [/i]
ohos_riscv on D1构建流程记录
日期:2022/05/14
中科院空天信息创新研究院riscv组
@copyright (c) 2022 AIRCAS
环境配置
编译需要linux环境,前期出错可能较多,推荐虚拟机方式-vmware,安装空间需要50G以上。
源码获取
ssh-keygen -t ed25519 -C "XXXX@XXXX.com"
cat ~/.ssh/id_ed25519.pub
sudo apt-get install git-all
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install curl
sudo curl https:
sudo cp tmp /usr/local/bin/repo
sudo chmod a x /usr/local/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
sudo apt-get install python3-pip
mkdir OpenHarmony && cd OpenHarmony
ll
sudo git init
git config --global user.email XXXX@XXXX.com
git config --global user.name XXXX
repo init -u https:
repo sync -c
出现error.GitError: Cannot initialize work tree for XX 时先尝试多次重新运行。
repo forall -c 'git lfs pull'
如果出现 git lfs is not a git command,则执行:
sudo apt-get install git-lfs
bash build/prebuilts_download.sh
出现npm问题参考https://toscode.gitee.com/openharmony/docs/issues/I4NW2Y
从 https://pan.baidu.com/s/19JVNwFrl5ISOAsruW_y9hA 提取码: chds 下载llvm-riscv工具链llvm-riscv-1124.tar.gz(临时使用),解压到OpenHarmony/prebuilts/clang/ohos/linux-x86_64/llvm-riscv/
sudo apt-get install -y docker.io
sudo docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.4
sudo docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.4
rm -r /usr/lib/gcc/x86_64-linux-gnu/8
cd /usr/lib/gcc/x86_64-linux-gnu/ && ls
哪吒D1构建
源码编译构建环境中D1支持内核和文件系统打包,方便开发者进行验证。
编译源码
- 改json,这一步是因为之前json配置不满足,后期应该会调整完善。
- 要在docker下编译,docker在源目录下运行。
sudo apt-get install flex
sudo apt-get install bison ccache
./build.sh --product-name sunxi_d1 --ccache
test ./build.sh --product-name ohos-riscv64 --ccache
./device/sunxi/build/pack -e
出现ERROR: unable to open file boot-resource.fex,需要安装lib32stdc 6,参考
sudo apt-get install libstdc 6
sudo apt-get install lib32stdc 6
出现(ERROR: dl file rootfs.fex size too large)错误,需要修改device/sunxi/config/chips/d1/configs/nezha/sys_partition.fex,调大对应分区的size即可。
rootfs size修改成829200
[partition]
name = rootfs
生成ext4格式(可写)的rootfs,此时固件大小会超过256M(D1开发板flash总大小),无法直接烧写,需使用TF卡烧写方式。
TF卡烧写工具:PhoenixCardv4.2.7.7z登录后下载,烧写时将TF卡设定为启动卡。
烧写完成后就可以用串口工具查看及调试了,接线需要把电源及串口连线都连接上,参考 D1硬件简介,串口调试工具推荐xshell或者mobaxterm二选一,连接后选择创建serial端口,波特率115200.
开发板上UART口有3个插针,分别是GND、RX、TX,在开发板板身上有印上每个插针对应功能
官方提供的CH340串口线线序分别:黑色-GND,绿色-RX,白色-TX,红色为电源,此处不需要插,具体连接如下图。
如果没有别的问题,这时候就可以输入top、ls等命令进行验证了,本文着重流程的记录,如果对过程作用理解上有疑惑,则需要参照原文链接进行参考。
参考