igb Intelドライバがコンパイルされておらず、別のイメージカーネルからコピーされたigb.koが正しい形式ではないと言います。

igb Intelドライバがコンパイルされておらず、別のイメージカーネルからコピーされたigb.koが正しい形式ではないと言います。

まあ、私はrt 3.2カーネルを実行するrhel 6マシンを持っています。デフォルトでは、ドライバーはレプリカで、イメージに拡張カードの nic と intel i350 が表示され、2 つの eth ポートとして使用するため、ドライバーを更新する必要があるようです。ただし、マザーボードi210イーサネットポートを使用したくありません。 igbは両方のデバイスのドライバなので、私の計画は、単に古いドライバの上に新しいドライバをロードし、問題が解決されることを望むことです。私はこの標準を達成するために2つのアプローチをとりました。システムとmodprobeにビルドし、別のシステムに.koをビルドし、それをコピーして既存の.koファイルを置き換えます。

rmmod igb //to remove the previous driver 
rpm -q igb // says there is no package igb so maybe it wasn't installed with rpm   

tar -zxf igb-5-7.2.tar.gz
cd igb-5.7.2/src
make install 
make[1]: Entering directory `/usr/src/kernels/3.2.23-rt37.56.el6rt.x86_64'
  CC [M]  /lib/modules/3.2.23-rt37.56.el6rt.x86_64/kernel/drivers/net/ethernet/intel/igb-5.7.2/src/igb_main.o
In file included from /lib/modules/3.2.23-rt37.56.el6rt.x86_64/kernel/drivers/net/ethernet/intel/igb-5.7.2/src/igb.h:32,
                 from /lib/modules/3.2.23-rt37.56.el6rt.x86_64/kernel/drivers/net/ethernet/intel/igb-5.7.2/src/igb_main.c:30:
/lib/modules/3.2.23-rt37.56.el6rt.x86_64/kernel/drivers/net/ethernet/intel/igb-5.7.2/src/kcompat.h:4183: error: conflicting types for ‘netdev_features_t’
include/linux/netdev_features.h:15: note: previous declaration of ‘netdev_features_t’ was here
/lib/modules/3.2.23-rt37.56.el6rt.x86_64/kernel/drivers/net/ethernet/intel/igb-5.7.2/src/kcompat.h:4212: error: redefinition of ‘ethtool_rxfh_indir_default’
include/linux/ethtool.h:769: note: previous definition of ‘ethtool_rxfh_indir_default’ was here
/lib/modules/3.2.23-rt37.56.el6rt.x86_64/kernel/drivers/net/ethernet/intel/igb-5.7.2/src/igb_main.c:2441: warning: initialization from incompatible pointer type
/lib/modules/3.2.23-rt37.56.el6rt.x86_64/kernel/drivers/net/ethernet/intel/igb-5.7.2/src/igb_main.c:2442: warning: initialization from incompatible pointer type
/lib/modules/3.2.23-rt37.56.el6rt.x86_64/kernel/drivers/net/ethernet/intel/igb-5.7.2/src/igb_main.c:2488: warning: initialization from incompatible pointer type
/lib/modules/3.2.23-rt37.56.el6rt.x86_64/kernel/drivers/net/ethernet/intel/igb-5.7.2/src/igb_main.c:2489: warning: initialization from incompatible pointer type
make[2]: *** [/lib/modules/3.2.23-rt37.56.el6rt.x86_64/kernel/drivers/net/ethernet/intel/igb-5.7.2/src/igb_main.o] Error 1
make[1]: *** [_module_/lib/modules/3.2.23-rt37.56.el6rt.x86_64/kernel/drivers/net/ethernet/intel/igb-5.7.2/src] Error 2
make[1]: Leaving directory `/usr/src/kernels/3.2.23-rt37.56.el6rt.x86_64'
make: *** [default] Error 2


誰かがnetdev_features_tとethtoolの定義エラーを回避する方法と私が間違っていることを指摘できれば良いでしょう。

別のシステムに構築された.koファイルを使用し、既存の.koファイルをコピーすることもありました。

modprobe igb //using .ko file from a newer system says headers are incompatible or incompatible format 

だから

A:ビルドプロセス中に何かが間違っていましたか?つまり、以前のドライバとの競合やその他の問題を完全に削除していません。

B:最新のドライバを使用しています。カーネルが古すぎるので、古いドライバを使用する必要がありますか?

C:他のシステムの.koファイルを使用できませんか?または、特定のカーネルに合わせてコンパイルする必要がありますか?

あらかじめ考えていただきありがとうございます。

答え1

コンパイルしたいドライバで使用するカーネルの寿命が大きすぎます。このドライバが設計されている正しいバージョンの範囲にカーネルを変更する必要があります。

また、RHEL6 は廃止予定なので、サポートされているバージョンにアップグレードする必要があります。

関連情報