萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

最精簡核心配置指南:allnoconfig 起步與 11 項必選選項清單

獲取最小核心配置基線


make allnoconfig

將所有選項設為 n (不編譯、不模組化),獲得理論最小配置。但此配置無法啟動,需手動啟用核心必備功能。

必選配置項清單 (經實測可啟動)

  1. 可執行檔格式:
    
    Executable file formats →
      [*] Kernel support for ELF binaries (CONFIG_BINFMT_ELF=y)
      [*] Kernel support for scripts starting with #! (CONFIG_BINFMT_SCRIPT=y)
      [*] Kernel support for 32-bit ELF binaries (CONFIG_IA32_EMULATION=y)  # x86_64 相容 32-bit
    
  2. 處理器類型:
    
    Processor type and features →
      Processor family → 選擇實際 CPU (如 Core 2/newer Xeon, AMD Opteron/Athlon64)
      [*] Symmetric multi-processing support (CONFIG_SMP=y)  # 多核心支援
    
  3. 總線支援:
    
    Bus options →
      [*] PCI support (CONFIG_PCI=y)
      [*] PCI Express support (CONFIG_PCIEPORTBUS=y)
    
  4. 根檔案系統儲存驅動 (內建而非模組):
    
    Device Drivers → SCSI device support →
      [*] SCSI device support (CONFIG_SCSI=y)
      [*] SCSI disk support (CONFIG_BLK_DEV_SD=y)
      [*] SCSI low-level drivers → 選擇具體控制器 (如 mpt3sas, megaraid_sas)
    Device Drivers → Serial ATA (SATA) support →
      [*] Serial ATA (SATA) support (CONFIG_ATA=y)
      [*] Intel PIIX/ICH SATA support (CONFIG_ATA_PIIX=y)  # 依實際硬體
    
  5. 根檔案系統格式 (內建):
    
    File systems →
      [*] Second extended fs support (CONFIG_EXT2_FS=y)
      [*] Ext3 journalling file system support (CONFIG_EXT3_FS=y)
      [*] Ext4 filesystem support (CONFIG_EXT4_FS=y)  # 現代系統建議
      # 關鍵:必須為 y (內建),不可為 m (模組),否則 pivot_root/switch_root 階段找不到驅動
    
  6. Unix Domain Sockets (systemd/udev 必須):
    
    Networking support → Networking options →
      [*] Unix domain sockets (CONFIG_UNIX=y)
    
  7. 虛擬檔案系統:
    
    File systems → Pseudo filesystems →
      [*] /proc file system support (CONFIG_PROC_FS=y)
      [*] Virtual memory file system support (CONFIG_TMPFS=y)  # initramfs/run/shm 基礎
      [*] Tmpfs POSIX Access Control Lists (CONFIG_TMPFS_POSIX_ACL=y)
      [*] Tmpfs extended attributes (CONFIG_TMPFS_XATTR=y)
    
  8. Swap 支援:
    
    General setup →
      [*] Support for paging of anonymous memory (swap) (CONFIG_SWAP=y)
    
  9. RTC 即時時鐘:
    
    Device Drivers → Character devices →
      [*] Enhanced Real Time Clock Support (CONFIG_RTC_CLASS=y)
      [*]   PC-style 'CMOS' RTC (CONFIG_RTC_DRV_CMOS=y)
    

編譯結果驗證


make bzImage
ls -lh arch/x86/boot/bzImage
# 典型大小:~700KB - 1.2MB (視架構與驅動數量)

此配置移除所有非必要驅動 (音效、USB、網卡、無線、圖形、多餘檔案系統等),適合:

  • 嵌入式/專用設備 (硬體固定)
  • 核心開發/測試 (快速編譯迭代)
  • 教學示範核心最小啟動集合
  • 極簡 initramfs 環境

擴展建議

  • 生產環境建議在基線上加入:網卡驅動 (內建)、USB 鍵盤/滑鼠/儲存、系統日誌 (printk)、魔術鍵。
  • 使用 make localmodconfig (在運行目標硬體的系統上) 自動檢測已載入模組並設為內建,獲得「當前硬體最小可啟動配置」。
  • 啟用 CONFIG_IKCONFIG + CONFIG_IKCONFIG_PROC 將 .config 內建核心,zcat /proc/config.gz 可隨時查看。
copyright © 萬盛學電腦網 all rights reserved