天天看點

linux 燒寫(1)

第一部分:

一、bootloader的概念

   bootloader是系統加電啟運作的第一段軟體代碼.回憶一下pc的體系結構我們可以知道,pc機中的引導加載程式由bios(其本質就是一段固件程式)和位于硬碟mbr中的引導程式一起組成。bios在完成硬體檢測和資源配置設定後,将硬碟mbr中的引導程式讀到系統的ram中,然後将控制權交給引導程式。引導程式的主要運作任務就是将核心映象從硬碟上讀到ram中 然後跳轉到核心的入口點去運作,也即開始啟動作業系統。

    而在嵌入式系統中,通常并沒有像bios那樣的固件程式(有的嵌入式系統也會内嵌一段短小的啟動程式),是以整個系統的加載啟動任務就完全由bootloader來完成.比如在一個基于 arm7tdmi core的嵌入式系統中,系統在上電或複位時都從位址 0x00000000開始執行.而在這個位址處安排的通常就是系統的bootloader程式。

    簡單地說bootloader就是在作業系統核心或使用者應用程式運作之前運作的一段小程式。通過這段小程式,我們可以初始化硬體裝置、建立記憶體空間的映射圖,進而将系統的軟硬體環境帶到一個合适的狀态,以便為最終調用作業系統核心或使用者應用程式準備好正确的環境。對于一個嵌入式系統來說,可能有的包括作業系統,有的小型系統也可以隻包括應用程式,但是在這之前都需要bootloader為它準備一個正确的環境。通常,bootloader是依賴于硬體而實作的,特别是在嵌入式領域,為嵌入式系統建立一個通用的bootloader是很困難的。

二、boot loader的操作模式

    大多數bootloader都包含兩種不同的操作模式。“啟動加載”模式和“下載下傳”模式,這種差別僅對于開發人員才有意義。但從最終使用者的角度看,bootloader的作用就是用來加載作業系統,而并不存在所謂的啟動加載模式與下載下傳工作模式的差別。

    啟動加載(boot loading)模式:這種模式也稱為“自主”(autonomous)模式,也即bootloader從目标機上的某個固态儲存設備上将作業系統加載到ram中運作,整個過程并沒有使用者的介入。這種模式是bootloader的正常工作模式。是以在嵌入式産品釋出的時候,bootloader顯然必須工作在這種模式下.

    下載下傳(down loading)模式:在這種模式下 目标機上的bootloader将通過序列槽連接配接或網絡連接配接等通信手段從主機下載下傳檔案,比如:下載下傳應用程式、資料檔案、核心映像等.從主機下載下傳的檔案通常首先被bootloader儲存到目标機的ram中然後再被bootloader寫到目标機上的固态儲存設備中。bootloader的這種模式通常在系統更新時使用。工作于這種模式下的bootloader通常都會向它的終端使用者提供一個簡單的指令行接口。

三、bootloader的工作

總體上bootloader需要完成以下工作。

n     初始化cpu速度;

n     初始化記憶體,包括啟用記憶體庫,初始化記憶體配置寄存器等;

n     初始化中斷控制器,在系統啟動時,關閉中斷,關閉看門狗;

n     初始化串行端口(如果在目标上有的話);

n     啟用指令/資料高速緩存;

n     設定堆棧指針;

n     設定參數區域并構造參數結構和标記(這是重要的一步,因為核心在辨別根裝置、頁面大小、記憶體大小以及更多内容時要使用引導參數);

n     執行post(加電自檢)來辨別存在的裝置并報告有何問題;

n     為電源管理提供挂起/恢複支援;

n     傳輸作業系統核心鏡像檔案到目标機。也可以将作業系統核心鏡像檔案事先存放在flash中,這樣就不需要bootloader和主機傳輸作業系統核心鏡像檔案,這通常是在做成産品的情況下使用。而一般在開發過程中,為了調試核心的友善,不将作業系統核心鏡像檔案固化在flash中,這就需要主機和目标機進行檔案傳輸;

n     跳轉到核心的開始,在此又分為rom啟動和ram啟動。所謂rom啟動就是用xip技術直接在flash中執行作業系統鏡像檔案;所謂ram啟動就是指把核心鏡像從flash複制到ram中,然後再将pc指針跳轉到ram中的作業系統啟動位址。

四、vivi的剪裁

bootloader有很多種,如vivi,uboot,redboot,lilo等等。vivi 是南韓mizi公司專門為三星s3c2410晶片設計的bootloader。下面我們以它為例講述一下bootloader的裁剪和燒寫.

首先是上網下載下傳vivi,我的版本是v0.1.4。http://blogimg.chinaunix.net/blog/upfile/071017080947.rar

第一步:解壓後進入vivi目錄,在終端下輸入make distclean指令,清除已生成的目标檔案的影像檔案;

第二步:輸入make menuconfig指令,啟動vivi配置gui程式,如下圖:

linux 燒寫(1)

第三步:根據自己需要修改選項,*号表示選中,如圖中使vivi支援uart1(序列槽2).修改後關閉配置頁面.

第四步:輸入make指令,在目前目錄下會生成vivi映像檔案;

生成的映像檔案我們先儲存着,以後會用到.

第二部分:

一、核心的獲得

可以從網上下載下傳核心檔案,http://www.kernel.org。如果是為了練習,盡量下載下傳2.4.x的核心。因為2.6.x的核心比較大,當然編譯也需要更都的時間。

二、核心的編譯

linux核心的編譯菜單主要有三個版本:

1)make config:進入指令行,可以一行一行的配置。

2)make menuconfig:開發人員比較熟悉的menuconfig菜單。

3)make xconfig:在2.4.x以及以前版本中xconfig菜單是基于tcl/tk的圖形庫的.

我們采用menuconfig菜單

編譯核心需要root權限,以下操作都假定你是root使用者.先在根目錄下建立名為arm2410的目錄.然後 

把你需要更新的核心拷到/usr/src/下(下文中以2.4.18的核心的linux-2.4.18.tar.gz為例),指令為

  #cp linux-2.4.18.tar.gz /usr/src

然後解壓該檔案,指令為:

  #tar -zxvf linux-2.4.18.tar.gz 

  如果你所下載下傳的是.bz2檔案,例如linux-2.4.0test8.tar.bz2,請使用下面的指令

  #bzip2 -d linux-2.4.18.tar.bz2

  #tar -xvf  linux-2.4.18.tar

下面我們開始編譯:

第一步:在終端下進入核心所在目錄 "/arm2410";

第二步:鍵入make menuconfig,進入核心配置菜單,如下圖:

linux 燒寫(1)

注意:

1)帶有"-->"表示該選項包含選項;

2)每個選項前面有[ ]或< >,中括号表示僅有2種選擇(*或空),尖括号表示有3種選擇(m,*或空),按空格鍵可顯示這幾個選擇;

3)m表示以子產品方式編譯進核心,在核心啟動後,需要手工執行insmod指令才能使用該項驅動;*表示直接編譯進核心;空表示不編譯進核心;

第三步:按着自己的需求,配置核心.一共有21項.

第四步:鍵入make clean指令,删除已生成的子產品和目标檔案.

第五步:鍵入make dep指令,編譯變量依賴關系等;

第六步:鍵入make zlmage生成經壓縮以後的核心映像檔案zlmage;

第七步:鍵入make modules編譯子產品;

第八步:鍵入make modules_install安裝編譯完成的子產品;

核心映像檔案zlmage存放在 ./arch/arm/boot/目錄下.

第三部分:

1.什麼是跟檔案系統

linux引導啟動時,預設使用的檔案系統是根檔案系統.其中一般都包括這樣一些子目錄:

/dev  裝置檔案及其他特殊檔案

/etc   系統配置檔案

/usr  大多數使用者使用的應用程式和檔案目錄

/usr/bin 必要的使用者指令

/var  監控程式和工具程式存放的可變資料

 

2.什麼是busybox

busybox是很多标準linux工具的一個單個可執行程式.它包含了一些簡單的工具,例如cat,還包含了一些更大,更複雜的工具,例如grep.,find,mount以及telnet;

3.剪裁配置busy-box

第一步:進入busybox-1.1.0-pre1目錄下,執行make menuconfig.

linux 燒寫(1)

第二步:設定編譯方式、編譯器(buile options) 如下圖:

linux 燒寫(1)

第三步:設定installation options選項,如下圖:

linux 燒寫(1)

第四步:分别執行make clean指令,make dep指令,make指令,make install指令;

第五步:在busybox-1.1.0-pre1目錄下,建立root檔案夾,将_install檔案夾下的子目錄,檔案全部拷貝到root下面;

第六步:在busybox-1.1.0-pre1目錄下,執行下面指令生成root映像檔案:

mkcramfs root root cramfs

最後:

在menuconfig中配置:

詳細介紹核心配置選項及删改情況

第一部分:全部删除

code maturity level options ---> 代碼成熟等級選項

[]prompt for development and/or incomplete code/drivers 預設情況下是選擇的,這将會在設定界面中顯示還在開發或者還沒有完成的代碼與驅動.不選。

第二部分 :除以下選項,其它全部删除

general setup—〉

system v ipc (ipc:inter process communication)是組系統調用及函數庫,它能讓程式彼此間同步進行交換資訊。某些程式以及dos模拟環境都需要它。為程序提供通信機制,這将使系統中各程序間有交換資訊與保持同步的能力。有些程式隻有在選y的情況下才能運作,是以不用考慮,這裡一定要選。

第三部分:除以下選項,其它全部删除

loadable module support ---> 可引導子產品支援 建議作為子產品加入核心

[] enable loadable module support 這個選項可以讓你的核心支援子產品,子產品是什麼呢?子產品是一小段代碼,編譯後可在系統核心運作時動态的加入核心,進而為核心增加一些特性或是對某種硬體進行支援。一般一些不常用到的驅動或特性可以編譯為子產品以減少核心的體積。在運作時可以使用modprobe指令來加載它到核心中去(在不需要時還可以移除它)。一些特性是否編譯為子產品的原則是,不常使用的,特别是在系統啟動時不需要的驅動可以将其編譯為子產品,如果是一些在系統啟動時就要用到的驅動比如說檔案系統,系統總線的支援就不要編為子產品了,否在無法啟動系統。

[]automatic kernel module loading 一般情況下,如果我們的核心在某些任務中要使用一些被編譯為子產品的驅動或特性時,我們要先使用modprobe指令來加載它,核心才能使用。不過,如果你選擇了這個選項,在核心需要一些子產品時它可以自動調用modprobe指令來加載需要的子產品,這是個很棒的特性,當然要選y喽。

第四部分:全部删除

block layer-----〉塊裝置

第五部分:除以下選項,其它全部删除

processor type and features ---> 處理器類型

subarchitecture type (pc-compatible) ---> 這選項的主要的目的,是使linux可以支援多種pc标準,一般我們使用的pc機是遵循所謂ibm相容結構(pc/at)。這個選項可以讓你選擇一些其它架構。我們一般選擇pc-compatible就可以了。

processor family(386) : 它會對每種cpu做最佳化,讓它跑的好又快,一般來說,你是什麼型号的就選什麼型号的就好。我選的是386,這樣核心會省下不少空間

第六部分:除以下選項,其它全部删除

power management options (acpi, apm) ---> 電源管理選項

[ ] power management debug support 電源管理的調試資訊支援,如果不是要調試核心有關電源管理部份,請不要選擇這項。

acpi support ---〉進階電源接口配置支援,如果bios支援,建議選上這項

[]button 這個選項用于注冊基于電源按鈕的事件,比如power, sleep等,當你按下按鈕時事件将發生,一個守護程式将讀取/proc/acpi/event,并執行使用者在這些事件上定義的動作比如讓系統關機。可以不選擇,根據自己的需求。

第七部分:除以下選項,其它全部删除

bus options (pci, pcmcia, eisa, mca, isa) ---> 總線選項

[]pci support

pci access mode (any) ---> pci外圍裝置配置,強列建議選any,系統将優先使用mmconfig,然後使用bios,最後使用direct檢測pci裝置。

第八部分:除以下選項,其它全部删除

executable file formats --->

kernel support for elf binaries elf是開放平台下最常用的二進制檔案,它支援不同的硬體平台。一定要選。

第九部分:除以下選項,其它全部删除

networking

networking options --->

[]unix domain sockets

[]tcp/ip networking

第十部分:除以下選項,其它全部删除

device drivers --->裝置驅動

block devices-------〉

[]compaq smart2 support 

[] compaq smart array 5xxx support 

[]loopback device support 大部分的人這一個選項都選n,因為沒有必要。但是如果你要mount iso檔案的話,你得選上y。這個選項的意思是說,可以将一個檔案挂成一個檔案系統。如果要燒CD光牒片的,那麼您很有可能在把一個檔案燒進去之前,看看這個檔案是否符合is09660的檔案系統的内容,是否符合您的需求。而且,可以對這個檔案系統加以保護。不過,如果您 想做到這點的話,您必須有最新的mount程式,版本是在2.5x版以上的。而且如果您希望對這個檔案系統加上保護,則您必須有des.1.tar.gz這個程式。注意:此處與網絡無關。建議編譯成子產品

[] ram disk support

scsi device support ---> 裡面有關于usb支援的,要選擇

[]scsi device support usb要用,必須選擇

[]legacy /proc/scsi/ support usb要用,必須選擇

[]scsi disk support usb要用,必須選擇

scsi low-level drivers

[]serial ata(sata) support

[]intel piix/ich sata support   這個必須選擇,否則無法産生引導檔案

[]via sata support

networking device support ---> 這個下面是選網卡驅動,一定要選

ethernet(1000mbit)-我的電腦是千兆網卡是以就選這個

[]broadcom tigon3support

input device support ---> 這個裡面要設定你的滑鼠鍵盤什麼的

[]provide legacy /dev/psaux device

graphics support --->

[]support for frame buffer devices 支援frame buffer的,一定要選擇

usb support --->

[]usb device filesystem 這個好象是用u盤必須的

[]ehci hcd (usb 2.0) support 有usb2.0就選上把,編譯成子產品

[]ohci hcd support 必須選擇,編譯成子產品

[]uhci hcd (most intel and via) support 必須選擇,編譯成子產品

[]usb mass storage support 用u盤必須選擇

usb human interface device (full hid) support 裡面選擇usb滑鼠和usb鍵盤,如果你有一定選上這個必需選

hid input layer support 應該選擇

/dev/hiddev raw hid device support如果這裡有usb鍵盤和滑鼠選項,一定要選擇

第十一部分:除以下選項,其它全部删除

file systems --->檔案系統

<*> second extended fs support 

[*] ext2 extended attributes 

[*] ext2 posix access control lists 

[*] ext2 security labels 

<m> ext3 journalling file system support 

[*] ext3 extended attributes 

[*] ext3 posix access control lists 

[*] ext3 security labels 以上這些肯定是要選擇的,linux的标準檔案系統

<m> kernel automounter support 核心自動挂載的,當然要選

<m> kernel automounter version 4 support (also supports v3) 當然要選

dos/fat/nt filesystems ---> 

<m> dos fat fs support 

<m> msdos fs support 

<m> vfat (windows-95) fs support 

<m> ntfs file system support

native language support語言支援,這裡就支援英語和漢語就行了,不多說了

[]nls iso 8859-1 必須選擇,這個是關于u盤挂載的。

cd-rom/dvd filesystems ---> 這個是關于挂載iso檔案的,用的話就選。

<*> iso 9660 cdrom file system support

第十二部分: 全部删除

instrumentation support 

第十三部分:全部删除

kernel hacking --->破解核心?可不是當骸客啦,不選

第十四部分:全部删除

security options --->

第十五部分:全部删除

cryptographic options --->這是核心支援加密的選項

第十六部分:全部删除

library routines --->

附:

核心配置

  核心配置的方法很多,make config、make xconfig、make menuconfig、make oldconfig等等,它們的功能都是一樣的,差別應該從名字上就能看出來,隻有make oldconfig是指用系統目前的設定(./.config)作為預設值。這裡用的是make menuconfig。

  需要牢記:不必要的驅動越多,核心就越大,不僅運作速度慢、占用記憶體多,在少數情況下、還會引發其他問題。具體步驟如下:

首先确定shell是bash。

然後

$make menuconfig

有一些預設的符号其含義如下:

y:加載

n:不加載

m:作為子產品加載

可以配置的選項有以下一些:

1)code maturity level option 代碼成熟度

prompt for development and/or incomplete code/drivers [n/y/?]

如果有興趣測試一下核心中尚未最終完成的某些子產品,就選y,否則選n,想知道更詳細的資訊選?會看到聯機幫助(以下?的含義相同),n大寫表示預設值。

2)processor type and features 處理器類型及特性

processor family(386,486/cx486,586/k5/5x86/6x86,pentium/k6/tsc, ppro/6x86mx)[ppro/6x86mx]

[]内的是預設值,我們可以根據前面介紹的uname 指令執行的結果選擇。此項如果高于386,那麼生成的核心在386機器上将不能啟動。

math emulation(config_math_emulation)[n/y/?]

需要進行協處理器模拟嗎?一般的機器都回n。如果機器已經有硬體的協處理器,那麼核心仍将使用硬體,而忽略軟體的math-emulation,這将使核心變大變慢。

mtrr(memory type range register)support(config_mtrr)[n/y/?]

在pentium、pro/pentium ii類的系統中可以提高圖像寫入速度。

symmetric multi-processing support(config_smp)[y/n/?]

如果您的機器有多個處理器,就選y。此時要選中下面的enhanced real time clock support

3)loadable model support 可加載子產品支援

enable loadable module support(config_modules)[y/n/?]

最好選y,不然許多僅供動态加載的子產品就不能用了。

set version information on all symbols for modules(config_modversions)[n/y/?]

選n

kernel module loader(config_kmod)[n/y/?]

4)general setup 一般設定

networking support(config_net)[y/n/?]

選y吧,現在還有幾台計算機不用上網呢?

pci support (config_pci)[y/n/?]

pci 總線和裝置總該有吧。

pci access mode(bios,direct,any)[any]

預設值比較保險,但如果您對您的主機闆很有信心,就選bios。

pci quirks (config_pci_quirks)[y/n/?]

用于修補bios中對pci有影響的bug,同樣,如果您對主機闆很有信心,就選n。

backward-compatible /proc/pci〉(config_pci_old_proc)[y/n/?]

以前的核心使用/proc/pci,新版核心使用/proc/bus/pci,要保持相容性就選y。

mca support(config_mca)[n/y/?]

檢視幫助吧。

sgi visual workstation support(config_visws)[n/y/?]

您的機器是sgi的嗎?是就選y。

system v ipc(config_sysvipc)[y/n/?]

程序間通信函數和系統調用。linux核心的五大組成部分之一,一定要選。

bsd process accounting(config_bsd_process_acct)[n/y/?]

用于啟動由核心将程序資訊寫入檔案的使用者級系統調用。就看您想不想用它了。

sysctl support(config_sysctl)[y/n/?]

在核心正在運作的時候修改核心。用8kb空間換取某種友善。别選吧,除非你真的想試試。

kernel support for a.out binaries(config_binfmt_aout)[y/m/n/?]

為了能使用以前編譯的程式,選y。

kernel support for elf binaries(config_binfmt_elf)[y/m/n/?]

為了能使用現在編譯的程式,選y。

kernel support for misc binaries(config_binfmt_misc)[y/m/n/?]

一般選y,用于支援java等代碼的自動執行。

parallel port support(config_parport)[n/y/m/?]

并口裝置,如列印機。

5)plug and play support 即插即用裝置支援

plug and play support (config_pnp)[n/y/?]

選y吧。

6)block devices 塊裝置

normal pc floppy disk support(config_blk_dev_fd)[y/m/n/?]

一般的軟驅。選y。

enhanced ide/mfm/rll disk/cdrom/tape/floppy support(config_blk_dev_ide)[y/m/n/?]

這幾種接口的硬碟、光驅、錄音帶、軟驅。選y。

include ide/atapi cdrom support(config_blk_dev_idecd)[y/m/n/?]

cdrom。選y。

7)networking options 網絡選項

packet socket (config_pachet)[y/m/n/?]

按照目前網絡發展的狀況,選y比較好。當然也可以選其它的。

kernel/user netlink socke(config_netlink)[n/y/?]

核心與使用者程序雙向通信。選y。

network firewalls(config_firewall)[n/y/?]

如果真的需要用防火牆,就選y。

unix domain sockets(confgi_unix)[y/m/n/?]

socket 的用處太多了。選y。

tcp/ip networking(config_inet)[y/n/?]

選y,理由如上一條。

the ipx protocol (config_ipx)[n/y/m/?]

其實并沒有那麼多人真的需要使用或者學習ipx,是以一般選n。

appletalk ddp(config_atalk)[n/y/m/?]

選n,理由同上。

8)scsi support scsi支援,scsi low-level drives scsi低級驅動

根據系統中scsi裝置的實際情況選擇。

9)networking device support 網絡裝置支援

如果用lan上網,就選擇網卡;

如果用modem撥号上網,就要看isp提供那種服務了,一般都是ppp。

10)amateur radio support 業餘收音機支援

這是什麼我不太清楚,是以選n。

11)isdn subsystem isdn子系統

好像已經有支援isdn的modem了,是以最好先看看自己的modem是不是這種,再做選擇。

12)old cd-rom dfivers (not scsi, not ide) 老式光驅驅動

一般選n,因為這種裝置實在很少見。

13)character devices 字元裝置

virtual terminal(config_vt)[y/n/?]

linux上一般可以用alt+f1/f2/f3/f4來切換不同的任務終端,即使在一台計算機上也可以充分使用linux的多任務能力,一些需要以指令行方式安裝合适用的軟體如果有虛拟終端的支援就會更友善,是以選y。

support for console on virtual terminal(config_vt_console)[y/n/?]

選y将支援一個虛拟終端作為控制台。一般為alt+f1。

support for console on serial port(config_serial)[y/m/n/?]

除非真的需要一個序列槽控制台,否則選n。

extended dumb serial driver options(config_serial_extended)[n/y/?]

如果希望使用"dumb"的非标準特性(如hub6支援),選y,一般選n。

non-standard serial port support(config_serial_nonstandard)[n/y/?]

非标準序列槽。一般選n。

unix98 pty support(config_unix98_ptys)[y/n/?]

pty指僞終端,一般使用者就選n。但如果想用telnet或者xterms作為終端通路主機,并且已經安裝了glibc2.1,就可以選y。

maximum number of unix98 ptys in use(0-2048)(config_unix98_pty_count)[256]

預設值就可以了。

mouse support(not serial mice)(config_mouse)[y/n/?]

ps/2等非序列槽滑鼠選y,否則選n。

14)mice 滑鼠

根據自己的滑鼠類型選擇。

15)video for linux linux視訊

根據系統中的音/視訊捕捉裝置選擇。

16)joystick support 操縱杆

根據系統中的遊戲杆裝置選擇

17)ftape,the floopy tape device driver ftape裝置驅動

ftape (qic-80/travan)support(config_ftape)[n/y/m/?]

如果系統中有錄音帶機,選y。

18)filesystems 檔案系統

檔案系統的選擇要比較仔細,因為其中的一些給某些系統功能提供支援。而且除了proc、ext2等檔案系統之外,其它的檔案系統(包括下面的網絡檔案系統)都可以選擇為m方式,進而減小核心啟動時的體積。

quota support(config_quota)[n/y/?]

用于給使用者劃分定量的磁盤空間。如不用此功能就選n。

dos fat fs support(config_fat_fs)[n/y/m/?]

為核心提供fat支援,多數使用者有可能從linux通路同一系統中的windows硬碟空間,是以最好選y。

iso 9660 cdrom filesystem support(config_iso9660_fs)[y/m/n/?]

有标準光驅的系統應該選y。

minix fs support(config_minix_fs)[n/y/m/?]

用于建立啟動盤的檔案系統,多數應該選y或者m。

/proc filesystem support(config_proc_fs)[y/n/?]

虛拟檔案系統,必須選y。

second extended fs support(config_ext2_fs)[y/m/n/?]

linux标準檔案系統,都應該選y。

19)network file systems 網絡檔案系統

coda filesystem support (advanced network fs)(config_coda_fs)[n/y/m/?]

先看幫助再選。

nfs filesystem support(config_nfs_fs)[y/m/n/?]

選y或n,能夠通路遠端nfs檔案系統。

smb filesystem support(to mount wfw shares etc.)(config_smb_fs)[n/y/m/?]

要通路windows系統中的共享資源選y。

ncp filesystem support(to mout netware volumes)(config_ncp_fs)[n/y/m/?]

如果真的需要通路netware檔案系統,就選y或者m。

20)partion types 分區類型

一般用不上;要用請參看幫助。

21)console drivers 控制台驅動

vga text console(config_vga_console)[y/n/?]

用vga模式下用文本方式操作linux,一般選y。

video mode selection support(config_video_select)[n/y/?]

大多數系統都不需要這項功能。

22)sound 聲音

sound card support(config_sound)[n/y/m/?]

如果系統中安裝了聲霸卡,就選y(或者m),然後檢視幫助。

23)kernel hacking 核心監視

kernel hacking往往會生成非常大或者非常慢(甚至又大又慢)的核心,甚至會引起核心工作不穩定。如果一定要選,那麼也最好不要選其中的"development"、"experimental"、"debugging"項。

繼續閱讀