こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

パソコンのスペックです
メーカー:Unitcom
OS:windows7,後にCentOSとデュアルブート
プロセッサ:Intel(R) Core(TM) i3 CPU 540@
3.07GHz 3.07GHz
実装メモリ:2.00GB
システムの種類:32ビット
ビデオカード:Intel(R) Graphics Media Accelerator HD
ネットワークアダプタ:Atheros AR8131 PCI-E Gigabit Ethernet Controller (NDIS 6.20)
私はLinuxのコマンドや階層、ファイルコピーの方法は理解しておりますが
インストール、ドライバやサーバの構築は初めてです。

Linux CentOS5.4をインストールしました。
インストールの際手元のマニュアルではネットワークの設定が出るはずですが
その設定は出ませんでした。
また、ネットワークケーブルを差し込んで再度インストールをしましたが
その画面はでませんでした。
rootでログインした後ifconfigのコマンドを打っても
inet addr:127.0.0.1 Mask:255.0.0.0
と表示され自動で取得もしてなさそうです。
(手元のマニュアルではインストール機能はまずはbaseしか入っていません)

その後いろいろと検索したところ
LANボードのドライバが認識されていない
などと解答もあるのであり一度ドライバをインストールしようと
http://partner.atheros.com/Drivers.aspx

AR81Family Linux Driver の
AR81Family-Linux-v1.0.1.9.tar.gz
をダウンロードしてきました。

ドライバのインストール手順ですが
1. Move the base driver tar file to the directory of your choice. For example,
use /home/username/arl1e or /usr/local/src/arl1e.
#/usr/local/src/arl1eの下にAR81Family-Linux-v1.0.1.9.tar.gzを置きました

2. Untar/unzip archive:

tar zxf AR81Family-Linux-v1.0.1.9.tar.gz
#解凍(という言い方でいいんでしょうか)このコマンドを打って実行しました


3. Change to the driver src directory:

cd arl1e-1.0.1.9/src/
#バージョン管理のためフォルダを作成しsrcの下に行きました

4. Compile the driver module:

make install
#これを実行後下記エラーでストップしています
Makefile:101; ***Linux kernel source not configured - missing version.h Stop.
とエラーが返されました。
kernel sourceが構築出来ないとでているのですが
1.kernelを認識してないのでしょうか?
Kernelがどうなっているのか調べたいのです。
http://www.kernel.org/
でlinux-2.6.34.tar.bz2はダウンロードしてきました。
2.Kernelの有無はどこで確認すれば良いのでしょうか?(バージョン)
3.Kernelはインストール方法などサイトがあれば教えてください。



よろしくお願いします。

投稿日時 - 2010-05-18 10:49:55

QNo.5903311

困ってます

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

>OSインストール時はbaseのインストールだけしました。
>開発環境についてはインストールしていないと思います
>(お恥ずかしいながら開発環境と呼ばれるものが何かわかりません)

コンパイラなどが入っていない…ということです。
インスートルDVDをマウントしてから、
yum --disablerepo=\* --enablerepo=c5-media groupinstall "Development Tools"

yum --disablerepo=\* --enablerepo=c5-media groupinstall "Development Libraries"
で開発環境とライブラリをインスートルして下さい。
# ライブラリは…インストールしなくても行けるかも知れませんが…念のため。

>cat /proc/versionのコマンドで

ソレはkernelのパッケージをビルドしたときのものです。
今回はとりあえず関係ありません。

投稿日時 - 2010-05-24 23:51:46

お礼

ありがとうございます。
結論から言うとたぶん解決できました!

手元のマニュアルには開発環境とライブラリのインストールは
特に記載されていませんでしたが(その後のページでも。。。)
初心者向けのインストール方法を記載しているサイトでは
開発環境とそのライブラリはインストールしておいたほうが良い
とかいていました。

教えていただいたyumのコマンドなのですがエラーが出て無理だったのです。。。
まさかと思っているのですがyumのパッケージも何にも入っていいないので
yumも使えないのかななあと。。。
今回はドライバの問題を解決したいことだったので
取り急ぎCentOSを再インストール(→今思うとrpmでインストールできたと思うのですが、、、、)し
インストールの時点でDevelopment ToolとDevelopment Librariesをインストールしました。
あとは最初に書いたようにファイルを展開し、
ドライバのkcompat.h側を編集しmake installを実行しました
Lanケーブルを差込再起動し、ifconfigを実行したところ
今まででなかった
eth0
の文字があったのでドライバのインストールが成功したと思っています。

※後々知ったのですがyumのパッケージが入っているかは
rpm -qa | grep yumで確認できることを知りました。。。
再インストールをしないでyumのパッケージを調べればよかったです。
yumのコマンドもこれからは必要になってくると思うので勉強します。

開発環境やライブラリ、kernel、ドライバのインストール方法など
長々とお付き合い頂きありがとうございました。
大変勉強になりました。本当にありがとうございました

投稿日時 - 2010-05-27 14:33:18

ANo.6

このQ&Aは役に立ちましたか?

12人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.5

Wr5

回答に抜け(?)が…

>・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のモジュールをビルドしなおしです。

投稿日時 - 2010-05-24 15:33:09

お礼

なるほど。詳しく説明していただきありがとうございました。

>ATOMマザー使っていると、kernelを最新に入れ替えたいとか思うんですけどねぇ…
># NICが誤認識していたり…最近はkernel更新のたびにNICのモジュールをビルドしなおしです。
検索中にいくつかこのような記事を見ました。
更新の度に手間ですね。。。。。

職場には木曜日に行くので回答No.6で必要な環境を入れます。

投稿日時 - 2010-05-25 09:43:01

ANo.4

Wr5

>少し事情があり一度CentOS5.4をアンインストールをし
>CentOS5.5をインストールしました(もしかして何か対応が変わるかもとも思って)

>Makefile:118 *** Compiler not found. Stop.

インストールしなおした時に、開発環境のインストールはしましたか?
cc --version
または
gcc --version
でコンパイラのバージョンが表示されますか?
# Makefileの118行目を見ると、コンパイラのバージョンが取得出来なかったとき(インストールされていない時)に
# 上記のメッセージが出るようですが…。

投稿日時 - 2010-05-24 14:23:36

お礼

ありがとうございました
なるほど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がわかりません(すみません。)

#インストールした際何か初期設定が必要ということなんですね。。。

投稿日時 - 2010-05-24 15:11:13

ANo.3

Wr5

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) )
に書き換えてビルドしてみました。

投稿日時 - 2010-05-22 00:16:37

お礼

いつも回答ありがとうございます。
とても有難いです

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でファイルをインストールしたのですが
カーネルの再構築をするものなのでしょうか?
(自分なりにも調べていたらカーネルの再構築など時折見かけました。)

投稿日時 - 2010-05-24 13:02:16

ANo.2

Wr5

>はいってるはずなのになんでエラーが出るのか疑問です。。。

入っているのは、ビルドしてできあがったバイナリです。
ドライバの要求しているモノは、ビルドする前の段階のものです。
# カーネルの設定なども済んでいる段階のモノ…ということになろうかと。

>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でなんと出ますかね?

投稿日時 - 2010-05-18 23:15:55

補足

早々の回答ありがとうございます

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の回答の方に補足させて頂きましたような状態です

投稿日時 - 2010-05-20 00:26:15

お礼

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

投稿日時 - 2010-05-24 12:42:57

>> LANボードのドライバが認識されていないなどと解答もあるので
まずここが気になりました。
よその誰かのマシンでそうだからといって
自分のマシンでも同じだと決めてかかっているような。

#(いや、実際には確認されたのかも知れませんが)
# 「ドライバが認識されない」という言い回しも
# なんだかちょっぴり違和感あるし。

本当に新しいドライバが必要ですか?
$ dmesg | grep eth0 とか。


。。。んで本題。

>> 1.kernelを認識してないのでしょうか?
ご質問の意図がわかりかねます。kernelとはなにかご存知ですよね?ねっ?

>> 2.Kernelの有無はどこで確認すれば良いのでしょうか?(バージョン)
uname -r でいいんじゃないでしょうか。

>> 3.Kernelはインストール方法などサイトがあれば教えてください。
1に通ずる感じですが、今回あなたの必要としているのは
** kernel-devel というパッケージなのじゃないですか? **
だとしたら yum でインストールできます。
本家から素のカーネルソース持ってきても役立てるのは困難かと思います。

ハードウェアのドライバはしばしばカーネル依存だったりするので
ドライバのソースだけではコンパイルできずに
カーネルのソースも必要になることがよくあります。
そういう状態なんじゃないかと思うわけです。
ハズしていたらごめんなさい

投稿日時 - 2010-05-18 12:33:27

補足

少し進展しました。

少し事情があり一度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に対する見当違いの指摘をありがとうございます

投稿日時 - 2010-05-20 00:20:07

お礼

早々の解答ありがとうございました。
>>> 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)の最初から設定されているファイルが
どこにあるのかわからないのですが。。。

投稿日時 - 2010-05-18 13:36:26

あなたにオススメの質問