Linux移植【0】NandFlash无法挂在根文件系统
来源:互联网 发布:校园网限制mac地址 编辑:程序博客网 时间:2024/05/01 06:02
最近在做移植内核的工作,将遇到的问题以及解决问题的过程记录在这里。
在将Linux2.6.30.4内核移植到TQ2440开发板后,启动后会出现下列错误:
刚开始怀疑是NandFlash分给内核的空间太小。因此想把空间扩大一些,但是只把内核中common-smdk.c中关于nandflash的分区表调整是不可以的,还要与Uboot中nandflash的参数保持一致才可以。由于之前烧写的Uboot是现成的,没有自己编译。这样一来还要自己重新编译Uboot。
★关于Uboot的配置和编译
◇关于Uboot的配置
在Uboot的顶层Makefile中有这样的代码:
这些代码是用来在日后配置Uboot使用的。
在include/configs下新建一个头文件来存放开发板的配置信息:
在这个头文件中就存放了关于Nandflash的分区参数,下图就是关于分区的代码,将其修改为4M
然后通过make EmbedSky_config来配置,通过make all 编译出可执行文件。然后重新烧写程序后,问题依旧存在
★关于yaffs2文件系统的支持
将思路转到yaffs2文件系统上来。由于内核linux-2.6.30.4不支持yaffs2文件系统,需要打补丁。方式如下:
◇下载文件:git clone git://www.aleph1.co.uk/yaffs2
然后可以通过两种方式来讲yaffs2文件添加到内核中。一种是使用patch-ker.sh,它会自动将yaffs2文件夹中的Makefile、Kconfig、以及一些文件拷贝到内核中的fs目录下面。第二种方法就是手动操作,我采用的是第二种方式:
◇将yaffs2文件夹拷贝到内核的fs目录下面
◇修改与fs目录下的Makefile和Kconfig文件
在Kconfig中添加“source "fs/yaffs2/Kconfig"”
在Makefile中添加“obj-$(CONFIG_YAFFS_FS) += yaffs2/”
◇对yaffs2文件夹的内容进行修改
在yaffs2中有Kconfig_multi和Kconfig_single以及Makefile和Makefile.kernel
首先将Makefile去掉然后将Makefile.kernel修改成Makefile,然后选择Kconfig_multi作为Kconfig。这里要将其他的文件也要进行修改(将文件名中带有_multi后缀去掉,否则编译会出错)
然后在内核配置选项中将其添加到内核中
然后重新编译内核,就成功了。之前的错误就是因为使用了Kconfig_single这个配置文件的原因
- Linux移植【0】NandFlash无法挂在根文件系统
- Linux在启动时利用NFS方式挂在根文件系统时无法初始化console的问题
- 利用nfs挂在根文件系统
- NandFlash驱动和Yaffs文件系统的移植
- NandFlash驱动和Yaffs文件系统的移植
- NandFlash驱动和Yaffs文件系统的移植
- NandFlash驱动和Yaffs文件系统的移植
- Linux无法挂在ntfs格式设备
- Linux内核及文件系统移植之jffs2烧录后无法启动
- nandflash文件系统
- 关于把yaffs2文件系统移植到lpc3250的nandflash上:
- 如何挂在ubifs文件系统
- OK6410挂在nfs文件系统
- sshfs 远程挂在文件系统
- sshfs 远程挂在文件系统
- sshfs 远程挂在文件系统
- centos挂在ntfs文件系统
- Linux内核移植和根文件系统制作
- Reproducible Research in Computational Science
- Android View系统解析(上)
- HDU 2473 并查集
- [hadoop]hadoop机架感知
- 2016 广东移动计算机类暑期实习面试经历 西安站s
- Linux移植【0】NandFlash无法挂在根文件系统
- DownloadManager
- Markdown语法
- golang 爬虫(二)
- 欢迎使用CSDN-markdown编辑器
- PUPPET安装及PUPPET KICK 配置
- linux内核流控(traffic control)相关概念
- iOS多线程网络详解(一)
- (礼拜五log)仅针对firefox的css hack方法 另:附加几个css hack方法