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 libssl-dev
在openEuler 22.03环境下,需要安转的软件包
sudo yum install python3-newt g++ patch rpcgen chrpath diffstat zstd lz4 tmux dtc vim-common openssl-devel
在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¶

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

FreeRTOS 编译界面¶
根据这个界面提示,使用SPACE键选择编译目标板卡的类型,再使用键盘上的键盘方向键,点击“Save & Build”按钮。代码可以自动执行。
在此编译环境下,当编译新的目标板卡时,使用ll命令,删除 .config.yaml
配置文件,该界面生效。
编译starfive¶

starfive 编译界面¶
根据这个界面提示,使用SPACE键选择编译目标板卡的类型,再使用键盘上的键盘方向键,点击“Save & Build”按钮。代码可以自动执行。
在此编译环境下,当编译新的目标板卡时,使用ll命令,删除 .config.yaml
配置文件,该界面生效。
编译nuclei¶

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

nezha 编译界面¶
根据这个界面提示,使用SPACE键选择编译目标板卡的类型,再使用键盘上的键盘方向键,点击“Save & Build”按钮。代码可以自动执行。
在此编译环境下,当编译新的目标板卡时,使用ll命令,删除 .config.yaml
配置文件,该界面生效。
编译xiangshan¶

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”按钮,进行编译。

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

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

nutshell 编译 filesystem 界面¶
编译cambricon¶

cambricon 编译界面¶
根据这个界面提示,使用SPACE键选择编译目标板卡的类型,再使用键盘上的键盘方向键,点击“Save & Build”按钮。代码可以自动执行。
在此编译环境下,当编译新的目标板卡时,使用ll命令,删除 .config.yaml
配置文件,该界面生效。
编译kendryte¶

kendryte 编译界面¶
根据这个界面提示,使用SPACE键选择编译目标板卡的类型,再使用键盘上的键盘方向键,点击“Save & Build”按钮。代码可以自动执行。
在此编译环境下,当编译新的目标板卡时,使用ll命令,删除 .config.yaml
配置文件,该界面生效。
编译unmatched¶

unmatched 编译界面¶
根据这个界面提示,使用SPACE键选择编译目标板卡的类型,再使用键盘上的键盘方向键,点击“Save & Build”按钮。代码可以自动执行。
在此编译环境下,当编译新的目标板卡时,使用ll命令,删除 .config.yaml
配置文件,该界面生效。
编译visionfive2¶

visionfive2 编译界面¶
根据这个界面提示,使用SPACE键选择编译目标板卡的类型,再使用键盘上的键盘方向键,点击“Save & Build”按钮。代码可以自动执行。
在此编译环境下,当编译新的目标板卡时,使用ll命令,删除 .config.yaml
配置文件,该界面生效。
编译K230¶

K230 编译界面¶
根据这个界面提示,使用SPACE键选择编译目标板卡的类型,再使用键盘上的键盘方向键,点击“Save & Build”按钮。代码可以自动执行。
在此编译环境下,当编译新的目标板卡时,使用ll命令,删除 .config.yaml
配置文件,该界面生效。