以前學習的基礎知識都忘記了,趁放假回來好好補補基礎。今天下午辦完簽證後,回來重新在x86平台上面配置編譯了一下linux核心,並且設定啟動。所有的工作是在虛擬機器下面進行的。
下面首先談談理論上編譯配置核心需要用哪些步驟:
make clean :remove all generate files but config files;
make mrproper:remove all generate files include config files;
make distclean:mrproper and remove editor backup and patch files
4、配置。配置,有四個配置命令,下面分別說明:
make config:互動式文字配置。
make menuconfig:選單式配置。一般選取這個配置。
make xconfig:只能在有xwindow的情況下配置,在純粹命令列介面的時候不能夠使用,而上面兩個配置能夠使用。
一般配置選項有很多,使用make menuconfig後,會在核心的根目錄下面生成.config的配置檔案。我們可以選取乙個已經配置好的.config檔案,修改這個檔案即可。
5、編譯核心。編譯核心的命令有:
make zimage :在x86平台下,只能夠編譯生成小於512k的核心;
make bzimage:沒有大小的限制。
6、編譯核心模組。編譯核心模組的命令:
make modules
之所以要編譯核心模組,是因為在配置選項裡面的那些選擇「m」的,只編譯,沒有連線;而「*」既要編譯也要連線,最後生成zimage。都是以核心模組的形式載入到核心的。
7、安裝核心模組。安裝核心模組命令:
make modules_install
8、製作init ramdisk。製作ramdisk的命令:
mkinitrd initrd-$version $version 其中第二個$version為核心的實際版本。
initramdisk作用:提供一種讓核心可以簡單實用ramdisk的能力。這些能力包括:格式化乙個ramdisk、載入檔案系統到ramdisk、將ramdisk作為根檔案系統
9、安裝核心。
由於linux系統啟動時候,會從/boot目錄下來尋找檔案與init ramdisk,所以需要將編譯好的核心和init ramdisk複製到/boot目錄下;
為了讓grub在啟動時能提供一項我們自己製作的linux核心的選擇項,需要修改grub配置檔案。
下面列出自己編譯和配置核心的步驟:
1、建立目錄,存放核心原始碼:
[cpp]view plain
copy
[root@localhost /]# mkdir linux_kernel
[cpp]view plain
copy
[root@localhost linux_kernel]# ls
linux-2.6.29.tar.gz
[root@localhost linux_kernel]# tar -xvz -f linux-2.6.29.tar.gz
3、進入核心原始碼根目錄,清理痕跡:
[cpp]view plain
copy
[root@localhost linux_kernel]# cd linux-2.6.29
[root@localhost linux-2.6.29]# make distclean
4、配置核心。這裡使用正在執行的fedora9的配置檔案作為此核心的配置檔案:
[cpp]view plain
copy
[root@localhost linux-2.6.29]# cp /boot/config-2.6.25-14.fc9.i686 .config
[root@localhost linux-2.6.29]# make menuconfig
5、按照配置檔案的說明手冊對檔案進行配置。
6、編譯核心。編譯完成後,生成的核心位於:/arch/x86/boot目錄下。
[cpp]view plain
copy
[root@localhost linux-2.6.29]# make bzimage
7、編譯好核心後,就可以編譯模組了。
[cpp]view plain
copy
[root@localhost linux-2.6.29]# make modules
8、編譯好模組後,就可以安裝模組了。
[cpp]view plain
copy
[root@localhost linux-2.6.29]# make modules_install
完成安裝後,編譯好的核心模組會從核心源**目錄拷貝至/lib/modules下面。
9、製作 init ramdisk。
[cpp]view plain
copy
[root@localhost linux_kernel]#
mkinitramfs -o /boot/initrd.img 2.6.24-16
10、拷貝核心和製作好的init ramdisk到/boot目錄下面。
[cpp]view plain
copy
[root@localhost linux_kernel]# cp /linux_kernel/linux-2.6.29/arch/x86/boot/bzimage /boot/vmlinuz-2.6.29
[root@localhost linux_kernel]# cp /linux_kernel/initrd-2.6.29 /boot/
注意:vmlinuz-2.6.29可以任意取名,只是下面修改grub的時候,注意名字要一致就行。
11、修改grub啟動項。
[cpp]view plain
copy
[root@localhost linux_kernel]# vi /boot/grub/grub.conf
在裡面新增:
[cpp]view plain
copy
title xgg's linux(2.6.29)
root (hd0,0)
kernel /vmlinuz-2.6.29 ro root=uuid=3f0b3cdc-c7e6-4649-a214-124f469262f4 rhgb quiet
initrd /initrd-2.6.29
或者menuentry 'ubuntu,linux 2.6.32' --class ubuntu --class gnu-linux --class gnu --class os
到此為止,就已經完成了linux核心的編譯、配置了,很簡單的。下次啟動的時候就會出現雙啟動項。
11.刪除舊核心檔案
1.檢視一下核心版本 uname -a
2.檢視當前系統下的所有核心版本
X86平台下,Caffe MKL安裝詳解
ffmpeg安裝opencv安裝boost庫安裝cmake 3.12安裝mkl安裝gflags安裝 2 配置 mkdir build cd build cmake dcmake install prefix home yzhang env gflags d build shared libs on ...
Linux核心的配置與編譯 X86平台
說明 只供學習交流 目的 1 配置 編譯x86平台下的linux 2.6.29核心 2 在vmware下安裝編譯好的核心並啟動 工具 gcc編譯器,linux 2.6.29核心 步驟 make clean 刪除大多數的由編譯生成的檔案 但會保留核心的配置檔案.config。make mrproper...
強健x86平台
最近,聯想的企業級業務頗受關注。雖然與收購ibm x86伺服器業務以及摩托羅拉移動這些大動作相比,聯想宣布與賽門鐵克合作也許不夠勁爆,但從完善聯想企業級解決方案的角度來看,聯想與賽門鐵克的戰略合作同樣舉足輕重。聯想it管理服務及企業級服務業務部總經理林林表示,雙方將基於x86硬體,為中國客戶提供端到...