國嵌攻略 099 Linux核心配置與編譯

2022-07-20 23:45:20 字數 2171 閱讀 6569

為什麼要配置核心

基於硬體和軟體的需求選出需要的功能,去掉不要的功能。

核心配置的方法

make config:基於文字互動的配置。

make menuconfig:基於圖形選單的配置。

make menuconfig配置方法

1.選單項的分類

processor type and features   處理器型別

networking support            網路協議支援

device drivers                裝置驅動支援

file systems                  檔案系統支援

2.選單項的選擇方式

< >,表示不選擇該功能。

<*>,表示該功能對應的原始檔(.c)先被編譯成中間檔案(.o),然後合併到核心映像中,該功能最終執行在記憶體裡面。需要一直使用的功能選擇該方式。

,表示該功能對應的原始檔(.c)先被編譯成中間檔案(.ko),然後集中到相應的資料夾中。模組最終存放在輔存上,當需要使用時再動態載入到記憶體。不需要一直使用的功能選擇該方式。

3.配置檔案儲存位置

與makefile檔案同目錄下的.config檔案儲存了配置結果,該檔案為隱藏檔案,通過ls –a命令可以看到此檔案。該檔案中每一項與選單項的每一項對應。在配置選單中選擇help可以檢視與之對應項的名稱。

4.如何配置核心配置

4.1.選擇乙個已有的配置檔案簡化配置。

4.2.不清楚的配置項儲存為預設值。

核心的配置與編譯

1.配置核心配置檔案

1.1.複製配置檔案

複製pc機上的linux系統中的/boot/config...的核心配置檔案到核心源**中。在arch//configs資料夾中也儲存有相應參考的配置檔案。

1.2.載入配置檔案

make menuconfig->load an alternate configuration file->exit->yes

1.3.修改配置檔案

make menuconfig->networking options->< >the ipv6 protocol->exit->yes

2.編譯核心映像

選擇為<*>的模組會被編譯成核心映像檔案(zimage)

示例:make zimage

make bzimage

使用v=1選項顯示詳細編譯資訊

make zimage v=1

make bzimage v=1

編譯好的核心位於arch//boot/目錄下

3.編譯核心模組

選擇為的模組會被編譯成核心模組檔案

示例:make modules

4.移動核心模組

編譯出來的核心模組散落在核心目錄的各個位置,通過移動核心模組,移動到系統根目錄的/lib/modules/目錄下

示例:make modules_install

5.打包核心模組(製作ramdisk)

格式:mkinitrd initrd-$version $version

示例:mkinitrd initrd-2.6.39 2.6.39

$version表示/lib/modules/目錄下的對應資料夾名稱,在執行命令的目錄下會產生initrd-2.6.39檔案

6.安裝核心檔案(x86)

1.拷貝核心映像

cp arch/x86/boot/bzimage /boot/vmlinuz-2.6.39

2.拷貝核心模組

cp initrd-2.6.39 /boot/

3.修改啟動檔案

vim /etc/grub.conf

title red hat enterprise linux (2.6.39

) root (hd0,0)

initrd /initrd-2.6.39

4.重新啟動系統

uname –r 檢視核心版本

7.清理核心檔案

1.在配置的階段產生了.config檔案

2.在編譯的過程中產生了很多中間檔案(.o),一部分中間檔案變成了核心映像(zimage),另一部分檔案變成了核心模組(.ko)

示例:make clean       清除編譯產生的檔案

make distclean   清除配置和編譯產生的檔案

國嵌攻略 111 硬體訪問技術

硬體訪問實質 驅動程式控制裝置,主要是通過訪問裝置內的暫存器來達到控制目的的,因此我們討論如何訪問硬體,就成了如何訪問這些暫存器。訪問流程 1.位址對映 在linux系統中,無論是核心程式還是應用程式,都只能使用虛擬位址,而晶元手冊中給出的硬體暫存器位址或ram位址都是實體地址,無法直接使用。因此我...

國嵌攻略 107 Linux程序管理子系統

程序與程式 1.程式 存放在磁碟上的一系列 和資料的可執行映像,是乙個靜止的實體。2.程序 是乙個執行中的程式,它是乙個動態的實體。程序四要素 1.有一段程式供其執行。這段程式不一定是某個程序所專有,可以與其他程序共用。2.有程序專用的核心空間堆疊。3.在核心中有乙個task struct資料結構,...

國嵌攻略 161 USB匯流排介紹

usb發展史 usb universal serial bus 通用序列匯流排,是一種外部匯流排標準。用於規範電腦與外部裝置的連線和通訊。usb是在1994年底由英特爾 康柏 ibm microsoft等多家公司聯合提出的。自1996年堆出後,已經成功替代了串列埠和並口。成為當今個人電腦和大量智慧型...