Pages

Monday, January 9, 2012

Instalasi Android pada BeagleBoard-xM

Mau sedikit share ilmu ngoprek yang pernah dikerjain nih. Udah lama sih, sekitar setahun yang lalu, tapi lumayan juga buat arsip pribadi. Enjoy!



-- Tutorial starts here --

I. Pendahuluan


Android adalah sebuah sistem operasi yang dikembangkan oleh Google Inc. dan ditujukan untuk menjadi sistem operasi perangkat mobile yang kecil dan hemat daya. Beagleboard-xM yang dikembangkan berbasis arsitektur ARM sangat mungkin untuk dijalankan menggunakan sistem operasi Android. Texas Instrument (http://processors.wiki.ti.com/index.php/Main_Page) yang bergerak dalam bidang pengembangan embedded system berbagai arsitektur telah berhasil mengembangkan agar Android dapat berjalan di Beagleboard, termasuk Beagleboard-xM. Perbedaannya dengan sistem operasi sistem embedded yang lain seperti Linux Angstrom dan Linux Ubuntu adalah Beagleboard-xM yang berjalan menggunakan sistem operasi harus terhubung dengan monitor sebagai output untuk menampilkan user interface dan keyboard serta mouse sebagai input untuk berinteraksi dengan sistem operasi Android yang sedang berjalan. Hal ini berbeda dengan Linux Angstrom dan Linux Ubuntu yang dapat berjalan tanpa output dan input langsung seperti monitor dan keyboard.


Saat ini versi sistem operasi Android yang dapat berjalan pada Beagleboard-xM adalah 2.1 (Eclair), 2.2 (FroYo), dan 2.3 (Gingerbread). Kita bisa memilih versi sistem operasi yang cocok untuk pengembangan perangkan system embedded menggunakan Beagleboard-xM, akan tetapi disarankan menggunakan versi terbaru yaitu Gingerbread karena memilik SDK yang lebih lengkap. Untuk memudahkan proses instalasi, disarankan sudah memiliki pengalaman dalam menjalankan sistem operasi berbasis Linux. Selain itu, disarankan dalam proses instalasi di bawah menggunakan Linux Ubuntu 8.04 atau yang lebih baru sebagai host.

II. Persiapan Instalasi
Berikut ini adalah hal-hal yang perlu dipersiapkan untuk melakukan proses instalasi Android pada Beagleboard-xM.
  1.  Download pre-built image Android 2.3 untuk Beagleboard-xM di http://software-dl.ti.com/dsps/dsps_public_sw/sdo_tii/TI_Android_DevKit/TI_Android_GingerBread_2_3_DevKit_1_0/exports/beagleboard-xm.tar.gz.
  2. MicroSD kosong dengan kapasitas minimum 2GB (minimum Class4 microSD Card). MicroSD yang banyak tersedia di pasaran adalah Class2 microSD Card. Untuk mengetahui class sebuah microSD dengan mudah, Anda dapat melihat ke label yang terdapat di badan microSD.
  3. USB Card reader. 
  4. DVI monitor dengan port input DVI atau HDMI sebagai output Beagleboard. Perhatikan bahwa monitor dengan port input D-Sub tidak dapat disambungkan dengan Beagleboard walaupun telah menggunakan kabel konverter HDMI to D-Sub. 
  5.  Keyboard dan mouse sebagai input Beagleboard. 
  6.  Kabel konverter USB to Serial RS232.
Label penunjuk class suatu microSD

 III. Mempersiapkan Beagleboard-xM

Perhatikan bahwa Beagleboard-xM tidak mendukung sistem plug and play, jadi hubungkan semua perangkat tambahan ke Beagleboard-xM (kecuali port serial boleh terakhir) sebelum menghidupkan Beagleboard-xM.

Linux Angstrom pada BeagleBoard-xM dapat dijalankan sebagai client dan PC/Laptop sebagai host. Keduanya dijalankan sebagai client dan host menggunakan port Serial yang terdapat pada BeagleBoard-xM dan port USB pada host. Untuk itu diperlukan sebuah kabel penghubung dari port USB ke port Serial.

Untuk host, diperlukan sebuah software agar dapat membaca perangkat yang terhubung dengan port USB-Serial, dan semua aktivitas perangkat tersebut (dalam hal ini BeagleBoard-xM) akan ditampilkan dan dikendalikan melalui terminal atau konsol. Untuk sistem operasi Microsoft® Windows®, dapat menggunakan Hyperterminal atau PuTTy. Untuk pengguna Linux dapat menggunakan minicom, seperti yang akan ditampilkan pada contoh dibawah. Sedangkan untuk pengguna Mac dapat menggunakan screen, ZTerm, atau MacWise.
 
Bagi pengguna Linux yang belum memiliki minicom, jalankan perintah dibawah ini dan masukkan password jika diminta. Pastikan PC/Laptop telah tersambung dengan network/internet.

sudo apt-get install minicom


Setelah minicom terinstal, hubungkan kabel penghubung USB-Serial ke host melalui port USB pada host dan ke BeagleBoard-xM melalui port Serial. Setelah itu jalankan perintah ls /dev/ untuk mengetahui nama perangkat yang akan dihubungkan melalui port Serial. Catat nomor ttyUSBn yang ditampilkan pada konsol.

febrian@ubuntu:~$ ls /dev/
agpgart          fuse     mem                 ram13   sda1      tty12  tty28  tty43  tty59    usbmon0  vcsa2
autofs           hidraw0  net                 ram14   sda2      tty13  tty29  tty44  tty6     usbmon1  vcsa3
block            hidraw1  network_latency     ram15   sda3      tty14  tty3   tty45  tty60    usbmon2  vcsa4
bsg              hpet     network_throughput  ram2    sda4      tty15  tty30  tty46  tty61    usbmon3  vcsa5
btrfs-control    input    null                ram3    serial    tty16  tty31  tty47  tty62    usbmon4  vcsa6
bus              kmsg     oldmem              ram4    sg0       tty17  tty32  tty48  tty63    usbmon5  vcsa7
char             log      pktcdvd             ram5    shm       tty18  tty33  tty49  tty7     v4l      vga_arbiter
console          loop0    port                ram6    snapshot  tty19  tty34  tty5   tty8     vcs      video0
core             loop1    ppp                 ram7    snd       tty2   tty35  tty50  tty9     vcs1     zero
cpu              loop2    psaux               ram8    stderr    tty20  tty36  tty51  ttyS0    vcs2
cpu_dma_latency  loop3    ptmx                ram9    stdin     tty21  tty37  tty52  ttyS1    vcs3
disk             loop4    pts                 random  stdout    tty22  tty38  tty53  ttyS2    vcs4
dri              loop5    ram0                rfkill  tty       tty23  tty39  tty54  ttyS3    vcs5
ecryptfs         loop6    ram1                root    tty0      tty24  tty4   tty55  ttyUSB0  vcs6
fb0              loop7    ram10               rtc     tty1      tty25  tty40  tty56  uinput   vcs7
fd               mapper   ram11               rtc0    tty10     tty26  tty41  tty57  urandom  vcsa
full             mcelog   ram12               sda     tty11     tty27  tty42  tty58  usb      vcsa1

Setelah mengetahui alamat ttyUSBn, jalankan minicom menggunakan perintah di bawah ini.

minicom -s

List di bawah menampilkan contoh tampilan konfigurasi minicom.

            +-----[configuration]------+
            | Filenames and paths      |
            | File transfer protocols  |
            | Serial port setup        |
            | Modem and dialing        |
            | Screen and keyboard      |
            | Save setup as dfl        |
            | Save setup as..          |
            | Exit                     |
            | Exit from Minicom        |
            +--------------------------+
 
Pilih Serial port setup yang akan menampilkan sub-menu seperti di bawah ini (setiap konfigurasi sub-menu dapat berbeda-beda).

    +-----------------------------------------------------------------------+
    | A -    Serial Device      : /dev/ttyS0                                |
    | B - Lockfile Location     : /var/lock                                 |
    | C -   Callin Program      :                                           |
    | D -  Callout Program      :                                           |
    | E -    Bps/Par/Bits       : 115200 8N1                                |
    | F - Hardware Flow Control : Yes                                       |
    | G - Software Flow Control : No                                        |
    |                                                                       |
    |    Change which setting?                                              |
    +-----------------------------------------------------------------------+
            | Screen and keyboard      |
            | Save setup as dfl        |
            | Save setup as..          |
            | Exit                     |
            | Exit from Minicom        |
            +--------------------------+

Buatlah agar sub-menu tersebut memiliki konfigurasi seperti di bawah ini. Perhatikan bahwa nomor ttyUSB tergantung pada nomor yang didapat dari tahap sebelumnya!

    +-----------------------------------------------------------------------+
    | A -    Serial Device      : /dev/ttyUSB0                              |
    | B - Lockfile Location     : /var/lock                                 |
    | C -   Callin Program      :                                           |
    | D -  Callout Program      :                                           |
    | E -    Bps/Par/Bits       : 115200 8N1                                |
    | F - Hardware Flow Control : No                                        |
    | G - Software Flow Control : No                                        |
    |                                                                       |
    |    Change which setting?                                              |
    +-----------------------------------------------------------------------+
            | Screen and keyboard      |
            | Save setup as dfl        |
            | Save setup as..          |
            | Exit                     |
            | Exit from Minicom        |
            +--------------------------+

Setelah yakin semua konfigurasi telah benar, maka simpan konfigurasi ini sebagai default dengan cara memilih pilhan Save setup as dfl lalu keluar dengan memilih Exit. Maka pada konsol akan muncul tampilan minicom seperti di bawah ini.

Welcome to minicom 2.4

OPTIONS: I18n                                                               
Compiled on Jun  3 2010, 13:46:31.                                           
Port /dev/ttyUSB0                                                           
                                                                            
Press CTRL-A Z for help on special keys

Untuk memastikan, nyalakan BeagleBoard-xM (kabel yang terhubung dengan BeagleBoard-xM hanya kabel power dan kabel Serial, jangan ada yang lain) dan tekan sembarang tombol pada keyboard untuk menghentikan hitungan mundur autoboot. Pesan boot-loader akan menampilkan versi X-Loader dan U-boot, tanggal pembuatan, dan lain-lain. Tampilan pada konsol minicom akan seperti di bawah ini.

Texas Instruments X-Loader 1.4.4ss (Jan  4 2011 - 12:38:07)
Beagle xM Rev A
Reading boot sector
Loading u-boot.bin from mmc


U-Boot 2010.03 (Jan 04 2011 - 12:38:02)

OMAP3630/3730-GP ES2.0, CPU-OPP2, L3-165MHz,
OMAP3 Beagle board + LPDDR/NAND
I2C:   ready
DRAM:  512 MB
NAND:  0 MiB
*** Warning - bad CRC or NAND, using default environment

In:    serial
Out:   serial
Err:   serial

Probing for expansion boards, if none are connected you'll see a harmless I2C error.

No EEPROM on expansion board
Beagle xM Rev A
Die ID #45e600011ff00000015739eb0801f02b
Hit any key to stop autoboot:  0
OMAP3 beagleboard.org #

Apabila tampilan sudah seperti di atas, maka host dan BeagleBoard siap digunakan.

IV. Tahapan-tahapan Instalasi Android pada Beagleboard-xM
  •  Sambungkan microSD dengan host PC menggunakan USB Card reader.
  • Instal image Android yang telah dipersiapkan menggunakan perintah-perintah di bawah ini.


tar –xzvf <nama_image>.tzr.gz
cd <nama_image>
sudo ./mkmmc-android /dev/sd<device>

  • Masukkan microSD yang baru diinstal ke dalam Beagleboard-xM. 
  • Sambungkan DVI monitor, keyboard, dan mouse dengan Beagleboard-xM. 
  • Sambungkan kabel Ethernet dengan Beagleboard-xM agar dapat mengakses inetrnet secara langsung (opsional). 
  • Sambungkan PC host dengan Beagleboard-xM menggunakan kabel USB to Serial dan jalankan aplikasi konsol serial (contoh: minicom). 
  • Nyalakan Beagleboard-xM. Perhatikan bahwa Beagleboard membutuhkan waktu yang lebih lama pada saat melakukan booting pertama kali. 
  •  Selama proses booting, logo Android akan muncul pada DVI monitor.


V. Referensi
BeagleBoard-xM System Reference Manual Revision A2. http://beagle.s3.amazonaws.com/design/xM-A/BB_xM_SRM_A2_01.pdf
BeagleBoard-xM System Reference Manual Revision A3. http://beagle.s3.amazonaws.com/design/xM-A3/Beagle_SRM_xM_A3_0.pdf

-- Tutorial ends here --


Oke deh, semoga bermanfaat ya. Maaf kalau berantakan, pertama kali bikin tutorial di blog soalnya. :D

No comments:

Post a Comment