Pendahuluan¶
Halaman Wiki ini menjelaskan langkah-langkah modifikasi BeagleBoard, mulai dari mengkompilasi sistem operasi sampai membootnya. Kebanyakan langkah di bawah bisa diterapkan pada BeagleBoard seri xM, dan bisa diterapkan pada seri C. Semua pranala (link) sukses diakses pada tanggal 3 Januari 2010, di masa mendatang mungkin saja diperlukan update untuk menghindari broken link.
Kompilasi Kernel Linux¶
Toolchain¶
BeagleBoard menggunakan prosesor ARM, jadi kita tidak bisa langsung memasukkan kernel linux yang kita kompil seperti pada perkuliahan SysProg. Source Code Kernel linux harus dikompil khusus untuk prosesor ARM menggunakan toolchain. Salah satu toolchain yang biasa dipakai mengkompil Linux untuk BeagleBoard adalah Sourcery G++. Anda dapat mengunduh Sourcery G++ yang gratisan (versi Lite) di sini (untuk Linux, 128MB).
Kernel¶
Pada dasarnya anda dapat menginstall distro Linux apapun pada BeagleBoard. Vendor BeagleBoard sudah menyatakan semuanya akan berjalan dengan kecepatan yang wajar. Namun, para praktisi menyarankan anda menginstall Linux Angstrom. Image Linux Angstrom untuk BeagleBoard pun sudah banyak tersedia. Terlepas dari itu, kita akan menginstall kernel Linux sendiri. Source code Linux yang sudah sedikit dimodifikasi khusus untuk BeagleBoard dapat diunduh di sini (untuk BeagleBoard versi B ke atas, 56MB).
Nantinya, kita juga akan membutuhkan u-boot. u-boot bisa diunduh di sini.
Mengkompil X-Loader¶
Tutorial ini nantinya akan memakai cara boot menggunakan SD Card, sehingga cara mengkompil X-Loader di bagian ini khusus untuk booting melalui SD Card. Jika anda ingin memboot menggunakan media lain, cara mengkompil X-Loader akan berbeda.
1. Buka berkas "include/configs/omap3530beagle.h".
2. Enable macro "CFG_CMD_MMC" sebagai berikut:
/* For X-loader to be flashed on to NAND disable the below macro */ #define CFG_CMD_MMC 1
3. Kompil x-loader dengan perintah sebagai berikut:
make CROSS_COMPILE=arm-none-linux-gnueabi- distclean make CROSS_COMPILE=arm-none-linux-gnueabi- omap3530beagle_config make CROSS_COMPILE=arm-none-linux-gnueabi-
maka berkas "x-load.bin" akan tercipta.
4. Ubah "x-load.bin" menjadi MLO. Ini dibutuhkan ketika booting dari MMC nanti. Ikuti langkah berikut:
- Gunakan tool "SignGP" untuk men-sign image x-loader.
./signGP x-load.bin
- Rename "x-load.bin.ift" jadi MLO
- Copy MLO ke MMC/SD card.
Mengkompil u-boot¶
Langkah-langkah mengkompil u-boot di bawah ini adalah untuk booting kernel biasa. Jika anda ingin mem-flashing NAND automatis, langkahnya akan berbeda dan diluar cakupan tutorial ini.
1. Buka berkas "include/configs/omap3530beagle.h".
2. Enable macro "CONFIG_BOOTCOMMAND" sebagai berikut:
/* buat comment pada CONFIG_BOOTCMD di bawah */ /* #define CONFIG_BOOTCOMMAND \ "mmcinit;fatload mmc 0 0x80200000 x-load.bin.ift;\ nand unlock;nand ecc hw;nand erase 0 80000;nand write.i 0x80200000 0 80000;\ fatload mmc 0 0x80200000 flash-uboot.bin; nand unlock;\ nand ecc sw;nand erase 80000 160000; nand write.i 0x80200000 80000 160000;\0" */ /* hilangkan comment pada CONFIG_BOOTCOMMAND seperti di bawah */ #define CONFIG_BOOTCOMMAND "\0"
3. Kompil u-boot dengan perintah berikut:
make CROSS_COMPILE=arm-none-linux-gnueabi- distclean make CROSS_COMPILE=arm-none-linux-gnueabi- omap3530beagle_config make CROSS_COMPILE=arm-none-linux-gnueabi-
Jika benar, maka berkas "u-boot.bin" akan tercipta.
Mengkompil Kernel¶
Kompil kernel dengan perintah berikut:
make CROSS_COMPILE=arm-none-linux-gnueabi- distclean make CROSS_COMPILE=arm-none-linux-gnueabi- omap3_beagle_defconfig make CROSS_COMPILE=arm-none-linux-gnueabi- uImage
Jika benar, maka berkas "ulmage" akan tercipta di direktori arch/arm/boot directory
Memboot Linux Pada BeagleBoard¶
Bagian ini menjelaskan langkah-langkah memboot BeagleBoard dengan SD Card. Cara ini adalah cara yang paling umum dan direkomendasikan. Dua cara lain adalah dengan USB Boot dan NAND Boot. Namun tools untuk cara USB Boot masih experimental dan cara NAND Boot lebih rumit.
Alat-Alat yang Dibutuhkan¶
Pada paket BeagleBoard yang dibeli tidak disertakan kabel maupun konektor untuk membootnya sehingga kita harus membeli sendiri sebagian besar alat-alat yang disebutkan di bawah. Alat-alat tersebut dapat dibeli satu per satu dan kalau beruntung anda mendapatkannya dalam satu paket. Berikut adalah peralatan yang dibutuhkan:
Untuk Booting¶
- komputer yang ada port serialnya
- SD Card
Untuk I/O¶
- kabel HDMI male-to-DVI-D male
- monitor
- keyboard USB
- mouse USB
Untuk Sambungan I/O¶
- hub USB 3 port dengan Ethernet
- adapter 5mm barrel power plug-to-USB A male
- kabel On-The-Go (OTG) USB mini-A-to-USB-A female (boleh tidak ada)
Untuk Koneksi Serial¶
- kabel serial IDC10-to-DB9M
- kabel DB9M-to-USB
- kabel USB mini-B male-to-USB-A male
- kabel modem null DB9F-to-DB9F
Menyambungkan Alat-Alat¶
Membuat Koneksi Port Serial¶
(1) Kabel IDC10 ke BeagleBoard
(2) DB9M ke kabel DB9F modem
(3) Kabel DB9F ke kabel DB9M/USB
(4) Kabel DB9M/USB ke komputer
Membuat Koneksi USB dan Power¶
(5) USB mini-A ke BeagleBoard
(6) Hub USB (power) ke USB mini-A tadi
(7) Kabel USB/5mm barrel ke Hub
(8) 5mm barrel ke BeagleBoard
PERHATIAN: Jangan menyambungkan power listrik ke hub dulu!
Membuat Koneksi I/O¶
(9) Kabel video HDMI ke BeagleBoard
(10) DVI-D ke monitor
(11) Keyboard ke hub
(12) Mouse ke hub
Jika anda menyambungkannya dengan benar, akan terlihat kurang lebih seperti gambar di bawah
Menyiapkan Console¶
Setelah semua perangkat terpasang, tentu kita ingin mengetahui apakah berhasil atau tidak. Untuk itu satu-satunya cara adalah berinteraksi dengan output serialnya melalui console, yaitu dengan program emulator terminal. Dengan demikian, aktivitas apapun pada BeagleBoard dapat kita lihat di console. Untuk itu, kita memerlukan program emulator terminal seperti minicom (bisa diunduh di sini). Kemudian, ikuti langkah-langkah berikut:
- Install minicom pada komputer
- Jalankan setup sebagai root dengan perintah
sudo minicom -s
- Pilih "Serial Port Setup", kemudian pilih "Return"
- Ketik A untuk memilih port Serial Device, ubah ke direktori "/dev/ttySO", kemudian pilih "Return"
- Pastikan setting komunikasi (E) 115200 8N1.
- Matikan "Hardware Flow Control" dengan mengetik "F".
- Pasikan "Software Flow Control" juga mati.
- Pilih "Return" untuk kembali ke menu utama.
- Pilih "dfl" pada "Save Setup" agar setting ini menjadi default.
- Pilih "Exit" untuk keluar dan jalankan minicom dengan setting ini.
Menyalakan BeagleBoard¶
Untuk mengecek apakah sejauh ini sudah benar, kita nyalakan BeagleBoard dengan menyambungkan kabel USB ke BeagleBoard. Jika sudah benar maka akan muncul kurang lebih seperti di bawah
Texas Instruments X-Loader 1.41 Starting OS Bootloader... U-Boot 1.3.3 (Jul 10 2008 - 16:33:09) OMAP3530-GP rev 2, CPU-OPP2 L3-165MHz OMAP3 Beagle Board + LPDDR/NAND DRAM: 128 MB NAND: 256 MiB In: serial Out: serial Err: serial Audio Tone on Speakers ... complete Hit any key to stop autoboot: 0 OMAP3 beagleboard.org #
Menyiapkan Linux¶
Berkas untuk boot terdiri dari 4 komponen, harus dicopy ke SD Card berdasarkan urutan berikut:- 1st stage bootloader
- 2nd stage bootloader
- Ulmage (image boot linux)
- berkas sistem Linux
Pada firmware BeagleBoard terdapat pula bootloader:
1. 1st stage: X-loader
– Hanya cukup utk memboot 2nd stage bootloader.
– Dapat diload dari SD Card dlm bentuk MLO
2. 2nd stage: U-boot.
– Pada flash memory dlm file u-boot.bin.
– Menginisialisasi sistem lalu memboot kernel linux.
– Dapat dijalankan dari console.
Menyiapkan SD Card¶
Buat 2 partisi pada SD Card:- FAT untuk menaruh bootloader & image kernel linux
- Ext3 untuk sistem berkas root linux
PERHATIAN: Wajib mengikuti urutannya!
- Copy MLO ke FAT
- Copy u-boot.bin ke FAT
- Copy ulmage ke FAT
- Extrak sistem berkas root ke ext3 dengan perintah:
cd ext3FileSystem; tar xvjf downloadLocation/Angst*.tar.bz2
- Unmount
cd ~; sync; sudo unmount <nama_partisi_FAT>; sudo unmount <nama_partisi_ext3>
- Cabut SD Card & masukkan ke BeagleBoard
Menghidupkan Linux¶
Nyalakan BeagleBoard, kemudian ketikkan perintah berikut:
setenv bootargs ‘console=ttyS0, 115200n8 root=/dev/mmcblk0p2 rw rootwait’ setenv bootcmd ‘mmcinit; fatload mmc 0 80300000 uImage.bin; bootm 80300000 saveenv boot
Jika benar, akan muncul seperti di bawah ini (jika anda menggunakna linux Angstrom)
Dengan demikian anda telah memiliki BeagleBoard yang telah ada linux di dalamnya. Selamat bermain-main BeagleBoard! :)