build_portal环境搭建及使用

下面分别从build_portal环境的搭建及使用两个方面介绍:

build_portal环境搭建

cd  existing_repo
git clone https://github.com/siemens/kas.git
cd kas
sudo pip3 install .

注意

在构建 FreeRTOS 和 Unmatched(加上softbus模块)的时候,还需要配置和指定外部的 RISC-V GNU 编译工具链。

git clone https://gitee.com/mirrors/riscv-gnu-toolchain
cd riscv-gnu-toolchain
git rm qemu
git submodule update --init --recursive
./configure --prefix=/opt/riscv64-linux
sudo make linux -j $(nproc)
export PATH="$PATH:/opt/riscv64-linux/bin"

在Ubuntu 20.04环境下,需要安转的软件包

sudo apt install chrpath diffstat zstd  device-tree-compiler lz4 gawk tmux

在openEuler 22.03环境下,需要安转的软件包

sudo yum install python3-newt  g++ patch  rpcgen chrpath  diffstat zstd lz4 tmux dtc vim-common

在Ubuntu 20.04环境下,需要设置 python 软链接(softbus编译需要python3的环境)

sudo ln -s /usr/bin/python3.8 /usr/bin/python

在openEuler 22.03环境下,需要设置 python 软链接(softbus编译需要python3的环境)

sudo ln -s /usr/bin/python3.9 /usr/bin/python

build_portal使用

build_portal环境搭建完成之后,接下来下载编译构建PolyOS入口

cd  existing_repo
git clone https://gitee.com/riscv-raios/build_portal.git
cd build_portal
PATH=${PATH}:~/.local/bin kas menu

此时,会看到编译构建PolyOS的menu界面,可根据预编译的目标板卡进行选择。具体情况说明如下:

编译penglai

../_images/penglai.jpg

penglai 编译界面

根据这个界面提示,使用SPACE键选择编译目标板卡的类型,再使用键盘上的键盘方向键,点击“Save & Build”按钮。代码可以自动执行。

在此编译环境下,当编译新的目标板卡时,使用ll命令,删除 .config.yaml 配置文件,该界面生效。

用KAS编译出的镜像,运行蓬莱的示例程序,只显示主机端的应用输出信息。如果要显示所有信息内容,每次进入系统后输入:

echo "7  4    1    7" >/proc/sys/kernel/printk

编译FreeRTOS

在编译之前,需要先安装编译工具链,进行以下操作:

cd /opt/
sudo curl -O -L "https://static.dev.sifive.com/dev-tools/riscv64-unknown-elf-gcc-20181030-x86_64-linux-ubuntu14.tar.gz"
sudo tar xzf riscv64-unknown-elf-gcc-20181030-x86_64-linux-ubuntu14.tar.gz
sudo mv riscv64-unknown-elf-gcc-20181030-x86_64-linux-ubuntu14 riscv-new

额外需要安装的软件包:

sudo pip install pillow
../_images/freertos.jpg

FreeRTOS 编译界面

根据这个界面提示,使用SPACE键选择编译目标板卡的类型,再使用键盘上的键盘方向键,点击“Save & Build”按钮。代码可以自动执行。

在此编译环境下,当编译新的目标板卡时,使用ll命令,删除 .config.yaml 配置文件,该界面生效。

编译starfive

../_images/starfive.jpg

starfive 编译界面

根据这个界面提示,使用SPACE键选择编译目标板卡的类型,再使用键盘上的键盘方向键,点击“Save & Build”按钮。代码可以自动执行。

在此编译环境下,当编译新的目标板卡时,使用ll命令,删除 .config.yaml 配置文件,该界面生效。

编译nuclei

../_images/nuclei.jpg

nuclei 编译界面

根据这个界面提示,使用SPACE键选择编译目标板卡的类型,再使用键盘上的键盘方向键,点击“Save & Build”按钮。代码可以自动执行。

在此编译环境下,当编译新的目标板卡时,使用ll命令,删除 .config.yaml 配置文件,该界面生效。

编译nezha

首先要本地下载lib32的库

cd  /

sudo git clone https://gitee.com/riscv-raios/nezha-lib32

sudo mv nezha-lib32  lib32

sudo chmod -R  777 lib32

在openEuler 22.03环境下,选择KAS编译前,需要输入

sudo yum install dtc busybox libnsl perl-Text-Template
../_images/nezha.jpg

nezha 编译界面

根据这个界面提示,使用SPACE键选择编译目标板卡的类型,再使用键盘上的键盘方向键,点击“Save & Build”按钮。代码可以自动执行。

在此编译环境下,当编译新的目标板卡时,使用ll命令,删除 .config.yaml 配置文件,该界面生效。

编译xiangshan

../_images/xiangshan.jpg

xiangshan 编译界面

根据这个界面提示,使用SPACE键选择编译目标板卡的类型,再使用键盘上的键盘方向键,点击“Save & Build”按钮。代码可以自动执行。

在此编译环境下,当编译新的目标板卡时,使用ll命令,删除 .config.yaml 配置文件,该界面生效。

注意

由于香山开发板对内存有着严格的限制,当 build_portal 文件夹下的 common-xiangshan-bbl.yml 里面的repos工程下载到本地之后,需要先进行中断,对 meta-raios 进修修改。修改方式参见:meta-xiangshan的编译和使用4.增加AI框架部分

编译nutshell

首先选择编译Nutshell vmlinux,点击“Save & Build”按钮,进行编译。

../_images/vmlinux.jpg

nutshell 编译 vmlinux 界面

vmlinux编译好后,删除 .config.yaml 配置文件,然后选择编译Nutshell bbl,点击“Save & Build”按钮,进行编译。

../_images/bbl.jpg

nutshell 编译 bbl 界面

bbl编译好后,删除 .config.yaml 配置文件,最后选择编译Nutshell filesystem,点击“Save & Build”按钮,进行编译。

../_images/fs.jpg

nutshell 编译 filesystem 界面

编译cambricon

../_images/cambricon.jpg

cambricon 编译界面

根据这个界面提示,使用SPACE键选择编译目标板卡的类型,再使用键盘上的键盘方向键,点击“Save & Build”按钮。代码可以自动执行。

在此编译环境下,当编译新的目标板卡时,使用ll命令,删除 .config.yaml 配置文件,该界面生效。

编译kendryte

../_images/kendryte.png

kendryte 编译界面

根据这个界面提示,使用SPACE键选择编译目标板卡的类型,再使用键盘上的键盘方向键,点击“Save & Build”按钮。代码可以自动执行。

在此编译环境下,当编译新的目标板卡时,使用ll命令,删除 .config.yaml 配置文件,该界面生效。

编译unmatched

../_images/unmatched.jpg

unmatched 编译界面

根据这个界面提示,使用SPACE键选择编译目标板卡的类型,再使用键盘上的键盘方向键,点击“Save & Build”按钮。代码可以自动执行。

在此编译环境下,当编译新的目标板卡时,使用ll命令,删除 .config.yaml 配置文件,该界面生效。

编译visionfive2

../_images/visionfive2.png

visionfive2 编译界面

根据这个界面提示,使用SPACE键选择编译目标板卡的类型,再使用键盘上的键盘方向键,点击“Save & Build”按钮。代码可以自动执行。

在此编译环境下,当编译新的目标板卡时,使用ll命令,删除 .config.yaml 配置文件,该界面生效。