為什麼要配置核心
基於硬體和軟體的需求選出需要的功能,去掉不要的功能。
核心配置的方法
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年堆出後,已經成功替代了串列埠和並口。成為當今個人電腦和大量智慧型...