ソースコードの入手
- 以下のファイルが得られる
- CHD2WLANU_GPL_R400b7.tgz
- GPL_list.txt
- GPL_readme.txt
- opt.tgz
ビルドの準備
以下の作業はx86アーキテクチャのdebian sarge上で行っています。
上記GPL_readme.txtではFedora4をベースに手順が書かれていますが、ほとんど同じです。
- ソースツリー
- 上記のCHD2WLANU_GPL_R400b7.tgzを展開するとMGB100_GPLディレクトリが作られます。これがソースツリーです。
- ビルドツール
- 上記のopt.tgzを展開するとoptディレクトリが展開されます。このディレクトリにはコンパイルに必要なgccなどツールが含まれています。上記ソースツリーは/optにビルドツールがあることを前提に設定されています。このディレクトリを/opt にmvするかln -sしておけば大丈夫です。
- PATH
- /opt/i386-linux/bin/を追加しておく必要があります。/usr/binなどよりも前に追加する必要があるのでPATHの先頭に追加すればOKです。参考までに筆者の場合は「/opt/i386-linux/bin/:/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/X11:/usr/local/sbin:/usr/local/bin」となっています。
- アカウント
- ルートイメージ作成時にloopbackマウントするため、rootユーザで作業してください。
ビルドしたイメージを利用するには
- 上記GPL_readme.txtに書かれていますが、このソースからビルドしたイメージを利用するためには本体のファームウェアをあらかじめR4.00b7以降にしておく必要があります。
- 筆者は非対応ファームの利用法を使ってCHD2WLANU_FW_R400b7.zipを利用しています。
- ファームのバージョンがR4.00b7であれば、ビルドしたイメージをWeb画面からアップロードできるようになります。
- ビルドしたイメージには、Web画面を構成するプログラムも含まれているので、おかしなイメージをアップロードするとWeb画面が立ち上がらなくなり、正常なイメージをアップロードする作業もできなくなります。
- その場合はリカバリーモードでファームウェア自体をアップロードすれば復旧できます。
ビルド
- MGB100_GPLディレクトリでmakeを実行すると説明が表示されます。
Make command list
make linuxall: make a whole new world
make linux: check if linux source codes are modified, and genera
te a romdisk
make busybox: check if busybox_src is modified, and generate a rom
disk
make usrsrc: check if usr_src is modified, and generate a romdisk
make romdisk: generate a new romdisk
- make linuxallを実行すれば各サブディレクトリのmakeを実行し、MGB100_GPLディレクトリにupgrade.imgというイメージファイルが作られます。
AMIT GPL F/W maker v1.0 All rights reserved, AMIT co. @2006
Make F/W successfully! check the file : ./upgrade.img
エラーが出る場合
- 筆者の環境ではusr_src/netatalk/bin/afppasswdのmake中に以下のエラーが出ました。
if i386-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../includ
e -I./include -g -O2 -I./sys -I../../sys -I/usr/include/openssl -I..
/../sys -D_PATH_AFPDPWFILE=\"/etc/netatalk/afppasswd\" -MT afppasswd
.o -MD -MP -MF ".deps/afppasswd.Tpo" \
-c -o afppasswd.o `test -f 'afppasswd.c' || echo './'`afppasswd.c; \
then mv -f ".deps/afppasswd.Tpo" ".deps/afppasswd.Po"; \
else rm -f ".deps/afppasswd.Tpo"; exit 1; \
fi
afppasswd.c:45:17: des.h: No such file or directory
どうやら
/usr/include/opensslにdes.h
があることを期待しているようです。しかし
usr_src/netatalk/config.status
をチェックしてみると
configure時には'--without-ssl'
を指定しているのでincludeする必要はない気もします。
そもそもビルドツール内のヘッダファイルを利用すべきですし、
/opt/i386-linux/include/openssl/des.h
というファイルがちゃんと存在します。
configureが間違っているということで、以下のようにconfigureし直しました。
cd usr_src/netatalk/
./configure --prefix= --host=i386-linux --disable-cups \
--with-bdb=/opt/i386-linux \
--disable-debug1 \
--enable-shared --without-shadow \
--without-ssl \
--enable-nls host_alias=i386-linux \
--no-create --no-recursion \
--with-ssl-dir=/opt/i386-linux
make linuxall時にはconfigureを実行しないので、上記は一度だけ実行すれば次回からは不要です。
最終更新:2007年03月18日 10:24