こんばんは。mika-jです。
今年もよろしくお願いいたします。
まずは、可能なら、無難なアドレスでセーブされるかどうか
みてみるのが良いのではないでしょうか。
ところで、172.16.202.0/24はネットワークアドレスになる気がするのですが、
普通に使えるものなのでしょうか?
***
以下は自分が最近、接続の設定が保存できなくなった時のお話です。
使用環境が異なるので、参考程度に見てください。
●環境
使用バージョン: Puppy Linux 4.1.2-JP-beta
インストール: Frugal Insall(SCSI+USB)
NIC: オンボードで接続先はいわゆるブロードバンドルータです。デバイス名はeth0
アドレス:クラスCのプライベートアドレス(固定)
●症状
・LAN接続の設定が保存されないように見える。
・何回も設定すると、時々、保存される事もある。
・起動直後にインターネット接続ウィザードを開くと時々eth0が見えない事がある。
●改善策
/etc/rc.d/rc.networkスクリプトのMAXWAITの値を調整。
●説明
いろいろ、調べてみたところ、アドレスを再設定するのは、/etc/rc.d/rc.network
らしいのですが、このスクリプトが、eth0デバイスの準備ができる前に走りきってしまうため、
アドレスが設定されていないように見えていました。
つまり、デバイスの準備ができていないので、アドレス設定もされない、という事ですね。
この症状の時は、設定自体は保存されているので、起動後しばらく待って、
rc.networkを手で流すと、設定が復活します。
(***復活しない場合は設定自体が保存されていない可能性があるので、この対処方法は無駄です***)
コード: 全て選択
# /etc/rc.d/rc.network
対処の方法ですが、rc.network内のMAXWAIの値を調整します。
(1)まず、失敗しても、元に戻せるよう、バックアップを取ります。
コード: 全て選択
# cd /etc/rc.d/
# cp rc.network rc.network.org
(2)rc.networkをお気に入りのエディタで開いてMAXWAIT=12となっているところを探します。
(3)MAXWAITの値を適当な分、増やします。
MAXWAITの値を増やすことで、eth0デバイスの準備ができるまでの時間をかせぐ事になります。
私の場合は、MAXWAIT=24で設定される様になりました。
コード: 全て選択
Line <rc.network抜粋>
---------------------------------------------------------------------------------------------------------------------------
285 fi
286
287 # wait up to MAXWAIT seconds, in case some firmware is slow to load
288 MAXWAIT=12 ------------★ここの値を変更
289 # a list of all the interface config files
290 echo -n "Waiting for interfaces to initialize..."
291 CONFIGURED=$(cd $NETWORK_INTERFACES_DIR ; ls -1 *.conf 2>/dev/null |cut -d '.' -f1)
292 for I in $(seq 1 $MAXWAIT) ; do
293 EXIST=$(ifconfig -a | grep -F 'Link encap:')
294 for ONE in $CONFIGURED ; do
295 # see if it is detected
296 case $EXIST in
297 *$ONE*) ;; # ok
298 *) sleep 1 ; echo -n '.' ; continue 2 ;; # go to the next I
299 esac
300 done
301 # we only get here if all the configured interfaces are found...
302 break
303 done
304 # "close" the line started before the loop
305 echo
306 # add an extra wait for pcmcia NICs to initialize
307 case "$(cat /sys/class/net/*/device/modalias)" in *pcmcia:*) sleep 10 ;; esac
308 fi # if [ "$ACTION" = "restart" ] ; then
309
310 # It appears that "cleaning up" an interface, while another one is already
以上です。全然違う問題かもしれません。外していたら、ごめんなさい。
それでは。