コメント |
|
|
> Shuttle Xpc sn41G2にVine4.0-betaをインストールしたところ
> 起動時にLAN設定に失敗します.
>
> ネットワークインタフェースは以下の構成です.
>
> eth0:PCI Buffalo LAN
> eth1:オンボード LAN
>
> eth0を有効にしbootとすると、eth0の設定に失敗し
> [OK]と出力されずeth0の設定で止まってしまいます.
> この場合強制終了する以外に対応できなくなります.
> これはeth1にしても同様のことが起こります.
おそらくインタフェースが入れ替わっているのではないかと
思います。eth0 と eth1 がインストール時と反対になって
しまっていると思われます。
dhcp でとりにいって止まっているのだろうと思います。
しばらくまつと timeout するはずですが、timeout しま
せんでしたか?
ともあれ、原因は installer との認識順の違いによる
ネットワークインタフェースの不整合です。<BTS:150>
もその関係ではないかと思いますが、非常に不便なので
修正したいとおもいます。インストール時に設定された
とおりのインタフェースに付け直すように udev rule
をいれることにしました。
initscripts-7.2.0-0vl1, β3 で適用されます。 |
|
|
(0001240)
|
ats7
|
2006-09-18 01:51
|
|
> おそらくインタフェースが入れ替わっているのではないかと
> 思います。eth0 と eth1 がインストール時と反対になって
> しまっていると思われます。
# Vine40-beta2-vmware.tar.bz2 を VMware Player 1.0.2 で試して
# いて気付いたのですが、VMware 起動時に新しい UUID が生成され、
# その影響で MAC アドレスが変わりました。
# そのまま Vine を起動すると、eth0 の設定で止まってしまいました。
ifcfg-eth0 の HWADDR が実際の MAC アドレスと違うと、ifup が
無限ループするようです。ifcfg-eth0 の HWADDR をコメントアウト
すると止まりませんでした。
# HWADDR は必要なのでしょうか?
添付のパッチを当てると HWADDR をコメントアウトしなくても、
ifup が終了するようになりました。
ただ、パッチを当てた部分の処理意図がよく分かっていないので、
IP エイリアス関連でエンバグしていないか心配です。
パッチ適用後
--
Sep 18 01:22:26 localhost network: Setting network parameters: succeeded
Sep 18 01:22:27 localhost network: Bringing up loopback interface: succeeded
Sep 18 01:22:28 localhost ifup: Device eth0 has different MAC address than expected, ignoring.
Sep 18 01:22:28 localhost network: Bringing up interface eth0: failed
-- |
|
|
|
> ifcfg-eth0 の HWADDR が実際の MAC アドレスと違うと、ifup が
> 無限ループするようです。ifcfg-eth0 の HWADDR をコメントアウト
> すると止まりませんでした。
> # HWADDR は必要なのでしょうか?
たしかに、ifup を延々再帰的に呼び出されて無限ループにはいりますね。
> 添付のパッチを当てると HWADDR をコメントアウトしなくても、
> ifup が終了するようになりました。
> ただ、パッチを当てた部分の処理意図がよく分かっていないので、
> IP エイリアス関連でエンバグしていないか心配です。
このパッチはちゃんとうごいていますか? NEWCONFIGS が参照されていない
のですべて素通りになってしまうのではないかとおもいますが。。
initscripts-7.2.0 で更新した部分に不備があったので、それを修正す
るとともに インタフェースの rename にも対応させて、上記バグもとる
ようにしました。インタフェースが変わっていたら(MACADDRの背亭された)
設定ファイルにあわせて付けかえ、MACADDR が未知の場合は元と同様に
MACアドレスが期待しているものじゃない というメッセージがでるように
しました。基本部分は upstream(initscripts-7.93) からの porting です。
変更が大幅になってしまいましたので、試してみてもらえると助かります。
initscripts-7.2.1-0vl1 として upload します。
# 手元でいろいろなパターンで試している限り、とくに問題はなさそう
# です。 |
|
|
(0001242)
|
ats7
|
2006-09-18 11:12
|
|
すみません、パッチ間違ってましたね。
initscripts-7.2.1-0vl1 試してみました。
ifcfg-eth0 の HWADDR が実際の MAC アドレスと違うと
Device eth0 has different MAC address than expected, ignoring.
というメッセージが出て失敗するのは変わりませんでした。
添付のパッチで直ることを確認しました。 |
|
|
|
> すみません、パッチ間違ってましたね。
>
> initscripts-7.2.1-0vl1 試してみました。
> ifcfg-eth0 の HWADDR が実際の MAC アドレスと違うと
> Device eth0 has different MAC address than expected, ignoring.
> というメッセージが出て失敗するのは変わりませんでした。
> 添付のパッチで直ることを確認しました。
作成して頂いたパッチを/sbin内で
# patch < initscripts-7.2.1-0vl1_ifup.patch
として当てたところ以下のようなメッセージが出ました.
patching file ifup
Hunk 0000001 FAILED at 161.
1 out of 1 hunk FAILED -- saving rejects to file ifup.rej
"FAILED"のメッセージが出ているのでパッチを当てるのに
失敗している気がするのですが..
なにぶん,ここらへんの知識がないもので
パッチの当て方は正しかったでしょうか?
気付いたことしか報告できませんが、以上報告です. |
|
|
|
> > initscripts-7.2.1-0vl1 試してみました。
> > ifcfg-eth0 の HWADDR が実際の MAC アドレスと違うと
> > Device eth0 has different MAC address than expected, ignoring.
> > というメッセージが出て失敗するのは変わりませんでした。
> > 添付のパッチで直ることを確認しました。
この部分は、
1. ifcfg-ethX の HWADDR が ethX の MACアドレス(FOUNDMACADDR) と
違っていたら、
2. HWADDR を MACアドレスに持つインタフェース(curdev)を探して、
3. そのインタフェース(curdev)の名前を ethX に付け直す
ということをします。
これは、本来意図したコネクタに意図したIPアドレスを設定するために
用意されている機能です。たとえば口が2つあって、設定したときと異な
る順番で認識されてしまった場合に、口とネットワーク設定がいれかわっ
てしまったりするのを防ぎます。
これを添付されたパッチを適用してしまうと、意図していない状態に
なってもおかまいなしに設定されてしまいます。本来はこのメッセー
ジも出さず次へ進んで「e1000デバイス eth0 は存在しないようです
ので初期化を遅らせます」といったメッセージを出して終了するのが
正しい挙動です。(curdevが空っぽだったときの処理がおかしい)
正しくは以下の感じです。
if [ -n "${HWADDR}" ]; then
FOUNDMACADDR=`get_hwaddr ${REALDEVICE}`
if [ "${FOUNDMACADDR}" != "${HWADDR}" ]; then
curdev=`ip -o link | awk -F ':' -vIGNORECASE=1 "/$HWADDR/ { print \\$2 }"`
if [ -n "$curdev" ]; then
rename_device "${REALDEVICE}" "${HWADDR}" "${curdev}" || {
echo $"Device ${DEVICE} has different MAC address than expected, ignoring."
exit 1
}
fi
fi
fi
本来 ignoring 云々を出すのはHWADDRをもつデバイスが存在するのに
rename できなかったときです。
で、ここでデバイスが存在しなかった場合にHWADDRを無視して強制的
にインタフェースを up してしまうという手もありますが、実は後か
ら遅れて認識されるデバイス(たとえばUSB)だった場合に、意図と違
う設定がされてしまうことになります。
もしMACアドレスを無視して、現在のインタフェースにその設定を適用
したいということであれば HWADDR= の一行を ifcfg-eth? から抜いて
おくというのが良いと思います。
とりあえず次の initscripts-7.2.5-0vl1 で上の curdev の修正だけ
いれておきます。 |
|
|
|
この修正だけではちょっと挙動がおかしいみたいなので、いったん保留に
もどします。 |
|
|
|
バグしい部分については修正はしました。
HWADDR が設定されているときに、該当するインタフェースがない場合に
FAILED になるのは仕様なので、そこは変えてありません。必要に応じて
HWADDR を削除してください。
initscripts-7.2.5-0vl1 です。 |
|
|
|
> バグしい部分については修正はしました。
> HWADDR が設定されているときに、該当するインタフェースがない場合に
>
> FAILED になるのは仕様なので、そこは変えてありません。必要に応じて
>
> HWADDR を削除してください。
> initscripts-7.2.5-0vl1 です。
上記を参考にパッチを当てたところ
起動時にLANに接続する様になりました。 |
|
|
|
> 上記を参考にパッチを当てたところ
> 起動時にLANに接続する様になりました。
β3 で HWADDR を付けたり消したり、わざと
間違った MAC アドレスを付けたりしてテスト
してみましたが、想定通りの動作をすることが
確認できました。
状態を完了に変更します。 |
|