歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux服務器 >> Debian Linux系統下的內核編譯詳細講解

Debian Linux系統下的內核編譯詳細講解

日期:2017/3/2 16:54:20   编辑:Linux服務器

1. 傳統方式直接在console中編譯官方內核,需要以下軟件包

  bin86 - 16-bit assembler and loader

  diff - File comparison utilities

  libc6-dev - GNU C Library: Development Libraries and Header Files

  libncurses5-dev - Developer's libraries and docs for ncurses

  patch - Apply a diff file to an original

  2.使用2.4.x內核的圖形界面配置程序(make xconfig),還需要

  tk8.4 - Tk toolkit for Tcl and X11, v8.4 - run-time files

  使用2.6.x內核的Qt圖形界面配置程序(make xconfig),還需要

  libqt3-mt-dev - Qt development files (Threaded)

  使用2.6.x內核的GTK圖形界面配置程序(make gconfig),還需要

  libgtk2.0-dev - Development files for the GTK+ library

  3. 如果您想制作內核的deb包,還需要

  debianutils - Miscellaneous utilities specific to Debian

  kernel-package - A utility for building Linux kernel related Debian package

  ksymoops - Linux kernel oops and error message decoder

  內核編譯

  http://www.debian.org/doc/manuals/reference/ch-kernel.zh-cn.html

  Debian unstable發行版中的gcc、binutils和modutils可用來編譯最新的Linux內核。這方面的官方信息,

  參閱/usr/share/doc/kernel-package/README.gz文件的後半部分。

  內核編譯是個很困難的議題,由於目標在不斷的變化,即使是最受人尊敬的開發者也會有不同的見解:

  Manoj Srivastava寫到: ——initrd需要Debian專用cramfs補丁。 Herbert Xu寫到:不,它不需要,想使用

  除CRAMFS以外的文件系統只需在/etc/mkinitrd/mkinitrd.conf中設置MKIMAGE。

  按照Manoj和Kent撰寫的/usr/share/doc/kernel-package/README.gz的指導小心行事,如果要編譯最新版本

  的內核請確認安裝了最新unstable版kernel-package軟件包。

  對於單機內核編譯,initrd不是必須的。我用它是希望我新編譯的內核與相應的內核鏡像一模一樣。如果使

  用initrd,請先閱讀一下mkinitrd(8)和mkinitrd.conf(5)。亦可參閱http://bugs.debian.org/149236。

  Debian標准方式

  關心一下有關kernel-package、gcc、binutils和modutils的錯誤報告。請按有關要求使用較新的版本。

  在Debian系統中用源碼編譯自定義內核要特別小心。用make-kpkg的——append_to_version選項來創建多重內核鏡

  像比較安全。

  # 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 # 輸入我的名字和email

  $ cd /usr/src

  # 創建目錄

  $ tar ——bzip2 -xvf kernel-source-2.4.18.tar.bz2

  $ cd kernel-source-2.4.18 # 如果這是你的內核源碼

  $ cp /boot/config-2.4.18-386 .config # 將當前配置設定為默認配置

  $ make menuconfig # 按自己的喜好來定制

  $ make-kpkg clean # 必須執行這步(per: man make-kpkg)

  $ fakeroot make-kpkg ——append_to_version -486 ——initrd \

  ——revision=rev.01 kernel_image \

  modules_image # modules_image可以

  是pcmcia-cs*等。

  $ cd …… # dpkg -i kernel-image*.deb pcmcia-cs*.deb # 安裝

  make-kpkg kernel_image實際上執行了make oldconfig和make dep。如果沒使用initrd就不要使用

  ——initrd選項。

  如果想加載pcmcia-cs模塊或沒有pcmcia,應該在make menuconfig後選"General setup —>"進入

  "PCMCIA/CardBus support —>",配置"< > PCMCIA/CardBus support"選項(例如,取消復選項)。

  對於SMP機器,參照kernel-pkg.conf(5)的說明設置CONCURRENCY_LEVEL

Copyright © Linux教程網 All Rights Reserved