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

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

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

先日AMDのサイトからネットワークカードのlinux用ドライバをDLしました。 とりあえずPCNET32.CコンパイルしてPCNET.oを作成し/lib/modules/2.2.17-0vl10/netにインストールすればいいらしいのですが、うまくコンパイルができずドライバをインストールすることができません。ちなみにインターネットでしらべて #gcc -D_KERNEL_-DMODULE -Wall -Wstrict-protptypes -O6 -m486 -c PCNET32.c と打てばいいのらしいですが、そのファイル名は見つかりませんとでます。 ちなみにPCNET.Cは/lib/modules/のところにおいて、cd/lib/modlulesに移動して上記のコマンドをうっています。なぜコンパイルできないのでしょう?

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

  • ベストアンサー
  • 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

  • Debian(amd64)でdriverをコンパイルに失敗する

    Debian(amd64)でdriverをコンパイルに失敗する DebianでPT1のドライバをコンパイルしようとしたところ、 make[1]: ディレクトリ `/lib/modules/2.6.26-2-amd64/build' に入ります make[1]: *** ターゲット `modules' を make するルールがありません。中止 make[1]: ディレクトリから `/lib/modules/2.6.26-2-amd64/build' 出ます make" ***[pt1_drv.ko] エラー 2 となりドライバが作成できません。 調べたところmakeに失敗するのは下記がバージョンがずれているときと出ていましたがこれ以上は疎くわかりません。 dpkg -l | grep linux-source ii linux-source-2.6.26 2.6.26-24lenny1 dpkg -l | grep linux-headers ii linux-headers-2.6.26-2-amd64 2.6.26-24lenny1 ii linux-headers-2.6.26-2-common 2.6.26-24lenny1

  • ALSAドライバーについて

    こんにちは Linux初心者です。 ALSAドライバーをインストールする際のエラーメッセージについての質問です。 Fedora Core 5 (2.6.15-1.2054_FC5smp ) ALSA driver (alsa-driver-1.0.12) [root@infel5 alsa-driver-1.0.12]# ./configure checking for current directory... /tmp/alsa/alsa-driver-1.0.12 checking cross compile... checking for directory with kernel source... /lib/modules/2.6.15-1.2054_FC5smp/source checking for directory with kernel build... /lib/modules/2.6.15-1.2054_FC5smp/build checking for kernel linux/version.h... no The file /lib/modules/2.6.15-1.2054_FC5smp/source/include/linux/version.h does not exist. Please install the package with full kernel sources for your distribution or use --with-kernel=dir option to specify another directory with kernel sources (default is /lib/modules/2.6.15-1.2054_FC5smp/source). 一番最後に出てくるカーネルソースのエラーメッセージを解消できず 先に進めない状態です。 初歩的な質問かもしれません。 初心者なりに色々と調べたみたんですけど、うまくいきませんでした。 もしよろしければご指南お願いします。

  • Linuxドライバのインストール

     Fedora7を使い始めて1ヶ月ほどなんですが(Linuxを使い始めて1ヶ月でもあります)。Windowsとのデュアルブート構成で使い分けをしているのですが、どうもLinux動作中のCPUファンがうるさい事に気がつきました。  よくよく考えてみると、ドライバ類をインストールせず標準の環境で十分に動いていたのですが、CPU固有の機能などを考えるとやはりドライバをインストールするべきだと思いました。  以下にPC構成を簡単に書きます。 ・CPU:AMD Athlon64 X2 5200+ ・M/b : GA-M55s-s3 ・Mem : 2GB DualChannel ・HDD : Serial ATA ・Video : WinfastGeForce8600GT TDH です。ここで、M/B及びvideoは各メーカーからLinux用ドライバが提供されていないのでFedora7が標準で搭載したものを使うしかないのですが。  もっとも煩いCPUに関してはAMDから「AMD Athlon™ 64 X2 Dual Core Processor Cool'n'Quiet Driver Version 1.50.03 Linux」というドライバが出ています。  もうひとつ、「AMD Turion™ 64 Mobile Technology, AMD Opteron™ Processors, and AMD Athlon™ 64 Processors Driver Version 1.60.01 for Linux 2.6」  というのも出ていてどちらも適用しようと思ったのですが、ダウンロードしたtar.bz2ファイルを解凍し中を見ると、「.c」「.h」とソースファイルがそのまま入っていました。  これは、コンパイルしてから使えということなのでしょうか?  そうだとするとコンパイルはどうやればいいのでしょう?  コンパイル後のファイルをどうすればいいのでしょうか? ご教授よろしくお願いします。

  • NICの認識のさせ方を教えて下さい。

    Redhat9をノートPCにインストールしました。 しかし、LANカードを起動時に認識してくれなく困っています。FEther2 cb-txdのcorega製です。 http://www.corega.co.jp/product/os/pc_unix.htm いくつかそれらしい所を検索して見ました。 しかし、何を書いて有るのかがよく分からない状態です。 コンパイルは(# gcc -MD -c -O2 -I/usr/src/linux/pcmcia-cs-3.1.12/include -D__KERNEL__ -DEXPORT_SYMTAB -DMODVERSIONS -include /usr/src/linux/include/linux/modversions.h -DMODULE -DCARDBUS rtl8139.c -o realtek_cb.o )を通り打ち込んでもエラーがでて上手く行きません。 バージョンが違うのが問題なのか、コマンドの基本的な何かを間違っているのか初心者ですので、基本的な部分が分を含めてご指導下さる方お願いします。

  • LINUX INSMOD

    QNo.1907291(この問題は解決)の続きです。 教えてください。 リアルテックのRTL8185L無線LANボードをLINUX OSのPCIボードに組み込もうとしています。 デバイスドライバ(rtldrv.o)を用意し、insmodした所、 ~ # insmod rtldrv.o Using /lib/modules/2.4.20/kernel/drivers/net/wireless/rtldrv.o insmod: init_module: rtldrv: No such device 何ででしょうか?(TT)

  • Debian squeezeのカーネルソースの場所

    現在、Debian squueze(kernel:2.6.32-5-amd64)を入れたPCに 無線LAN(RaLink RT2860)のドライバをインストール(コンパイル)するため、 付属のReadmeを読みながらMakefileの設定を行っています。 しかし、肝心のカーネルソースが自分のPCのどこにあるか分からず、 Makefile内のカーネルソース(LINUX_SRC)をどう指定すればよいのか分かりません。 どのように設定、もしくはどのようにして調べたら良いのでしょうか? Makefile内の該当箇所を以下に抜粋します。 (このままmakeを実行してもエラーが出ます。) =================================================== ifeq ($(PLATFORM),PC) # Linux 2.6 LINUX_SRC = /lib/modules/$(shell uname -r)/kernel/build # Linux 2.4 Change to your local setting #LINUX_SRC = /usr/src/linux-2.4 LINUX_SRC_MODULE = /lib/modules/$(shell uname -r)/kernel/drivers/net/wireless/ CROSS_COMPILE = endif =================================================== Linuxを始めてまだ一週間程度で右も左も分からないので、 変な質問の仕方をしているかもしれませんが、 是非ご教授、アドバイス等を頂きたいと思います。 よろしくお願いします。

  • Macのターミナル

    今学校でC言語を学んでいるものです。 今「sample.c」というファイルがあり、これをコンパイルしたいのですが、 学校(Linux)のターミナルでコンパイルするように 「% gcc -Wall -o sample sample.c」 と入力しても 「-bash: gcc: command not found」 と言われてしまいます。 どうしてでしょう? わかるかたがいたら教えてください。

    • ベストアンサー
    • Mac
  • linux intel グラフィックドライバインストールNG

    すみません!!!たすけてください!!!! Suse10 にグラフィックドライバのintel IEGD入れようとしたら最後にエラーになりました。 何がわるいのでしょうか? >modprobe iegd_mod FATAL: Error inserting iegd_mod (/lib/modules/2.6.16.60-0.37_f594963d-default/kernel/drivers/char/agp/iegd_mod.ko): Unknown symbol in module, or unknown parameter (see dmesg) 以下実施した手順です。intelのマニュアル通りしました。 1 tar-xvzf IEGD_9_0_2_Linux.tar.gz 2 cd IEGD_9_0_2_Linux/Driver/IEGD_9_0_2_Linux 3 cp *.so /usr/X11R6/lib/modules 4 cp libXiegd_escape.so.2.0.0 /usr/X11R6/lib 5 cd /usr/X11R6/lib/ 6 ln -s libXiegd_escape.so.2.0.0 libXiegd_escape.so 7 ln -s libXiegd_escape.so.2.0.0 libXiegd_escape.so.2 8 ldconfig 9 make cloneconfig 10 make scripts && make prepare 11 cd /lib/modules/2.6.16.60-0.37_f594963d-default/ 12 \rm -rf build 13 ln -s /usr/src/linux-2.6.16.60-0.37_f594963d build 14 cd IEGD_Patches/IKM/ 15 ./install.sh 16 depmod -a 17 modprobe iegd_mod 18 depmod -a 19 modprobe iegd_mod FATAL: Error inserting iegd_mod (/lib/modules/2.6.16.60-0.37_f594963d-default/kernel/drivers/char/agp/iegd_mod.ko): Unknown symbol in module, or unknown parameter (see dmesg) 途中でエラーは出てなかったです。助言お願いします。

  • 組み込みLinuxのmakeについて

    現在、組み込みlinuxの開発をいるのですが 今までWindowsアプリケーションしかやっていなかった為 勉強しながら作業をしております。 質問なのですが クロス環境で実行ファイルを作成する場合、コンパイル・リンクオプションで どの様な指定が必要なのでしょうか? お手数をおかけしますが、アドバイスを頂けないでしょうか。 評価ボード :NTNP425B (Intel IXP425) 開発マシンOS:RedHatLinux 9 ------ 私が指定したのは以下のオプションですが これをターゲット上で実行すると「segmentation fault」が発生します。 arm-linux-gcc -t -I/usr/local/arm-linux/include -mcpu=xscale -mtune=xscale -mbig-endian -I/usr/local/arm-linux/include -c sample.c arm-linux-ld -EB -nostdlib -o sample sample.o arm-linux-ld: warning: cannot find entry symbol _start; defaulting to 00008074 ※至急回答がほしい為、マルチポストをしていますがお許し下さい。

  • Linuxのドライバについて

    先日、LinuxのUbuntuを初めてパソコンにインストールしました。 現在初回再起動の後、という状態なのですが、 LinuxにもWindowsと同じようにドライバをインストールしてもよいのでしょうか。 私がいつもWindowsにインストールしていたドライバは以下のものです。 マザーボード ドライバ ビデオカード ドライバ ただ、マザーボードドライバをインストールしなくてもインターネットに繋がっていますし 音もちゃんとなっています。 ということは、インストール時のドライバの中にマザーボード関連のドライバがあって、 すでにインストールされたのでは、と思っています。 このような場合でも、マザーボードドライバはインストールするべきでしょうか? またビデオカードドライバも(私の場合は)AMDのサイトからダウンロードしてきて、 Windowsと同じようにインストールすればいいのでしょうか? よろしくお願いします。