x86平台下linux配置編譯與啟動

2021-06-21 22:04:11 字數 3680 閱讀 1162

以前學習的基礎知識都忘記了,趁放假回來好好補補基礎。今天下午辦完簽證後,回來重新在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硬體,為中國客戶提供端到...