• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:linuxでNICのドライバ組み込みについて)

LinuxでNICのドライバ組み込みについて

このQ&Aのポイント
  • LinuxでNICのドライバ組み込みについて学ぼう
  • AMDのサイトからネットワークカードのlinux用ドライバをDLしましたが、ドライバのインストールができません
  • PCNET32.cファイルのコンパイルがうまくできず、ドライバの組み込みができません

質問者が選んだベストアンサー

  • ベストアンサー
  • h_hikita
  • ベストアンサー率40% (104/257)
回答No.5

□ええと、とりあえず内容を解説すると、 DEVICE: 使うインターフェース名この場合 eth0でOK BROADCAST: ブロードキャストアドレスと言う奴で同じサブネットのマシンに一斉に 情報を送る時に使います。 IPADDR このマシンのIPアドレス NETMASK このネットワークのネットマスク 255.255.255.240と言う事は下位4ビット分が ホストでつかわれます。 NETWORK 上位28ビット分の数字を同じサブネットとして扱います。 ONBOOT 起動時に有効にするかどうかの指定です。 BOOTPRTO DHCPプロトコルで自動的に設定を割り当てるかどうかの指定です。 □ 今回のように、DHCPで自動的にアドレスを割り当てる場合は、 ifcfg-eth0の内容は DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes の三行だけで十分です。あとはDHCPサーバから自動的に情報を取ってきます。 ( rpm -q dhcp とかしてdhcpのクライアントがインストールされてる事は 一応確認してみてください) □pingの表示については、自分自身をpingした場合は以下のように成ればOKです。 (この場合、自IPは192.168.0.2 netmask 255.255.255.0) $ ping 192.168.0.2 PING 192.168.0.2 (192.168.0.2) 送信元 192.168.0.2 : 56(84) bytes of data. 64 バイト応答 送信元 192.168.0.2: icmp_seq=0 ttl=255 時間=89 マイクロ秒 64 バイト応答 送信元 192.168.0.2: icmp_seq=1 ttl=255 時間=50 マイクロ秒 64 バイト応答 送信元 192.168.0.2: icmp_seq=2 ttl=255 時間=49 マイクロ秒 64 バイト応答 送信元 192.168.0.2: icmp_seq=3 ttl=255 時間=49 マイクロ秒 64 バイト応答 送信元 192.168.0.2: icmp_seq=4 ttl=255 時間=51 マイクロ秒 64 バイト応答 送信元 192.168.0.2: icmp_seq=5 ttl=255 時間=49 マイクロ秒 --- 192.168.0.2 ping 統計 --- 送信パケット数 6, 受信パケット数 6, パケット損失 0% Round-Trip 最小/平均/最大/mdev = 0.049/0.056/0.089/0.015ミリ秒 $ 上記のような表示でもインターネットに接続できないなら、default routeを 設定してみてください。GUI上からはどこから設定するかはちょっと判らないの ですが、ifcfg-eth0は多分以下のような感じになるとおもいます。 DEVICE=eth0 IPADDR=192.168.1.10 NETMASK=255.255.255.240 BROADCAST=192.168.1.15 NETWORK=192.168.1.0 MTU=1500 GATEWAY=192.168.1.1 ONBOOT=yes □あと他に確認する点としては、 ・ルータにpingをしたとき同様に返事が返ってくるか? % ping 192.168.1.1 ← ここはルータのアドレスを指定。 ・/sbin/lsmod としたときにどうなるか? $ /sbin/lsmod Module Size Used by pcnet32 37120 1 sound 60544 0 (unused) などとなればOKなはず。(モジュールのサイズは違うとおもいます)。 ・/sbin/netstat -rn の実行結果以下のような感じになるとおもいます。 $ netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.1.0 * 255.255.255.240 U 0 0 0 eth0 127.0.0.0 * 255.0.0.0 U 0 0 0 lo default router 0.0.0.0 UG 0 0 0 eth0 ・ifconfigの表示結果はどうなるか?多分以下のような風になるはずです。 $ /sbin/ifconfig eth0 eth0 リンク方法:イーサーネット ハードウェアアドレス 6A:79:26:4B:10:00 inetアドレス:192.168.1.10 ブロードキャスト:192.168.1.15 マスク:255.255.255.240 UP BROADCAST RUNNING MTU:1500 Metric:1 RXパケット:28513 エラー:0 損失:0 オーバラン:0 フレーム:0 TXパケット:22126 エラー:0 損失:0 オーバラン:0 キャリア:0 衝突(Collisions):0 TXキュー長:100 割り込み:17 ベースアドレス:0xd000

katupon
質問者

お礼

ありがとうございます。どうにかできました。なにからなにまでありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (4)

noname#1024
noname#1024
回答No.4

ネットワークの構成がわかんないので、"変だな?"って思ったところだけ指摘します。 > DIVICE=eth0 ↑DEVICE = eth0の間違いですよね? > IPADDR=192.168.1.10←winipcfgででていました。 > 略 > BOOTPRTO=dhcp←ルータでLAN上のIP振り分けているらしいです。 IPアドレスを指定した上にdhcpを指定してるのは、"へんだな?" って思います。 それとも、普通そういうものなのでしょうか?(って言うか、ルータでIPを振り分けていると 書いておきながら、IPも書いているのはやっぱりおかしいと思う。) あと、 # ifconfig ってうつと、どういう結果が出るでしょう?

すると、全ての回答が全文表示されます。
  • h_hikita
  • ベストアンサー率40% (104/257)
回答No.3

下の捕捉です。運試しに、/etc/conf.modulesに alias eth0 pcnet32 のように、etherの0番はpcnet32というモジュールを使いますという 記述を付け加え、rootになり # /sbin/depmod -a (←モジュールの依存関係を再構築してね。) # /etc/rc.d/init.d/network restart (← ネットワークを再起動してね。) とかいう感じでコマンドを実行すると幸せになれるかも。 だめだったら、AMDのソースをコンパイルしなおしてpcnet32.oを /lib/modules/2.2.17-0vl10/netにコピーし上記手順を 再度行ってみるとよいです。

katupon
質問者

お礼

いつもありがとうございます。とりあえずconf.modulesに追加してネットワーク再起動そしてifcfg-eth0ファイルを書き換えましたが結果不幸せでした‥ 次にコンパイルしてpcnet32.oを/lib/modules/2.2.17-0vl10/netコピーして 上記の手順で行いましたが同じでした。ちなみにifcfg-eth0の内容は DIVICE=eth0 BRADCAST=192.168.1.255←よくわからないのでこのまま IPADDR=192.168.1.10←winipcfgででていました。 NETMASK=255.255.255.240←winのwinのwinipcfgででていました。 NETWARK=192.168.1.0←よくわからないのでこのまま ONBOOT=yes←よくわからないのでこのまま BOOTPRTO=dhcp←ルータでLAN上のIP振り分けているらしいです。 にして 上書き保存ネットワークリスタートして #ping 192.168.1.10とうちました。 しばらくして 64 bytes from 192.168.1.10‥‥      ・       ・ 延々このメッセージが続いて終わりません もちろんインターネットもつながりません。 とりあえずここまでいったということはNICは認識されているのでしょうか?ifcfg-eth0の内容がおかしいのでしょうか?

すると、全ての回答が全文表示されます。
  • h_hikita
  • ベストアンサー率40% (104/257)
回答No.2

ええと、 ・PCNET32.cではなくて、 pcnet32.c (全部小文字) ・場所てきには、/libでなくて /tmpとか~/tmpで大丈夫です。 ・readmeによるとコマンドとしては、以下のようです。 gcc -D__KERNEL__ -DMODVERSIONS -DMODULE -I/usr/src/linux/net/inet -w -Wstrict-prototypes -O6 -m486 -c pcnet32.c といったところでしょうか...あと、2.2.17ならpcnet32汎用のドライバが最初から 入っているので運が良ければそれでとりあえず動くかとおもいます。

すると、全ての回答が全文表示されます。
  • N-T
  • ベストアンサー率40% (15/37)
回答No.1

そもそも gcc がインストールされているでしょうか。 rpm -qa|grep gcc で確認できます。

すると、全ての回答が全文表示されます。

関連するQ&A