新聞中心
如何編譯Linux內核
1、大概步驟:
我們提供的服務有:成都網(wǎng)站設計、網(wǎng)站制作、外貿營銷網(wǎng)站建設、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、梁子湖ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的梁子湖網(wǎng)站制作公司
1、安裝開發(fā)包組
2、下載源碼文件
3、.config:準備文本配置文件
4、make menuconfig:配置內核選項
5、make [-j #]
6、make modules_install:安裝模塊
7、make install :安裝內核相關文件
安裝bzImage為/boot/vmlinuz-VERSION-RELEASE (去boot目錄下查看)
生成initramfs文件
8、編輯grub的配置文件
2、編譯配置選項
配置內核選項
支持“更新”模式進行配置: make help
(a) make config:基于命令行以遍歷的方式去配置內核中可配置的每個選項
(b) make menuconfig:基于curses的文本窗口界面
(c) make gconfig:基于GTK (GNOME)環(huán)境窗口界面
(d) make xconfig:基于QT(KDE)環(huán)境的窗口界面
支持“全新配置”模式進行配置
(a) make defconfig:基于內核為目標平臺提供的“默認”配置進行配置
(b) make allyesconfig: 所有選項均回答為“yes“
(c) make allnoconfig: 所有選項均回答為"no“
3、編譯
全編譯:make [-j #]
編譯內核的一部分功能:
a) 只編譯某子目錄中的相關代碼:
# cd /usr/src/linux
# make dir/
(b) 只編譯一個特定的模塊:
# cd /usr/src/linux
# make dir/file.ko
例如:只為e1000編譯驅動:
#make drivers/net/ethernet/intel/e1000/e1000.ko
4、編譯內核
如何交叉編譯內核:
編譯的目標平臺與當前平臺不相同;
# make ARCH=arch_name
要獲取特定目標平臺的使用幫助
# make ARCH=arch_name help
# make ARCH=arm help
5、清理刪除
在已經(jīng)執(zhí)行過編譯操作的內核源碼樹做重新編譯:
需要事先清理操作:
# make clean:清理大多數(shù)編譯生成的文件,但會保留config文件等
# make mrproper: 清理所有編譯生成的文件、 config及某些備份文件
# make distclean: mrproper、 patches以及編輯器備份文件
卸載內核
刪除/lib/modules/目錄下不需要的內核庫文件
刪除/usr/src/linux/目錄下不需要的內核源碼
刪除/boot目錄下啟動的內核和內核映像文件
更改grub的配置文件,刪除不需要的內核啟動列表
需要解決更多l(xiāng)inux問題,詳情請看
望采納
如何修改 Linux 內核配置
由于Linux的內核參數(shù)信息都存在內存中,因此可以通過命令直接修改,并且修改后直接生效。但是,當系統(tǒng)重新啟動后,原來設置的參數(shù)值就會丟失,而系統(tǒng)每次啟動時都會自動去/etc/sysctl.conf文件中讀取內核參數(shù),因此將內核的參數(shù)配置寫入這個文件中,是一個比較好的選擇。
首先打開/etc/sysctl.conf文件,查看如下兩行的設置值,這里是:
kernel.shmall
=
2097152
kernel.shmmax
=
4294967295
如果系統(tǒng)默認的配置比這里給出的值大,就不要修改原有配置。同時在/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文件修改完畢后,接著執(zhí)行“sysctl
-p”使設置生效。
[root@localhost
~]#
sysctl
-p
常用的內核參數(shù)的含義如下。
kernel.shmmax:表示單個共享內存段的最大值,以字節(jié)為單位,此值一般為物理內存的一半,不過大一點也沒關系,這里設定的為4GB,即“4294967295/1024/1024/1024=4G”。
kernel.shmmni:表示單個共享內存段的最小值,一般為4kB,即4096bit.
kernel.shmall:表示可用共享內存的總量,單位是頁,在32位系統(tǒng)上一頁等于4kB,也就是4096字節(jié)。
fs.file-max:表示文件句柄的最大數(shù)量。文件句柄表示在Linux系統(tǒng)中可以打開的文件數(shù)量。
ip_local_port_range:表示端口的范圍,為指定的內容。
kernel.sem:表示設置的信號量,這4個參數(shù)內容大小固定。
net.core.rmem_default:表示接收套接字緩沖區(qū)大小的缺省值(以字節(jié)為單位)。
net.core.rmem_max
:表示接收套接字緩沖區(qū)大小的最大值(以字節(jié)為單位)
net.core.wmem_default:表示發(fā)送套接字緩沖區(qū)大小的缺省值(以字節(jié)為單位)。
net.core.wmem_max:表示發(fā)送套接字緩沖區(qū)大小的最大值(以字節(jié)為單位)。
在linux0.12系統(tǒng)中編譯0.12內核時,使用什么命令
1、運行 、運行Linux0.12系統(tǒng) 系統(tǒng) Linux-0.12-080324/bochssrc-0.12hd.bxrc /usr/src/linux目錄鍵入 目錄鍵入make命令 目錄鍵入 命令 生成引導啟動映像文件Image 生成引導啟動映像文件 直接存入硬盤映像 dd bs=8192 if=Image of /dev/fd0 存入軟盤映像 mcopy Image b: mcopy System.map b:
2、注意 、 如果新的引導啟動Image文件與軟盤上的根文件 文件與軟盤上的根文件 如果新的引導啟動 系統(tǒng)rootimage-0.12一起使用,那么在編譯 一起使用, 系統(tǒng) 一起使用 之前Makefile文件,注釋掉 文件, 之前 文件 注釋掉”ROOT_DEV”
當前標題:linux內核編輯命令,Linux內核編寫
本文鏈接:http://fisionsoft.com.cn/article/hohsed.html