> [!NOTE] > ~~由于 riscv64 尚不支持完全在容器环境下在 QEMU 中运行镜像,因此若想看到在 riscv64 上做的修改,请在主机上运行 `cd tools && bash bootstrap.sh` 以完善运行环境。鉴于这种方式容易带来环境依赖上的污染,我们正在迁移至 Dev Container 环境中,由此造成的不便我们十分抱歉~~~ 自4月26日起,riscv64可以稳定在 `devcontainer` 内编译并启动。 目前已将 DragonOS oscomp 分支迁移到 riscv64 作为默认编译条件。 目前 DragonOS 对不同平台的支持情况: | | x86_86 | riscv64 | loongarch64 | | --- | --- | --- | --- | Container Build & Run | | X | X | | Container Build & Host Run | X | X | X | | Host Build & Host Run | X | X | X | ## 迁回 x86_64 参考 https://docs.dragonos.org.cn/introduction/build_system.html#riscv64 修改 `env.mk` `.vscode/settings.json` `dadk-manifest.toml` 把 `env.mk` `dadk-manifest.toml` 里面的ARCH的值改为 `riscv64`,并且在 `setting.json` 里面注释 `"rust-analyzer.cargo.target": "riscv64-unknown-none",` 并取消注释另一项。 x86_64架构,可以在内核中生成 kernel.elf 后,退回用户态执行 `make ci-gendisk` 操作 ## 编译用户程序 ~~直接进入 devcontainer 并不能 make user。CI 容器中不含 `x86_64-unknown-linux-musl` 工具链,因此需要手动添加该环境以编译部分用户程序。~~ riscv64已经支持用户程序编译,x86_64部分支持。
Note
由于 riscv64 尚不支持完全在容器环境下在 QEMU 中运行镜像,因此若想看到在 riscv64 上做的修改,请在主机上运行自4月26日起,riscv64可以稳定在cd tools && bash bootstrap.sh以完善运行环境。鉴于这种方式容易带来环境依赖上的污染,我们正在迁移至 Dev Container 环境中,由此造成的不便我们十分抱歉~devcontainer内编译并启动。目前已将 DragonOS oscomp 分支迁移到 riscv64 作为默认编译条件。
目前 DragonOS 对不同平台的支持情况:
迁回 x86_64
参考 https://docs.dragonos.org.cn/introduction/build_system.html#riscv64
修改
env.mk.vscode/settings.jsondadk-manifest.toml把
env.mkdadk-manifest.toml里面的ARCH的值改为riscv64,并且在setting.json里面注释"rust-analyzer.cargo.target": "riscv64-unknown-none",并取消注释另一项。x86_64架构,可以在内核中生成 kernel.elf 后,退回用户态执行
make ci-gendisk操作编译用户程序
直接进入 devcontainer 并不能 make user。CI 容器中不含x86_64-unknown-linux-musl工具链,因此需要手动添加该环境以编译部分用户程序。riscv64已经支持用户程序编译,x86_64部分支持。