відключити модуль ядра, який збирається в ядро ​​(не завантажується)


18

Мій сервер має дві 1-Гбітну та дві 10-Гбітові бортові мережеві карти.

Мені потрібно повністю відключити мережеві карти на 1 Гбіт, щоб 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 

Обидва ixgbeі igbкомпілюються статично в ядрі (не як модуль для завантаження). Мені потрібно відключити модуль за допомогою параметрів завантаження ядра.

Я спробував додати до свого ядра наступне, але це не має ефекту:

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 .
Руслан

1
це <modulename>_init_moduleканонічне ім'я для кожного і всього, що можна побудувати як модуль?
Bananguin

1
@Bananguin , до жаль , не існує чимало називаються ..._init_moduleабо , ..._module_initале вони все не дотримуються цих шаблонах.
Стівен Кітт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.