Skip to content
Open

Next #252

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
233 commits
Select commit Hold shift + click to select a range
d702ccc
a prototype of irq injection
aarkegz Dec 19, 2024
cc77eca
Merge branch 'master' into inject_interrupt
hky1999 Jan 9, 2025
9c5834c
support inject interrupts, with test codes on x86
aarkegz Jan 15, 2025
77353a8
Merge branch 'master' into inject_interrupt
aarkegz Jan 15, 2025
983c6df
[temp, to be squashed] mock timer
aarkegz Feb 7, 2025
c88ae96
a working version
aarkegz Mar 12, 2025
fe2e6e1
Merge branch 'master' into inject_interrupt
aarkegz Mar 17, 2025
612eb5f
fixing ce
aarkegz Mar 17, 2025
18447ad
a really working version
aarkegz Mar 19, 2025
0790058
impl `vmm::vcpu_num`
aarkegz Mar 26, 2025
a9c6c4a
update to newest dependencies
aarkegz Mar 26, 2025
f2c81af
Merge branch 'master' into inject_interrupt
aarkegz Apr 14, 2025
43dc1d1
fix Cargo.lock
aarkegz Apr 14, 2025
8acff23
feat(vmm): implement VGICv2 and integrate VirtIO
luodeb Mar 31, 2025
7da6227
fixes after merge debin/timer_api
aarkegz Apr 15, 2025
008c509
fix Cargo.lock
aarkegz Apr 16, 2025
844c4af
update hal impl
aarkegz Apr 16, 2025
9534ac6
temporary workaround for aarch64 tick rate
aarkegz Apr 17, 2025
5ef1dac
formatted
aarkegz Apr 17, 2025
634ef56
impl `alloc_contiguous_frames` for axvisor_api
aarkegz May 28, 2025
0c193a2
impl `dealloc_contiguous_frames` for axvisor_api
aarkegz May 28, 2025
f70ce1b
[wip] improve rk3588 scripts, wip in dtb parsing
hky1999 May 28, 2025
8a01606
[wip] on dtb parsing
hky1999 May 29, 2025
7f15074
[feat] introduce dtb parsing during vm config setup
hky1999 May 29, 2025
fc70c4b
[wip] data abort @1000a0
hky1999 Jun 1, 2025
526371e
[wip] add how to prepare linux kernel binary
hky1999 Jun 1, 2025
b441b8c
add place-holder implementation for new `axvisor_api`s
aarkegz Jun 5, 2025
9d23528
[feat] Support load ramdisk image from memory
Gallium70 Jun 6, 2025
1a9b3a3
[feat/rk3588] Add ramdisk image config for rk3588
Gallium70 Jun 6, 2025
a087449
[wip] boot Linux and arceos
hky1999 Jun 6, 2025
a29e940
[feat] add scripts of boot Linux and arceos on qemu
hky1999 Jun 7, 2025
5e13676
[feat] Remove unnecessary cooling-maps to allow automatic fan speed c…
Gallium70 Jun 7, 2025
634cac8
[fix] bad repo in Boot-on-qemu.md orz
hky1999 Jun 7, 2025
37a645c
Merge pull request #162 from Gallium70/rk3588_jd4
Gallium70 Jun 9, 2025
fd67bde
Merge remote-tracking branch 'origin/rk3588_jd4' into rk3588_jd4
Gallium70 Jun 9, 2025
b518194
[doc/rk3588] Update boot Linux VM instruction on custom kernel branch
Gallium70 Jun 9, 2025
0720a7e
[bug] Temporary fix for linux boot failure
Gallium70 Jun 7, 2025
2b69e6e
Merge branch 'rk3588_jd4' into rk3588_jd4_qemu
Gallium70 Jun 9, 2025
4f4bf97
[feat/rk3588] Add device tree and config for booting 2 VMs (Linux+Arc…
Gallium70 Jun 9, 2025
e6672fb
Remove absolute path in config and readme
Gallium70 Jun 9, 2025
6b6c981
[wip] introduce ivc channel with publisher subscriber model
hky1999 Jun 9, 2025
4e2e1c2
[feat] introduce IVCChannelHeader
hky1999 Jun 10, 2025
1e9b6f9
[feat] support simplex inter-VM communication channel
hky1999 Jun 10, 2025
41957ee
[MILESTONE] working version of 2 Linux VMs on QEMU
aarkegz Jun 11, 2025
46785a6
remove patches
aarkegz Jun 11, 2025
fba4186
[feat/rk3588] Add a minimal device tree and config for booting second…
Gallium70 Jun 11, 2025
1bcf4d4
Merge branch 'inject_interrupt_vgicv3' into rk3588_jd4_qemu
Gallium70 Jun 11, 2025
ec6a6c2
Merge remote-tracking branch 'origin/ivc' into inject_interrupt_vgicv…
aarkegz Jun 11, 2025
37af056
test with kernel 5.10.198
aarkegz Jun 12, 2025
454e98c
[feat] Delay boot of second VM to allow first VM to initialize clocks
Gallium70 Jun 13, 2025
4a4d315
[feat/vgic] Parse GIC SPIs from DTB and collect them to setup vGIC
Gallium70 Jun 13, 2025
ce993c0
[feat/rk3588] Update VM config to boot two Linux VMs
Gallium70 Jun 13, 2025
0407576
nasty sendipi handling
aarkegz Jun 13, 2025
94059c0
[feat] make IVCChannel as a emulated device type
hky1999 Jun 12, 2025
f52e792
[doc/rk3588] Update instructions on how to boot two Linux VMs on rk3588
Gallium70 Jun 13, 2025
83e9f2b
[wip] Update config to boot SMP VMs
Gallium70 Jun 13, 2025
64a39f6
nasty sendipi handling
Gallium70 Jun 13, 2025
0ea2756
[doc/rk3588] Update instruction to boot SMP VMs
Gallium70 Jun 13, 2025
e88d5af
[feat/rk3588] Use PREEMT_RT kernel for Linux VM2
Gallium70 Jun 15, 2025
60ed757
Assign arceos VM to 3rd physical core for 2-core Linux VM1
Gallium70 Jun 15, 2025
8105597
[wip] prepare to merge
hky1999 Jun 15, 2025
65c0a91
Merge branch 'ivc_wip' into inject_interrupt_vgicv3_ivc
hky1999 Jun 15, 2025
627f841
[wip] merge ivc branch, modify configuration
hky1999 Jun 15, 2025
bf095ea
[feat] reorder clocks for proper initialization in Linux kernel
Gallium70 Jun 17, 2025
ed4a058
[wip] Use gicv3 tester app and DTB for ArceOS VM2
Gallium70 Jun 17, 2025
21783c7
[feat/rk3588] Remove CMA ranges for PCIe, USB and SATA driver to work…
Gallium70 Jun 25, 2025
3bc6e21
[feat/rk3588] Linux VM1 use PREEMPT_RT kernel
Gallium70 Jun 25, 2025
95d58f2
[feat/rk3588] Linux VM2 SATA disk support
Gallium70 Jun 25, 2025
c308cfc
[doc] Fix typo
Gallium70 Jun 26, 2025
f900a6b
[doc/rk3588] Update kernel branch to PREEMT_RT
Gallium70 Jun 26, 2025
490a6c4
Merge remote-tracking branch 'origin/rk3588_jd4' into inject_interrup…
aarkegz Jul 1, 2025
3d199d2
cargo.lock updates after merging
aarkegz Jul 1, 2025
a371700
重构makefile适配newhal
ZR233 Jul 11, 2025
ecd06b3
update
ZR233 Jul 11, 2025
8c0240a
update
ZR233 Jul 11, 2025
01ff25c
起客户机ok
ZR233 Jul 11, 2025
9bdeac5
update
ZR233 Jul 14, 2025
4e56916
update all dependencies to merged version
aarkegz Jul 16, 2025
1c01c83
rollback nimbos-riscv64.toml
aarkegz Jul 16, 2025
cbb4a9a
Merge remote-tracking branch 'origin/inject_interrupt' into new_hal_dyn
ZR233 Jul 18, 2025
8e9d27a
update
ZR233 Jul 28, 2025
0618b5b
fmt code
ZR233 Aug 4, 2025
3b272d2
update ci tool chain
ZR233 Aug 4, 2025
8170655
fmt
ZR233 Aug 4, 2025
d914c90
fix build
ZR233 Aug 4, 2025
b8a5d7d
update ci
ZR233 Aug 4, 2025
08effc7
update
ZR233 Aug 4, 2025
65048a9
add: platform makefile
ZR233 Aug 4, 2025
68b463d
update
ZR233 Aug 8, 2025
8ae7601
update
ZR233 Aug 13, 2025
26a3a81
update dev doc
ZR233 Aug 14, 2025
953edce
fmt code
ZR233 Aug 14, 2025
e59c5b6
update
ZR233 Aug 14, 2025
9c180a4
fix: ci
ZR233 Aug 14, 2025
7fd1616
update: add source for arm_vcpu and axvm packages
ZR233 Aug 14, 2025
f648922
fix: ci
ZR233 Aug 14, 2025
beb4c2f
fix: ci
ZR233 Aug 14, 2025
079f647
delete: remove unused linker script and build configuration files
ZR233 Aug 14, 2025
21b222e
feat: new script
ZR233 Aug 15, 2025
4179de7
feat: enhance configuration management and command execution in Axvisor
ZR233 Aug 15, 2025
6a1bb99
fix: update task.py command to use correct vmconfigs parameter
ZR233 Aug 15, 2025
1182455
fix: update get_vm_dtb to handle missing VM images gracefully
ZR233 Aug 15, 2025
628c876
feat: add clippy, clean, and disk_img commands to task.py; implement …
ZR233 Aug 15, 2025
eb451a3
feat: 添加配置文件保存功能,优化构建命令生成
ZR233 Aug 15, 2025
cb9edac
feat: 添加 disk_img 命令的 --image 参数以支持指定磁盘镜像路径
ZR233 Aug 15, 2025
b82bd89
update
ZR233 Aug 18, 2025
bdd0693
update
ZR233 Aug 18, 2025
fba902c
feat: 更新 axdevice 和 toml 依赖项,指定分支和版本
ZR233 Aug 18, 2025
2ebf01a
fix: 更新 axplat-aarch64-dyn 的源地址,修正分支引用
ZR233 Aug 18, 2025
e9d5fba
fix: 更新 arm_vcpu 源地址,修正 axdevice_base 依赖项格式,优化 toml 解析
ZR233 Aug 18, 2025
e334e9c
ci: remote
ZR233 Aug 18, 2025
e2992b2
feat: 更新构建和测试工作流,添加虚拟环境激活脚本,优化 bootstrap 脚本
ZR233 Aug 18, 2025
486213e
fix: 修正激活脚本路径,确保正确加载环境
ZR233 Aug 18, 2025
a7e65d8
fix: 移除无用架构注释,更新 bootstrap 步骤以使用激活脚本
ZR233 Aug 18, 2025
b08f909
update
ZR233 Aug 18, 2025
bb67136
update
ZR233 Aug 18, 2025
0a6e896
fix: 更新依赖项源和版本,优化激活脚本错误提示
ZR233 Aug 19, 2025
6bd112b
Add AArch64 architecture support and refactor cache operations
ZR233 Aug 20, 2025
4ecdcaf
fix: x86 build
ZR233 Aug 20, 2025
d42dd78
update: 优化 task.py 使用说明,移除 setup 命令,调整示例和参数说明
ZR233 Aug 20, 2025
972a09e
fix: 修复激活脚本中的虚拟环境检查逻辑,移除错误提示并直接调用 bootstrap.sh
ZR233 Aug 20, 2025
4ee4be8
fix: 在构建和测试工作流中添加激活脚本的调用
ZR233 Aug 20, 2025
cd130a1
fix: clippy
ZR233 Aug 20, 2025
5e30de3
fix: irq passthrow test
ZR233 Aug 20, 2025
7c2a75b
fix: 在本地测试中为 task.py 添加 fs 特性
ZR233 Aug 20, 2025
d5158d3
fix: 更新 bootstrap.sh 中 pip 升级和依赖安装的命令,添加镜像源
ZR233 Aug 20, 2025
639c5bb
fix: 在激活虚拟环境前添加 HTTP_PROXY 和 HTTPS_PROXY 环境变量的导出
ZR233 Aug 20, 2025
fe6017d
fix: 在激活虚拟环境时取消设置 HTTP_PROXY 和 HTTPS_PROXY 环境变量
ZR233 Aug 20, 2025
ecee9db
fix: 在激活虚拟环境时取消设置 HTTP_PROXY 和 HTTPS_PROXY 环境变量
ZR233 Aug 20, 2025
57710d0
fix: 在激活虚拟环境时保存和恢复代理环境变量
ZR233 Aug 20, 2025
ab99e2b
refactor: rebase arceos
ZR233 Aug 20, 2025
576e06e
ci: change runner
ZR233 Aug 20, 2025
700649a
update
ZR233 Aug 20, 2025
e694386
update
ZR233 Aug 20, 2025
5f8ca64
refactor: remove x86 test
ZR233 Aug 21, 2025
9601750
update
ZR233 Aug 21, 2025
c28929a
update gic driver
ZR233 Aug 21, 2025
c1e160e
更新 arm-gic 驱动版本至 0.15.6,添加 arm_vgic 和 axlog 的 Git 源,修改构建脚本以支持自定义配置文件路径
ZR233 Aug 21, 2025
158cd87
fix: ci
ZR233 Aug 21, 2025
a4ac5ec
更新 arm-gic 驱动版本至 0.15.7,优化中断注入逻辑,移除未使用的函数
ZR233 Aug 21, 2025
393373a
lock
ZR233 Aug 21, 2025
08b2f6a
remove unused
ZR233 Aug 21, 2025
c1c939f
fix: image cache
ZR233 Aug 22, 2025
c4fbd87
fix: x86 compile
ZR233 Aug 22, 2025
8f1a979
fmt code
ZR233 Aug 22, 2025
694ddd5
update deps
ZR233 Aug 22, 2025
0b69a6d
ci: self-host remove qemu
ZR233 Aug 22, 2025
6ee2d16
fix: add .project.* to .gitignore
ZR233 Aug 22, 2025
e2211d0
Merge remote-tracking branch 'origin/master' into new_hal_dyn
ZR233 Aug 22, 2025
49e77ee
fix: update bitflags and arm-gic-driver versions; refactor GIC driver…
ZR233 Aug 26, 2025
da6097e
fix: comment out KVM group permissions setup in CI workflow
ZR233 Aug 26, 2025
de53f5f
fix: 注释掉 CI 工作流中的 KVM 组权限设置
ZR233 Aug 26, 2025
5eaa2db
add patch to use 3 level ept paging (#235)
Josen-B Aug 27, 2025
4dd4d75
add rk3568 and phytiumpi config file (#243)
Josen-B Aug 29, 2025
c922ec7
fmt code
ZR233 Sep 3, 2025
210fa91
local board test (#245)
Josen-B Sep 3, 2025
f3a3ed1
feat: Update dependencies and add new device tree for aarch64 QEMU
ZR233 Sep 5, 2025
01574a9
fix: update arm_vcpu and axvm source URLs in Cargo files
ZR233 Sep 5, 2025
571d392
refactor: update aarch64-generic-qemu job configuration and adjust me…
ZR233 Sep 5, 2025
57512a5
fix: specify runs-on environment for aarch64-generic-qemu job
ZR233 Sep 5, 2025
e974f04
fix: force reinstall of ostool in phytiumpi and rk3568 jobs
ZR233 Sep 5, 2025
b6adf4c
refactor: replace activate.sh with bootstrap.sh for virtual environme…
ZR233 Sep 5, 2025
efea08f
refactor: replace activate.sh with bootstrap.sh in build workflow
ZR233 Sep 5, 2025
f245ea5
clean: code fmt
ZR233 Sep 5, 2025
3898783
feat: add ept feature check
ZR233 Sep 5, 2025
60e2d25
fix: send ipi
ZR233 Sep 5, 2025
9f660e3
fix: fmt code
ZR233 Sep 5, 2025
98cf48b
feat: add make
ZR233 Sep 8, 2025
0a81096
code: fmt
ZR233 Sep 8, 2025
614ce87
feat: add make and update doc
ZR233 Sep 8, 2025
500718b
fix: ci
ZR233 Sep 8, 2025
f28b172
fix ci
ZR233 Sep 8, 2025
978b77e
refactor: scripts
ZR233 Sep 8, 2025
1e2dc18
fix: update output function icons for better clarity
ZR233 Sep 8, 2025
ca6047f
fix: script
ZR233 Sep 8, 2025
10e55e1
fix: script
ZR233 Sep 8, 2025
09dc323
fix: doc
ZR233 Sep 8, 2025
ba58e78
fmt code
ZR233 Sep 8, 2025
d08d099
update deps
ZR233 Sep 8, 2025
a34f244
ci: test
ZR233 Sep 8, 2025
a67148d
test: x86
ZR233 Sep 8, 2025
9ed6056
refactor: merge tools
ZR233 Sep 8, 2025
e82b036
refactor: mv old doc
ZR233 Sep 8, 2025
c6b3047
update
ZR233 Sep 8, 2025
cc34350
update: lock
ZR233 Sep 8, 2025
69162f8
doc: add nimbos
ZR233 Sep 9, 2025
8aa7cc3
modify deps
ZR233 Sep 9, 2025
42a60f6
update lock
ZR233 Sep 9, 2025
f274c92
fix workspace
ZR233 Sep 9, 2025
b551501
fix: optimize memory region handling in parse_vm_dtb function
ZR233 Sep 9, 2025
037ebea
deps: use arceos hypervisor
ZR233 Sep 9, 2025
13c2423
fmt code
ZR233 Sep 9, 2025
68d1013
feat: add support for loading VM images from memory and filesystem
ZR233 Sep 9, 2025
780ac40
fmt code
ZR233 Sep 9, 2025
0ee9484
fix: alloc badstat
ZR233 Sep 9, 2025
8f2e48a
update lock
ZR233 Sep 10, 2025
6b85e5a
memory use config.toml
Sep 10, 2025
98d0a04
[feat] support guest dyn entry (#253)
ZR233 Sep 10, 2025
a52f8f7
update dep
ZR233 Sep 11, 2025
7b2cfd1
fix: remove unused x86_rtc package and clean up workspace configuration
ZR233 Sep 11, 2025
5350bb8
fix: update arceos dependency versions in Cargo.lock
ZR233 Sep 11, 2025
c76d1f2
feat: enhance clippy script to support feature extraction and target …
ZR233 Sep 12, 2025
746fb6c
fix: update clippy script to use toml package for parsing Cargo.toml
ZR233 Sep 12, 2025
fdfd7f2
update rk3568 config file
Josen-B Sep 12, 2025
d447840
update e2000 config file
YanLien Sep 12, 2025
3161e3f
update ci
ZCShou Sep 12, 2025
37e3c98
fix ci
ZCShou Sep 12, 2025
ac038d3
udpate ci
ZCShou Sep 12, 2025
3395f61
更新 rdrive 包版本至 0.16.1
ZR233 Sep 12, 2025
a49004c
调整了 runner 分配
ZCShou Sep 12, 2025
8388c6f
调整了 runner 分配
ZCShou Sep 12, 2025
dc896d3
[Incomplete] quick start
Josen-B Sep 12, 2025
ed65224
update README
Josen-B Sep 12, 2025
7874ee2
暂时移除未经验证的客户机配置文件,后续每验证一个从vms_bkp 中移到vms中
ZCShou Sep 13, 2025
fbe2565
增加了 nimbos 相关配置文件
ZCShou Sep 13, 2025
a8f5cbc
增加了 linux-aarch64-qemu-smp1 客户机配置文件及设备树
ZCShou Sep 13, 2025
36f8191
更新了 README
ZCShou Sep 13, 2025
912c647
更正了客户机配置文件命名
ZCShou Sep 18, 2025
8539cc1
feat(plc): add tac_e400 profile on smp1
YanLien Sep 18, 2025
262f778
Apply suggestion from @Copilot
ZCShou Sep 18, 2025
16458c1
Apply suggestion from @Copilot
ZCShou Sep 18, 2025
98ef65d
Merge pull request #255 from YanLien/next
ZCShou Sep 18, 2025
3a83b82
fix: somehal on rk3588 (#257)
ZR233 Sep 22, 2025
3f6b2fd
Axplat02 (#258)
ZR233 Sep 24, 2025
c8c77ac
feat: Added driver support for two platform devices. (#259)
YanLien Sep 25, 2025
294df73
update README (#261)
ZCShou Sep 26, 2025
c39afe5
host fdt parser and guest fdt crate (#260)
bullhh Sep 28, 2025
1502016
add platform support for rk3588 and bst-a1000 (#262)
buhenxihuan Sep 28, 2025
a01561e
Fix the bug when the dtb_load_addr field is missing. (#263)
bullhh Sep 28, 2025
df8e158
feat: clippy warning as error, log to english (#265)
ZR233 Sep 29, 2025
7979f3c
feat: Add interactive shell support and improve VM management (#264)
YanLien Sep 29, 2025
8596a37
chore: update deps and rm some log (#266)
ZR233 Sep 29, 2025
2858259
clean unused file (#267)
ZCShou Sep 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/workflows/actions/setup-nimbos-guest-image/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,9 @@ runs:
steps:
- name: Make temporary directory
shell: bash
run: mkdir -p temp
run: |
sudo rm -rf temp
mkdir -p temp
- name: Download NimbOS
uses: dsaltares/[email protected]
with:
Expand All @@ -59,7 +61,7 @@ runs:
- name: Create Image
shell: bash
run: |
make DISK_IMG=${{ inputs.disk-path }} disk_img
./axvisor.sh disk_img --image ${{ inputs.disk-path }}
sudo mkdir -p img
sudo chown root:root temp/*
sudo mount ${{ inputs.disk-path }} img
Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
name: Build, fmt, and clippy

on: [push, pull_request]
on: [push, pull_request, workflow_dispatch]

jobs:
clippy:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
arch: [x86_64, riscv64, aarch64]
rust-toolchain: [nightly-2024-12-25, nightly]
rust-toolchain: [nightly-2025-05-20, nightly]
env:
RUSTUP_TOOLCHAIN: ${{ matrix.rust-toolchain }}
steps:
Expand All @@ -18,19 +17,19 @@ jobs:
with:
toolchain: ${{ matrix.rust-toolchain }}
components: rust-src, clippy, rustfmt
targets: x86_64-unknown-none, riscv64gc-unknown-none-elf, aarch64-unknown-none, aarch64-unknown-none-softfloat
targets: x86_64-unknown-none, riscv64gc-unknown-none-elf, aarch64-unknown-none-softfloat
- name: Check rust version
run: rustc --version --verbose
- name: Clippy the repo
continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }}
run: make ARCH=${{ matrix.arch }} clippy
run: ./axvisor.sh clippy

fmt:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
rust-toolchain: [nightly-2024-12-25, nightly]
rust-toolchain: [nightly-2025-05-20, nightly]
env:
RUSTUP_TOOLCHAIN: ${{ matrix.rust-toolchain }}
steps:
Expand All @@ -51,8 +50,8 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest]
arch: [x86_64, riscv64, aarch64]
rust-toolchain: [nightly-2024-12-25, nightly]
plat: [aarch64-generic, x86-qemu-q35]
rust-toolchain: [nightly-2025-05-20, nightly]
env:
RUSTUP_TOOLCHAIN: ${{ matrix.rust-toolchain }}
steps:
Expand All @@ -66,4 +65,5 @@ jobs:
- run: cargo install cargo-binutils
- name: Build the repo
continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }}
run: make ARCH=${{ matrix.arch }} build
run: |
./axvisor.sh build --plat ${{ matrix.plat }}
209 changes: 99 additions & 110 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
name: Test CI

on: [push, pull_request]
on: [push, pull_request, workflow_dispatch]

env:
qemu-version: 8.2.0
arceos-apps: '68054e8'

jobs:
test_local:
runs-on: ${{ matrix.os }}
aarch64-generic-qemu:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
arch: [riscv64, aarch64]
rust-toolchain: [nightly-2024-12-25, nightly]
plat: [aarch64-generic]
rust-toolchain: [nightly-2025-05-20, nightly]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
Expand All @@ -26,124 +25,114 @@ jobs:
- uses: arceos-org/[email protected]
with:
version: ${{ env.qemu-version }}
arch_list: ${{ matrix.arch }}
arch_list: aarch64
- uses: ./.github/workflows/actions/setup-nimbos-guest-image
with:
nimbos-version: 'tags/v0.7'
arch: ${{ matrix.arch }}
disk-path: ${{ github.workspace }}/disk-${{ matrix.arch }}.img
- name: Enable KVM group perms
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
arch: aarch64
disk-path: ${{ github.workspace }}/disk-aarch64.img
- name: Update rust-toolchain.toml
run: |
sed -i "s/^channel = .*/channel = \"${{ matrix.rust-toolchain }}\"/" rust-toolchain.toml
- name: Run guests
continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }}
run: |
chmod +x axvisor.sh
cargo version
export DISK_IMG="${{ github.workspace }}/disk-${{ matrix.arch }}.img"
export VM_CONFIGS="$(pwd)/configs/vms/nimbos-${{ matrix.arch }}.toml"
make ARCH=${{ matrix.arch }} defconfig
make ARCH=${{ matrix.arch }} DISK_IMG=${DISK_IMG} LOG=info BLK=y ACCEL=n VM_CONFIGS=${VM_CONFIGS} APP_FEATURES=fs run
export DISK_IMG="${{ github.workspace }}/disk-aarch64.img"
export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64-qemu-smp1.toml"
./scripts/auto_interrupt.sh ./axvisor.sh run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs,ept-level-4 --arceos-args DISK_IMG=$DISK_IMG,BUS=mmio,BLK=y,MEM=8g,LOG=info

test_remote:
runs-on: ubuntu-latest
aarch64-generic-phytiumpi:
runs-on: [self-hosted, linux, phytiumpi]
strategy:
fail-fast: false
matrix:
arch: [x86_64]
rust-toolchain: [nightly-2024-12-25, nightly]
remote: [remote_aarkegz, remote_x10dri]
include:
- remote: remote_aarkegz
host_key: HOST
username_key: USERNAME
password_key: PASSWORD
port_key: PORT
- remote: remote_x10dri
host_key: HOST2
username_key: USERNAME2
password_key: PASSWORD2
port_key: PORT2
plat: [aarch64-generic]
rust-toolchain: [nightly-2025-05-20]
steps:
- uses: actions/checkout@v4
- name: Update rust-toolchain.toml
run: |
sed -i "s/^channel = .*/channel = \"${{ matrix.rust-toolchain }}\"/" rust-toolchain.toml
- name: Compress source code
run: tar -czf ~/source.tar.gz -C ${{ github.workspace }} .
- name: Copy files to current directory
run: |
cp ~/source.tar.gz .
- uses: ./.github/workflows/actions/setup-nimbos-guest-image
with:
nimbos-version: 'tags/v0.7'
arch: ${{ matrix.arch }}
disk-path: ${{ github.workspace }}/disk-${{ matrix.arch }}.img
- name: Copy x86_64 files to remote runner
uses: appleboy/[email protected]
with:
host: ${{ secrets[matrix.host_key] }}
username: ${{ secrets[matrix.username_key] }}
password: ${{ secrets[matrix.password_key] }}
port: ${{ secrets[matrix.port_key] }}
source: './disk-x86_64.img,./source.tar.gz'
target: '~/runner/remote_test-${{ github.run_id }}-${{ matrix.arch }}-${{ matrix.rust-toolchain }}'
- name: Running on remote runner
uses: appleboy/[email protected]
continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }}
with:
host: ${{ secrets[matrix.host_key] }}
username: ${{ secrets[matrix.username_key] }}
password: ${{ secrets[matrix.password_key] }}
port: ${{ secrets[matrix.port_key] }}
script: |
set -e # Exit quickly on error
set -o pipefail # Exit if any command in a pipeline fails
. ~/.profile # Load ~/.profile manually, as it turns out that sometimes it is not loaded automatically

# Set the working directory
WORKDIR=~/runner/remote_test-${{ github.run_id }}-${{ matrix.arch }}-${{ matrix.rust-toolchain }}

# Set up colors for output
COLOR_BOLD=$'\033[1m'
COLOR_RED=$'\033[91;1m'
COLOR_GREEN=$'\033[92;1m'
COLOR_YELLOW=$'\033[93;1m'
COLOR_CLEAR=$'\033[0m'

# Echo the environment info
function echo_env_info() {
PREVIOUS_DIR=$(pwd)
cd $WORKDIR
echo "shell : ${COLOR_BOLD}${SHELL}${COLOR_CLEAR}"
echo "rust-toolchain : ${COLOR_BOLD}${{ matrix.rust-toolchain }}${COLOR_CLEAR}"
echo "cargo version : ${COLOR_BOLD}$(cargo --version)${COLOR_CLEAR}"
echo "workdir : ${COLOR_BOLD}${WORKDIR}${COLOR_CLEAR}"
cd $PREVIOUS_DIR
}

# Print the environment info
echo_env_info
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ matrix.rust-toolchain }}
components: rust-src
# - uses: Swatinem/rust-cache@v2
- run: cargo install cargo-binutils
- name: Update rust-toolchain.toml
run: |
sed -i "s/^channel = .*/channel = \"${{ matrix.rust-toolchain }}\"/" rust-toolchain.toml
- name: Run guests on phytiumpi
continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }}
run: |
cargo install ostool --force
git clone https://github.com/arceos-hypervisor/axboard_test
cd axboard_test
./run.sh phytiumpi-arceos
cd ..

tar -xzf $WORKDIR/source.tar.gz -C $WORKDIR
make -C $WORKDIR ARCH=x86_64 defconfig
make -C $WORKDIR ARCH=x86_64 DISK_IMG=$WORKDIR/disk-x86_64.img LOG=info BLK=y ACCEL=y VM_CONFIGS=$WORKDIR/configs/vms/nimbos-x86_64.toml APP_FEATURES=fs run | tee $WORKDIR/make_output.log

# Re-echo the environment info
echo_env_info

if grep -q "panic" $WORKDIR/make_output.log; then
echo "test result : ${COLOR_RED}FAIL${COLOR_CLEAR}"
echo " ${COLOR_RED}'panic' found in output msg${COLOR_CLEAR}"
echo " ${COLOR_YELLOW}Check the log file: $WORKDIR/make_output.log${COLOR_CLEAR}"
exit 1
else
echo "test result : ${COLOR_GREEN}PASS${COLOR_CLEAR}"
fi
aarch64-generic-rk3568:
runs-on: [self-hosted, linux, roc-rk3568-pc]
strategy:
fail-fast: false
matrix:
plat: [aarch64-generic]
rust-toolchain: [nightly-2025-05-20]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ matrix.rust-toolchain }}
components: rust-src
# - uses: Swatinem/rust-cache@v2
- run: cargo install cargo-binutils
- name: Update rust-toolchain.toml
run: |
sed -i "s/^channel = .*/channel = \"${{ matrix.rust-toolchain }}\"/" rust-toolchain.toml
- name: Run guests on rk3568
continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }}
run: |
cargo install ostool --force
git clone https://github.com/arceos-hypervisor/axboard_test
cd axboard_test
./run.sh rk3568-arceos
cd ..

# Clean up
cd ~ && rm -rf $WORKDIR
x86-qemu-q35:
runs-on: [self-hosted, linux, intel]
strategy:
fail-fast: false
matrix:
plat: [x86-qemu-q35]
rust-toolchain: [nightly-2025-05-20, nightly]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ matrix.rust-toolchain }}
components: rust-src
# - uses: Swatinem/rust-cache@v2
- run: cargo install cargo-binutils
# - uses: arceos-org/[email protected]
# with:
# version: ${{ env.qemu-version }}
# arch_list: x86_64
- uses: ./.github/workflows/actions/setup-nimbos-guest-image
with:
nimbos-version: 'tags/v0.7'
arch: x86_64
disk-path: ${{ github.workspace }}/disk-x86_64.img
# - name: Enable KVM group perms
# run: |
# echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
# sudo udevadm control --reload-rules
# sudo udevadm trigger --name-match=kvm
- name: Update rust-toolchain.toml
run: |
sed -i "s/^channel = .*/channel = \"${{ matrix.rust-toolchain }}\"/" rust-toolchain.toml
- name: Run guests
continue-on-error: ${{ matrix.rust-toolchain == 'nightly' }}
run: |
cargo version
export DISK_IMG="${{ github.workspace }}/disk-x86_64.img"
export VM_CONFIGS="$(pwd)/configs/vms/nimbos-x86_64-qemu-smp1.toml"
./scripts/auto_interrupt.sh ./axvisor.sh run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y,LOG=info
37 changes: 37 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
/target
/.vscode
/tmp
/.arceos
/.cargo
.DS_Store
*.asm
*.img
Expand All @@ -14,11 +16,46 @@ actual.out
qemu.log
rusty-tags.vi

# Python virtual environment
venv/
__pycache__/
*.pyc
*.pyo

/**/.axconfig.*
/**/.hvconfig.*
/**/.project.*
/**/.board.*

# dev env
/crates
/Cargo.toml.bk

# tools should be downloaded from github
tools/*

# initramfs
*.cpio.gz

# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
1 change: 1 addition & 0 deletions .rustfmt.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
force_explicit_abi = false
Loading
Loading