重新編譯內核需要清除嗎
因為一般電腦安裝的系統都是Windows,而整個編譯過程都需要在Linux環境下實現,所以最好是在虛擬機里安裝Linux系統來完成這一過程。我使用的虛擬機是VMware-workstation-full-v7.1.4。
然後,我們需要下載一個較高版本的Linux系統的鏡像文件,安裝在虛擬機上,作為編譯環境。我使用的是ubuntu-11.04-desktop-i386。之所以選擇較高版本,是因為它的界面比較方便用戶操作。
然後下載一個Linux內核源代碼文件,將它保存到虛擬機上新安裝的系統中去。並解壓到/usr/src目錄。我使用的是linux-2.6.36,下載低版本的原因是,小巧輕便,易於編譯。
解壓命令如下:
bzip2 -d linux-2.6.36.tar.bz2
tar -xvf linux-2.6.36.ta
修改/usr/src/linux-2.6.36/kernel/sys.c文件,在文件末尾增加一個系統調用函數。自行編寫一個簡單的程序即可,只為測試用。
修改/usr/src/linux-2.6.36/arch/x86/kernel/syscall_table_32.S,為新添加的程序配置系統調用號。
在/usr/src/linux-2.6.36/arch/x86/include/asm/unistd_32.h中配置系統調用表。
下面就是最重要的內核編譯與安裝:
首先配置編譯信息,使其生成適合當前機器的Makefile,輸入make oldconf ig。
接著還要輸入make menuconfig,在字元界面下進行必要的細微的修改。
然後要經過四步編譯過程(直接輸入命令即可):
(1)make bzImage
將內核編譯為壓縮映像,存儲在源碼根目錄下的「System.map」文件中。
(2)make moles
編譯各個模塊。
(3)sudo make moles_install
安裝模塊
(4)sudo make install
安裝內核
第(2)(3)步等待時間較長,可能需要數個小時,請耐心等待。
無報錯的話重啟進入GRUB界面,就可以看到新編譯的內核了。
按回車鍵進入我們編譯的目標內核中,用關鍵詞搜索查看新增加的系統調用「my call」是否已在內核中:
編寫測試程序,調用新添加的系統調用:
測試成功,說明系統調用添加成功,進而說明內核編譯成功!
以上的辦法你可以試一下,希望對你有所幫助。
⑵ linux為什麼要重新編譯內核
.config 是配置編譯內核的最初步驟,你要編譯驅動程序,就必須要了解這個,多上網查下資料 然後重新編譯 Linux作為一個自由軟體,在廣大愛好者的支持下,內核版本不斷更新。 新的內核修訂了舊內核的bug,並增加了許多新的特性。如果用戶想要使用這些新特性,或想根據自己的系統度身定製一個更高效,更穩定的內核,就需要重新編譯Linux內核。 通常,更新的內核會支持更多的硬體,具備更好的進程管理能力,運行速度更快、 更穩定,並且一般會修復老版本中發現的許多漏洞等,經常性地選擇升級更新的系統內核是Linux使用者的必要操作內容。 為了正確的合理地設置內核編譯配置選項,從而只編譯系統需要的功能的代碼,一般主要有下面四個考慮: (1)自己定製編譯的內核運行更快(具有更少的代碼) (2)系統將擁有更多的內存(內核部分將不會被交換到虛擬內存中) (3)不需要的功能編譯進入內核可能會增加被系統攻擊者利用的漏洞 (4) 將某種功能編譯為模塊方式會比編譯到內核內的方式速度要慢一些 編譯內核時三個重要文件
⑶ 關於重新編譯Linux內核的問題
問題1,下載最新內核只需要有網路,能上網就行。你在哪個系統下載都可以。但是編譯需要在Linux裡面編譯,這樣方便。
問題2,編譯的過程很簡單,配置,然後就是make,再然後就是安裝。
但是,我想說的是,計算機的各種外網設備的驅動也是需要配置安裝的。更換內核後所有其他的東西都需要相應的更新。工程量浩大。
⑷ 內核編譯,重新生成ko文件,需要make clean之後再make嗎
你可以使用自己的內核而不是發行版的內核, 另外也介紹了如何給內核打補丁, 從而方便增加新的功能.下面的工作我都在Ubuntu 6.10 Server ("Edgy Eft")和Ubuntu 6.06 Desktop ("Dapper Drake")上經過了測試.
我想首先要說的是文章中構建自定義內核的方式不是唯一的, 還有許多其它的方式, 這不過是我習慣的方式. 我不能保證使用後不會出現任何問題.
參考地址:http://linux.chinaunix.net/techdoc/system/2007/08/26/966343.shtml
⑸ 關於linux內核重新編譯之後殘留下個問題
是程序運行時必須的。
⑹ 為什麼要配置內核為何要重新編譯內核
為什麼要配置內核?
編譯前當然要配置一下內核啊,make menuconfig ,生成默認配置文件 .config ,這個文件是設置 cpu 體系,及很多驅動選項的,你沒配置這個,怎麼可能編譯那
新下載的內核都是沒有默認 .config 需要你找到一個默認的config 文件,比如 arch/arm/configs/ 下是 arm cpu 很多的默認配置,當然你也可以把你以前的 config 文件拷貝到新內核目錄下。
.config 是配置編譯內核的最初步驟,你要編譯驅動程序,就必須要了解這個,多上網查下資料
然後重新編譯
為何要重新編譯內核?
Linux作為一個自由軟體,在廣大愛好者的支持下,內核版本不斷更新。
新的內核修訂了舊內核的bug,並增加了許多新的特性。如果用戶想要使用這些新特性,或想根據自己的系統度身定製一個更高效,更穩定的內核,就需要重新編譯Linux內核。
通常,更新的內核會支持更多的硬體,具備更好的進程管理能力,運行速度更快、 更穩定,並且一般會修復老版本中發現的許多漏洞等,經常性地選擇升級更新的系統內核是Linux使用者的必要操作內容。
為了正確的合理地設置內核編譯配置選項,從而只編譯系統需要的功能的代碼,一般主要有下面四個考慮:
(1)自己定製編譯的內核運行更快(具有更少的代碼)
(2)系統將擁有更多的內存(內核部分將不會被交換到虛擬內存中)
(3)不需要的功能編譯進入內核可能會增加被系統攻擊者利用的漏洞
(4) 將某種功能編譯為模塊方式會比編譯到內核內的方式速度要慢一些
這樣就了解為什麼要編譯Linux內核了。
⑺ 怎麼重新編譯linux伺服器內核
make
config首先配置內核,生成內核配置文件,如果是伺服器上的,建議使用編輯好的內核配置文件,自己在伺服器上配置比較麻煩;
make再根據生成的配置文件進行編譯;
找到新的內核就可以使用
⑻ 重新編譯Linux內核
不放以前的系統里放什麼地方?另一台計算機里?之後你這個機器啟動時自己跑到那台計算機上要數據啟動完後,在自己跑回來?
initrd 是內核啟動的一個虛擬的磁碟。作用是在 Linux 內核啟動時,不直接進入硬碟上的 root 分區,而是進入內存裡面的虛擬的 root 分區。
這個用意是當內核不能直接讀取硬碟時(比如用了內核沒有自帶的驅動的硬碟、分區。或者 root 分區在網路上)。那麼就可以用 initrd 裡面的驅動來過渡進入正確的 root ,或者乾脆就停在 initrd 模擬的內存檔裡面。
PS:我編譯內核都是 make xconfig ; make ; make moles_install ; make install
前3個不解釋,最好一個其實就是吧編譯好的內核復制到 /boot 裡面。並且根據這個目錄裡面的某些特點。進行一些操作。
⑼ 怎樣刪除自己編譯的內核
你可以使用自己的內核而不是發行版的內核,另外也介紹了如何給內核打補丁,從而方便增加新的功能.下面的工作我都在Ubuntu6.10Server("EdgyEft")和Ubuntu6.06Desktop("DapperDrake")上經過了測試.我想首先要說的是文章中構建自定義內核的方式不是唯一的,還有許多其它的方式,這不過是我習慣的方式.我不能保證使用後不會出現任何問題.參考地址:
⑽ 編譯內核的目的是什麼重新編譯內核有什麼好處重新編譯內核的步驟有哪些
> 編譯內核的目的是什麼?重新編譯內核有什麼好處?
編譯內核的目的主要是改變內核的默認選項,比如內核原來不支持某硬體,原因是內核的相應選項默認狀態是disactivated,需要改變。
當然,也有人把新版的linux裝在舊機子上。這樣,許多在內核里activated的硬體,他沒有,將來也不需要。那麼,就可以在內核里去掉。以及一些服務、特殊的功能等等,如果用不著,比如機子是伺服器的話,最好在內核里關掉,"精兵簡政"。這是以系統安全和提高效率為目的。
> 重新編譯內核的步驟有哪些?
具體不好說,這取決於你裝了哪個linux, 哪個版本,等等。最好請你閱讀在線文檔、說明書,或參考有關專業書刊。