Linux編譯核心實驗小結

2022-02-21 00:53:04 字數 2317 閱讀 4660

近日按照《linux核心的設計與實現》嘗試編譯核心,遇到很多問題,也學到不少經驗。

1.  由於需要使用乙個較老版本的核心,而後從別人處拷貝的tag.bz2是損壞的。原先並沒有在

2.  如果已經安裝win7且磁碟系統轉換為ntfs,用easybcd硬碟安裝win7+ubuntu雙系統不可行

3.  2.6.13核心需要2.95.3版本的gcc

5.  make config、make、make modules_install、make install後可能需要對grub進行配置:

a.把原始碼根目錄下system.map拷貝至/boot下並改名為system.map-2.6.32.24;

b.把原始碼目錄下arch/x86/boot/bzimage拷貝到/boot目錄下;

c.使用bzimage生成img檔案initrd.img-2.6.32.24:

update-initramfs -c -k 2.6.32.24

d.把bzimage改名為vmlinuz-2.6.32.24;

e.修改/boot/grub/grub.cfg,新增類似於下面的內容:

menuentry '

ubuntu, with linux 2.6.32-22

' --class ubuntu --class gnu-linux --class gnu --class os

6.  重啟後選擇該核心,在終端中輸入uname -a 檢視核心版本。

7.  修改啟動順序的方法(來自於乙個帖子)

grub2之前的,在/boot/grub/menu.lst或者grub.conf裡面修改。把windows那塊放在前面即可;

grub2:把/etc/grub.d/目錄下的os-prober前面的數字改小一些,小到比linux還小一級就行了。再update-grub,一勞永逸,以後公升級也不怕了。

8.  附:在vmware workstation中使用red hat 9.0進行2.4公升級2.6.13的一些注意事項

(這部分內容主要來自於和已經寫入實驗報告中)

make menuconfig需要進行以下修改:

device drivers->scsi device support-><*>scsi device support

device drivers->scsi device support-><*>scsi disk support

device drivers->scsi device support->scsi low-level drivers-><*>buslogic scsi support

file systems-><*>ext3 journalling file system support

file systems->[*]ext3 security labels

file systems->[*]jbd (ext3) debugging support

device drivers->network device support->ethernet (10 or 100mbit)-><*>amd pcnet32 pci support

device drivers->ata/atapi/mfm/rll support-><*>include ide/atapi cdrom support

make install的時候可能會出現如下錯誤資訊:

no module buslogic found for kernel 2.4.20

mkinitrd failed

解決方法:

把 /sbin/mkinitrd中

for n in $scsimodules; do

# for now allow scsi modules to come from anywhere. there are some

# raid controllers with drivers in block/

findmodule $n

done

修改為#for n in $scsimodules; do

# for now allow scsi modules to come from anywhere. there are some

# raid controllers with drivers in block/

#findmodule $n

# done

另外,在red hat9.0中安裝vmtools時,不要更改gcc路徑,螢幕解析度選擇安裝red hat時選擇的大小,否則容易出錯。

9.  從windows複製到虛擬機器的linux的**可能總提示語法錯誤(即使沒有),這時dos2unix filename也許能幫上忙。(寫指令碼程式時遇到的問題)

Linux核心 5 系統呼叫與核心編譯實驗

今天在做linux系統呼叫與核心編譯的實驗,主要任務有兩個 1 新增乙個新的系統呼叫 mysyscall 功能僅為列印一條語句。2 編譯核心。實驗步驟如下 1.2.以root登入,將核心包複製到usr src下 cp linux 2.6.36.tar.bz2 usr src 3.解壓 tar xjv...

實驗 手動編譯安裝LINUX核心及解除安裝

一.編譯安裝核心 解壓到特定的目錄 tar xvf linux 4.20.12.tar.xz c usr srccd usr src linux 4.20.12 cp boot config uname r config 編譯之前可以看看幫助資訊 make help 清理可能的編譯殘留 make m...

編譯 linux 核心

一 準備工作 tpv te0 首先說明,下面帶 號的行都是要輸入的命令列,且本文提到的所有命令列都在終端裡輸入。ixpub技術部落格 rc0p a6zx j 啟動linux系統,並用根使用者登入,進入終端模式下。6i sb w,a0 ixpub技術部落格c gng,y y ixpub技術部落格 k,...