Linux核心源碼學習之 核心編譯,linux核心源碼編譯

來源:互聯網
上載者:User

Linux核心源碼學習之 核心編譯,linux核心源碼編譯

ubuntu14.04系統編譯3.16.1核心

我的完全是新系統(剛裝上並且進行了更新20140906)

下載linux-3.16.1系統並解壓到/usr/src/下:
mkproper
無法執行此命令,表示缺少相關軟體,上網安裝即可。
sudo apt-get install ncurses-dev
make menuconfig
採用的方法是直接匯入本機已有的.config檔案,未做更改。
開始編譯:
make bzImage
編譯成功後會顯示相關的成功的資訊。
make modules
以上完成的核心和模組的編譯,以下進行安裝:
make modules_install
此時,所有的東西包括安裝好的模組會在/boot/下產生相應的檔案夾
make install
完成核心的安裝(會複製核心至標準位置/boot..)相應的grub檔案也會做更改。

以上基本完成了所有的核心編譯的工作。
開機啟動後,一切正常。

PS:網卡問題
在開機之後成功正常運行幾個小時之後,突然連不上網了。。。。
不知道是什麼問題:
網口沒問題
網線沒問題
所以懷疑是網卡壞掉了,後來驗證的是
硬體上存在雙顯卡:主板上的顯卡和一個獨立顯卡
獨立顯卡的驅動出問題了
懷疑是系統開機時優先啟動獨立顯卡,而獨立顯卡的驅動壞掉了。
最後解決方案:
拔掉獨立顯卡,主板上的顯卡可以正常運行。算是解決了吧。。。。


Linux核心編譯與源碼安裝是一回事嘛?

Linux的核心下載下來是代碼,需要進行配置和編譯。編譯的流程當然就是編譯過程了。具體編譯過程見核心根目錄下的readme.txt檔案,大體是配置,清理目錄,編譯產生鏡像,修改開機檔案。
 
linux 模組編程為何要編譯核心源碼樹

當然需要。。。

第一點,就是源碼樹中有相應的標頭檔和函數的實現,沒有源碼樹,你哪調用去呢?(PC上編譯的時候核心有匯出符號,系統中有標頭檔,這樣就可以引用核心給你的介面了,但是只能編譯你PC上版本的核心可載入的模組)。

第二個,核心模組中會記錄版本號碼的部分,需要記錄版本號碼的原因是不同的核心版本之間,那些介面和調用可能會有比較大的差異,因此必須要保證你的代碼和某個特定的核心對應,這樣編譯出來的模組就可以(也是只能)在運行這個核心版本的Linux系統中載入,否則一個很簡單的異常就會導致核心崩潰,或者你的代碼根本無法編譯通過(介面名變了)。

我上面說的是編譯模組的情況,當然如果是把模組直接編譯到核心當中去的話,那就不用說了,沒有核心源碼,你無法編譯核心。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.