なのに何故か急に 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.c は sbrk() の引数が
/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ちゃんと機能しているようだな。よしよし。
なお私が今回試した amd は amd920824upl67.tar.gz です。し かしもっと新しいものに amd-upl102.tar.gz があります。もし amd を使用するのならばこちらのほうが良いかもしれません。ただし この amd-upl102.tar.gz を使用する場合は Linux 用に amd-upl102.patch.gz というパッチがありますので捜しだして当てた ほうがよいでしょう。
しばらくしたら私も amd-upl102.tar.gz に入れ直すかもしれません。 いつか気が向けば、ですが。f^^;
あとホントは amd のマップファイルの書き方等について極簡単に書こ うかなっとも思ったんですが、ちょっと時間がないので今回はパスします。こ れまた、いつか機会があれば…ということで。
今日はルンルンのスィッチオフ。