[問題]不知各位大大在make config的時候,設定的原則是啥阿。

常言道:『飲水思源』,在 Open Source 的世界裡,我們常常需要別人的幫助,但是在您有所心得的時候請記得分享給大家,『幫助人是快樂的喔』。歡迎您在使用 debian 的過程中的任何心得分享給大家。

[問題]不知各位大大在make config的時候,設定的原則是啥阿。

文章阿威 » 週五 9月 13, 2002 6:35 pm

我第一次make config是參照網中人大大寫的文章來設定。
他裡面很多地方都是說,能模組化就模組化。
我不知道是不是我模組化太多了
結果make-kpkg時花了我倆個小時 :(
不知各位大大是怎樣設定的。
阿威
摩托學園!學園長們
摩托學園!學園長們
 
文章: 419
註冊時間: 週三 9月 04, 2002 2:31 am

Re: [問題]不知各位大大在make config的時候,設

文章jesse.sung » 週五 9月 13, 2002 11:02 pm

阿威 寫:我第一次make config是參照網中人大大寫的文章來設定。
他裡面很多地方都是說,能模組化就模組化。
我不知道是不是我模組化太多了
結果make-kpkg時花了我倆個小時 :(
不知各位大大是怎樣設定的。

阿威兄, 提供您一些我自己的經驗, 也許不完全正確, 但希望對您有幫助.... :)
內容有點長, 有點囉嗦, 且大部份內容相信您和看此篇的各位大大都早已知道.... :wink:

首先, 當然是要下載 kernel 的 source 啦! 一般來說都把 kernel source 解在 /usr/src 下面.. 解開後是一個叫 linux 的目錄, 依照著許多 distribution 的做法, 都把它 rename 成 linux-x.y.z (x.y.z 為版本), 再 symbolic link 到 /usr/src/linux....

網路上有許多人提供 patch set 可以用, 比較有名的像 -ac, -aa, -mjc.... 等等,
各有各的特色, 您有興趣的話可以試試.... apply patch 的方法大部份是進到 /usr/src/linux 之下用
patch -p1 < patch-xxx 或
bzip2 -cd patch-xxx.bz2 | patch -p1 或
gzip -cd patch-xxx.gz | patch -p1
不過不一定所有的都是用 "-p1", 要看 diff 的路徑來決定....

之後, 進到 /usr/src/linux 之下, config 您的 kernel, 可以用 "make config" 或 "make menuconfig" 或 "make xconfig", 現在 "make config" 似乎是比較不人道的作法, 雖然說我剛開始玩時只有這個可以用.. :mrgreen: "make xconfig" 則是在 X 下用的....

config 的選項要怎麼選呢? 其實每一個選項都有說明, 花點工夫看看我覺得一定是有幫助的, 但是有些選項可能您還是無法確定, 這時請不要忘了您現在正在跑的 kernel, 它的設定在您的機器上是 OK 的, 您需要的東東他都有編進去.... 但 config 在哪兒呢? 以 debian 來說, config 在 /boot.config-x.y.z , 並 symbolic link 一份到 /boot/config, 開另一個 terminal, reference 一下他的內容, 相對應到哪一個選項, 您看一下 "make menuconfig/xconfig" 每個選項說明的最上面一行就知道了! :)

不過大部份的 distribution 都有用到 initrd, 我個人認為對我們來說這個並不是很必要, 因為 distribution 的 kernel 是要做給各式各樣不同的硬體用的, 它不可能把所有的 option 都放到 kernel 中, 而我們自己要用的就簡單得多....
但是不使用 initrd 的話, 有些選項就要注意了, 只要是您開機要用到的東東一律要設為 enable, 不能設為 module, 因為不用 initrd, 只要 "/" 沒有 mount 上, kernel 就讀不到 modules.... 什麼是開機要用到的呢? 嗯, 從一開始一直到 "/" mount 上來, 您的開機磁碟相關功能(IDE/SCSI, disk support), "/" partition 用的 file system(用 ext3 的話, ext2 & ext3 都要 enable, 用 reiserfs 請 enable reiserfs), 還有一些 optional 的顯示選項(vga text console等), 其它的就可以設為 module 了! 還有記得 CPU type 改成您使用的 CPU....

到這裡已經完成一大半了! 選擇"離開", 別忘了儲存您選的 option, 然後在 /usr/src/linux 下面, 執行 "make dep && make clean bzImage modules modules_install", 然後就可以好好地休息一下了.... 若最後正常完成, 沒有看到 error messages, 恭喜! 您的新 kernel 做好囉! :D

再下來把東西放到它該在的地方, modules 在上一步 "make modules_install" 時就已經 copy 到 /lib/modules/x.y.z 下面了, 不用我們費心, 我們只要處理 kernel image 即可....

以 debian 來說, /usr/src/linux/arch/i386/boot/bzImage 就是你要的 kernel, 把它 copy 到 /boot/vmlinuz-x.y.z , 然後把 /usr/src/linux/.config copy 到 /boot/config-x.y.z , /usr/src/linux/System.map copy 到 /boot/System.map-x.y.z
再來呢, 做 symbolic link /boot/config 指到 /boot/config-x.y.z , /boot/System.map 指到 /boot/System.map , 把 /vmlinuz.old 指到您現在正在用的 kernel, /vmlinuz 指到您新的 kernel /boot/vmlinuz-x.y.z , 執行一下 lilo , 打完收工.... :mrgreen:

有沒有比較快的方法呢? 是的, 的確有! :) 不過容小弟賣個關子, 整理整理之後, 再和大家討論! 8)
頭像
jesse.sung
程式開發組
程式開發組
 
文章: 654
註冊時間: 週三 9月 04, 2002 9:43 am

re:[問題]不知各位大大在make config的時候,設定的原則是啥阿。

文章阿信 » 週六 9月 14, 2002 9:41 am

Debian的偷懶法當然是用make-kpkg,但我比Debian更懶(太適合用Debian了 :D)

我是直接將官方的kernel-image的config檔案抓回來拷貝到/usr/src/linux下面,然後打make menuconfig。

因為我會使用initrd.img,而Debian預設做出來的initrd.img是使用cramefs的格式,所以cramesprog也要安裝,且在kernel的設定上也要enable。

然後打make-kpkg --append-to-version -k7 --initrd kernel_image kernel_headers

我比較建議加入--append-to-version,比如說我的kernel是2.4.18,然後我希望編譯出來的deb在dpkg的database不一樣的話,就要加入--append-to-version。

比如我沒打 --append-to-version ,在database中,就是2.4.18,

有打:--append-to-version -k7-by-asho,在database中就會以

2.4.18-k7-by-asho的方式出現。

用--revision的方式並不會這樣呢。

我有post一下在kernel fs中的設定好了。

#
# File systems
#
CONFIG_QUOTA=y
CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m
CONFIG_REISERFS_FS=m
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
CONFIG_ADFS_FS=m
# CONFIG_ADFS_FS_RW is not set
CONFIG_AFFS_FS=m
CONFIG_HFS_FS=m
CONFIG_BFS_FS=m
CONFIG_EXT3_FS=m
CONFIG_JBD=m
# CONFIG_JBD_DEBUG is not set
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_UMSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_EFS_FS=m
# CONFIG_JFFS_FS is not set
# CONFIG_JFFS2_FS is not set
CONFIG_CRAMFS=y
CONFIG_TMPFS=y
CONFIG_RAMFS=y
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_MINIX_FS=m
CONFIG_VXFS_FS=m
CONFIG_NTFS_FS=m
# CONFIG_NTFS_RW is not set
CONFIG_HPFS_FS=m
CONFIG_PROC_FS=y
CONFIG_DEVFS_FS=y
# CONFIG_DEVFS_MOUNT is not set
# CONFIG_DEVFS_DEBUG is not set
CONFIG_DEVPTS_FS=y
CONFIG_QNX4FS_FS=m
# CONFIG_QNX4FS_RW is not set
CONFIG_ROMFS_FS=m
CONFIG_EXT2_FS=m
CONFIG_SYSV_FS=m

可以看到,我的ext3,ext2都是module,但CRAMFS,Romfs都是直接寫在kernel中。
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義

re:[問題]不知各位大大在make config的時候,設定的原則是啥阿。

文章moto » 週三 3月 26, 2003 9:13 am

哇~ 原來有這樣棒的文章啊...沒有阿威提醒還都不知道!
現在摩托學園的文章真的是不少嚕,感謝各位大大的貢獻
:finger1: :finger1: :finger1:
頭像
moto
摩托學園站長
摩托學園站長
 
文章: 2808
註冊時間: 週二 9月 03, 2002 3:37 am
來自: 台北


回到 share

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客