• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ドライバのインストール時にエラーが出ます。)

ドライバのインストール時にエラーが出ます。ドライバのインストール時にエラーが出ます。

このQ&Aのポイント
  • ドライバのインストール時にエラーが発生し、解決方法を求めています。
  • インストールしたLinux CentOS5.4でネットワークの設定が表示されず、ドライバのインストールが必要です。
  • ドライバのインストール手順を試しているがエラーが発生し、Kernelの有無とインストール方法について教えてほしい。

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

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.6

>OSインストール時はbaseのインストールだけしました。 >開発環境についてはインストールしていないと思います >(お恥ずかしいながら開発環境と呼ばれるものが何かわかりません) コンパイラなどが入っていない…ということです。 インスートルDVDをマウントしてから、 yum --disablerepo=\* --enablerepo=c5-media groupinstall "Development Tools" と yum --disablerepo=\* --enablerepo=c5-media groupinstall "Development Libraries" で開発環境とライブラリをインスートルして下さい。 # ライブラリは…インストールしなくても行けるかも知れませんが…念のため。 >cat /proc/versionのコマンドで ソレはkernelのパッケージをビルドしたときのものです。 今回はとりあえず関係ありません。

poohtaka
質問者

お礼

ありがとうございます。 結論から言うとたぶん解決できました! 手元のマニュアルには開発環境とライブラリのインストールは 特に記載されていませんでしたが(その後のページでも。。。) 初心者向けのインストール方法を記載しているサイトでは 開発環境とそのライブラリはインストールしておいたほうが良い とかいていました。 教えていただいたyumのコマンドなのですがエラーが出て無理だったのです。。。 まさかと思っているのですがyumのパッケージも何にも入っていいないので yumも使えないのかななあと。。。 今回はドライバの問題を解決したいことだったので 取り急ぎCentOSを再インストール(→今思うとrpmでインストールできたと思うのですが、、、、)し インストールの時点でDevelopment ToolとDevelopment Librariesをインストールしました。 あとは最初に書いたようにファイルを展開し、 ドライバのkcompat.h側を編集しmake installを実行しました Lanケーブルを差込再起動し、ifconfigを実行したところ 今まででなかった eth0 の文字があったのでドライバのインストールが成功したと思っています。 ※後々知ったのですがyumのパッケージが入っているかは rpm -qa | grep yumで確認できることを知りました。。。 再インストールをしないでyumのパッケージを調べればよかったです。 yumのコマンドもこれからは必要になってくると思うので勉強します。 開発環境やライブラリ、kernel、ドライバのインストール方法など 長々とお付き合い頂きありがとうございました。 大変勉強になりました。本当にありがとうございました

その他の回答 (5)

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.5

回答に抜け(?)が… >・dvdからrpmでファイルをインストールしたのですが >カーネルの再構築をするものなのでしょうか? rpmでインストールしている場合は、通常は再構築(make manuconfigなど)は行いません。 /boot にconfig-2.6.xxxxx というファイルでインストールしているkernelの.configのコピーが置かれているハズです。 自前でkernelをビルドする場合は、当然再構築を行うことになりますが。 # 2.6.18じゃなくて、2.6.34に入れ替えたい…とかの場合。 # ただし、その場合はディストリビューション側で設定したパッチなどは当たっていない状態になりますので、 # 周辺のツールでうまく動作しないものやバージョンの差異による動作の違いなどが発生する可能性があります。 # だいたいは問題ないと思いますが……exec-shieldなどがkernel.orgから取得したヤツで動作するかどうか…とか。 ATOMマザー使っていると、kernelを最新に入れ替えたいとか思うんですけどねぇ… # NICが誤認識していたり…最近はkernel更新のたびにNICのモジュールをビルドしなおしです。

poohtaka
質問者

お礼

なるほど。詳しく説明していただきありがとうございました。 >ATOMマザー使っていると、kernelを最新に入れ替えたいとか思うんですけどねぇ… ># NICが誤認識していたり…最近はkernel更新のたびにNICのモジュールをビルドしなおしです。 検索中にいくつかこのような記事を見ました。 更新の度に手間ですね。。。。。 職場には木曜日に行くので回答No.6で必要な環境を入れます。

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.4

>少し事情があり一度CentOS5.4をアンインストールをし >CentOS5.5をインストールしました(もしかして何か対応が変わるかもとも思って) >Makefile:118 *** Compiler not found. Stop. インストールしなおした時に、開発環境のインストールはしましたか? cc --version または gcc --version でコンパイラのバージョンが表示されますか? # Makefileの118行目を見ると、コンパイラのバージョンが取得出来なかったとき(インストールされていない時)に # 上記のメッセージが出るようですが…。

poohtaka
質問者

お礼

ありがとうございました なるほどMakefileが実行手順(のような)ファイルでエラーの行数が わかるのですね。勉強になります OSインストール時はbaseのインストールだけしました。 開発環境についてはインストールしていないと思います (お恥ずかしいながら開発環境と呼ばれるものが何かわかりません) cat /proc/versionのコマンドで Linux version 2.6.18-194.el5(mockbuild@builder16.centos.org)(gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Fri Apr 2 14:58:35 EDT 2010 と返ってきました gccはおそらくversion4.1.2と思われますが ccがわかりません(すみません。) #インストールした際何か初期設定が必要ということなんですね。。。

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.3

VIDとPIDはビルドしようとしているドライバでOKですね。 んで、ビルド時のエラーはnapi_struct構造体の再定義…と。 手元のでは… /usr/src/kernels/2.6.18-194.3.1.el5-i686/include/linux/netdevice.h で定義されています。 内容見ると…kernel側の方がメンバ多いですな……。 とりあえず、kcompat.h側を編集してビルドは通りました。 ドライバとして正しく使えるかは…手元にデバイスが無いので不明ですが… 1573行目の >#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) ) を >#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,12) ) に書き換えてビルドしてみました。

poohtaka
質問者

お礼

いつも回答ありがとうございます。 とても有難いです dvdから rpm -Uvh kernel-devel-2.6.18-194.el5.i686.rpm をインストールし /usr/src/kernels/2.6.18-194.el5-i686/が出来 ln -s linux とシンボリックリンクを張りました 再びインストールしたいフォルダに行き src/の下でmakeのコマンドを打つと Makefile:118 *** Compiler not found. Stop. とエラーが出ました。 教えて頂いたkcompat.hを編集しても同じエラーがでます。 疑問があるので教えてください。 ・dvdからrpmでファイルをインストールしたのですが カーネルの再構築をするものなのでしょうか? (自分なりにも調べていたらカーネルの再構築など時折見かけました。)

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.2

>はいってるはずなのになんでエラーが出るのか疑問です。。。 入っているのは、ビルドしてできあがったバイナリです。 ドライバの要求しているモノは、ビルドする前の段階のものです。 # カーネルの設定なども済んでいる段階のモノ…ということになろうかと。 >yumのコマンドがパッケージのアップデートであることは知っていますが >サーバーに接続して使用するものだと思っています。(これが間違いでしょうか?) 待ちがってはいませんが…インストール時に使用したメディアからもyumを使ってパッケージのインストールは可能です。 /etc/yum.repos.dにCentOS-Media.repoがあるかと思われますが… 中に使い方が書かれています。 試しにビルドしてみました。 # CentOS5.4からアップデートしたCentOS5.5にて。 # kernel更新してもシンボリックリンク張り直してくれないのか、/usr/src/linuxはリンク切れしてましたが。 [root@localhost arl1e]# make make -C ./src make[1]: ディレクトリ `/usr/src/arl1e/src' に入ります make -C /lib/modules/2.6.18-194.3.1.el5/build SUBDIRS=/usr/src/arl1e/src modules make[2]: ディレクトリ `/usr/src/kernels/2.6.18-194.3.1.el5-i686' に入ります CC [M] /usr/src/arl1e/src/at_common_main.o In file included from /usr/src/arl1e/src/at_common.h:4, from /usr/src/arl1e/src/at_common_main.c:1: /usr/src/arl1e/src/kcompat.h:1575: error: redefinition of ‘struct napi_struct’ make[3]: *** [/usr/src/arl1e/src/at_common_main.o] エラー 1 make[2]: *** [_module_/usr/src/arl1e/src] エラー 2 make[2]: ディレクトリ `/usr/src/kernels/2.6.18-194.3.1.el5-i686' から出ます make[1]: *** [default] エラー 2 make[1]: ディレクトリ `/usr/src/arl1e/src' から出ます make: *** [all] エラー 2 [root@localhost arl1e]# ……… /usr/src/kernels/2.6.18-194.3.1.el5-i686/include/linux/version.h を見ると… #define LINUX_VERSION_CODE 132626 ……132626=0x206012。 2.6.12とかになっているし…ダメそ~です。 rpmを作成できるspecファイルもあるようでしたが…ビルド通らないんじゃなぁ…。 一応、lspciとlspci -nでなんと出ますかね?

poohtaka
質問者

お礼

ありがとうございます。引き続きドライバのインストールをしていきます

poohtaka
質問者

補足

早々の回答ありがとうございます lspciを打つと 00:00.0 Host bridge: Intel Corporation Core Processor DRAM Controller (rev 12) 00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 12) 00:1a.0 USB Controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06) 00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06) 00:1c.0 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 1 (rev 06) 00:1c.2 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 3 (rev 06) 00:1d.0 USB Controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06) 00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a6) 00:1f.0 ISA bridge: Intel Corporation 5 Series Chipset LPC Interface Controller (rev 06) 00:1f.2 IDE interface: Intel Corporation 5 Series/3400 Series Chipset 4 port SATA IDE Controller (rev 06) 00:1f.3 SMBus: Intel Corporation 5 Series/3400 Series Chipset SMBus Controller (rev 06) 00:1f.5 IDE interface: Intel Corporation 5 Series/3400 Series Chipset 2 port SATA IDE Controller (rev 06) 02:00.0 Ethernet controller: Atheros Communications AR8131 Gigabit Ethernet (rev c0) lspci -nを打つと 00:00.0 0600: 8086:0040 (rev 12) 00:02.0 0300: 8086:0042 (rev 12) 00:1a.0 0c03: 8086:3b3c (rev 06) 00:1b.0 0403: 8086:3b56 (rev 06) 00:1c.0 0604: 8086:3b42 (rev 06) 00:1c.2 0604: 8086:3b46 (rev 06) 00:1d.0 0c03: 8086:3b34 (rev 06) 00:1e.0 0604: 8086:244e (rev a6) 00:1f.0 0601: 8086:3b06 (rev 06) 00:1f.2 0101: 8086:3b20 (rev 06) 00:1f.3 0c05: 8086:3b30 (rev 06) 00:1f.5 0101: 8086:3b26 (rev 06) 02:00.0 0200: 1969:1063 (rev c0) と出ました。 文字入力の制限ですみませんが 1の回答の方に補足させて頂きましたような状態です

回答No.1

>> LANボードのドライバが認識されていないなどと解答もあるので まずここが気になりました。 よその誰かのマシンでそうだからといって 自分のマシンでも同じだと決めてかかっているような。 #(いや、実際には確認されたのかも知れませんが) # 「ドライバが認識されない」という言い回しも # なんだかちょっぴり違和感あるし。 本当に新しいドライバが必要ですか? $ dmesg | grep eth0 とか。 。。。んで本題。 >> 1.kernelを認識してないのでしょうか? ご質問の意図がわかりかねます。kernelとはなにかご存知ですよね?ねっ? >> 2.Kernelの有無はどこで確認すれば良いのでしょうか?(バージョン) uname -r でいいんじゃないでしょうか。 >> 3.Kernelはインストール方法などサイトがあれば教えてください。 1に通ずる感じですが、今回あなたの必要としているのは ** kernel-devel というパッケージなのじゃないですか? ** だとしたら yum でインストールできます。 本家から素のカーネルソース持ってきても役立てるのは困難かと思います。 ハードウェアのドライバはしばしばカーネル依存だったりするので ドライバのソースだけではコンパイルできずに カーネルのソースも必要になることがよくあります。 そういう状態なんじゃないかと思うわけです。 ハズしていたらごめんなさい

poohtaka
質問者

お礼

早々の解答ありがとうございました。 >>> LANボードのドライバが認識されていないなどと解答もあるので >まずここが気になりました。 >よその誰かのマシンでそうだからといって >自分のマシンでも同じだと決めてかかっているような。 今のところ原因がわからず一つ目に思いついたのがこの理由です。 マシン自体の製造日時はわかりませんが 最新の場合対応していないデバイスがあるような話を聞いたので まず、ドライバの対応日時を疑いました。 #(いや、実際には確認されたのかも知れませんが) # 「ドライバが認識されない」という言い回しも # なんだかちょっぴり違和感あるし これ以外表現が思いつきませんでした。 言葉足らずですみません。 >$ dmesg | grep eth0 とか これについては何のメッセージも帰ってきませんでした。 >>> 1.kernelを認識してないのでしょうか? >ご質問の意図がわかりかねます。kernelとはなにかご存知ですよね?ねっ? kernelの事は一応概要だけはしっています はいってるはずなのになんでエラーが出るのか疑問です。。。 >>> 2.Kernelの有無はどこで確認すれば良いのでしょうか?(バージョン) >uname -r でいいんじゃないでしょうか ありがとうございます 2.6.18-164.e15で確認できました。 >>> 3.Kernelはインストール方法などサイトがあれば教えてください。 >1に通ずる感じですが、今回あなたの必要としているのは >** kernel-devel というパッケージなのじゃないですか? ** >だとしたら yum でインストールできます。 >本家から素のカーネルソース持ってきても役立てるのは困難かと思います なるほど。素のカーネルソースを持ってくるのは見当違いなのですね。 勉強になりました。 考え違いだったらすみません。 yumのコマンドがパッケージのアップデートであることは知っていますが サーバーに接続して使用するものだと思っています。(これが間違いでしょうか?) なのでネットワークにアクセス出来ない状態でアップデートは不可能だと思っていました。 質問をした後に ---------------------------------- Makefile:101; ***Linux kernel source not configured - missing version.h Stop. このエラーが出た場合は Linux カーネル ソース ツリーから次のように入力して version.h ファイルを作成します。 make include/linux/version.h ---------------------------------- というのを見つけました。 カーネルのソースの大元を探して実行してみたいと思います。 ただカーネルソース(2.6.18-164.e15)の最初から設定されているファイルが どこにあるのかわからないのですが。。。

poohtaka
質問者

補足

少し進展しました。 少し事情があり一度CentOS5.4をアンインストールをし CentOS5.5をインストールしました(もしかして何か対応が変わるかもとも思って) /usr/src/kernels/ が出来ていたのですが中のディレクトリは空っぽでした。 そういえば/usr/src/の下に自分でダウンロードした kernelのソースを置いてシンボリックリンクを貼っていたので 上記のエラーが出たなあと思いだしました。 色々な書籍には/usr/srcの下にkernelがあるのが 一般的なようなのに空っぽなのでおっしゃるとおり kernel-develのパッケージをインストールしました。 yumのコマンドは使い方がわからず dvdからパッケージがインストールが出来ると教えてもらったので dvdから rpm -Uvh kernel-devel-XXXX.rpm (kernel-develのバージョンがあったのですがメモし忘れてしまいました) を実行しました。 /usr/src/kernels/の下にフォルダができており ここをシンボリックリンクをはりもう一度 ドライバのインストールを実行してみました。 make install で コンパイルエラーのようなものがでました (すみませんがエラーの表示をメモしたつもりだったのですが メモを持ち帰り忘れてしまったので今はこの状態です。) 今はこの状態でストップしています。 まだエラーが解決したわけではないので引き続き取り組んでいきます 私のkernelに対する見当違いの指摘をありがとうございます

関連するQ&A