カーネル書き換え
N-Cardでは kernelの機能追加/変更したものを 比較的容易にFlash-ROMに書き込むことができます。
tftpサーバの準備
N-CardのROMモニターは tftpクライアントの機能を有しており、 tftpプロトコルを使用しネットワーク経由でカーネルをダウンロード することができます。 tftp以外のダウンロード機能は有していませんので、 N-Cardでカーネルを書き換えるにはtftpサーバが必ず必要です。
tftpサーバはLinux等のUnixマシンでも、Windowsマシンでも 動作可能ですが、kernelのクロスコンパイルも必要なので、 Linuxマシンで準備することをお勧めします。 以下、Linuxマシンにtftpサーバを準備する方法について説明します。
tftpサーバインストール
tftpサーバのRPMが例えば ftp://ftp.sfc.wide.ad.jp/pub/Linux/Fedora/1/i386/os/Fedora/RPMS/tftp-server-0.33-2.i386.rpm からインストールできます。 turbolinux-10 desktopの場合: cuickinサービスから tftp-0.17-23.i586.rpmをダウンロードできます。
tftpサーバの設定
tftpサーバは ファイルをネットワーク上の不特定多数に公開しますので、 tftpサーバがアクセスできるディレクトリは必要最小限にすることが 重要です。 これは -sオプションで chrootすることによって行えます。 以下に /etc/xinet.d/tftp の例を示します。
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -vv -s /home/nari/01proj/V33/
log_on_success += DURATION USERID
log_on_failure += USERID
nice = 10
}
/etc/xinet.d/tftpを変更したら、
$ /etc/rc.d/init/xinetd restartなどとして xinetdを再起動します。
kernelイメージの準備
書き込むカーネルのイメージを準備します。 いろいろな方法がありますが、 基本的には次のような手順になると思います。
- 開発環境の作成
- ソースの取得/修正
- テスト
動作の確認
Flash-ROMに書き込む前に、 RAMにダウンロードし期待通り動くかどうかチェックします。 loadコマンドでダウンロードし、 bootコマンドで起動させます。 無事にLinuxが立上り、期待通りの動作をすれば成功です。 loadとbootを一度に行う lbootコマンドもあります。
Flash-ROMへの書き込み
確認できたら、改めて loadコマンドでkernelイメージを RAMにダウンロードし、 kernel_writeコマンドで書き込みます。 kernel_writeコマンドは圧縮を行うため 1分程度待たされますが、 その後 Flash-ROMに書き込みます。