詳情參考鳥哥
http://linux.vbird.org/linux_basic/0540kernel.php
1.取得原始碼
kernel.org
2.設定
$ make menuconfig
最好載入目前設定(/boot/config......)再修改
3.編譯
$ make
4.安裝模組
$ make modules_install
會安裝到/lib/modules/核心版本/
(所以如果編跟本來同版本的話會用到同一個資料夾 最好備份原來的)
5.核心檔案放在:
原始碼/arch/i386/boot/bzImage
複製到/boot/內以供開機使用
檔名最好改成"vmlinux_核心版本"以供辨認
6.建立initrd(Initial RAM Disk)
initrd 可以將 /lib/modules/.... 內的『開機過程當中一定需要的模組』包成一個檔案
確保可以順利掛載root,這樣其他的module就可以在/lib/modules/裡找到了
$ mkinitrd initrd_`uname -r` `uname -r`
會產生檔名為initrd_`uname -r`.EL的檔案
(不一定要`uname -r`,自己取名,因為通常要做的版本跟自己現在用的不一樣)
7.複製system.map
$ cp 原始碼/System.map /boot/System.map.版本號
這樣才不會稿混
8.修改grub
$ vi /boot/grub/menu.lst
複製一份本來可以用的
然後改一下設定
把initrd和kernel的檔案改成新編好的
9.reboot & try it
http://linux.vbird.org/linux_basic/0540kernel.php
1.取得原始碼
kernel.org
2.設定
$ make menuconfig
最好載入目前設定(/boot/config......)再修改
3.編譯
$ make
4.安裝模組
$ make modules_install
會安裝到/lib/modules/核心版本/
(所以如果編跟本來同版本的話會用到同一個資料夾 最好備份原來的)
5.核心檔案放在:
原始碼/arch/i386/boot/bzImage
複製到/boot/內以供開機使用
檔名最好改成"vmlinux_核心版本"以供辨認
6.建立initrd(Initial RAM Disk)
initrd 可以將 /lib/modules/.... 內的『開機過程當中一定需要的模組』包成一個檔案
確保可以順利掛載root,這樣其他的module就可以在/lib/modules/裡找到了
$ mkinitrd initrd_`uname -r` `uname -r`
會產生檔名為initrd_`uname -r`.EL的檔案
(不一定要`uname -r`,自己取名,因為通常要做的版本跟自己現在用的不一樣)
7.複製system.map
$ cp 原始碼/System.map /boot/System.map.版本號
這樣才不會稿混
8.修改grub
$ vi /boot/grub/menu.lst
複製一份本來可以用的
然後改一下設定
把initrd和kernel的檔案改成新編好的
9.reboot & try it
沒有留言:
張貼留言