Sat 08/23, 2008

Web Caster 7000 (2) [Computer and Networking ]

7/19 の記事の続き。

シリアルコンソールで内部にアクセスできたので、次は OpenRG の開発環境を用意してみる。同じ MCU で OpenRG を採用しているらしい LinkSysWRV54G 用のものが GPL に基づいて公開されているので、これを使ってみた。Technical Support » GPL Code Center から wrv54g-v203.tar.bz2 をいただいてきたが、他のもっと新しいバージョンでも良い筈だ。この中にある toolchain.tgz を取り出して展開する。

# tar xvzf toolchain.tgz -C /
これで /usr/local/openrg ディレクトリに tool が用意された。この toolchain は Linux 用だが、手元では NetBSD-3.1/i386 の Linux 互換モードで使用している。

プログラミングの始めは "Hello, World" から。

$ cat hello.c
#include <stdio.h>
main( int argc, char *argv[] ) { printf("Hello world!\n"); }
$ export PATH=$PATH:/usr/local/openrg/armsaeb/bin
$ armv4b-hardhat-linux-gcc hello.c -o hello
$ file hello
hello: ELF 32-bit MSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), not stripped
$ 
こうして出来上がったプログラムを USB メモリにコピーして WebCaster 7000 に挿し、シリアルコンソールから shell に移って実行する。
OpenRG> shell
Returned 0
OpenRG>

BusyBox v0.50 (2005.03.31-09:36+0000) Built-in shell (lash)
Enter 'help' for a list of built-in commands.

/ # df
Filesystem           1k-blocks      Used Available Use% Mounted on
rootfs                   15863       520     14524   3% /
/dev/ram0                15863       520     14524   3% /
cramfs                   12204     12204         0 100% /mnt/cramfs
/dev/mtdblock1            7040       644      6396   9% /mnt/flash
/ # cat /proc/mounts
rootfs / rootfs rw 0 0
/dev/root / ext2 rw 0 0
cramfs /mnt/cramfs cramfs ro 0 0
/proc /proc proc rw 0 0
usbfs /proc/bus/usb usbfs rw 0 0
/dev/sda1 /home/httpd/html/A vfat rw,sync,nosuid,nodev 0 0
/dev/mtdblock1 /mnt/flash jffs2 rw 0 0
/ # cd /home/httpd/html/A
/home/httpd/html/A # ls
hello    hello.c
/home/httpd/html/A # ./hello
Hello world!
/home/httpd/html/A #
と、まあこんな感じ。USB メモリは共有で見えるようになっていても shell からの df コマンドでは見えない。/proc/mounts を見ると /dev/sda1 が /home/httpd/html/A にマウントされていることが判るから、そこにある hello を実行している。

この辺の手順は「どこへいこう - 2004年9月02日 翻訳:Linksys NSLU2をハッキングする-パート2」などを参考にさせていただいた。

# OpenRG のブートローダでは tftp で取得したプログラムを RAM 上に置くことができない。このため、OS の入れ替え実験はちょっと現状では敷居が高い。

Posted by masato at 01:34 PM
このエントリーのトラックバックURL: http://bird.dip.jp/cgi-bin/mt/mt-tb.cgi/1621
コメントする

おそらく携帯電話等からは投稿できません。日本語文字列を含まないコメントやトラックバック、および当サイトへの言及を含まないトラックバックは御遠慮いただいております。また、90日以上経過した記事へのコメントはできません。










名前、アドレスを登録しますか?