OpenMicroServerファームウェアに独自アプリケーションを追加する
SSD/Linuxの/usr/src/contribに追加したアプリケーションをファームウェアへ追加する。ここでは、既存のファームウェアはそのまま残し、独自のファームウェアを追加する。独自ファームウェアはcustom-tishi0としてつくる。
じゅんび
事前に/usr/srcでbmake buildしておくこと。
cd /usr/src bmake CROSS_BUILD=mipsel OPENBLOCKS=obs1550 DESTDIR=/home/dest/obs1550 RELEASEDIR=/home/release/obs1550
設定ファイル作成
/usr/src/distrib/mipsel-obs1550
/usr/src/distrib/mipsel-obs1550/MakefileのSUBDIRにcustom-tishi0を追加する。
*** Makefile 11 Aug 2006 08:43:22 -0000 1.5 --- Makefile 20 Aug 2006 01:05:15 -0000 *************** *** 3,8 **** --- 3,9 ---- .include <bsd.own.mk> SUBDIR= distlst standard product cfroot + SUBDIR+= custom-tishi0 .include <bsd.subdir.mk>
/usr/src/distrib/mipsel-obs1550/custom-tishi0
必要なディレクトリを作る。
mkdir -p /usr/src/distrib/mipsel-obs1550/custom-tishi0/initrd mkdir -p /usr/src/distrib/mipsel-obs1550/custom-tishi0/treeboot
Makefile:
.include <bsd.own.mk> SUBDIR= initrd treeboot .include <bsd.subdir.mk>
Makefile.inc:
EXTENSION= -tishi0
/usr/src/distrib/mipsel-obs1550/custom-tishi0/initrd
ここはramdiskをつくる。 standardを参考に必要なファイルをつくる。
Makefile:
.include <bsd.own.mk> .include "../Makefile.inc" CONTRIBS= pptpd dhid ez-ipupdate hdparm CONTRIBS_INSTALL= pptpd dhid ez-ipupdate hdparm LIST_S= common flashcfg sh dhcpd modules named ppp pppoe \ useradd .include "${.CURDIR}/../../standard/initrd/Makefile.inc"
flashcfg.in(フラッシュメモリに保存するファイルのリスト、0バイトでよい)
list.in(追加するファイルのリスト): ここではpptpd, dhid, ez-ipupdate, hdparmとそれに関連するライブラリファイルをコピーする。
BCOPY @SRCTOPDIR@/contrib/pptpd/build/pptpd usr/contrib/sbin/pptpd BCOPY @SRCTOPDIR@/contrib/pptpd/build/pptpctrl usr/contrib/sbin/pptpctrl BCOPY @SRCTOPDIR@/contrib/dhid/dhid usr/contrib/sbin/dhid BCOPY @SRCTOPDIR@/contrib/dhid/genkeys usr/contrib/sbin/genkeys BCOPY @SRCTOPDIR@/contrib/ez-ipupdate/build/ez-ipupdate usr/contrib/bin/ez-ipupdate BCOPY @SRCTOPDIR@/contrib/hdparm/hdparm usr/contrib/sbin/hdparm BCOPY @SRCTOPDIR@/lib/gmp/build/.libs/libgmp.so.3.4.1 usr/lib/libgmp.so.3.4.1 SYMLINK libgmp.so.3.4.1 usr/lib/libgmp.so.3 SYMLINK libgmp.so.3.4.1 usr/lib/libgmp.so
mtree.conf.in(追加するディレクトリのリスト):
./home/user1 ./usr/contrib/sbin ./usr/contrib/bin
その他のファイル、ディレクトリをstandardからコピーする。
cp -p ../../standard/initrd/etc .
/usr/src/distrib/mipsel-obs1550/custom-tishi0/treeboot
ここはramdiskをもとにファームウェアをつくる。
.include <bsd.own.mk> .include "../Makefile.inc" .include "${.CURDIR}/../../standard/treeboot/Makefile.inc"
ファームウェア作成
cd /usr/src/distrib/mipsel-obs1550/custom-tishi0 bmake clean bmake -DNOCLEAN -DSKIPBUILD CROSS_BUILD=mipsel OPENBLOCKS=obs1550 DESTDIR=/home/dest/obs1550 RELEASEDIR=/home/release/obs1550