Posts tagged ‘Embedded linux’

Mei 26, 2010

Menstabilkan Board GESBC-9G20

Ethernet down di Sistem Linux GESBC-9G20

Ethernet down di Sistem Linux GESBC-9G20

Memang akan sangat menyenangkan saat melihat board embedded kita dapat menjalankan sistem Linux. Saat console mengeluarkan prompt, hati bersorak: “Horee!”. Semua aplikasi yang ada di sistem Linux dapat dijalankan dengan sempurna. Tapi, setelah ‘beberapa saat’ (saya tidak tahu pasti, berapa lama), link Ethernet down. Ini berarti semua aplikasi internet akan mati. Padahal itu esensial, Duh. Saya tidak tahu kapan dan bagaimana problem itu muncul. Jadi, sekarang yang perlu dilakukan adalah menstabilkan sistem: membangkitkan error secara repetitif (bilamana itu terjadi), mengisolirnya dan memperbaikinya. Hihihi, mumet dah…. Sampai saat ini saya masih belum menemukan solusinya, mohon kalau ada yang bisa membantu.

Formulasi masalahnya adalah link ethernet seringkali down dengan pesan:

[root@gesbc-ippbx /root]# eth0: link down
nfs: server 167.205.24.118 not responding, still trying
nfs: server 167.205.24.118 not responding, still trying

Kalau beruntung, link akan up dalam waktu yang tidak bisa ditentukan. Board yang digunakan adalah GESBC-9G20 yang menggunakan prosesor Atmel AT91SAM9G20, device driver ethernet controler menggunakan macb, dan ethernet physical menggunakan Davicom DM9161AEP. Root filesystem tersimpan di server NFS Puppy Linux 4.31, jadi sistem menggunakan filesystem NFS yang termouting sebagai root /.

read more »

Iklan
Mei 10, 2010

uImage dan Rootfs untuk AT91SAM9G20

Hari ini, saya mulai membuat image kernel (uImage) dan root filesystem untuk board GESBC9G20 dengan prosesor AT91SAM9G20.

Image kernel dibuat untuk diload di bootloader u-Boot (uImage). Versi kernel yang digunakan 2.6.27 dengan patch untuk platform prosesor AT91. Konfigurasi kernel menggunakan konfigurasi default untuk board AT91SAM9G20-EK.

Root filesystem berisi paket-paket software berikut: uClibc-0.9.30, busybox-1.12.2, hotplug scripts, udev-119, ncurses-5.3, openssl-0.9.27d, zlib-1.2.3, zaptel-1.4.12, asterisk-1.4.17 dan driver Etherbank untuk VoIP gateway yang kami kembangkan.

Untuk membuat image kernel dan root filesystem tersebut, environment software yang digunakan adalah crossbuilder. Ini environment berisi script-script bash (shell) untuk membuat toolchain, mengkompile dan linking program secara batch. Sejak tahun 2005, script diupdate terus untuk keperluan membangun sistem embedded dengan prosesor 32-bit baik x86, arm maupun mips. Dan sekarang untuk membangun ip-pbx di board AT91SAM9G20.

read more »

Mei 6, 2010

Memanfaatkan ARM_Thumb?

Sebenarnya sudah lama saya tahu tentang arm thumb ini sejak 4tahunan lalu saat bermain-main dengan single board TS-7200 yang menggunakan prosesor berbasis ARM920T dari Cirrus EP9302. Tapi, belum pernah mencobanya.

Thumb ini adalah fitur ekstensi dari prosesor ARM untuk bisa mengeksekusi instruksi 16-bit dari suatu program biner. Prosesor arm dengan nomor seri ditambahi ‘T’ akan mempunyai fitur ini, mulai dari ARM720t sampai generasi ARM1026 dan ARM feroceron. Program user yang dikompile dengan fitur thumb ini tentu akan memiliki ukuran biner yang lebih kecil, sehingga bisa disimpan ke storage yang berukuran kecil (misalnya flash NOR 4MB atau SPI flash 2MB). Dan tentu saja, ini akan menghemat memori jika program ini diload ke memori. Mmm, mungkin bisa dimanfaatkan nih…

Dan saya ingin mencobanya.

read more »

Januari 12, 2009

Embedded Network Storage

freeNAS live on ebox-2300

ebox-2300 with USB storage

FreeNAS live on ebox-2300

FreeNAS live on ebox-2300

There are two technologies on how to centralized data access storage to heterogeneous network clients (as network storage): (1) NAS (Network-Attached Storage) and (2) SAN (Storage Area Network). In this article (written in the middle of 2006), i will dig the possibility to implement these technologies on embedded platform as a sell-able product.

About NAS and SAN

There are two approach use in data storage server:

  1. NAS (Network-Attached Storage) as defined in wiki and here.
    NAS uses file-based protocols such as NFS or SMB/CIFS where it is clear that the storage is remote, and computers request a portion of an abstract file rather than a disk block.). A such project using this approach is FreeNAS.
  2. read more »

Agustus 15, 2008

Redboot, NFS dan TFTP

Dalam development aplikasi untuk board embedded, misalnya berbasis ARM9TDMI, dengan storage berupa flash, metode untuk mencoba aplikasi tersebut salah satunya adalah melalui network. Mencoba langsung dengan mendownload aplikasi tersebut ke flash akan sangat riskan, mengingat ketahanan/endurance flash (misalnya NAND) terhadap operasi penulisan sangat terbatas. Jadi, dengan loading aplikasi (dan kernel image) lewat network akan jauh lebih aman. Ketika sudah siap untuk diimplementasikan, aplikasi (dan kernel image) tersebut baru didownload ke flash.

Program yang didownload adalah image linux kernel (zImage) dan direktori root filesystem untuk board target. Di sini, hanya akan diuraikan penggunaan nfs dan tftp untuk board embedded dengan bootloader Redboot. (untuk bootloader lain seperti grub, lilo, u-boot bisa lihat dokumentasi linux, hehehe…).

Program yang akan didownload akan tersimpan di server. Redboot di board target mengenal download file menggunakan trivial ftp, sehingga tftp akan digunakan untuk download file zImage sedangkan untuk root filesystem digunakan NFS dengan memasukkan parameter nfsroot=. Sehingga di server harus dijalankan tftp daemon dan nfs-server daemon.

Download file kernel image

RedBoot> load -r -b 0x00218000 -h 192.168.78.178 zImage-2.4.26-ts9
Using default protocol (TFTP)
Raw file loaded 0x00218000-0x002fe8fb, assumed entry at 0x00218000

Use nfs-exported directory dari server

RedBoot> fis load zImage
RedBoot> exec -c  "console=ttyAM0,115200 ip=dhcp nfsroot=192.168.78.178:/data panic=3s"

Option panic=3s membuat sistem akan reboot setelah 3s saat kernel panic.

Jadi, deh. Lingkung development aplikasi untuk embedded board telah siap.