草庐IT

Qemu-ARM

全部标签

linux - 如何使用 QEMU 和 KGDB 调试 Linux 内核?

我已经能够使用以下方式调用qemu(v1.7.0)来启动基于powerpc的系统(具体来说是MPC8544DS)qemu-system-ppc-Mmpc8544ds-m512-kernelzImage-s-nographic-initrdbusyboxfs.img-append"root=/dev/ramrdinit=/bin/shkgdboc=ttyS0,115200kgdbwait"其中zImage是自定义交叉编译的Linux内核(v2.6.32),它启用并编译了KGDB(用于启动代码调试),busyboxfs.img是基于busybox的根文件系统。因为我正在使用Qemu的-s标

c++ - ARM交叉编译,多重继承段错误

我有一个使用多重继承和多态性的C++应用程序。它在x86_64-linux上工作正常,但在arm-linux上我遇到了段错误。我已经编写了一个简单的测试来重现问题:#include#includeclassSmartObject{public://removingthisdestructormakesitworkinANYwayvirtual~SmartObject(){}voidmethod(void){}};classIMyInterface{public://removingthisdestructorhavenoeffect(fails)virtual~IMyInterface

c++ - ARM交叉编译,多重继承段错误

我有一个使用多重继承和多态性的C++应用程序。它在x86_64-linux上工作正常,但在arm-linux上我遇到了段错误。我已经编写了一个简单的测试来重现问题:#include#includeclassSmartObject{public://removingthisdestructormakesitworkinANYwayvirtual~SmartObject(){}voidmethod(void){}};classIMyInterface{public://removingthisdestructorhavenoeffect(fails)virtual~IMyInterface

linux - QEMU:/bin/sh: 无法访问 tty;作业控制关闭

作为linux内核的开发环境,我使用qemu并设置了initramfs,类似于所示here,几乎没有额外的可执行文件。基本上,它使用busybox创建最小环境并使用cpio将其打包。init的内容如下所示。$catinitmount-tprocnone/procmount-tsysfsnone/sysecho-e"\nBoottook$(cut-d''-f1/proc/uptime)seconds\n"exec/bin/sh使用以下命令启动虚拟机:qemu-system-x86_64-kernelbzImage-initrdinitramfs-append"console=ttyS0"

linux - QEMU:/bin/sh: 无法访问 tty;作业控制关闭

作为linux内核的开发环境,我使用qemu并设置了initramfs,类似于所示here,几乎没有额外的可执行文件。基本上,它使用busybox创建最小环境并使用cpio将其打包。init的内容如下所示。$catinitmount-tprocnone/procmount-tsysfsnone/sysecho-e"\nBoottook$(cut-d''-f1/proc/uptime)seconds\n"exec/bin/sh使用以下命令启动虚拟机:qemu-system-x86_64-kernelbzImage-initrdinitramfs-append"console=ttyS0"

linux - 如何将 libc.a 链接到 arm-linux 中的共享库中使用 arm-none-linux-gnueabi-gcc

在一个项目中,我的同事创建了一个静态库,例如liba.a,它与应用程序链接。在liba.a中,他将libcmalloc()覆盖为他的所有者版本。我创建了一个共享库libs.so,它也与应用链接。问题是当我的libs.so与应用程序链接时,我的libs.so中使用的malloc()将是liba.a中的那个,不是标准libc.so中的那个,这会导致问题。然后,我想将libc.a静态链接到我的libs.so,我为gcc使用了-static-shared-fPIcflags。但我总是得到arm-2012.03/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.

linux - 如何将 libc.a 链接到 arm-linux 中的共享库中使用 arm-none-linux-gnueabi-gcc

在一个项目中,我的同事创建了一个静态库,例如liba.a,它与应用程序链接。在liba.a中,他将libcmalloc()覆盖为他的所有者版本。我创建了一个共享库libs.so,它也与应用链接。问题是当我的libs.so与应用程序链接时,我的libs.so中使用的malloc()将是liba.a中的那个,不是标准libc.so中的那个,这会导致问题。然后,我想将libc.a静态链接到我的libs.so,我为gcc使用了-static-shared-fPIcflags。但我总是得到arm-2012.03/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.

linux - ARM 上 TLS 的代码序列

ELFHandlingForThread-LocalStorage文档给出了各种体系结构的各种模型(本地执行/初始执行/一般动态)的汇编序列。但不是ARM——在任何地方我都可以看到这样的ARM代码序列吗?我正在开发一个编译器,并希望生成能够与平台链接器(程序链接器和动态链接器)一起正常运行的代码。为清楚起见,我们假设一个ARMv7CPU和一个相当新的内核和glibc(例如3.13+/2.19+),但如果这很容易解释的话,我也会对旧硬件/软件必须更改的内容感兴趣。 最佳答案 我不太明白你想要什么。然而,汇编程序序列(针对ARMv6+和

linux - ARM 上 TLS 的代码序列

ELFHandlingForThread-LocalStorage文档给出了各种体系结构的各种模型(本地执行/初始执行/一般动态)的汇编序列。但不是ARM——在任何地方我都可以看到这样的ARM代码序列吗?我正在开发一个编译器,并希望生成能够与平台链接器(程序链接器和动态链接器)一起正常运行的代码。为清楚起见,我们假设一个ARMv7CPU和一个相当新的内核和glibc(例如3.13+/2.19+),但如果这很容易解释的话,我也会对旧硬件/软件必须更改的内容感兴趣。 最佳答案 我不太明白你想要什么。然而,汇编程序序列(针对ARMv6+和

linux - 网络不适用于 qemu guest (Malta Mips)

我正在尝试在QEMUmaltamips上配置网络,它使用tap/tun设备和桥接口(interface)在vmware主机(ubuntu)上运行。我的qemuguest无法从DHCP服务器检索IP地址。如果我手动给它,它只能连接到它的主机。使用tcpdump我开始知道传出流量工作正常但传入流量不工作。谁能建议我如何解决此类问题?谢谢你 最佳答案 如果您使用NAT模式,那么您的主机将充当guestVM的路由器。这意味着您必须在主机上启用路由。假设您启动qemu并将其链接到tap0接口(interface),并且您的传出互联网接口(in