x86 바이너리를 ARM으로 쉽게 변환 할 수 없습니다 . 소스 코드 또는 제조업체에서 ARM 바이너리를 얻을 수없고 실제로 Pi2와 함께 프린터를 사용하려는 경우 Qemu 접근 방식이이 경우에는 올바른 방법이지만 매우 느릴 수 있습니다. . Qemu는 전체 시스템 에뮬레이션을 수행하지만 단일 프로세스 에뮬레이션에도 매우 효과적입니다.
나는 (I 확신이 Raspbian하지만 작동합니다 아니에요) 당신이 당신의 PI2에 데비안 유도체의 일종을 가지고 가정, 그리고 당신이 가지고있는 바이너리가 있음을 해요 i386
(이것은 64 비트 인 경우에 사용하는 amd64
대신). i386
외부 아키텍처로 추가하여 시작하십시오 .
sudo dpkg --add-architecture i386
sudo apt-get update
그런 다음 ldd
바이너리에서 실행 하고 필요한 라이브러리를 추가하십시오. 일반적으로
sudo apt-get install libc6:i386
:i386
접미사가 추가 된 다른 항목 설치된 패키지를 제거하지 마십시오. 바라건대 당신이 필요로하는 모든 것이 다중 아치 가능합니다. (그렇지 않으면 나머지는 작동하지 않습니다.)
설치가 완료되면 qemu-user-static
( binfmt-support
권장 사항 과 함께) 설치되어 있지 않은 경우 설치 하십시오 . 그런 다음 qemu-i386-static
프로그램을 실행 하는 데 사용할 수 있습니다 .
qemu-i386-static /usr/lib/cups/filter/rasterorp3150
사실 덕분에 binfmt-support
직접 실행해야합니다 ( Toby Speight가 지적한대로 ).
/usr/lib/cups/filter/rasterorp3150
( binfmt-support
이 작업을 투명하게하기 위해 Qemu를 사용합니다.)
을 사용하지 않으려면 멀리 binfmt-support
이동하십시오 rasterorp3150
.
sudo mv /usr/lib/cups/filter/rasterorp3150 /usr/lib/cups/filter/rasterorp3150.x86
다음을 포함하는 스크립트를 설치하십시오
#!/bin/sh
exec qemu-i386-static /usr/lib/cups/filter/rasterorp3150.x86 "$@"
로 /usr/lib/cups/filter/rasterorp3150
.
오히려이 모든 것에 대해 chroot를 설정할 수 있습니다. 참조 debootstrap
및 해당 --foreign
옵션 (chroot는 Qemu를 자동으로 사용하도록 설정 될 수 있음).