[ 上一頁 ] [ 目錄 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ 下一頁 ]


Debian 參考手冊
第 7 章 - Debian下的Linux核心


Debian運用自己的方式來編譯核心及相關模組。參閱Debian和系統核心, 第 2.7 節


7.1 核心(重新)編譯

Debian unstable發行版中的gccbinutilsmodule-init-tools可用來編譯最新的Linux核心。這方面的官方訊息,參閱file:///usr/share/doc/kernel-package/README.gz文件的後半部分。

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

Manoj Srivastava寫到:

--initrd 需要Debian專用cramfs修正檔。

Herbert Xu 寫到:

不,它不需要,想使用除CRAMFS以外的文件系統只需在/etc/mkinitrd/mkinitrd.conf中設定MKIMAGE。

按照Manoj和Kent撰寫的file:///usr/share/doc/kernel-package/README.gz以及http://kernel-handbook.alioth.debian.org/的指導小心行事,如果要編譯最新版本的核心請確認安裝了最新unstable版kernel-package套件。

對於單機核心編譯,initrd不是必須的。我用它是希望我新編譯的核心與相應的核心一模一樣。如果使用initrd,請先閱讀一下mkinitrd(8)mkinitrd.conf(5)


7.1.1 核心標頭檔

絕大多數"正常"程序不需要核心標頭檔,事實上如果直接引用它們會出錯。這些程序應該引用那些編譯glibc所用的標頭檔,它們位於Debian系統的/usr/include/linux/usr/include/asm目錄下。

故不要在/usr/src/linux目錄中建立指向/usr/include/linux/usr/include/asm的連結,一些過時的文檔曾建議建立它們。

如果某些核心類應用程序需要特定的標頭檔,可修改Makefile(s),使其包含指向"特定標頭檔目錄/include/linux"和"特定標頭檔目錄/include/asm"的路徑。


7.2 透過 proc 檔案系統調整核心

透過proc檔案系統,可在運行的狀態下進行調整Linux核心動作。

有關 /proc 檔案系統下修改核心參數的基礎知識,可參閱Linux源碼中的Documentation/sysctl/*文件。

調整核心參數的例子,可參考/etc/init.d/networking無法存取某此站台的怪問題, 第 3.8.5 節

參閱 sysctl.conf(5) 了解如何透過 /etc/init.d/procps.sh/proc檔案系統來設定核心啟動組態。/etc/rcS.d/S30procps.sh 在執行時會呼叫 /etc/init.d/procps.sh script。


7.2.1 開啟太多檔案

Linux核心有時會報告 “Too many open files”,原因是file-max預設值(8096)太小。要解決這個問題,請用 root 身份執行下列命令:

     # echo "65536"  > /proc/sys/fs/file-max  # for 2.2 and 2.4 kernel
     # echo "131072" > /proc/sys/fs/inode-max # for 2.2 kernel only

或者修改加入底下的敘述到 /etc/sysctl.conf

     file-max=65536   # for 2.2 and 2.4 kernel
     inode-max=131072 # for 2.2 kernel only

7.2.2 清除磁碟緩衝區時間

透過proc檔案系統來修改清除磁碟緩衝區時間。下面的操作將預設的5秒時間間隔縮短到1秒。

     # echo "40 0 0 0 100 30000 60 0 0"  > /proc/sys/vm/bdflush

這可能對文件I/O效能產生一些負面影響。但它能保證文件內容是最近1秒的,比預設的5秒更短。對日誌式檔案系統來說更是如此。


7.2.3 慢速且記憶體小的機器

對某些記憶體少的舊機器來說,在proc檔案系統中打開 over-commit 功能會很有效果:

     # echo 1 > /proc/sys/vm/overcommit_memory

7.3 核心 2.6 和 udev

udev 是取代 /dev/ 的動態配置的檔案系統。裝置名稱可以取較短的名稱。而 2.4 核心中的 devfs 已經淘汰了。

安裝 Debian 新版的 kernel-image-2.6.NNudev 就能啟動該功能了。


[ 上一頁 ] [ 目錄 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ 下一頁 ]


Debian 參考手冊

CVS, 週一 六月 16 21:20:48 UTC 2008

Osamu Aoki osamu#at#debian.org
Asho Yeh asho#at#debian.org.tw
作者, 第 A.1 節