#navi(FAQ) カテゴリー: ハードウェア対応
複数のネットワークカードがある場合には対応していませんが,plamo の次期バージョン(おそらく 4.0)に実装する予定(未定であり,確定ではありません)のコードを紹介します.
※ 4,0x にはすでに実装されています.
このコードを実行すると自動的に適切な PCI バス接続のネットワークカードのドライバを選択してくれます.
※ 複数のカードに対応したスクリプトについては,plamo-ML の記事,[plamo:21865] を参照してください.
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
この件に関して追加情報などありましたら、以下にどうぞ;