Linux-4.9.2内核在mini2440上的移植(五)——添加yaffs文件系统
本篇目标:为内核添加yaffs文件系统支持。
5.1.安装GIT工具
[email protected]:~/linux-4.9.2# apt-get install git
5.2获取yaffs2 源代码
(1)切换到根目录
[email protected]:~/linux-4.9.2# cd /root
(2)git源码
[email protected]:~# git clonegit://www.aleph1.co.uk/yaffs2
Cloninginto 'yaffs2'...
remote:Counting objects: 8052, done.
remote:Compressing objects: 100% (5133/5133), done.
remote:Total 8052 (delta 6386), reused 3635 (delta 2834)
Receivingobjects: 100% (8052/8052), 3.67 MiB | 81.00 KiB/s, done.
Resolving deltas: 100% (6386/6386), done.
5.3 为内核打上yaffs2 补丁
(1)将yaffs2代码加入内核
[email protected]:~#cd yaffs2/
[email protected]:~/yaffs2# ./patch-ker.sh c m/root/linux-4.9.2
5.4 配置和编译带YAFFS2 支持的内核
[email protected]:~/yaffs2# cd ..
[email protected]:~# cd linux-4.9.2/
[email protected]:~/linux-4.9.2# make menuconfig
移动上下按键找到FileSystems,如图
按回车进入该子菜单,再找到“Miscellaneousfilesystems”菜单项,如图
按回车进入该子菜单,找到“YAFFS2 filesystem support”,如图
按两下空格选中它,确保是*而不是M,这样我们就在内核中添加了yaffs2 文件系统的支持,按“Exit”退出内核配置。选中“Yes”保存。
5.5编译
[email protected]:~/linux-4.9.2# make -j8
[email protected]:~/linux-4.9.2# ./mkuImage.sh
之前说过一个问题,就是为什么不移植最新的linux内核,而是选择较新的内核,就是因为yaffs文件系统更新跟不上,最新的内核移植yaffs文件系统会有问题。这里可以到Yaffs文件夹内,运行
[email protected]:~/yaffs2# grep -rn " KERNEL_VERSION(4," *
yaffs_vfs_multi.c:60: (LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0))
yaffs_vfs_multi.c:244:#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,9, 0))
yaffs_vfs_multi.c:253:#if (LINUX_VERSION_CODE >=KERNEL_VERSION(4, 8, 0))
yaffs_vfs_multi.c:270:#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,9, 0))
yaffs_vfs_multi.c:804:#if LINUX_VERSION_CODE < KERNEL_VERSION(4,8, 0)
yaffs_vfs_multi.c:1578:#if (LINUX_VERSION_CODE >=KERNEL_VERSION(4, 9, 0))
可以看到,yaffs为4.9.0以下的版本做了适配,所以最新支持的内核可以是稍微大于4.9.0的一个版本,也就是4.9.2.