ปิดการใช้งานโมดูลเคอร์เนลซึ่งรวบรวมในเคอร์เนล (ไม่โหลด)


18

เซิร์ฟเวอร์ของฉันมีการ์ดเครือข่ายออนบอร์ด 10-Gbit สองใบและสองใบ

ฉันต้องปิดการใช้งานการ์ดเครือข่าย 1-Gbit อย่างสมบูรณ์เพื่อที่ifconfig -aจะไม่แสดง

การ์ดเครือข่ายใช้โมดูลเคอร์เนลที่แตกต่างกัน การใช้ 10 กิกะบิตและการใช้ixgbe 1 Gbitigb

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พารามิเตอร์ปรากฏอยู่ในลินุกซ์ 3.16
Ruslan

1
เป็น<modulename>_init_moduleชื่อบัญญัติสำหรับแต่ละและทุกอย่างที่สามารถสร้างเป็นโมดูล?
Bananguin

1
@Banguanin ขออภัยที่มีไม่กี่ที่เรียกว่า..._init_moduleหรือ..._module_initแต่พวกเขาไม่ได้ทำตามรูปแบบเหล่านั้นทั้งหมด
Stephen Kitt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.