這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
kernel_make_menuconfig_description [2024/07/17 11:53] don |
kernel_make_menuconfig_description [2024/07/17 12:00] (目前版本) don |
||
---|---|---|---|
行 3: | 行 3: | ||
===== Kernel 下 scripts 文件夾 ===== | ===== Kernel 下 scripts 文件夾 ===== | ||
- | scripts 文件夾存放的是跟 make menuconfig 配置介面的圖形繪製相關的文件 | + | scripts 文件夾存放的是跟 make menuconfig 配置介面的圖形繪製相關的文件\\ |
- | make menuconfig | + | '' |
- | 在 Kernel 的目錄下,讀取 Kernel目錄下的 | + | 在 Kernel 的目錄下,讀取 Kernel目錄下的 |
目錄下的 Kconfig 如下 | 目錄下的 Kconfig 如下 | ||
行 49: | 行 49: | ||
</ | </ | ||
- | 至於 $(ARCH) 可先指定變量或在執行 menuconfig 時指定 | + | 至於 |
- | '' | + | |
- | 每一種架構都有其個別定義的內核默認選項 | + | < |
- | 其資料都會放置在 | + | |
+ | 每一種架構都有其個別定義的內核默認選項\\ | ||
+ | 其資料都會放置在 | ||
內核默認會以 Linux 根目錄下 .config 當作默認選項 | 內核默認會以 Linux 根目錄下 .config 當作默認選項 | ||
我們會根據開發版最接近的系列的 defconfig 將其拷貝到 Kernel 根目錄覆蓋 .config | 我們會根據開發版最接近的系列的 defconfig 將其拷貝到 Kernel 根目錄覆蓋 .config | ||
在 Kernel 根目錄執行以下命令 | 在 Kernel 根目錄執行以下命令 | ||
- | cp arch/arm64/ configs/ | + | < |
+ | |||
+ | 當我們執行 make menuconfig 之後,會把修改的內容更新到根目錄的 <color # | ||
+ | 還會將所有選項以巨集定義產生在 kernel 根目錄下成為一個 <color # | ||
+ | |||
+ | <color # | ||
- | 當我們執行 make menuconfig 之後,會把修改的內容更新到根目錄的 .config | + | 內容如下: |
- | 還會將所有選項以巨集定義產生在 kernel 根目錄下成為一個 .h 頭文件 | + | |
- | include/ | + | |
- | 內容如下: | + | |
< | < | ||
行 97: | 行 100: | ||
內核中的源代碼都會包含上述的 .h文件 ,來進行編譯 | 內核中的源代碼都會包含上述的 .h文件 ,來進行編譯 | ||
- | Kconfig 在修改或新增內容時也要修改對應的 Makefile ,這樣才能讓選單對應取得或取消包含的程序 | + | ===== 如何修改 |
- | Driver 下的 Makefile 內容如下 : | + | Kconfig 在修改或新增內容時也要修改對應的 Makefile ,這樣才能讓選單對應取得或取消包含的程序\\ |
+ | |||
+ | Driver 下的 Makefile 內容如下 :\\ | ||
< | < | ||
obj-$(CONFIG_FB_I810) | obj-$(CONFIG_FB_I810) | ||
obj-$(CONFIG_FB_INTEL) | obj-$(CONFIG_FB_INTEL) | ||
- | + | obj-$(CONFIG_PARPORT) | |
- | obj-$(CONFIG_PARPORT) += parport/ | + | obj-$(CONFIG_NVM) |
- | obj-$(CONFIG_NVM) += lightnvm/ | + | obj-y |
- | obj-y += base/ block/ misc/ mfd/ nfc/ | + | |
obj-$(CONFIG_LIBNVDIMM) += nvdimm/ | obj-$(CONFIG_LIBNVDIMM) += nvdimm/ | ||
obj-$(CONFIG_DAX) += dax/ | obj-$(CONFIG_DAX) += dax/ | ||
obj-$(CONFIG_DMA_SHARED_BUFFER) += dma-buf/ | obj-$(CONFIG_DMA_SHARED_BUFFER) += dma-buf/ | ||
obj-$(CONFIG_NUBUS) += nubus/ | obj-$(CONFIG_NUBUS) += nubus/ | ||
- | obj-y += macintosh/ | + | obj-y |
obj-$(CONFIG_IDE) += ide/ | obj-$(CONFIG_IDE) += ide/ | ||
- | obj-y += scsi/ | + | obj-y += scsi/ |
- | obj-y += nvme/ | + | obj-y |
obj-$(CONFIG_ATA) += ata/ | obj-$(CONFIG_ATA) += ata/ | ||
obj-$(CONFIG_TARGET_CORE) += target/ | obj-$(CONFIG_TARGET_CORE) += target/ |