by tito@ca.mbn.or.jp
Last update: $Date: 2000/01/03 13:58:30 $

Kernel 2.2 へアップグレード

各種ソフトウェアのバージョンアップ


libc

metalab(旧 sunsite)や cdrom からlibc-5.4.44.bin.tar.gz を取得する。(5.4.46でないのは手元のCD-ROMに入っ てなかったから)附属の 文書を良く読むこと。基本的には以下のような操作をする。(がこれを信じてその まま実行して何が起きてもしらないよ。)

失敗した場合システムが立ち上らなくなるので慎重に作業する。FDや非常用のパー ティションから起動して復旧作業できる手段を用意しておくこと。Slackware な らrescue.gz を使えるはずである。

libcのupgradeによって make が動かなくなることがある。これはREADMEに書い てあるが本当である。私の場合は slackware の新しめのversionからバイナリを コピーして済ませた。

cd /
rm -f /lib/libc.so /lib/libm.so
rm -f /usr/lib/libc.so /usr/lib/libm.so
rm -f /usr/include/iolibio.h /usr/include/iostdio.h 
rm -f /usr/include/wcstr.h /usr/include/mbstr.h
rm -f /usr/include/ld_so_config.h /usr/include/localeinfo.h
rm -rf /usr/include/netinet /usr/include/net /usr/include/pthread
gzip -dc /cdrom/source/d/libc/libc-5.4.44.bin.tar.gz | tar xvf -

Gnu C 2.7.2.3

sunsiteから取得したバイナリを使用した。

ld.so-1.9.9

gnu patch-2.5

Slackware 3.3に入っていた patch が古くて rpm をビルドするときにpatch当て に失敗することがあったので patch のバージョンを上げた。実は patch-2.5の rpm のビルド自体が失敗したので ソースから一度 コンパイル、イ ンストールした後,rpm -ba で rpm を作って rpm -i でインストールした。

patch-2.5-5.src.rpm

install-info

info形式のドキュメントのインストールに install-info コマンドを使うパッケー ジがある。これは texinfo に含まれている。install-info は /usr/local/bin にインストールした。Redhat では /sbin に置かれている。このため後のパッケー ジでは若干修正する必要が生じている。

install-info は rpm のパッケージにはしていない。

rpm-2.5

rpm-2.5バイナリで配布されている rpm コマンドは PAM 対応なので 非PAMなシ ステムではそれを使ってビルドする時に問題が発生することがある。rpm -i な どでインストールしたりするときは大丈夫ようなのだが。

rpm をソースからビルドするのは普通にビルドするだけでよい。configureが適 切に PAM/非PAM を判断してくれる。rpm 自体をインストールするときは rpm --initdb されるので注意。

modutils-2.1.121

これは 2.2 が起動した後にインストールする方が良い気がするが私は最初にやっ てしまった。このバージョンを普通の kernel2.0シリーズで使うには次のパッチ が必要である。
===================================================================
RCS file: include/kerneld.h,v
retrieving revision 1.1
diff -u -r1.1 include/kerneld.h
--- include/kerneld.h	1999/02/03 12:39:15	1.1
+++ include/kerneld.h	1999/02/03 12:39:27
@@ -30,8 +30,6 @@
   {
     long mtype;
     long id;
-    short version;
-    short pid;
     char text[1];
   };

kernelソース

一部のプログラムではコンパイルに kernel のヘッダファイルを必要とし ている。/usr/src/linux に 2.2.x のソースを展開しさらに make menuconfig等 で config.h を作っておく。実際にコンパイルする必要は無い。

.config

proc関連のツール

procinfo-14

procps-1.2.3

psmisc-17

libg++

Sunsite から GCC/g++-2.7.2.8.bin.tar.gz を取得して以下のようにした。
cd /
rm -rf /usr/include/g++ /usr/lib/libstdc++.so /usr/lib/libg++.so
gzip -dc /cdrom/Sunsite/GCC/libg++-2.7.2.8.bin.tar.gz | tar xvvf -
ldconfig /usr/lib

binutil-2.9.1.0.15

install-info のパスを /usr/local/bin に変えた以外は redhat-5.2 のものを そのまま使用してビルド・インストールした。

サイズが大きいのでここには置かない。

Sh-utils 1.16

この rpm は rpm -bbなどでパッケージをビルドする際にシステムの/bin,/usr/bin に直接変更を加えてしまうので注意。

sh-utils-1.16-4.src.rpm

ppp

pppd-2.3.3 のまま

5/20追記

pppd-2.3.3, pppd-2.3.5 では ppp 接続を2、3度繰り返した後接続に失敗するよ うになった。最初は pcmciaのシリアル関係の不具合か,setserialの問題かと思っ たが違ったようだ。 cu -l ttyS2 では通信がちゃんと出来るのだが chat < /dev/ttyS2 > /dev/ttyS2 "" AT OK が通らない。

どうもシェルのリダイレクトで ttyS2 をオープンすることが出来なくなるらし い。たとえば正常に動作するときは true < /dev/ttyS2 に対しすぐプロンプ トが帰ってくるが、おかしくなるとプロンプトが変えらず C-c でシステムコー ルを中断したというメッセージが出る。(system call interuptedだったか?)

pppd-2.3.8 にバージョンを上げたところ解決しているようだ。(pppd のchanges はどこにあるのだろう。)

bash

GNU bash, version 1.14.7(1) だったのでそのまま。

net-tools-1.50

net-tools-1.50-1.src.rpm

Autofs-3.1.1

autofs は導入済みだったのでそのまま。 パッケージには redhat と debian のスクリプトは用意されているが,slackware 用は無い。newsの記事から貰ったスクリプトに少し手を入れて使用している。

/etc/rc.d/rc.autofs (start|stop)
rc.autofs rc.dスクリプト
既に autofs-3.1.3 が出ている。

util-linux-2.9i

認証にからむコマンドは既存のものを使用して util-linux からは使わない。

util-linux-2.9i-1.src.rpm

pcmcia-cs-3.0.9

カーネルのコンパイルを参照。使っているカードは次のとおり。

IBM ThinkPad 530CS
Adaptec Slim SCSI APA-1460
ACCTON EN-2212
TOSHIBA Libretto 70
3COM 3c589
メーカ不詳 Flush ATA 20MB
NTT DC-1S

nfs-server-2.2beta37-1

ftp://ftp.mathematik.th-darmstadt.de/pub/linux/okir/nfs-server-2.2beta40.tar.gz にbeta40が無かったのでb37。

nfs-server-2.2beta37-1

カーネルのコンパイル

手順は 2.0 と変わらない。
cd /usr/src/linux
make menuconfig
make depend
make zImage
make modules
make modules_install
cd ../pcmcia-3.0.9
make config
適当に質問に答える。
make all
make install
cp arch/i386/boot/zImage /vmlinuz-2.2.x-x
/etc/lilo.conf を書換え
lilo

私の.config

Boot

ブート時のメッセージ

sound

alsa-0.3.0pre4

driver,lib,utilをそれぞれ ./configure && make && make install する。

/etc/conf.moduls(libretto 70用)
alias char-major-14 soundcore
alias char-major-116 snd
#options snd snd_major=14 snd_cards_limit=2
options snd-opl3sa snd_index=1 snd_port=0x370 snd_wss_port=0x530 \
snd_midi_port=0x330 snd_fm_port=0x388 snd_irq=5 snd_dma1=0 snd_dma2=1 \
snd_dma1_size=64 snd_dma2_size=64

alias snd-slot-0 snd-opl3sa
alias sound-slot-0 snd-slot-0
alias sound-service-0-3 snd-pcm1-oss
alias sound-service-0-12 snd-pcm1-oss

keep
path[pcmcia]=/lib/modules/`uname -r`
path[pcmcia]=/lib/modules/default
path[pcmcia]=/lib/modules/preferred
path[pcmcia]=/lib/modules/default
path[pcmcia]=/lib/modules/preferred

man page の整理

redhat のものは man pages を gz圧縮していない。一方slackware3.3では圧縮 している。このため新旧のファイルが混在してしまう。man のディレクトリで gzip -f * などとして整理した。

2.2の感想

2.2にしたからといって見た目が変わったり今迄の機能が無くなっていたりはし ないのでユーザとして使う分には全く変化を気にせず使える。

管理者的には ip周りの route 設定や halt に "-p" を追加するなどちょっとは 変えたけれど。

体感速度は確かに向上している。ktermのスクロールや、ウィンドウのレイズ等 が速くなった気がする。Windows(TM)から samba のフォルダを見たときも表示さ れるのが速くなった。

一度ネットワークeth0が不安定になった。ping が1秒近くかかる。挿抜で復 旧それからは一週間以上たつが起きていない。

3/31にも再現した。挿抜で復旧。ハブなしでクロスケーブルで継いでいるのが影 響しているのだろうか?

smbmount は samba-2.0.x 附属のものを使うように指示されている。書式も変更 されいて automount に変更が必要になっている。しかもパスワードをコマンドラ インに書かなくてはいけないのは、どうにかならないものだろうか。


戻る