iya nih
Jawabannya selalu ya, benar, hanya perlu beberapa saat untuk mengetahui caranya!
Jalan yang Keras
Saya akan menjalankan ini pada VPS, yang disediakan oleh Brightbox.com . Saya menggunakan Nano Server (2 CPU, RAM 512MB, ruang disk 20GB) dan gambar server Precise 12,04 LTS Ubuntu. Ini harus bekerja pada EC2 atau setara Linode, dan tentu saja, pada mesin Linux di rumah Anda. Saya sekarang telah mengujinya pada instalasi Arch (x86) saya, tetapi saya tahu itu tidak berfungsi pada Ubuntu 10,04 LTS karena beberapa paket terlalu tua.
Mempersiapkan sistem Anda - Debian / Ubuntu
Pastikan sistem Anda sendiri terkini.
$ sudo apt-get update
$ sudo apt-get upgrade
Instal beberapa perangkat lunak baru
$ sudo apt-get install binfmt-support qemu qemu-user-static unzip
qemu
adalah emulator ARM, dan qemu-user-static
dan binfmt-support
memungkinkan kita untuk menjalankan executable ARM tanpa meniru kernel ARM. (Betapa kerennya itu!?!)
Mempersiapkan sistem Anda - Lengkungan
Saya tidak dapat menemukan yang terhubung secara statis qemu
di repositori Arch, jadi kita harus mengkompilasi dari sumber.
- Unduh rilis terbaru dari http://git.savannah.gnu.org/cgit/qemu.git
Buka zip dan jalankan
./configure --disable-kvm --target-list=arm-linux-user --static
Bangun menggunakan make
dan menginstal menggunakan sudo make install
.
Jalankan berikut ini sebagai root
echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/local/bin/qemu-arm:' > /proc/sys/fs/binfmt_misc/register
echo ':armeb:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/local/bin/qemu-armeb:' > /proc/sys/fs/binfmt_misc/register
Peringatan Anda tidak boleh menjalankan perintah sewenang-wenang yang Anda temukan online root
- ini diambil dari qemu-binfmt-conf.sh
jenis cpu ARM. Silakan ekstrak perintah dari file ini dan jalankan.
Unduh dan hapus zip gambar
Buka raspberrypi.org dan unduh gambar yang Anda inginkan. Buka .img
zip dan simpan file di tempat yang berguna.
$ sudo mkdir -p /images/debian-squeeze
$ sudo wget "http://files.velocix.com/c1410/images/debian/6/debian6-19-04-2012/debian6-19-04-2012.zip" -O "/images/debian-squeeze.zip"
$ sudo unzip "/images/debian-squeeze.zip" -d /images/debian-squeeze
$ sudo rm /images/debian-squeeze.zip
Temukan partisi yang benar
The .img
akan berisi 3 partisi, termasuk partisi boot.
$ cd /images/debian-squeeze/debian6-19-04-2012/
$ fdisk -lu debian6-19-04-2012.img
Disk debian6-19-04-2012.img: 1949 MB, 1949999616 bytes
4 heads, 32 sectors/track, 29754 cylinders, total 3808593 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000ee283
Device Boot Start End Blocks Id System
debian6-19-04-2012.img1 2048 155647 76800 c W95 FAT32 (LBA)
debian6-19-04-2012.img2 157696 3414015 1628160 83 Linux
debian6-19-04-2012.img3 3416064 3807231 195584 82 Linux swap / Solaris
Kita perlu mengetahui offset dari partisi Linux, dalam hal ini adalah 157696
sektor, dan partisi boot, yang ada di 2048
sektor. Setiap sektor adalah 512 byte, jadi offset akar adalah 157696*512=80740352
byte dan boot offset adalah 2048*512=1048576
.
Pasang gambar sebagai perangkat loopback
Selanjutnya, kita perlu me-mount gambar sebagai sistem file. Ini dapat dilakukan dengan menggunakan perangkat loopback. Kami menggunakan offset dari bagian sebelumnya untuk memberi tahu mount
partisi mana yang akan dipasang dan di mana. Urutan perintah ini penting.
$ sudo mount -o loop,offset=80740352 "/images/debian-squeeze/debian6-19-04-2012/debian6-19-04-2012.img" /mnt
$ sudo mount -o loop,offset=1048576 "/images/debian-squeeze/debian6-19-04-2012/debian6-19-04-2012.img" /mnt/boot
Mempersiapkan sistem file.
Kami hampir siap untuk chroot
memasuki sistem file kami dan mulai menginstal perangkat lunak baru. Pertama, kita harus menginstal emulator ke dalam gambar kita, karena itu tidak akan tersedia setelah kita gunakan chroot
.
Debian / Ubuntu
$ sudo cp /usr/bin/qemu-arm-static /mnt/usr/bin/
Arch Linux
$ sudo cp /usr/local/bin/qemu-arm /mnt/usr/local/bin/
Semua sistem host
Kita juga perlu menyediakan akses ke bagian lain dari sistem.
$ sudo mount --rbind /dev /mnt/dev
$ sudo mount -t proc none /mnt/proc
$ sudo mount -o bind /sys /mnt/sys
chroot
Kita sudah selesai! chroot
jauh...
$ sudo chroot /mnt
Anda sekarang berada di Raspberry Pi Anda, tetapi layanannya tidak berjalan dll. Hati-hati, Anda root!
Perbarui / Instal perangkat lunak - Debian Image
Untuk memperbarui perangkat lunak, kami menggunakan apt-get
.
# apt-get update
# apt-get upgrade
Anda juga dapat menginstal perangkat lunak menggunakan apt-get install
seperti biasa.
Perbarui / Instal perangkat lunak - Gambar Lengkungan
Untuk memperbarui perangkat lunak, kami menggunakan pacman
.
# pacman -Syu
Anda juga dapat menginstal perangkat lunak menggunakan pacman -S
seperti biasa.
CATATAN Anda dapat menjalankan pacman
secara asli dengan mengikuti instruksi pada Bagaimana cara menjalankan asli saya pacman
terhadap gambar yang dipasang? .
Keluar
Anda dapat keluar chroot
dengan menggunakan Ctrl+ Ddan meng-unmount sistem dengan menjalankansudo umount /mnt
- Anda harus meng-unmount setiap titik pemasangan secara terpisah ..
Anda harus menghapus qemu-user-static
dari /usr/bin
atau qemu-arm
dari/usr/local/bin
pada RPi, maka gambar siap untuk di-flash.
Kata-kata terakhir
Ini agak panjang dan membosankan, tetapi lakukan sekali dan Anda akan belajar banyak tentang bagaimana ini semua bekerja!
Perhatikan pada gambar terbaru
Saat mencoba menjalankan lakukan ini pada gambar terbaru, Anda akan mendapatkan kesalahan
qemu: uncaught target signal 4 (Illegal instruction) - core dumped
Illegal instruction (core dumped)
Untuk memperbaiki kesalahan ini, cukup komentari isi /etc/ld.so.preload
file
Cara Mudah - piimg
Saya sudah mulai mengerjakan utilitas untuk melakukan banyak hal untuk Anda. Ini disebut piimg dan dapat ditemukan di github.com/alexchamberlain/piimg .
Sejauh ini, ia dapat memasang kartu SD untuk Anda dengan menjalankan
piimg mount /images/debian-squeeze/debian6-19-04-2012/debian6-19-04-2012.img /mnt
dan unmount mereka lagi dengan menjalankan
piimg umount /mnt
Anda hanya perlu menginstal qemu
dan chroot
pergi.
PENOLAKAN Saya, Alex Chamberlain, adalah pengembang utama piimg
. Karena itu, saya mungkin bias terhadap penggunaan piimg
dalam kaitannya dengan metode lain.
Referensi
Menjalankan ARM Linux di PC desktop Anda: Cara chroot asing
Mendapatkan 'instruksi ilegal' ketika mencoba chroot
sudo kpartx -av rpi_pisces_mate_r1.img
, yang akan menampilkan partisi. Gunakan yang terbesar dan pasang, missudo mount /dev/mapper/loop0p3 /mnt/tmp
.Di sini, skrip cepat yang saya kumpulkan saat saya menggulirkannya untuk memasang partisi Linux pertama dari sebuah file gambar. Gunakan dengan risiko Anda sendiri. Ini tidak memiliki kesalahan penanganan / validasi input
sumber
Saya mengikuti instruksi mencari metode untuk hanya membangun barang-barang untuk PI melalui PC utama saya, ternyata itu sangat mudah, setelah Anda chroot Anda dapat memperlakukan gambar seolah-olah itu adalah sistem hidup dan menggunakan semua aplikasi asli. pada teh pi, jadi tidak perlu menginstal kompiler silang :)
Saya punya satu pertanyaan, selama setup chroot, kita harus me-mount beberapa partisi agar chroot berfungsi dengan baik:
Bagaimana kita melepas ini dengan benar? meninggalkan mereka terpasang, yang menghentikan Anda dari unmount file .img, bantuan apa pun di sini akan dihargai. Saya mencoba opsi -f, tidak yakin apakah ada sesuatu yang mendasarinya yang sudah terpasang.
menjawab pertanyaan saya sendiri, https://bugzilla.redhat.com/show_bug.cgi?id=194342 metode ke-2 di akhir posting bekerja untuk saya dengan modifikasi sudo.
Jelas mengubah $ MOUNTPOINT ke jalur chroot mount point Anda (partisi ke-2 yang berisi rootfs pada file gambar, yang / mnt dalam tutorial di atas). Dengan menggunakan metode ini, Anda sepenuhnya meng-unmount file img dari perangkat loopback dan perangkat lain yang dipasang melalui chroot.
sumber