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