Saya baru saja mendapatkan Raspberry Pi 3 dan saya ingin mulai bereksperimen di atasnya, khususnya mengenai set instruksi 64-bit.
Saya menyadari pro dan kontra dari 32-bit versus set instruksi 64-bit, jadi tolong tetap pada pertanyaan asli: Apakah mungkin untuk menjalankan kernel 64-bit menggunakan aplikasi ruang pengguna 32-bit saat ini ?
Cukup mengkompilasi kernel dengan kompiler 64-bit dan mengunggah gambar ke RasPi atau adakah langkah-langkah lain yang harus saya perhatikan? Bisakah Anda memberi saya gambaran umum tingkat tinggi tentang apa yang harus saya lihat sebagai peta jalan? Seperti, modul / driver yang bisa / akan rusak jika saya menginstal kernel 64-bit. Apakah saya perlu mengkompilasi ulang semuanya?
Menjelajah internet Saya tahu ini mungkin untuk beberapa kelas perangkat lain, dan yang biasanya menjalankan konfigurasi "hibrid" ini akan merusak manajer paket, tetapi saya tidak khawatir dengan kemudahan pengelolaan saat ini. Jadi, bahkan jika itu merusak manajer paket dan itu sangat sulit untuk dipertahankan, saya ingin memahami bagaimana hal itu dilakukan.
Perlu diketahui bahwa saya masih belajar bagaimana mengkompilasi kernel, tetapi saya masih memiliki pengalaman mengembangkan aplikasi C / C ++ untuk waktu yang lama. Ini adalah proyek kesayangan saya untuk memiliki pemahaman mendalam tentang arsitektur linux dan kernel internal.
sumber
Jawaban:
Iya. Beberapa gambar pra-bangun siap digunakan:
Tidak praktis menggunakan multiarch dengan Raspbian karena tidak memiliki paket upstream 64-bit, dan kerabat 64-bit terdekat (Debian arm64) memiliki versi paket yang tidak kompatibel. Untuk menjalankan program 64-bit di bawah Raspbian Anda dapat menggunakan binari statis, wadah (LXC, systemd-nspawn), atau chroot [1] . Isolasi seperti itu menghindari konflik paket khas yang melekat pada mutiarch.
Anda tidak perlu mengkompilasi ulang apa pun karena binari untuk semua hal di atas (Raspbian 32-bit userland, kernel 64-bit, Debian arm64 userland paket) sudah tersedia.
Pada saat penulisan kamera SoC, decode video dipercepat dengan MMAL, dan dukungan USB kecepatan tinggi (melalui FIQ) diketahui rusak di bawah kernel Raspberry Pi 64-bit.
[1] Lihat OS 64-bit pada Raspberry Pi 4 untuk instruksi tentang cara membuat chroot tersebut.
sumber
Tentu itu mungkin. Sistem operasi 64-bit selalu melakukannya *. Itu terjadi ketika Anda menggunakan OS 64-bit dan Anda membuka aplikasi 32-bit (alias aplikasi ruang pengguna 32-bit).
Namun terkadang, mungkin ada masalah dengan perpustakaan / dependensi. Saya pernah mengalami kesalahan pada PC , sesuatu tentang
wrong ELF class
. Dipecahkan dengan menginstal perpustakaan 32-bit yang sesuaiia32-libs
.Saya tidak begitu yakin bagaimana ini akan berperilaku pada mesin ARM karena tidak ada kernel 64-bit resmi untuk Pi yang dapat saya mainkan (belum).
Juga, seseorang tidak hanya mengkompilasi kernel dengan kompiler 64-bit yang mengunggahnya di Pi. Jika sesederhana itu, kita akan sudah menjalankan Pi 3 dengan kernel 64-bit.
sumber
C:\Program Files
, dan aplikasi 32-bit disimpanC:\Program Files (x86)
.SysWOW64
, dan 64-bit, yang disimpan dalamsystem32
. Jendela mengidentifikasi eksekusi dan membuatnya begitu bahwa 32-bit aplikasi melihatSysWOW64
sebagaisystem32
. Hal yang sama terjadi denganProgram Files
dan registri. Aplikasi 32-bit dilihatC:\Program Files (x86)
sebagai hal biasaC:\Program Files
tetapi perubahan apa pun dapat dilakukanC:\Program Files (x86)
.Anda perlu kedua set perpustakaan dan kedua arsitektur dikompilasi melawan perpustakaan yang tepat, jadi 2 membangun lingkungan. Mencari multi lengkungan dan bsse pilihan Anda untuk mendapatkan petunjuk. Suka
https://wiki.debian.org/MultiarchCrossToolchainBuild
Jadi Anda perlu melakukan sesuatu seperti itu tetapi di ruang Rasbian. Jadi, membangun kernel arm64 dan pengguna armhf dan kedua set perpustakaan yang terhubung dengan benar untuk masing-masingnya.
Di sini Anda dapat melihat seseorang melakukannya di papan yang berbeda:
https://groups.google.com/forum/#!topic/linux.debian.ports.arm/ankucgztcI8
Dan lihat pengalaman mereka.
sumber