Intel의 10g 네트워크 카드(예: 82598, 82599, x540)는 ixgbe 드라이버에서 지원됩니다. 최신 Linux 배포판에는 이미 로드 가능한 모듈을 통해 사용되는 ixgbe 드라이버가 함께 제공됩니다. 그러나 ixbge 드라이버의 최신 기능을 경험하려는 경우와 같이 시스템에 ixgbe 드라이버를 직접 컴파일하고 설치하려는 상황이 있습니다. 마찬가지로, 기본적으로 커널과 함께 제공되는 ixgbe 드라이버의 문제점은 드라이버 매개변수를 사용자 정의할 수 없다는 것입니다. 완전히 사용자 정의된 ixgbe 드라이버(예: RSS, 다중 대기열, 인터럽트 임계값 등)를 원하는 경우 소스에서 ixgbe 드라이버를 수동으로 컴파일해야 합니다.
1단계: 설치 전제 조건
설치하기 전에 일치하는 커널 헤더 파일과 개발 도구 키트를 설치해야 합니다.
$ sudo apt-get install linux-headers-$(uname -r) $ sudo apt-get install gcc make
2단계: ixgbe 드라이버 컴파일
최신 ixgbe 드라이버에서 소스 코드를 다운로드하세요.
$ wget http://sourceforge.net/projects/e1000/files/ixgbe%20stable/3.23.2/ixgbe-3.23.2.tar.gz
다음과 같이 ixgbe 드라이버를 컴파일합니다.
$ tar xvfvz ixgbe-3.23.2.tar.gz $ cd ixgbe-3.23.2/src $ make
3단계: ixgbe 드라이버 확인
컴파일 후 ixgbe-3.23.2/src 디렉터리에 ixgbe.ko가 생성된 것을 볼 수 있습니다. 이는 커널에 로드될 ixgbe 드라이버입니다.
modinfo 명령을 사용하여 커널 모듈 정보를 확인하세요. 모듈 파일의 절대 경로(예: ./ixgbe.ko 또는 /home/xmodulo/ixgbe/ixgbe-3.23.2/src/ixgbe.ko)를 지정해야 합니다. 출력에는 ixgbe 커널 버전이 표시됩니다.
$ modinfo ./ixgbe.ko
filename: /home/xmodulo/ixgbe/ixgbe-3.23.2/src/ixgbe.ko version: 3.23.2 license: gpl description: intel(r) 10 gigabit pci express network driver author: intel corporation, srcversion: 2ada5e537923e983fa9dae2 alias: pci:v00008086d00001560sv*sd*bc*sc*i* alias: pci:v00008086d00001558sv*sd*bc*sc*i* alias: pci:v00008086d0000154asv*sd*bc*sc*i* alias: pci:v00008086d00001557sv*sd*bc*sc*i* alias: pci:v00008086d0000154fsv*sd*bc*sc*i* alias: pci:v00008086d0000154dsv*sd*bc*sc*i* alias: pci:v00008086d00001528sv*sd*bc*sc*i* alias: pci:v00008086d000010f8sv*sd*bc*sc*i* alias: pci:v00008086d0000151csv*sd*bc*sc*i* alias: pci:v00008086d00001529sv*sd*bc*sc*i* alias: pci:v00008086d0000152asv*sd*bc*sc*i* alias: pci:v00008086d000010f9sv*sd*bc*sc*i* alias: pci:v00008086d00001514sv*sd*bc*sc*i* alias: pci:v00008086d00001507sv*sd*bc*sc*i* alias: pci:v00008086d000010fbsv*sd*bc*sc*i* alias: pci:v00008086d00001517sv*sd*bc*sc*i* alias: pci:v00008086d000010fcsv*sd*bc*sc*i* alias: pci:v00008086d000010f7sv*sd*bc*sc*i* alias: pci:v00008086d00001508sv*sd*bc*sc*i* alias: pci:v00008086d000010dbsv*sd*bc*sc*i* alias: pci:v00008086d000010f4sv*sd*bc*sc*i* alias: pci:v00008086d000010e1sv*sd*bc*sc*i* alias: pci:v00008086d000010f1sv*sd*bc*sc*i* alias: pci:v00008086d000010ecsv*sd*bc*sc*i* alias: pci:v00008086d000010ddsv*sd*bc*sc*i* alias: pci:v00008086d0000150bsv*sd*bc*sc*i* alias: pci:v00008086d000010c8sv*sd*bc*sc*i* alias: pci:v00008086d000010c7sv*sd*bc*sc*i* alias: pci:v00008086d000010c6sv*sd*bc*sc*i* alias: pci:v00008086d000010b6sv*sd*bc*sc*i* depends: ptp,dca vermagic: 3.11.0-19-generic smp mod_unload modversions parm: interrupttype:change interrupt mode (0=legacy, 1=msi, 2=msi-x), default intmode (deprecated) (array of int) parm: intmode:change interrupt mode (0=legacy, 1=msi, 2=msi-x), default 2 (array of int) parm: mq:disable or enable multiple queues, default 1 (array of int) parm: dca:disable or enable direct cache access, 0=disabled, 1=descriptor only, 2=descriptor and data (array of int) parm: rss:number of receive-side scaling descriptor queues, default 0=number of cpus (array of int) parm: vmdq:number of virtual machine device queues: 0/1 = disable, 2-16 enable (default=8) (array of int) parm: max_vfs:number of virtual functions: 0 = disable (default), 1-63 = enable this many vfs (array of int) parm: vepa:vepa bridge mode: 0 = veb (default), 1 = vepa (array of int) parm: interruptthrottlerate:maximum interrupts per second, per vector, (0,1,956-488281), default 1 (array of int) parm: lliport:low latency interrupt tcp port (0-65535) (array of int) parm: llipush:low latency interrupt on tcp push flag (0,1) (array of int) parm: llisize:low latency interrupt on packet size (0-1500) (array of int) parm: llietype:low latency interrupt ethernet protocol type (array of int) parm: llivlanp:low latency interrupt on vlan priority threshold (array of int) parm: fdirpballoc:flow director packet buffer allocation level: 1 = 8k hash filters or 2k perfect filters 2 = 16k hash filters or 4k perfect filters 3 = 32k hash filters or 8k perfect filters (array of int) parm: atrsamplerate:software atr tx packet sample rate (array of int) parm: fcoe:disable or enable fcoe offload, default 1 (array of int) parm: lro:large receive offload (0,1), default 1 = on (array of int) parm: allow_unsupported_sfp:allow unsupported and untested sfp+ modules on 82599 based adapters, default 0 = disable (array of int)
4단계: ixgbe 드라이버 테스트
새 모듈을 테스트하기 전에 ixgbe 모듈의 이전 버전이 이미 커널에 있는 경우 먼저 제거해야 합니다.
$ sudo rmmod ixgbe
그런 다음 insmod 명령을 사용하여 새로 컴파일된 ixgbe 모듈을 삽입하세요. 모듈의 절대 경로를 지정해야 합니다.
$ sudo insmod ./ixgbe.ko
위 명령이 성공적으로 실행되면 아무 정보도 표시되지 않습니다.
필요한 경우 추가 매개변수를 추가해 볼 수 있습니다. 예를 들어 RSS 대기열 수를 16으로 설정합니다.
$ sudo insmod ./ixgbe.ko rss=16
/var/log/kern.log를 확인하여 ixgbe 드라이버가 성공적으로 활성화되었는지 확인합니다. "intel(r) 10 gigabit pci express 네트워크 드라이버" 로그를 확인하십시오. ixgbe의 버전 정보는 이전 modinfo 표시와 동일해야 합니다.
sep 18 14:48:52 스폰지밥 커널: [684717.906254] intel(r) 10 gigabit pci express 네트워크 드라이버 - 버전 3.22.3
5단계: ixgbe 드라이버 설치
새 ixgbe 드라이버를 확인한 후 성공적으로 로드되고 마지막 단계는 시스템에 드라이버를 설치하는 것입니다.
$ sudo make install
ixgbe.ko는 /lib/modules//kernel/drivers/net/ethernet/intel/ixgbe에 설치됩니다.
이 단계에서 다음 modprobe 명령을 사용하여 ixgbe 드라이버를 로드할 수 있습니다. 더 이상 절대 경로를 지정할 필요가 없습니다.
$ sudo modprobe ixgbe
시작 시 ixgbe 드라이버를 로드하려면 /etc/modules 끝에 "ixgbe"를 추가하면 됩니다.
위 내용은 Debian Linux에서 ixgbe 드라이버를 컴파일하고 설치하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!