Catatan
AbstrakSebelumnya JSN menggunakan sistem operasi Intel Platform X, SOS, dan TinyOS. Kini Platform X dan SOS tidak dikembangkan lagi, sehingga banyak peneliti menggunakan TinyOS. Pada akhir pengguna TinyOS pada platform Imote2 menemukan banyak keterbatasan seperti penerapan pada routing yang complex. Oleh karena itu komunitas Embedded Linux pengembangkan embedded Linux untuk platform Imote2. Pada makalah ini dibahas secara rinci tahap untuk mengembed Linux pada target yaitu perangkat JSN radio sensorboard platform Imote2. Host merupakan Linux operating system. Pengembedan meliputi 3 komponen utama yaitu bootloader, Linux kernel, dan filesystem. Embed dilakukan dengan proses flashing pada JTAG interface menggunakan software OpenOCD. Setelah proses embed, konfigurasi pada target melalui koneksi serial. Konfigurasi meliputi pengaktifkan alamat IP, SSHD, dan radio secara otomatis. Terakhir dibandingkan performansi target yang menggunakan IEEE 802.11 WLAN dan IEEE 802.15.4 ZigBee sebagai media transmisi. Hasilnya penggunaan IEEE 802.11 WLAN lebih boros terhadap memory dan daya listrik. Kata Kunci: JSN, Imote2, Embedded Linux, ZigBee, WLAN, JTAG, OpenOCD. PendahuluanSecara keseluruhan makalah ini terdiri dari 4 bagian. Bagian pertama âPendahuluanâ menjelaskan sekilas mengenai jaringan sensor nirkabel (JSN), beberapa penelitian yang telah dilakukan pada bidang JSN, dan hal yang akan dibahas pada makalah. Bagian kedua âIntel Mote 2 (Imote2)â menjelaskan perangkat JSN dengan platform Imote2. Pada bagian ini dapat dilihat bentuk fisik dari alat dan disebutkan beberapa sistem operasi yang diterapkan pada platform ini. Pada bagian ketiga âImplementasi Embedded Linuxâ dituliskan langkah-langkah untuk instalasi sistem operasi Linux pada platform Imote2. Bagian terakhir adalah âSimpulanâ. JSN atau lebih dikenal dengan wireless sensor network (WSN) merupakan perangkat sensor yang saling terkomunikasi secara nirkabel. Perangkat-perangkat ini di letakkan pada daerah yang luas secara geografis dan membentuk jaringan sensor. JSN ini tidak harus terhubung dengan Internet. Tugas utama dari sensor ini sensor ini adalah mengumpulkan informasi dari lingkungan sekitar, setelah itu mengirimkan informasi tersebut ke perangkat pengguna melalui jaringan sensor. Perangkat ini telah diterapkan di bidang sipil, medis, dan lain-lain [1]. Adanya JSN berdasarkan adanya banyak keterbatasan, seperti keterbatasan daya dan keterbatasan kemampuan kanal nirkabel. Oleh karena itu sensor nirkabel tersebut membentuk suatu jaringan disebut JSN. Selain diperlukan penempatan sensor secara strategis (menanggulangi coverage hole) diperlukan juga upaya untuk menghemat energi dan waktu dalam memberian informasi secara kontinyu karena sumber daya pada JSN terbatas [2]. Gambaran JSN dapat dilihat pada Gambar 1. Pada JSN telah terdapat beberapa penelitian sebelumnya seperti penelitian [4] yang menggunakan banyak perangkat JSN camera untuk menangkap citra yang sama. Perangkat tersebut ditaruh pada posisi yang berbeda namun mengarah pada obyek yang sama. Dengan menggabungkan citra yang ditangkap pada sudut yang berbeda dapat meningkatkan kualitas citra. Pada akhir penelitian diusulkan suatu bentuk JSN yang bekerja pada konsep ini. Penelitian [5] mengarah pada pemodelan JSN camera dengan konsumsi daya rendah dengan menetapkan kualitas citra. Pada penelitian tersebut menyimpulkan beberapa point yang perlu diperhatikan pada pemodelan JSN camera, yaitu (i) metode pemilihan kamera (ii) metode dan strategi kompresi citra (iii) metode transmisi citra. Tetapi pada makalah ini tidak akan membahas JSN pada ruang lingkup tersebut. Tidak seperti pada [4] dan [5] penelitian ini tentang embedded Linux pada JSN, seperti yang telah dilakukan oleh Peneliti [6], [7], dan [11]. Pada [6] dan [7], performansi platform Imote2 pada jaringan sensor nirkabel masing-masing menggunakan jaringan IEEE 802,15.4 Zigbee dan IEEE 802.11 WLAN. Sedangkan model implementasi embedded linux pada JSN, kedua penelitian ini menggunakan skema yang sama yaitu (i) menghubungkan perangkat JSN multimedia ke komputer (ii) instalasi bootloader, Linux kernel dan filesystem (iii) mengatur jaringan internet protocol (IP) dan secure shell daemon (SSHD) (iv) mengaktifkan radio (v) mengukur konsumsi memory dan daya listrik. Setelah hal tersebut dilakukan baru kita dapat menambahkan beberapa fitur, seperti menangkap citra dengan camera sensor board IMB400 yang terlihat pada [8] dan [9]. Namun pada makalah ini tidak membahas sejauh itu, tetapi membahas mengenai embedded Linux pada radio sensorboard platform Imote2 dengan rinci. Intel Mote 2 (Imote2)Imote2 merupakan platform pada perangkat JSN yang dikembangkan oleh Intel Research pada bagian penelitian Platform X. Perangkat ini dibangun dengan konsumsi daya listrik yang rendah, dengan processor PXA271 XScale CPU, dan terintegrasi pada IEEE 802.15.4 ZigBee [10]. Processor ini (Intel Xscale processor PXA271) dapat beroperasi pada tegangan rendah (0.85V) dan frekuensi 13MHz hingga 104MHz. Frekuensi dapat dinaikkan hingga 416MHz dengan mengatur tegangan [11]. Secara umum Imote2 terdiri dari 4 bagian seperti terlihat pada Gambar 2. PXA271 terdiri dari 3 chip (i) processornya sendiri (ii) 32MB SDRAM (iii) 32MB flash. Radio yang digunakan adalah TI CC2420 yang berdasarkan IEEE 802.15.4 ZigBee, dimana perangkat dengan standar ini pada PHY dan MAC layer beroperasi pada daya rendah dan radio jarak pendek, disasarkan pada control dan monitoring applications. CC2420 ini juga mendukung data rate 250kbps dengan 16 channel pada frekuensi 2.4GHz [11]. Sebelumnya Imote2 bekerja pada Intel Platform X. Setelah Imote2 pindah ke Crossbow, Intel Platform X tidak lagi dikembangkan karena Crossbow mengeluarkan sistem operasinya sendiri. Sistem operasi yang kebanyakan dikembangkan oleh komunitas seperti SOS. Namun SOS berhenti dikembangkan pada tahun 2008. Sekarang ini yang masih terlihat adalah TinyOS dan Linux [11]. Sebelum adanya Embedded Linux, sistem operasi yang digunakan pada Imote2 adalah TinyOS. Kebanyakan publikasi di web menggunakan TinyOS seperti pada [10], [13], dan [14]. Sekarang dikembangkan Embedded Linux karena ditemukan batasan-batasan pada TinyOS seperti complex-routing pada suatu topologi JSN. Komunitas Embedded Linux melihat sistem operasi Embedded Linux pada Imote2 dapat mengatasi keterbatasan tersebut. Namun Embedded Linux pada Imote2 masih bersifat baru dan sedang dikembangkan [8]. Implementasi Embedded LinuxPerangkat yang digunakan sama seperti yang digunakan pada [6-9] dan [13-15], merupakan radio sensorboard multimedia platform Imote2. Memiliki (i) 256KB SRAM memory (ii) 32MB flash (iii) 32MB SDRAM (iv) radio terintegrasi dengan 802.15.4 (v) radio optional dari SDIO dan UART (vi) 2.4GHz antena (vii) basic dan advanced connectors seperti 3xUART, I2C, 2xSPI, SDIO, I2S, AC97 audio, USB host, I/F camera, mini USB GPIO. Arsitektur perangkat tersebut dapat dilihat pada Gambar 3. Pada bagian ini akan dibahas lebih rinci teknis mengembed Linux pada target yaitu radio sensorboard multimedia platform Imote2 dengan sumber utama [11]. Host adalah Linux OS. Distro Linux dapat digunakan yang mana saja, namun perintah-perintah pada makalah ini berbasis Ubuntu atau Debian. Secara ringkas tahapanya dapat dilihat pada Gambar. 4. Penelitian [6] dan [7] terutama menyiapkan cross compiler dan chip debugger. Perintah-perintah yang dimasukkan berdasarkan [13]. Tetapi disini tidak memakai TinyOS. Cross compiler yang digunakan berupa cross compiler yang telah dicompile yaitu GCC dan GLIBC dari http://sourceforge.net/projects/imote2-linux/files/imote2-tools-linux. Tetap lebih baik bila mengcompile cross compiler sendiri agar lebih sesuai dengan kebutuhan perankgat. Bila file terkomproesi dalam bentuk tape archive gunzip maka dapat diextract dengan perintah berikut: tar xzvf /lokasi-file/nama-file.tar.gz Bila dalam bentuk tape archive bunzip2 maka dapat diextract dengan perintah berikut: tar xjvf /lokasi-file/nama-file.tar.bz2 Seandainya pada directory tersebut tidak diberikan akses penuh maka kondisi read, write, dan execute perlu diberi angka biner â1â. Bila memberi akses penuh maka rwx (read write execute) adalah â111(2)â merupakan â7(10)â. Maka perintahnya: chmod âR 777 /lokasi-directory/namadirectory â7â pertama adalah memberi akses rwx pada adminstrator, yang kedua kepada user, dan ketiga untuk group, sedangkan â-Râ agar berlaku terhadap semua isi pada directory tersebut. Penggunaan cross compiler ini akan sekaligus dibahas pada saat membentuk Linux kernel. Pada makalah ini langkah-langkahnya adalah sebagai berikut (merupaka satu directory dengan cross compiler yang telah didownload): tar xzvf linux-gcc-4.1.2-arm-xscale-linux-gnu-glibc-2.3.3.tgz chmod âR 777 arm-xscale-linux-gnu Sebelum memulai sebaiknya mendownload dependencies yang diperlukan: apt-get install libncurses5-dev libusb-dev libftdi1 libftdi-dev ldconfig mtd-tools ssh Selanjutnya untuk Linux kernel digunakan dari http://www.kernel.org/pub/linux/kernel versi 2.6.29.1 rc 1.1 atau dapat âgitâ yang tersedia oleh komunitas. Bila diperlukan extract dan modifikasi hak akses Linux kernel tersebut. Setelah itu masuk ke directory dan atur cross compiler. Khusus untuk compiling Kernel, pada file bernama âMakefileâ terdapat baris âARCH=â dan âCROSS_COMPILE=â yang perlu dideklarasikan (masih kosong). Untuk mendeklarasikan secara universal dapat dilihat perintah berikut: cd /lokasi-directory-Linux-kernel export ARCH=arm export CROSS_COMPILE=/lokasi-directory-cross-compiler/lokasi-bin/nama-cross-compiler- Pada makalah ini, perintahnya adalah sebagai berikut (Linux kernel dan cross compiler pada satu directory): tar xzvf linux-2.6.29.1.tar.gz chmod âR 777 linux-2.6.29.1 cd linux-2.6.29.1 export ARCH=arm export CROSS_COMPILE= ../arm-xscale-linux-gnu/bin/arm-xscale-linux-gnu- Dengan perintah tersebut maka ditentukan platform adalah âarmâ (merupakan platform unutuk perangkat-perangkat berukuran kecil) dan menggunana cross compiler âarm-xscale-linux-gnuâ, directory âarm-xscale-linux-gnu/binâ terdapat file âarm-xscale-linux-gnu-gccâ, âarm-xscale-linux-gnu-g++â, dan lain-lain. Untuk mengatur apa saja yang dicompile dapat dilihat pada file âMakefileâ. Untuk mempermudah digunakan make menuconfig. Maka diperlukan âlibncurses5-devâ. Selanjutnya diperlukan untuk copy file âimote2-linux_defconfigâ ke directory /root menjadi nama â.configâ. cp /lokasi-directory-Linux-kernel/lokasi-file-imote2-linux_defconfig/imote2-linux_defconfig /root/.config Pada makalah ini perintahnya (masih pada directory Linux kernel): cp arch/arm/configs/imote2-linux_defconfig /root/.config Untuk compile kernel: make menuconfig Disini dapat diatur apa saja yang ingin di instal. make jenis-image Jenis image biasanya berupa zImage atau bzImage. Pada makalah ini: make zImage Selanjutnya membuat module: make module make INSTALL_MOD_PATH=$PWD/modules modules_install Perintah ini akan menginstalasi module pada directory bernama âmodulesâ. Setelah selesai compile Linux kernel adalah compile filesystem. Source dari filesystem yang digunakan dari http://sourceforge.net/projects/imote2-linux/files/imote2-rootfs. Dibutuhkan juga mkfs.jffs2 tool yang terdapat pada mtd-tools. JFFS2 (Journaled Flash File System 2) merupakan file system yang didesain untuk flash file perangkat pada embedded system. Setelah directory file system di extract, modules yang telah dicompile pada Linux-kernel dicopy pada directory ini. Untuk membuat 16MB filesystem: mkfs.jffs2 --squash-uid -r ./linux-rootfs -o rootfs.jffs2 -e 0x20000 --pad=0x01000000 Untuk membuat 32MB filesystem: mkfs.jffs2 --squash-uid -r ./linux-rootfs -o rootfs.jffs2 -e 0x20000 --pad=0x01DC0000 Bahan terakhir yang dibutuhkan setelah Linux kernel dan filesystem adalah bootloader. Pada makalah ini, bootloader yang digunakan tersedia pada http://sourceforge.net/projects/imote2-linux/files/blob-im2. Bila bahan sudah tersedia maka proses selanjutnya adalah embed pada radio sensorboard platform Imote2. Seperti pada penelitian [6] dan [7] langkah-langkah untuk flashing, pada makalah ini langkah-langkah flashing berdasarkan tutorial [14] dengan catatan tidak mengikuti langkah-langkah yang menggunakan TinyOS. Untuk flashing perlu diinstalasi driver JTAG interface FTDI. Package yang diperlukan pada host adalah libusb-dev, libftdi1, libftdi-dev, dan ldconfig. OpenOCD yang digunakan tersedia pada http://downloads.sourceforge.net/project/openocd. Langkah-langkah untuk instalasi OpenOCD sebagai berikut (didalam directory OpenOCD yang telah diextract): ./configure --enable-ft2232_libftdi make make install chmod âR 777 /lokasi-openocd-yang-telah-diinstalasi openocd -f /lokasi-file-configuration -f /lokasi-file-configurationintelmote Pada makalah ini langkah-langkahnya sebagai berikut: tar xjvf openocd-0.4.0-rc1.tar.bz2 cd openocd-0.4.0-rc1 ./configure --enable-ft2232_libftdi make make install chmod âR 777 /usr/local/bin/openocdHubungkan kabel USB seperti pada gambar 4. (b). Perintah untuk mengkoneksikan target dengan host: openocd -f /lokasi/file/configuration âf /lokasi/file/ configuration-intelmote Pada makalah ini untuk embed bootloader, Linux kernel, dan filesystem seperti berikut (pada directory yang berisi file bootloader, directory Linux kernel, dan directory filesystem): openocd âf /usr/local/share/openocd/scripts/interface/ jtagkey.cfg âf board/crossbow_tech_IMote2.cfg telnet localhost 4444 reset halt flash protect 0 0 258 off flash erase_sector 0 0 258 flash write_image blob-im2 0x0 bin flash write_image linux-2.6.29.1/arch/arm/boot/zImage /zImage 0x00040000 bin flash write_image rootfs.jffs2 0x00240000 bin Perintah âreset haltâ agar target dalam keadaan halted, perintah âflash protect 0 0 258 offâ untuk menghilangkan protect, perintah âflash erase_sector 0 0 258â untuk menghapus isi pada sector tersebut (menghapus isi), dan perintah âflash write source destinationâ untuk mengisi target dari host. Jika semua langkah-langkah tersebut telah dilaksanakan maka Linux telah berhasil diembed. Terakhir adalah konfigurasi pada target melalui koneksi serial, seperti pada [6], [7], dan [15]. Sebelum lanjut hubungan kabel USB seperti Gambar 5. Applikasi serial terminal pada host dapat digunakan Putty, GTKterm, dan masih banyak aplikasi lainnya. Untuk koneksi serial dari host ke target diperlukan pengaturan sebagai berikut:
Alamat IP yang digunakan adalah 192.168.99.101/24. Untuk mengaktifkan alamat IP dan SSHD secara otomatis, dan mengganti alamat IP, langkah-langkahnya sebagai berikut: ln -s /etc/init.d/networking /etc/rc2.d/S10networking ln -s /etc/init.d/sshd /etc/rc2.d/S11sshd ln -s /etc/init.d/networking /etc/rc5.d/S10networking ln -s /etc/init.d/sshd /etc/rc5.d/S11sshd vi /etc/init.d/networking (ganti IP address) vi /etc/network/interfaces (ganti IP address) Selanjutnya membuat script agar radio hidup secara otomatis. Scriptnya tersimpan pada directory â/root/tosmacâ dengan nama loaddriver, dan isi loaddriver sebagai berikut: #!/bin/sh insmod /lib/modules/2.6.29.1_r1.1/kernel/arch/arm/mach-pxa/ssp.ko insmod /lib/modules/2.6.29.1_r1.1/kernel/drivers/tosmac/tos_mac.lo mknod /dev/tosmac c 240 0 Maka untuk mengaktifkan radio dan dapat mengirim data secara otomatis langkah-langkahnya sebagai berikut: ln âs /root/tosmac/loaddriver /etc/rc2.d/S12loaddriver ln âs /root/tosmac/loaddriver /etc/rc5.d/S12loaddriver ln âs /root/tosmac/CntToLeds /etc/rc2.d/S14Transmitter (pengirim data otomatis) ln âs /root/tosmac/CntToLeds /etc/rc5.d/S14Transmitter (pengirim data otomatis) Tahap embed dan konfigurasi telah selesai. Berbeda dengan penelitian [6] yang menggunakan transmisi radio IEEE 802.15.4 ZigBee, penelitian [7] menggunakan transmisi radio IEEE 802.11 WLAN. Pada [7] dibuatkan daughter board yang akan terkoneksi dengan WLAN USB TP-LINK seperti Gambar 6. Pertama perlu diaktifkan USB host support dengan menambahkan script berikut pada file linux-2.6.29.1/arch/arm/mach-pxa/imote2.c. Scriptnya sebagai berikut [7]: //baris pertama #include //isi /* * Configure USB Host (OHCI) * For Imote2 the following configuration is used: * USB Port 1 is used as USB Host * USB Port 2 is used as USB Gadget (as default for Imote2) */ static int imote2_ohci_init(struct device *dev) { return 0; } static struct pxaohci_platform_data imote2_ohci_platform_data = { .port_mode = PMM_NPS_MODE, .init = imote2_ohci_init, .flags = ENABLE_PORT1 | NO_OC_PROTECTION, .port_mode = PMM_PERPORT_MODE, .power_budget = 150, //300 }; //baris terakhir pxa_set_ohci_info(&imote2_ohci_platform_data); Pada âmake menuconfigâ dikonfigurasi sebagai berikut [7]: 1. Konfigurasi modul USB-Host. Device Drivers >USB support >Support for Host-side USB <*> >USB device filesystem [*] >USB device class-device (DEPRECATED)[*] >USB Monitor<*> >OHCI HCD support<*> 2. Konfigurasi modul Wireless LAN 802.11. Networking support >wireless >Improved wireless configuration API (M) >nl80211 new netlink interface support [*] >Wireless extensions sysfs files [*] >Common routines for IEEE802.11 drivers (M) >Generic IEEE 802.11 Networking (M) >Enable LED triggers [*] Device Drivers >Network device Support >Wireless LAN >Wireless LAN (IEEE 802.11) [*] 3Konfigurasi modul driver TP-Link WN-321G (rt73). Device Drivers >Network Device Support>Wireless LAN >Ralink driver support [M] >Ralink rt2501/rt73 (usb0 support) [M] >Ralink debug output [*] Selanjutnya mengulang tahap-tahap dari compile Linux kernel dan filesystem hingga flashing dan konfigurasi. Pada penelitian [7] menggunakan TL-WN321G (TP-LINK), driver versi Linux dapat didownload pada situs resminya. Langkah-langkah instalasinya sebagai berikut: tar xvf TpLink_TL_WN321G_in_Linux.tar cd TpLink_TL_WN321G_in_Linux/Module/ gedit Makefile
ifeq ($(PLATFORM),EMBEDDED) LINUX_SRC=../linux-2.6.29.1 endif #export ARCH=arm #export CROSS_COMPILE=../arm-xscale-linux-gnu/bin/arm-xscale-linux-gnu- #make all Proses compile akan menghasilkan sebuah file yang bernama ârt73.koâ yang akan digunakan sebagai module untuk driver Wireless Lan 802.11. Kemudian copy data tersebut pada target dengan perintah berikut: scp rt73.ko [email protected]:/root rt73.ko Selanjutnya pada target dibuat script agar radio aktif secara otomatis berdasarkan langkah-langkah dari [7]. ssh âl root 192.168.99.101 vi /etc/rc2.d/S50StartupScript Scriptnya seperti berikut: #********************************************************* #********S50StartupScipt File***************************** #********This file configures Wlan on Imote2************** #install driver cd /root/ insmod rt73.ko echo -n 1 > /sys/bus/usb/devices/1-1/bConfigurationValue #Configure Wlan sleep 10 ifconfig rausb0 up iwconfig rausb0 essid imote2 iwconfig rausb0 mode ad-hoc ip link set rausb0 up ifconfig rausb0 inet 192.168.1.2 ifconfig rausb0 netmask 255.255.255.0 ifconfig rausb0 gateway 192.168.1.1 #********EOF S50StartupScript File************************* chmod 777 S50StartupScript Tahap konfigurasi bila menggunakan IEEE 802.11 WLAN telah selesai. Jika dibandingkan kedua penelitian tersebut, pada [7] lebih boros baik pada konsumsi memory maupun konsumsi daya listrik dibanding [6]. Pada penelitian [7] memory yang dikonsumsi adalah 16.9MB dari 29.8MB, sedangkan pada [6] hanya dikonsumsi 13.6MB dari 29.8MB. Konsumsi daya listrik dapat dilihat pada Gambar 7. SimpulanDari makalah ini dapat ditarik kesimpulan sebagai berikut:
Referensi
0 Comments
Leave a Reply. |
Archives
August 2022
Categories
All
source code
old source code Get any amount of 0FP0EXP tokens to stop automatic JavaScript Mining or get 10 0FP0EXP tokens to remove this completely. get 30 0FP0EXP Token to remove this paypal donation. Get 40 0FP0EXP Token to remove this donation notification! get 20 0FP0EXP Token to remove my personal ADS. Get 50 0FP0EXP Token to remove my NFTS advertisements! |