헤더가 누락된 dkms를 사용하여 커널 모듈 빌드

헤더가 누락된 dkms를 사용하여 커널 모듈 빌드

누구든지 나를 도울 수 있다면 매우 감사하겠습니다.

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 | 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 모듈 소스에 대한 링크는 다음과 같습니다.여기.

답변1

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)

답변2

그래서 마침내 커널 버전 3.13.0-43용 드라이버 ixgbevf v.2.15.3을 성공적으로 설치했습니다.

그러나 몇 가지 중요한 사항이 있습니다.

  1. 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.
    
  2. 둘째, 커널을 실행하여 3.13.0-36에서 3.13.0-43으로 업데이트 apt-get upgradeapt-get dist-upgrade다음 컴퓨터를 다시 시작하여 커널을 업데이트했습니다. 세부 사항은 다음과 같습니다여기. 또한 3.13.0-43용 커널 헤더도 설치합니다.

  3. 셋째, 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님, 도움을 주셔서 대단히 감사합니다.

관련 정보