linux内核编译过程及配置说明解释(7)--Firmware Drivers,File systems,Kernel hacking

Firmware Drivers

This interface let you select features and parameters for the build.


    <*> BIOS Enhanced Disk Drive calls determine boot disk                    x x  

 to enable BIOS Enhanced Disk Drive Services real mode BIOS calls to determine which disk 
BIOS tries boot from.


  x x    [*]   Sets default behavior for EDD detection to off                      x x  

Say Y if you want EDD disabled by default, even though it is compiled into the kernel. Say N if you want EDD enabled by default.


  x x    [*] Add firmware-provided memory map to sysfs                             x x  

Add the firmware-provided (unmodified) memory map to /sys/firmware/memmap. That memory map is used for example by kexec to set up parameter area            x  
for the next kernel, but can also be used for debugging purposes.


  x x    <*> EFI Variable Support via sysfs                                        x x  

 to get EFI (Extensible Firmware Interface) variable information via sysfs.

  x x    <M> BIOS update support for DELL systems via sysfs                        x x  

to have the option of updating the BIOS for your  DELL system.


  x x    <M> Dell Systems Management Base Driver                                   x x  

provides a sysfs interface for systems management software to perform System Management       
Interrupts (SMIs) and Host Control Actions (system power cycle or power off after OS shutdown) on certain Dell systems.


  x x    [*] iSCSI Boot Firmware Table Attributes                                  x x  

This option enables the kernel to find the region of memory  in which the ISCSI Boot Firmware Table (iBFT) resides. This      
is necessary for iSCSI Boot Firmware Table Attributes module to work  properly.


  x x    <M>   iSCSI Boot Firmware Table Attributes module                         x x  

This option enables support for detection and exposing of iSCSI  Boot Firmware Table (iBFT) via sysfs to userspace.


  x x    [ ] Google Firmware Drivers                 
These firmware drivers are used by Google's servers.  They are only useful if you are working directly on one of their         
proprietary servers.


File systems

This interface let you select features and parameters for the build.

linux内核编译过程及配置说明解释(7)--Firmware Drivers,File systems,Kernel hacking_第1张图片

    <M> Second extended fs support                                            x x  

Ext2 is a standard Linux file system for hard disks.


  x x    [*]   Ext2 extended attributes                                            x x  
  x x    [*]     Ext2 POSIX Access Control Lists                                   x x  
  x x    [*]     Ext2 Security Labels                                              x x  
  x x    [ ]   Ext2 execute in place support                                       x x  
  x x    <*> Ext3 journalling file system support                                  x x  
  x x    [*]   Default to 'data=ordered' in ext3                                   x x  
  x x    [*]   Ext3 extended attributes                                            x x  
  x x    [*]     Ext3 POSIX Access Control Lists                                   x x  
  x x    [*]     Ext3 Security Labels                                              x x  
  x x    <*> The Extended 4 (ext4) filesystem                                      x x  
  x x    [*]   Ext4 POSIX Access Control Lists                                     x x  
  x x    [*]   Ext4 Security Labels                                                x x  
  x x    [ ]   EXT4 debugging support                                              x x  
  x x    [ ] JBD (ext3) debugging support                                          x x  
  x x    [ ] JBD2 (ext4) debugging support                                         x x  
  x x    <M> Reiserfs support                                                      x x  
  x x    [ ]   Enable reiserfs debug mode     
    [ ]   Stats in /proc/fs/reiserfs                                          x x  
  x x    [*]   ReiserFS extended attributes                                        x x  
  x x    [*]     ReiserFS POSIX Access Control Lists                               x x  
  x x    [*]     ReiserFS Security Labels                                          x x  
  x x    <M> JFS filesystem support                                                x x  
  x x    [*]   JFS POSIX Access Control Lists                                      x x  
  x x    [*]   JFS Security Labels                                                 x x  
  x x    [ ]   JFS debugging                                                       x x  
  x x    [*]   JFS statistics                                                      x x  
  x x    <M> XFS filesystem support                                                x x  
  x x    [*]   XFS Quota support                                                   x x  
  x x    [*]   XFS POSIX ACL support                                               x x  
  x x    [*]   XFS Realtime subvolume support                                      x x  
  x x    [ ]   XFS Debugging support (EXPERIMENTAL)                                x x  
  x x    <M> GFS2 file system support       
   [*]   GFS2 DLM locking                                                    x x  
  x x    <M> OCFS2 file system support                                             x x  
  x x    <M>   O2CB Kernelspace Clustering                                         x x  
  x x    <M>   OCFS2 Userspace Clustering                                          x x  
  x x    [*]   OCFS2 statistics                                                    x x  
  x x    [*]   OCFS2 logging support                                               x x  
  x x    [ ]   OCFS2 expensive checks                                              x x  
  x x    <M> Btrfs filesystem (EXPERIMENTAL) Unstable disk format                  x x  
  x x    [*]   Btrfs POSIX Access Control Lists                                    x x  
  x x    [ ]   Btrfs with integrity check tool compiled in (DANGEROUS)             x x  
  x x    <M> NILFS2 file system support (EXPERIMENTAL)                             x x  
  x x    [*] Enable POSIX file locking API                                         x x  
  x x    [*] Dnotify support                                                       x x  
  x x    [*] Inotify support for userspace                                         x x  
  x x    [*] Filesystem wide access notification                                   x x  
  x x    [*]   fanotify permissions checking                                       x x  
  x x    -*- Quota support                                                         x x  
  x x    [*] Report quota messages through netlink interface
   [ ] Print quota warnings to console (OBSOLETE)                            x x  
  x x    [ ] Additional quota sanity checks                                        x x  
  x x    <M> Old quota format support                                              x x  
  x x    <M> Quota format vfsv0 and vfsv1 support                                  x x  
  x x    <M> Kernel automounter version 4 support (also supports v3)               x x  
  x x    <*> FUSE (Filesystem in Userspace) support                                x x  
  x x    <M>   Character device in Userspace support                               x x  
  x x        Caches  --->                                                          x x  
  x x        CD-ROM/DVD Filesystems  --->                                          x x  
  x x        DOS/FAT/NT Filesystems  --->                                          x x  
  x x        Pseudo filesystems  --->                                              x x  
  x x    -*- Miscellaneous filesystems  --->                                       x x  
  x x    [*] Network File Systems  --->                                            x x  
  x x    -*- Native language support  --->                                         x x  
  x x    <M> Distributed Lock Manager (DLM)  --->   

就是关于文件系统扩展方面的,包含各种格式的支持;


Kernel hacking

linux内核编译过程及配置说明解释(7)--Firmware Drivers,File systems,Kernel hacking_第2张图片

This interface let you select features and parameters for the build.


    [*] Show timing information on printks                                    x x  

Selecting this option causes time stamps of the printk()   messages to be added to the output of the syslog() system     
call and at the console.在printk的输出中包含时间信息,可以用来分析内核启动过程各步骤所用时间


  x x    (4) Default message log level (1-7)                                       x x  

Default log level for printk statements with no specified priority.


  x x    [ ] Enable __deprecated logic                                             x x  

Enable the __deprecated logic in the kernel build.


  x x    [ ] Enable __must_check logic                                             x x  

在编译内核的过程中使用"必须检查"的逻辑,禁用它将不会显示某些警告信息


  x x    (1024) Warn for stack frames larger than (needs gcc 4.4)                  x x  


  x x    -*- Magic SysRq key                                                       x x  
  x x    [ ] Strip assembler-generated symbols during link                         x x  
  x x    [ ] Generate readable assembler code                                      x x  
  x x    [*] Enable unused/obsolete exported symbols                               x x  
  x x    -*- Debug Filesystem                                                      x x  
  x x    [ ] Run 'make headers_check' when building vmlinux                        x x  

在编译内核时运行'make headers_check'命令检查内核头文件,当你修改了与用户空间相关的内核头文件后建议启用该选项


  x x    [ ] Enable full Section mismatch analysis                                 x x  
  x x    -*- Kernel debugging                                                      x x  
  x x    [ ]   Debug shared IRQ handlers                                           x x  
  x x    [*]   Detect Hard and Soft Lockups                                        x x  
  x x    [ ]     Panic (Reboot) On Hard Lockups                                    x x  
  x x    [ ]     Panic (Reboot) On Soft Lockups                                    x x  
  x x    [ ] Panic on Oops                          
    [*] Detect Hung Tasks                                                     x x  
  x x    (120) Default timeout for hung task detection (in seconds)                x x  
  x x    [ ]   Panic (Reboot) On Hung Tasks                                        x x  
  x x    -*- Collect scheduler debugging info                                      x x  
  x x    -*- Collect scheduler statistics                                          x x  
  x x    [*] Collect kernel timers statistics                                      x x  
  x x    [ ] Debug object operations                                               x x  
  x x    [ ] SLUB debugging on by default                                          x x  
  x x    [ ] Enable SLUB performance statistics                                    x x  
  x x    [ ] Kernel memory leak detector                                           x x  
  x x    [ ] RT Mutex debugging, deadlock detection                                x x  
  x x    [ ] Built-in scriptable tester for rt-mutexes                             x x  
  x x    [ ] Spinlock and rw-lock debugging: basic checks                          x x  
  x x    [ ] Mutex debugging: basic checks                                         x x  
  x x    [ ] Lock debugging: detect incorrect freeing of live locks                x x  
  x x    [ ] Lock debugging: prove locking correctness                             x x  
  x x    [ ] RCU debugging: sparse-based checks for pointer usage                  x x  
  x x    [ ] Lock usage statistics                               

           [ ] Sleep inside atomic section checking                                  x x  
  x x    [ ] Locking API boot-time self-tests                                      x x  
  x x    [ ] Stack utilization instrumentation                                     x x  
  x x    [ ] kobject debugging                                                     x x  
  x x    [ ] Highmem debugging                                                     x x  
  x x    [*] Verbose BUG() reporting (adds 70K)                                    x x  
  x x    [*] Compile the kernel with debug info                                    x x  
  x x    [ ]   Reduce debugging information                                        x x  
  x x    [ ] Debug VM                                                              x x  
  x x    [ ] Debug VM translations                                                 x x  
  x x    [ ] Debug filesystem writers count                                        x x  
  x x    [*] Debug memory initialisation                                           x x  
  x x    [ ] Debug linked list manipulation                                        x x  
  x x    [ ] Linked list sorting test                                              x x  
  x x    [ ] Debug SG table operations                                             x x  
  x x    [ ] Debug notifier call chains                                            x x  
  x x    [ ] Debug credential management            
    -*- Compile the kernel with frame pointers                                x x  
  x x    [*] Delay each boot printk message by N milliseconds                      x x  
  x x    < > torture tests for RCU                                                 x x  
  x x    (60) RCU CPU stall timeout in seconds                                     x x  
  x x    [ ] Print additional diagnostics on RCU CPU stall                         x x  
  x x    [ ] Enable tracing for RCU                                                x x  
  x x    [ ] Kprobes sanity tests                                                  x x  
  x x    < > Self test for the backtrace code                                      x x  
  x x    [ ] Force extended block device numbers and spread them                   x x  
  x x    [ ] Force weak per-cpu definitions                                        x x  
  x x    [ ] Debug access to per_cpu maps                                          x x  
  x x    < > Linux Kernel Dump Test Tool Module                                    x x  
  x x    < > Notifier error injection                                              x x  
  x x    [ ] Fault-injection framework                                             x x  
  x x    [*] Latency measuring infrastructure                                      x x  
  x x    [ ] Debug page memory allocations                                         x x  
  x x    [*] Deprecated power event trace API, to be removed                       x x  
  x x    [*] Tracers  --->                          
    < > Red-Black tree test                                                   x x  
  x x    < > Interval tree test                                                    x x  
  x x    [ ] Remote debugging over FireWire early on boot                          x x  
  x x    [ ] Remote debugging over FireWire with firewire-ohci                     x x  
  x x    [ ] Enable dynamic printk() support                                       x x  
  x x    [ ] Enable debugging of DMA-API usage                                     x x  
  x x    [ ] Perform an atomic64_t self-test at boot                               x x  
  x x    <M> Self test for hardware accelerated raid6 recovery                     x x  
  x x    [ ] Sample kernel code  --->                                              x x  
  x x    [*] KGDB: kernel debugger  --->                                           x x  
  x x    <M> Test kstrto*() family of functions at runtime                         x x  
  x x    [*] Filter access to /dev/mem                                             x x  
  x x    [ ] Enable verbose x86 bootup info messages                               x x  
  x x    [*] Early printk                                                          x x  
  x x    [ ]   Early printk via EHCI debug port                                    x x  
  x x    [ ] Check for stack overflows                                             x x  
  x x    [ ] Export kernel pagetable layout to userspace via debugfs               x x  
  x x    [*] Write protect kernel read-only data structures  
    [ ]   Testcase for the DEBUG_RODATA feature                               x x  
  x x    [*] Set loadable kernel module data as NX and text as RO                  x x  
  x x    < > Testcase for the NX non-executable stack feature                      x x  
  x x    [*] Enable doublefault exception handler                                  x x  

允许捕获非常罕见的导致系统无警告重启的doublefault异常,对于调试非常重要


  x x    [ ] Enable IOMMU stress-test mode                                         x x  
  x x    [ ] x86 instruction decoder selftest                                      x x  
  x x        IO delay type (port 0xed based port-IO delay)  --->                   x x  
  x x    [ ] Debug boot parameters                                                 x x  
  x x    [ ] CPA self-test code                                                    x x  
  x x    [*] Allow gcc to uninline functions marked 'inline'                       x x  
  x x    [ ] Strict copy size checks                                               x x  
  x x    [ ] NMI Selftest                                           


内核hack选项中大多是关于内核调试和开发的选项。很多选项是目前新版本增加的。







你可能感兴趣的:(linux内核编译过程及配置说明解释(7)--Firmware Drivers,File systems,Kernel hacking)