1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
---
title: Virtual ARM di Lingkungan Linux
slug: Mozilla/Developer_guide/Virtual_ARM_Linux_environment
tags:
- ARM Linux
- Mengembangkan Mozilla
- Mobile
- Pengujian
- SSH
- Virtual ARM
translation_of: Mozilla/Developer_guide/Virtual_ARM_Linux_environment
original_slug: Developer_Guide/Virtual_ARM_di_Lingkungan_Linux
---
<h1 id="Pengujian_dengan_Linux_di_arsitektur_ARM_menggunakan_QEMU">Pengujian dengan Linux di arsitektur ARM menggunakan QEMU</h1>
<p>Halaman ini menejelaskan bagaimana cara untuk mendapatkan lingkungan <em>virtual</em> ARM dengan QEMU yang berjalan di (Ubuntu) Linux. Ini berguna untuk siapapun yang ingin mencoba kode ARM-specific dan tidak memiliki (atau membutuhkan) perangkat keras ARM untuk pengujian.</p>
<h2 id="Prasyarat">Prasyarat</h2>
<p>Petunjuk ini mengasumsikan sistem host yang Anda gunakan adalah Ubuntu Linux juga karena memudahkan kita untuk memasang perangkat lunak yang diperlukan dari repositori luar.</p>
<h2 id="Target_boardCPU">Target board/CPU</h2>
<p>QEMU mendukung beberapa board dan CPU. Dari semua yang Saya uji, saya hanya bisa mendapatkan <em>Versatile Express</em> board untuk bekerja dengan lebih dari 256 MB RAM, itulah kenapa kita akan menggunakan board ini. Untuk target CPU, Saya menguji dengan Cortex A9 saja (ARMv7).</p>
<h2 id="Instalasai_perangkat_lunak_yang_dibutuhkan">Instalasai perangkat lunak yang dibutuhkan</h2>
<pre># Tambahkan repositori Linaro, termasuk peralatan mereka dan yang lebih baru
# versi dari qemu (Anda memerlukan setidaknya qemu 0.15*).
sudo add-apt-repository ppa:linaro-maintainers/tools
# Memasang peralatan linaro dan qemu
sudo apt-get install linaro-image-tools qemu-user-static qemu-system
# Jika Anda ingin mendapatkan cross-compile pada host, pasang juga perangkat ini
sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueab</pre>
<h3 id="Mengunduh_rilis_Linaro_dan_paket_perangkat_keras">Mengunduh rilis Linaro dan paket perangkat keras</h3>
<p>Anda dapat menemukan rilis yang cocok dan paket perangkat lunak tarball pada halaman rilis linaro. Beberapa dari itu mungkin bekerja, atau mungkin tidak. Saya menggunakan dua link dibawah ini yang bekerja dengan baik untuk Saua I used the two links below that worked fine for me.</p>
<pre>wget http://releases.linaro.org/platform/linaro-n/nano/alpha-3/linaro-natty-nano-tar-20110302-0.tar.gz
wget http://releases.linaro.org/platform/linaro-n/hwpacks/alpha-3/hwpack_linaro-vexpress_20110302-0_armel_supported.tar.gz
</pre>
<h3 id="Membuat_image">Membuat image</h3>
<p>''(Langkah-langkah berikut kita pinjam dari <a class="link-https" href="https://wiki.linaro.org/PeterMaydell/QemuVersatileExpress" rel="freelink">https://wiki.linaro.org/PeterMaydell...rsatileExpress</a> dan sedikit dimodifikasi).'' Menggunakan peralatan linaro, Anda dapat dengan mudah membuat SD card image dari paket unduhan (ini akan memakan waktu cukup lama):</p>
<pre>linaro-media-create --image_file vexpress.img --dev vexpress \
--binary linaro-natty-nano-tar-20110302-0.tar.gz \
--hwpack hwpack_linaro-vexpress_20110302-0_armel_supported.tar.gz
</pre>
<h3 id="Mengekstart_kernel_dan_initrd">Mengekstart kernel dan initrd</h3>
<p>Image yang dubuat juga berisi kernel dan initrd dari mesin kita. Kita memerlukan kedua file meskipun itu diluar image. Perintah berikut untuk mount image ke "/mnt/tmp":</p>
<pre>sudo mount -o loop,offset="$(file vexpress.img | awk 'BEGIN { RS=";"; } /partition 2/ { print $7*512; }')" \
-t auto vexpress.img /mnt/tmp
</pre>
<p>Sekarang salin kernel dan initrd file ke direktori saat ini (CATATAN: Nama file dapat berbeda disetiap pembuatan!):</p>
<pre>cp /mnt/tmp/vmlinuz-2.6.38-1000-linaro-vexpress .
cp /mnt/tmp/initrd.img-2.6.38-1000-linaro-vexpress .
# Buat beberapa symlink untuk memudahkan
ln -s vmlinuz-2.6.38-1000-linaro-vexpress vmlinuz
ln -s initrd.img-2.6.38-1000-linaro-vexpress initrd.img
</pre>
<h2 id="Memulai_QEMU">Memulai QEMU</h2>
<p>Anda dapat memulai QEMU sekarang dengan perintah berikut:</p>
<pre>qemu-system-arm -M vexpress-a9 -cpu cortex-a9 -kernel ./vmlinuz \
-initrd ./initrd.img -redir tcp:2200::22 -m 512 \
-append "root=/dev/mmcblk0p2 vga=normal mem=512M devtmpfs.mount=0 rw" \
-drive file=vexpress.img,if=sd,cache=writeback
</pre>
<p>Bebrapa penjelasan dari opsi yang tidak jelas pada perintah diatas:</p>
<ul>
<li>''-redir tcp:2200::22'' pengalihan lalu lintas TCP pada port host 2200 ke mesin tamu (QEMU) port 22. Ini akan memungkinkan kita untuk SSH ke mesin dilain waktu dengan menghubungkan ke localhost port 2200.</li>
<li>''-m 512'' menetapkan kita ingin menggunakan 512 MB RAM. Anda dapat menyesuaikan ini, tapi pastikan Anda juga mengubahnya di ''-append'' string.</li>
<li>''-drive file=vexpress.img,if=sd,cache=writeback'' Menempelkan image kita sebagai SD card. Saya diberitahu oleh orang-orang Linaro bahwa cara ini lebih cepat I/Onya dbiandungkan opsi tardisional ''-sd''.</li>
</ul>
<p>Setelah memulai mesin, Anda akan bertemu dengan Linux shell dalam layar QEMU setelah beberapa waktu startup</p>
<h3 id="Menggunakan_SSH">Menggunakan SSH</h3>
<p>Untuk menggunakan SSH, Anda harus terlebih dahulu mengaktifkan jaringan dan memasang paket SSH servere. Mengaktifkan jaringan untuk sementara menggunakan perintah berikut:</p>
<pre>ifconfig eth0 up
dhclient eth0
</pre>
<p>Sekarang coba pasang SSH:</p>
<pre>apt-get install openssh-server
</pre>
<p>Untuk membuat jaringan berubah menjadi permanen, edit file ''/etc/network/interfaces'' (e.g. dengan ''vi'') dan tambahkan baris berikut:</p>
<pre>auto eth0
iface eth0 inet dhcp
</pre>
<p>Terakhir, tentukan password untuk root menggunakan perintah ''passwd''. Sekarang jalankan ulang mesin dan lihat apakah Anda bisa melakukan SSH menggunakan ''ssh -p2200 root@localhost'' pada mesin host.</p>
|