Windows CE + NetBSD でブロードバンドルータ

クロスコンパイラの作成

NetBSD は本当によくできていて、クロスコンパイルなど誰でも朝飯前に できてしまうので、本当に助かる。なんでもっと普及しないのか まったくもって不思議。ホビー目的にはもってこいである。

で、こんなに簡単。source を展開した top directory で、

# ./build.sh -m hpcmips -t -T /usr/cross

これでしばらくすれば、/usr/cross 以下にクロスコンパイル環境が できあがるというお手軽さなのである! Viva, NetBSD !

カーネルの作成

で、クロスコンパイル環境ができたら、今度はこれをつかって hpcmips 用 のカーネルをコンパイルするのだけれど、これまた簡単、簡単!! 要は、make の代わりに nbmake-hpcmips を使えばいいだけ!! Viva, NetBSD !

ディスクイメージの mount

# vnconfig vnd0 ./diskimg.8192
# newfs /dev/vnd0a
# mount /dev/vnd0a /mnt

ディスクイメージの作成

/mnt にマウントされたディスクイメージにお好みのアプリケーションや ライブラリを適当に追加していけばいいけれど、次の1つのファイルと 1つのリンクは、dynamic link library を link している場合には 必須。

/libexec/ld.so_elf
/usr/libexec/ld.so_elf -> /libexec/ld.so_elf

/usr/libexec/ld.so_elf がないと /usr/bin /usr/sbin 等の バイナリが実行できない。ちなみに /usr/pkg/libexec には いらないみたい。理由については良くわかっていない。

システム用データベース

kvm_mkdb dev_mkdb

ディスクイメージつき kernel の作成

# mipsel--netbsd-mdsetimage netbsd diskimg.8192

termcap の作成

Valid HTML 4.01! Valid CSS!