基本的には先日にインストールしたときと同じ。設定も ログ を見ながらである。でも当然ながら全く同じ ではない。前回との違いはコンパイルオプションである。
MCONFIG の中では
OPT= -pipe -O2 -m486 -fomit-frame-pointer LDFLAGS= -s -Nとなっている。これを変更する。
OPT= -pipe -O6 -m486 -fomit-frame-pointer LDFLAGS= -sオプティマイズレベルを 6 にしているのは、たんなる趣味である。:-)
cipher:~# make順調、順調……、と思ったらエラーだ。
gcc -c -Wall -Wstrict-prototypes -Wmissing-prototypes -pipe -O6 -m486 -fomit-frame-pointer -I. -I../bsd -DSBINDIR=\"/sbin\" -DUSRSBINDIR=\"/usr/sbin\" -DLOGDIR=\"/var/log\" -DVARPATH=\"/var\" -DHAVE_NFS -DFSTYPE_DEFAULT=\"iso9660\" swapon.c swapon.c: In function `swap': swapon.c:73: too few arguments to function `swapon' make[1]: *** [swapon.o] Error 1 make[1]: Leaving directory `/home/yokota/next/util-linux-2.5/mount' make: *** [all] Error 1
前回インストールしたときは、こんなことにならなかったぞぉ。かんべんして くれよぉぉぉぉ。(;_;)シクシク
しょうがないから swapon.c の 73 行目を見てみる。
status = swapon (special);
これが何、と思って unistd.h を見てみると…
extern int swapon __P ((__const char *__path, int __swapflags));
う〜む。これはまいったなぁ。おそらく libc-5.4.7.bin.tar.gz をイ ンストールした影響なんだろうなぁ。確認の為に 5.2.18 を引っぱり 出してきて unistd.h を見てみると
extern int swapon __P ((__const char *__path));ちゃんと引数は一つだった。
もうちょっと util-linux-2.5 を調べてみると SUPPORT_PRIORITIES が difine されていれば大丈夫のようだ けれど mount/sundries.h の中で
#if 0 #include <linux/version.h> #if LINUX_VERSION_CODE >= 0x010302 #define SUPPORT_PRIORITIES #endif #endifとわざわざ define されないようになっている。もしかしたら何か理 由があってこうしているのかもしれない。ふみぃ、どうしよう…。
そしたらちゃんと ftp://ftp.win.tue.nl/pub/linux/util/ に mount-2.5p.tar.gz があった。きっとコレなら大丈夫だろう。
期待いっぱいで取って来てインストールしてみました。展開して Makefile をちょっといじってみる。
OPTFLAGS= -O2 -fomit-frame-pointer #CFLAGS = -pipe $(OPTFLAGS) LDLIBS =となっている箇所を
OPTFLAGS= -O6 -fomit-frame-pointer CFLAGS = -pipe $(OPTFLAGS) LDLIBS = -s -O6にしました。そして
cipher:~# make cipher:~# su Password: cipher:~# make install
よ〜し、mount 関係のコンパイルは OK だ。では util-linux-2.5 で mount 関係以外をインストールしちゃお。
というわけで util-linux-2.5 は Makefile の中の SUBDIRS から mount を削除してコンパイル & インストール。これも 成功だ!
これでやっと先日の続きである root フロッピー作成ができる。 bin と sbin に新ためてコマンドを持って来てサイズを確認。
cipher:~# du -sb bin sbin 561634 bin 224623 sbin両方合わせて約 786 KB ですか。ふむふむ。もしかしたらうまくでき るかもしれない。あと lib のサイズも確認してみよっと。
cipher:~# ls -l /lib/libc.so.5 lrwxrwxrwx 1 root root 13 Oct 4 22:55 /lib/libc.so.5 -> libc.so.5.4.7 cipher:~# ls -l /lib/libc.so.5.4.7 -rwxr-xr-x 1 bin bin 1773160 Sep 25 08:20 /lib/libc.so.5.4.7
1.7 MB か、これ。数え間違いでないよな。ぉぃぉぃ、これ一つさえフ ロッピーに入らんじゃないかぁ。まいったぁぁぁ。
どうしよう…。もしかして boot & root フロッピーというの は一般人が作成してはいけないのか。何故にこんなに障害ばかりが…。(;_;)
この 5.4.7 は自分でコンパイルしたんじゃなくって libc-5.4.7.bin.tar.gz からインストールしたんヤツだな。これって 確か -g1 でコンパイルしたヤツだっと読んだ憶えがあるぞ。こんなに 大きいサイズなのはそのせいかぁ。
とすると自分で libc-5.4.7.tar.gz をコンパイルするしかないな、こ りゃ。え〜ん、また boot & root フロッピー作成はおあずけ だぁ〜。
今日はシクシクのスィッチオフ。