首先要聲明一下,本人其實(shí)也是憑借一腔熱血剛剛學(xué)習linux及其內核,在這里只是我把我剛學(xué)東西與大家分享,希望對跟我一樣的初學(xué)者有所幫助。
大家都知道,在進(jìn)入linux內核編程之前,需要構造具有源代碼的內核樹(shù)。但是往往大家一想到編譯內核,就總是很恐懼,不敢去嘗試,兩天之前我也是這樣,對此望而生畏。但是當你真的想編寫(xiě)驅動(dòng)時(shí),這是你必須面對的事情。在網(wǎng)上一搜,資料太大,說(shuō)的太復雜,于是就自己下了源代碼,開(kāi)始讀README,總結了一下,原來(lái)可以很簡(jiǎn)單,居然讓我一次就成功了。我使用的內核是2.6.20.1,我的目標很簡(jiǎn)單就是想讓我的內核有源碼,可以編寫(xiě)內核程序,所以我下載了2.6.20.7,也算是“升級”阿!下面看看我的步驟有多簡(jiǎn)單阿!
1.下載源碼,(網(wǎng)址我想,不用我說(shuō)了吧www.kernel.org)你可以選擇某一版本的兩種格式之一下載,例如 linux-2.6.xx.tar.gz,linux-2.6.xx.tar.bz2
2.解壓
對應著(zhù)兩種源碼格式,也有兩種解壓方法,
gzip -cd linux-2.6.xx.tar.gz | tar xvf -
bzip2 -dc linux-2.6.xx.tar.bz2 | tar xvf -
3.配置內核
make oldconfig (由于這里以前已經(jīng)裝有2.6的內核,很多配制已經(jīng)選好,所以你完全可以這么做,只需要配制一些新的特性)
4.編譯內核
a.make
b.make modules_install
c.make install
5.finished
你可以看看你的/boot/grub/grub.conf里面是不是已經(jīng)有了你新編譯的內核,如果是的話(huà),恭喜你,你已經(jīng)成功的編譯了一個(gè)屬于你的,可以加載modules的內核了.
看到這里可能很多人會(huì )質(zhì)疑我的步驟是不是漏掉了什么,其實(shí)我沒(méi)有漏掉什么東西,因為2.6的內核已經(jīng)很人性化了,Makefile已經(jīng)幫我做了很多工作了.我們不需要這里討論太多的東西,關(guān)于patch,lilo,grub的用法,基本上用不上(相對于我們的初衷),所以不說(shuō)了,只會(huì )你覺(jué)得更加麻煩.
最后需要說(shuō)明的是,我們只是想有一個(gè)源碼的內核,然后可以編驅動(dòng)之類(lèi)的內核模塊,所以本文很簡(jiǎn)單,假如你是沒(méi)有一點(diǎn)基本知識,按上邊的步驟,其實(shí)你一樣可以成功.另外我的linux是fedoral 7,經(jīng)過(guò)上述步驟,成功安裝,如果你遇見(jiàn)什么問(wèn)題安不上,請不要罵我,你可以看看README和Changes,我也只是把它們的東西通過(guò)中文很簡(jiǎn)單的告訴你.
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。