ソースコードの入手

conceptronic社からCHD2WLANUのソースをダウンロードして展開
  • 以下のファイルが得られる
    • 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