vine-users ML アーカイブ



[vine-users:050284] NIC のモジュール組み込み失敗について

  • From: AKAGI Keita <oak@xxxxxxxxxxxxxxxxx>
  • Subject: [vine-users:050284] NIC のモジュール組み込み失敗について
  • Date: Sat, 11 May 2002 01:02:30 +0900
はじめまして、赤木と申します。

  Vine Linux 2.5がリリースされて何台かのマシンにインストール
してみましたが、一部マシンでNICのモジュール組み込みを失敗するのです。
何かと思いつつ調べて見たところ、

/etc/sysconfig/network-scripts/network-functions

内にてと思われる箇所をみつけまして、修整してみました。
  ISA NICを使用し /etc/modules.conf に IO ADDR や IRQ を指定して
認識させている方には有益ではないでしょうか?
先日まで、 rc.sysinit にmodprobe eth0 等と書いて回避していました。

修整内容です。
---- 以下は標準の /etc/sysconfig/network-scripts/network-functions--
is_available ()
{
 LC_ALL= LANG= ip -o link | grep -q $1
 if [ "$?" = "1" ]; then
    alias=`modprobe -c | awk "/^alias $1 / { print \\$3 }"`
    if [ -z "$alias" -o "$alias" = "off" ]; then
        return 2
    fi
    modprobe $alias >/dev/null 2>&1|| {
      return 1
    }
 else
        return 0
 fi
}
----------------------------------------------------------------

以下修正後の  /etc/sysconfig/network-scripts/network-functions
is_available () から5行目を

    alias=`modprobe -c | awk "/^alias $1 / { print \\$2 }"`

  の様に修整します( \\$3 を \\$2 に)と、うまくいきます。

  is_available は、 /sbin/ifup からNICモジュールを組み込む時
呼ばれます。モジュールの組み込みの必要があれば、
    alias=`modprobe -c | awk "/^alias $1 / { print \\$3 }"`
によって、該当 NIC の alias が設定されているか調べられますが、
取りだされる文字列がモジュールファイルそのものになっています。
その後、それをmodprobe で組み込みますが、切角 alias 切って
オプションで IO & IRQ を設定してるのに、無視してモジュール
そのものを組み込もうとしているため問題が発生したみたいです。
    alias=`modprobe -c | awk "/^alias $1 / { print \\$2 }"`
にすることによって、 alias による組み込みにしました。

誰かのお役にたてれば幸です。
それでは。
-- 
/*--------------------------------------------------------------------*/
   E-mail : oak@xxxxxxxxxxxxxxxxx
   Home Page : http://www.05.alphatec.or.jp/~oak/
                          Real name : Keita Akagi     Nickname : oak 
/*--------------------------------------------------------------------*/