誰か助けていただければ幸いです。
1)dkmsを使用してUbuntuサーバー用のカーネルモジュールを構築しようとしています。詳細なマニュアルは ここ です。
2)この構文を使用してモジュールを構築している場合:
Sudo dkms build -m ixgbevf -v 2.15.3
いくつかのカーネルヘッダーが欠落していると書かれています:
Kernel preparation unnecessary for this kernel. Skipping...
Building module:
cleaning build area....(bad exit status: 2)
cd src/; make BUILD_KERNEL=....(bad exit status: 2)
ERROR (dkms apport): binary package for ixgbevf: 2.15.3 not found
Error! Bad return status for module build on kernel: 3.13.0-36-generic (x86_64)
Consult /var/lib/dkms/ixgbevf/2.15.3/build/make.log for more information.
3)ログファイル:/var/lib/dkms/ixgbevf/2.15.3/build/make.log:
DKMS make.log for ixgbevf-2.15.3 for kernel 3.13.0-36-generic (x86_64)
Tue Dec 23 09:27:47 UTC 2014
Makefile:64: *** Kernel header files not in any of the expected locations.
Makefile:65: *** Install the appropriate kernel development package, e.g.
Makefile:66: *** kernel-devel, for building kernel modules and try again. Stop.
4)ここにヘッダーがあります:
/usr/src/linux-headers-3.13.0-36
/usr/src/linux-headers-3.13.0-36-generic
/usr/include
そして、cpp-vは次のことを示しています。
#include <...> search starts here:
/usr/lib/gcc/x86_64-linux-gnu/4.8/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
さらに詳しい情報が必要な場合は、すぐにお知らせします。ありがとう。
---追加情報---
1)dpkg -l | grep linux-headersの表示:
ii linux-headers-3.13.0-36 3.13.0-36.63 all Header files related to Linux kernel version 3.13.0
ii linux-headers-3.13.0-36-generic 3.13.0-36.63 AMD64 Linux kernel headers for version 3.13.0 on 64 bit x86 SMP
ii linux-headers-generic 3.13.0.36.43 AMD64 Generic Linux kernel headers
ii linux-headers-virtual 3.13.0.36.43 AMD64 Transitional package.
2)dpkg-lの出力情報| grep linux-image
ii linux-image-3.13.0-36-generic 3.13.0-36.63 AMD64 Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii linux-image-virtual 3.13.0.36.43 AMD64 This package will always depend on the latest minimal generic kernel image.
3)uname-aの出力
Linux ip-10-0-3-11 3.13.0-36-generic #63-Ubuntu SMP Wed Sep 3 21:30:07 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
4)ixgbevfモジュールのソースへのリンクは ここ です。
それで、最後に、カーネルバージョン3.13.0-43用のドライバーixgbevfv。2.15.3をインストールすることができました。
ただし、いくつかの重要なポイントがあります。
まず、make
を使用して手動でビルドしようとしましたが、同じ結果が得られました。
Makefile:64: *** Kernel header files not in any of the expected locations.
Makefile:65: *** Install the appropriate kernel development package, e.g.
Makefile:66: *** kernel-devel, for building kernel modules and try again. Stop.
次に、apt-get upgrade
とapt-get dist-upgrade
を実行してカーネルを3.13.0-36から3.13.0-43に更新し、その後マシンを再起動してカーネルを更新しました。詳細は ここ です。 3.13.0-43のカーネルヘッダーもインストールしました。
第三に、次のようにdkms.conf構成ファイルを変更する必要がありました。
MAKE="make -C src/ KERNELDIR=/lib/modules/${kernelver}/build"
CLEAN="make -C src/ clean"
BUILT_MODULE_NAME=ixgbevf
BUILT_MODULE_LOCATION=src/
DEST_MODULE_LOCATION="/updates"
PACKAGE_NAME=ixgbevf-dkms
PACKAGE_VERSION=2.15.3
REMAKE_INITRD=no
その後、ドライバーを構築することができました。同じ問題があり、サポートが必要な場合は、お気軽にご連絡ください。 @Faheem Mitha、ご協力いただきありがとうございます。
Ubuntu14.04用にリリースされたパッチがあります https://Gist.github.com/cdgraff/1c31727901e5c76d5ea8
私はそれが機能していることを確認できます:
root@ip-172-31-119-53:~# modinfo ixgbevf
filename: /lib/modules/3.13.0-45-generic/updates/dkms/ixgbevf.ko
version: 2.16.1
license: GPL
description: Intel(R) 10 Gigabit Virtual Function Network Driver
author: Intel Corporation, <[email protected]>
srcversion: 3F8AACF779F38FD444B1CD3
alias: pci:v00008086d00001515sv*sd*bc*sc*i*
alias: pci:v00008086d000010EDsv*sd*bc*sc*i*
depends:
vermagic: 3.13.0-45-generic SMP mod_unload modversions
parm: InterruptThrottleRate:Maximum interrupts per second, per vector, (956-488281, 0=off, 1=dynamic), default 1 (array of int)