Step by step compile Linux kernel for Add F2FS
(base on Ubuntu10.04& 3.10.0+ Kernel)
(base on Ubuntu10.04& 3.10.0+ Kernel)
2013.7.9整理
編譯步驟:
2. 為了使編譯過程方便,建議進入root帳戶進行操作,這樣做使你不用每次都用sudo命令。(原作者不太確 定這樣做安全性是否可靠)
進入Termainal,執行: su root (我用這個才能進root: sudo
-s)
然後輸入你的Password,這一就 在root帳戶權限下進行剩下的操作了。
3.下載的Linux
source code是壓縮檔,需要解壓縮到目錄下:
tar -j x vf
linux-2.6.35.2.tar.bz2 -C /usr/src
4. 進入解壓後的目錄:cd
/usr/src/linux-2.6.35.2
F2fs_1. 在你指定的目錄中(~/Desktop/f2fs/),下載3.10.0+kernel:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git
F2fs_2.&
5. 檢查有無不正確的.o文件和依賴關係: make
mrproper ( 其實這一部可以省略,因為是剛下載好的source code,一定是乾淨的;如果使用的是已經編譯過的code,則需要做這一步)
F2fs_2.&
6. 配置Kernel選項: make
menuconfig (這一步很重要,它決定了你可以個人客製化你的Kernel。當你使用menuconfig時,會有一些選擇列出來) 主列表如下:
General Setup: 常規的配置,比如Kernel
config, CPU Group,Aduiting等等
Loadable module support: 客製化你要加載哪些modules
Enable the block layer: 主要是block設備和大文件的設置
Processor type and features: 處理器配置和特性
Power management options: 電源管理的客製化,比如Hibernate這種
Bus options: PCI總線的客製化
Executable file formats: 主要是設置ELF的配置
Networking support: 客製化網路選項,包括Wireless,Bluetooth和Network選項
Device Drivers: 客製化你需要加載的設備驅動
Fireware Drivers:
BIOS和EFI這樣的固件驅動設置
File System: 文件系统的設置,包括EXT3,
EXT4, FAT, CD/DVD...等等N種
Kernel hacking: 主要是設置Kernel
debugging的,做內核調試會有用
Security options: 安全選項
Cryptographic API: 加密設置,包括MD5,
SHA1, CRC等等N種加密算法的配置
Virtualization: 虛擬化設置
Library routines: 主要客製CRC校驗的function
上面是16大項,每一項都有n多小項,說真的這裡面每一項都夠研究一陣子的。不過對內核編譯而言,你可以全部採用默認選項(會延長編譯時間)。設置好了menuconfig,保存退出。
F2fs_3.&7.
建立Modules依賴關係: make dep
F2fs_4.&8.
刪除配置後剩下的不適用的文件:make
clean
F2fs_5.&9.
編譯內核:make
bzImage (這個會花些時間,看機器情況和menuconfig的定義而言。作者採用默認的設置,編譯時間花了20分鐘左右。如果kernel 小於512K,可以用make zImage命令)
F2fs_6.&10.
编譯内核模組:make
modules (這個也會花點時間,要看你客製化的modules數量而言。採用默認設置,花了大約25分鐘。你可以用make –j<n> 加快編譯速度,n代表你CPU的數量)
F2fs_7.&11.
安裝內核模組:make
modules_install
F2fs_8.&12.
安裝内核:make
install
13. 創建initrd文件: (1) cd / (2)
輸入: mkinitramfs
2.6.35.2 -o /boot/initrd.img-2.6.35.2-generic
F2fs_9.
創建initrd文件: (1) cd / (2)輸入: mkinitramfs
3.10.0+ -o /boot/initrd.img-3.10.0+
14. 拷貝編譯好的內核image: cp
/usr/src/linux-2.6.35.2/arch/i386/boot/bzImage /boot/vmlinuz-2.6.35.2-generic
F2fs_10.
拷貝編譯好的內核image: cp ~/Desktop/f2fs/f2fs/arch/i386/boot/bzImage
/boot/vmlinuz-3.10.0+
F2fs_11.&.15.
最後一步,修改Grub,更新啟動列表: update-grub (如須手動編輯grub.cfg,則在root帳戶下使用gedit就可以了)
(注:Ubuntu10.04已經使用了Grub2來管理啟動設置,而不是Grub,所以在以往的/boot/grub路徑下你是找不到menu.lst的, 因為Grub2已經使用了/boot/grub/grub.cfg來管理配置啟動設置,不過最好不要手動編譯這個文件,具體的方式是編輯/etc/default/grub和/etc/grub.d下的腳本文件。有關Grub2的詳細教程,請參考https://docs.google.com/Doc?docid=0AeVQ5PqmbeaoZGc0czgyOWtfMjRjbWo0ODVoYw&hl=en )
F2fs_11.&
16. Reboot機器,然後Enjoy
it!
實際執行截圖:
1.
格式化: mkfs.f2fs –l label /dev/sdb
2.
掛載: sudo mount –t f2fs /dev/sdb /mnt/f2fs
3.
Check設備是否完成掛載: df
4.
Check
設備file
system type: df -T
5.
Menuconfig中和f2fs相關的選項
Reference:
blog.csdn.ntw/zufeng_chen/article/details/5824544
沒有留言:
張貼留言