亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Debian > 正文

編譯Debian內核源碼

2024-06-28 13:27:08
字體:
來源:轉載
供稿:網友
編譯Debian內核源碼

參考:

《鳥哥的linux私房菜》第26章

http://hi.baidu.com/wg_wang/item/f9375c2f00ca75c0ee10f1db

http://www.linuxdiyf.com/bbs/thread-193762-1-1.html

環境:

Wind7主機+Debian6虛擬機,虛擬機軟件是VirtualBox

第一步、下載Linux源碼

首先需要看一下當前Linux使用的版本

pengdl@debian:~$ uname -r
2.6.32-5-686

可以看到,當前使用的Linux內核版本是:2.6.32.5

為了說明問題,我們也從網上下載linux-2.6.32.5(當然也可以下載最新的版本,但是有風險)。下載地址如下:

ftp://ftp.kernel.org/pub/linux/kernel/v2.6/

我下載的是:linux-2.6.32.5.tar.xz

第二步、解壓Linux內核

將來把內核源碼解壓到/usr/src/kernels下

mkdir -p /usr/src/kernels
tar -xJf linux-2.6.32.5.tar.xz -C /usr/src/kernels/

第三步、編譯Linux內核

清理垃圾:

cd /usr/src/kernels/linux-2.6.32.5

make mrPRoper

make clean

編譯內核前需要配置,為了說明問題,直接將本機自帶的配置config-2.6.32-5-686拷貝到剛才解壓的目錄下(如果下載了比較新的內核,就需對照著config-2.6.32-5-686自己配置了),并重命名為.config

cp /boot/config-2.6.32-5-686 /usr/src/kernels/linux-2.6.32.5/.config

cd /usr/src/kernels/linux-2.6.32.5

make menucongfig

修改General setup內的Local version為pengdl,目的是防止執行make install和make modules_install的時候跟舊的發生沖突。

make bzImage -j4

make modules -j4

make modules_install

make install

制作initrd鏡像

mkinitramfs 2.6.32.5pengdl -o /boot/initrd.img-2.6.32.5pengdl

其中2.6.32.5pengdl 就是執行完make modules_install后,在/lib/modules下新生成的文件夾

此時/lib/modules和/boot下的內容如下(其中帶有686的是系統原先就有的,帶pengdl的是我們新生成的,

其中之所以有以.old結尾的文件,是因為執行了兩次make install,實際上執行一次就行了。手動將*.old刪除):

debian:/usr/src/kernels/linux-2.6.32.5# ls /lib/modules/
2.6.32-5-686  2.6.32.5pengdl
debian:/usr/src/kernels/linux-2.6.32.5# ls /boot/
config-2.6.32-5-686        System.map-2.6.32-5-686
config-2.6.32.5pengdl      System.map-2.6.32.5pengdl
config-2.6.32.5pengdl.old  System.map-2.6.32.5pengdl.old
grub                       vmlinuz-2.6.32-5-686
initrd.img-2.6.32-5-686    vmlinuz-2.6.32.5pengdl
initrd.img-2.6.32.5pengdl  vmlinuz-2.6.32.5pengdl.old
debian:/usr/src/kernels/linux-2.6.32.5# 

第四步、更新grub

grub-mkconfig >/boot/grub/grub.cfg

可以看看新生成的grub.cfg的內容:

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="2"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi
function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}
function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}
insmod part_msdos
insmod ext2
set root='(hd1,msdos5)'
search --no-floppy --fs-uuid --set 87115ddc-75d2-4f74-b8c4-e3796e6a244a
if loadfont /share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  load_video
  insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 2c7658ba-7c5c-45f2-8117-d70fcadcdda6
set locale_dir=($root)/boot/grub/locale
set lang=en
insmod gettext
set timeout=5
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
insmod part_msdos
insmod ext2
set root='(hd1,msdos5)'
search --no-floppy --fs-uuid --set 87115ddc-75d2-4f74-b8c4-e3796e6a244a
insmod png
if background_image /share/images/desktop-base/spacefun-grub.png; then
  set color_normal=light-gray/black
  set color_highlight=white/black
else
  set menu_color_normal=cyan/blue
  set menu_color_highlight=white/blue
fi
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Debian GNU/Linux, with Linux 2.6.32.5pengdl' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set 2c7658ba-7c5c-45f2-8117-d70fcadcdda6
    echo    'Loading Linux 2.6.32.5pengdl ...'
    linux    /boot/vmlinuz-2.6.32.5pengdl root=UUID=2c7658ba-7c5c-45f2-8117-d70fcadcdda6 ro  quiet
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-2.6.32.5pengdl
}
menuentry 'Debian GNU/Linux, with Linux 2.6.32.5pengdl (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set 2c7658ba-7c5c-45f2-8117-d70fcadcdda6
    echo    'Loading Linux 2.6.32.5pengdl ...'
    linux    /boot/vmlinuz-2.6.32.5pengdl root=UUID=2c7658ba-7c5c-45f2-8117-d70fcadcdda6 ro single 
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-2.6.32.5pengdl
}
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set 2c7658ba-7c5c-45f2-8117-d70fcadcdda6
    echo    'Loading Linux 2.6.32-5-686 ...'
    linux    /boot/vmlinuz-2.6.32-5-686 root=UUID=2c7658ba-7c5c-45f2-8117-d70fcadcdda6 ro  quiet
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-2.6.32-5-686
}
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set 2c7658ba-7c5c-45f2-8117-d70fcadcdda6
    echo    'Loading Linux 2.6.32-5-686 ...'
    linux    /boot/vmlinuz-2.6.32-5-686 root=UUID=2c7658ba-7c5c-45f2-8117-d70fcadcdda6 ro single 
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-2.6.32-5-686
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

其中已經有了我們新添加的內核了:

### BEGIN /etc/grub.d/10_linux ###
Found linux image: /boot/vmlinuz-2.6.32.5pengdl
Found initrd image: /boot/initrd.img-2.6.32.5pengdl
menuentry 'Debian GNU/Linux, with Linux 2.6.32.5pengdl' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set 2c7658ba-7c5c-45f2-8117-d70fcadcdda6
    echo    'Loading Linux 2.6.32.5pengdl ...'
    linux    /boot/vmlinuz-2.6.32.5pengdl root=UUID=2c7658ba-7c5c-45f2-8117-d70fcadcdda6 ro  quiet
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-2.6.32.5pengdl
}
menuentry 'Debian GNU/Linux, with Linux 2.6.32.5pengdl (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set 2c7658ba-7c5c-45f2-8117-d70fcadcdda6
    echo    'Loading Linux 2.6.32.5pengdl ...'
    linux    /boot/vmlinuz-2.6.32.5pengdl root=UUID=2c7658ba-7c5c-45f2-8117-d70fcadcdda6 ro single 
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-2.6.32.5pengdl
}
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set 2c7658ba-7c5c-45f2-8117-d70fcadcdda6
    echo    'Loading Linux 2.6.32-5-686 ...'
    linux    /boot/vmlinuz-2.6.32-5-686 root=UUID=2c7658ba-7c5c-45f2-8117-d70fcadcdda6 ro  quiet
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-2.6.32-5-686
}
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set 2c7658ba-7c5c-45f2-8117-d70fcadcdda6
    echo    'Loading Linux 2.6.32-5-686 ...'
    linux    /boot/vmlinuz-2.6.32-5-686 root=UUID=2c7658ba-7c5c-45f2-8117-d70fcadcdda6 ro single 
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-2.6.32-5-686
}
### END /etc/grub.d/10_linux ###

如果按照上面的配置,啟動時,Linux 2.6.32.5pengdl 會放在第一個,如果不手動按上下鍵進行選擇,那么啟動的將是我們剛編譯出來的內核,如何讓系統默認啟動舊的內核呢?這里有幾種方法:

1、手動修改grub.conf,交換舊內核和新內核的位置:

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set 2c7658ba-7c5c-45f2-8117-d70fcadcdda6
    echo    'Loading Linux 2.6.32-5-686 ...'
    linux    /boot/vmlinuz-2.6.32-5-686 root=UUID=2c7658ba-7c5c-45f2-8117-d70fcadcdda6 ro  quiet
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-2.6.32-5-686
}
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set 2c7658ba-7c5c-45f2-8117-d70fcadcdda6
    echo    'Loading Linux 2.6.32-5-686 ...'
    linux    /boot/vmlinuz-2.6.32-5-686 root=UUID=2c7658ba-7c5c-45f2-8117-d70fcadcdda6 ro single 
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-2.6.32-5-686
}
menuentry 'Debian GNU/Linux, with Linux 2.6.32.5pengdl' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set 2c7658ba-7c5c-45f2-8117-d70fcadcdda6
    echo    'Loading Linux 2.6.32.5pengdl ...'
    linux    /boot/vmlinuz-2.6.32.5pengdl root=UUID=2c7658ba-7c5c-45f2-8117-d70fcadcdda6 ro  quiet
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-2.6.32.5pengdl
}
menuentry 'Debian GNU/Linux, with Linux 2.6.32.5pengdl (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set 2c7658ba-7c5c-45f2-8117-d70fcadcdda6
    echo    'Loading Linux 2.6.32.5pengdl ...'
    linux    /boot/vmlinuz-2.6.32.5pengdl root=UUID=2c7658ba-7c5c-45f2-8117-d70fcadcdda6 ro single 
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-2.6.32.5pengdl
}
### END /etc/grub.d/10_linux ###

2、或者,修改 set default="0" ,將0改為2。直接在這里改,如果再更新grub.conf,default的值又變為了0,其中在grub.conf的最上面給出了方法:

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

我們應該修改/etc/default/grub這個文件,將GRUB_DEFAULT=0 改為GRUB_DEFAULT=2,然后重新執行

grub-mkconfig >/boot/grub/grub.cfg

下面是啟動測試:(可以用上下箭頭選擇有啟動的內核)

image

注意:

因為我是用的是VirtualBox虛擬機,更新完內核后,需要重新安裝VirtualBox增強工具,增強工具的安裝方法參見:

http://www.CUOXin.com/pengdonglin137/p/3366765.html#a8

安裝增強工具的時候,會把上次安裝的增強工具給刪掉。

完??!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av黄色在线观看| 欧美另类极品videosbest最新版本| 成人亚洲激情网| 中文字幕久久亚洲| 亚洲最新av网址| 78m国产成人精品视频| 秋霞成人午夜鲁丝一区二区三区| 亚洲第一av网站| 欧美日韩免费在线| 久久手机免费视频| 亚洲乱码一区二区| 亚洲深夜福利视频| 亚洲jizzjizz日本少妇| 国产精品高潮呻吟久久av野狼| 欧美成人免费全部观看天天性色| 91社区国产高清| 亚洲人免费视频| 欧美在线性视频| 97视频在线免费观看| 欧美日韩在线视频一区| 日韩精品中文字幕久久臀| 国内成人精品一区| 亚洲精品久久久久久久久久久久| 中文字幕欧美在线| 亚洲电影第1页| 久久久精品网站| 欧美激情亚洲自拍| 伊人亚洲福利一区二区三区| 久久99精品久久久久久青青91| 国产这里只有精品| 日韩中文字幕在线播放| 国产精品一区专区欧美日韩| 日韩不卡在线观看| 久久久国产精品一区| 色狠狠av一区二区三区香蕉蜜桃| 在线观看国产精品91| 中文字幕综合一区| 色噜噜狠狠色综合网图区| 成人欧美一区二区三区黑人| 亚洲精品视频久久| 青草青草久热精品视频在线观看| 正在播放国产一区| 日韩成人免费视频| 疯狂欧美牲乱大交777| 亚洲综合第一页| 国产美女扒开尿口久久久| 亚洲第一二三四五区| 久久久久久亚洲精品中文字幕| 成人羞羞国产免费| 亚洲国产97在线精品一区| 国产成+人+综合+亚洲欧洲| 国产精品欧美风情| 欧美激情a∨在线视频播放| 国产精品欧美亚洲777777| 亚洲国产精品资源| 欧美第一淫aaasss性| 国产精品视频中文字幕91| 这里精品视频免费| 久久久久久久久91| 色婷婷亚洲mv天堂mv在影片| 欧美日韩在线第一页| 国产不卡av在线| 在线观看亚洲区| 欧美有码在线观看| 热re91久久精品国99热蜜臀| 亚洲成人久久网| 日韩成人av一区| 国产精品影片在线观看| 播播国产欧美激情| 亚洲欧美国产精品| 欧美裸体xxxx极品少妇| 亚洲**2019国产| 亚洲一区二区久久久久久久| 精品久久久久久中文字幕| 4438全国成人免费| 国产午夜精品美女视频明星a级| 国产成人精品电影| 国产亚洲精品久久久久久777| 国产精品一区av| 亚洲精品少妇网址| 777午夜精品福利在线观看| 中文字幕欧美日韩| 精品日韩美女的视频高清| 亚洲成色999久久网站| 久久久国产精品视频| 国产视频精品免费播放| 精品国产一区二区三区久久狼黑人| 91国语精品自产拍在线观看性色| 538国产精品一区二区在线| 国产精品中文在线| 91av免费观看91av精品在线| 中文字幕不卡在线视频极品| 日本成人精品在线| 奇米成人av国产一区二区三区| 欧美日韩国产精品一区二区不卡中文| 亚洲永久免费观看| 欧美性20hd另类| 爽爽爽爽爽爽爽成人免费观看| 狠狠躁夜夜躁人人爽天天天天97| 亚洲精品动漫100p| 国产视频精品xxxx| 国产精品第一页在线| 日韩欧美国产黄色| 久久精品2019中文字幕| 日本道色综合久久影院| 日韩一区视频在线| 久久激情五月丁香伊人| 亚洲人午夜精品免费| 欧美视频国产精品| 亚洲福利在线视频| 亚洲国产精彩中文乱码av在线播放| 欧美日韩国产限制| 俺去了亚洲欧美日韩| 日韩在线视频一区| 亚洲高清一二三区| 777777777亚洲妇女| 国产91在线播放九色快色| 国产精品三级美女白浆呻吟| 亚洲最大av网| 精品国产一区二区三区久久| 欧美日韩中文字幕在线| 国产日韩欧美黄色| 狠狠躁天天躁日日躁欧美| 在线视频亚洲欧美| 国产精品99久久久久久白浆小说| 91理论片午午论夜理片久久| 国产精品久久久久av免费| 国内精品久久久久久| 中文字幕视频一区二区在线有码| 日韩一级黄色av| 成人午夜在线观看| 欧美电影电视剧在线观看| 日韩精品在线观看视频| 亚洲精品午夜精品| 成人精品一区二区三区电影黑人| 国产精品啪视频| 日韩中文字在线| 日韩精品在线播放| 国产精品男女猛烈高潮激情| 久久久久亚洲精品成人网小说| 4438全国亚洲精品在线观看视频| 国产精品视频免费观看www| 午夜欧美不卡精品aaaaa| 午夜精品久久久久久99热软件| 久久夜色精品亚洲噜噜国产mv| 日韩中文字幕第一页| 日韩av在线免费观看| 国产精品久久中文| 亚洲最大福利视频| 国产精品吴梦梦| 国内揄拍国内精品少妇国语| 亚洲欧洲一区二区三区久久| 亚洲成年人在线播放| 国产精品免费久久久久影院| 久久青草精品视频免费观看| 九九视频这里只有精品| 中文字幕精品久久久久| 国产精品小说在线| 亚洲图片在线综合| 欧美性猛交xxxx富婆弯腰| 亚洲欧美日韩国产成人| 国产精品免费小视频| 日韩有码视频在线| 国产精品视频播放|