คุณไม่สามารถแปลงx86เป็น ARM ได้อย่างง่ายดาย หากคุณไม่สามารถรับซอร์สโค้ดหรือไบนารี ARM จากผู้ผลิตและคุณต้องการใช้เครื่องพิมพ์กับ Pi2 ของคุณจริงๆแล้ววิธี Qemu นั้นถูกต้องในกรณีนี้ถึงแม้ว่ามันจะช้ามาก . Qemu ทำการจำลองระบบอย่างสมบูรณ์ แต่ก็ทำงานได้ดีมากสำหรับการจำลองกระบวนการเดียว
ฉันสมมติว่าคุณมีอนุพันธ์ Debian บางอย่างใน Pi2 ของคุณ (ฉันไม่แน่ใจว่าสิ่งนี้จะทำงานกับ Raspbian ได้) และไบนารีที่คุณมีนั้นใช้สำหรับ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 โดยอัตโนมัติ)