[英]Emulate MIPS firmware in qemu
我正在尝试使用qemu仿真固件,但是在尝试执行它时遇到错误。
首先,我将固件文件系统提取到一个文件夹中,并将de qemu-mipsel文件复制到其中:
bin cdrom dev etc home init lib linuxrc mnt opt proc qemu-mipsel root sbin sys tango tmp udev usr var
然后,我使用chroot执行模拟器:
chroot。 ./qemu-mipsel ./bin/ls
我得到以下错误:
chroot: failed to run command `./qemu-mipsel': No such file or directory
谷歌搜索错误,我发现这意味着qemu依赖chroot环境中未包含的库,因此我搜索了它们:
linux-vdso.so.1 => (0x00007fffe79ff000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fcd9da57000)
libgthread-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007fcd9d855000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fcd9d55d000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fcd9d2db000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fcd9d0be000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcd9cd34000)
/lib64/ld-linux-x86-64.so.2 (0x00007fcda007a000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fcd9caf7000)
而且./lib/中缺少一些库:
linux-vdso.so.1 libgthread-2.0.so.0 libglib-2.0.so.0 /lib64/ld-linux-x86-64.so.2 libpcre.so.3
我该如何解决这个问题? 我可以创建到系统库的符号链接还是应该复制它们? 系统上也没有linux-vdso.so.1,我在哪里可以得到它? 问候。
linux-vdso.so.1实际上是内核。 其他文件是从您选择的GNU / Linux发行版中获得的(例如Debian,来自例如libcc,pcre3和glib2.0的源包)。 您确实必须将它们复制到chroot中。 对于/lib64/ld-linux-x86-64.so.2,路径名必须准确,因为该路径被硬编码到二进制文件中。
看来您已经从多体系结构的路径运行了Debian,这很好,因为您需要区分主机库和目标库。
另外,您可以静态编译和链接qemu-mipsel。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.