近日按照《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,...