天天看點

《精通Linux裝置驅動程式開發》——1.7 編譯核心

本節書摘來自異步社群《精通linux裝置驅動程式開發》一書中的第1章,第1.7節,作者:【印】sreekrishnan venkateswaran(斯裡克裡斯漢 溫卡特斯瓦蘭)著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

了解了核心源碼樹布局後,現在我們來對代碼稍做修改,并編譯和運作它。進入位于頂層的init/目錄,對初始化檔案main.c做一項小的修改,即在start_kernel()函數的開頭加上一行列印資訊,宣布你對北極熊的喜愛:

編譯核心準備工作已經就緒,進入核心源碼樹并運作清除指令:

接下來進行核心配置工作。這一步的主要工作是選擇要編譯的元件,你可以指定需要的元件以靜态還是動态連結的方式編譯進核心:

<code>bash&gt; make menuconfig</code>

menuconfig是核心配置菜單的文本界面,使用make xconfig可以産生一個圖形界面。所選擇的配置資訊被存放在核心源碼樹根目錄的.config檔案中。如果不想從頭開始進行配置,可以使用 arch/your-arch/defconfig作為起點或者若你的體系架構支援多個平台,也可以用)arch/your-arch/ configs/your-machine_defconfig檔案作為起點。是以,如果正在為32位x86體系架構編譯核心,運作如下指令:

<code>bash&gt; cp arch/x86/configs/i386_defconfig .config</code>

編譯核心并産生一個壓縮的啟動映像:

<code>bash&gt; cp arch/x86/boot/bzimage /boot/vmlinuz</code>

現在,核心映像将位于arch/x86/boot/bzimage,更新啟動分區:

也許需要根據新的啟動映像更新引導程式。如果正在使用grub這個引導程式,它将自動完成配置;如果正在使用lilo,請增加一個标記:

最後,重新啟動linux并啟動到新核心:

<code>bash&gt; reboot</code>

啟動後的第一條資訊顯示了你添加的喜愛北極熊的那句話。 

繼續閱讀