[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:17965] Re: pon が働かない時があります。



菊地です。
    white@xxxxxxxxxxxxxxxx

white wrote:
> 
> 菊地です。
>     white@xxxxxxxxxxxxxxxx
> 
> white wrote:
> >
> > 菊地と申します。
> >    white@xxxxxxxxxxxxxxxx
> >
> > slinkを使っています。
> > カーネルの再構築をして、その後で、ponが働かなくなる場合が生じる
> > ようになりました。カーネルは2.0.36です。
> > osを起動直後は確実にponが働きます。しかし、どうも、ある程度時間を経てか
> > ら、その間に別のソフトも使って、その後にponが働かない場合が多い気がしま
> > す。osの再起動という前に、モデム単体の電源を一度、切って、入れ直しても、
> > 状況は変わりません。もちろん、回線は正常な状態です。
> > そういう時は再度、os を立ち上げ直せば、その直後は問題無しに、働きます。
> > インストール時のカーネルの時は、
> > ponが働かなくなるというような事はありませんでした。
> 
> このメール送信後にslinkの完全な再インストールまでやってみました。インス
> トールの状態では、確かに、起動後どれだけ時間が経っても、pon は正常に働き
> ました。そして、カーネルの再構築後には、起動直後なら、正常に働くが、少な
> くとも9分後では、働かなくなります。その間はユーザーからはslinkに対して
> 何もしない状態で、ただ、放っておくだけです。
> 
> 過去ログも調べました。今回の私のように、起動直後は問題なくて、時間が経つ
> と、働かなくなるという件があることにはありました。しかし、その場合の原因
>
> ppp-pamパッケージをインストールしていなかったことによるものだったそうで
> す。これは私の場合には当てはまりません。困りました。何とか助言を頂けない
> でしょうか。

何人かの方から助言をいただき、ありがとうございます。その助言からヒントを
いただき、解決できたと思います。
以下に原因等を書きます。

まず、問題解決のきっかけになったのが、
"K.Watanabe" wrote:
> 
> 渡辺です。
> 
> いまひとつ状況がわからないのですが、チェックすべき所を
> 思い付くだけ挙げておきます。
> 
> 1.カーネルを再構築するときに make-kpkg を使いましたか。
> 
>   | Sep 19 00:48:05 debian syslogd 1.3-3#31: restart.
>   | Sep 19 00:48:05 debian kernel: klogd 1.3-3#31, log source = /proc/kmsg
>   | started.
>   | Sep 19 00:48:05 debian kernel: Cannot find map file.
>   | Sep 19 00:48:05 debian kernel: Loaded 246 symbols from 15 modules.
> 
> /boot/System.map-2.0.36 が見付かっていないように見えます。
> make-kpkg を使ってビルドして、dpkg でインストールしたなら、
> こういうことにはならないと思いますが。

でした。
make-kpkgは使いませんでした。通常の一般的なカーネルの構築法でおこなって
いました。ただし、そのやり方に問題があったということでした。
基本的には、トッパンのLinux入門とLinuxネットワークを参考にしていました。
Linuxネットワーク中に重要なことが書かれていました。
p72より、「カーネルのバージョンを上げた場合は、モジュール類は新しいディ
レクトリ /lib/modules/version ディレクトリにインストールされますが、同じ
バージョンではカーネルの設定を変えてコンパイルした場合は、古いモジュール
があるディレクトリと同じディレクトリに新しいモジュールがインストールさ
れ、モジュールの依存関係が混乱する場合があります。同じバージョンのカーネ
ルを作り直す場合は、"make modules_install" の前に
# rm -rf /libmodules/`uname -r`/*
を実行して、古いモジュールを削除してから新しいモジュールをインストールし
ます。」
これをやっていなかったことが原因でした。実際に、

起動直後
debian:/# lsmod
Module         Pages    Used by
serial             8            0 (autoclean)
ncr53c8xx         11            0
loop               2            0
sound             24            0
dummy              1            0
ne2k-pci           1            0
8390               2    [ne2k-pci]      0
bsd_comp           1            0
ppp                5    [bsd_comp]      0
slhc               2    [ppp]   0
lp                 2            0
psaux              1            1
smbfs              6            0
vfat               4            2
fat                6    [vfat]  2
nls                1    [vfat fat]      0
autofs             2            1

三分後
debian:/# lsmod
ncr53c8xx         11            0
loop               2            0
sound             24            0
dummy              1            0
ne2k-pci           1            0
8390               2    [ne2k-pci]      0
bsd_comp           1            0
ppp                5    [bsd_comp]      0
slhc               2    [ppp]   0
lp                 2            0
psaux              1            1
smbfs              6            0
vfat               4            2
fat                6    [vfat]  2
nls                1    [vfat fat]      0
autofs             2            1

を見るとわかるように、serialは、カーネルの再構築の.config にはモジュール
化とは記述していなかったはずなのに、起動直後に、

serial             8            0 (autoclean)

とkerneldによって、自動的にロードされている状態になっていました。そし
て、三分後には、それが自動的に削除されています。」こうなると、ponを実行
しても、serialがロードされることはなく、接続できない、という状況。もちろ
ん、そもそも、.configで、serialをモジュール化と記述していなのに、起動時
に、kerneldによって、自動的にロードされている事自体、おかしいです。これ
が上記の「混乱」なのでしょう。
そこで、
make modules_install
 の前に
# rm -rf /libmodules/`uname -r`/*
を実行して、古いモジュールを削除してから新しいモジュールをインストールし
ました。すると、今度は正常に、起動から、時間が経過しても、ponによって接
続が可能となりました。

対策後 起動直後
debian:/# lsmod
Module         Pages    Used by
ncr53c8xx         11            0
loop               2            0
sound             24            0
dummy              1            0
ne2k-pci           1            0
8390               2    [ne2k-pci]      0
bsd_comp           1            0
ppp                5    [bsd_comp]      0
slhc               2    [ppp]   0
lp                 2            0
psaux              1            1
vfat               4            2
fat                6    [vfat]  2
nls                1    [vfat fat]      0

のように、起動直後に、serialがロードされている事もなくなりました。
後、もう一つ、今回のことで、気が付きました。
System.mapです。
これが所定の位置におかれていなかったというこです。
トッパンのLinux入門とLinuxネットワークを参考にしていましたが、Linux入門
のp147では、
「loadlinを使っている場合
# cd /usr/src/linux
# make zImage
これで、/usr/src/linux/arch/i386/boot/zImageにあたらしいカーネルができま
すので、これをloadlinで指定した古いカーネルと置き換えてください」
となっています。これに従うと、System.mapのことが全く抜けてしまいます。
# cd /usr/src/linux
# make zlilo
でやれば、
/
に
System.map も
vmlinuz も
置かれます。System.mapはここにあれば、起動時にカーネルは発見できるようで
す。
もちろん、debianを使っているのであれば、
make-kpkg
を使えば良いのでしょうが、まだ、理解していなかったし、一般的な方法という
のも、知っておきたかったので、一般的な方法を今回は取りました。
 それから、kerneldをつかっているのですから、手動で、モジュールをロードす
る必要がないものもありますが、今は、とりあえず、手動でロードしています。

これで、解決できました。助言をくださったみなさんありがとうごさいました。
もし、よろしければ、System.mapとはどういうものであるのかを調べるには、ど
こを知らべればよいのかを教えてください。


ついでに、気になったことがありましたので、書いておきます。
結局、今は、カーネルの2.0.38を一般的な構築法によって、slinkに入れていま
すが、その過程で、気になったことがありました。
それは、
make xconfig
がおかしかったことです。
最終的に、Save it Exit を実行すると、xterm上に警告のようなメッセージが出
ていました。最初はそれに気が付かなくて、
make modules_install
depmod -a
を実行後に、実際にできたモジュールを確認すると、モジュールを指定したはず
のものがないということがありました。原因を探っている内に、Save it Exitを
実行すると、xterm上に警告のようなメッセージが出ていることを発見しまし
た。試しに、make menuconfigで、同じ指定をして、みたところ、問題なく、指
定のモジュールができるようになりました。make xconfig の実行にはwish が必
要であると、本にかいてあるのですが、今の私のslinkには入っているようでし
た。これは、wishのバージョンの問題でしょうか。
何かお気づきの事がありましたら、書いてください。
この件のxterm上に表示されるメッセージを
別の件名 「make xconfigで失敗します」
の中に書いておきます。
この件は特に、困っている
ということではありませんが。

以上です。