qemu로 펌웨어를 에뮬레이트하려고하는데이를 실행하는 중에 오류가 발생합니다. 모든qemu에서 MIPS 펌웨어를 에뮬레이트하십시오.
먼저 나는 폴더에 펌웨어 파일 시스템을 추출하고, 그것을 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/에서 누락 :
리눅스 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은 시스템에 존재하지 않습니다. 어디서 구할 수 있습니까? 문안 인사.
나는 chroot 안의 모든 라이브러리를 coppied했지만 지금은이 에러가 발생한다 : ./qemu-mipsel : 공유 라이브러리를로드하는 중 오류가 발생한다 : librt.so.1 : 틀린 ELF 클래스 : ELFCLASS32 – Nucklear
나는 그것이 librt.so 파일이 잘못되었습니다. Multi-Arch를 사용하여 실행중인 mipsel 이미지도 있습니까? 나는 $ {chrootbasepath} /lib/librt.so.1이 $ {chrootbasepath} /lib/mipsel-linux-gnu/librt.so.1 대신에 사용되어 x86 바이너리 qemu가이를 선택할 수 있다고 생각합니다. 다음과 같이 qemu 바이너리를 실행할 수 있습니다 : env LD_LIBRARY_PATH =/lib/x86_64-linux-gnu :/usr/lib/x86_64-linux-gnu chroot $ chrootbasepath ./qemu-mipsel ... (그렇지 않으면 항상 정적으로 컴파일하십시오.) – mirabilos