#navi(FAQ)
カテゴリー: ハードウェア対応
* ネットワークカードのドライバにどれを選んだらいいのかわかりません.なにかいい方法はありませんか? [#b05c425e]
RIGHT:2005-03-21 10:07:31 (月)投稿
RIGHT:登録者: Plamodocs Project
----
複数のネットワークカードがある場合には対応していませんが,plamo の次期バージョン(おそらく 4.0)に実装する予定(未定であり,確定ではありません)のコードを紹介します.~
※ 4,0x にはすでに実装されています.~

このコードを実行すると自動的に適切な PCI バス接続のネットワークカードのドライバを選択してくれます.~
※ 複数のカードに対応したスクリプトについては,plamo-ML の記事,[[[plamo:21865]>http://www.linet.gr.jp/ML/plamo/200401/msg00273.html]] を参照してください.

plamo をインストールした時点での kernel の場合,ネットワークカードのドライバ類は, 大概のものがモジュール(m)として組み込まれるか,カーネル組み込み(y)になっていますので, よほど特殊なカードを除いて,カーネルの再構築をしなくても認識されるはずです.~
/boot/config の # Ethernet (10 or 100Mbit) 以下や,# Ethernet (1000 Mbit) 以下を確認してください. このコードは,ここで =m となっているドライバを検出します.

スクリプトの内容は以下の通りです. (次期バージョンに実装予定のものは,自動的にモジュールのロードまで行なうようになっていますが, ここでは,モジュール名を出力するところまでで終了しています.)

 #!/bin/sh
 vers=`uname -r`
 v_id="0x0000"`/sbin/lspci -n | grep 0200 | gawk '{print $4}' | cut -f 1 -d ':' | head -1`
 p_id="0x0000"`/sbin/lspci -n | grep 0200 | gawk '{print $4}' | cut -f 2 -d ':' | head -1`
 mod=`grep $v_id /lib/modules/$vers/modules.pcimap | grep $p_id | head -1 | gawk '{print $1}'`
 echo $mod

詳しい使い方については,内容的に サウンドの項 に書かれているのと同じですので,そちらを参考にしてください.~
ここでは,便宜的にこのコードを netcard.sh に保存して実行,選択されたモジュール(この例では, 8139cp)をロードして,最後に /etc/rc.d/rc.modules か /etc/modules.confに設定するまでを説明します.
 ~$ /sbin/lspci
の出力をみて,Ethernet という言葉が含まれている行が,マシンに装着されているネットワークカードの情報です.

次のようにコードを保存したファイル netcard.sh に実行属性を付けて,実行します.
 ~$ chmod +x netcard.sh
 ~$ ./netcard.sh
 8139cp
 ~$
検出されたドライバモジュール(8139cp)をロードします.
 ~$ su
 Password:
 ~# /sbin/modprobe 8139cp
ロードされたか確認します.
 ~$ /sbin/lsmod
lsmod の出力に 8139cp があれば,間違いなくロードされています.( 4.0x では,/bin/lsmod です.)

plamo のインストール時に,適切にネットワークの設定を行なっていれば, この状態でネットワーク接続が可能になります.~
ネットワークの設定を行なっていない場合は,root になって,/sbin/netconfig や,/sbin/ifconfig(こちらは上級者向け)コマンドを使って設定してください.

ネットーワークの設定が間違いなくできているのを確認するには, /sbin/ifconfig や,/bin/netstat -r コマンドを使ってみましょう.
 ~$ /sbin/ifconfig
ifconfig の出力に,次のような eth0(一枚目のネットワークカード) に関する情報があるか確認します.
 eth0  Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
     inet addr:192.168.1.20 Bcast:192.168.1.255 Mask:255.255.255.0
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
     RX packets:6367 errors:0 dropped:0 overruns:0 frame:0
     TX packets:6295 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:100
     RX bytes:1602112 (1.5 Mb) TX bytes:1064269 (1.0 Mb)
     Interrupt:3 Base address:0xd400

 ~$ /bin/netstat -r
netstat -r の出力(Kernel IP routing table)をみて,次のような default の Destination,Gateway の指定,Flags の項目に UG と示されるものがあるか, Iface の項目に eth0 と示されているものがあるか,確認します.
 Kernel IP routing table
 Destination  Gateway    Genmask    Flags MSS Window  irtt Iface
 192.168.1.0   *      255.255.255.0   U   40 0     0 eth0
 127.0.0.0    *      255.0.0.0    U   40 0     0 lo
 default   sv.hogefuga.jp  0.0.0.0     UG   40 0     0 eth0
ネットワーク接続が確認できたら,起動時にネットーワークドライバモジュールをロードするように設定しておきましょう.

起動時にモジュールをロードする設定の場合は,次のようにして,/etc/rc.d/rc.modules に書き込みます.
 ~$ su
 Password:
 ~# echo '/sbin/modprobe 8139cp' >> /etc/rc.d/rc.modules
 ~# /sbin/depmod -a
先の過程で modprobe していますから,一度 rmmod でモジュールを外し, /etc/rc.d/rc.modules の設定を有効にします.
 ~# /sbin/rmmod 8139cp
 ~# /etc/rc.d/rc.modules restart
もう一つの方法である,eth0 を使用する時には kmod の機能によって,常にモジュール 8139cp をロードするように設定する場合も,一度 rmmod でモジュールを外し,/etc/modules.conf に次のように書き込み,depmod -a を実行して,/etc/modules.conf の設定を有効にします.
 ~$ su
 Password:
 ~# /sbin/rmmod 8139cp
 ~# echo 'alias eth0 8139cp' >> /etc/modules.conf
 ~# /sbin/depmod -a

----
この件に関して追加情報などありましたら、以下にどうぞ;
-Plamo-4.02ではまずmurasakiを最新のmurasaki-0.8.10-i386-P4.tgzに更新し状況が改善されない時このFAQの作業を行ってみてください。 -- [[名倉]] &new{2005-04-27 (水) 08:32:09};


#navi(FAQ)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS