我想研究一下IncludeOS并运行他们的hello world。我在 Ubuntu 上,确实安装了所需的依赖项。程序退出并显示错误。我在这里做错了什么?
apt-get install python3-pip python3-dev git cmake clang-6.0 gcc nasm make qemu
pip3 install setuptools wheel conan psutil jsonschema
conan config install https://github.com/includeos/conan_config.git
我按照安装说明并使用了 Linux 推荐的clang-6.0-linux-x86_64
配置文件。此处列出了配置文件
git clone https://github.com/includeos/hello_world.git
mkdir your_build_dir && cd "$_"
conan install ../hello_world -pr <your_conan_profile>
source activate.sh
cmake ../hello_world
cmake --build .
boot hello
使用 boot 命令调用程序时程序崩溃。
调用boot hello -dv
时的输出(某些路径已更改((详细、调试(
* <boot>: VERBOSE mode set for environment
* <VMRunner>: Loading default config.
* <VMRunner>: Trying to load config from /path/to/vm.vanilla.json
* <VMRunner>: Successfully loaded vm config
* <VMRunner>: " Single virtio nic with vanilla cpu features "
* <VMRunner>: Trying to load config from ./vm.json
* <VMRunner>: Successfully loaded vm config
* <VMRunner>: " {'net': [], 'image': 'service.img', 'mem': 128} "
* <VMRunner>: {'description': 'Single virtio nic with vanilla cpu features', 'net': [], 'image': 'service.img', 'mem': 128}
* <boot>: Args to pass to VM: []
* <boot>: 1 VM initialized. Commencing build- and boot...
* <VMRunner>: Loading default config.
* <VMRunner>: Trying to load config from path/to/vm.vanilla.json
* <VMRunner>: Successfully loaded vm config
* <VMRunner>: " Single virtio nic with vanilla cpu features "
* <VMRunner>: Trying to load config from ./vm.json
* <VMRunner>: Successfully loaded vm config
* <VMRunner>: " {'net': [], 'image': 'service.img', 'mem': 128} "
* <VMRunner>: {'description': 'Single virtio nic with vanilla cpu features', 'net': [], 'image': 'service.img', 'mem': 128}
* <boot>: Booting in debug mode
* <boot>: No file extension. Trying to boot as kernel
* <VMRunner>: VM boot, timeout: None multiboot: True Kernel_args: image_name: hello
* <VMRunner>: Booting with multiboot: True kernel_args: image_name: hello
* <qemu>: KVM ON
* <VMRunner>: File magic: hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, stripped
* <VMRunner>: Found 64-bit ELF, need chainloader
Looking for chainloader:
Found /path/to/chainloader Type: /path/to/chainloader: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped
* <VMRunner>: Booting hello directly without bootloader (multiboot / -kernel args)
* <VMRunner>: Command: sudo qemu-system-x86_64 --enable-kvm -cpu kvm64,+rdrand,+rdseed -kernel /path/to/chainloader -append "" -initrd hello "" -s -m 128 -nographic
[ WARNING ] Running with sudo
* <qemu>: Started process PID 1343
* <VMRunner>: Event loop done. Exit status: None poll: 1
* <VMRunner>: No poll - getting final output
* <VMRunner>: Exit called with status 1 ( PROGRAM_FAILURE )
* <VMRunner>: Message: process exited Keep running: False
* <VMRunner>: Calling on_exit
* <VMRunner>: Program exit called with status 1 ( PROGRAM_FAILURE )
* <VMRunner>: Stopping all vms
[ PROGRAM_FAILURE ] process exited
你能确认QEMU系统-x86_64安装在这个系统上吗?我想我在没有安装 qemu 的情况下运行时遇到了同样的问题。
(conanenv) kristian@kristian-Zephyrus:~/git/hello_world/build$ boot hello -v
* <boot>: VERBOSE mode set for environment
* <VMRunner>: Loading default config.
* <VMRunner>: Trying to load config from /home/kristian/.conan/data/vmrunner/0.16.0/includeos/stable/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/vmrunner/vm.vanilla.json
* <VMRunner>: Successfully loaded vm config
* <VMRunner>: " Single virtio nic with vanilla cpu features "
* <VMRunner>: Trying to load config from ./vm.json
* <VMRunner>: Successfully loaded vm config
* <VMRunner>: " {'net': [], 'image': 'service.img', 'mem': 128} "
* <VMRunner>: {'description': 'Single virtio nic with vanilla cpu features', 'net': [], 'image': 'service.img', 'mem': 128}
* <boot>: Args to pass to VM: []
* <boot>: 1 VM initialized. Commencing build- and boot...
* <VMRunner>: Loading default config.
* <VMRunner>: Trying to load config from /home/kristian/.conan/data/vmrunner/0.16.0/includeos/stable/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/vmrunner/vm.vanilla.json
* <VMRunner>: Successfully loaded vm config
* <VMRunner>: " Single virtio nic with vanilla cpu features "
* <VMRunner>: Trying to load config from ./vm.json
* <VMRunner>: Successfully loaded vm config
* <VMRunner>: " {'net': [], 'image': 'service.img', 'mem': 128} "
* <VMRunner>: {'description': 'Single virtio nic with vanilla cpu features', 'net': [], 'image': 'service.img', 'mem': 128}
* <boot>: No file extension. Trying to boot as kernel
* <VMRunner>: VM boot, timeout: None multiboot: True Kernel_args: image_name: hello
* <VMRunner>: Booting with multiboot: True kernel_args: image_name: hello
* <qemu>: KVM ON
* <VMRunner>: File magic: hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, stripped
* <VMRunner>: Found 64-bit ELF, need chainloader
Looking for chainloader:
Found /home/kristian/.conan/data/chainloader/0.15.1-5/includeos/latest/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/bin/chainloader Type: /home/kristian/.conan/data/chainloader/0.15.1-5/includeos/latest/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/bin/chainloader: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped
* <VMRunner>: Booting hello directly without bootloader (multiboot / -kernel args)
* <VMRunner>: Command: sudo qemu-system-x86_64 --enable-kvm -cpu kvm64,+rdrand,+rdseed -kernel /home/kristian/.conan/data/chainloader/0.15.1-5/includeos/latest/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/bin/chainloader -append "" -initrd hello "" -m 128 -nographic
[ WARNING ] Running with sudo
* <qemu>: Started process PID 14648
* <VMRunner>: Event loop done. Exit status: None poll: 1
* <VMRunner>: No poll - getting final output
* <VMRunner>: Exit called with status 1 ( PROGRAM_FAILURE )
* <VMRunner>: Message: process exited Keep running: False
* <VMRunner>: Calling on_exit
* <VMRunner>: Program exit called with status 1 ( PROGRAM_FAILURE )
* <VMRunner>: Stopping all vms
sudo apt-get install qemu
(conanenv) kristian@kristian-Zephyrus:~/git/hello_world/build$ boot hello -v
* <boot>: VERBOSE mode set for environment
* <VMRunner>: Loading default config.
* <VMRunner>: Trying to load config from /home/kristian/.conan/data/vmrunner/0.16.0/includeos/stable/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/vmrunner/vm.vanilla.json
* <VMRunner>: Successfully loaded vm config
* <VMRunner>: " Single virtio nic with vanilla cpu features "
* <VMRunner>: Trying to load config from ./vm.json
* <VMRunner>: Successfully loaded vm config
* <VMRunner>: " {'net': [], 'image': 'service.img', 'mem': 128} "
* <VMRunner>: {'description': 'Single virtio nic with vanilla cpu features', 'net': [], 'image': 'service.img', 'mem': 128}
* <boot>: Args to pass to VM: []
* <boot>: 1 VM initialized. Commencing build- and boot...
* <VMRunner>: Loading default config.
* <VMRunner>: Trying to load config from /home/kristian/.conan/data/vmrunner/0.16.0/includeos/stable/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/vmrunner/vm.vanilla.json
* <VMRunner>: Successfully loaded vm config
* <VMRunner>: " Single virtio nic with vanilla cpu features "
* <VMRunner>: Trying to load config from ./vm.json
* <VMRunner>: Successfully loaded vm config
* <VMRunner>: " {'net': [], 'image': 'service.img', 'mem': 128} "
* <VMRunner>: {'description': 'Single virtio nic with vanilla cpu features', 'net': [], 'image': 'service.img', 'mem': 128}
* <boot>: No file extension. Trying to boot as kernel
* <VMRunner>: VM boot, timeout: None multiboot: True Kernel_args: image_name: hello
* <VMRunner>: Booting with multiboot: True kernel_args: image_name: hello
* <qemu>: KVM ON
* <VMRunner>: File magic: hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, stripped
* <VMRunner>: Found 64-bit ELF, need chainloader
Looking for chainloader:
Found /home/kristian/.conan/data/chainloader/0.15.1-5/includeos/latest/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/bin/chainloader Type: /home/kristian/.conan/data/chainloader/0.15.1-5/includeos/latest/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/bin/chainloader: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped
* <VMRunner>: Booting hello directly without bootloader (multiboot / -kernel args)
* <VMRunner>: Command: sudo qemu-system-x86_64 --enable-kvm -cpu kvm64,+rdrand,+rdseed -kernel /home/kristian/.conan/data/chainloader/0.15.1-5/includeos/latest/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/bin/chainloader -append "" -initrd hello "" -m 128 -nographic
[ WARNING ] Running with sudo
* <qemu>: Started process PID 16622
* Multiboot begin: 0x9500
* Multiboot cmdline @ 0x22e019: /home/kristian/.conan/data/chainloader/0.15.1-5/includeos/latest/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/bin/chainloader ""
* Multiboot end: 0x22e09e
* Module list @ 0x22e000
* Module @ 0x22f000
* Args: hello ""
* End: 0x393978
* Multiboot end: 0x393978
<Multiboot>Booted with multiboot
* Boot flags: 0x24f
* Valid memory (130559 Kib):
0x00000000 - 0x0009fbff (639 Kib)
0x00100000 - 0x07fdffff (129920 Kib)
* Booted with parameters @ 0x22e019: /home/kristian/.conan/data/chainloader/0.15.1-5/includeos/latest/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/bin/chainloader ""
* Multiboot provided memory map (7 entries @ 0x9000)
0x0000000000 - 0x000009fbff FREE (639 Kb.)
0x000009fc00 - 0x000009ffff RESERVED (1 Kb.)
0x00000f0000 - 0x00000fffff RESERVED (64 Kb.)
0x0000100000 - 0x0007fdffff FREE (129920 Kb.)
0x0007fe0000 - 0x0007ffffff RESERVED (128 Kb.)
0x00feffc000 - 0x00feffffff RESERVED (16 Kb.)
0x00fffc0000 - 0x00ffffffff RESERVED (256 Kb.)
<Multiboot>OS loaded with 1 modules
* hello "" @ 0x22f000 - 0x393978, size: 1460600b
* Multiboot begin: 0x9500
* Multiboot end: 0x326840
[x86_64 PC] constructor
[ Machine ] Initializing heap
[ Machine ] Main memory detected as 130441024 b
[ Machine ] Reserving 1048576 b for machine use
<Multiboot>Booted with multiboot
* Boot flags: 0x24f
* Valid memory (130559 Kib):
0x00000000 - 0x0009fbff (639 Kib)
0x00100000 - 0x07fdffff (129920 Kib)
* Booted with parameters @ 0x8000: hello ""
* Multiboot provided memory map (7 entries @ 0x9000)
0x0000000000 - 0x000009fbff FREE (639 Kb.)
0x000009fc00 - 0x000009ffff RESERVED (1 Kb.)
0x00000f0000 - 0x00000fffff RESERVED (64 Kb.)
0x0000100000 - 0x0007fdffff FREE (129920 Kb.)
0x0007fe0000 - 0x0007ffffff RESERVED (128 Kb.)
0x00feffc000 - 0x00feffffff RESERVED (16 Kb.)
0x00fffc0000 - 0x00ffffffff RESERVED (256 Kb.)
================================================================================
IncludeOS 0.15.1-5 (x86_64 / 64-bit)
+--> Running [ Hello world - OS included ]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Hello world
[ main ] returned with status 0
^C[ WARNING ] Process interrupted - stopping vms
* <VMRunner>: Exit called with status 70 ( ABORT )
* <VMRunner>: Message: Process terminated by user Keep running: False
* <VMRunner>: Calling on_exit
* <VMRunner>: Program exit called with status 70 ( ABORT )
* <VMRunner>: Stopping all vms
* <VMRunner>: Stopping hello PID 16622 with -SIGTERM
* <VMRunner>: + child process 16623
[ ABORT ] Process terminated by user
我通过安装其他缺少的qemu
软件包来修复它。并非所有这些都是必需的,但我跑了
sudo apt-get install qemu-kvm qemu virt-manager virt-viewer
我还确保我能够运行命令qemu-system-x86_64
来源:https://www.unixmen.com/how-to-install-and-configure-qemu-in-ubuntu/
经过一些工作,我找到了答案:我的机器上禁用了硬件虚拟化。我使用此解决方案解决了它。
。真是个愚蠢的错误!