2022-03-31 17:17:16
0
写在前面:因上一篇编写了个自己的airquality程序,想跑到板子上,但用SD卡装载需要工具,就需要搭建环境。说实话这个环境搭建比较费劲,标准系统的环境搭建我这里有问题,需要接下来要解决的。小型系统正在编译,中间也出现了个问题。但根据链接里面的方法解决了,认真读开头几行字。
根据连志安老师的鸿蒙搭建环境,下载老师的虚拟机直接来用。地址:第1~2章 鸿蒙系统介绍 和 编译环境搭建 持续更新 - HarmonyOS技术社区 - 电子技术论坛 - 广受欢迎的专业电子论坛! (elecfans.com)
根据华为官网文档搭建linux下统一使用Linux环境进行开发、编译和烧录踩坑日志。
问题1:changing permissions of ‘run_upgrader.sh’:Read-only file system
老师的虚拟机估计是台式机,我用的笔记本。其中一个硬盘没有,用命令查看磁盘如下:
网上查说是修复一些磁盘就可以。百度吧,发现一篇文章解决了只读的问题。按照他的方法修复磁盘,查看文件系统类型
df -T
缺少扩展分区/dev/sda2啊,难道台机到笔记本还有问题????
修复试一试吧:fsck.ext4 -y /dev/sda5不能修复。
自己从头搭建开发环境吧
1、下载Ubuntu20.04镜像(Download Ubuntu Desktop | Download | Ubuntu),我电脑有Vmware了就不管了,没有的下载一下自己安装。镜像比较大,下载需要时间,时间都去哪儿了,哈哈哈。
2、打开Vmware新建虚拟机,中间配置过程如下图所示。
图1打开虚拟机新建向导
图2 设置虚拟机名称及用户名和密码
图3 虚拟机数据保存位置
图4 虚拟机文件存储设置
图5 完成虚拟机设置
3、虚拟机设置完成后,就开始了漫长的Ubuntu20.04操作系统的安装过程。先拷贝数据,再安装操作系统。等待……
图6 Ubuntu安装过程
图7 安装完成图
4、Ubuntu下安装安装DevEco Device Tool
DevEco Device Tool基于Visual Studio Code进行扩展,在Visual Studio Code上以插件方式运行,Visual Studio Code版本为1.60及以上。同时,DevEco Device Tool还依赖Python工具,并要求Python为3.8~3.9版本。
在安装过程中,DevEco Device Tool会自动检查Visual Studio Code和Python,如果检测到Visual Studio Code、Python未安装或版本不符合要求,安装程序会自动安装Visual Studio Code和Python。
A、修改Ubuntu的shell环境为bash,首先查看一下shell如图8所示。
图8 查看shell环境
B、修改bash环境,执行命令sudo dpkg-reconfigure dash,选择no进行设置。
图9 shell改为bash
C、下载DevEco Device Tool 3.0 Beta2Linux版本,下载时,请先使用华为开发者帐号进行登录后下载。如未注册华为开发者账号,请先注册。
D、下载好的工具包拷贝到Ubuntu,解压安装。如图10所示。
图10 安装工具
问题1:如图11所示,没有python3.8-venv,安装后重新安装工具。
图11 问题1
安装成功截图如图12所示,出现Deveco Device Tool successfully installed说明安装成功。
图12 安装完成工具
E、点击Ubuntu左下角应用程序进入口,输入v就可显示出刚刚安装成功的Visual Studio Code,点击启动。安装DevEco Device Tool依赖C/C++、CodeLLDB插件。安装完成图片如图13所示。
图13 安装插件
F、重启Visual Studio Code,点击进入DevEco Device Tool工具界面。至此,DevEco Device Tool Ubuntu开发环境安装完成。
5、获取源码
我已经注册过码云,生成/添加SSH公钥如下代码。
ssh-keygen -t rsa -C "xxxxxxx@qq.com"
三次回车后就生成了ssh key。cat ~/.ssh/id_rsa.pub得到ssh公钥,拷贝贴到码云安全设置SSH公钥中。Ubuntu中输入ssh -T git@giteee.com需要确认并添加主机到本机SSH可信列表。如图14所示。
图14 生成/添加SSH公钥
首先安装git,sudo apt install git。再安装git-lfs,管理大文件工具好像二进制文件需要这个下载。
curl -s https://packagecloud.io/install/ ... t-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install
Ubuntu下安装git客户端和git-lfs并配置用户信息。
git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store
安装截图如15所示。
图15 配置git
安装curl,sudo apt install curl。安装pip3,sudo apt install python3-pip。
安装码云repo工具。
curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/repo
chmod a+x ~/repo
ln -s ~/repo /usr/local/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
如图16所示,图中chmod a+u ~/repo并没有设置执行权限导致后面Permission denied,又重新加上的+x权限。
图16 安装repo
通过repo+ssh下载(需注册公钥,参考码云帮助中心)。
repo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v3.0-LTS --no-repo-verify
repo sync -c 时间比较久,应该是我的网络和硬件不咋滴导致。
repo forall -c 'git lfs pull'
6、创建应用程序helloworld
修改源码,在单板上运行第一个应用程序,包括新建应用程序、编译、烧写、运行等,最终输出Hellow World!。
新建目录如下:
- applications/standard/hello
- ├── helloworld
- │ ├── include
- │ │ └── helloworld.h
- │ └── src
- │ └── helloworld.c
- ├── BUILD.gn
- ├── ohos.build
- │
- │
- productdefine/common
- └── products
- └── Hi3516DV300.json
复制代码
helloworld.c文件内容如下:
- #include <stdio.h>
- #include "helloworld.h"
- int main(int argc, char **argv)
- {
- HelloPrint();
- return 0;
- }
- void HelloPrint()
- {
- printf("n************************************************n");
- printf("nttHello World!n");
- printf("n************************************************n");
- }
复制代码
helloworld.h文件如下:
- #ifndef HELLOWORLD_H
- #define HELLOWORLD_H
- #ifdef __cplusplus
- #if __cplusplus
- extern "C"{
- #endif
- #endif
- void HelloPrint();
- #ifdef __cplusplus
- #if __cplusplus
- }
- #endif
- #endif
- #endif //HELLOWORLD_H
复制代码 BUILD.gn文件内容如下:
- import("//build/ohos.gni") #load build module
- ohos_executable("helloworld"){
- sources = [
- "src/helloworld.c"
- ]
- include_dirs = [
- "include"
- ]
- cflags = []
- cflags_c = []
- cflags_cc = []
- ldflags = []
- configs = []
- deps = []
- part_name = "hello"
- install_enable = true
- }
复制代码 ohos.build文件内容如下:
- {
- "subsystem":"applications",
- "parts":{
- "hello":{
- "version":"1.0.0",
- "variants":[
- "wearable",
- "phone"
- ],
- "module_list":[
- "//applications/standard/hello:helloworld"
- ],
- "inner_kits":[
- ],
- "test_list":[
-
- ]
- }
- }
- }
复制代码 Hi3516DV300.json文件在第83行增加:"applications:hello":{},
7、编译helloworld
使用安装包方式获取编译工具链,安装依赖工具命令如下:
sudo apt-get update && sudo apt-get install binutils git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby
执行prebuilts,在源码根目录下执行如下脚本,安装编译器及二进制工具。
bash build/prebuilts_download.sh
编译,进入源码目录执行:./build.sh --product-name Hi3516DV300 --ccache
8、问题及解决方法
在整个过程中出现了许多个问题,每次问题有提示的根据提示进行操作,没有提示的贴到百度查一下,试着各种方法进行操作,看是否能够解决问题。
问题1:找不到python的问题,因安装的版本为python3.8.10,软连接到python即可。如图erro0所示。
erro1
问题2:未生成SSH密钥导致,根据图14生成密钥贴到码云密钥管理即可解决。
erro2
问题3:git-lfs没有安装,安装git-lfs,图14下面有代码。
erro3
问题4:sudo apt install git-all出现源问题,网上查找修改DNS。修改/etc/resolv.conf里面sudo gedit /etc/resolv.conf,修改nameserver 202.96.128.86。
erro4
问题5 :编译./build.sh --product-name Hi3516DV300 --ccache出现问题
期待问题解决。
erro5
文档已经非常长了,后面的问题下一个文档继续。因为上面编译标准系统,同时我也在编译轻量系统,后面文档继续。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
侵权投诉