導航:首頁 > 操作系統 > 如何配置linux內核

如何配置linux內核

發布時間:2022-11-19 15:50:10

linux中為什麼要配置內核,怎樣重新配置內核

編譯前當然要配置一下內核啊,make
menuconfig
,生成默認配置文件
.config
,這個文件是設置
cpu
體系,及很多驅動選項的,你沒配置這個,怎麼可能編譯那
前面那個說
linux
和微軟競爭是扯淡的那位,我只能說你根本不懂內核編譯,無知
新下載的內核都是沒有默認
.config
需要你找到一個默認的config
文件,比如
arch/arm/configs/
下是
arm
cpu
很多的默認配置,當然你也可以把你以前的
config
文件拷貝到新內核目錄下。
.config
是配置編譯內核的最初步驟,你要編譯驅動程序,就必須要了解這個,多上網查下資料
然後重新編譯

⑵ 如何配置linux 內核最小系統

下載內核下載熱點內核標准配置文件編譯內核makemenuconfig選中,然後選擇剛下載的。config另外,要特別選中:1)、通過makemenuconfig選中以下對應的選項Generalsetup–>[*])、修改。config文件修改。config文件中CONFIG_SYSFS_DEPRECATED_V2,將原本被注釋掉的CONFIG_SYSFS_DEPRECATED_V2改成CONFIG_SYSFS_DEPRECATED_V2=y註:修改這項是因為舊版的mkinitrd及其nash在內核沒有CONFIG_SYSFS_DEPRECATED_V2參數時默認使用舊版sysfs路徑格式,從而在新內核下無法正確訪問/sys內的硬碟信息節點。主要是解決"mount:couldnotfindfilesystem'/dev/root'"這樣的錯誤makebzImagemakemolesmakemoles_installmakeinstall解壓修改內核cp/boot/initrd-2.6.38.img/tmpcd/tmp/mkdirnewinitrdcdnewinitrd/zcat/initrd-2.6.38.imgcpio-irm-rf/tmp/initrd-2.6.38.imgviinit找到這2行一樣的,去掉1行echo"Loadingdm-region-hash.komole"insmod/lib/dm-region-hash.koecho"Loadingdm-region-hash.komole"insmod/lib/dm-region-hash.ko這主要是解決:"insmod:errorinserting'/lib/dm-region-hash.ko':-1Fileexists"這樣的錯誤從新打包內核find.cpio-c-o>/initrdcd/gzip-9initrd-2.6.38imgrm-rf/boot/initrd-2.6.38.imgcpinitrd-2.6.38.img/bootrm-rf/cd/usr/src/linux-2.6.38.tar.gzrm-rf/cd/usr/src/linux-2.6.38設置從新內核啟動,重啟系統vi/boot/grub/grub.conf把default=1改為default=0reboot(重啟系統)

⑶ 一般優化linux的內核,需要優化什麼參數

作為高性能WEB伺服器,只調整Nginx本身的參數是不行的,因為Nginx服務依賴於高性能的操作系統。

以下為常見的幾個Linux內核參數優化方法。

⑷ 如何在Ubuntu/CentOS上安裝Linux內核4.0

在Ubuntu 15.04上安裝Linux內核4.0
如果你正在使用Linux的發行版Ubuntu 15.04,你可以直接通過Ubuntu內核網站安裝。在你的Ubuntu15.04上安裝最新的Linux內核4.0,你需要在shell或終端中在root訪問許可權下運行以下命令。

在CentOS 7上安裝Linux內核4.0
我們可以用兩種簡單的方式在CentOS 7上安裝Linux內核4.0。

從Elrepo軟體倉庫安裝
從源代碼編譯安裝
我們首先用ElRepo安裝,這是最簡單的方式:

使用 Elrepo 安裝
1. 下載和安裝ELRepo
我們首先下載ELRepo的GPG密鑰並安裝relrepo-release安裝包。因為我們用的是CentOS 7,我們使用以下命令安裝elrepo-release-7.0-2.el7.elrepo.noarch.rpm。

注: 如果你啟用了secure boot,請查看這個網頁獲取更多信息。

添加 Elrepo 源

2. 升級Linux內核到4.0版本
現在,我們准備從ELRepo軟體倉庫安裝最新的穩定版內核4.0。安裝它我們需要在CentOS 7的shell或者終端中輸入以下命令。

# yum --enablerepo=elrepo-kernel install kernel-ml
從ELRepo安裝Linux內核4.0

上面的命令會自動安裝為CentOS 7構建的Linux內核4.0。

現在,下面的是另一種方式,通過編譯源代碼安裝最新的內核4.0。

從源代碼編譯安裝
1. 安裝依賴軟體
首先我們需要為編譯linux內核安裝依賴的軟體。要完成這些,我們需要在一個終端或者shell中運行以下命令。

# yum groupinstall "Development Tools"
# yum install gcc ncurses ncurses-devel
安裝內核依賴

然後,我們會升級我們的整個系統。

# yum update
2. 下載源代碼
現在我們通過wget命令從Linux內核的官方倉庫中下載最新發布的linux內核4.0的源代碼。你也可以使用你的瀏覽器直接從kernel.org網站下載內核。

# cd /tmp/

下載內核源碼

3. 解壓tar壓縮
文件下載好後我們在/usr/src/文件夾下用以下命令解壓。

# tar -xf linux-4.0.tar.xz -C /usr/src/
# cd /usr/src/linux-4.0/
解壓內核tar壓縮包

4. 配置
配置Linux內核有兩種選擇的。我們可以創建一個新的自定義配置文件或者使用已有的配置文件來構建和安裝Linux內核。這都取決於你自己的需要。

配置新的內核
現在我們在shell或終端中運行make menuconfig命令來配置Linux內核。我們執行以下命令後會顯示一個包含所有菜單的彈出窗口。在這里我們可以選擇我們新的內核配置。如果你不熟悉這些菜單,那就敲擊ESC鍵兩次退出。

# make menuconfig
配置新內核

已有的配置
如果你想用已有的配置文件配置你最新的內核,那就輸入下面的命令。如果你對配置有任何調整,你可以選擇Y或者N,或者僅僅是按Enter鍵繼續。

# make oldconfig
5. 編譯Linux內核
下一步,我們會執行make命令來編譯內核4.0。取決於你的系統配置,編譯至少需要20-30分鍾。

註:如果編譯內核的時候出現bc command not found的錯誤,你可以用yum install bc命令安裝bc修復這個錯誤。

# make
Make 內核

6. 安裝Linux內核4.0
編譯完成後,我們終於要在你的Linux系統上安裝內核了。下面的命令會在/boot目錄下創建文件並且在Grub 菜單中新建一個內核條目。

# make moles_install install
7. 驗證內核
安裝完最新的內核4.0後我們希望能驗證它。做這些我們只需要在終端中輸入以下命令。如果所有都進展順利,我們會看到內核版本,例如4.0出現在輸出列表中。

# uname -r
結論
好了,我們成功地在我們的CentOS 7操作系統上安裝了最新的Linux內核版本4.0。通常並不需要升級linux內核,因為和之前版本運行良好的硬體可能並不適合新的版本。我們要確保它包括能使你的硬體正常工作的功能和配件。但大部分情況下,新的穩定版本內核能使你的硬體性能更好。

⑸ 如何用命令行設置linux內核參數

Linux設置內核參數的方法

1 內核參數的查看方法
使用「sysctl -a」命令可以查看所有正在使用的內核參數。內核參數比較多(一般多達500項),按照前綴主要分為以下幾大類:net.ipv4、net.ipv6、net.core、vm、fs、dev.parport、dev.cdrom 、dev.raid、kernel等等。相同的linux,安裝的組件和使用的方式不一樣,正在使用的內核參數是不一樣的。
所有的內核參數的說明文檔是放到/usr/src/linux/Documentation/sysctl中的,如果想知道對內核參數的說明,可以到該目錄下查看相應的說明文檔。

2 內核參數的的設置方法

由於Linux的內核參數信息都存在內存中,因此可以通過命令直接修改,並且修改後直接生效。也可以通過文件的方式進行設置。下面就介紹這兩種修改方法。
2.1 命令設置的方式

可以用兩種方法實現。
1、使用「sysctl -w 參數名=值」的方式

假設我們把net.ipv4.ip_forward的值修改為1,使用命令「sysctl -w net.ipv4.ip_forward=1」。
2、修改內核參數對應的proc文件

內核參數位於/proc/sys/之下,參數名稱是以文件所在的路徑,並將「/」以「.」來取代。舉例來說,/proc/sys/net/ip_forward的參數名稱為net.ipv4.ip_forward。

同樣把net.ipv4.ip_forward的值修改為1,使用命令「echo 「1」 > /proc/sys/net/ipv4/ip_forward」。

注意,這里proc文件跟普通的文件不一樣。一般一個文件用echo寫入內容之後,會變成一個文本文件,但echo修改proc文件之後還是個空文件。

⑹ 如何配置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。

⑺ 如何定製自己的linux內核

一 前言

為什麼要編譯自己的內核?這可能會有各種不同的答案,列舉如下:
1 為了研究,學習內核源碼。
2 為了支持新的硬體或者打開某項內核功能。
3 升級內核到更新版本。
4 按自己的要求定製和優化內核功能。
如此種種...
折騰不需要理由,這里我就不在多說,下面直接進入主題。
編譯方式
編譯內核有多種方式,從kernel.org下載選擇下載需要的版本的內核源碼,
如:linux-2.6.32-rc1.tar.bz2,下載內核源碼到/home/user/目錄,進入下載目錄,解壓壓縮包。

#cd /home/user/
#tar -xjvf linux-2.6.32-rc1.tar.bz2

二 准備編譯環境

開始之前,首先確認下面軟體包已經安裝(編譯中標普華4.0時,直接全部安裝CD3可保證此條件)。
* rpmdevtools
* yum-utils
fedora系統可以使用如下命令安裝:
#yum install yum-utils rpmdevtools

1. 生成一個rpmbuild命令工作所需的目錄樹,下面命令可以完成該操作,也可以手動建立目錄樹。
命令建立:
#rpmdev-setuptree

此命令將會在/usr/src/rpmbuild/目錄下生成如下目錄結構(如果此位置沒有,則可能在當前用戶目錄下).

# tree /usr/src/rpmbuild/
rpmbuild/
|-- BUILD
|-- RPMS
|-- SOURCES
|-- SPECS
`-- SRPMS
上面部分是rpmbuild的環境建立。rpm
3. 安裝內核源碼包需要的依賴組件(在此可以跳過此步操作)

su -c 'yum-builddep kernel-<version>.src.rpm'
4.安裝內核源碼到系統,默認目錄在/usr/src/neoshine:

rpm -Uvh kernel-<version>.src.rpm

三 配置內核(生成config配置文件)

下面將介紹如何解開源碼包,並修改,配置和重新打包源碼
1. 解開源碼包並打上所有的補丁到BUILD目錄

cd ~/rpmbuild/SPECS
rpmbuild -bp --target=`uname -m` kernel.spec

kernel源碼將在這里找到:

/usr/src/neoshine/rpmbuild/BUILD/kernel-<version>/linux-<version>.<arch> directory

配置內核源碼
1. 進入內核源碼:

cd ~/rpmbuild/BUILD/kernel-2.6.$ver/linux-2.6.$ver.$arch/
2. 復制/boot/config*配置文件到源碼目錄下,此config文件也可以是已經配好或者其他地方備份的kernel配置文件:

cp /boot/config2.6- 2.6.$ver.$arch .config
3. 先檢查kernel配置中新增的選項:

make oldconfig
4. 定製內核功能,關閉initrd支持選項,執行圖形化內核配置工具:

make menuconfig
註:在generic setup選項下找到initial RAM system and RAM disk(initramfs and initrd) support 項,取消編譯。同時確保跟文件系統對應的驅動和系統所在存儲器對應的驅動都已經編譯到內核(否則會無法啟動系統).

5. 在.config文件第一行改為下面內容(注意:沒有此行時,後面的編譯會報錯)

# i386
6. 拷貝.config到SOURCES/:

cp .config ../SOURCES/config-$arch

四 編譯新內核

1. 下面開始准備編譯新的內核包
打開SPEC/kernel.spec

vim SPEC/kernel.spec
改變下面行內容,可以定製自己的內核擴展名(如fc10之類):

%define buildid .<自己內核的小版本名>
下一步將生成一個新內核的rpm包,此過程需要編譯內核源碼包
使用下面命令生成新的內核源碼包
rpmbuild -bb --with baseonly --without debuginfo --target=`uname -m` kernel.spec

參數說明:bb表示只編譯二進制包,即不生成源碼包,without debuginfo 表示沒有調試信息,
target=`uname -r`表示生成對應當前平台的內核包
如果上面的命令成功執行完成,那麼會在BUILD/i686目錄下生成新的內核安裝包

五 安裝新內核

rpm -ivh kernel-$ver-$arch.rpm
此步操作會自動安裝內核到boot目錄下,安裝對應內核模塊到/lib/moles/目錄下,並且生成新內核對應的grub引導菜單。
修改grub引導菜單為以下格式

title new kernel
kernel /boot/vmlinuz-$ver-$arch root=/dev/sdax(hdax)

注意,此處不要使用uuid指定跟文件系統(可能會無法掛載根分區而導致內核死機),也不要再加和顯示相關的參數(內核不支持對應設置時,只會看到一個黑黑的屏幕)。
至此一個禁用initrd的新內核配置安裝完畢!

⑻ EasyARM-iMX280開發中,如何配置Linux內核

可以輸入make menuconfig命令打開內核的配置界面

在這個界面中就可以隨意配置內核了,於列表中你需要啟用的功能設備,在那一項輸入y就可以把該功能靜態編譯到內核,輸入M可以把該功能動態編譯成內核模塊。

⑼ 如何修改 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內核相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:485
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:382
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163