何故か amd (96/10/26)

今現在私は PC を一台しか持っていない。だから NFS でファイル共有 なんてする必要はまるでないし、CDROM だって既に一般ユーザーでも mount できるように設定している。

なのに何故か急に amd を使用してみたくなってしまった。

そんなことしてどうする!

と、自分でも思うんだけどねぇ。f^^;;

まぁいいや。とりあえず dos 領域を amd で自動マウントする ようにしてみようかな。

じゃ、まずはインストールだい。Linux 関係の FTP サイトに は amd920824upl67.tar.gz が置いてあった。日付を見ると結構前のも のみたいだけど、これでいいや。

cipher:~# ls -l amd920824upl67.tar.gz 
-r--r--r--   1 yokota   users      467493 Oct 26 13:44 amd920824upl67.tar.gz
cipher:~# tar xfz amd920824upl67.tar.gz 
cipher:~# cd amd920824upl67
cipher:~# ls
A.i386_linux_0.99.12  amdxref		    hlfsd
ChangeLog	      amq		    include
Makefile	      bsd		    maps
Makefile.build	      config		    mk-amd-map
Makefile.com	      contrib		    rpcx
Makefile.mods	      doc		    text
Makefile.top	      fixmount		    wire-test
amd		      fsinfo
cipher:~# ls A.i386_linux_0.99.12/
amd	    amq		fsinfo	    hlfsd	mk-amd-map  wire-test
あれ。なんだなんだ、これってもうコンパイルされてんじゃん。これ使えばい いのか。

と思ったけど、ちょっと待て。

これってカーネル 0.99.12 でコンパイルされたものだな。いくらなん でもそりゃ古過ぎるぞ。しかも config/Makefile.linux を見てみると mount タイプは minix になってるし…。

やっぱ自分でコンパイルしよ。

んじゃ、ファイルの修正。

cipher:~# diff -u amd/nfs_start.c.~1~ amd/nfs_start.c
--- amd/nfs_start.c.~1~	Mon Aug 23 13:21:27 1993
+++ amd/nfs_start.c	Sat Oct 26 21:36:51 1996
@@ -106,7 +106,7 @@
 #ifdef		__hpux
 	extern void *sbrk P((int));
 #else
-	extern caddr_t sbrk P((int));
+	/* extern caddr_t sbrk P((int)); */
 #endif		/* __hpux */
 	caddr_t next_mem = sbrk(0);
 	close(next_fd);
cipher:~# diff -u config/Makefile.linux.~1~ config/Makefile.linux
--- config/Makefile.linux.~1~	Mon Aug 23 13:21:37 1993
+++ config/Makefile.linux	Sat Oct 26 21:38:33 1996
@@ -47,7 +47,7 @@
 CC=gcc
 SYSCC=${CC}
 CCOPTS= -s -O6 -I/usr/include/bsd -DHAS_REGEXP -DDEBUG -DHAS_STRDUP \
-        -DMOUNT_TYPE_UFS=\"minix\" -DLinux_DEBUG
+        -DMOUNT_TYPE_UFS=\"ext2\" -DLinux_DEBUG
amd/nfs_start.csbrk() の引数が /usr/include/unistd.h と違う為にエラーになってしまったからコメ ントアウトさせてもらった。

config/Makefile.linux のほうは先にも書いたように mount タイプが minix になっていたので ext2 に修正した。

そして make を実行。

cipher:~# make
Making amd
make[1]: Entering directory `/home/yokota/amd/amd920824upl67/amd'
make[2]: Entering directory `/home/yokota/amd/amd920824upl67/amd'
#	... No OS= option specified; dynamically determining OS type
#	checking to see what /bin/uname will tell me 
#	... OS appears to be "linux"
#	... No OSVER= option specified; dynamically determining OSVER for "linux"
#	... OS Version appears to be "2.0.23"
cd ../A.i586_linux_2.0.23
make Make=make SHELL=/bin/sh -f ../Makefile.com -f ../Makefile.mods -f ../amd/Makefile.amd -f ../Makefile.build -f ../config/Makefile.config -f ../config/Makefile.linux ARCH=i586 OS=linux OSVER=2.0.23 amd
... (途中メッセージ省略) ...
gcc -o wire-test -s -O6 -I/usr/include/bsd -DHAS_REGEXP -DDEBUG -DHAS_STRDUP -DMOUNT_TYPE_UFS=\"ext2\" -DLinux_DEBUG  -DOS_HDR=\"os-linux.h\" -I../rpcx -I../config -I../include -I. wire-test.o wire.o xutil.o    
chmod a+rx wire-test
make[3]: Leaving directory `/home/yokota/amd/amd920824upl67/A.i586_linux_2.0.23'
make[2]: Leaving directory `/home/yokota/amd/amd920824upl67/wire-test'
make[1]: Leaving directory `/home/yokota/amd/amd920824upl67/wire-test'
多少の warning メッセージは出るがそれは無視(笑)。個人の環境に よって違うと思うが、私の場合は A.i586_linux_2.0.23 というディレ クトリが作成された。
cipher:~# cd A.i586_linux_2.0.23/
cipher:~# ls
afs_ops.o	fsi_lex.o	info_passwd.o	mtab_ultrix.o	ufs_ops.o
am_ops.o	fsi_util.o	info_union.o	nfs_ops.o	umount_fs.o
amd		fsinfo		lofs_ops.o	nfs_prot_svc.o	util.o
amd.o		fsinfo.o	map.o		nfs_prot_xdr.o	vers.amd.c
amq		get_args.o	mapc.o		nfs_start.o	vers.amd.o
amq.o		hlfsd		misc_rpc.o	nfs_subr.o	version.amd
amq_clnt.o	hlfsd-util.c	mk-amd-map	nfsx_ops.o	wire-test
amq_subr.o	hlfsd-util.o	mk-amd-map.o	opts.o		wire-test.o
amq_svc.o	hlfsd.o		mntfs.o		pcfs_ops.o	wire.o
amq_xdr.o	homedir.o	mount_fs.o	pfs_ops.o	wr_atab.o
clock.o		host_ops.o	mount_xdr.o	re.o		wr_bparam.o
efs_ops.o	hsfs_ops.o	mtab.o		restart.o	wr_dumpset.o
fsi_analyze.o	ifs_ops.o	mtab_aix.o	rpc_fwd.o	wr_exportfs.o
fsi_dict.o	info_file.o	mtab_bsd.o	sched.o		wr_fstab.o
fsi_gram.c	info_hes.o	mtab_file.o	sfs_ops.o	xutil.o
fsi_gram.h	info_ndbm.o	mtab_isc3.o	srvr_afs.o
fsi_gram.o	info_nis.o	mtab_osf1.o	srvr_nfs.o
fsi_lex.c	info_nisplus.o	mtab_svr4.o	stubs.o
ちょっといらないファイルを消去すると…。
cipher:~# rm -f *.[ohc]
cipher:~# ls
amd	     fsinfo	  mk-amd-map   wire-test
amq	     hlfsd	  version.amd
ではこれらをコピーしちゃお。
cipher:~# cd ..
cipher:~# ls
A.i386_linux_0.99.12  amd		    fsinfo
A.i586_linux_2.0.23   amdxref		    hlfsd
ChangeLog	      amq		    include
Makefile	      bsd		    maps
Makefile.build	      config		    mk-amd-map
Makefile.com	      contrib		    rpcx
Makefile.mods	      doc		    text
Makefile.top	      fixmount		    wire-test
cipher:~# cp -r A.i586_linux_2.0.23 /etc/amd
cipher:~# ls /etc/amd
amd	     fsinfo	  mk-amd-map   wire-test
amq	     hlfsd	  version.amd
これでよし。次に設定だが、その前にどういうふうに dos 領域を自動 マウントをするか考えないと。

こんなところかな。では下準備。
cipher:~# mkdir /amd
cipher:~# mkdir /amd/dos
cipher:~# mkdir /vol
次にマップファイル /etc/amd/amd-vol を作成。
dos	type:=program;dev:=/dev/hda1;fs:=${autodir}/dos/;\
	mount:="/bin/mount mount -t umsdos ${dev} ${fs}";\
	unmount:="/bin/umount umount ${fs}";
そして amd を起動する為の /etc/amd/start-amd を作成。
#!/bin/sh

P=/etc/amd
AMD=$P/amd
AUTODIR=/amd
LOG=/var/log/amd.log
PID=/var/run/amd.pid

/bin/rm -f $PID
/bin/rm -f $LOG.old
/bin/mv -f $LOG $LOG.old
$AMD -a $AUTODIR -l $LOG /vol $P/amd-vol -p > $PID
当然のことだが /etc/amd/start-amd には実行許可を与えておく。
cipher:~# chmod +x /etc/amd/start-amd
これで準備は全て終了。では実際に amd を起動して確認しちゃお。
cipher:~# /etc/amd/start-amd
cipher:~# ps -aux | grep amd
root        71  0.0  1.5   924   464  ?  S   21:57   0:00 /etc/amd/amd -a /amd
yokota     769  0.0  0.9   852   280  p0 R   00:06   0:00 grep amd 
cipher:~# df
Filesystem         1024-blocks  Used Available Capacity Mounted on
/dev/hdb2             774577  338354   396206     46%   /
/dev/hdb1             761055  124444   597301     17%   /home
/dev/hda2             595195  236982   327469     42%   /prj/1
cipher:~# ls /vol/dos
anykey	      dblspace.bin  jrd_inst.ini  msinput	suhdlog.dat
autoexec.bat  ddpmm	    linux	  netscape	system.1st
autoexec.old  detlog.txt    mach64	  oemlog.txt	temp
autoexec.tws  dosime.sys    master~1	  progra~1	trumpet
bootlog.prv   drvspace.bin  mmapp	  recycled	windows
bootlog.txt   exchange	    msdos.---	  scandisk.log	window~1.bmk
command.com   fips	    msdos.bak	  sega
config.sys    io.sys	    msdos.sys	  setuplog.txt
cipher:~# df
Filesystem         1024-blocks  Used Available Capacity Mounted on
/dev/hdb2             774577  338354   396206     46%   /
/dev/hdb1             761055  124444   597301     17%   /home
/dev/hda2             595195  236982   327469     42%   /prj/1
/dev/hda1             614656  269600   345056     44%   /amd/dos
ちゃんと機能しているようだな。よしよし。

なお私が今回試した amdamd920824upl67.tar.gz です。し かしもっと新しいものに amd-upl102.tar.gz があります。もし amd を使用するのならばこちらのほうが良いかもしれません。ただし この amd-upl102.tar.gz を使用する場合は Linux 用に amd-upl102.patch.gz というパッチがありますので捜しだして当てた ほうがよいでしょう。

しばらくしたら私も amd-upl102.tar.gz に入れ直すかもしれません。 いつか気が向けば、ですが。f^^;

あとホントは amd のマップファイルの書き方等について極簡単に書こ うかなっとも思ったんですが、ちょっと時間がないので今回はパスします。こ れまた、いつか機会があれば…ということで。

今日はルンルンのスィッチオフ。

戻る