# ohos_dev_manual **Repository Path**: flipflop/ohos_dev_manual ## Basic Information - **Project Name**: ohos_dev_manual - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-01-14 - **Last Updated**: 2022-02-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Openharmony LiteOS-A 容器化项目开发手册 - 开发环境 - 构建流程 - 开发流程 - 提交流程 - 开发指引 ## 开发环境 ### Linux #### 开发环境 Linux上进行开发需要准备: - 代码管理工具:repo,git - 代码编辑工具:vim,code - 构建环境:docker 以下以ubuntu为例演示上述工具安装: ```bash # 安装依赖 sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common # 添加vscode仓库 wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/ sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list' rm -f packages.microsoft.gpg # 添加docker仓库 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository \ "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \ $(lsb_release -cs) \ stable" # 通过apt安装各种软件 sudo apt-get update sudo apt-get install git git-lfs docker-ce code vim # 添加repo mkdir ~/.bin pushd ~/.bin curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo chmod +x repo popd echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'" >> ~/.bashrc echo "export PATH=$PATH:~/.bin" >> ~/.bashrc . ~/.bashrc ``` #### 构建环境 推荐使用Docker,因为主线代码的开发环境可能会变,而且引入的依赖比较多,用Docker避免污染本机开发环境。 ##### 使用官方镜像 使用官方镜像可以不用自己重新构建编译用的镜像,华为云下载还是很快的: ```bash docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.6 ``` 添加一个和本机环境相同UID的用户(一般为1000)从而保持挂载文件的一致性,同时安装缺少的依赖(如果存在)以及qemu。将改动后的镜像标记为新的镜像。 ```bash echo << EOF FROM swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.6 RUN apt-get update && apt-get install -y sudo && useradd -m -s /bin/bash hrg && echo "%hrg ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers RUN apt-get install -y qemu-system-arm && pip3 install ninja2 USER hrg EOF | docker build -t ohos_build:0.0.6 ``` 使用时,挂载代码所在文件夹,指定使用添加的本地用户进行登录 ```bash docker run -it --name ohos_build -v $PWD/openharmony:/home/opanharmony -p 5920:5920 ohos_build:0.0.6 ``` #### 构建环境验证 执行如下指令验证开发环境正确性: ```bash hb set -p qemu_small_system_demo hb build bash qemu-run ``` 此时按`y`确认,应能够正常启动进入系统。 ## 构建流程 ### 产品选择 第一次构建需要运行`hb set`,根据定义的产品(构建目标)灵活选择参数,这里使用`qemu_small_system_demo`(qemu目标gui demo)。后续为了方便开发流程,会定义不同的产品。 ```bash hb set -p qemu_small_system_demo ``` ### 构建 第一次进行构建需要进行全量构建,直接运行: ```bash hb build ``` 等待构建结束。 ### 选择目标构建 使用`hb build`可以通过`-T`参数指定构建目标: ```bash hb build -T 目标1 目标2 ... ``` 开发迭代时,为了方便构建,可以选择性地构建一部分目标,具体目标可以在`out/${板子名}/${产品名}/build.ninja`查看。一般来说常用的构建目标有以下几种: - `build_kernel_image`: 重新构建内核镜像,当修改内核时,需要加上此项。 - `rootfs`:重新打包根文件系统,每次更新代码都需要加上此项。 对于自定义的模块,构建目标名称可以参照`build.gn`中对应项使用的名称。 常用的: - 更新内核: ```bash hb build -T build_kernel_image rootfs ``` ## 开发流程