• Tidak ada hasil yang ditemukan

nn

N/A
N/A
Protected

Academic year: 2017

Membagikan "nn"

Copied!
84
0
0

Teks penuh

(1)

I. PENDAHULUAN

A. Latar Belakang

Perkembangan embedded system di masa sekarang ini terus mengalami kemajuan yang sangat pesat baik secara fisik (perangkat/hardware) maupun non fisik (program/software) seiring dengan berkembangnya kemampuan berfikir manusia serta kebutuhan akan hadirnya teknologi baru yang mampu memberikan kemudahan dan kenyamanan dalam melakukan aktivitas.

Embedded system merupakan salah satu teknologi yang saat ini banyak dikembangkan oleh para engineer dalam menciptakan peralatan dengan fungsi khusus untuk aplikasi tertentu akan tetapi dengan sumber daya yang minimal. Sehingga dapat mereduksi dimensi peralatan yang dibuat serta biaya produksi dalam proses pengembangannya.

(2)

Penggunaan sistem operasi linux dalam pengembangan embedded system memiliki keunggulan-keunggulan jika dibandingkan dengan sistem operasi yang lain, diantaranya sistem kernel yang bersifat relatif stabil, tidak adanya biaya lisensi penggunaan program tersebut serta kode-kode program (source code) yang mudah untuk dimodifikasi dan di didistribusi ulang.

B. Tujuan Penelitian

Tujuan dari penelitian dalam tugas akhir ini adalah sebagai berikut :

1. Melakukan pengujian terhadap kemampuan sistem operasi GX-Linux yang ada pada modul CSB625,

2. Mencoba untuk membangun dan mengimplementasikan sistem operasi baru berbasis open source linux beserta dengan aplikasi-aplikasi pendukung pada modul CSB625.

C. Manfaat Penelitian

Manfaat-manfaat yang bisa diperoleh dari penelitian ini adalah sebagai berikut : 1. Dapat mengetahui kemampuan sistem operasi GX-Linux yang ada pada

modul CSB625,

(3)

D. Batasan Masalah

Beberapa hal yang membatasi dalam pembahasan tugas akhir ini adalah :

1. Modul embedded pc yang digunakan adalah CSB 625 dengan prosesor Intel PXA 255 berarsitektur ARMv5TE dan CSB 925 sebagai development board, 2. Menggunakan komunikasi serial sebagai penghubung antara modul CSB625

dengan PC host dalam proses pengujian,

3. Open source yang digunakan dalam pengembangan sistem operasi embedded baru adalah Linux Ubuntu 9.04 (Jaunty Jackalope).

E. Perumusan Masalah

Beberapa hal yang menjadi permasalahan dalam penelitian ini adalah sebagai berikut :

1. Bagaimana melakukan pengujian sistem operasi GX-Linux yang ada pada modul CSB625 melalui komunikasi serial secara emulasi,

2. Bagaimana membangun dan mengimplementasikan sebuah sistem operasi baru berbasis open source linux beserta dengan paket-paket aplikasi pengguna pada modul CSB625.

F. Hipotesis

(4)

linux dengan fitur-fitur aplikasi yang lebih lengkap dan variatif sebagai pengganti sistem operasi yang sudah tertanam.

G. Sistematika Penulisan

Dalam tulisan tugas akhir ini, sistematika penulisan yang dibuat adalah sebagai berikut.

I. PENDAHULUAN

Menjelaskan tugas akhir secara umum, berisi latar belakang, tujuan, manfaat penelitian, batasan masalah, perumusan masalah, hipotesis, dan sistematika penulisan.

II. TINJAUAN PUSTAKA

Pada bab ini dijelaskan secara garis besar tentang teori dasar yang digunakan dan yang berhubungan dengan sistem operasi embedded yang akan diuji serta sistem baru yang akan dibuat.

III. METODE PENELITIAN

Bagian ini akan menjelaskan metodologi yang digunakan dalam proses pengujian sistem operasi embedded yang ada serta metode pengembangan dan pengimplementasian sistem operasi embedded baru.

IV. HASIL DAN PEMBAHASAN

(5)

V. SIMPULAN DAN SARAN

Bab ini akan menyimpulkan semua kegiatan dan hasil-hasil yang diperoleh selama proses pengujian sistem yang sudah ada serta pengembangan sistem baru.

(6)

II. TINJAUAN PUSTAKA

A. Embedded System

Embedded system merupakan komputer yang didesain untuk melakukan satu atau beberapa fungsi tertentu. Embedded system biasanya dibenamkan sebagai bagian dalam perangkat lengkap disamping perangkat keras dan bagian mekanik. Embedded system umumnya digunakan untuk mengontrol berbagai perangkat umum yang banyak digunakan sekarang ini [4].

Gambar 1. Blok Diagram Embedded PC

(7)

meningkatkan kemampuan dan performa. Beberapa embedded system diproduksi secara masa karena dinilai lebih menguntungkan dari pertimbangan ekonomi [4].

1. Karakteristik

Embedded system memiliki beberapa karakteristik, antara lain :

a. Embedded system didesain untuk melakukan beberapa fungsi khusus berbeda dengan komputer pada umumnya yang digunakan untuk multifungsi. Beberapa juga memiliki kemampuan real-time bahkan yang lain hanya membutuhkan peralatan dengan performa rendah, untuk mereduksi biaya produksi,

b. Embedded system tidak selalu merupakan perangkat yang berdiri sendiri. Banyak embedded system yang terdisi dari bagian komputer yang berukuran kecil di dalam perangkat lebih besar yang melakukan tujuan umum,

c. Instruksi program yang ditulis untuk embedded system disebut sebagai firmware dan disimpan di dalam ROM atau memori flash [4].

2. User Interface

(8)

3. Kompleksitas

Perangkat embedded system yang sederhana menggunakan tombol, led dan karakter atau digit kecil sebagai penampil, bahkan ada yang menggunakan sistem menu yang sederhana. Perangkat embedded system yang kompleks dilengkapi layar grafis dengan sensor sentuh bahkan juga dilengkapi dengan antar muka world wide web [4].

4. CPU Platforms

Prosesor yang digunakan dalam embedded system dibedakan menjadi dua kategori yaitu mikroprosesor dan mikrokontroler dengan dilengkapi berbagai periferal pada chip-nya sehingga dapat mereduksi biaya dan dimensi. Berbeda halnya dengan personal computer maupun server, yang secara umum menggunakan standar arsitektur CPU, diantaranya baik Von Neumann maupun Havard architectures, baik RISC maupun non-RISC [4].

5. Periferal

Embedded system berkomunikasi dengan dunia luar melalui perangkat-perangkat periferal, antara lain :

a. Antar muka komunikasi serial (RS-232, RS-422, RS-485), b. Antar muka komunikasi serial sinkron (I2C, SPI, ESSI), c. Universal Serial Bus (USB),

d. Kartu multimedia (SD cards, Compact flash), e. Jaringan (Ethernet, Controller area network),

(9)

6. Tools

Umumnya embedded system didesain dengan menggunakan compilers, assemblers dan debugger untuk mengembangkan software embedded system tersebut. Meskipun terkadang juga menggunakan beberapa tools yang lebih spesifik untuk tujuan khusus [4].

Seiring dengan perkembangan teknologi yang semakin maju, embedded system pun mengalami perkembangan yang signifikan dari segi hardware maupun software. Dari sisi hardware, perkembangan yang paling menonjol adalah pada board embedded yang semakin beragam dengan didukung oleh berbagai variasi artistektur prosesor yang digunakan. Tabel 1 berikut ini merepresentasikan perkembangan board embedded hingga menjadi mainstream untuk 10 tahun terakhir [13].

Tabel 1. Mainstream board embedded 10 tahun terakhir

Tahun Jenis Board Prosesor yang digunakan

2000 Aplio/TRIO ARM7TDMI ASIC

2001 Altera Excaliber ARM922T

2002 Freescale DragonBall MX1 ARM 9/11

2003 Atmel AT75Cxxx ARM 70

2004 Atmel AT91RM9200 ARM 920T

2005 Alchemy Au1200 MIPS

2006 IEI WAFER LX 800 3.5" AMD Geode GX3

2007 Atmel AT91SAM7S-EK ARM7TDMI

2008 TS-7800 SBC ARM 9

2009 Beagle Board OMAP3530 ARM 926

(10)

B. Embedded PC Cogent CSB625

Embedded PC CSB625 didesain untuk daya rendah, bersifat portable, serta menggambarkan sebuah terobosan secara fungsional dalam ukuran dan daya. Embedded PC CSB625 diimplementasikan dengan menggunakan perangkat yang merupakan komponen penyusun dari sebuah sistem komputer. Komponen penyusun beserta fitur CSB625 antara lain :

1. Prosesor Intel PXA255 400MHz 32-bit, 2. Memori SDRAM 64MB 32-bit,

3. Memori Flash 8MB 16-bit,

4. Ethernet Controller CS8900a 10MBit, 5. Port Serial RS-232,

6. USB 2.0 Controller Philips ISI1161A 12MBit, 7. Konektor Internal SD/MMC,

8. Antarmuka PCMCIA/Compact Flash, 9. Konektor Antarmuka JTAG,

10.Regulator 3,3V on board dengan range input 9-20V,

11.Berdaya rendah, secara umum <1W dan maksimum 5W [2].

(11)

Gambar 2. Blok Diagram Cogent CSB625

1. Prosesor Intel PXA255

CSB625 menggunakan mikroprosesor Intel PXA255 berbasis Intel® XScaleTM Microarchitecture, prosesor ini mengkombinasikan konsumsi daya yang rendah dengan performa yang tinggi. Kemampuan dari prosesor jenis ini dikombinasi dengan adanya chip LCD, kartu memori SD, audio AC’97, SSP dan antarmuka Compact Flash yang memberikan PXA255 kemampuan power low-cost, produk dengan performa tinggi untuk telematika, industri otomasi, aplikasi medis dan sebagainya [2].

(12)

Gambar 3. Prosesor Intel PXA255

2. CSB925 Development Board

(13)

Gambar 4. Blok Diagram Cogent CSB925

3. Bootloader Micromonitor (uMon)

Micromonitor adalah aplikasi bootloader untuk sistem embedded yang bersifat open source. Micromonitor memiliki kemampuan yang bersifat fleksibel dalam proses pengembangan sistem embedded maupun dalam pengembangan aplikasi di dalamnya. Bootloader ini digunakan untuk pengembangan sistem embedded dengan mekanisme penyimpanan data maupun program serta antar muka komunikasi yang sesuai dengan standar industri. Beberapa fitur dari bootloader ini antara lain :

a. Mendukung untuk file system JFFS2 dan FAT

(14)

d. Mendukung berbagai macam jenis arsitektur prosesor seperti PowerPC, MIPS, ARM/Xscale, 68K/ColdFire, Blackfin, SH2, MicroBlaze, Nios [12].

Gambar 5. Hubungan Umon dengan aplikasi dan hardware

C. Sistem Operasi Linux

Linux merupakan sebuah sistem operasi alternatif yang saat ini banyak digunakan selain sistem operasi Microsoft Windows. Linux saat ini sudah banyak digunakan pada komputer perumahan maupun komputer perkantoran. Linux dirancang dengan menggunakan bahasa pemrograman C yang juga digunakan untuk merancang sistem operasi lain seperti FreeBSD, NetBSD dan OpenBSD. Linux merupakan suatu aplikasi istimewa yang berfungsi sebagai penghubung antara perangkat keras yang ada pada sistem komputer dengan aplikasi yang berjalan pada komputer tersebut, yang disebut sebagai kernel [1].

1. Komposisi Sistem Operasi Linux

(15)

a. Aplikasi Pengguna

Aplikasi pengguna merupakan kumpulan dari berbagai aplikasi yang berjalan pada sistem operasi linux, misalnya Open Office yang merupakan aplikasi untuk membuat dokumen.

b. Layanan Sistem Operasi

Layanan sistem operasi merupakan bagian dari aplikasi yang tersedia pada sistem operasi, misalnya command shell, compiler.

c. Kernel Linux

Kernel linux merupakan mediator antara resource perangkat keras dengan aplikasi yang membutuhkan layanan perangkat keras tersebut.

d. Pengontrol Perangkat Keras (Driver)

Pengontrol perangkat keras merupakan sebuah subsistem yang merupakan bagian dari kernel linux. Bagian ini berfungsi untuk mengatur layanan yang diberikan oleh sistem operasi terhadap resource perangkat keras yang tersedia pada sistem computer [1].

Gambar 6. Bagian dari Sistem Operasi Linux

2. Struktur Kernel Linux

(16)

a. Process Scheduler (SCHED)

Process Scheduler bertanggung jawab untuk mengontrol proses yang mengakses CPU. Scheduler akan memberikan kesempatan yang sama untuk setiap proses dalam menggunakan CPU dan juga memastikan aksi yang dilakukan oleh perangkat keras dilakukan oleh kernel secara tepat waktu.

b. Memory Manager (MM)

Memory manager berfungsi untuk memberikan kesempatan pada setiap proses untuk mengakses memori secara aman. Memory manager juga melayani virtual memory yang memberikan kemampuan kepada sistem untuk memiliki memori yang melebihi dari memori sistem yang dimiliki.

c. Virtual File System (VFS)

Virtual file system memberikan abstraksi terhadap pengaksesan file. VFS memberikan layanan untuk berbagai kebutuan filesystem yang sesuai dengan sistem operasi lain misalnya FAT, NTFS, UFS dan filesystem lainnya.

d. Network Interface (NET)

(17)

e. Inter-Process Communication (IPC)

IPC merupakan sebuah mekanisme dalam kernel linux sehingga memungkinkan adanya komunikasi antar proses dalam sebuah sistem linux [1].

Gambar 7. Struktur Kernel Linux

3. Struktur Direktori dari Kode Program Kernel Linux

Struktur direktori dari kode program kernel linux terdiri dari beberapa bagian yang setiap bagian tersebut biasanya memiliki fungsi tersendiri. Direktori-direktori tersebut biasanya diberi nama dengan fungsi dari kode program yang terapat dalam direktori tersebut, misalnya direktori “mm” atau

“mmnommu” adalah direktori untuk fungsi manajemen memori [1].

(18)

a. Arch

Direktori ini berisi kode program yang spesifik untuk arsitektur tertentu, arsitektur yang didukung oleh sistem operasi linux antara lain ALPHA, ARM, INTEL, MOTOROLA, SPARC dan beberapa jenis prosesor lainnya.

b. Crypto

Direktori ini berisi kode program untuk fungsi kriptografi yang diimplementasikan dalam kernel linux.

c. Documentation

Direktori ini berisi dokumentasi dari kernel linux yang menjelaskan mengenai pemakaian driver, opsi dan konfigurasi dari sistem operasi.

d. Drivers

Direktori ini berisi kode program untuk pengendali dari perangkat keras yang akan menggunakan sistem operasi ini, misalnya driver untuk CD-ROM, keyboard, mouse.

e. Fs

(19)

f. Include

Direktori ini berisi file-file header untuk sistem operasi linux seriap arsitektur yang didukung oleh sistem operasi ini. File header merupakan definisi-definisi dari kemampuan sistem operasi yang akan digunakan ataupun definisi dari kemampuan perangkat keras yang akan menggunakan sistem operasi ini.

g. Init

Direktori ini berisi kode program untuk inisialisasi dari sistem operasi linux seperti misalnya menangkap parameter yang diberikan oleh bootloader.

h. Ipc

Direktori ini berisi kode program untuk fungsi Inter Process Communication (IPC). IPC adalah suatu fungsi untuk membagi memori sehingga memori tersebut dapat digunakan secara bersamaan oleh setiap aplikasi yang membutuhkan data dari memori tersebut.

i. Kernel

Direktori ini berisi kode program untuk kernel linux yang berisi fungsi-fungsi yang berhubungan dengan kernel linux misalnya scheduler, sysctl, dma, process accounting.

j. Lib

(20)

k. Mm atau mmnommu

Direktori ini berisi kode program untuk fungsi manajemen memori,

direktori “mm” berisi kode program untuk arsitektur yang menukung

manajemen memori seperti Intel sedangkan direktori “mmnommu” berisi kode program untuk arsitektur yang tidak menggunakan manajemen memori.

l. Net

Direktori ini berisi kode program untuk fungsi networking, misalnya untuk fungsi serial networking, IPv4, IPv6 dan fungsi network lainnya.

m. Scripts

Direktori ini berisi kumpulan scripts yang berguna untuk proses kompilasi kernel linux. Scripts yang digunakan misalnya mkversion untuk memperbaharui versi dari kernel linux pada saat kompilasi [1].

4.Embedded Linux

Embedded linux merupakan sistem operasi linux yang digunakan dalam sistem komputer embedded seperti Handphone, PDA, perlengkapan jaringan, mesin pengendali, industri otomasi, perlengkapan navigasi dan instrumentasi kesehatan. Berdasarkan survei yang dilakukan oleh Venture Development Corporation, linux telah digunakan oleh 18% embedded engineers [7].

(21)

penyimpanan sekunder seperti memori flash. Sejak perangkat embedded digunakan untuk kebutuhan spesifik dibandingkan kebutuhan umum, para pengembang mengoptimisasi distribusi embedded linux untuk target konfigurasi perangkat keras dan penggunaan pada situasi yang spesifik. Optimisasi yang dilakukan termasuk mereduksi jumlah device driver dan software aplikasi serta memodifikasi kernel linux untuk menjadi sistem operasi yang bersifat real-time. Dalam membangun sebuah sistem embedded linux, umumnya digunakan beberapa aplikasi utilititas yang bersifat freeware seperti busybox, glibc C standard library [7].

Gambar 8. Arsitektur Dasar Embedded Linux

(22)

Dalam membangun sistem operasi embedded linux untuk target, ada empat langkah utama yang harus dilakukan yaitu :

a. Mendeskripsikan komponen sistem operasi

Komponen sistem merupakan daftar kelengkapan yang dibutuhkan dalam membangun sistem operasi embedded linux. Daftar komponen ini lebih cenderung kepada fitur-fitur yang akan dikembangkan nantinya. Fitur-fitur yang akan dikembangkan tentunya berkaitan dengan hardware yang dimiliki. Dengan perpaduan tersebut maka dapat ditentukan tools yang akan digunakan untuk membangun sistem operasi tersebut.

b. Mengkonfigurasi dan membangun kernel

Kernel yang dipilih berkaitan dengan fitur-fitur yang telah dideskripsikan sebelumnya, apakah kernel yang akan digunakan mendukung atau tidak. Setiap versi kernel memiliki fitur tersendiri yang bisa dipilih sesuai dengan kebutuhan sistem. Kernel yang akan digunakan perlu dilakukan konfigurasi untuk memilih jenis fitur yang akan diaktifkan, tidak mesti semua fitur yang ada harus diaktifkan karena hal ini akan berpengaruh terhadap kapasitas file image dari kernel yang dihasilkan.

c. Membangun root filesystem

(23)

d. Melakukan instalasi bootup software dan konfigurasinya

Bootloader software merupakan bagian terpenting dari sistem embedded yang bertugas untuk menjalankan sistem pertama kali sebelum file sistem operasi embedded dieksekusi. Bootloader yang digunakan menyesuaikan dengan arsitektur yang digunakan dalam sistem. Proses booting adakalanya melalui storage device, disk on chip bahkan melalui jaringan [6].

D. Ucon (The Embedded System Console)

Ucon adalah tools yang didesain untuk pengembangan firmware dari sistem embedded tetapi tidak hanya terbatas pada hal tersebut. Ucon memiliki kemampuan sebagai terminal emulator, terminal server dan beberapa jenis server yang dapat digunakan untuk pengembangan sistem embedded. Motivasi utama dalam pengembangan Ucon adalah untuk menyediakan akses multi-user secara remote kepada sebuah perangkat komputer melalui port komunikasi serial dan tidak menghilangkan kemampuan local-user untuk menjalankan Ucon untuk mengakses port yang sama [18].

(24)

Gambar 9. Ucon Embedded System Console

E. GNU Cross-Platform Development Toolchain

Toolchain diperlukan sebagai aplikasi cross-develop untuk berbagai target arsitektur yang mencakup binary utilities seperti ld, gas dan ar, C compiler gcc dan C library glibc. Langkah awal dalam membangun toolchain adalah memilih versi dari komponen-komponen yang akan digunakan. Dalam hal ini adalah memilih versi dari binutils, gcc dan glibc. Karena paket-paket yang telah dirilis bersifat independen satu sama lain, tidak semua versi dari paket yang ada akan bisa dikombinasikan dengan versi yang berbeda dengan paket lainnya. Penggunaan versi terbaru juga tidak akan menjamin bahwa kombinasi tersebut akan bekerja dengan baik tanpa masalah [6].

(25)

1. Instalasi kernel headers, 2. Instalasi binary utilities, 3. Instalasi bootstrap compiler, 4. Instalasi C library,

5. Instalasi full compiler.

Kernel merupakan central software untuk semua sistem linux, kemampuan ini akan berpengaruh terhadap kemampuan seluruh sistem. Jika kernel yang digunakan gagal untuk mendukung salah satu perangkat keras dari target, maka perangkat tersebut tidak akan dapat digunakan. Instalasi kernel header ini akan menghasilkan file-file yang mendefinisikan kemampuan sistem sehingga perlu dilakukan pada tahap awal [6].

Binary utilities (binutils) adalah paket komponen toolchain yang digunakan untuk memanipulasi file binary. Dua utilities paling penting yang harus ada dalam paket komponen ini adalah GNU assembler as dan linker ld [6].

(26)

F. Crosstool

Crosstool dikembangkan oleh seorang software engineer bernama Dan Kegel. Crosstool merupakan kumpulan script yang digunakan untuk membangun dan melakukan tes terhadap beberapa versi gcc dan glibc untuk berbagai arsitektur yang didukung oleh glibc. Crosstool dikembangkan untuk para pengembang sistem embedded, tetapi juga sangat membantu para pengembang yang ingin melakukan kompilasi secara cepat atau yang ingin membangun program yang akan berjalan pada versi linux yang telah lama tetapi tidak ingin mengembangkan pada sistem yang kuno tersebut [10].

Crosstool memuat minimal patches untuk gcc dan glibc yang diperlukan untuk membangun beberapa kombinasi sepeti (alpha, arm, i686, ia64, mips, powerpc, powerpc64, sh4, sparc, sparc64, s390, x86_64) x (2.95.3 ... gcc-4.0.0) x (glibc-2.1.3 ... glibc-2.3.5). Crosstool merupakan script yang bersifat portable. Compiler yang dibangun untuk pengembangan linux pada sistem target dapat berjalan pada Linux, Mac OS X, Solaris dan Cygwin [10].

G. BuildRoot

(27)

Buildroot sangat cocok digunakan untuk orang-orang yang bekerja dengan embedded system. Embedded system seringkali menggunakan prosesor yang tidak familiar digunakan seperti x86 pada PC. Prosesor yang biasanya digunakan adalah PowerPC, MIPS, ARM dan sebagainya [11].

Buildroot secara otomatis menangani permasalahan instalasi toolchain, compiler, binary utilities dan library dengan memberikan kombinasi yang tepat untuk semua paket tersebut sehingga dapat berjalan dengan baik pada berbagai jenis arsitektur. Lebih dari itu, buildroot juga menyediakan fasilitas untuk mengulang proses pembangunan kernel, cross toolchain dan embedded root filesystem. Proses tersebut diperlukan ketika ada komponen yang perlu untuk dilakukan patch maupun update atau ketika orang lain mengambil alih project yang sedang dikerjakan [11].

(28)

III. METODE PENELITIAN

A. Waktu dan Tempat Penelitian

Penelitian dilakukan dari bulan Oktober 2009 sampai Februari 2010, bertempat di Laboratorium Teknik Digital yang merupakan bagian dari Laboratorium Terpadu Teknik Elektro, Jurusan Teknik Elektro, Universitas Lampung.

B. Alat dan Bahan

Alat dan bahan penelitian mencakup berbagai instrumen, komponen, perangkat kerja serta bahan-bahan yang digunakan dalam proses penelitian, di antaranya:

Peralatan:

1. Komputer pribadi (PC),

2. Kabel penghubung serial dan local area network (LAN) dengan modul embedded pc,

3. Koneksi internet. Bahan-bahan:

1. Modul Embedded PC CSB 625 dan CSB 925, 2. Linux Ubuntu 9.04,

(29)

C. Prosedur Kerja

Dalam penyelesaian tugas akhir ini ada beberapa langkah kerja yang dilakukan untuk mencapai hasil akhir yang diinginkan, di antaranya :

1. Studi Literatur

Dalam studi literatur dilakukan pencarian informasi mengenai segala sesuatu yang berkaitan dengan embedded system dan open source linux diantaranya adalah:

a. Manual Embedded PC CSB 625 dan CSB 925 b. Konsep embedded system

c. Tutorial linux

d. Kernel sistem operasi linux

e. Modifikasi sistem operasi linux untuk embedded system

Studi literatur dilakukan dengan cara mencari dan mempelajari bahan-bahan ajar dari buku-buku dan internet.

2. Pengujian Awal Sistem Operasi GX-Linux Pada Modul CSB625

a. Pengaturan konfigurasi komunikasi serial

(30)
[image:30.595.206.435.184.515.2]

menggunakan aplikasi Ucon untuk melakukan komunikasi antara modul CSB625 dengan PC. Port komunikasi yang aktif dapat diketahui dengan mudah hanya dengan menekan tombol PortScan pada jendela konfigurasi.

Gambar 11. Konfigurasi komunikasi serial Ucon

(31)
[image:31.595.142.507.85.394.2]

Gambar 12. Jendela utama Ucon

(32)

Pada memori flash sistem target telah tertanam embedded linux system, GX-Linux. Untuk memulai menjalankan embedded linux pada target, kita harus melakukannya secara manual terlebih dahulu karena belum dilakukan konfigurasi untuk membuatnya berjalan secara otomatis ketika target dinyalakan. File-file apa saja yang sudah berada dalam memori dapat diketahui dengan mengetikkan perintah sebagai berikut pada UMon console.

Informasi yang ditampilkan menunjukkan beberapa file yang sudah berada dalam memori flash termasuk file embedded linux diantaranya, romfs.img merupakan file image root filesystem dari embedded linux, zImage merupakan file image dari kernel linux yang jalankan pada target dan startlinux yang merupakan file untuk memulai menjalankan embedded linux pada target. Flags “e” menunjukkan bahwa file tersebut merupakan executable script.

b. Aktifasi sistem operasi GX-Linux

(33)

modul. Untuk mengetahui file mana yang harus dijalankan pertama kali untuk mengaktifkan sistem operasi embedded pada modul CSB625, pada Umon console masukkan perintah berikut.

Umon> tfs ls

File yang dimaksud bersifat executable yang ditandai dengan flags e sehingga dapat dengan mudah dilakukan eksekusi.

c. Pengujian perangkat input/output pada modul CSB625

Beberapa perangkat input/output yang dilakukan pengujian adalah port Ethernet dan USB. Pengujian perangkat jaringan dalam penelitian ini dilakukan dengan melakukan uji koneksi antara target dengan host melalui perintah ping pada Command Prompt sistem operasi Windows maupun pada Terminal pada sistem operasi Linux.

Sedangkan untuk pengujian port USB dengan menggunakan sebuah USB flashdisk untuk mengetahui proses identifikasi perangkat baru yang dipasangkan apakah dapat dideteksi secara langsung oleh sistem atau tidak serta untuk mengetahui proses transfer data yang terjadi antara device dengan sistem apakah bisa dilakukan atau tidak setelah dilakukan proses mounting device ke dalam sistem.

(34)

meletakkan sistem berkas tesebut. Kalau kita ingin me-mount sistem berkas berupa direktori, maka mount point-nya harus berupa direktori. Sebaliknya, jika yang hendak kita mount adalah file, maka mount point-nya juga harus berupa file.

d. Pengujian aplikasi

Fitur-fitur serta aplikasi yang telah diimplementasikan pada sistem berada pada direktori /bin root filesystem. Semua aplikasi yang ada pada direktori tersebut dapat diketahui dengan mengetikkan perintah berikut. # cd bin/

# ls

Dari aplikasi-aplikasi yang telah diimplementasikan, pengujian dilakukan untuk mengetahui apakah aplikasi tersebut dapat berjalan dengan baik atau tidak pada modul CSB625.

3. Implementasi Sistem Operasi Baru Berbasis Open Source Linux

a. Deskripsi sistem

Sistem operasi embedded yang akan dibangun dengan menggunakan open source linux memiliki fitur-fitur secara umum sebagai berikut :

1. Memiliki kemampuan untuk melakukan identifikasi terhadap device baru yang dipasangkan,

(35)

3. Memiliki compiler dalam sistem sehingga mendukung untuk perancangan aplikasi lebih lanjut,

4. Memiliki aplikasi standar sistem linux serta aplikasi yang didedikasikan untuk tujuan tertentu,

b. Metode implementasi secara manual

Metode implementasi secara manual dilakukan tahap demi tahap dalam konfigurasi, kompilasi dan instalasi masing-masing tools yang akan digunakan termasuk kernel sebagai inti sistem operasi yang akan dibangun. Beberapa tahapan yang harus dilakukan dalam perancangan ini adalah sebagai berikut.

1. Melakukan konfigurasi, kompilasi dan instalasi Cross-platform development toolchain,

2. Melakukan konfigurasi, kompilasi dan instalasi kernel sistem operasi yang akan digunakan pada target sistem,

3. Membuat root filesystem untuk target sistem, 4. Melakukan konfigurasi dan instalasi boot software.

Cross-platform development toolchain meliputi beberapa tools, yaitu Binary utilities, Compiler C dan Library C. Proses instalasi toolchain sendiri meliputi beberapa tahapan berikut.

(36)

5. Instalasi full compiler.

Instalasi kernel header diawali dengan melakukan konfigurasi kernel sesuai dengan arsitektur target. Modul CSB625 menggunakan prosesor Intel PXA255 yang merupakan keluarga arsitektur ARM versi 5TE, sehingga untuk konfigurasi kernel perintah yang digunakan adalah

make ARCH=arm CROSS_COMPILE=i386-linux- menuconfig

[image:36.595.148.509.338.587.2]

Konfigurasi kernel dapat dilakukan dengan mudah karena jendela konfigurasi yang sudah berbasis grafis (GUI).

Gambar 13. Jendela konfigurasi kernel

Instalasi binary utilities dilakukan dengan melakukan ekstraksi file binutils dengan menggunakan perintah

tar xvzf binutils-2.16.1.tar.gz (ekstensi .gz)

(37)

Selanjutnya lakukan proses konfigurasi dengan menggunakan perintah berikut dengan beberapa tambahan parameter

./configure –target=$TARGET –prefix=${PREFIX}

Untuk melakukan kompilasi, perintah yang digunakan adalah make sedangkan untuk proses instalasi digunakan perintah make install.

Cara instalasi bootstrap compiler, C library dan full compiler secara umum sama seperti proses instalasi binary utilities. Perbedaannya terletak pada parameter-parameter yang digunakan dalam proses konfigurasi. Untuk bootstrap compiler, perintah yang digunakan adalah

./configure target=$TARGET prefix={PREFIX}

--without-headers --with-newlib –-enable-languages=c

Untuk C library, perintah yang digunakan adalah

./configure --host=$TARGET --prefix=”/usr” –

-enable-add-ons --with-headers=${TARGET_PREFIX}/include

Untuk full compiler, perintah yang digunakan adalah

./configure --target=$TARGET --prefix={PREFIX} -–

enable-languages=c,c++

Setelah proses instalasi toolchain selesai dilakukan, proses selanjutnya adalah kompilasi kernel. Kompilasi ini dilakukan untuk membentuk file image kernel yang akan digunakan oleh target. Format file image standar yang digunakan dalam arsitektur ARM adalah zImage, sehingga perintah yang digunakan adalah

make ARCH=arm CROSS_COMPILE=i386-linux- zImage

(38)

make ARCH=arm CROSS_COMPILE=i386-linux- modules

Proses selanjutnya adalah membuat root filesystem untuk target. Root filesystem merupakan direktori-direktori yang berisi image kernel, modul kernel, sistem library, aplikasi utama sistem dan aplikasi tambahan bagi pengguna. Perintah yang digunakan untuk membuat direktori berikut direktori yang harus dibuat untuk root filesystem adalah sebagai berikut. mkdir bin dev etc lib proc sbin tmp usr var

chmod 1777 tmp

mkdir usr/bin usr/lib usr/sbin

mkdir var/lib var/lock var/log var/run var/tmp

chmod 1777 var/tmp

Tahapan terakhir adalah instalasi bootloader untuk target. Bootloader inilah yang bertugas pertama kali ketika sistem aktif dan akan melakukan respon untuk menjalankan kernel. Ada beberapa jenis bootloader yang umumnya digunakan dalam sistem linux. Akan tetapi untuk arsitektur ARM, bootloader standar yang digunakan adalah U-boot [6].

c. Metode implementasi secara otomatis

(39)

dengan menggunakan script-script yang akan dieksekusi secara otomatis. Metode ini sangat membantu dalam pengembangan sistem operasi embedded terutama bagi para pemula.

Dalam metode kedua ini, penulis lebih cenderung menggunakan tools buildroot karena lebih mudah dalam penggunaannya dan telah berbasis grafis (GUI). Langkah awal yang dilakukan adalah melakukan konfigurasi buildroot dengan mengetikkan perintah

make menuconfig

[image:39.595.149.507.388.640.2]

Sehingga akan muncul jendela konfigurasi buildroot seperti ditunjukkan pada gambar 14 berikut.

Gambar 14. Jendela konfigurasi Buildroot

(40)

aplikasi yang akan diinstal untuk target, jenis filesystem target beserta bootloader, dan versi kernel beserta format yang akan digunakan untuk target. Setelah proses konfigurasi selesai dilakukan, simpan konfigurasi tersebut, keluar dari jendela konfigurasi dan lakukan instalasi dengan mengetikkan perintah make. Selanjutnya secara otomatis proses konfigurasi, kompilasi dan instalasi akan berjalan, yang diawali dengan proses pengambilan file (download) yang diperlukan dari server software source buildroot dan beberapa situs yang lain [11].

4. Pengujian Kedua Pada Sistem Operasi Baru

Pengujian ini dilakukan untuk mengetahui tingkat keberhasilan sistem yang telah dibuat. Pengujian yang akan dilakukan meliputi beberapa tahap, yaitu :

a. Pengujian perangkat komunikasi, dengan menghubungkannya ke PC host melalui port komunikasi yang ada,

b. Pengujian fungsional sistem operasi embedded linux, dengan mengeksekusi file image yang ditempatkan pada memori,

c. Pengujian software aplikasi, dengan menjalankan program aplikasi sederhana yang telah dikembangkan.

5. Analisa dan Simpulan

(41)

diimplementasikan pada modul. Dari proses tersebut akan diketahui apakah sistem operasi memang sudah berjalan sesuai dengan yang diharapkan atau masih ada beberapa masalah yang perlu diperbaiki. Hasil dari proses analisa tersebut selanjutnya akan digunakan dalam pengambilan kesimpulan.

6. Penulisan Laporan

(42)

Mulai

Study literatur

Pengujian awal sistem operasi GX-Linux pada modul CSB625

Perancangan sistem operasi baru berbasis Open Source Linux

Analisa dan kesimpulan

Selesai

Tidak Pengujian sistem kedua

Sistem bekerja

[image:42.595.241.451.101.591.2]

Ya

(43)

V. SIMPULAN DAN SARAN

A. Simpulan

Dari serangkaian penelitian, pengujian, dan analisa yang telah dilakukan dapat disimpulkan bahwa:

1. Sistem operasi GX-Linux pada modul CSB625 dapat melakukan fungsi-fungsi standar sistem operasi linux, seperti inisialisasi dan mounting device, copy data dan koneksi jaringan secara emulasi menggunakan aplikasi Ucon melalui komunikasi serial,

2. Proses pengembangan sistem embedded baru pada modul CSB625 tidak dapat dilanjutkan karena adanya kendala error pada saat instalasi bootloader yang disebabkan adanya fungsi _div0 dalam file libgcc.a

dan raise dalam file lib1funcs.asm yang tidak dapat di-compile.

B. Saran

Dalam penelitian selanjutnya, berikut ini saran-saran yang perlu diperhatikan :

(44)
(45)

IV. HASIL DAN PEMBAHASAN

A. Pengujian Awal Sistem Operasi GX-Linux

Pengujian awal yang dilakukan secara emulasi memiliki tujuan untuk mengetahui jenis sistem operasi embedded yang sudah tertanam dalam modul CSB625, bagaimana sistem tersebut bekerja. Dari pengujian awal ini akan diperoleh data-data yang dapat merepresentasikan bagaimana kemampuan dari sistem tersebut. Tahapan yang dilakukan dalam pengujian awal, antara lain :

1. Pengujian pengoperasian sistem operasi embedded yang ada pada modul CSB625,

2. Pengujian beberapa perangkat Input/Output,

3. Pengujian beberapa aplikasi sistem dan pengguna yang telah diimplementasikan didalamnya.

Pengujian dilakukan secara komunikasi serial dengan menggunakan aplikasi Ucon yang didesain khusus untuk pengembangan firmware sistem embedded.

1. Pengujian Pengoperasian Sistem Operasi GX-Linux

(46)
[image:46.595.127.507.141.486.2]

restarting pada modul CSB925 maka tampilan jendela Ucon akan berubah seperti gambar 16 berikut.

Gambar 16. Informasi modul CSB625 pada Ucon

Informasi awal yang akan ditampilkan adalah data-data berkaitan dengan platform yang digunakan dengan rincian sebagai berikut.

TFS Scanning //FLASH/ … MICRO MONITOR 1.14.5 Platform : Cogent CSB625 CPU : PXA255 XScale

Built : Jan 15 2008 @ 09:34:51 Monitor RAM : 0xa0000000-0xa001ee00 Application RAM Base : 0xa008d000 MAC : 00:30:23:25:03:89

(47)

Secara standar setelah proses inisialisasi platform selesai dilakukan, maka sistem akan masuk ke dalam bootloader Micromonitor. Dari bootloader inilah kita bisa melakukan konfigurasi sistem lebih lanjut sehingga sistem dapat berjalan secara otomatis ketika mendapatkan pasokan daya listrik.

Berikut ini adalah proses inisialisasi dan querying user hingga masuk ke dalam sistem linux ketika file startlinux dieksekusi secara manual.

Untuk menjadikan sistem operasi GX-Linux dapat berjalan secara otomatis ketika target dinyalakan, maka flag dari file startlinux harus dikonfigurasikan menjadi bersifat bootable-executable dengan mengetikkan perintah berikut pada Umon console.

(48)

Dengan mengubah flag startlinux menjadi bootable-executable, ketika target dinyalakan maka secara otomatis file tersebut akan dijalankan pertama kali pada saat boot system untuk melakukan inisialisasi sistem dan querying user untuk masuk ke sistem operasi GX-Linux. User yang digunakan untuk masuk ke dalam sistem operasi adalah root dan tanpa disertai dengan kata sandi.

(49)

Setelah proses shutdown, indikator power serta proses yang ada pada board tidak langsung padam, akan tetapi hal ini tidak menimbulkan masalah jika kita melepaskan sumber daya listrik dari target.

Kedua perintah tersebut jika dilihat dalam struktur root filesystem berada dalam direktori /sbin.

2. Pengujian Beberapa Perangkat Input/output Modul CSB625

(50)

kelas dan network yang ada pada target yakni 192.168.254.100 dengan subnet mask 255.255.255.0.

[image:50.595.132.508.227.371.2]

Hasil uji coba koneksi antara host dengan target pada sistem operasi Windows ditunjukkan pada gambar 17 berikut.

Gambar 17. Uji koneksi ethernet pada windows

Hasil uji coba koneksi antara host dengan target pada sistem operasi Linux ditunjukkan pada gambar 18 berikut.

[image:50.595.130.507.498.666.2]
(51)

Dari hasil uji coba tersebut dapat disimpulkan bahwa sistem telah dapat melakukan reply paket data yang dikirimkan, sehingga perangkat ethernet yang ada dapat digunakan untuk komunikasi. Waktu yang digunakan dalam proses pengiriman dan penerimaan paket data juga relatif stabil antara 8 - 9 ms pada Windows dan 0.3 – 0.5 ms pada Linux. Dari data ini dapat disimpulkan bahwa kondisi konektivitas ethernet pada sistem embedded CSB625 cukup stabil untuk melakukan komunikasi data dalam jaringan.

Pengujian perangkat input/output selanjutnya adalah port USB. Dalam pengujian ini penulis menggunakan USB flashdisk dengan kapasitas 2GB. Dari hasil pengujian yang dilakukan, ketika USB flashdisk dipasangkan pada port USB yang ada maka secara otomatis akan dideteksi oleh sistem dengan informasi yang sesuai dengan spesifikasi device yang dipasangkan seperti berikut.

Device yang dipasangkan berada dalam struktur direktori /dev yaitu /dev/sda1. Penulis melakukan proses mounting device tersebut dengan

mengarahkannya ke direktori /mnt/cf dengan mengetikkan perintah

(52)

Untuk melihat device apa saja yang telah dilakukan proses mount pada sistem dapat dilakukan dengan memasukkan perintah df.

Pada informasi diatas, dapat dilihat adanya device baru yakni /dev/sda1 (USB flashdisk) yang di-mounting pada direktori /mnt/cf.

Sedangkan untuk proses unmount yang merupakan proses untuk melepaskan sistem berkas tertentu dari direktori utama, cukup dengan memasukkan perintah seperti berikut.

Maka pada daftar device yang telah di-mounting akan berubah menjadi seperti berikut.

3. Pengujian Beberapa Aplikasi Sistem dan Pengguna

(53)

aplikasi untuk melakukan mounting device. Berikut ini adalah struktur lengkap direktori /bin dengan aplikasi-aplikasinya.

Pengujian dilakukan pada beberapa aplikasi yang ada untuk mengetahui apakah aplikasi tersebut dapat berjalan dengan baik atau tidak pada target.

a. Ls

Merupakan script yang digunakan untuk melihat isi dari sebuah direktori. Dibawah ini menunjukkan isi dari direktori utama root filesystem ( / ) linux yang ada pada target.

b. Ping

Perintah ini digunakan untuk melakukan uji koneksi ethernet dengan mengirimkan paket data dan menunggu reply dari tujuan. Berikut adalah hasil pengujian perintah ping dari sistem target dengan tujuan PC host.

(54)

c. Cp

Merupakan script yang digunakan untuk proses penyalinan data baik antar direktori maupun antar device. Pada pengujian dilakukan proses penyalinan data dari USB flashdisk ke direktori sistem pada target dan sebaliknya. Berikut ini adalah hasil pengujian proses copy data.

Direktori www target yang berada pada /var disalin ke USB flashdisk dan file tips.doc yang berada pada USB flashdisk disalin ke direktori /var target. Proses copying file ini juga merepresentasikan transfer data yang terjadi antara host dengan target. Dari data-data di atas dapat dilihat bahwa proses transfer data antara device ke sistem dan sebaliknya sistem ke device tidak mengalami masalah. Hal ini menjadi sebuah kesimpulan bahwa port USB pada sistem embedded CSB625 cukup baik untuk melakukan transfer data.

(55)

B. Implementasi Sistem Operasi Baru Berbasis Open Source Linux

Ada dua jenis metode yang dapat digunakan dalam implementasi embedded linux system yaitu secara manual dan secara otomatis dengan menggunakan tools yang sudah dibuat oleh para engineer yang telah banyak berkecimpung dalam dunia embedded system seperti crosstool dan buildroot. Metode implementasi secara otomatis memiliki keunggulan jika dibandingkan secara manual. Jika menggunakan metode manual, maka kita harus memiliki referensi yang kuat terutama berkaitan dengan versi aplikasi-aplikasi yang akan digunakan sehingga munculnya error dalam proses implementasi bisa diminimalisir. Proses konfigurasi dan instalasi dilakukan tahap demi tahap. Akan tetapi, jika menggunakan metode otomatis maka proses konfigurasi dan instalasi akan dilakukan secara langsung oleh sistem dengan pengaturan yang telah ditentukan oleh engineer pembuatnya. Proses yang dilakukan juga menjadi lebih singkat karena hanya dengan menggunakan beberapa baris perintah saja. Hal ini juga akan sangat membantu terutama bagi para pemula dalam perancangan embedded linux system.

Dalam penelitian ini, penulis menerapkan kedua metode implementasi yang telah dijelaskan sebelumnya dalam melakukan konfigurasi dan instalasi paket-paket aplikasi yang digunakan dalam implementasi embedded linux untuk target.

1. Metode Implementasi Secara Manual

(56)

Toolchain merupakan cross-develop applications yang digunakan untuk mengembangkan sistem operasi yang akan dijalankan pada target untuk berbagai jenis arsitektur yang meliputi beberapa software, antara lain : binary binutils, C compiler dan C library. Prosedur dalam instalasi toolchain meliputi lima tahapan utama, yaitu :

a. Instalasi kernel header, b. Instalasi binary utilities, c. Instalasi bootstrap compiler, d. Instalasi C library,

e. Instalasi full compiler.

[image:56.595.136.512.520.753.2]

Sebelum melakukan konfigurasi dan instalasi toolchain, pertama kali yang harus dilakukan adalah membuat direktori untuk project yang akan dikembangkan. Beberapa direktori yang harus dibuat seperti ditunjukkan dalam tabel 2 berikut ini.

Tabel 2. Layout direktori project

Direktori Isi

Bootldr Bootloader untuk target

Build-tools Paket aplikasi dan direktori yang dibutuhkan untuk cross-platform development toolchain

Debug Debugging tools dan paket aplikasi yang berkaitan Doc Semua dokumentasi yang diperlukan project

Images Binary image bootloader, kernel dan root filesystem yang siap digunakan oleh target

Kernel Versi kernel yang berbeda untuk target

Project Source code yang dideskripsikan untuk project Rootfs Root filesystem yang akan dijalankan oleh target Sysapps Aplikasi-aplikasi yang diperlukan oleh target

Tmp Direktori sementara untuk eksperimen dan menyimpan file transient

(57)

Penulis menempatkan direktori-direktori project tersebut dalam sebuah direktori utama dengan nama ikhwan-project pada home directory. Jika dilihat melalui console dengan mengetikkan perintah

erwin@erwin-laptop:~$ ls -l ~/ikhwan-project

maka akan ditampilkan informasi sebagai berikut. total 44

drwxr-xr-x 2 erwin erwin 4096 2010-01-01 11:19 bootldr drwxr-xr-x 2 erwin erwin 4096 2010-01-01 11:24 build-tools drwxr-xr-x 2 erwin erwin 4096 2010-01-01 11:22 debug

drwxr-xr-x 2 erwin erwin 4096 2010-01-01 11:22 doc drwxr-xr-x 2 erwin erwin 4096 2010-01-01 11:22 images drwxr-xr-x 2 erwin erwin 4096 2010-01-01 11:24 kernel drwxr-xr-x 2 erwin erwin 4096 2010-01-01 11:22 project drwxr-xr-x 2 erwin erwin 4096 2010-01-01 11:22 rootfs drwxr-xr-x 2 erwin erwin 4096 2010-01-01 11:22 sysapps drwxr-xr-x 2 erwin erwin 4096 2010-01-01 11:23 tmp drwxr-xr-x 2 erwin erwin 4096 2010-01-01 11:23 tools

Selanjutnya ruang kerja yang akan digunakan untuk konfigurasi dan instalasi sebaiknya diatur terlebih dahulu untuk memudahkan proses yang akan dilakukan. Pengaturan ruang kerja dilakukan dengan mengetikkan beberapa perintah berikut dalam console

erwin@erwin-laptop:~ $ export PROJECT=ikhwan-project

erwin@erwin-laptop:~ $ export PRJROOT=/home/erwin/${PROJECT} erwin@erwin-laptop:~ $ export TARGET=arm-linux

erwin@erwin-laptop:~ $ export PREFIX=${PRJROOT}/tools erwin@erwin-laptop:~ $ export

TARGET_PREFIX=${PREFIX}/${TARGET}

erwin@erwin-laptop:~ $ export PATH=${PREFIX}/bin:${PATH}

Value dari variabel TARGET disesuaikan dengan jenis arsitektur target yang akan dikembangkan. Pada penelitian ini target yang akan dikembangkan memiliki jenis arsitektur ARM sehingga value dari variabel target adalah arm-linux. Dengan pengaturan ruang kerja seperti diatas maka untuk

(58)

Sehingga pointer pada console akan menunjukkan direktori project yang sudah diatur sebelumnya.

erwin@erwin-laptop:~/ikhwan-project$

Mengacu pada tabel 2, maka toolchain akan diinstal pada direktori build-tools sehingga perlu dilakukan persiapan terlebih dahulu pada direktori tersebut berupa pembuatan beberapa direktori baru untuk toolchain.

erwin@erwin-laptop:~/ikhwan-project$ cd ${PRJROOT}/build-tools

erwin@erwin-laptop:~/ikhwan-project/build-tools$ mkdir build-binutils build-boot-gcc build-glibc build-gcc

Paket-paket software yang akan diinstal untuk toolchain juga ditempatkan pada direktori build-tools, sehingga jika dilihat melalui console dengan perintah

erwin@erwin-laptop:~/ikhwan-project/build-tools$ ls -l

maka akan ditampilkan informasi berikut total 42788

-rwxrwxrwx 1 erwin erwin 16378360 2009-12-25 08:36 binutils-2.16.1.tar.gz

drwxr-xr-x 2 erwin erwin 4096 2010-01-01 11:30 build-binutils

drwxr-xr-x 2 erwin erwin 4096 2010-01-01 11:30 build-boot-gcc

drwxr-xr-x 2 erwin erwin 4096 2010-01-01 11:30 build-gcc

drwxr-xr-x 2 erwin erwin 4096 2010-01-01 11:30 build-glibc

-rwxrwxrwx 1 erwin erwin 12911721 2009-12-19 11:18 gcc-2.95.3.tar.gz

(59)

a. Instalasi Kernel Headers

Instalasi kernel header merupakan langkah awal dalam melakukan instalasi toolchain karena akan digunakan dalam instalasi aplikasi toolchain yang lainnya. Kernel yang digunakan dalam penelitian ini adalah kernel linux versi 2.6.11.3. File kernel linux ditempatkan pada direktori kernel yang telah dibuat sebelumnya. Selanjutnya kita melakukan ekstraksi file kernel tersebut dengan mengetikkan perintah.

erwin@erwin-laptop:~/ikhwan-project/kernel$ tar xvzf linux-2.6.11.3.tar.gz

proses ekstraksi kernel akan menghasilkan file-file kernel linux yang berada dalam sebuah direktori dengan nama yang sesuai dengan versi kernel yang digunakan yaitu linux-2.6.11.3. Setelah kernel diekstraksi maka selanjutnya dapat dilakukan proses konfigurasi kernel untuk menentukan fitur apa saja yang akan digunakan pada target system. Konfigurasi kernel dilakukan dengan mengetikkan perintah berikut.

erwin@erwin-laptop:~/ikhwan-project/kernel$ cd linux-2.6.11.3/

erwin@erwin-laptop:~/ikhwan-project/kernel/linux-2.6.11.3$ make ARCH=arm CROSS_COMPILE=i386-linux- menuconfig

(60)
[image:60.595.151.509.85.338.2]

Gambar 19. Jendela konfigurasi kernel linux-2.6.11.3

[image:60.595.158.502.388.633.2]
(61)
[image:61.595.160.501.86.326.2]

Gambar 21. Fitur networking kernel 2.6.11.3

Gambar 22. File system kernel 2.6.11.3

[image:61.595.157.505.376.624.2]
(62)

dilakukan sehingga proses akan menulis konfigurasi kernel dalam sebuah file dengan nama config. Kemudian keluar dari jendela konfigurasi dengan memilih menu exit pada jendel konfigurasi.

Langkah selanjutnya adalah melakukan pembuatan direktori include yang diperlukan oleh toolchain dan menyalin kernel header ke dalamnya.

erwin@erwin-laptop:~/ikhwan-project/kernel$ mkdir –p

${TARGET_PREFIX}/include

erwin@erwin-laptop:~/ikhwan-project/kernel$ cp –r

include/linux/ ${TARGET_PREFIX}/include

erwin@erwin-laptop:~/ikhwan-project/kernel$ cp –r

include/asm-arm/ ${TARGET_PREFIX}/include/asm

erwin@erwin-laptop:~/ikhwan-project/kernel$ cp –r

include/asm-generic/ ${TARGET_PREFIX}/include

direktori asm-arm pada perintah diatas menyesuaikan dengan jenis arsitektur target.

b. Instalasi Binary Utilities

Paket binutils merupakan utilities yang digunakan untuk memanipulasi file object. Langkah pertama untuk melakukan instalasi binutils adalah dengan mengekstrak file binutils yang telah di-download pada direktori build-tools. Paket binary utilities yang digunakan adalah binutils-2.16.1.

cd ${PRJROOT}/build-tools

erwin@erwin-laptop:~/ikhwan-project/build-tools/$ tar xvzf binutils-2.16.1.tar.gz

Hasil ekstraksi adalah berupa sebuah direktori dengan nama binutils-2.16.1. Selanjutnya kita dapat berpindah ke direktori tersebut dan melakukan konfigurasi binutils.

(63)

erwin@erwin-laptop:~/ikhwan-project/build-tools/build-binutils$

/home/erwin/ikhwan-project/build-tools/binutils-2.16.1/configure –target=$TARGET –

prefix=${PREFIX}

Setelah proses konfigurasi selesai dilakukan, selanjutnya kita dapat melakukan kompilasi dan instalasi binary utilities.

erwin@erwin-laptop:~/ikhwan-project/build-tools/build-binutils$ make

erwin@erwin-laptop:~/ikhwan-project/build-tools/build-binutils$ make install

Binary utilities telah selesai diinstal, hal ini dapat diketahui dengan melihat isi dari direktori yang ditunjuk oleh variabel PREFIX.

erwin@erwin-laptop:~/ikhwan-project/build-tools/build-binutils$ ls ${PREFIX}/bin

total 26388

arm-linux-addr2line arm-linux-objdump

arm-linux-ar arm-linux-ranlib

arm-linux-as arm-linux-readelf

arm-linux-c++filt arm-linux-size

arm-linux-ld arm-linux-strings

arm-linux-nm arm-linux-strip

arm-linux-objcopy

c. Instalasi Bootstrap Compiler

Pada tahap ini penulis melakukan kompilasi bootstrap compiler yang hanya mendukung bahasa C dengan menggunakan paket gcc yang merupakan GNU compiler. Kemudian setelah C library selesai dilakukan kompilasi, kita akan melakukan kompilasi ulang gcc dengan dukungan bahasa C++ secara penuh. Proses instalasi dimulai dengan melakukan ekstraksi paket gcc telah di-download pada direktori build-tools. Paket gcc yang digunakan adalah gcc-2.95.3.

(64)

erwin@erwin-laptop:~/ikhwan-project/build-tools/$ tar xvzf gcc-2.95.3.tar.gz

Hasil ekstraksi adalah berupa sebuah direktori dengan nama gcc-2.95.3. Selanjutnya kita dapat berpindah ke direktori tersebut dan melakukan konfigurasi gcc.

erwin@erwin-laptop:~/ikhwan-project/build-tools$ cd build-boot-gcc

erwin@erwin-laptop:~/ikhwan-project/build-tools/build-boot-gcc$ /home/erwin/ikhwan-project/build-tools/gcc-2.95.3/configure target=$TARGET prefix={PREFIX}

--without-headers --with-newlib –enable-languages=c

Setelah proses konfigurasi selesai dilakukan, selanjutnya kita lakukan proses kompilasi gcc dengan mengetikkan perintah

erwin@erwin-laptop:~/ikhwan-project/build-tools/build-boot-gcc$ make all-gcc

Pada proses kompilasi gcc, muncul beberapa pesan kesalahan (error). Beberapa pesan kesalahan tersebut antara lain :

/home/erwin/ikhwan-project/build-tools/gcc-2.95.3/gcc/config/arm/arm.c: In function ‘arm_override_options’:

/home/erwin/ikhwan-project/build-tools/gcc-2.95.3/gcc/config/arm/arm.c:286: warning: assignment discards qualifiers from pointer target type

/home/erwin/ikhwan-project/build-tools/gcc-2.95.3/gcc/config/arm/arm.c:530: error: lvalue required as left operand of assignment

make[1]: *** [arm.o] Error 1

make[1]: Leaving directory `/home/erwin/ikhwan-project/build-tools/build-boot-gcc/gcc'

make: *** [all-gcc] Error 2

(65)

diselesaikan dengan mengubah beberapa baris perintah yang ada pada file arm.c yang ada pada direktori

/home/erwin/ikhwan-project/build-tools/gcc-2.95.3/gcc/config/arm/

Baris perintah yang menandakan terjadinya error berada pada baris perintah 530 sehingga kita harus mengubah baris perintah tersebut yang semula adalah

arm_prog_mode = TARGET_APCS_32 ? PROG_MODE_PROG32 : PROG_MODE_PROG26;

menjadi

arm_prgmode = TARGET_APCS_32 ? PROG_MODE_PROG32 : PROG_MODE_PROG26;

Pesan kesalahan lain yang ditemui saat proses kompilasi adalah

inlined from ‘collect_execute’ at /home/erwin/ikhwan

-project/build-tools/gcc-2.95.3/gcc/collect2.c:1762: /usr/include/bits/fcntl2.h:51: error: call to

‘__open_missing_mode’ declared with attribute error: open with O_CREAT in second argument needs 3 arguments

make[1]: *** [collect2.o] Error 1

make[1]: Leaving directory `/home/erwin/ikhwan-project/build-tools/build-boot-gcc/gcc'

make: *** [all-gcc] Error 2

Penyebab error ini adalah penggunaan argumen O_CREAT yang tidak cocok dengan fungsi _open_missing_mode pada file collect2.c sehingga perlu digantikan dengan argumen yang lain. Error kedua ini dapat diselesaikan dengan mengubah beberapa baris perintah yang ada pada file collect2.c yang ada pada direktori

(66)

Baris perintah yang menandakan terjadinya error berada pada baris perintah 1762 sehingga kita harus mengubah baris perintah tersebut yang semula adalah

redir_handle = open (redir, O_WRONLY | O_TRUNC | O_CREAT);

menjadi

redir_handle = open (redir, S_IRUSR | S_IWUSR);

Pesan kesalahan selanjutnya yang ditemui saat proses kompilasi adalah Aborted

rm -f libgcc1.S

mv tmplibgcc1.a libgcc1-asm.a

make[3]: Leaving directory `/home/erwin/ikhwan-project-2/build-tools/build-boot-gcc/gcc'

rm -rf tmplibgcc.a tmpcopy mkdir tmpcopy

if [ xlibgcc1-asm.a != x ]; \

then (cd tmpcopy; arm-linux-ar x ../libgcc1-asm.a); \ else true; \

fi

(cd tmpcopy; chmod +w * > /dev/null 2>&1)

make[2]: [stmp-multilib-sub] Error 1 (ignored) (cd tmpcopy; arm-linux-ar x ../libgcc2.a)

(cd tmpcopy; arm-linux-ar rc ../tmplibgcc.a *.o) arm-linux-ar: *.o: No such file or directory

make[2]: *** [stmp-multilib-sub] Error 1

make[2]: Leaving directory `/home/erwin/ikhwan-project-2/build-tools/build-boot-gcc/gcc'

make[1]: *** [stmp-multilib] Error 1

make[1]: Leaving directory `/home/erwin/ikhwan-project-2/build-tools/build-boot-gcc/gcc'

make: *** [all-gcc] Error 2

Penyebab error diatas terjadi pada stmp-multilib-sub dan

(67)

berkaitan dengan file libgcc2.a dan tmplibgcc.a. Penulis kesulitan menemukan solusi yang tepat untuk permasalahan error yang terakhir, sehingga penulis memutuskan untuk menghentikan proses perancangan dengan menggunakan metode manual. Hal ini dikarenakan jika terjadi kegagalan pada salah satu proses instalasi, maka proses selanjutnya tidak dapat dilakukan. Sebagai langkah lanjutan, penulis mencoba untuk menerapkan metode perancangan secara otomatis dengan menggunakan beberapa tools seperti crosstool dan buildroot.

2. Metode Implementasi Secara Otomatis Menggunakan Crosstool

Crosstool merupakan paket toolchain yang dikembangkan oleh seorang software engineer bernama Dan Kegel untuk memudahkan para pengembang embedded linux system dalam melakukan konfigurasi dan instalasi cross-platform development toolchain. Crosstool berisi file-file beserta dengan perintah-perintah yang digunakan untuk melakukan konfigurasi dan instalasi toolchain. Dalam proses instalasi crosstool, diperlukan koneksi internet dengan stabilitas yang cukup tinggi karena proses instalasi dilakukan dengan men-download paket-paket yang dibutuhkan secara langsung. Setelah proses download file paket yang dibutuhkan selesai, maka proses konfigurasi dan instalasi akan langsung dilakukan secara otomatis.

Proses instalasi crosstool diawali dengan melakukan ekstraksi file crosstool yang telah di-download dengan mengetikkan perintah berikut.

(68)

Hasil dari proses ekstraksi adalah berupa sebuah direktori dengan nama crosstool-0.43. Selanjutnya kita lihat demo script yang ada pada direktori tersebut sesuai dengan jenis arsitektur prosesor yang akan dikembangkan. Jika arsitektur ARM, maka file yang harus kita lihat adalah demo-arm.sh. Dalam file ini dapat kita ketahui tiga variabel penting, yaitu :

TARBALLS_DIR=$HOME/downloads RESULT_TOP=/opt/crosstool GCC_LANGUAGES="c,c++,java,f77"

Variabel pertama mengindikasikan direktori yang digunakan sebagai tempat untuk meletakkan file-file paket yang akan di-download pada saat instalasi crosstool. Secara standar file hasil download akan ditempatkan pada direktori /home/downloads, direktori ini dapat diubah sesuai dengan yang diinginkan oleh pengembang. Variabel kedua mengindikasikan direktori yang digunakan sebagai tempat instalasi toolchain. Direktori ini juga dapat diubah sesuai dengan keinginan pengembang sistem. Variabel terakhir mengindikasikan pilihan bahasa yang bisa dilakukan kompilasi dengan menggunakan toolchain.

Versi dari paket yang akan diinstal untuk arsitektur ARM dapat dilihat pada baris perintah

eval `cat arm.dat gcc-4.1.0-glibc-2.3.2-tls.dat` sh all.sh –

notest

(69)

Selanjutnya dengan menggunakan hak akses sebagai root, kita buat direktori /opt/crosstool dan membuatnya menjadi writable untuk user.

sudo mkdir /opt/crosstool

sudo chown $USER /opt/crosstool

Setelah beberapa pengaturan selesai dilakukan, langkah terakhir adalah menjalankan file demo-arm.sh dengan mengetikkan perintah berikut.

sh demo-arm.sh

Proses instalasi crosstool akan berjalan secara otomatis dengan terkoneksi langsung ke internet. Beberapa paket-paket software yang dibutuhkan akan di-download secara langsung. Proses ini membutuhkan waktu yang relatif lama tergantung pada kecepatan koneksi internet dan spesifikasi hardware host yang digunakan.

Pada perancangan metode otomatis dengan menggunakan crosstool ini, penulis juga menemukan berbagai macam pesan kesalahan yang serupa dengan pesan kesalahan pada saat perancangan secara manual sehingga proses instalasi pun gagal dan tidak dapat dilanjutkan.

3. Metode Implementasi Secara Otomatis Menggunakan BuildRoot

(70)

dikembangkan berikut paket-paket software yang akan diinstal. Proses instalasi buildroot dapat dilakukan dengan dua cara yakni secara online maupun secara offline, tetapi antara keduanya sama-sama memerlukan koneksi internet dengan stabilitas yang cukup tinggi untuk melakukan download paket-paket software yang dibutuhkan. Dalam penelitian ini, penulis melakukan instalasi buildroot secara online.

Penulis menggunakan direktori ikhwan-project pada home directory sebagai direktori instalasi buildroot. Sebelum melakukan instalasi buildroot, terlebih dahulu kita melakukan ekstraksi file buildroot yang telah di-download dengan mengetikkan perintah.

erwin@erwin-laptop:~$ cd ikhwan-project/

erwin@erwin-laptop:~/ikhwan-project$ tar xvzf buildroot-2009.02.tar.gz

erwin@erwin-laptop:~/ikhwan-project$ cd buildroot-2009.02/

Host yang digunakan harus dipastikan telah terinstalasi paket library libncurses5-dev. Jika paket tersebut belum terinstal, kita dapat melakukan

instalasi dengan mengetikkan perintah

erwin@erwin-laptop:~$ sudo apt-get install libncurses5-dev

Langkah awal yang harus dilakukan dalam proses instalasi buildroot adalah melakukan konfigurasi untuk menentukan jenis arsitektur target, fitur-fitur sistem serta paket-paket aplikasi yang akan diaplikasikan pada target system. Perintah yang digunakan untuk melakukan konfigurasi adalah

erwin@erwin-laptop:~/ikhwan-project/buildroot-2009.02$ make menuconfig

(71)

Checking build system dependencies:

BUILDROOT_DL_DIR clean: Ok

CC clean: Ok

CXX clean: Ok

CPP clean: Ok

CFLAGS clean: Ok

INCLUDES clean: Ok

CXXFLAGS clean: Ok

which installed: Ok

sed works: Ok (/bin/sed)

GNU make version '3.81': Ok

C compiler '/usr/bin/gcc'

C compiler version '4.3.3': Ok

C++ compiler '/usr/bin/g++'

C++ compiler version '4.3.3': Ok

awk installed: Ok

bash installed: Ok

bison installed: Ok

flex installed: Ok

gettext installed: FALSE

You must install 'gettext' on your build machine

Dari pesan kesalahan yang muncul tersebut diketahui bahwa pada host belum terinstal aplikasi gettext yang ditandai dengan kondisi FALSE. Masalah tersebut dapat diselesaikan dengan melakukan instalasi aplikasi yang dimaksud.

erwin@erwin-laptop:~$ sudo apt-get install gettext

Proses konfigurasi dapat dilanjutkan dengan mengetikkan kembali perintah erwin@erwin-laptop:~/ikhwan-project/buildroot-2009.02$ make

menuconfig

(72)
[image:72.595.139.507.85.348.2]

Gambar 23. Jendela utama konfigurasi buildroot

Beberapa hal utama yang harus diatur pada proses konfigurasi buildroot ini adalah :

a. Jenis dan variant arsitektur target, b. Fitur toolchain,

c. Paket-paket aplikasi yang akan diinstal,

(73)
[image:73.595.174.487.85.231.2]

Gambar 24. Target architecture

Sedangkan pemilihan variant dari jenis arsitektur yang telah ditentukan melalui menu Target Architecture Variant sehingga ditampilkan beberapa pilihan variant untuk jenis arsitektur tertentu seperti ditunjukkan gambar 25.

Gambar 25. Target architecture variant

[image:73.595.169.492.378.534.2]
(74)
[image:74.595.171.473.93.384.2]

Gambar 26. Fitur-fitur Toolchain

(75)

Gambar 27. Package selection for the target

Tahapan konfigurasi selanjutnya adalah konfigurasi filesystem untuk target dan pemilihan jenis bootloader yang akan diterapkan pada target. Pada embedded pc CSB625, bootloader yang digunakan adalah Micromonitor sedangkan secara standar untuk arsitektur ARM, bootloader yang digunakan adalah U-boot. Dengan adanya perbedaan ini, maka harus dilakukan proses patching pada buildroot agar mendukung bootloader Micromonitor. Proses patch dilakukan dengan menggunakan kode sebagai berikut.

diff -purN buildroot/target/Config.in

buildroot-umon/target/Config.in

--- buildroot/target/Config.in 2008-03-31 00:15:26.000000000 -0700

+++ buildroot-umon/target/Config.in 2008-03-31

22:22:09.000000000 -0700

[image:75.595.177.470.124.396.2]
(76)

source "target/powerpc/yaboot/Config.in" source "target/u-boot/Config.in"

+source "target/umon/Config.in" endmenu

menu "Kernel"

diff -purN buildroot/target/Makefile.in

buildroot-umon/target/Makefile.in

--- buildroot/target/Makefile.in 2008-03-31 00:15:26.000000000 -0700

+++ buildroot-umon/target/Makefile.in 2008-03-31 22:22:30.000000000 -0700

@@ -15,6 +15,10 @@ ifeq ($(strip $(BR2_TARGET_UBOOT)),y) include target/u-boot/Makefile.in

endif

+ifeq ($(strip $(BR2_TARGET_UMON)),y) +include target/umon/Makefile.in +endif

+

# and finally build the filesystems/tarballs include target/*/*.mk

diff -purN buildroot/target/umon/Config.in

buildroot-umon/target/umon/Config.in

--- buildroot/target/umon/Config.in 1969-12-31

16:00:00.000000000 -0800

+++ buildroot-umon/target/umon/Config.in 2008-03-31

22:18:49.000000000 -0700 @@ -0,0 +1,20 @@

+config BR2_TARGET_UMON

+ bool "Micromonitor Boot Loader" + default n

+ help

+ Build uMon bootloader. +

+config BR2_TARGET_UMON_PORT + string "port name"

+ depends on BR2_TARGET_UMON + default "$(BOARD_NAME)" + help

+ uMon port name. This is the name of the directory under umon_ports.

+

+config BR2_TARGET_UMON_CUSTOM_PATCH + string "custom patch"

+ depends on BR2_TARGET_UMON + help

+ If your board requires a custom patch, add the path to the file here.

+ Most users may leave this empty. +

diff -purN buildroot/target/umon/Makefile.in

buildroot-umon/target/umon/Makefile.in

--- buildroot/target/umon/Makefile.in 1969-12-31 16:00:00.000000000 -0800

+++ buildroot-umon/target/umon/Makefile.in 2008-03-31 22:18:49.000000000 -0700

(77)

Gambar

Gambar 1. Blok Diagram Embedded PC
Gambar 2. Blok Diagram Cogent CSB625
Gambar 3. Prosesor Intel PXA255
Gambar 4. Blok Diagram Cogent CSB925
+7

Referensi

Dokumen terkait

Atas dasar itu lah penulis melakukan penelitian yang berjudul Dampak Praktek Internet financial reporting terhadap cost of equity capital perusahaan manufaktur di

Dengan demikian subyek SIS mampu memahami masalah secara langsung (direct) dan spontan segera, berlangsung pada saat membaca soal. Sehingga subyek SIS dalam

Dengan demikian apabila terjadi perubahan pada nilai kanan batasan (misalkan kapasitas mesin B dinaikkan dari 15 jam menjadi 16 jam dan menurut penjelasan di atas.. keuntungan akan

Tetapi juga perlu diperhatikan bahwa selang waktu sejak terjadinya gempa sampai terjadi tsunami di Kota Meulaboh sangat singkat (kurang dari 15 menit), sehingga

Penelitian ini menggunakan metode penelitian kausal yaitu penelitian yang digunakan untuk menguji hipotesis tentang pengaruh antara satu atau lebih variabel (variabel

1.1 Unit kompetensi ini harus diujikan secara konsisten pada seluruh elemen kompetensi dan dilaksanakan pada situasi pekerjaan yang sebenarnya di tempat kerja

Lampiran 17 Struktur File kode_pos Lampiran 18 Struktur File pemohon Lampiran 19 Struktur File jalur Lampiran 20 Struktur File kawasan Lampiran 21 Struktur File jenis_reklame

Tujuan dari penelitian ini adalah merancang media pembelajaran alat musik pianika yang dapat digunakan sebagai alternatif pembelajaran tanpa harus memiliki alat musik pianika