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
。我通过 binwalk
从 DIR868LB1_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
并使用 scp
将 squashfs-root/
cpoy 到虚拟机中。我在使用 debian_wheezy_armel_standard.qcow2
时遇到了同样的问题
我该怎么办?它困扰了我整个下午。
或者任何人都可以给我一个例子 运行 qemu 中的 arm 固件吗?我只找到很多使用基于 mips 的固件的示例。
非常感谢!
问题几乎肯定是因为 DIR868lL 中的任何 CPU 都比 "versatilepb" 板上的 ARM926 CPU 更新。如果该固件的二进制文件是为使用较新的指令而构建的,那么 运行 在较旧的 CPU 的仿真中使用它们将导致 'illegal instruction' 信号,就像你 运行 它们在真正的旧 ARM 硬件上。
这类似于获取为 Core2 Duo 构建的二进制文件并尝试 运行 在您的旧 Pentium 系统上运行它们:这是行不通的。
我在 Ubuntu 16.04 中安装 qemu-system-arm 到 dlink DIR868L 的 运行 固件。但是当我使用命令 chroot ./squashfs-root/ /bin/sh
时,它只显示 Illegal instruction
。我通过 binwalk
从 DIR868LB1_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
并使用 scp
将 squashfs-root/
cpoy 到虚拟机中。我在使用 debian_wheezy_armel_standard.qcow2
我该怎么办?它困扰了我整个下午。
或者任何人都可以给我一个例子 运行 qemu 中的 arm 固件吗?我只找到很多使用基于 mips 的固件的示例。
非常感谢!
问题几乎肯定是因为 DIR868lL 中的任何 CPU 都比 "versatilepb" 板上的 ARM926 CPU 更新。如果该固件的二进制文件是为使用较新的指令而构建的,那么 运行 在较旧的 CPU 的仿真中使用它们将导致 'illegal instruction' 信号,就像你 运行 它们在真正的旧 ARM 硬件上。
这类似于获取为 Core2 Duo 构建的二进制文件并尝试 运行 在您的旧 Pentium 系统上运行它们:这是行不通的。