當前位置:首頁 » 編程軟體 » linux內核編譯重新

linux內核編譯重新

發布時間: 2024-09-27 06:18:45

linux只想部分修改內核應該怎麼辦,是不是要重新編譯

如果只是修改內核的模塊內容,則可以不需要重新編譯,因為即使重新編譯非模塊部分還是原來的一樣。只需要改完後make moles 在make moles_install。這個過程中make moles會重新編譯內核的模塊,install則會把模塊放到/lib/moles/內核名 的文件夾里去,並且接下來運行depmod,重新生蟲*.dep文件,系統靠這個文件載入模塊。如果修改的是非模塊部分的話,那麼就一定要重新編譯了。

❷ linux內核編譯的幾點疑惑

1.不一定是升級。一般編譯內核有升級某些特性修正一些bug,但是也有精簡來適應自己的機子硬體。
2.編譯成功後的內核與原來內核沒有影響(除非將原來的覆蓋),原來的內核最好保留,避免新內核運行不成功。
3.編譯的新內核主要看你自己在config文件上的配置。

❸ 重新編譯了一下linux內核,現在系統進不去了。。。

可以用原來的內核啟動。
開機出grub選單時參考提示 (可能要按esc退出gurb圖形界面) 然後按C鍵 進入grub控制台。
>root(hdX,x) ------>你的根分區 可以 root ( 然後 tab 看看有沒有可選,一般是hd0 ,然後 root (hd0, 再tab。
>kernel 你的內核
>initrd 你的 initrd 文件
>boot

你重新編譯內核後,可能要重mkinitrdfs 重做 initrd
內核模塊變化的話,可能需要depmod -a 重新產生mole依賴

普通用戶:回答供參考 grub部分對 grub2不能保證正確 grub2沒仔細看過how-to 思路就是這樣子的,詳細參考 man 或 help

比如我的vmware里的archlinux里是這樣子的
grub選單 按C
>root (hd0,0)
>kernel /vmlinuz26
>initrd /kernel26.img
>boot

我的debian是grub2引導的還沒仔細看過 grub2 怎麼回事

===========================================================
linux內核現在一般都是 grub或別的loader 載入啟動的,最早的時候內核支持通過特殊方式寫入磁碟引導,開機bios直接jump到內核的代碼啟動,現在的版本都不用了。 如果你是通過修改 grub.cfg改的內核實際上還是通過grub引導的樣子。是不是你的timeout=0 了

以前記得grub開機好像有個熱鍵停在菜單上。很模糊,當前沒找到資料。

一點建議:ununtu是debian的引申版本, 編譯了新內核放再/boot後,應該可以 update-grub 開自動編輯grub。
=============================================================
不行就用你的安裝光碟引導系統吧,或者做個grub引導盤吧

❹ 如何重新編譯linux內核

因為一般電腦安裝的系統都是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內核模塊編譯-通過Makefile重命名.ko文件名和模塊名

假設模塊的源文件為hello.c,源碼如下:

使用該文件編譯內核模塊。
正常情況下,Makefile文件內容如下:

執行 make 命令,生成hello.ko文件。
執行 sudo insmod hello.ko 命令,安裝該模塊。
執行 lsmod 命令,查看安裝的模塊。就會看到第一行的就是hello模塊。

但是,如果想自定義模塊名稱為 xmole ,而不是默認的 hello ,如何實現呢?方法如下:
在Makefile中重命名obj-m並將obj-m的依賴關系設置為原始模塊(hello)
修改後的Makefile文件內容如下:

將obj-m設置為 xmole .o,並使 xmole .o依賴於 hello .o.
執行 make 命令後,生成 xmole .ko, 而不是 hello .ko,
安裝命令: sudo insmod xmole.ko
查看命令: lsmod ,就會看到被安裝名為 xmole 的模塊。

熱點內容
為什麼文件夾只讀 發布:2024-11-24 16:56:02 瀏覽:170
無線監控怎麼存儲 發布:2024-11-24 16:46:43 瀏覽:598
英朗買什麼配置 發布:2024-11-24 16:40:44 瀏覽:346
殺戮解壓法 發布:2024-11-24 16:40:36 瀏覽:945
避孕套存儲箱 發布:2024-11-24 16:25:09 瀏覽:735
如何自己搭建雲伺服器干貨 發布:2024-11-24 16:22:08 瀏覽:371
安卓怎麼返回出廠系統 發布:2024-11-24 16:20:32 瀏覽:447
求生之路sp源碼 發布:2024-11-24 16:06:05 瀏覽:373
javaurl的正則表達式 發布:2024-11-24 15:53:45 瀏覽:246
c語言只可以執行編譯文件 發布:2024-11-24 15:53:33 瀏覽:757