标签: qemu

将 nokaslr 添加到内核命令行

我正在尝试使用 qemu 和 gdb 调试 Linux 内核。问题是 gdb 不会在断点处停止。我搜索了一下,发现关闭 kASLR 可能会有所帮助,因为 kASLR 会混淆 gdb。

-- 在客户机上安装该内核。

+- 在来宾上安装该内核,通过在内核命令行中添加“nokaslr”来关闭 KASLR。

现在我不知道将 nokaslr 添加到命令行意味着什么以及执行此操作的方法。任何想法?

linux debugging gdb qemu linux-kernel

0
推荐指数
1
解决办法
6402
查看次数

32 位保护模式不适用于多个汇编文件

我正在编写一个简单的 NASM 汇编引导扇区。该代码应在 16 位实模式下将文本打印到屏幕上,然后切换到 32 位保护模式并将文本打印到屏幕上。

我使用 QEMU 作为我的 CPU 模拟器,它按照应有的方式从 16 位模式打印文本。但是,在 32 位模式下应该打印的文本不会打印。

我认为这是我的代码的问题,但我也运行了类似的代码,同样的问题是仅在 16 位模式下工作。

是我没有正确使用 QEMU,还是我弄乱了其他东西?我的代码是:

引导扇区.asm

; Boot sector that enters 32 bit protected mode
[org 0x7c00]

mov bp, 0x9000          ; Set stack
mov sp, bp

mov bx, MSG_REAL_MODE
call print_string

call switch_to_pm       ; We will never return to here

jmp $

%include "print_string.asm"
%include "gdt.asm"
%include "print_string_pm.asm"
%include "switch_to_pm.asm"

[bits 32]
;Where we arrive after switching to PM
BEGIN_PM:
    mov ebx, …
Run Code Online (Sandbox Code Playgroud)

x86 assembly qemu nasm osdev

0
推荐指数
1
解决办法
1231
查看次数

QEMU riscv32-softmmu,softmmu是什么意思?

“softmmu”是否意味着虚拟机具有可用于机器和用户模式的单个线性地址空间?或者它是否具有一些通过软件而不是底层处理器实现的虚拟内存功能?或者也许它意味着完全不同的东西?

qemu riscv32

0
推荐指数
1
解决办法
511
查看次数

如何使用Qemu查看内存中的内容

我正在 Qemu 中尝试这个用于 armv5 connex 板的汇编程序。我添加两个数字并将它们存储在位置标签结果中。我无法在内存位置查看结果值 40,但寄存器值 r4 = 0x28。

    .data
val1:   .4byte 10
val2:   .4byte 30
result: .4byte 0

    .text
    .align
start:
    ldr r0, =val1
    ldr r1, =val2

    ldr r2, [r0]
    ldr r3, [r1]

    add r4, r2, r3
    ldr r0, =result
    str r4, [r0]

stop:   b stop
Run Code Online (Sandbox Code Playgroud)

我的链接器脚本是

SECTIONS {
    . = 0x00000000;
    .text : {
        *(.text);
    }
    .data : {
        *(.data);
    }

}
Run Code Online (Sandbox Code Playgroud)

输出

user@stretch:~/Desktop/Gnu_Toolchain/Data_In_Ram$ arm-none-eabi-nm -n data_in_ram.elf
00000000 t start
0000001c t stop
0000002c d val1
00000030 …
Run Code Online (Sandbox Code Playgroud)

assembly arm qemu

0
推荐指数
1
解决办法
852
查看次数

chroot 后 qemu-x86_64-static Exec 格式错误

我在 root 权限下使用 termux。我的手机有 aarch64 cpu 架构。我正在尝试使用我见过的 amd64 架构来 chroot ubuntu 文件系统,这https://unix.stackexchange.com/a/222981 这是我的命令

sudo chroot ubuntu /bin/qemu-x86_64-static /bin/bash --login

我成功登录,但是当我运行命令 ls或任何命令时

它给出了一个错误,就像Exec format error 我用 qemu-x86_64-static 尝试了该命令一样,qemu-x86_64-static /bin/ls它成功执行了,有什么想法吗???

我想我可以为所有以 qemu-x86_64-static 开头的命令添加别名,但这不是一个好主意......

linux ubuntu qemu chroot cpu-architecture

0
推荐指数
1
解决办法
2671
查看次数

如何在远程 Ubuntu/Debian Linux 服务器上运行无 libvirt 的 headless qemu?

我已经尝试过什么?

qemu-system-x86_64 -hda hdd.img -m 1G -net nic, macaddr=MACADDR -net bridge,br=BRIDGE -enable-kvm -nographic -daemonize

qemu-system-x86_64 -hda hdd.img -m 1G -net nic, macaddr=MACADDR -net bridge,br=BRIDGE -enable-kvm -display none -daemonize

qemu-system-x86_64 -hda hdd.img -m 1G -net nic, macaddr=MACADDR -net bridge,br=BRIDGE -enable-kvm -nographic -serial mon:stdio -append 'console=ttyS0'
Run Code Online (Sandbox Code Playgroud)

MACADDR 和 BRIDGE 在我的系统中定义。

我使用过-display none -daemonize,但失败并出现错误

qemu-system-x86_64: -nographic cannot be used with -daemonize

我也尝试过-nographic -serial mon:stdio -append 'console=ttyS0',但也失败并出现错误:

Failed to initialize module: /usr/lib/x86_64-linux-gnu/qemu/block-iscsi.so
Note: only modules from the same build can …
Run Code Online (Sandbox Code Playgroud)

ubuntu debian qemu headless debian-based

0
推荐指数
1
解决办法
2459
查看次数

除 aarch64 之外的访客系统中适用于 Apple Silicon 的 hvf 加速器

我通过 Homebrew ( brew install qemu) 在装有 MacOS Sonoma 的 MacBook Pro M2 Pro 上下载了 QEMU。我注意到hvf加速器与qemu-system-x86_64. 我还探索了其他来宾系统,唯一支持的系统hvfqemu-system-aarch64(即与主机系统相同的架构)。

根据QEMU的文档,MacOS应该能够支持hvf。为什么这个系统依赖?如何启用hvf其他系统(如果可能的话)?

macos qemu

0
推荐指数
1
解决办法
382
查看次数