qemu-system-arm chroot 非法指令

qemu-system-arm chroot illegal instruction

我在 Ubuntu 16.04 中安装 qemu-system-arm 到 dlink DIR868L 的 运行 固件。但是当我使用命令 chroot ./squashfs-root/ /bin/sh 时,它只显示 Illegal instruction。我通过 binwalkDIR868LB1_FW203b01.bin 得到 squashfs-root/ 并且我确定 /bin/sh 存在于 squashfs-root/.

我通过 sudo qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.32-5-versatile -initrd initrd.img-2.6.32-5-versatile -hda debian_squeeze_armel_standard.qcow2 -append "root=/dev/sda1" -net nic -net tap 启动 qemu 并使用 scpsquashfs-root/ cpoy 到虚拟机中。我在使用 debian_wheezy_armel_standard.qcow2

时遇到了同样的问题

我该怎么办?它困扰了我整个下午。

或者任何人都可以给我一个例子 运行 qemu 中的 arm 固件吗?我只找到很多使用基于 mips 的固件的示例。

非常感谢!

问题几乎肯定是因为 DIR868lL 中的任何 CPU 都比 "versatilepb" 板上的 ARM926 CPU 更新。如果该固件的二进制文件是为使用较新的指令而构建的,那么 运行 在较旧的 CPU 的仿真中使用它们将导致 'illegal instruction' 信号,就像你 运行 它们在真正的旧 ARM 硬件上。

这类似于获取为 Core2 Duo 构建的二进制文件并尝试 运行 在您的旧 Pentium 系统上运行它们:这是行不通的。