运行在TQ2440开发板上以及X86平台上的linux内核编译
?一、運行在TQ2440開發(fā)板上的linux內(nèi)核編譯
1、獲取源碼并解壓
直接使用天嵌移植好的“l(fā)inux-2.6.30.4_20100531.tar.bz2”源碼包。
解壓(天嵌默認(rèn)解壓到/opt/EmbedSky/linux-2.6.30.4/中)
tar xvjf linux-2.6.30.4_20100531.tar.bz2 -C /2、獲取默認(rèn)配置文件
可以使用“config_EmbedSky_W43”作為默認(rèn)配置文件?
cp config_EmbedSky_W43 .config?3、配置(根據(jù)需要修改部分選項)
?????? 筆者認(rèn)為只要有一個適合自己開發(fā)板的“.config”,這一步也不需要,直接使用這個配置文件去編譯內(nèi)核即可。
?????? 至于這一步的意義,其實也就是為了生成一個適合自己開發(fā)板的“.config”,決定哪些模塊需要編譯進內(nèi)核(裁剪內(nèi)核)。
?????? 默認(rèn)配置文件的意義就在于,為我們提供了一種參考,通常選擇的默認(rèn)配置文件是與我們的開發(fā)板很相似的。由于配置選項太多,多達上千項,使用默認(rèn)配置文件,只需要修改那些默認(rèn)配置文件與我們開發(fā)板不一樣的選項即可,這肯定是節(jié)省時間和體力的捷徑。
make menuconfig4、編譯內(nèi)核?
make zImage?5、編譯modules(內(nèi)核驅(qū)動)模塊?
make modules可在內(nèi)核中掛載使用生成的“*.ko”文件
二、運行在X86平臺上的linux內(nèi)核編譯和安裝
1、獲取源碼并解壓
可以從http://www.kernel.org/選擇一個想要的版本,例如“l(fā)inux-3.2.55.tar.xz”,并解壓到“/usr/src”(/usr/src目錄下是專門存放內(nèi)核源代碼的)。
sudo tar -xvf linux-3.2.55.tar.xz -C /usr/src??? 解壓后源碼大小幾百MB。
2、 獲取默認(rèn)配置文件
比如說:/boot/config-3.2.0-55-generic-pae(Ubuntu當(dāng)前內(nèi)核的配置文件)
cp /boot/config-3.2.0-55-generic-pae .config3、配置?
make menuconfig??? 此命令會調(diào)取各級目錄中的kconfig生成一個菜單,通過這個菜單,我們可以配置linux內(nèi)核。配置完成后的信息,保存在“.config”中。在編譯內(nèi)核的時候,會讀取這個配置文件,從而決定以什么樣的方式編譯內(nèi)核,編譯內(nèi)核的那些模塊等等。?
4、編譯內(nèi)核和模塊
編譯內(nèi)核
make此過程長達幾個小時,編譯完后源碼包就有5、6個G,所以在編譯之前確保你的虛擬磁盤剩余容量足夠大,不夠的話參考修改虛擬機linux硬盤的大小 進行磁盤擴容,否則在編譯過程中將出現(xiàn)“磁盤空間不足”的問題。生成的內(nèi)核鏡像在arch/x86/boot目錄下。
??? 安裝模塊
make modules_installmake modules_install命令用于安裝可裝載模塊,安裝的目的目錄時/lib/modules/3.2.55
5、安裝?
make install?? make install命令執(zhí)行三個操作:復(fù)制內(nèi)核鏡像到/boot目錄下;生成initrd-img;更新grub。命令成功執(zhí)行成功后,新的內(nèi)核已可以使用,并且列在引導(dǎo)菜單中。
??? /boot目錄下的內(nèi)容
6、重啟檢查
重啟系統(tǒng),grub引導(dǎo)選項中多了我們新編譯的內(nèi)核選擇,選擇新內(nèi)核引導(dǎo)。“Previous Linux version”為更新內(nèi)核前的內(nèi)核啟動項。
????? 進入系統(tǒng)后執(zhí)行命令uname -r 查看當(dāng)前的內(nèi)核版本。
uname -r?
后記
??? 倘若想卸載自己編譯的內(nèi)核,可以參考linux下刪除內(nèi)核 進行操作。
?
參考網(wǎng)頁:linux內(nèi)核學(xué)習(xí)之二:編譯內(nèi)核?
??????????????自己編譯linux內(nèi)核????
轉(zhuǎn)載于:https://www.cnblogs.com/amanlikethis/p/3592009.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的运行在TQ2440开发板上以及X86平台上的linux内核编译的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一卷电线多少钱啊?
- 下一篇: Linux 命令积累 fuser ls