導航:首頁 > 操作系統 > 修改linux內核配置

修改linux內核配置

發布時間:2022-10-04 01:39:14

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下的grub配置

1 是手動選擇在開機時候按方上下方向鍵 界面會停留在選擇內核的界面
2 自動選擇 系統默認會選擇最新安裝的內核.如果要更改默認使用的內核則修改配置文件/boot/grub/menu.lst(直接修改grub.conf同樣可行 )下default默認為0是表示第一個菜單選項(開機時的內核選擇菜單),改為1就是使用第二個菜單項了。timeout表示菜單等待時間,單位為秒。

⑶ Linux如何在系統運行過程中修改內核參數

RedHat向管理員提供了非常好的方法,使我們可以在系統運行時更改內核參數,而不需要重新引導系統。這是通過/PRoc虛擬文件系統實現的。/proc/sys目錄下存放著大多數的內核參數,並且設計成可以在系統運行的同時進行更改。下面我們以打開內核的 ip轉發功能為例說明在系統運行時修改內核參數的兩種方法。IP轉發是指允許系統對來源和目的地都不是本機的數據包通過網路,RedHat默認屏蔽此功能,在 需要用本機作為路由器、NAT等情況下需要開啟此功能。 方法一:修改/proc下內核參數文件內容 直接修改內核參數ip_forward對應在/proc下的文件/proc/sys/net/ipv4/ip_forward。用下面命令查看ip_forward文件內容: # cat /proc/sys/net/ipv4/ip_forward 該文件默認值0是禁止ip轉發,修改為1即開啟ip轉發功能。修改命令如下: # echo 1 >/proc/sys/net/ipv4/ip_forward 修改過後就馬上生效,即內核已經打開ip轉發功能。但如果系統重啟後則又恢復為默認值0,如果想永久打開需要通過修改/etc/sysctl.conf文件的內容來實現。 方法二.修改/etc/sysctl.conf文件 默認sysctl.conf文件中有一個變數是 net.ipv4.ip_forward = 0 將後面值改為1,然後保存文件。因為每次系統啟動時初始化腳本/etc/rc.d/rc.sysinit會讀取/etc/sysctl.conf文件的內容,所以修改後每次系統啟動時都會開啟ip轉發功能。但只是修改sysctl文件不會馬上生效,如果想使修改馬上生效可以執行下面的命令: # sysctl –p 在修改其他內核參數時可以向/etc/sysctl.conf文件中添加相應變數即可,下面介紹/proc/sys下內核文件與配置文件 sysctl.conf中變數的對應關系,由於可以修改的內核參數都在/proc/sys目錄下,所以sysctl.conf的變數名省略了目錄的前面部 分(/proc/sys)。 將/proc/sys中的文件轉換成sysctl中的變數依據下面兩個簡單的規則: 1.去掉前面部分/proc/sys 2.將文件名中的斜杠變為點 這兩條規則可以將/proc/sys中的任一文件名轉換成sysctl中的變數名。 例如: /proc/sys/net/ipv4/ip_forward =》 net.ipv4.ip_forward /proc/sys/kernel/hostname =》 kernel.hostname 可以使用下面命令查詢所有可修改的變數名 # sysctl –a 下面例舉幾個簡單的內核參數: 1./proc/sys/kernel/shmmax 該文件指定內核所允許的最大共享內存段的大小。 2./proc/sys/kernel/threads-max 該文件指定內核所能使用的線程的最大數目。 3./proc/sys/kernel/hostname 該文件允許您配置網路主機名。

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

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

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

⑸ linux 修改內核信息

可以改。永久變更主機名用下面方法需要改2處#vi /etc/hosts127.0.0.1 xxxx localhost.localdomain localhost#vi etc/sysconfig/networkNETWORKING=yesHOSTNAME=xxxxGATEWAY=192.168.0.1這樣重啟之後,主機名也不會變※· xxxx為你要改的主機名

⑹ 如何用命令行設置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內核

在做Virtualization這段時間,編譯過多次Linux kernel,編譯Kernel過程中配置config這一步是相對來說比較復雜的。對編譯內核過程中的配置這一步做詳細的說明吧,總結一下,多數內容源於網上的多篇文章。

首發在我的博客:http://renyongjie668.blog.163.com/blog/static/1600531201143010295156/

首先,配置時可能出現的選項,對其選擇先來個說明吧。
Typically, your choices for each option are shown in the format [Y/m/n/?] The capitalized letter is the default, and can be selected by just pressing the Enter key. The four choices are:
y Build directly into the kernel.
n Leave entirely out of the kernel.
m Build as a mole, to be loaded if needed.
? Print a brief descriptive message and repeat the prompt.
y表示是(相應功能將直接編譯進內核),m表示模塊(相應功能將編譯為一個模塊,在需要時載入),以及n表示否(相應功能不會包含進內核)。?則(對該配置項)列印出簡要的描述信息並重復剛才的選擇提示。
其次,我使用的最多的兩個配置命令分別是:make muneconfig和make oldconfig
make oldconfig和make config類似,但是它的作用是在現有的內核設置文件基礎上建立一個新的設置文件,只會向用戶提供有關新內核特性的問題,在新內核升級的過程 中,make oldconfig非常有用,用戶將現有的配置文件.config復制到新內核的源碼中,執行make oldconfig,此時,用戶只需要回答那些針對新增特性的問題。
make menuconfig基於終端的一種配置方式,提供了文本模式的圖形用戶界面,用戶可以通過游標移動來瀏覽所支持的各種特性。使用這用配置方式時,系統中必須安裝有ncurese庫。

在內核樹的根目錄中,有一個.config文件,它記錄了內核的配置選項,可直接對它進行修改,再運行。在.config文件中,每個配置和選項的值只能為」y」和」m」兩者之一,如果不需要這個特性不再支持她,那麼可以將對應的選項用」#」注釋掉。實際上,如果你手頭有合適的.config文件,可以運行make oldconfig 直接按.config的內容來配置$ sudo make oldconfig
對內核的配置都是圍繞.config來展開的. 即便開始.config文件不存在,進行配置後會創造它.
一般來說,內核配置保存於/usr/src/linux-*/.config文件中。在/boot/config-<版本>有其備份。請保留它以備後用。

常見的幾種配置方式:
為了完成內核的配置,必須切換到root用戶,然後轉入內核源碼目錄(就是你下載新內核的目錄):
#cd /usr/src/linux/linux-2.6.38
然後執行下面命令之一:
#make config
#make oldconfig
#make menuconfig
#make gconfig
#make defconfig
#make allyesconfig
#make allmodconfig

1.make config
基於文本的最為傳統的也是最為枯草的一種配置方式,但是它可以使用任何情況,這種方式會為每一個內核支持的特性向用戶提問,如果用戶回答「y」,則把特性編譯進內核;回答「m」,則它特性作為模塊進行編譯;回答「n」,則表示不對該特性提供支持
如果回答每個問題前,必須考慮清楚,如果在配置過程中犯了錯誤給了錯誤的回答,就只能按「ctcl+c」強行退出了

2.make oldconfig
make oldconfig和make config類似,但是它的作用是在現有的內核設置文件基礎上建立一個新的設置文件,只會向用戶提供有關新內核特性的問題,在新內核升級的過程 中,make oldconfig非常有用,用戶將現有的配置文件.config復制到新內核的源碼中,執行make oldconfig,此時,用戶只需要回答那些針對新增特性的問題
make silentoldconfig : Like above, but avoids cluttering the screen with questions already answered.和上面oldconfig一樣,但在屏幕上不再出現已在.config中配置好的選項。

3.make menuconfig
基於終端的一種配置方式,提供了文本模式的圖形用戶界面,用戶可以通過游標移動來瀏覽所支持的各種特性。使用這用配置方式時,系統中必須安裝有ncurese庫,否則會顯示「Unable to find the Ncurses libraies」的錯誤提示

4.make xoncifg
基 於X Winodws的一種配置方式,提供了漂亮的配置窗口,不過只有能夠在X Server上使用root用戶欲行X應用程序時,才能夠使用,它依賴於QT,如果系統中沒有安裝QT庫,則會出現「Unable to find the QT installation」的錯誤提示

5.make gconfig
與make xocnifg類似,不同的是make gconfig依賴於GTK庫

6.make defconfig
按照默認的配置文件arch/i386/defconfig對內核進行配置,生成.config可以用作初始化配置,然後再使用make menuconfig進行定製化配置

7.make allyesconfig
盡量多地使用「y」設置內核選項值,生成的配置中包含了全部的內核特性
make allnoconfig :除必須的選項外,其它選項一律不選. (常用於嵌入式系統).

8.make allmodconfig
盡可能多的使用「m」設置內核選項值來生成配置文件

下載好Linux內核源代碼後,在源代碼的根目錄執行
make localyesconfig或者make localmodconfig
然後系統就會根據你的硬體自動生成一個適應你的硬體的.config (內核的配置文件)
make localmodconfig會執行lsmod命令查看當前系統中載入了哪些模塊(Moles),並最後將原來的.config中不需要的模塊去掉,僅保留前面lsmod出來的這些模塊,從而簡化了內核的配置過程。
這樣做確實方便了很多,但是也有個缺點:該方法僅能使編譯出的內核支持當前內核已經載入的模塊。因為該方法使用的是lsmod的結果,如果有的模塊當前沒有載入,那麼就不會編到新的內核中。
There』s an additional 「make localyesconfig」 target, in case you don』t want to use moles and/or initrds.

幾條好的建議:
除非您使用初始化ramdisk (initrd),否則絕不要把掛載根文件系統必需的驅動程序(硬體驅動以及文件系統驅動)編譯成模塊!而如果您確實使用初始化ramdisk,請為ext2FS支持選項選擇Y,因為ramdisk使用該文件系統。您還需要initrd支持。
如果您系統中有網卡,將它們的驅動編譯成模塊。這樣,您就能夠在/etc/moles.conf中用別名定義哪一塊網卡第一,哪一塊第二,等等。如果您將驅動程序編譯進了內核,它們載入的順序將取決於當初它們鏈接進內核的順序,而這不一定是您想要的。
最後,如果您不清楚某個選項的含義,請閱讀其幫助!而如果該幫助信息依然不能解決您的困惑,請保留該選項原來的樣子。(在config和oldconfig中可以按?鍵訪問幫助。)
配置最終結束後,請保存您的配置並退出。

參考資料:

http://www.cnmaizi.com/tech/elebuild/simplify-linux-kernel-config-rapid-compile-method-collect/

http://man.ddvip.com/linux/Mandrakelinuxref/compiling-conf.html

http://www.huomo.cn/os/article-5d18.html

編譯 Linux2.6 內核總結: http://www.cublog.cn/u/13991/showart.php?id=79823

編譯內核:http://my.chinaunix.net/space.php?uid=25806768&do=blog&id=302764

內核_.config 內核配置及Makefile:http://www.cnblogs.com/parrynee/archive/2010/05/13/1734689.html

⑻ 如何修改 Linux 內核配置

編輯配置文件/etc/sysctl.conf
或者用sysctl命令修改

⑼ 編譯linux內核的時候,我在.config文件中修改了配置選項,然後執行make,為什麼它又給我改回去了

用 make menuconfig
用make -x 可跟蹤執行指令就能找到原因

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

熱點內容
安卓源碼編譯輸入腳本沒反應 瀏覽:44
phpmysql自增 瀏覽:167
把ppt保存為pdf 瀏覽:533
汽車密封件加密配件 瀏覽:887
黑馬程序員15天基礎班 瀏覽:560
java調整格式 瀏覽:521
香港雲伺服器租用價 瀏覽:78
linuxsublime3 瀏覽:560
imac混合硬碟命令 瀏覽:277
沈陽用什麼app租房車 瀏覽:857
00後高中生都用什麼app 瀏覽:237
戴爾塔式伺服器怎麼打開獨立顯卡 瀏覽:807
醫療程序員招聘 瀏覽:597
住宿app可砍價是什麼意思 瀏覽:133
java跳出語句 瀏覽:55
javastring個數 瀏覽:928
人工免疫演算法應用 瀏覽:79
有什麼app能收聽俄羅斯廣播電台 瀏覽:34
2015考研紅寶書pdf 瀏覽:443
程序員幾月跳槽合適 瀏覽:444