關於 Linux 的核心編譯流程介紹,與注意事項說明!
本文資料主要針對 Fedora Core 4 的系統進行說明, Fedora Core 1 主要是由 Red Hat Linux 9 改版而來, 這個 Red Hat Linux 9 並不是當前大家聽到的 RHEL 喔!那是在 RHEL 出現之前的產品,基本上是在 2003 年以前的作品了!Fedora Core 4 則是在 2005 年 6 月份釋出,使用的核心是 2.6.11 版,當時是很紅的一個作品!只是生命週期太短,所以用這個 Fedora 系列來介紹 Server, 當時的決定確實有點莫名其妙了...
建議您前往本站查詢最新版本的 Linux distribution 文章來閱讀,比較不會浪費時間。那為何還需要編輯 Fedora Core 4 的資料呢? 鳥哥只想要做個自己曾經撰寫過的文件內容保存而已囉! ^_^!最新文章請前往鳥站首頁查閱囉!
我們在前面的幾個章節介紹了 Linux 其實指的就是核心而已,而整個 Linux 的世界當中, 最重要的也就是核心了!他控制了您的伺服器的所有硬體,也控制了所有的您想要的功能, 例如軟體磁碟陣列(RAID)、各種介面卡的驅動模組、防火牆的新增功能等等。透過管理您的 Linux 核心,將可讓您的伺服器跑得更加的順暢,也更穩定您的伺服器所提供的相關服務呢! 此外,為了讓硬體驅動程式與相關的核心功能修訂容易,所以 Linux 核心是支援『模組化』的,也就是說,您核心所想要的功能可以『後來才加掛上去』喔! 那麼如何加掛上去呢?這就需要瞭解一下所謂的『模組』了!當然,連同模組的相關指令就得也要會用囉!^_^
[root@linux ~]# uname -r 2.6.13-1.1532_FC4 # 因為鳥哥的 FC4 已經升級核心多次,所以這個版本應該與你的不同!看到了吧!那個東西就是核心版本的資訊啦!好了!我們依照 RPM 版本的先例,也來談一談 kernel 的版本吧!基本上, kernel 的版本可以區分為:
例題:什麼是『釋出版本』? 答:
答:
|
arch :與硬體平台有關的項目,例如 CPU 的等級等等; crypto :核心所支援的加密的技術,例如 md5 或者是 des 等等; drivers :一些硬體的驅動程式,例如顯示卡、網路卡、PCI 相關硬體等等; fs :核心所支援的 filesystems ,例如 vfat, reiserfs, nfs 等等; lib :一些函式庫; net :與網路有關的各項協定資料,還有防火牆模組 (net/ipv4/netfilter/*) 等等; sound :與音效有關的各項模組;每個目錄底下也都含有很多不同的次目錄,例如 drivers 目錄下就含有 net, sound, usb, pci, vedio... 等等多到數不清的次目錄,這些目錄底下還是含有相關的硬體驅動模組等等~呵呵~想要完整的瞭解是很難的啦! 例如,核心使如何讓工作排到 CPU 去執行的?核心是如何存取實體記憶體與 Swap ? 核心是如何讀取各不同的 filesystems 等等,如果有興趣的話, 那麼最新核心檔案解壓縮之後,都會有個 Documentation 的目錄, 可以進去查閱各個相關的說明啊! ^_^
[root@linux ~]# cd /usr/src [root@linux src]# tar -jxvf /root/linux-2.6.14.2.tar.bz2 # 這個時候就會產生一個 /usr/src/linux-2.6.14.2 的目錄,該目錄就是 source code。 # 不過,這個目錄下有個 README 的檔案務必參考,此外, # 還有個 Documentation 的目錄,也可以仔細的看一看喔! [root@linux src]# cd linux-2.6.14.2 [root@linux linux-2.6.14.2]# make mrproper # 這個過程在刪除一些以前留下來的 .o 檔案。特別留意一下,核心的原始碼最好不要直接放置到 /usr/src/linux 這個目錄, 這是因為該目錄是很多的軟體讀取核心功能的目錄,如果你將這個新核心放置到 /usr/src/linux 下時, 可能會讓某些軟體讀到錯誤的核心檔案。因此,您才可能看到目前的核心原始碼都放到 /usr/src/kernels/ 目錄下 (FC4 的預設放置目錄)。 所以,我們新的核心主要建議您還是放置到 /usr/src/ 目錄下, 但是目錄名稱保持 linux-2.6.14.2 即可,不必更名為 linux 囉!這點重要!
[ ] Prompt for development and/or incomplete code/drivers
# 這個可選可不選~不過,鳥哥這裡是不選擇的啦!
() Local version - append to kernel release [ ] Automatically append version information to the version string (NEW) # 上面這兩個都與核心的附加版本有關。例如 FC4 的核心版本為 # 2.6.14-1.1637_FC4 ,後面那個 1.1637_FC4 就是那個附加版本啦! [*] Support for paging of anonymous memory (swap) # 這個與 swap 的使用有關!當然要選擇啦 [*] System V IPC # IPC 是 Inter Process Communication 的簡寫,這個與一個 programs # 可以被多人同時啟用有關,所以務必要選擇才行! [*] BSD Process Accounting [ ] BSD Process Accounting version 3 file format [*] Sysctl support # 這個就是在產生 /proc/sys 的支援!務必選擇! [*] Auditing support [*] Enable system-call auditing support # 上面這兩個是額外核心功能 (如 SELinux) 載入時所需要的設定!務必選擇 --- Support for hot-pluggable devices [*] Kernel Userspace Events # 讓核心能夠監聽使用者的動作。舉例來說, USB 裝置的連線與否等等的即時裝置。 [ ] Kernel .config support () Initramfs source file(s) [ ] Configure standard kernel features (for small systems) --->這裡的項目主要都是針對核心與程式之間的相關性來設計的,基本上, 保留預設值即可!除非您想要編輯屬於自己的附加版本,那麼在上表的第一項按下 Enter 後, 就可以輸入一些資訊了。不要隨便取消上面的任何一個項目, 可能會造成某些程式無法被同時執行的困境喔!
[*] Enable loadable module support [*] Module unloading [*] Source checksum for all modules [*] Automatic kernel module loading不用想太多,全部都選擇吧!
Subarchitecture Type (PC-compatible) ---> (X) PC-compatible <==這裡是次目錄 ( ) AMD Elan ( ) Voyager (NCR) ( ) NUMAQ (IBM/Sequent) ( ) SGI 320/540 (Visual Workstation) # 這裡在選擇主機的硬體類型。我們使用 PC 相容的主機啊!選這個就對了。 Processor family (Pentium-III/Celeron(Coppermine)/Pentium-III Xeon) ---> ( ) 386 <==這裡是次目錄 ( ) 486 ( ) 586/K5/5x86/6x86/6x86MX ( ) Pentium-Classic ( ) Pentium-MMX ( ) Pentium-Pro ( ) Pentium-II/Celeron(pre-Coppermine) (X) Pentium-III/Celeron(Coppermine)/Pentium-III Xeon ( ) Pentium M ( ) Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon ( ) K6/K6-II/K6-III ( ) Athlon/Duron/K7 ( ) Opteron/Athlon64/Hammer/K8 ( ) Crusoe ( ) Efficeon ( ) Winchip-C6 ( ) Winchip-2 ( ) Winchip-2A/Winchip- ( ) GeodeGX1 ( ) CyrixIII/VIA-C3 ( ) VIA C3-2 (Nehemiah) # 這裡則是 CPU 的等級,我使用的是 P-III ,您得要選擇自己的啊! [*] Generic x86 support # 對 x86 的 CPU 架構支援較佳。 [*] HPET Timer Support [ ] Symmetric multi-processing support # 如果您使用兩顆 CPU 以上的系統,這裡『務必』要選擇!否則不用選 Preemption Model (No Forced Preemption (Server)) ---> (X) No Forced Preemption (Server) ( ) Voluntary Kernel Preemption (Desktop) ( ) Preemptible Kernel (Low-Latency Desktop) # 這裡與 CPU 的效能有關。如果您想要作一個伺服器的核心,選擇第一個! # 否則,為了穩定,最好選擇第二項。 [*] Local APIC support on uniprocessors [*] IO-APIC support on uniprocessors # 單顆 CPU 的環境中,這個項目可以選擇起來,讓 CPU 具有 # Advanced Programmable Interrupt Controller 的功能啊! [*] Machine Check Exception # 讓 Pentium 系列的 CPU 可以在偵測到 kernel 有問題時,立刻回應到終端介面 < > Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4 < > Toshiba Laptop support < > Dell laptop support # 上面這三個就得要看看你的系統是否支援啦!基本上,可以設定成 M 啦! [ ] Enable X86 board specific fixups for reboot <M> /dev/cpu/microcode - Intel IA32 CPU microcode support <M> /dev/cpu/*/msr - Model-specific register support <M> /dev/cpu/*/cpuid - CPU information support # 因為我的是 P-III CPU 啊,所以這裡當然選擇成模組即可! Firmware Drivers ---> < > BIOS update support for DELL systems via sysfs (NEW) < > Dell Systems Management Base Driver (NEW) # 如果你的系統是 Dell 的,那麼上面記得編成模組!鳥哥不需要~ High Memory Support (4GB) ---> ( ) off (X) 4GB ( ) 64GB # 這個重要!一般來說,我們對於主機的要求是 RAM 越大越好(一般情況下); # 但是,原本的核心支援僅到 1GB 的記憶體,所以,這裡要加大! # 一般的個人電腦主機,或者是 X86 主機,通常只要 4GB 就夠了, # 除非是特殊的工業用主機才可以額外插到 4GB 以上的記憶體! # 如果這裡選擇成 off 的話,那麼您的記憶體最大只能被捉到 1GB 。 [*] Allocate 3rd-level pagetables from highmem # 這個與 High Memory Support 有關,如果你的記憶體支援到 4GB,這裡可以加入 [ ] Math emulation # 這個與 CPU 是否具有浮點運算單元有關。目前我們的 CPU (586 以上) # 都已經內建了浮點運算單元了,所以這裡可以不要選啦! [*] MTRR (Memory Type Range Register) support # 這玩意兒可以讓 CPU 具有讀取記憶體特殊區塊的能力,尤其在高效能的 AGP # 與相關的 PCI/AGP 匯流排進行資料傳輸時,可以增進不少效能。 # 選擇這個項目後,會產生 /proc/mtrr ,我們的 X 會讀取這個咚咚喔。 [ ] Boot from EFI support (EXPERIMENTAL) [*] Enable seccomp to safely compute untrusted bytecode # 這個項目通常要加,不過,如果是嵌入式系統的話,可以不加入! Timer frequency (250 HZ) # 這個項目則與核心針對某個事件立即回應的速度有關。一般來說, # 如果是一般桌上電腦,那麼反應時間可以調整的快速一點,因為不會有其他事件。 # 如果是主機,由於同一時間點可能有多人連線進來,啟發的事件太多了,所以, # 這個反應時間反而要調慢一點,會比較穩定,而且效能也不差。通常保留預設值 # 250 就很好了。
[ ] Power Management Debug Support [ ] Software Suspend # 這個與將目前的環境暫存在 swap 當中有關。萬一你想要將目前的資料暫存, # 因為系統可能必須要關機一陣子,那麼這個項目可以選擇。不過, # 由於可能會有一些問題,所以不建議您使用這個功能(主機也很少用到!) ACPI (Advanced Configuration and Power Interface) Support ---> # 這個電源管理模組雖然可以管理你的電源,不過,卻會增加核心約 70K ,所以 # 對嵌入式系統來說,可能需要考慮考慮。至於 desktop/server 當然就選擇啊! [*] ACPI Support [*] Sleep States [*] /proc/acpi/sleep (deprecated) # 如果要啟動 ACPI 的支援,那上面這幾個幾乎都是必要的! <M> AC Adapter <M> Battery <M> Button <M> Video # 這幾個則只要編譯成為模組即可,因為桌上型與伺服器用不到。 # 他主要大該都是針對筆記型電腦來設計的! ^_^ <*> Fan <*> Processor <*> Thermal Zone # 每一部主機都有的 CPU/風扇 等,當然也可以編譯進核心,也可以設定成模組。 <M> ASUS/Medion Laptop Extras <M> IBM ThinkPad Laptop Extras <M> Toshiba Laptop Extras (2001) Disable ACPI for systems before Jan 1st this year [ ] Debug Statements [*] Power Management Timer Support APM (Advanced Power Management) BIOS Support ---> <*> APM (Advanced Power Management) BIOS support [ ] Ignore USER SUSPEND [ ] Enable PM at boot time [*] Make CPU Idle calls when idle [ ] Enable console blanking using APM [*] RTC stores time in GMT [ ] Allow interrupts during APM BIOS calls [ ] Use real mode APM BIOS call to power off # 由於鳥哥比較少使用電源管理,所以,我這裡大多使用預設值而已。 CPU Frequency scaling ---> # 什麼?可以經過核心修改 CPU 的運作頻率?哈哈!沒錯!是這樣! # 不過,在說明檔當中也提及,還需要啟動底下的 dynamic cpufreq governor # 才可以順利的啟動這個項目。當然,如果你不願意的話,這裡可以取消。 [*] CPU Frequency scaling [*] Enable CPUfreq debugging <M> CPU frequency translation statistics [*] CPU frequency translation statistics details # 如果想要啟動在休眠時, CPU 自動降頻的功能,上面都給他設定好吧! Default CPUFreq governor (userspace) ---> ( ) performance (X) userspace # 休眠時 CPU 頻率的考量,是以效能為主,還是您可以手動修改 # 既然要自動降頻,當然不以效能為考量~所以選 userspace 吧! <*> 'performance' governor <M> 'powersave' governor --- 'userspace' governor for userspace frequency scaling <M> 'ondemand' cpufreq policy governor <M> 'conservative' cpufreq governor # 上面這幾個則是在載入哪些調節器(governor) ~ --- CPUFreq processor drivers <M> ACPI Processor P-States driver < > AMD Mobile K6-2/K6-3 PowerNow! <M> AMD Mobile Athlon/Duron PowerNow! < > Cyrix MediaGX/NatSemi Geode Suspend Modulation <*> Intel Enhanced SpeedStep [*] Use ACPI tables to decode valid frequency/voltage pairs [*] Built-in tables for Banias CPUs <*> Intel Speedstep on ICH-M chipsets (ioport interface) <M> Intel Pentium 4 clock modulation <*> Transmeta LongRun < > VIA Cyrix III Longhaul # 上面這幾個就與 CPU 的型號有關啦!我用的是 P-III, # 所以,不相關的資料我直接將他編成模組而已! --- shared options [ ] /proc/acpi/processor/../performance interface (deprecated) [ ] Relaxed speedstep capability checks # 其實,這個項目主要是在主機 Idle 的時候,透過 CPU 本身的功能, # 然後讓系統可以自動的降頻的一個選項啦! ^_^老實說,由於鳥哥的 Linux 機器主要都是站在 Server 的角度,所以我的機器都是全年無休的。 在這樣的條件下,我老是選擇不要使用電源管理的說~ @_@。不過,如果是站在桌上型電腦的角度, 呵呵~啟動電源管理這可是很棒的選項,因為.....電費越來越貴了~ 能省則省啊! ^_^ 另外,絕大部分的選項都可以編譯成為模組啊!只是會花去一些編譯的時間就是了。
--- PCI support PCI access mode (Any) ---> [ ] PCI Express support # 這個重要!如果你的主機板有支援較新的 PCI-Express 顯示卡的話, # 這裡請務必要勾選~鳥哥的主機板太舊了,用的是 AGP 顯示卡,所以這裡不選! [ ] Message Signaled Interrupts (MSI and MSI-X) [*] Legacy /proc/pci interface [ ] PCI Debugging [*] ISA support [ ] EISA support # 這個是比 PCI 還要更早的匯流排插槽,一般來說, # 最好還是保留 ISA 插槽比較妥當點~ [ ] MCA support < > NatSemi SCx200 support PCCARD (PCMCIA/CardBus) support ---> < > PCCard (PCMCIA/CardBus) support [ ] Enable PCCARD debugging < > 16-bit PCMCIA support [ ] PCMCIA control ioctl (obsolete) --- 32-bit CardBus support --- PC-card bridges < > CardBus yenta-compatible bridge support < > Cirrus PD6729 compatible bridge support < > i82092 compatible bridge support < > i82365 compatible bridge support < > Databook TCIC host bridge support # 這個是 PC 卡,一般來說,桌上型電腦不會有這種卡的存在, # 所以,鳥哥通常是不選擇~不過,如果你的主機是筆記型電腦, # 這裡可就得要選擇了!否則很多插卡就不能被使用啊!切記切記! PCI Hotplug Support ---> # 這個是進階功能,可以不用理他!PCI 插槽是重要的,因為幾乎所有的介面卡都是插在 PCI 插槽上面的。 此外,這個設定項目裡面有個比較有趣又重要的地方,那就是 PCI-E (PCI Express) 的設定項目了!如果你的主機板是最近買的,而且你的顯示卡是 PCI-E 的話, 這個項目就務必要編入核心才行!否則顯示卡會捉不到的!
[*] Kernel support for ELF binaries <M> Kernel support for a.out and ECOFF binaries <*> Kernel support for MISC binaries
--- Networking support Networking options ---> # 就是這個光啊!裡面的資料全部都是重要的防火牆項目! # 在這裡面的項目當中,如果可以編成模組,盡量將他編成模組! <*> Packet socket # 唯獨這個項目務必要編進核心裡面!因為他是防火牆啊! [*] Packet socket: mmapped IO <*> Unix domain sockets <*> IPsec user configuration interface <M> PF_KEY sockets # 底下是 TCP/IP 的設定,大多是 IPv4 ,只要保留預設值就很 OK 了! [*] TCP/IP networking [*] IP: multicasting [*] IP: advanced router Choose IP: FIB lookup algorithm (choose FIB_HASH if unsure) [*] IP: policy routing [*] IP: use netfilter MARK value as routing key [*] IP: equal cost multipath [ ] IP: equal cost multipath with caching support (EXPERIMENTAL) [*] IP: verbose route monitoring [ ] IP: kernel level autoconfiguration <M> IP: tunneling <M> IP: GRE tunnels over IP [*] IP: broadcast GRE over IP [*] IP: multicast routing [*] IP: PIM-SM version 1 support [*] IP: PIM-SM version 2 support [*] IP: TCP syncookie support (disabled per default) <M> IP: AH transformation <M> IP: ESP transformation <M> IP: IPComp transformation <M> IP: tunnel transformation <*> INET: socket monitoring interface [ ] TCP: advanced congestion control IP: Virtual Server Configuration ---> # 這個項目則主要與 cluster 有關~裡面保留預設值即可! # 這底下則與 IPv6 ,新一代的 IP 協定有關!同樣做成模組! <M> The IPv6 protocol [*] IPv6: Privacy Extensions (RFC 3041) support <M> IPv6: AH transformation <M> IPv6: ESP transformation <M> IPv6: IPComp transformation --- IPv6: tunnel transformation <M> IPv6: IPv6-in-IPv6 tunnel # 底下就重要啦!就是我們一直講一直講的防火牆啦! ^_^ [*] Network packet filtering (replaces ipchains) ---> --- Network packet filtering (replaces ipchains) [ ] Network packet filtering debugging [*] Bridged IP/ARP packets filtering <M> Netfilter netlink interface IP: Netfilter Configuration ---> <M> Connection tracking (required for masq/NAT) [*] Connection tracking flow accounting [*] Connection mark tracking support [ ] Connection tracking events <M> Connection tracking netlink interface <M> FTP protocol support <M> IRC protocol support <M> TFTP protocol support <M> Amanda backup protocol support <M> PPTP protocol support <M> IP Userspace queueing via NETLINK (OBSOLETE) <M> IP tables support (required for filtering/masq/NAT) <M> limit match support <M> IP range match support <M> MAC address match support <M> Packet type match support <M> netfilter MARK match support <M> Multiple port match support <M> TOS match support <M> recent match support <M> ECN match support <M> DSCP match support <M> AH/ESP match support <M> LENGTH match support <M> TTL match support <M> tcpmss match support <M> Helper match support <M> Connection state match support <M> Connection tracking match support <M> Owner match support <M> Physdev match support <M> address type match support <M> realm match support <M> SCTP protocol match support <M> DCCP protocol match support <M> comment match support <M> Connection mark match support <M> Connection byte/packet counter match support <M> hashlimit match support <M> string match support <M> Packet filtering <M> REJECT target support <M> LOG target support <M> ULOG target support (OBSOLETE) <M> TCPMSS target support <M> NFQUEUE Target Support <M> Full NAT <M> MASQUERADE target support <M> REDIRECT target support <M> NETMAP target support <M> SAME target support <M> Packet mangling <M> TOS target support <M> ECN target support <M> DSCP target support <M> MARK target support <M> CLASSIFY target support <M> TTL target support <M> CONNMARK target support <M> raw table support (required for NOTRACK/TRACE) <M> NOTRACK target support <M> ARP tables support <M> ARP packet filtering <M> ARP payload mangling Bridge: Netfilter Configuration ---> # 這個項目內容也一樣,全部編成模組! # 底下同樣的,可能的話就編譯成為模組啊! <M> 802.1d Ethernet Bridging <M> 802.1Q VLAN Support < > DECnet Support < > ANSI/IEEE 802.2 LLC type 2 Support <M> The IPX protocol [ ] IPX: Full internal IPX network <M Appletalk protocol support [*] Appletalk interfaces support <M> Apple/Farallon LocalTalk PC support <M> COPS LocalTalk PC support [*] Dayna firmware support [*] Tangent firmware support <M> Appletalk-IP driver support [*] IP to Appletalk-IP Encapsulation support [*] Appletalk-IP to IP Decapsulation support [*] QoS and/or fair queueing ---> <M> Firewall based classifier <M> U32 classifier [*] U32 classifier performance counters [*] classify input device (slows things u32/fw) [*] Use nfmark as a key in U32 classifier <M> Special RSVP classifier <M> Special RSVP classifier for IPv6 [*] Extended Matches (32) Stack size <M> Simple packet data comparison <M> Multi byte comparison <M> U32 hashing key <M> Metadata <M> Textsearch [*] Traffic policing (needed for in/egress) Network testing ---> # 底下則是一些特殊的網路設備,例如紅外線啊、藍牙啊! # 如果不清楚的話,就使用模組吧!除非你真的知道不要該項目! [ ] Amateur Radio support ---> <M> IrDA (infrared) subsystem support ---> <M> Bluetooth subsystem support ---> <M> Generic IEEE 802.11 Networking Stack [ ] Enable full debugging output <M> IEEE 802.11 WEP encryption (802.1x) <M> IEEE 802.11i CCMP support <M> IEEE 802.11i TKIP encryption在這個設定項目當中,很多東西其實我們在基礎篇還沒有講到, 因為大部分的參數都與網路、防火牆有關!由於防火牆是在啟動網路之後再設定即可, 所以絕大部分的內容都可以被編譯成為模組,而且也建議您編成模組! 有用到才載入到核心即可啊!
Generic Driver Options ---> # 與韌體有關,保留預設值即可! Connector - unified userspace <-> kernelspace linker ---> Memory Technology Devices (MTD) ---> # 上面這兩個不知道會不會用到的資料,暫時可以編譯成為模組即可! Parallel port support ---> <M> Parallel port support <M> PC-style hardware <M> Multi-IO cards (parallel and serial) <M> Support for PCMCIA management for PC-style ports [*] IEEE 1284 transfer modes # 平行序列埠,呵呵!與印表機相關性挺高的!編譯成為模組即可! Plug and Play support ---> [*] Plug and Play support # 不囉唆,這個當然要選擇啊! Block devices ---> # 這裡面與儲存裝置有關,全部給他編成模組!當然,確定不需要的, # 就不要編譯咯! ATA/ATAPI/MFM/RLL support ---> # 底下的設定你可以保留預設值,來讓核心支援較為完整! # 不過,既然我們已經知道主機的硬體與主機板的晶片,當然可以作一些選擇囉! <*> ATA/ATAPI/MFM/RLL support <*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support --- Please see Documentation/ide.txt for help/info on IDE drives [ ] Support for SATA (deprecated; conflicts with libata SATA driver) # 這個不要選!因為 SATA 的新的驅動程式是包含在 SCSI 中的! [ ] Use old disk-only driver on primary interface <*> Include IDE/ATA-2 DISK support [*] Use multi-mode by default <M> PCMCIA IDE support <*> Include IDE/ATAPI CDROM support <*> Include IDE/ATAPI FLOPPY support # 上面這兩個就必選!讓核心主動支援 CDROM 與軟碟! <M> SCSI emulation support [ ] IDE Taskfile Access --- IDE chipset support/bugfixes <*> generic/default IDE chipset support [*] CMD640 chipset bugfix/support [*] CMD640 enhanced support [*] PNP EIDE support # 上面這幾個也可以挑選起來,尤其會比較適合 Pentium 的主機! # 底下這幾個則主要與主機板的晶片組有關啊! [*] PCI IDE chipset support [*] Sharing PCI IDE interrupts support [ ] Boot off-board chipsets first support <*> Generic PCI IDE Chipset Support <*> RZ1000 chipset bugfix/support [*] Generic PCI bus-master DMA support # 底下這幾個請特別挑選一番! [ ] Force enable legacy 2.0.X HOSTS to use DMA [*] Use PCI DMA by default when available [ ] Enable DMA only for disks < > AEC62XX chipset support < > ALI M15x3 chipset support [ ] ALI M15x3 WDC support (DANGEROUS) < > AMD and nVidia IDE support < > ATI IXP chipset IDE support < > CMD64{3|6|8|9} chipset support < > Compaq Triflex IDE support < > CY82C693 chipset support < > Cyrix/National Semiconductor CS5530 MediaGX chipset support < > HPT34X chipset support < > HPT36X/37X chipset support < > National SCx200 chipset support <*> Intel PIIXn chipsets support <*> IT821X IDE support < > NS87415 chipset support <*> PROMISE PDC202{46|62|65|67} support [ ] Special UDMA Feature <*> PROMISE PDC202{68|69|70|71|75|76|77} support [*] Enable controller even if disabled by BIOS < > ServerWorks OSB4/CSB5/CSB6 chipsets support < > Silicon Image chipset support < > SiS5513 chipset support < > SLC90E66 chipset support < > Tekram TRM290 chipset support < > VIA82CXXX chipset support [ ] Other IDE chipset support [ ] IGNORE word93 Validation BITS # 因為我的是 Intel 晶片組的主機板,所以全部無關的我都沒有選擇。 # 不過,為了您自己好~其實,上面絕大部分的資料都給他做成模組比較妥當! SCSI device support ---> # 不論你有沒有 SCSI 裝置,你都必須要啟動 SCSI 的支援!理由有二: # 1. 因為 USB 裝置用的就是模擬 SCSI 啊! # 2. 因為 SATA 的設定項目就在這裡面! < > RAID Transport Class <M> SCSI device support [*] legacy /proc/scsi/ support --- SCSI support type (disk, tape, CD-ROM) <M> SCSI disk support <M> SCSI tape support <M> SCSI OnStream SC-x0 tape support <M> SCSI CDROM support [*] Enable vendor-specific extensions (for SCSI CDROM) <M> SCSI generic support <M> SCSI media changer support --- Some SCSI devices (e.g. CD jukebox) support multiple LUNs [*] Probe all LUNs on each SCSI device [*] Verbose SCSI error reporting (kernel size +=12K) [*] SCSI logging facility SCSI Transport Attributes ---> SCSI low-level drivers ---> # 在這個項目當中,都保留預設值即可不過, # 如果你有 SATA 的硬碟,請確認底下已經編譯起來了! <M> Serial ATA (SATA) support <M> AHCI SATA support <M> ServerWorks Frodo / Apple K2 SATA support <M> Intel PIIX/ICH SATA support <M> Promise SATA TX2/TX4 support <M> Pacific Digital SATA QStor support <M> VIA SATA support <M> VITESSE VSC-7174 SATA support PCMCIA SCSI adapter support ---> Old CD-ROM drivers (not SCSI, not IDE) ---> Multi-device support (RAID and LVM) ---> # 還記得不久之前才談過的 LVM 吧?這裡當然要選擇囉! [*] Multiple devices driver support (RAID and LVM) <*> RAID support <M> Linear (append) mode <M> RAID-0 (striping) mode <M> RAID-1 (mirroring) mode <M> RAID-4/RAID-5 mode <M> RAID-6 mode <M> Multipath I/O support <M> Faulty test module for MD <M> Device mapper support Fusion device support ---> IEEE 1394 (FireWire) support ---> I2O device support ---> # 上面也編譯成為模組即可!那個 IEEE 1394 就是我們常聽到的『火線』。 Network device support ---> # 您總是有網路卡吧?所以囉~這裡得要選擇一個網路卡裝置啊! [*] Network device support <M> Dummy net driver support <M> Bonding driver support <M> EQL (serial line load balancing) support <M> Universal TUN/TAP device driver support <M> General Instruments Surfboard 1000 ARCnet devices ---> PHY device support ---> Ethernet (10 or 100Mbit) ---> # 這裡面含有的就是 10/100 的網路卡!大部分都可以編成模組。 <M> RealTek RTL-8129/8130/8139 PCI Fast Ethernet Adapter support <M> VIA Rhine support # 上面這兩個就是有名的螃蟹卡與 D-Link 530 所用的驅動程式。 Ethernet (1000 Mbit) ---> # 這裡面含有的就是 10/100/1000 的網路卡!大部分都可以編成模組。 Ethernet (10000 Mbit) ---> Token Ring devices ---> Wireless LAN (non-hamradio) ---> PCMCIA network device support ---> Wan interfaces ---> [*] FDDI driver support < > Digital DEFEA and DEFPA adapter support <M> SysKonnect FDDI PCI support <M> PLIP (parallel port) support <*> PPP (point-to-point protocol) support [*] PPP filtering <M> PPP support for async serial ports <M> PPP support for sync tty ports <M> PPP Deflate compression # 如果您有 ADSL 撥接的話,呵呵!PPP 的裝置也要選擇上喔! < > PPP BSD-Compress compression <M> SLIP (serial line) support [*] CSLIP compressed headers [*] Keepalive and linefill [ ] Six bit SLIP encapsulation [*] Fibre Channel driver support ISDN subsystem ---> Telephony Support ---> # 上面這兩個我都沒有,所以並沒有選擇! Input device support ---> # 這裡面含有滑鼠、鍵盤、搖桿等等的輸入裝置,也是需要挑選的! --- Generic input layer (needed for keyboard, mouse, ...) --- Userland interfaces --- Mouse interface # 底下這三個與滑鼠有關啦!也可以選擇的! [ ] Provide legacy /dev/psaux device (1024) Horizontal screen resolution (768) Vertical screen resolution <M> Joystick interface < > Touchscreen interface <*> Event interface < > Event debugging --- Input Device Drivers --- Keyboards ---> [*] Mouse ---> [ ] Joysticks ---> [ ] Touchscreens ---> # 我沒有搖桿也沒有觸控式面版,所以上面兩個不選! [*] Miscellaneous devices ---> Hardware I/O ports ---> Character devices ---> # 裡面的資料也很多,也要注意 AGP 顯示卡的晶片組啊! # 而因為鳥哥的環境是 Intel 的晶片,所以自然將那個編進去, # 其他的成為模組即可!其他的除非確定不需要,否則保留預設值即可! <*> /dev/agpgart (AGP Support) <M> ALI chipset support <M> ATI chipset support <M> AMD Irongate, 761, and 762 chipset support <M> AMD Opteron/Athlon64 on-CPU GART support <*> Intel 440LX/BX/GX, I8xx and E7x05 chipset support <M> NVIDIA nForce/nForce2 chipset support <M> SiS chipset support <M> Serverworks LE/HE chipset support <M> VIA chipset support <M> Transmeta Efficeon support <M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) <M> 3dfx Banshee/Voodoo3+ <M> ATI Rage 128 <M> ATI Radeon <M> Intel I810 <M> Intel 830M, 845G, 852GM, 855GM, 865G <M> i830 driver <M> i915 driver <M> Matrox g200/g400 <M> SiS video cards <M> Via unichrome video cards < > Savage video cards I2C support ---> # 還記得我們去偵測主機板的溫度與壓力吧?呵呵!那就是透過核心的 # 這個 I2C 的模組功能了!預設情況下,這個項目都有支援,所以, # 保留預設值即可。 Dallas's 1-wire bus ---> # 這個與某些熱感應裝置有關,可以不編譯,也可以保留編成模組即可! Hardware Monitoring support ---> # 這個也與 I2C 有點關係,他主要可以接受硬體的偵測, # 所以在這個項目內您會看到 LM_XX 之類的模組!啊!就保留模組即可! Misc devices ---> Multimedia Capabilities Port drivers ---> Multimedia devices ---> # 類似影像擷取卡、FM 廣播音效卡等等,可在這裡設定! # 如果您的主機是用作伺服器,那麼這裡或許可以不要選擇。 # 當然啦,這個項目幾乎都是模組,保留預設值也不錯! Graphics support ---> # 嘿嘿!重點之一,顯示卡的晶片組~剛剛前面提到的都是主機板的 # 對顯示卡的匯流排支援 (PCI-E 與 AGP) ,這裡則是針對顯示卡晶片! # 鳥哥的顯示卡是 NVidia 的,所以將他選擇即可!其他的可以編成模組! <*> Support for frame buffer devices --- Enable Video Mode Handling Helpers --- Enable Tile Blitting Support <M> Cirrus Logic support < > Permedia2 support < > CyberPro 2000/2010/5000 support < > Arc Monochrome LCD board support [ ] Chips 69000 display support [ ] IMS Twin Turbo display support <M> VGA 16-color graphics support [*] VESA VGA graphics support < > Hercules mono graphics support <M> nVidia Framebuffer Support <M> nVidia Riva support [ ] Enable DDC Support [ ] Lots of debug output from Riva(nVidia) driver <M> Matrox acceleration [*] Millennium I/II support [*] Mystique support [*] G100/G200/G400/G450/G550 support <M> Matrox I2C support <M> G400 second head support [*] Multihead support < > ATI Radeon display support (Old driver) <M> ATI Radeon display support [*] DDC/I2C for ATI Radeon support [ ] Lots of debug output from Radeon driver <M> ATI Rage128 display support <M> ATI Mach64 display support [*] Mach64 CT/VT/GT/LT (incl. 3D RAGE) support [*] Mach64 generic LCD support (EXPERIMENTAL) [ ] Rage XL No-BIOS Init support [*] Mach64 GX support <M> SiS/XGI display support <M> NeoMagic display support <M> IMG Kyro support <M> 3Dfx Banshee/Voodoo3 display support <M> 3Dfx Voodoo Graphics (sst1) support < > Cyberblade/i1 support <M> Trident support < > Epson S1D13XXX framebuffer support < > Virtual Frame Buffer support (ONLY FOR TESTING!) Console display driver support ---> Logo configuration ---> [*] Backlight & LCD device support ---> Sound ---> # 這個是音效卡啊!鳥哥的機器上面沒有音效卡,所以直接不選。 # 您可以進入後選擇您的音效卡啊! USB support ---> # 這個則是 USB 的驅動模組!還記得我們在硬體維護的地方講過的 # USB 的模組名稱吧?呵呵!在裡面找找吧! # 其實這裡面鳥哥僅保留預設值,然後再加上選擇 USB 2.0 的支援, # 其他的 usb 裝置全部給他勾成模組!這樣就 OK 啦! MMC/SD Card support ---> # 這是多媒體卡 (multi-media card) ,鳥哥是用不到的,所以不選! InfiniBand support ---> SN Devices ---> # 這兩個應該也用不到,所以保留預設值即可!在這裡面真的很重要,因為很多資料都與你的硬體有關。核心推出時的預設值是比較符合一般狀態的, 所以很多資料其實保留預設值就可以編的很不錯了!不過,也因為較符合一般狀態, 所以核心額外的編譯進來很多跟你的主機系統不符合的資料,例如網路卡裝置~ 你可以針對你的主機板與相關硬體來進行編譯。不過,還是要記得有『未來擴充性』的考量! 之前鳥哥不是談過嗎,我的網路卡由螃蟹卡換成 3Com 時,核心捉不到~ 因為......我並沒有將 3Com 的網路卡編譯成為模組啊! @_@
<*> Second extended fs support [*] Ext2 extended attributes [*] Ext2 POSIX Access Control Lists [*] Ext2 Security Labels [ ] Ext2 execute in place support <*> Ext3 journalling file system support [*] Ext3 extended attributes [*] Ext3 POSIX Access Control Lists [*] Ext3 Security Labels [ ] JBD (ext3) debugging support # EXT2/EXT3 是必選的吧!將他選擇起來先! <M> Reiserfs support [ ] Enable reiserfs debug mode [*] Stats in /proc/fs/reiserfs [*] ReiserFS extended attributes [*] ReiserFS POSIX Access Control Lists [*] ReiserFS Security Labels <M> JFS filesystem support [*] JFS POSIX Access Control Lists [*] JFS Security Labels [ ] JFS debugging [ ] JFS statistics <M> XFS filesystem support [*] XFS Quota support [*] XFS Security Label support [*] XFS POSIX ACL support <M> Minix fs support # 上面這幾個 filesystem 不知道什麼時候會用到,當然是編成模組比較好! <M> ROM file system support [*] Inotify file change notification support [*] Quota support < > Old quota format support <*> Quota format v2 support # Quota 夠重要吧!務必要將他圈選起來才行喔! <M> Kernel automounter support <M> Kernel automounter version 4 support (also supports v3) < > Filesystem in Userspace support CD-ROM/DVD Filesystems ---> <*> ISO 9660 CDROM file system support [*] Microsoft Joliet CDROM extensions [*] Transparent decompression extension <M> UDF file system support # 注意!那個 ISO 9660 的 filesystem 務必要挑選! DOS/FAT/NT Filesystems ---> <M> MSDOS fs support <M> VFAT (Windows-95) fs support (950) Default codepage for FAT (big5) Default iocharset for FAT <M> NTFS file system support [ ] NTFS debugging support (NEW) [*] NTFS write support # 哇!不但可以選擇預設是中文語系,而且,還可以支援 NTFS # 可讀寫哩!這一版真強!不過,NTFS 能否真的可以寫入,不確定~ Pseudo filesystems ---> [*] /proc file system support [*] /proc/kcore support [*] Virtual memory file system support (former shm fs) [*] HugeTLB file system support < > Relayfs file system support # 這幾個是一定要的啦! Miscellaneous filesystems ---> # 這裡面的資料可以選擇預設即可! Network File Systems ---> <M> NFS file system support [*] Provide NFSv3 client support [*] Provide client support for the NFSv3 ACL protocol extension <M> NFS server support [*] Provide NFSv3 server support [*] Provide server support for the NFSv3 ACL protocol extension [*] Provide NFS server over TCP support <M> SMB file system support (to mount Windows shares etc.) [*] Use a default NLS (cp950) Default Remote NLS Option # 這裡可以加上這個預設參數,支援中文語系啊! <M> CIFS support (advanced network filesystem for Samba, Window and othe [ ] CIFS statistics [*] CIFS extended attributes (EXPERIMENTAL) [*] CIFS POSIX Extensions (EXPERIMENTAL) [ ] CIFS Experimental Features (EXPERIMENTAL) <M> NCP file system support (to mount NetWare volumes) [*] Packet signatures [*] Proprietary file locking [*] Clear remove/delete inhibit when needed [*] Use NFS namespace if available [*] Use LONG (OS/2) namespace if available [*] Lowercase DOS filenames [*] Use Native Language Support [*] Enable symbolic links and execute flags <M> Coda file system support (advanced network fs) [ ] Use 96-bit Coda file identifiers # 其實大部分仍然是模組的項目啦! Partition Types ---> # 裡面含有 Minix, sun 等等的磁碟分割表的格式支援, # 您如果確定不需要,可以將他拿掉就是了! Native Language Support ---> (utf8) Default NLS Option <*> Traditional Chinese charset (Big5) # 其他都保留預設值即可,這兩個項目稍微確認一下!這部份也是有夠麻煩~因為涉及核心是否能夠支援某些檔案系統,以及某些作業系統支援的 partition table 的支援項目。在進行選擇時,也務必要特別的小心在意喔! 尤其是我們常常用到的網路作業系統 (NFS/Samba 等等),以及基礎篇談到的 Quota 等, 您都得要勾選啊!否則是無法被支援的。比較有趣的是 NTFS 在這一版的核心裡面竟然有支援可寫入的項目, 著實讓鳥哥嚇了一跳了!^_^
--- Cryptographic API --- HMAC support <M> Null algorithms <M> MD4 digest algorithm <*> MD5 digest algorithm <*> SHA1 digest algorithm <M> SHA256 digest algorithm <M> SHA384 and SHA512 digest algorithms <M> Whirlpool digest algorithms <M> Tiger digest algorithms <M> DES and Triple DES EDE cipher algorithms <M> Blowfish cipher algorithm <M> Twofish cipher algorithm <M> Serpent cipher algorithm <M> AES cipher algorithms (i586) <M> CAST5 (CAST-128) cipher algorithm <M> CAST6 (CAST-256) cipher algorithm <M> TEA, XTEA and XETA cipher algorithms <M> ARC4 cipher algorithm <M> Khazad cipher algorithm <M> Anubis cipher algorithm <M> Deflate compression algorithm <M> Michael MIC keyed digest algorithm <M> CRC32c CRC algorithm
Load an Alternate Configuration File Save Configuration to an Alternate File這兩個項目分別是儲存剛剛做好的所有項目的設定資料,另一個則是將來自其他人作的選擇給他讀入! 事實上,剛剛我們所做的設定只要在離開時選擇 SAVE ,那麼這些項目 通通會記錄到目前這個目錄下的 .config 檔案內。 而我們也可以使用上面提到的 Save Configuration 這個項目來將剛剛做完的設定儲存成另外的檔案, 做成這個檔案的好處是,你可以在下次在其他版本的核心作選擇時,直接以 Load 來將這個檔案的設定項目讀入,這樣可以減少您還要重新挑選一遍的困境啊!
[root@linux linux-2.6.14.2]# make clean # 將以前曾經進行過的 *.o 檔案刪除掉,這樣比較不會產生新舊版本的誤差! [root@linux linux-2.6.14.2]# make bzImage # 製作出核心檔案!這個重要!過程很長啊!而且那個是大寫的 I 喔! [root@linux linux-2.6.14.2]# make modules # 製作出模組相關的檔案!只要這三個動作,您的核心與模組就通通製作出來了!不過,製作出來的資料還是被放置在 /usr/src/linux-2.6.14.2 這個目錄下~並沒有被放到系統的相關路徑中喔! 在上面的過程當中,如果有發生任何錯誤的話,那麼很可能是核心項目的挑選選擇的不好, 可能您需要重新以 make menuconfig 再次的檢查一下您的相關設定喔! 如果還是無法成功的話,那麼或許將原本的核心資料內的 .config 檔案,複製到您的核心原始檔目錄下, 然後據以修改,應該就可以順利的編譯出您的核心了。注意到,下達了 make bzImage 後, 最後的結果應該會像這樣:
Root device is (3, 2) Boot sector 512 bytes. Setup is 7016 bytes. System is 1721 kB Kernel: arch/i386/boot/bzImage is ready (#1) [root@linux linux-2.6.14.2]# ll arch/i386/boot/bzImage -rw-r--r-- 1 root root 1770185 Dec 2 14:32 arch/i386/boot/bzImage如此一來,您就可以發現您的核心已經編譯好而且放置在 /usr/src/linux-2.6.14.2/arch/i386/boot/bzImage 裡面囉~那個就是我們的核心檔案!最重要就是他啦!我們等一下就會安裝到這個檔案哩! 然後就是編譯模組的部分囉~ make modules 進行完畢後,就等著安裝啦! ^_^
[root@linux ~]# cd /lib/modules [root@linux modules]# mv 2.6.14.2 2.6.14.2.old這樣才行呢!不然安裝之後還是會有問題的呦!請特別留意呢!
[root@linux linux-2.6.14.2]# make modules_install
整個模組就安裝到 /lib/modules 裡面去喔~一般來說,目錄名稱會是
/lib/modules/2.6.14-2 ,但是如果您有填寫核心附版本的話,
就會出現類似 2.6.14-1.1644_FC4 之類的目錄名稱囉! ^_^
接下來,就是準備要進行核心的安裝了!哈哈!又跟 grub 有關囉~[root@linux ~]# mkinitrd /boot/initrd_2.6.14.2 2.6.14.2 # 此時會產生新檔案 /boot/initrd_2.6.14.2 喔! # 且這個動作需要在安裝好模組之後進行才會生效!關於多重開機的設定詳情請參考 開機關機流程與 Loader 那一章,我這裡不詳細的說明了。我只假設您與我一樣使用 grub 開機管理程式, 那麼只要這樣做,就能夠設定好您的新核心了!
1. 移動新核心到 /boot 裡面去: [root@linux ~]# cp /usr/src/linux-2.6.14.2/arch/i386/boot/bzImage \ > /boot/vmlinuz-2.6.14-2 # 就一般的習慣而言,鳥哥建議您將核心檔名設定成以 vmlinuz 為首的名稱, # 比較容易管理啦! [root@linux ~]# cp /usr/src/linux-2.6.14.2/System.map \ > /boot/System.map-2.6.14-2 2. 修改 grub 設定檔 [root@linux ~]# vi /boot/grub/menu.lst default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title VBird linux 2.6.14-2 root (hd0,0) kernel /vmlinuz-2.6.14-2 ro root=/dev/hda2 rhgb quiet vga=788 initrd /initrd_2.6.14.2 title Fedora Core (2.6.11-1.1369_FC4) root (hd0,0) kernel /vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda2 rhgb quiet vga=788 initrd /initrd-2.6.11-1.1369_FC4.img # 這個是鳥哥我的個人環境,您請依照您的主機系統來編寫這個檔案!嘿嘿!這樣才算成功的完成了整個核心的編譯與安裝~接下來呢? 當然就是 reboot 去測試一下新核心是否可以順利的啟動您的系統啦! 加油的啦! ^_^
[root@linux ~]# ls -l /lib/modules/2.6.14.2/
lrwxrwxrwx 1 root root 23 Dec 2 15:45 build -> /usr/src/linux-2.6.14.2
drwxr-xr-x 9 root root 4096 Dec 2 15:46 kernel
-rw-r--r-- 1 root root 216725 Dec 2 15:46 modules.alias
-rw-r--r-- 1 root root 69 Dec 2 15:46 modules.ccwmap
-rw-r--r-- 1 root root 176206 Dec 2 15:46 modules.dep
-rw-r--r-- 1 root root 739 Dec 2 15:46 modules.ieee1394map
-rw-r--r-- 1 root root 206 Dec 2 15:46 modules.inputmap
-rw-r--r-- 1 root root 16383 Dec 2 15:46 modules.isapnpmap
-rw-r--r-- 1 root root 175001 Dec 2 15:46 modules.pcimap
-rw-r--r-- 1 root root 83299 Dec 2 15:46 modules.symbols
-rw-r--r-- 1 root root 231507 Dec 2 15:46 modules.usbmap
lrwxrwxrwx 1 root root 23 Dec 2 15:45 source -> /usr/src/linux-2.6.14.2
其中比較有趣的除了那兩個連結檔之外,還有那個 modules.dep 檔案也挺有趣的,
那個檔案是記錄了核心模組的相依屬性的地方,依據該檔案,我們可以簡單的使用
modprobe 這個指令來載入模組呢!至於核心原始碼提供的標頭檔,在上面的案例當中,
則是放置到 /usr/src/linux-2.6.14.2/include/ 目錄中,當然就是藉由 build/source
這兩個連結檔案來取得目錄所在的啦!^_^1. 將檔案解壓縮: [root@linux ~]# cd /usr/local/src [root@linux src]# tar -zxvf /root/e100-3.4.14.tar.gz [root@linux src]# cd e100-3.4.14 2. 開始進行編譯與安裝: [root@linux e100-3.4.14]# vi README <==注意查一下該檔案內容 [root@linux e100-3.4.14]# cd src [root@linux src]# make # 此時您會看到出現如下這一行: # make[1]: Entering directory `/usr/src/kernels/2.6.13-1.1532_FC4-i686' # 這代表這個驅動程式在編譯時,會去讀取的核心原始碼 include file # 的目錄所在!有興趣的朋友,務必查閱一下 Makefile 啦! [root@linux src]# ls -l -rw-r--r-- 1 root root 77908 Jul 2 08:24 e100.c -rw-r--r-- 1 root root 351351 Dec 5 00:48 e100.ko -rw-r--r-- 1 root root 4775 Dec 5 00:48 e100.mod.c -rw-r--r-- 1 root root 39684 Dec 5 00:48 e100.mod.o -rw-r--r-- 1 root root 312564 Dec 5 00:48 e100.o -rw-r--r-- 1 root root 21092 Jul 2 08:24 ethtool.c -rw-r--r-- 1 root root 43258 Jul 2 08:24 kcompat.h -rw-r--r-- 1 root root 9610 Jul 2 08:24 Makefile 3. 開始將該模組移動到核心目錄,並且更新模組相依屬性! [root@linux src]# cp e100.ko \ > /lib/modules/`uname -r`/kernel/drivers/net [root@linux src]# cd /lib/modules/`uname -r` [root@linux 2.6.13-1.1532_FC4]# depmod -a有趣吧!透過這樣的動作,我們就可以輕易的將模組編譯起來,並且還可以將他直接放置到核心模組目錄中, 同時以 depmod 將模組建立相關性,未來就能夠利用 modprobe 來直接取用啦!^_^ 但是需要提醒您的是,當自行編譯模組時, 若您的核心有更新 (例如利用自動更新機制進行線上更新) 時,則您必須要重新編譯該模組一次, 重複上面的步驟!才行!因為這個模組僅針對目前的核心來編譯的啊!對吧!