커널에서 컴파일 된 커널 모듈 비활성화 (로드되지 않음)


18

내 서버에는 2 개의 1 기가비트 및 10 기가비트 온보드 네트워크 카드가 있습니다.

1Gbit 네트워크 카드를 완전히 비활성화해야하므로 ifconfig -a표시되지 않습니다.

네트워크 카드는 다른 커널 모듈을 사용합니다. 10 기가비트 사용 ixgbe및 1 기가비트 사용 igb.

01:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
Subsystem: Dell Ethernet 10G 4P X520/I350 rNDC
Kernel driver in use: ixgbe

05:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
Subsystem: Dell I350 Gigabit Network Connection
Kernel driver in use: igb 

둘 다 ixgbeigb(하지로드 가능한 모듈로) 커널에 정적으로 컴파일된다. 커널 부팅 매개 변수를 사용하여 모듈을 비활성화해야합니다.

커널에 다음을 추가하려고 시도했지만 아무런 효과가 없습니다.

igb.blacklist=yes
igb.enable=0
igb.disable=yes

여전히 igb 네트워크 카드가 보이고 있습니다

igb를 완전히 비활성화하려면 어떻게해야합니까?

답변:


30

igb내장 된 경우에도 초기화 기능을 블랙리스트에 추가 하여 “모듈” 을 블랙리스트에 추가 할 수 있어야 합니다.

initcall_blacklist=igb_init_module

커널의 부팅 매개 변수에

I2C Designware 지원이 모듈로 빌드되지 않은 경우 어떻게 비활성화합니까?를 참조하십시오 . 배경 정보. 여기서 일반적인 레시피는 커널 소스 코드에서 모듈을 찾고 __init속성 이있는 함수를 찾는 것입니다 . 기본 초기화 함수 (일반적으로 module_init선언 에서 참조 됨)로 쉽게 식별 할 수있는 함수 만 있어야합니다 . 블랙리스트에 올리면 드라이버가 초기화되지 않습니다.


4
중요한 사람들을 위해 initcall_blacklist매개 변수는 Linux 3.16에 나타납니다 .
Ruslan

1
<modulename>_init_module모듈로 구축 할 수 있습니다 각각 모두를위한 정식 이름은?
Bananguin

1
@Bananguin 불행히도, 몇 가지 전화가 ..._init_module있거나 ..._module_init모두 그런 패턴을 따르지는 않습니다.
Stephen Kitt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.