dotfiles/kernel-config.md
2021-07-20 01:34:47 +02:00

6.3 KiB

Kernel configuration guide

This file contains all of the changes I made from default gentoo-sources kenrel in menuconfig. I listed them here to make it simple to independently configure other machines.

Configuration listing

  • General Setup
    • Kernel compression mode: LZ4
    • uselib syscall: N
    • Kernel log buffer size: 45
    • CPU kernel log buffer size contribution: 45
    • Temporary per-CPU printk log buffer size: 12
    • Compiler optimization level: Optimize for performance -O2
  • Processor type and features
    • Enable MPS table: N
    • Support for extended (non-PC) x86 platforms: N
    • Processor family: Core2/newer Xeon
    • Maximum number of CPUs: 8 # CPU threads amount
    • Multi-core scheduler support: N
    • Reroute for broken boot IRQs
    • Machine Check / overheating reporting
      • AMD MCE features: N
    • Performance monitoring
      • AMD Processor Power Reporting Mechanism: N
    • IOPERM and IPPL Emulation: N
    • CPU mircocode loading support
      • AMD microcode loading support: N
    • Enable 5-level page tables support
    • Check for low memory corruption: N
    • MTRR (Memory Type Range Register) support
      • MTRR cleanup enable value: 1
      • MTRR cleanup spare reg num: 1
  • Power management and ACPI options
    • CPU Frequency scaling
      • Default CPUFreq governor: ondemand
      • 'performance' governor: *
      • 'powersave' governor: *
      • 'userspace' governor for userspace fequency scaling: N
      • 'ondemand' cpufreq policy governor: *
      • 'conservative' cpufreq governor: N
      • 'schedutil' cpufreq policy governor: *
    • Cpuidle Driver for Intel Processors: *
  • Virtualization
    • Kernel-based Virtual Machine (KVM) support: *
      • KVM for Intel (and compatible) processors support: *
  • Enable loadable module support
    • Module unloading
      • Forced module unloading: N
  • Enable the block layer
    • Block layer debugging information in debugfs: N
  • IO Schedulers
    • MQ deadline I/O scheduler: N
    • Kyber I/O scheduler: N
    • BFQ I/O scheduler: *
  • Networking support
    • Wireless
      • cfg80211 - wireless connfiguration API: M
        • enable powersave by default
      • Generic IEEE 802.11 Networking Stack (mac80211): M
    • Networking options

      TODO: Check these options and configure them specifically

      • TCP/IP networking
        • The IPv6 protocol
          • IPv6-in-IPv4 tunnel (SIT driver): N
    • Bluetooth subsystem support: *
  • Device Drivers
    • Generic Driver Options
      • Firmware loader

        Let kernel compile the firmware here into the kernel, otherwise

        you would need to set those dirvers as modules, instead of building

        into the kernel. It doesn't really affect me to leave them as

        modules. This option also caused me problems so I don't set it.

        • Build named firmware blobs into the kernel binary: /lib/firmware
    • Block devices
      • Loopback device support: * # enable reading cd-roms
      • Number of loop devices to pre-create at init time: 0
    • SCSI device support
      • SCSI disk support: *
      • SCSI CDROM support: *
      • Asynchronous SCSI scanning: *
    • Serial ATA and Parallel ATA drivers

      TODO: Consider disabling ATA SFF support, could cause problems though

    • Multiple devices driver support: *
      • Device mapper support: *
        • Crypt target support: *
        • Thin provisioning target: *
    • Macintosh device drivers: N
    • Network device support
      • Ethernet driver support
        • Atheros devices
          • Atheros Qualcomm AR816x/AR817x support

        Turn off everything else. NOTE: this depends on HW

      • Wireless LAN
        • Atheros/Qualcomm devices
          • Atheros 802.11ac wireless cards support: M
            • Athernos ath10k PCI support: M

        Turn off everything else. NOTE: this depends on HW

      • USB Network Adapters: N
    • Input device support
      • Keyboards:
        • AT keyboard: *
      • Mice:
        • PS/2 mouse: *
        • Synaptics I2C Touchpad support: *
      • Joysticks/Gamepads: N
      • Tablets: N
      • Touchscreens: N
    • Hardware Monitoring support
      • Intel Core/Core2/Atom temperature sensor: *
    • Multifunction device drivers
      • Intel Quark MFD I2C GPIO: *
      • Intel ICH LPC: *
      • Intel SCH LPC: *
      • Intel Low Power Subsystem support in ACPI mode: *
      • Intel Low Power Subsystem support in PCI mode: *
      • Intel PMC Dirver for Broxton: *
      • Intel Platform Monitoring Technology (PMI) support: *
    • Graphics support
      • Maximum number of GPUs: 2
    • Sound card support
      • Advanced Linux Sound Architecture
        • PCI sound devices:
          • [TODO Check if needed] Intel/SiS/nVidia/AMD/ALi AC97 Controller: *
        • HD-Audio
          • Build HDMI/DisplayPort HD-audio codec support: *
          • Build Conexant HD-audio codec support: *
        • USB sound devices:
          • USB Audio/MIDI driver: *
    • HID support
      • Special HID drivers

        Configure these based on HW

        For touchpads, add

        • HID Multitouch panels

      This is also required for touchpads

      • I2C HID support
        • HID over I2C transport layer ACPI driver
    • x86 Platform Specific Device drivers

      These are mostly for laptop specific things (vol up/down, etc.)

  • File systems
    • The extended 4 filesystem: *
    • Btrfs filesystem support: *
      • Btrfs POSIX Access Control Lists: *
    • FUSE (Filesystem in Userspace) support: * # for androind connection with MTP
    • CD-ROM/DVD Filesystems:
      • ISO 9660 CDROM file system support: M
      • Microsoft Joliet CDROM extensions: *
      • Transparent decompression extension: *
      • UDF file system support: M
    • DOS/FAT/EXFAT/NT Filesystems
      • MSDOS fs support: *
      • VFAT (Windows-95) fs support: *
      • exFAT filesystem support: *
      • NTFS file system support: *
        • NTFS write support: *
    • Miscellaneous filesystems: N
    • Network File Systems: *
  • Security options
    • NSA SELinux Support: N
    • AppArmor Support: *