ããæ¯ä¸ä¸ªLinuxåè¡çé½æèªå·±ä¸é¨çå·¥å
·å»æ建èªå®ä¹çå
æ ¸. æ¬æ主è¦ä»ç»å¨Ubuntuå¹³å°ä¸ç¼è¯å
æ ¸, å¦ä½ä»(ä¹å«vanilla kernel)è·å¾ææ°ä¸æªæ¹å¨çå
æ ¸æºä»£ç æ¥æ建ä¸ä¸ªèªå®ä¹çå
æ ¸, è¿æ ·ä½ å¯ä»¥ä½¿ç¨èªå·±çå
æ ¸èä¸æ¯åè¡ççå
æ ¸, å¦å¤ä¹ä»ç»äºå¦ä½ç»å
æ ¸æè¡¥ä¸, ä»èæ¹ä¾¿å¢å æ°çåè½.
ããä¸é¢çå·¥ä½æé½å¨Ubuntu 6.10 Server ("Edgy Eft")åUbuntu 6.06 Desktop ("Dapper Drake")ä¸ç»è¿äºæµè¯.
ããææ³é¦å
è¦è¯´çæ¯æç« ä¸æ建èªå®ä¹å
æ ¸çæ¹å¼ä¸æ¯å¯ä¸ç, è¿æ许å¤å
¶å®çæ¹å¼, è¿ä¸è¿æ¯æä¹ æ¯çæ¹å¼. æä¸è½ä¿è¯ä½¿ç¨åä¸ä¼åºç°ä»»ä½é®é¢.
ãã1. é¢å¤å·¥ä½
ããææ¨è使ç¨rootç¨æ·æ§è¡ä¸é¢ææçæ¥éª¤. å¦æä½ è¿æ²¡æå建rootç»éå£ä»¤, 请è¿è¡ä¸é¢çå½ä»¤:
ããsudo passwd root
ããç¶å, 以root身份ç»é:
ããsu
ããå¦æä½ æ³ä½¿ç¨ä¸è¬ç¨æ·æ¥æ¿ä»£rootç¨æ·, è®°ä½å¨æ¬æææå½ä»¤åè¾å
¥sudo, æ¯å¦å½æè¿è¡
ããapt-get update
ããä½ éè¦è¿è¡ä¸é¢çå½ä»¤æ¥æ¿ä»£, ç.
ããsudo apt-get update
ãã1.1 Ubuntu 6.10ä¸ç/bin/sh ("Edgy Eft")
ããå¨Ubuntu 6.10, /bin/sh缺çæ¯ä¸ä¸ªé¾æ¥å°/bin/dashçå符é¾æ¥. å½ä½ ç¼è¯è½¯ä»¶æºä»£ç çæ¶å, /bin/dashä¼¼ä¹è¿åå¨é®é¢. è³å°æå·²ç»éå°äºä¸äºé®é¢. æ以ææ/bin/shé¾æ¥å°äº/bin/bash.
ããå¦æä½ ä½¿ç¨Ubuntu 6.10, ç°å¨ä½ å¯ä»¥è¿è¡:
ããrm -f /bin/sh
ããln -s /bin/bash /bin/sh
ãã2 å®è£
å¿
éç软件å
(为å
æ ¸ç¼è¯ååå¤)
ããé¦å
æ们å级软件(å
)åº:
ããapt-get update
ããç¶åæ们å®è£
ææéè¦ç软件å
:
ããapt-get install kernel-package libncurses5-dev fakeroot wget bzip2
ãã3 ä¸è½½å
æ ¸æºä»£ç
ããæ¥ä¸æ¥æ们ä¸è½½éè¦çå
æ ¸å°/usr/srcç®å½(å»
ãã
ããç½ç«ä¸è½½ä½ éè¦çå
æ ¸çæ¬, æ¯å¦. linux-2.6.18.1tar.bz2( ). ç¶åä¸è½½å°/usr/srcç®å½:
ããcd /usr/src
ããwget http:// /pub/linux/kernel/v2.6/linux-2.6.18.1.tar.bz2
ããç¶å解åå
æ ¸æºä»£ç , å建ä¸ä¸ªæåå
æ ¸æºä»£ç ç®å½çlinuxå符é¾æ¥:
ããtar xjf linux-2.6.18.1.tar.bz2
ããln -s linux-2.6.18.1 linux
ããcd /usr/src/linux
ãã4 ç»å
æ ¸æºä»£ç æè¡¥ä¸(å¯é)
ããææ¶ä½ ç缺çå
æ ¸ä¸æ¯ææ°ä¹°ç设å¤, ä½ éè¦å®è£
æ°ç驱å¨. æè
ä½ éè¦ä½¿ç¨èæææ¯æå
¶å®é«çº§çææ¯, èè¿äºç°æçå
æ ¸é½ä¸æ¯æ. è¿æ ·æ
åµä¸ä½ éè¦ç»ç»å
æ ¸æºä»£ç æè¡¥ä¸(å½ç¶è¡¥ä¸å·²ç»åå¸..)
ããç°å¨æ们åè®¾ä½ å·²ç»ä¸è½½éè¦çè¡¥ä¸(以ä¸ä¾åæå«å®patch.bz2)å°/usr/src. è¿è¡ä¸é¢çå½ä»¤ç»å
æ ¸æºä»£ç ç´æ¥æä¸è¡¥ä¸(ä½ çç¨æ·å¿
é¡»ä½äº/usr/src/linuxç®å½):
ããbzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run
ããbzip2 -dc /usr/src/patch.bz2 | patch -p1
ãã第ä¸ä¸ªå½ä»¤ç¨äºæµè¯, 对å
æ ¸æ²¡æä»»ä½å½±å. å¦æ没ææ¾ç¤ºé误, ä½ å¯ä»¥è¿è¡ç¬¬äºä¸ªå½ä»¤ç»å
æ ¸æè¡¥ä¸. å¦æ第ä¸ä¸ªå½ä»¤æ误, 请å¡ç»§ç»çæä½!
ããä½ ä¹è½å¤éè¿å
æ ¸çprepatchesæ¹å¼æè¡¥ä¸. æ¯å¦, å¦æä½ éè¦ä¸ä¸ªåè½, èè¿ä¸ªåè½ä»
åå¨äº2.6.19-rc4ä¸,
ããæ£å¼å®æ´çå
æ ¸çæ¬ä»æ²¡æåå¸, èpatch-2.6.19-rc4.biz2å·²ç»åå¸. ä½ å¯ä»¥æè¿ä¸ªè¡¥ä¸æå°2.6.18çå
æ ¸æºä»£ç ä¸,
ããä½è¯·ä¸è¦è¾¾å°2.6.18.1æ2.6.18.2, ç. è¿ä¸ªè§åå¨æ¥ä¸æ¥çç½é¡µä¸æ³¨æ:
ãã
http://kernel.org/patchtypes/pre.htmlããprepatchesçåäºlinuxä¸çæµè¯åè¡; ä»ä»¬ä½äºåæ¡£çæµè¯ç®å½ä¸,
ããæ们å¯ä»¥ä½¿ç¨patch(1)å·¥å
·å¯¹ä¸ä¸ä¸ªå®æ´åè¡ç(çæ¬å·åä¸é¨å)æè¡¥ä¸(ä¾å¦, 2.6.12-rc4
ããprepatchåªå¯ä»¥ç»2.6.11å
æ ¸æºä»£ç æè¡¥ä¸, èä¸æ¯2.6.11.10.)
ããæ以å¦æä½ æ³ç¼è¯2.6.19-rc4å
æ ¸, ä½ å¿
é¡»å¨æ¥éª¤3.1ä¸è½½2.6.18(
ããhttp:// /pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2
ãã)æ¿ä»£2.6.18.1å
æ ¸æºä»£ç !
ããä¸é¢æ¯å¦ä½ç»2.6.18æä¸2.6.19-rc4è¡¥ä¸:
ããcd /usr/src
ããwget http:// /pub/linux/kernel/v2.6/testing/patch-2.6.19-rc4.bz2
ããcd /usr/src/linux
ããbzip2 -dc /usr/src/patch-2.6.19-rc4.bz2 | patch -p1 --dry-run
ããbzip2 -dc /usr/src/patch-2.6.19-rc4.bz2 | patch -p1
ãã5. é
ç½®å
æ ¸
ãã使ç¨å½åå·¥ä½å
æ ¸çé
ç½®æ件å为æ°å
æ ¸é
ç½®æ件çåºç¡æ¯ä¸ä¸ªå¾å¥½ç主æ. å æ¤æ们æ·è´å·²åçé
ç½®æ件å°/usr/src/linux:
ããcp /boot/config-`uname -r` ./.config
ããç¶åè¿è¡
ããmake menuconfig
ããç¶åæ们çå°å
æ ¸çé
ç½®èå. 移å¨ç»¿è²å
æ å° Load an Alternate Configuration File è¡åéæ©.configæ件(å
å«äºå½åå·¥ä½å
æ ¸çé
ç½®)å为é
ç½®æ件:
ããç¶åæµè§å
æ ¸é
ç½®èå, éæ©ä½ éè¦çåè½. å®æé
ç½®å, éæ©Exit, åçä¸é¢çé®é¢(Do you wish to save your new kernel configuration? ä½ å¸æä¿åæ°çå
æ ¸é
ç½®å?), éæ©Yes:
ãã6 æ建å
æ ¸
ããæ§è¡ä¸é¢å½ä»¤æ¥æ建å
æ ¸:
ããmake-kpkg clean
ããfakeroot make-kpkg --initrd --append-to-version=-custom kernel_image
ããkernel_headers
ããå¨--append-to-version= åé¢ä½ å¯ä»¥åä¸ä»»ä½å符串æ¥åºå«å
æ ¸çæ¬, ä½æ¯å¿
须以" - "符å·å¼å§èä¸åé¢ä¸å
æ¬ä»»ä½ç©ºæ ¼.
ããä¿æèå¿, å
æ ¸ç¼è¯éè¦ä¸å®æ¶é´, 主è¦çä½ çå
æ ¸é
ç½®åå¤çå¨é度.
ãã7 å®è£
æ°å
æ ¸
ããå¨æåæ建å
æ ¸å, ä½ å¨/usr/srcç®å½è½åç°ä¸¤ä¸ª.deb软件å
.
ããcd /usr/src
ããls -l
ããå¨æçæµè¯ç³»ç»ä¸, ä»ä»¬åå«å为
ããlinux-image-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb
ãã(å
å«äºå®é
çå
æ ¸) å
ããlinux-headers-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb
ãã(å
å«äºéè¦çæ件, ç¨äºä»¥åéè¦ç¼è¯é¢å¤çå
æ ¸æ¨¡å). ææ¯è¿æ ·å®è£
ç:
ããdpkg -i linux-image-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb
ããdpkg -i linux-headers-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb
ãã(ç°å¨ä½ çè³è½å¤æ·è´è¿ä¸¤ä¸ª.debæ件å°å
¶å®çUbuntuç³»ç», éè¿ä¸é¢çæ¹å¼å®è£
. ä½ å°ä¸åéè¦ç¼è¯å
æ ¸.)
ããç¶åæ£æ¥ /boot/grub/menu.lstæ件, ç°å¨ä½ å°è½åç°æ°å
æ ¸ä½¿ç¨ç两个å¼å¯¼é
ç½®å:
ããvi /boot/grub/menu.lst
ããå¨ææµè¯ç³»ç»ä¸å·²ç»æ·»å 好çå¼å¯¼é
ç½®åæ¯è¿æ ·ç:
ããtitle Ubuntu, kernel 2.6.18.1-custom
ããroot (hd0,0)
ããkernel /boot/vmlinuz-2.6.18.1-custom root=/dev/sda1 ro quiet splash
ããinitrd /boot/initrd.img-2.6.18.1-custom
ããsavedefault
ããboot
ããtitle Ubuntu, kernel 2.6.18.1-custom (recovery mode)
ããroot (hd0,0)
ããkernel /boot/vmlinuz-2.6.18.1-custom root=/dev/sda1 ro single
ããinitrd /boot/initrd.img-2.6.18.1-custom
ããboot
ããç°å¨éå¯ç³»ç»:
ããshutdown -r now
ããå¦æä¸åè¿å±é¡ºå©, ä½ çæ°å
æ ¸æ£å¸¸å·¥ä½. ä½ è¿å¯ä»¥éè¿è¿è¡ä¸é¢å½ä»¤æ¥æ£æ¥æ°å
æ ¸æ¯å¦è¿è¡:
ããuname -r
ããè¿å°ä¼æ¾ç¤ºå¦:
ãã2.6.18.1-custom
ããå¦æç³»ç»æ²¡æèµ·æ¥, éå¯ä¸ä¸, ä½ ä¼çå°:
ããæESCè¿å
¥GRUBèå:
ããéæ©ä½ 以åçå
æ ¸å¯å¨ç³»ç», ç°å¨ä½ è½å次å°è¯ç¼è¯æ°çå·¥ä½å
æ ¸. ä¸è¦å¿è®°ä»/boot/grub/menu.1stæ件ä¸ç§»å»ä¸éè¦çå¼å¯¼å
æ ¸ä¿¡æ¯.