| NetBSD 解説 | sysinst | pkgsrc 各論 | packages | macppc | TsubaiBSD | 絹/software/全文検索
at www.ki.nu

NetBSD 解説

Last Update: "2012/01/27 10:02:45 makoto"

ソースを変更する

作るカーネルを追加する

カーネルと言えば、次の三つの指定・種類があります。
  1. release(8) の kern-GENERIC.gz 等に追加するもの
  2. sys/arch/${MACHINE}/conf の下の名前のうち有効なもの (make するもの)
  3. MD カーネルとして、どれを使うか
このうち 1 と 2 は それぞれ etc/etc.${MACHINE}/Makefile.inc (machine 毎) の KERNEL_SET と BUILD_KERNELS で指定します
KERNEL_SETS=            WALNUT EV64260 EXPLORA451 OPENBLOCKS200 OPENBLOCKS266 KUROBOX
KERNEL_SUFFIXES=        img

BUILD_KERNELS=          INSTALL_WALNUT INSTALL_OPENBLOCKS266 KUROBOX_MD
上の KERNEL_SETS が 1. の 「release(8) に追加するもの」、 BUILD_KERNELS が 2. の 「sys/arch/${MACHINE}/conf の下の名前のうち有効なもの」です。 1. に書いたものは 2. に重ねて指定する必要はありません。もし重ねて指定すると、 重複している、 と次のように、何度も言われます。
nbmake: "/export/evbppc-work/src/etc/Makefile" line 539: 
	warning: duplicate script for target "kern-KUROBOX" ignored
nbmake: "/export/evbppc-work/src/etc/Makefile" line 540: 
	warning: using previous script for "kern-KUROBOX" defined here

また 3 は 2 に書いたものを参照して、 src/distrib/${MACHINE}/md-kernel/Makefile 等に記述します。

MDSETTARGETS=		INSTALL_WALNUT ${RAMDISK} -	\
			INSTALL_OPENBLOCKS266 ${RAMDISK} - \
			KUROBOX_MD ${RAMDISK} -
上記の MDSETTARGETS で始まる一行の中に指定している三つ組は、それぞれ
KERNEL  Image (ramdisk.fs)  FILENAME
です。 最初の KERNEL で 使うカーネルを指定します。 最後の FILENAME に - とある時には netbsd-${KERNEL} 等、 それ以外の場合には名前そのものの指定になります。 この三つ組は distrib/common/Makefile.mdset で参照されています。

MD カーネルを作る

例えば macppc の場合には、次のところにあります。
ttyp2:makoto@st4200 12:23:59/050918(...checkout/src)> cd distrib/macppc/floppies
ttyp2:makoto@st4200 12:24:59/050918(...macppc/floppies)> ls -l
total 20
drwxr-xr-x  2 makoto  wheel  512 Sep  5 23:36 CVS/
-rw-r--r--  1 makoto  wheel  151 Sep  5 23:28 Makefile
drwxr-xr-x  3 makoto  wheel  512 Sep  6 00:15 bootfloppy/
drwxr-xr-x  3 makoto  wheel  512 Sep  5 23:36 md-kernel/
drwxr-xr-x  3 makoto  wheel  512 Sep  5 23:36 ramdisk/
特にこの中の md-kernel/Makefile が中心で、その中から ramdisk も参照されます。

カーネルの Makefile

カーネルを make する時の Makefile は config GENERIC などをした時に、 どこからともなく現れます。 そこで、これをもし変更したいと思った時には、どこから現れるのか分っていない と手が出ません。 例えば macppc なら次のところにあります。
src/sys/arch/macppc/conf/Makefile.macppc
sandpoint は次のところにあります。
src/sys/arch/sandpoint/conf/std.sandpoint

sysinst に追加

sysinst に date が必要な場合には、次のようにします。
Index: distrib/macppc/floppies/ramdisk/list
===================================================================
RCS file: /export/20050928/Repository/src/distrib/macppc/floppies/ramdisk/list,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 list
--- distrib/macppc/floppies/ramdisk/list        29 Sep 2005 14:37:31 -0000      1.1.1.1
+++ distrib/macppc/floppies/ramdisk/list        29 Sep 2005 21:23:38 -0000
@@ -5,6 +5,7 @@
 PROG   bin/cat
 PROG   bin/chmod
 PROG   bin/cp
+PROG   bin/date
 PROG   bin/dd
 PROG   bin/df
 PROG   bin/ed

sysinst

sysinst は distrib/utils/sysinst/ にあります。
sysinst を実行中の、操作の時に customizeを選んだ時等の選択肢は
src/distrib/utils/sysinst/defs.h
src/distrib/utils/sysinst/arch/evbarm/md.h
(等)にあります。kernel は最大 8 種でその制限は上の一つ目にあります。

/etc/ttys

/etc/ttys を変更しておきたい場合: macppc (だけ)なら
src/etc/etc.macppc/ttys 
を変更します。

/dev/MAKEDEV

/dev/MAKEDEV はどこから来るか ?
./etc/etc.macppc/MAKEDEV.conf
./etc/MAKEDEV.tmpl
build.sh した時の記録を見ると、次のような部分があります。
install-etc-files ===> etc
#    create  etc/MAKEDEV
MACHINE=macppc MACHINE_ARCH=powerpc
NETBSDSRCDIR=/export/20070526tsc/src awk -f
/export/20070526tsc/src/etc/MAKEDEV.awk
/export/20070526tsc/src/etc/MAKEDEV.tmpl > MAKEDEV
old pkgsrc

この画面は Jeedosaquin によって表示しています。

1.66 2008/03/08