Score:6

มีเลเยอร์การแปลสำหรับซอฟต์แวร์ x86 บน Ubuntu ARM หรือไม่

ธง ua

ฉันเพิ่งติดตั้ง Ubuntu ARM บน M1 MacBook Air ของฉันบนเครื่องเสมือน (โดยใช้ Parallels) ซึ่งแตกต่างจาก Windows ARM และ macOS ARM ตรงที่ Ubuntu ARM ดูเหมือนจะไม่มีเลเยอร์การแปลสำหรับแอป x86 ซึ่งทำให้ระบบแทบใช้งานไม่ได้เป็นจำนวนมาก ซอฟต์แวร์ Linux ยังไม่รองรับ ARM

ตัวอย่างเช่น ฉันพบข้อผิดพลาดขณะพยายามติดตั้ง VSCode ด้วย Gdebi:

ภาพหน้าจอ

ฉันไม่อยากเชื่อเลยว่ายังไม่มีเลเยอร์การแปลบน Linux ARM เนื่องจากเป็นโอเพ่นซอร์สโอเอสซึ่งมักทำให้การพัฒนาสิ่งเหล่านั้นง่ายและรวดเร็วกว่าระบบปฏิบัติการอื่นๆ

มีเลเยอร์การแปลที่ฉันสามารถติดตั้งได้หรือไม่

davidbak avatar
cn flag
"... เมื่อพิจารณาว่าเป็นโอเพ่นซอร์สโอเอสซึ่งมักจะทำให้การพัฒนาสิ่งเหล่านั้นง่ายและรวดเร็วกว่าระบบปฏิบัติการอื่น" - ทำไมคุณถึงคิดอย่างนั้น? โอเพ่นซอร์สไม่ได้ทำอะไรเลย มันอาจจะและถ้าเป็นเช่นนั้นก็เป็นเรื่องบังเอิญ แต่เป็นคำสั่งทั่วไป? ไม่ (แน่นอนว่า _เป็นไปได้_ที่จะพัฒนาสิ่งนี้สำหรับระบบปฏิบัติการโอเพ่นซอร์ส แต่ "ง่ายกว่า" "เร็วกว่า" "ง่ายกว่า _และ_เร็วกว่า" ไม่ใช่โดยทั่วไป)
Peter Cordes avatar
fr flag
มันเป็นโอเพ่นซอร์ส ดังนั้นเราจึงไม่ต้องการเลเยอร์จำลองสำหรับซอฟต์แวร์ส่วนใหญ่ เราเพียงแค่สร้างใหม่จากแหล่งที่มา แต่เนื่องจากมี qemu และ binfmt-misc อยู่แล้ว ชิ้นส่วนเหล่านี้จึงมีการจำลองแบบโปร่งใส เช่นเดียวกับที่เครื่อง x86 Linux สามารถตั้งค่าเป็นไฟล์ปฏิบัติการ Windows สามารถรันด้วย WINE ได้อย่างโปร่งใส
eg flag
`มีซอฟต์แวร์ลีนุกซ์จำนวนมากที่ยังไม่รองรับ ARM` - **ส่วนใหญ่** ของซอฟต์แวร์ลีนุกซ์รองรับ ARM แล้วตั้งแต่ปี 2545 ข้อเท็จจริงที่ว่าซอฟต์แวร์ลีนุกซ์เกือบทั้งหมดรองรับ ARM คือสิ่งที่ทำให้โครงการต่างๆ เช่น Android และ Raspberry Pi ประสบความสำเร็จ
Ismael Miguel avatar
om flag
VSCode มีเวอร์ชัน ARM แต่ในฐานะคนที่จมปลักกับ Raspberry Pi 4 มาตลอดสัปดาห์ที่แล้ว ผมขอแนะนำให้คุณเลิกใช้ VSCode บน ARM CPU ประสบการณ์ของฉันต่ำกว่าขยะด้วย ใช้เวลา 2 นาทีในการบันทึกไฟล์ไปยังเครือข่ายที่ใช้ร่วมกัน ซึ่ง VSCode ใช้เวลาทั้งหมดเพียงแค่อ่านไฟล์และไม่ได้ทำอย่างอื่น ฉันได้ **WAY** ผลลัพธ์ที่ดีกว่าเมื่อใช้ Notepad++ บน WineHQ บน Box86 บน Raspberry Pi 4 ของฉัน ฉันใช้ PiApps เพื่อติดตั้ง WineHQ และเพิ่งติดตั้ง Notepad++ จากเว็บไซต์ ใช้งานได้ ... ตกลงโดยไม่ต้องเติมข้อความอัตโนมัติ หรือใช้ geany
Josef says Reinstate Monica avatar
@IsmaelMiguel ที่อาจไม่มีอะไรเกี่ยวข้องกับ ARM และเหตุผลก็คือ Raspberry Pi 4 มี CPU ที่ค่อนข้างช้า ฉันถือว่าการรัน VSCode บน CPU M1 ที่ทรงพลังกว่านั้นทำงานได้โดยไม่มีปัญหา
Ismael Miguel avatar
om flag
@JosefsaysReinstateMonica นั่นเป็นจุดที่ดี ฉันไม่ได้สังเกตว่ามี UI สไตล์ MacOS อยู่รอบๆ ระบบปฏิบัติการ Ubuntu ฉันควรจะสังเกตก่อนที่จะพูดอะไร อย่างไรก็ตาม เมื่อมีคนพูดว่า "บนชิป ARM" ผู้คนจะคิดว่าเหมือนกับไมโครคอมพิวเตอร์และสิ่งที่คล้ายกัน ไม่ใช่ผลิตภัณฑ์ของ Apple
Ben Voigt avatar
vg flag
@IsmaelMiguel "ไมโครคอมพิวเตอร์" ใช้พื้นที่ในลำดับชั้นของขนาดที่สูงกว่าที่คุณคิด ครอบคลุมคอมพิวเตอร์เดสก์ท็อปและแล็ปท็อปทั้งหมดและเซิร์ฟเวอร์จำนวนมาก ประเภทของอุปกรณ์ที่สามารถเรียกใช้ IDE การเขียนโปรแกรมได้ดี
Ismael Miguel avatar
om flag
@BenVoigt ใช่ แต่ฉันแสดงความคิดเห็นตาม "ไมโครคอมพิวเตอร์" ของฉัน Raspberry Pi 4 ปี 2020 (ไม่มีการโอเวอร์คล็อก) และ VSCode อยู่ด้านล่างขยะใน "ไมโครคอมพิวเตอร์" ของฉันมันไร้ประโยชน์อย่างมีประสิทธิภาพจนถึงจุดที่การแปลโปรแกรม Windows จาก x86 เป็น ARM นั้นเร็วกว่า VSCode มาก
Josef says Reinstate Monica avatar
@IsmaelMiguel VSCode นั้นเป็นเบราว์เซอร์ที่ใช้งาน IDE ที่ใช้ใน HTML และ JavaScript แน่นอนมันช้า แม้กระทั่ง [ทราบกันดีว่าใช้แกน CPU ทั้งหมดเพียงเพื่อกะพริบเคอร์เซอร์](https://github.com/microsoft/vscode/issues/22900) เพียงครั้งเดียว ทุกวันนี้คอมพิวเตอร์เร็วมาก ผู้คนจึงหลีกหนีจากการติดตั้ง IDE ที่ช้าโดยใช้เทคโนโลยีเว็บ... แต่นั่นไม่เกี่ยวข้องกับ ARM หรือ AMD64 แต่อย่างใด VSCode ก็ทำงานช้าบน AMD64 เช่นกัน ยากกว่าที่จะได้รับ AMD64 CPU ที่ช้าในปัจจุบัน แต่ลองใช้ VSCode บน Intel Atom...
Ismael Miguel avatar
om flag
@JosefsaysReinstateMonica ในกรณีของฉัน มันใช้ CPU มากกว่า 30% เพื่อเข้าถึงการแชร์ Samba และวิเคราะห์ไฟล์ในนั้น (ไม่ว่าจะด้วยเหตุผลใดก็ตาม) และมันก็จะวิเคราะห์พวกมันไปเรื่อย ๆ ซ้ำแล้วซ้ำเล่า ถ้าฉันเปิดมันเพื่อแก้ไขไฟล์ในเครื่องโดยไม่มีโฟลเดอร์ที่ทำงาน มันก็ค่อนข้างจะยอมรับได้
Score:15
ธง us

กล่อง86 และ Box64 เป็นอีมูเลเตอร์ที่สามารถใช้เพื่อเรียกใช้แอพ x86 แบบดั้งเดิมใน ARM

นี่คือวิธีการติดตั้ง Box64 เพื่อให้คุณสามารถเรียกใช้ได้ เอเอ็มดี 64 ไบนารีใน แขน64 (โปรดทราบว่าคุณไม่สามารถติดตั้งไฟล์ amd64 .deb ด้วยวิธีนี้ได้ ไฟล์ .deb ไม่ได้ออกแบบมาเช่นนั้น อย่างไรก็ตาม คุณอาจยังสามารถแยกไบนารีออกจากไฟล์ .deb และเรียกใช้ได้) คำแนะนำเหล่านี้อ้างอิงจาก คู่มือนี้.

ก่อนอื่นให้ติดตั้ง คอมไพล์ และคอมไพเลอร์ที่จำเป็น ดาวน์โหลดซอร์สด้วย git และป้อนไดเร็กทอรีซอร์ส

sudo apt ติดตั้ง git build-essential cmake
โคลนคอมไพล์ https://github.com/ptitSeb/box64.git
ซีดี ~/box64

ตอนนี้สร้างไดเร็กทอรีชื่อ build และสร้าง ทำไฟล์ ใช้ cmake.

สร้าง mkdir
สร้างซีดี
cmake .. -DRPI4ARM64=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo

ตอนนี้คอมไพล์ด้วยคอร์ที่มีอยู่ทั้งหมด

ทำ -j$(nproc)

ตอนนี้ติดตั้งซอฟต์แวร์ที่คอมไพล์แล้ว

sudo ทำการติดตั้ง

ตอนนี้รีสตาร์ท systemd-binfmt บริการ.

sudo systemctl รีสตาร์ท systemd-binfmt

สุดท้าย รีสตาร์ทคอมพิวเตอร์

ตอนนี้ คุณควรจะสามารถเรียกใช้ไบนารีที่คอมไพล์สำหรับ เอเอ็มดี 64 สถาปัตยกรรม.


อย่างไรก็ตามพื้นเมือง แขน64 งานสร้างสำหรับ VSCode มีให้ที่ เว็บไซต์อย่างเป็นทางการคุณไม่จำเป็นต้องเลียนแบบ


ซอฟต์แวร์ Linux จำนวนมากยังไม่รองรับ ARM...

ดูเหมือนว่าคุณจะเข้าใจผิด เนื่องจากซอฟต์แวร์ส่วนใหญ่ในที่เก็บข้อมูลเป็นซอฟต์แวร์ฟรีและโอเพ่นซอร์ส จึงได้รับการคอมไพล์แล้ว และพร้อมใช้งานสำหรับ ARM ตาม https://debian.pkgs.org/, แขน64 พื้นที่เก็บข้อมูลสำหรับ Debian Sid มีแพ็คเกจ 62542 ในขณะที่ เอเอ็มดี 64 ที่เก็บมี 63568 แพ็คเกจ (ณ วันที่ 18 พ.ย. 2564) ผู้คนมักจะใช้ box64 เพื่อเลียนแบบซอฟต์แวร์ที่เป็นกรรมสิทธิ์ที่สร้างขึ้นสำหรับ Windows

br flag
ฉันคิดว่ามันน่าจะเป็นไปได้ที่จะรวม box[64/86] กับ deb โดยใช้ `dpkg --add-architecture amd64`
us flag
@Pelle ฉันยังไม่ได้ลอง ในกรณีที่คุณได้ทดสอบแล้ว คุณสามารถแก้ไขได้ตามสบาย
FedKad avatar
cn flag
@ArchismanPanigrahi ฉันลองติดตั้งเหล่านี้บน VPS ที่ใช้ ARM หลังจากเสร็จสิ้นและรีบูต ฉันสามารถเรียกใช้โปรแกรมบรรทัดคำสั่ง amd64 ได้อย่างไรก็ตาม ฉันมีแอปพลิเคชัน amd64 GUI (พัฒนาและคอมไพล์ใน Lazarus) และใช้งานไม่ได้ มันให้ข้อผิดพลาดบางอย่างเช่น `gtk_major_version not found`, `gtk_minor_version not found`, `gtk_marshal_VOID__POINTER_POINTER not found` และ `gtk_key_snooper_install(ver 0: gtk_key_snooper_install) not found` ฉันคิดว่าสิ่งนี้ถูกกล่าวถึงใน https://github.com/ptitSeb/box64 ภายใต้ **หมายเหตุเกี่ยวกับโปรแกรม GTK**
Aaron Franke avatar
ar flag
มีวิธีรองรับสถาปัตยกรรม `amd64` (x86_32) แบบเนทีฟบนระบบ ARM เหมือนกับที่เราสามารถรองรับ `i386` (x86_32) บน `amd64` (x86_64) ได้หรือไม่ ฉันต้องการที่จะติดตั้งแพ็คเกจ `amd64` ผ่านทางตัวจัดการแพ็คเกจ ไม่ว่าจะผ่าน `sudo apt install` หรือผ่านการติดตั้งไฟล์ `.deb`
us flag
@AaronFranke ดูความคิดเห็นของ Pelle
Score:4
ธง br

การจำลองผู้ใช้ Qemu เป็นวิธีที่ดีมากในการเรียกใช้โปรแกรมจากสถาปัตยกรรมอื่น ๆ ได้อย่างราบรื่น ฉันไม่มีประสบการณ์จริงกับโปรแกรมกราฟิก ดังนั้นอาจมีมังกรในลักษณะนั้น

นอกจากนี้ยังรวมเข้ากับ apt/dpkg โดยลงทะเบียนสถาปัตยกรรมต่างประเทศ

br flag
โดยทั่วไปทำงานได้ดีสำหรับ X เนื่องจากเป็นไคลเอนต์เซิร์ฟเวอร์ที่เป็นหัวใจสำคัญ
Aaron Franke avatar
ar flag
ทำตามคำแนะนำนี้ ฉันติดตั้งแพ็คเกจ Qemu ดูเหมือนว่า `update-binfmts --display` จะทำงานได้อย่างถูกต้อง จากนั้นฉันเพิ่มสถาปัตยกรรม `amd64` ใน dpkg แต่ `apt` ไม่พบแพ็คเกจใดๆ `apt update` บอกว่า `E: ไม่สามารถดึง http://us.ports.ubuntu.com/ubuntu-ports/dists/impish/main/binary-amd64/Packages 404 Not Found [IP: 91.189.91.38 80]` . คำแนะนำแบบเต็มคืออะไร? ดูเหมือนว่ามีบางอย่างขาดหายไปซึ่งจำเป็นสำหรับคำแนะนำของเดเบียน
br flag
Ports.ubuntu.com ไม่มีแพ็คเกจ amd64 คุณจะต้องเพิ่มที่เก็บ Ubuntu ปกติ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา