linux內核配置
㈠ 如何配置linux內核具有nfs的功能
1、使用的技術
NFS
2、測試環境
NFS伺服器:192.168.255.18
NFS客戶端:192.168.255.11
操作系統:REDHAT4
3、NFS伺服器配置
(1)配置 /etc/hosts.deny
禁止任何客戶端能和你的NFS伺服器進行NFS連接:
### NFS DAEMONS
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
(2)配置/etc/hosts.allow
允許那些你想要的客戶端和你的NFS伺服器建立連接。下列步驟將允許任何IP地址
以192.168.2開頭的主機(連接到NFS伺服器上),也可以指定特定的IP地址。
### NFS DAEMONS
portmap: 192.168.255.
lockd: 192.168.255.
rquotad: 192.168.255.
mountd: 192.168.255.
statd: 192.168.255.
(3)重啟portmap
運行 $ /etc/init.d/portmap restart 重啟portmap daemon。
(4)配置/etc/exports
NFS掛載目錄及許可權由/etc/exports文件定義。比如要將我的/tmp目錄讓
192.168.255.*的IP共享, 則在該文件末尾添加下列語句:
/tmp 192.168.255.*(rw,sync,no_root_squash)
192.168.255.* 網段內的NFS客戶端能夠共享NFS伺服器/tmp目錄內容,且有讀,寫
許可權,並且該用戶進入/home/zp/share目錄後的身份為root,最好加上sync,否則
$ sudo exportfs -r 時會給出警告, sync是NFS的默認選項。
(5)重啟NFS服務
運行 $ /etc/init.d/nfs-kernel-server restart 重啟nfs服務)
(6)NFS伺服器查看共享是否成功
$ Showmount –e 192.168.255.18
/tmp 192.168.255.*
(6)NFS客戶端啟動NFS服務
service nfs start
(7)NFS客戶端查看伺服器共享目錄
Showmount –e 192.168.255.18
(8)掛載NFS伺服器共享目錄
mount –t nfs -o tcp192.168.255.18:/tmp /tmp
4、錯誤排查
當/etc/exports設置的許可權,不符合client端的來源時,則會出現以下錯誤信息:
mount: hostname:/dir failed, reason given by server: Permission denied
㈡ Linux內核dvfs之cpufreq配置
本文基於 RockPi 4A 單板 Linux4.4 內核介紹 OPP Table 。
內核中將頻率、電壓的相關配置放在 DTSI 文件中,這些配置信息組成的節點被稱為 OPP Table(Operating Performance Points) 。
定義文件: arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi ,內容如下:
上面節點中的相關屬性含義如下:
1、 opp-shared :表示 opp-table1 是小核的各 CPU 共用。
2、 rockchip,temp-hysteresis :遲滯參數,防止頻繁進入高溫或低溫,單位:毫攝氏度。
3、 rockchip,low-temp :低溫閾值。小於該值時,進入低溫,大於『該值+遲滯參數』時,恢復常溫。
4、 rockchip,low-temp-min-volt :低溫下最低電壓,單位:微伏。
5、 nvmem-cells :從 eFUSE 中讀取相關信息值(小核漏電流)。
6、 rockchip,pvtm-voltage-sel :min-pvtm(單位KHz)、max-pvtm(單位KHz)和 voltage-selector (用於匹配 opp 節點中 opp-microvolt-L* 屬性的序列號)。例:pvtm值為:0 ~ 143500 使用 opp-microvolt-L0 ,143501 ~ 148500使用 opp-microvolt-L1
7、 rockchip,pvtm-freq :時鍾頻率(KHz),在獲取 pvtm 的頻率前,先設置 CPU 頻率。
8、 rockchip,pvtm-volt :電壓(微伏),在獲取 pvtm 的頻率前,先設置 CPU 電壓。
9、 rockchip,pvtm-ch : PVTM 通道,格式<通道號 sel的序號>
10、 rockchip,pvtm-sample-time : PVTM 采樣時間,單位:毫秒。
11、 rockchip,pvtm-number : PVTM 采樣個數。
12、 rockchip,pvtm-error :允許采樣數據之間的誤差。
13、 rockchip,pvtm-ref-temp :參考溫度。
14、 rockchip,pvtm-temp-prop : PVTM 隨溫度變化的比例系數,格式<小於參考溫度的比例系數 大於參考溫度的比例系數>。
15、 rockchip,thermal-zone :獲取溫度的 thermal-zone 。
16、 opp-microvolt-L* :電壓(微伏),格式<target min max>
17、 clock-latency-ns :完成變頻需要的時間,單位:納秒。
在 RK3399 中,除了配置上述小核的 opp table 外,還設置了大核( cluster1_opp )、 gpu(gpu_opp_table) 等的相關值。查看命令如下:
註:
CPU PVTM(Process Voltage Temperature Monitor) 是一個位於 CPU 附近,能反應出不同晶元之間性能差異的模塊,受工藝,電壓和溫度 的影響。
參考:
Documentation/devicetree/bindings/cpufreq/cpufreq-rockchip.txt
Documentation/devicetree/bindings/cpufreq/cpufreq-rockchip.txt
㈢ Linux內核根目錄中的配置文件.config中包含了許多宏定義,
一、Linux內核的配置系統由三個部分組成,分別是:
1、Makefile:分布在 Linux 內核源代碼根目錄及各層目錄中,定義 Linux 內核的編譯規則;
2、配置文件(config.in(2.4內核,2.6內核)):給用戶提供配置選擇的功能;
3、配置工具:包括配置命令解釋器(對配置腳本中使用的配置命令進行解釋)和配置用戶界面(提供基於字元界面、基於 Ncurses 圖形界面以及基於 Xwindows 圖形界面的用戶配置界面,各自對應於 Make config、Make menuconfig 和 make xconfig)。這些配置工具都是使用腳本語言,如 Tcl/TK、Perl 編寫的(也包含一些用 C 編寫的代碼)。本文並不是對配置系統本身進行分析,而是介紹如何使用配置系統。所以,除非是配置系統的維護者,一般的內核開發者無須了解它們的原理,只需要知道如何編寫 Makefile 和配置文件就可以。
二、Make menuconfig過程分析
1、scripts文件夾存放的是跟make menuconfig配置界面的圖形繪制相關的文件,我們作為使用者無需關心這個文件夾的內容
2、讀取arch/arch/$ARCH/Kconfig以及各子目錄下的Kcondig文件,生成配置條目。
$ARCH由linux內核根目錄下的makefile文件決定
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-
Kconfig文件中為配置信息的宏定義,與我們在make menuconfig圖形界面看到的信息一致。
例如:
config CPU_S3C2410_DMA
bool
depends on S3C2410_DMA && (CPU_S3C2410 || CPU_S3C2442)
default y if CPU_S3C2410 || CPU_S3C2442
help
DMA device selection for S3C2410 and compatible CPUs
因此,Kconfig文件很重要的作用就是:定義配置宏、相關依賴關系、幫助信息
3、讀取內核根目錄下.config文件,生成配置選項:[*]編譯進內核 [M]編譯為模塊 [ ]不編譯
arch/arm/configs/文件夾下存放了一些配置模板
我們可以通過cp /arch/arm/configs/xx_defconfig .config來使用這些配置模板
通過圖形界面變更配置選項會自動更新到.config文件中
make disclean 會刪除.config
4、編譯過程根據.config生成 Linux內核根目錄下的 include/config/auto.conf文件
CONFIG_EEPROM_93CX6=m
CONFIG_DM9000=y
根目錄Makefile以及子目錄的Makefile根據auto.conf生成編譯條件
obj-$(CONFIG_DM9000) += dm9000.o //obj-m += dm9000.o
5、編譯過程根據.config生成Linux內核根目錄下的 include/linux/autoconf.h文件
.config 或 auto.conf 中定義要編譯為 m 模塊的項,如:
CONFIG_DEBUG_NX_TEST=m
在 autoconf.h 中會被定義為:
#define CONFIG_DEBUG_NX_TEST_MODULE 1
.config或auto.conf 中定義為編譯為 y 的選項,如:
CONFIG_DM9000= y
在 autoconf.h 中會被定義為:
#define CONFIG_DM9000 1
autoconf.h中是.config或者auto.conf中配置信息的另一種體現形式,它是站在源碼的角度,供源碼使用的C語言宏定義。
6、總結
我們在使用make menuconfig時,首先會確定架構arch,然後讀取arch目錄的Kconfig中的配置宏定義,生成編譯條目,然後讀取Linux內核根目錄下的.config選項, 將.config中的配置信息顯示在圖形界面上[*] [M] or []。我們在圖形界面中更改配置選項會自動保存到.config文件中。編譯過程根據.config隨後生成auto.conf文件,它決定了makefile中各個文件的編譯類型,靜態編譯進內核、編譯成模塊、不編譯;同時生成autoconf.h,它以C語言宏定義的形式表達了 各個文件是否被編譯,源碼中會判斷某文件是否被編譯進行不同的處理。
三、將自定義文件添加進內核配置系統
1、修改文件目錄下Kconfig文件
添加:
config HELLO
tristate "just a test hello"
default y
---help---
This is a test
//tristate 或 bool 表示可選擇種類數量3[*][M][ ]、2
// "just a test hello"將作為標題顯示在配置的圖形界面
2、修改文件目錄下makefile文件
obj-$(CONFIG_HELLO) += hello_drv.o
3、make menuconfig 我們會在字元設備驅動的界面看到 ust a test hello 並且默認編譯進內核
4、make編譯內核發現
autoconfig.h 自動添加 #define CONFIG_HELLO 1
auto.conf 自動添加 CONFIG_HELLO=y
㈣ 如何修改 Linux 內核配置
由於Linux的內核參數信息都存在內存中,因此可以通過命令直接修改,並且修改後直接生效。但是,當系統重新啟動後,原來設置的參數值就會丟失,而系統每次啟動時都會自動去/etc/sysctl.conf文件中讀取內核參數,因此將內核的參數配置寫入這個文件中,是一個比較好的選擇。
首先打開/etc/sysctl.conf文件,查看如下兩行的設置值,這里是:
kernel.shmall
=
2097152
kernel.shmmax
=
4294967295
如果系統默認的配置比這里給出的值大,就不要修改原有配置。同時在/etc/sysctl.conf文件最後,添加以下內容:
fs.file-max
=
6553600
kernel.shmmni
=
4096
kernel.sem
=
250
32000
100
128
net.ipv4.ip_local_port_range
=
1024
65000
net.core.rmem_default
=
4194304
net.core.rmem_max
=
4194304
net.core.wmem_default
=
262144
net.core.wmem_max
=
262144
這里的「fs.file-max
=
6553600」其實是由「fs.file-max
=
512
*
PROCESSES」得到的,我們指定PROCESSES的值為12800,即為「fs.file-max
=512
*12800」。
sysctl.conf文件修改完畢後,接著執行「sysctl
-p」使設置生效。
[root@localhost
~]#
sysctl
-p
常用的內核參數的含義如下。
kernel.shmmax:表示單個共享內存段的最大值,以位元組為單位,此值一般為物理內存的一半,不過大一點也沒關系,這里設定的為4GB,即「4294967295/1024/1024/1024=4G」。
kernel.shmmni:表示單個共享內存段的最小值,一般為4kB,即4096bit.
kernel.shmall:表示可用共享內存的總量,單位是頁,在32位系統上一頁等於4kB,也就是4096位元組。
fs.file-max:表示文件句柄的最大數量。文件句柄表示在Linux系統中可以打開的文件數量。
ip_local_port_range:表示埠的范圍,為指定的內容。
kernel.sem:表示設置的信號量,這4個參數內容大小固定。
net.core.rmem_default:表示接收套接字緩沖區大小的預設值(以位元組為單位)。
net.core.rmem_max
:表示接收套接字緩沖區大小的最大值(以位元組為單位)
net.core.wmem_default:表示發送套接字緩沖區大小的預設值(以位元組為單位)。
net.core.wmem_max:表示發送套接字緩沖區大小的最大值(以位元組為單位)。
㈤ Linux中為什麼要配置內核,怎樣重新配置內核
新的內核修訂了舊內核的bug,並增加了許多新的特性。如果用戶想要使用這些新特性,或想根據自己的系統度身定製一個更高效,更穩定的內核,就需要重新編譯Linux內核。
為了正確的合理地設置內核編譯配置選項,從而只編譯系統需要的功能的代碼,一般主要有下面四個考慮:
(1)自己定製編譯的內核運行更快(具有更少的代碼)
(2)系統將擁有更多的內存(內核部分將不會被交換到虛擬內存中)
(3)不需要的功能編譯進入內核可能會增加被系統攻擊者利用的漏洞
(4)
將某種功能編譯為模塊方式會比編譯到內核內的方式速度要慢一些
㈥ 如何給linux安裝新內核
一、獲取內核源碼
二、解壓內核源碼
首先以root帳號登錄,然後進入/usr/src子目錄。如果用戶在安裝Linux時,安裝了內核的源代碼,則會發現一個linux-x.y.z的子目錄。該目錄下存放著內核x.y.z的源代碼。此外,還會發現一個指向該目錄的鏈接linux。刪除該連接,然後將新內核的源文件拷貝到/usr/src目錄中,並解壓:
#tarzxvfLinux-2.3.14.tar.gz
文件釋放成功後,在/usr/src目錄下會生成一個linux子目錄。其中包含了內核2.3.14的全部源代碼。將/usr/include/asm、/usr/inlude/linux、/usr/include/scsi鏈接到/usr/src/linux/include目錄下的對應目錄中。
#cd/usr/include
#rm-Rfasmlinux
#ln-s/usr/src/linux/include/asm-i386asm
#ln-s/usr/src/linux/include/linuxlinux
#ln-s/usr/src/linux/include/scsiscsi
刪除源代碼目錄中殘留的.o文件和其它從屬文件。
#cd/usr/src/linux
#makemrproper
三.增量補丁
有時不需要完全重新安裝,只需打增量補丁,類似升級,在內核源碼樹根目錄運行:
patch-p1<../patch-x.y.z
四.內核源碼樹目錄:
arch:包含和硬體體系結構相關的代碼,每種平台佔一個相應基啟的目錄。和32位PC相關的代碼存放在i386目錄下,其中比較重要的包括kernel(內核核心部分)、mm(內存管理)、math-emu(浮點單元模擬)、lib(硬體相關工具函數)、boot(引導程序)、pci(PCI匯流排)和power(CPU相關狀態)。
block:部分塊設備驅動程序。
crypto:常用加密和散列演算法(如AES、SHA等),還有一些壓縮和CRC校驗演算法。
Documentation:關於內核各部分的通用解釋和注釋。
drivers:設備驅動程序,每個不同的驅動占亂明用一個子目錄。
fs:各種支持的文件系統,如ext、fat、ntfs等。
include:頭文件。其中,和系統相關的頭文件被放置在linux子目錄下。
init:內核初始化代碼(注意不是系統引導代碼)。
ipc:進程間通信的代碼。
kernel:內核的最核心部分,包括進程調度、定時器等,和平台相關的一部分代碼放在arch/*/kernel目錄下。
lib:庫文件代碼。
mm:內存管理代碼,和平台相關的一部分代碼放在arch/*/mm目錄下。
net:網路相關代碼,實現了各種常見的網路協議。
scripts:用於配置內核文件的腳本文件。
security:主要是一個SELinux的模塊。
sound:常用音頻設備的驅動程序等。
usr:實現了一個cpio。
在i386體系下,系統引導將從arch/i386/kernel/head.s開始執行,並進而轉移到init/main.c中的main()函數初始化內核。
五.配置內核
#cd/usr/src/linux
內核配置方法有三種:
(1)命令行:makeconfig
(2)菜單模式的配置界面:makemenuconfig
(3)Xwindow:makexconfig
Linux的內核配置程序提供了一系列配置選項。對於每一個配置選項,用戶可以回答"y"、"m"或"n"。其中"y"表示將相應特性的支持或設備驅動程序編譯進內核;"m"表示將相應特性的支持或設備驅動程序編譯成可載入模塊,在需要時,可由系統或用戶自行加入到內核中去;"n"表示內核不提供相應特性或驅動程序的支持。由於內核的配置選項非常多,本文只介紹一些比較重要的選項。
1、Codematurityleveloptions(代碼成熟度選項)
Promptfordevelopmentand/orincompletecode/drivers(CONFIG_EXPERIMENTAL)[N/y/?]如果用戶想要使用還處於測試階段的代碼或驅搏陪如動,可以選擇「y」。如果想編譯出一個穩定的內核,則要選擇「n」。
2、Processortypeandfeatures(處理器類型和特色)
(1)、Processorfamily(386,486/Cx486,586/K5/5x86/6x86,Pentium/K6/TSC,PPro/6x86MX)[PPro/6x86MX]選擇處理器類型,預設為Ppro/6x86MX。
(2)、MaximumPhysicalMemory(1GB,2GB)[1GB]內核支持的最大內存數,預設為1G。
(3)、Mathemulation(CONFIG_MATH_EMULATION)[N/y/?]協處理器模擬,預設為不模擬。
(4)、MTRR(MemoryTypeRangeRegister)support(CONFIG_MTRR)[N/y/?]
選擇該選項,系統將生成/proc/mtrr文件對MTRR進行管理,供Xserver使用。
(5)、Symmetricmulti-processingsupport(CONFIG_SMP)[Y/n/?]選擇「y」,內核將支持對稱多處理器。
3、Loadablemolesupport(可載入模塊支持)
(1)、Enableloadablemolesupport(CONFIG_MODULES)[Y/n/?]選擇「y」,內核將支持載入模塊。
(2)、Kernelmoleloader(CONFIG_KMOD)[N/y/?]選擇「y」,內核將自動載入那些可載入模塊,否則需要用戶手工載入。
4、Generalsetup(一般設置)
(1)、Networkingsupport(CONFIG_NET)[Y/n/?]該選項設置是否在內核中提供網路支持。
(2)、PCIsupport(CONFIG_PCI)[Y/n/?]該選項設置是否在內核中提供PCI支持。
(3)、PCIaccessmode(BIOS,Direct,Any)[Any]該選項設置Linux探測PCI設備的方式。選擇「BIOS」,Linux將使用BIOS;選擇「Direct」,Linux將不通過BIOS;選擇「Any」,Linux將直接探測PCI設備,如果失敗,再使用BIOS。
(4)Parallelportsupport(CONFIG_PARPORT)[N/y/m/?]選擇「y」,內核將支持平行口。
5、PlugandPlayconfiguration(即插即用設備支持)
(1)、PlugandPlaysupport(CONFIG_PNP)[Y/m/n/?]選擇「y」,內核將自動配置即插即用設備。
(2)、ISAPlugandPlaysupport(CONFIG_ISAPNP)[Y/m/n/?]選擇「y」,內核將自動配置基於ISA匯流排的即插即用設備。
6、Blockdevices(塊設備)
(1)、NormalPCfloppydisksupport(CONFIG_BLK_DEV_FD)[Y/m/n/?]選擇「y」,內核將提供對軟盤的支持。
(2)、EnhancedIDE/MFM/RLLdisk/cdrom/tape/floppysupport(CONFIG_BLK_DEV_IDE)[Y/m/n/?]選擇「y」,內核將提供對增強IDE硬碟、CDROM和磁帶機的支持。
7、Networkingoptions(網路選項)
(1)、Packetsocket(CONFIG_PACKET)[Y/m/n/?]選擇「y」,一些應用程序將使用Packet協議直接同網路設備通訊,而不通過內核中的其它中介協議。
(2)、Networkfirewalls(CONFIG_FIREWALL)[N/y/?]選擇「y」,內核將支持防火牆。
(3)、TCP/IPnetworking(CONFIG_INET)[Y/n/?]選擇「y」,內核將支持TCP/IP協議。
(4)TheIPXprotocol(CONFIG_IPX)[N/y/m/?]選擇「y」,內核將支持IPX協議。
(5)、AppletalkDDP(CONFIG_ATALK)[N/y/m/?]選擇「y」,內核將支持AppletalkDDP協議。
8、SCSIsupport(SCSI支持)
如果用戶要使用SCSI設備,可配置相應選項。
9、Networkdevicesupport(網路設備支持)
Networkdevicesupport(CONFIG_NETDEVICES)[Y/n/?]選擇「y」,內核將提供對網路驅動程序的支持。
10、Ethernet(10or100Mbit)(10M或100M乙太網)
在該項設置中,系統提供了許多網卡驅動程序,用戶只要選擇自己的網卡驅動就可以了。此外,用戶還可以根據需要,在內核中加入對FDDI、PPP、SLIP和無線LAN(WirelessLAN)的支持。
11、Characterdevices(字元設備)
(1)、Virtualterminal(CONFIG_VT)[Y/n/?]選擇「y」,內核將支持虛擬終端。
(2)、(CONFIG_VT_CONSOLE)[Y/n/?]
選擇「y」,內核可將一個虛擬終端用作系統控制台。
(3)、Standard/generic(mb)serialsupport(CONFIG_SERIAL)[Y/m/n/?]
選擇「y」,內核將支持串列口。
(4)、Supportforconsoleonserialport(CONFIG_SERIAL_CONSOLE)[N/y/?]
選擇「y」,內核可將一個串列口用作系統控制台。
12、Mice(滑鼠)
PS/2mouse(aka"auxiliarydevice")support(CONFIG_PSMOUSE)[Y/n/?]如果用戶使用的是PS/2滑鼠,則該選項應該選擇「y」。
13、Filesystems(文件系統)
(1)、Quotasupport(CONFIG_QUOTA)[N/y/?]選擇「y」,內核將支持磁碟限額。
(2)、Kernelautomountersupport(CONFIG_AUTOFS_FS)[Y/m/n/?]選擇「y」,內核將提供對automounter的支持,使系統在啟動時自動mount遠程文件系統。
(3)、DOSFATfssupport(CONFIG_FAT_FS)[N/y/m/?]選擇「y」,內核將支持DOSFAT文件系統。
(4)、ISO9660CDROMfilesystemsupport(CONFIG_ISO9660_FS)[Y/m/n/?]
選擇「y」,內核將支持ISO9660CDROM文件系統。
(5)、NTFSfilesystemsupport(readonly)(CONFIG_NTFS_FS)[N/y/m/?]
選擇「y」,用戶就可以以只讀方式訪問NTFS文件系統。
(6)、/procfilesystemsupport(CONFIG_PROC_FS)[Y/n/?]/proc是存放Linux系統運行狀態的虛擬文件系統,該項必須選擇「y」。
(7)、Secondextendedfssupport(CONFIG_EXT2_FS)[Y/m/n/?]EXT2是Linux的標准文件系統,該項也必須選擇「y」。
14、NetworkFileSystems(網路文件系統)
(1)、NFSfilesystemsupport(CONFIG_NFS_FS)[Y/m/n/?]選擇「y」,內核將支持NFS文件系統。
(2)、SMBfilesystemsupport(tomountWfWsharesetc.)(CONFIG_SMB_FS)
選擇「y」,內核將支持SMB文件系統。
(3)、NCPfilesystemsupport(tomountNetWarevolumes)(CONFIG_NCP_FS)
選擇「y」,內核將支持NCP文件系統。
15、PartitionTypes(分區類型)
該選項支持一些不太常用的分區類型,用戶如果需要,在相應的選項上選擇「y」即可。
16、Consoledrivers(控制台驅動)
VGAtextconsole(CONFIG_VGA_CONSOLE)[Y/n/?]選擇「y」,用戶就可以在標準的VGA顯示方式下使用Linux了。
17、Sound(聲音)
Soundcardsupport(CONFIG_SOUND)[N/y/m/?]選擇「y」,內核就可提供對音效卡的支持。
18、Kernelhacking(內核監視)
MagicSysRqkey(CONFIG_MAGIC_SYSRQ)[N/y/?]選擇「y」,用戶就可以對系統進行部分控制。一般情況下選擇「n」。
六、編譯內核
(一)、建立編譯時所需的從屬文件
#cd/usr/src/linux
#makedep
(二)、清除內核編譯的目標文件
#makeclean
(三)、編譯內核
#makezImage
內核編譯成功後,會在/usr/src/linux/arch/i386/boot目錄中生成一個新內核的映像文件zImage。如果編譯的內核很大的話,系統會提示你使用makebzImage命令來編譯。這時,編譯程序就會生成一個名叫bzImage的內核映像文件。
(四)、編譯可載入模塊
如果用戶在配置內核時設置了可載入模塊,則需要對這些模塊進行編譯,以便將來使用insmod命令進行載入。
#makemoles
#makemodelus_install
編譯成功後,系統會在/lib/moles目錄下生成一個2.3.14子目錄,裡面存放著新內核的所有可載入模塊。
七、啟動新內核
(一)、將新內核和System.map文件拷貝到/boot目錄下
#cp/usr/src/linux/arch/i386/boot/bzImage/boot/vmlinuz-2.3.14
#cp/usr/src/linux/System.map/boot/System.map-2.3.14
#cd/boot
#rm-fSystem.map
#ln-sSystem.map-2.3.14System.map
(二)、配置/etc/lilo.conf文件。在該文件中加入下面幾行:
default=linux-2.3.14
image=/boot/vmlinuz-2.3.14
label=linux-2.3.14
root=/dev/hda1
read-only
(三)、使新配置生效
#/sbin/lilo
(四)、重新啟動系統
#/sbin/reboot
新內核如果不能正常啟動,用戶可以在LILO:提示符下啟動舊內核。然後查出故障原因,重新編譯新內核即可。
㈦ linux內核配置哪些是必須的
內核配置注意事項
如果打算自己編譯內核的話(內核源代碼可以到ftp://ftp.kernel.org/pub/kernel/ 下載,國內下載可以到ftp://ftp.cn.kernel.org/pub/kernel/ 這樣下載速度更快),在編譯之前一般都要先用make menuconfig或make xconfig配置內核。我的系統中沒有xconfig,所以只能用menuconfig。在我的Compaq Presario V3414TX laptop上編譯2.6.23.x內核時,以下選項是必須要注意的:
1、Networking -->
Wireless LAN -->
[M]Generic IEEE 802.11 Networking Stack (mac80211)
這是Linux當前使用的網路棧模塊。如果想要使用無線網卡(我的是Intel PRO/3945 ABG),就要將此選項編為模塊(或者編入內核也可以,那樣啟動時就會自動載入mac80211模塊)。否則到時候就要自己去intellinuxwireless.org下載該模塊進行安裝。
2、Device Drivers -->
Network Drivers -->
Wireless LAN-->
[M]Intel PRO/Wireless 3945ABG Network Connection
Intel PRO/Wireless 3945ABG Network Connection這一項可以換成你的任何無線網卡。同樣,如果你想使用無線網卡的話,這一項也是要編為模塊的。但是我最後編譯的2.6.23.14內核中沒有這一項,因此就必須到intellinuxwireless.org下載3495ABG的驅動了。
3、File System -->
DOS/FAT/NT Filesystems -->
<*> VFAT (Windows-95) fs support
(437) Default codepage for FAT (NEW)
(utf8) Default iocharset for FAT (NEW)
將 VFAT (Windows-95) fs support 選為y是為了讓內核能支持FAT格式硬碟的掛載。這里codepage要用437;在網上很多文章都說要用936,這樣才能讓FAT硬碟的文件名顯示支持中文,但事實上我這么做之後,在掛載FAT分區時卻被新內核提示無法掛載,系統日誌顯示找不到codepage 936——可是我已經將codepage 936編進內核了啊(下文會說明),因此在這一點上我相當困惑。後來發現FAT分區的中文文件名能否正確顯示是取決於 Default iocharset for FAT 這一項,其字元編碼要使用utf8才行。原因上,也許是因為Windows的FAT分區默認的字元編碼是ascii或gb2312,而Linux默認的是utf8編碼,認不得gb2312……這個地方我也不太明白。
4、File System -->
Native Language Support -->
[M]Simplified Chinese charset (CP936, GB2312)
想要中文支持的話,當然要選上這一項(事實上Native Language Support 這一欄我就沒動,默認是全部選上的,其中ASCII一項默認被編進內核)。
5、Kernel hacking -->
[ ]Use 4Kb for kernel stacks instead of 8Kb
如果想要使用ndiswrapper作為無線網卡驅動的話,這一項就要選為n。因為據說Windows和Linux的棧結構是不一樣的。
㈧ 如何配置linux內核支持sata
(1)首先,用內核的 allnoconfig 配置目標,得到一個最最基本的內核配置。即,執行下面的命令:
make allnoconfig
內核的 allnoconfig 配置目標會把所有的內核選項都設置為no,也就是把它們既不編譯進內核,也不編譯成模塊。
有了這個最基本的配置,我們再添加必須的配置項:再執行
make menuconfig
命令,按下面的步驟添加其他的配置——
(2)把 Executable file formats 下的ELF 和 emulations for 32bit ELF 選項編譯進內核。
(3)在 Processor type and features 下面,選擇合適的CPU類型。
(4)選擇PCI/PCI-Express支持,位於Bus options (PCI, PCMCIA, EISA, MCA, ISA) 配置目錄下。
(5)加入對根文件系統所在磁碟控制器的驅動:
Device Driver
|---->SCSI device support
|---->SCSI disk support
|----->SCSI low-level drivers
|---->Serial ATA (SATA) support
|---->intel PIIX/ICH SATA support
(6)加入Ext2文件系統的支持:在 File systems 配置目錄下,選擇 Second extended fs support。如果根文件系統是Ext3,則選擇 Ext3 journalling file system support。
(7)為了是 Udev 正常工作,需要內核支持 Unix domain sockets。此配置選項位於 Networking 配置目錄中的 Networking support ---> Networking options 下。
(8)使內核支持 /proc 虛擬文件系統和 tmpfs 文件系統:
File systems ---> Pseudo filesystems ---> /proc file system support / Virtual memory file system support (former shm fs)
(9)支持 swap 分區:
General setup ---> Support for paging of anonymous memory (swap)
(10)支持 RTC 設備:
Device Drivers ---> Character devices ---> Enhanced Real Time Clock Support
(11)為了充分發揮我的雙核CPU的能力,我又加入了對SMP的支持:
Processor type and features ---> Symmetric multi-processing support。