當前位置:首頁 » 編程軟體 » 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 的模塊。

熱點內容
php7下載 發布:2024-09-27 09:23:38 瀏覽:937
溯源碼刷膠 發布:2024-09-27 09:13:51 瀏覽:203
文件夾歸類軟體 發布:2024-09-27 09:05:41 瀏覽:380
ccache緩存 發布:2024-09-27 09:00:51 瀏覽:191
網路攝像頭的原始密碼是多少 發布:2024-09-27 08:44:41 瀏覽:790
c語言設t 發布:2024-09-27 08:42:18 瀏覽:236
游戲編程培訓學校 發布:2024-09-27 08:29:44 瀏覽:980
量子演算法包括 發布:2024-09-27 08:20:33 瀏覽:671
linux堡壘機 發布:2024-09-27 08:11:30 瀏覽:762
廣東廣電在哪裡看wifi密碼 發布:2024-09-27 07:54:55 瀏覽:120