導航:首頁 > 操作系統 > linux如何修改內核

linux如何修改內核

發布時間:2023-01-29 19:47:16

㈠ 如何重新編譯linux內核

  1. 因為一般電腦安裝的系統都是Windows,而整個編譯過程都需要在Linux環境下實現,所以最好是在虛擬機里安裝Linux系統來完成這一過程。我使用的虛擬機是VMware-workstation-full-v7.1.4。

  2. 然後,我們需要下載一個較高版本的Linux系統的鏡像文件,安裝在虛擬機上,作為編譯環境。我使用的是ubuntu-11.04-desktop-i386。之所以選擇較高版本,是因為它的界面比較方便用戶操作。

  3. 然後下載一個Linux內核源代碼文件,將它保存到虛擬機上新安裝的系統中去。並解壓到/usr/src目錄。我使用的是linux-2.6.36,下載低版本的原因是,小巧輕便,易於編譯。

    解壓命令如下:

    bzip2 -d linux-2.6.36.tar.bz2

    tar -xvf linux-2.6.36.ta

  4. 修改/usr/src/linux-2.6.36/kernel/sys.c文件,在文件末尾增加一個系統調用函數。自行編寫一個簡單的程序即可,只為測試用。

  5. 修改/usr/src/linux-2.6.36/arch/x86/kernel/syscall_table_32.S,為新添加的程序配置系統調用號。

  6. 在/usr/src/linux-2.6.36/arch/x86/include/asm/unistd_32.h中配置系統調用表。

  7. 下面就是最重要的內核編譯與安裝:

    首先配置編譯信息,使其生成適合當前機器的Makefile,輸入make oldconf ig。

    接著還要輸入make menuconfig,在字元界面下進行必要的細微的修改。

    然後要經過四步編譯過程(直接輸入命令即可):

    (1)make bzImage

    將內核編譯為壓縮映像,存儲在源碼根目錄下的「System.map」文件中。

    (2)make moles

    編譯各個模塊。

    (3)sudo make moles_install

    安裝模塊

    (4)sudo make install

    安裝內核

    第(2)(3)步等待時間較長,可能需要數個小時,請耐心等待。

    無報錯的話重啟進入GRUB界面,就可以看到新編譯的內核了。

  8. 按回車鍵進入我們編譯的目標內核中,用關鍵詞搜索查看新增加的系統調用「my call」是否已在內核中:

  9. 編寫測試程序,調用新添加的系統調用:

  10. 測試成功,說明系統調用添加成功,進而說明內核編譯成功!

    以上的辦法你可以試一下,希望對你有所幫助。

㈡ [重慶思庄每日技術分享]-linux 系統 修改內核參數導致不能啟動的問題

錯誤原因:

錯誤修改了  /etc/selinux/config文件。

錯誤信息:

重啟後發現出現錯誤,不能繼續啟動

Kernel panic - not syncing: Attempted to kill init

解決方案:

1.系統啟動的時候,按下『e』鍵進入grub編輯界面,編輯grub菜單,選擇「kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/vogroup00/logvol00 rhgb quiet」 一欄,按『e』鍵進入編輯,在末尾增加enforcing=0,即:

kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/vogroup00/logvol00 rhgb quiet enforcing=0  或者selinux=0

按『b』鍵繼續引導,OK順利前進。

2.後來發現,通過改變/etc/grub.conf 在倒數第二行添加selinux=0 也可。

3.(推薦) 檢查/etc/selinux/config文件是否出錯

注意事項:

1.系統啟動後,按e ,如果沒有對應kerne選項繼續按e 找到

2.在出現命令行後 空格加入 enforing=0 回車

3.除保存編輯不要按回車,esc等按鍵。輸入enforing=0後直接按b 繼續啟動。

㈢ linux 修改內核信息

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

㈣ 在哪裡改linux內核

到http://kernel.org上下載新的內核,
然後將文件移動到/usr/src,解壓,進入到目錄,然後
make menuconfig(定製內核)
make(生成內核模塊)
make moles_install (載入內核模塊)
make install (修改grub)
以上就是我個人安裝新內核的經驗

㈤ Linux常用內核網路參數及修改方法

在修改內核參數前,需要注意以下幾點:

本文提供以下兩種修改Linux實例內核參數的方法。

/proc/sys/ 目錄是Linux內核在啟動後生成的偽目錄,其目錄下的 net 文件夾中存放了當前系統中開啟的所有內核參數,目錄樹結構與參數的完整名稱相關,如 net.ipv4.tcp_tw_recycle ,它對應的文件是 /proc/sys/net/ipv4/tcp_tw_recycle 文件,文件的內容就是參數值。方法一中修改的參數值僅在當前運行中生效,系統重啟後會回滾到歷史值,一般用於臨時性驗證修改的效果。若需要永久性修改,請參見方法二。

㈥ 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如何調節和維護內核詳細介紹

作為用戶程序和系統硬體之間的介面,內核在確保Red Hat Enterprise Linux 應用到廣泛到物理和虛擬硬體環境中發揮來重要作用。
識別運行內核

1. cat /etc/redhat-release 安裝的Red Hat Enterprise Linux 版本
2. uname -r 當前運行的內核版本
3. yum list installed kernel/* 安裝的內核版本
4. uname -m 或arch 當前運行所在處理器體系結構
5.uname -a 查看內核信息
有時,內核會發出日誌消息。這些消息記錄在/var/log/messages文件中,標記為kernel服務。
內核模塊:

模塊載入和卸載
● 在引導時載入的核心內核映像位於/boot/vmlinuz-VERSION.
● 雖然可以安裝多個內核,但是只有一個是當前運行的內核。若要更改內核,必須重新引導系統。
● 每個內核都包含一組動態載入的模塊,這些模塊與該內核兼容,保留在/lib/moles/VERSION/ 中。
● 通常,根據需要載入和卸載模塊,無需用戶(或管理員)交互。
● 可以使用 lsmod 列出當前載入的模塊。
● 有時,可能需要使用modprobe MODULENAME 手動載入模塊。
● 可以使用modprobe -r MODULENAME 刪除不再使用的模塊。
可以在 /lib/moles/2.6.32-71.el6.x86_64/kernel 目錄下查看內核模塊信息

modprobe -l 列出所載入的模塊
示例:
# modprobe -l | grep nf_conntrack_ftp
# modprobe nf_conntrack_ftp
# lsmod | grep nf_conntrack_ftp
# modprobe -r nf_conntrack_ftp

內核更新:
下載新內核rpm包
理論上應使用rpm -Uvh kernel-name.rpm 但是如果使用U的話會使當前運行的系統掛掉,
所以用 rpm -ivh kernel-name.rpm 全新安裝內核
在 /boot 中會出現一個新的內核
在 /boot/grub/grub.conf 中 default=0 表示使用新內核,此時需重啟才能使用到新內核。

㈧ 如何修改 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內核參數的方法

sysctl命令 被用於在內核運行時動態地修改內核的運行參數,可用的內核參數在目錄 /proc/sys 中。

示例:

閱讀全文

與linux如何修改內核相關的資料

熱點內容
海康攝像螢石雲伺服器 瀏覽:814
安卓手機怎麼改安卓版名 瀏覽:147
雅思聽力807詞彙pdf 瀏覽:897
黃豆私人加密 瀏覽:192
java分鍾轉換小時 瀏覽:245
易語言伺服器如何提高 瀏覽:591
網站主機伺服器地址查看 瀏覽:859
演算法學不會能當程序員嗎 瀏覽:119
程序員技術交流研究 瀏覽:814
javaresponse文件 瀏覽:734
linuxrar壓縮文件夾 瀏覽:218
魅藍手機連接不上伺服器怎麼回事 瀏覽:379
工行app怎麼改已綁定銀行卡 瀏覽:533
oppo晶元程序員 瀏覽:602
oppok3應用怎麼加密 瀏覽:327
電腦軟盤怎麼加密碼 瀏覽:815
伺服器光交換機有什麼用 瀏覽:708
app上怎麼拍蛙小俠 瀏覽:217
志高聊天app怎麼下載 瀏覽:635
郵政app怎麼不能掃付款碼 瀏覽:559