Debian標準方式
關心一下有關kernel-package
、gcc
、binutils
和modutils
的錯誤報告。請按有關要求使用較新的版本。 Watch out for bug reports on kernel-package
, gcc
, binutils
, and modutils
. Use new versions of them as needed.
在Debian系統中用源碼編譯自定義內核要特別小心。用make-kpkg
的 --append_to_version 選項來創建多重內核鏡像比較安全。 Compiling a custom kernel from source under a Debian system requires special care. Use the new --append_to_version with make-kpkg
to build multiple kernel-images.
# apt-get install debhelper modutils kernel-package libncurses5-dev
# apt-get install kernel-source- 2.4.18 # 使用最新的版本
# apt-get install fakeroot
# vi /etc/kernel-pkg.conf # 輸入姓名和 E-mail
$ cd /usr/src # 編譯目錄
$ tar --bzip2 -xvf kernel-source- 2.4.18 .tar.bz2
$ cd kernel-source- 2.4.18 # 如果這是妳的 kernel 源碼
$ cp /boot/config- 2.4.18-386 .config # 預設是取得現有的 config 檔案
$ make menuconfig # 自訂我們需要的項目
$ make-kpkg clean # 必須執行 (man make-kpkg)
$ fakeroot make-kpkg --append_to_version - 486 --initrd \
--revision= rev.01 kernel_image \
modules_image # modules_image is for pcmcia-cs* etc.
$ cd ..
# dpkg -i kernel-image*.deb pcmcia-cs*.deb # 安裝
make-kpkg kernel_image 實際上執行了 make oldconfig 和 make dep 。如果沒使用initrd就不要使用 --initrd 選項。
如果想加入pcmcia-cs模組或沒有pcmcia,應該在 make menuconfig 後選 "Generalsetup —>" 進入 "PCMCIA/CardBus support —>",設定 "< > PCMCIA/CardBus support" 選項(例如,取消復選項)。
對於SMP機器,參照kernel-pkg.conf(5)
的說明設置CONCURRENCY_LEVEL。
經典方式
從下列位置取得乾淨的原始碼:
- Linux:
http://www.kernel.org/
- pcmcia-cs:
http://pcmcia-cs.sourceforge.net/
或使用Debian所附的等價的原始碼:
# cd /usr/src
# tar xfvz linux- whatever .tar.gz
# rm -rf linux
# ln -s linux- whatever linux
# tar xfvz pcmcia-cs- whatever .tar.gz
# ln -s pcmcia-cs- whatever pcmcia
# cd linux
# make menuconfig
... 配置核心選項 ...
# make dep
# make bzImage
... 編輯lilo/grub ...
... 移動/usr/src/linux/arch/i386/boot/bzImage到boot ...
... /sbin/lilo or whatever you do for grub
# make modules; make modules_install
# cd ../pcmcia
# make config
# make all
# make install
... 添加需要的模組名稱到/etc/modules
... add needed module names to /etc/modules
# shutdown -r now
沒有留言:
張貼留言