本地环境安装

1. 简介 #

rel4 目前本质上是 seL4 链接的一个静态库,因此二者可以在同一个环境中编译、运行。换句话说,rel4 只需要在 seL4 编译运行环境的基础上增加 rust 安装即可。

我已经写了一个环境安装脚本,本文会根据该脚本介绍安装过程。

脚本在 Ubuntu20.04 和 Ubuntu22.04 经过测试,其他环境无法执行。

由于网络原因,在 Docker 中进行开发比较痛苦,加上之前已经有做过的 rel4 开发镜像,因此本文只介绍如何在本地环境安装 rel4 && seL4 依赖

2. 快速安装 #

如果你不想了解细节,可以执行脚本安装。执行脚本安装前,最好配置好科学上网,否则无法保证执行成功。

curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/rel4team2/build-scripts/refs/heads/mi_dev/scripts/install.sh | bash

如果因为网络原因,无法访问 raw.githubusercontent,可以 clone 后执行

git clone https://github.com/croakexciting/rel4_doc.git
cd rel4_doc
bash scripts/install.sh

如果因为网络原因,无法下载 qemu 和 riscv toolchain,请看下面环境安装介绍。

3. seL4 && rel4 runtime 环境安装 #

seL4 && rel4 环境安装基本按照 seL4 环境配置文档rel4 dockerfile 执行。

function install_rel4_runtime() {
    install_apt
    install_pip
    install_qemu_and_toolchain
    install_rust

    echo "export PATH=\${PATH}:${HOME}/.local/bin:${HOME}/Downloads/riscv/bin" >> ${HOME}/.bashrc
    echo "source \$HOME/.cargo/env" >> ${HOME}/.bashrc
}

其中需要注意的是 qemu 和 toolchain 下载过程可能会失败。如果网络不好,可以下载后放到 ~/Downloads 下并解压,脚本会跳过下载步骤

mv qemu-8.2.5.tar.xz ~/Downloads
mv riscv.tar.gz ~/Downloads
cd ~/Downloads
tar xvJf qemu-8.2.5.tar.xz
tar xzvf riscv.tar.gz

4. rust-sel4 runtime 环境安装 #

使用 rust-sel4 时,可以使用其 docker 环境 运行 demo 程序。同样为了简化使用,install 脚本中可以将该环境安装到本地

该环境中的 seL4 kernel.elf 与 rel4 无关,版本也不同。所以目前只是按照 rust-sel4 官方文档,在 seL4 原生 kernel 上运行 demo。后续会将 kernel.elf 替换为 rel4 项目中的 kernel

由于安装该脚本需要 rust-2024-09-01 以上版本,因此不要在有 rust-toolchain.toml 的文件夹中运行该脚本,以免 rust 版本冲突

git clone https://github.com/croakexciting/rel4_doc.git
cd rel4_doc

# install all, include rel4 runtime and rust-seL4 runtime env
bash scripts/install.sh -a

# or only install rust-sel4 runtime env
bash scripts/install.sh -r