Skip to content

Commit 7979f3c

Browse files
authored
feat: Add interactive shell support and improve VM management (#264)
* feat: Add interactive shell support and improve VM management * refactor: Reorganize scripts and improve shell module * fix: improve error handling in guest VM initialization
1 parent df8e158 commit 7979f3c

File tree

16 files changed

+2916
-52
lines changed

16 files changed

+2916
-52
lines changed

.github/workflows/test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
4141
cargo version
4242
export DISK_IMG="${{ github.workspace }}/disk-aarch64.img"
4343
export VM_CONFIGS="$(pwd)/configs/vms/nimbos-aarch64-qemu-smp1.toml"
44-
./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
44+
./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
4545
4646
aarch64-generic-phytiumpi:
4747
runs-on: [self-hosted, linux, phytiumpi]
@@ -135,4 +135,4 @@ jobs:
135135
cargo version
136136
export DISK_IMG="${{ github.workspace }}/disk-x86_64.img"
137137
export VM_CONFIGS="$(pwd)/configs/vms/nimbos-x86_64-qemu-smp1.toml"
138-
./axvisor.sh run --plat ${{ matrix.plat }} --vmconfigs $VM_CONFIGS --features fs --arceos-args DISK_IMG=$DISK_IMG,BLK=y
138+
./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

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ lazyinit = "0.2"
2828
log = "=0.4.21"
2929
spin = "0.9"
3030
timer_list = "0.1.0"
31+
lazy_static = { version = "1.5", default-features = false, features = ["spin_no_std"] }
3132

3233
# System dependent modules provided by ArceOS.
3334
axstd = {git = "https://github.com/arceos-hypervisor/arceos.git", tag = "hv-0.3.1", features = [

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ Currently, AxVisor has been verified in scenarios with the following systems as
5151
- [NimbOS](https://github.com/equation314/nimbos)
5252
- Linux
5353

54+
## Shell Management
55+
56+
AxVisor provides an interactive shell interface for managing virtual machines and file operations.
57+
58+
For detailed information about shell features, commands, and usage, see: [Shell模块介绍.md](doc/Shell模块介绍.md)
59+
5460
# Build and Run
5561

5662
After AxVisor starts, it loads and starts the guest based on the information in the guest configuration file. Currently, AxVisor supports loading guest images from a FAT32 file system and also supports binding guest images to the hypervisor image through static compilation (using include_bytes).

configs/vms/arceos-aarch64-e2000-smp2.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ image_location = "memory"
2323
# The load address of the kernel image.
2424
kernel_load_addr = 0x20_2008_0000
2525
## The file path of the kernel image.
26-
kernel_path = "/path/to/arceos_aarch64-dyn_smp1.bin"
26+
kernel_path = "/guest/arceos/arceos_aarch64-dyn_smp2.bin"
2727
## The file path of the device tree blob (DTB).
2828
dtb_load_addr = 0x20_2000_0000
2929
#dtb_path = "/path/to/axvisor/configs/vms/arceos-aarch64-e2000_smp2.dtb"

configs/vms_bkp/arceos-aarch64.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ phys_cpu_sets = [2]
2020
entry_point = 0x4020_0000
2121
# The location of image: "memory" | "fs".
2222
# Load from file system.
23-
image_location = "memory"
23+
image_location = "fs"
2424
# The file path of the kernel image.
25-
kernel_path = "path/to/kernel"
25+
kernel_path = "helloworld_aarch64-qemu-virt.bin"
2626
# The load address of the kernel image.
2727
kernel_load_addr = 0x4020_0000
2828
## Load from memory

0 commit comments

Comments
 (0)