# Phytium-seL4-Sdk **Repository Path**: phytium_embedded/phytium-seL4-sdk ## Basic Information - **Project Name**: Phytium-seL4-Sdk - **Description**: Phytium-driven,seL4 kernel-based,virtual machine and applications. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-03-06 - **Last Updated**: 2026-03-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Phytium Sel4 Sdk # 一、整体介绍 本 SDK 以开源微内核 seL4 为基础,借助 microkit 开发套件进行封装,结合Phytium-Standalone-SDK 提供的驱动组件,实现了用户态 Hypervisor 与 APP 用例程序。支持在飞腾 E2000 嵌入式 CPU 上运行,为用户提供高效且安全的虚拟化支持,同时配套完善的环境搭建脚本、系统使用说明与测评文档。基于 seL4 13.0.0-dev 版本,包含自研的用户态侧 VMM 虚拟机管理程序、microkit 标准 APP 和 Hypervisor 编写、SOC 适配、E2000 设备树信息以及相关开发工具等内容。 # 二、代码说明 ## example 目录 存放用户态 Hypervisor 与 APP 的用例程序,为开发者提供示例参考,展示如何基于该 SDK 进行应用和虚拟化管理程序的开发。 ## microkit 目录 存储 microkit 相关的开源代码,借助 microkit 开发套件,开发者可更便捷地进行基于 seL4 的应用开发, 利用其封装能力简化开发流程。 ## src/vmm 目录 包含 E2000 上使用的 seL4 用户态 VMM(虚拟机管理程序)源代码,负责虚拟机的创建、管理等虚拟化相关功能的实现。(此部分代码暂时放在example/hypervisor目录下) ## third-party 目录 放置适配于 seL4 系统的第三方相关代码,参考 Phytium-Standalone-SDK 中的 third-party 部分,为 SDK 提供额外的功能支持或依赖组件。 ## tools 目录 存放开发工具相关代码,如环境搭建脚本、配置构建工具等,助力开发者快速搭建开发环境、配置和构建系统。 ## diff 目录 存放seL4内核专用Phytium-Standalone-SDK 与 Phytium-Standalone-SDK 开源基线的差异对比文件,可以将seL4内核专用Phytium-Standalone-SDK同步到当前工作目录。 ## create_new_board.py 文件 用于创建新的开发板适配相关内容,帮助开发者针对不同的硬件开发板进行 SDK 的适配工作。 ## install.py 文件 执行环境安装相关操作,自动化完成 SDK 开发环境的搭建,简化开发者的环境配置流程。 ## seL4_sdkconfig 文件 存储 seL4 SDK 的配置信息,用于配置系统的各项参数、功能选项等,以满足不同的开发需求。 # 三、第一次使用 ## 第一步:安装sel4环境 在phytium-sel4-sdk根目录下执行以下命令: ``` ./install.py ``` 该脚本会自动安装sel4环境,并拉取相应的Phytium-Standalone-SDK驱动代码。 ## 第二步:编译example用例 在phytium-sel4-sdk根目录下执行以下命令: ``` cd example/hypervisor make boot ``` 该命令会编译example/hypervisor目录下的用例程序,生成对应的可执行文件。具体的用例使用方法参考example目录下的README.md文件。 # 四、注意事项 目前已经经过测试的环境有: ## Ubuntu 20.04 - Python 3.8.10 - rustc 1.87.0 (17067e9ac 2025-05-09) ## Ubuntu 24.04 - Python 3.12.3 - rustc 1.91.0 (f8297e351 2025-10-28) ## 第一次执行./install.py时,可能会pyenv出现TIMEOUT问题,可以考虑更换为国内镜像源。 ``` cd microkit/ pyenv/bin/pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pyenv/bin/pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn ``` 切换环境时,可能会遇到pyenv/bin/pip不存在的问题,此时删除旧的microkit/pyenv文件夹,重新执行./install.py即可。 ## 第一次执行执行make boot时,可能会存在“cargo not found问题”,microkit是基于Rust工具链进行编译的,需要先安装Rust工具链。必要时切换国内镜像源。 ``` curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source $HOME/.cargo/env ``` 再次执行make boot时,可能会提示Rust工具链缺少针对x86_64-unknown-linux-musl目标的标准库组件(也可能是其他组件),可以尝试使用rustup安装该组件。必要时切换国内镜像源。 ``` rustup target add x86_64-unknown-linux-musl ``` 编译过程中,因为所处系统环境不同,可能会存在其他组件缺失或者因为网络问题导致的timeout情况,依据报错信息进行排查和解决即可。