Linux-2.6.32.2内核在mini2440上的移植(四)
更新时间:2024-06-06 17:04:02 阅读量: 综合文库 文档下载
Linux-2.6.32.2内核在mini2440上的移植(四)---根文件系统制作(2)yaffs
移植环境(红色粗字体字为修改后内容,蓝色粗体字为特别注意内容) 1,主机环境:VMare下CentOS 5.5 ,1G内存。 2,集成开发环境:Elipse IDE
3,编译编译环境:arm-linux-gcc v4.4.3,arm-none-linux-gnueabi-gcc v4.5.1。 4,开发板:mini2440,2M nor flash,128M nand flash。 5,u-boot版本:u-boot-2009.08 6,linux 版本:linux-2.6.32.2 7,参考文章:
嵌入式linux应用开发完全手册,韦东山,编著。 Mini2440 之Linux 移植开发实战指南
http://linux.chinaunix.net/techdoc/system/2009/08/24/1131864.shtml 接上篇,问题的解决
解题思路:用tar 压缩我自己做的rootfs根文件系统打包, 这个系统是可以启动到NFS的,所以东西是全的。然后用nand flash 工具将nand flash的mtdblock3分区格式化后挂载,再将打包的rootfs下所有子目录和文件解压到此分区。 【4】挂载分区测试
按照之前内核引导参数的设定方式,将u-boot的bootgars参数设为nfs启动 [root@mini2440 /]#mount -t yaffs /dev/mtdblock1 /mnt/yaffs yaffs: dev is 32505857 name is \yaffs: passed flags \
mount: mounting /dev/mtdblock1 on /mnt/yaffs failed: Invalid argument [root@mini2440 /]#mount -t yaffs /dev/mtdblock0 /mnt/yaffs yaffs: dev is 32505856 name is \yaffs: passed flags \
mount: mounting /dev/mtdblock0 on /mnt/yaffs failed: Invalid argument [root@mini2440 /]#umount /mnt/yaffs
[root@mini2440 /]#mount -t yaffs /dev/mtdblock2 /mnt/yaffs yaffs: dev is 32505858 name is \yaffs: passed flags \
[root@mini2440 /]#ls -a /mnt/yaffs . .. lost+found
[root@mini2440 /]#umount /mnt/yaffs
[root@mini2440 /]#mount -t yaffs /dev/mtdblock3 /mnt/yaffs yaffs: dev is 32505859 name is \yaffs: passed flags \
[root@mini2440 /]#ls -a /mnt/yaffs . .. lost+found
[root@mini2440 /]#cat proc/mtd dev: size erasesize name mtd0: 00040000 00020000 \mtd1: 00020000 00020000 \mtd2: 00500000 00020000 \mtd3: 07aa0000 00020000 \mtd4: 08000000 00020000 \[root@mini2440 /]#
根据挂载的反馈信息,可以确定mtdblock0和mtdblock1分别是u-boot和其参数的分区而不能够被挂载,mtdblock2和mtdblock3分别是内核kernel和根文件系统rootfs分区能够被挂载。虽然成功挂载了yaffs文件系统,但不能从中读取因存在的文件信息。 【5】制作在nand flash操作工具mtd-utils工具 参考文章
mtd-utils工具的编译和使用 mtd-utils 及 i-utils 交叉编译
mtd-utils交叉编译 UBI文件系统简介
在ubuntu 10.04上交叉编译编译 mtd-utils 交叉编译libz, lzo, mtd-utils的脚本
对于mtd-utils工具的编译,可谓是费了不少周折,着重参考了上面几篇文章,可以用以下两种办法来解决其libz,lzo,uuid库的依赖问题 <1>手动安装mtd-utils所需要的库 A ,下载源代码:
zlib和lzo是编译mtd-utils所需库文件,需提前交叉编译完成,以供mtd-utils编译时调用 zlib:
http://www.zlib.net/zlib-1.2.5.tar.gz
http://www.dnaphp.com/downloads/server/linux/30-zlib-1-2-5-tar lzo:
http://www.oberhumer.com/opensource/lzo/download/,这里下载是lzo-2.05.tar.gz E2fsprogs:
http://e2fsprogs.sourceforge.net/,这里下载的是e2fsprogs-1.41.14.tar.gz mtd-utils:
ftp://ftp.infradead.org/p /mtd-utils/ 下载后
[root@localhost linux-test]# cd mtdtools
[root@localhost mtdtools]# ls
e2fsprogs-1.41.14.tar.gz mtd-utils-1.4.4.tar.bz2 lzo-2.05.tar.gz zlib-1.2.5.tar.gz
可以在打开的页面中下载最新版本,分别对其进行解压 [root@localhost mtdtools]# tar -zxf zlib-1.2.5.tar.gz [root@localhost mtdtools]# tar -zxf lzo-2.05.tar.gz
[root@localhost mtdtools]# tar -jxf mtd-utils-1.4.4.tar.bz2 -C ./ B,编译安装zlib
[root@localhost linux-test]# cd zlib-1.2.5
[root@localhost zlib-1.2.5]#CC=arm-linux-gcc ./configure --enable-static --disable-shared --prefix=/usr/local/arm/4.4.3/arm-none-linux-gnueabi [root@localhost zlib-1.2.5]# make [root@localhost zlib-1.2.5]# make install
检查: zconf.h 和 libz.a 都安装到了工具链目录.
其中-prefix指定zlib的安装路径,需要指定到交叉编译器所在路径,而且是与命令执行的bin文件夹同一级别的目录下而非软连接的bin目录! C,编译安装lzo
[root@localhost zlib-1.2.5]# cd ../lzo-2.05
[root@localhost lzo-2.05]#CC=arm-linux-gcc ./configure --host=arm-linux --enable-static --disable-shared --prefix=/usr/local/arm/4.4.3/arm-none-linux-gnueabi [root@localhost lzo-2.05]# make [root@localhost lzo-2.05]# make install 检查:liblzo2.a 已经拷贝到工具链的lib目录.
解决错误现象:error: lzo/lzo1x.h: No s h file or director D,编译安装e2fsprogs
配置e2fsprogs
[root@localhost e2fsprogs-1.41.14]#CC=arm-linux-gcc ./configure --host=arm-linux --prefix=/usr/local/arm/4.4.3/arm-none-linux-gnueabi 编译
[root@localhost e2fsprogs-1.41.14]# make
安装,因为我们只需要 uuid 库, 所以不需要完全安装, 查看 Makefile文件, 所以只执行make install-libs
[root@localhost e2fsprogs-1.41.14]# make install-libs
检查,可以在工具链目录看到, uuid/uuid.h 文件已经安装. libuuid.a 已经安装. 解决错误现象:uuid/uuid.h: No s h file or directory E,编译安装mtd-uitls
进入到mtd-uitls目录所在的目录,在make时需要指定交叉编译工具 [root@localhost lzo-2.05]# cd ../mtd-utils-1.4.4 [root@localhost mtd-utils-1.4.4]# mkdir mtd_install
[root@localhost mtd-utils-1.4.4]# export CROSS=arm-linux- [root@localhost mtd-utils-1.4.4]# export WITHOUT_XATTR=1 [root@localhost mtd-utils-1.4.4]# export DESTDIR=./mtd_install
需要指定WITHOUT_XATTR=1 是由于在编译 mkfs.jffs2使其不调用acl.h而是用zlib的库,否则出现
sys/acl.h:mkfs.jffs2.c:69:21: error: sys/acl.h: No s h file or directory 直接编译: make make install
检查1:mtdtools/mtd-utils-1.4.4/arm-linux(即所指定的CROSS)目录已经拷贝了所有mtd-utils的工具.
docfdisk flash_otp_info mkfs.jffs2.o nftl_format ubi-utils doc_loadbios flash_unlock mkfs.ubifs rbtree.o flashcp ftl_check mtd_debug recv_image [root@localhost mtdtools]#
其中mkfs.ubifs目录中存放的是制作ubifs文件系统映像的工具,ubi-utils目录中存放的是ubifs文件系统的操作工具。
接下来,将回到前面遗留问题即mtdblock分区加载和挂载根目录问题
正在阅读:
Linux-2.6.32.2内核在mini2440上的移植(四)06-06
毛巾发粘怎么办02-09
话剧剧本02-17
人教版小学五年级上册品社全册教案103-08
中国稀土行业发展趋势及投资战略规划研究报告2016-2021年05-07
人教版七年级生物下册全册教案 - 图文05-23
基于单片机的简易频率计06-07
舒适生活向“空调病”说不08-20
医院2019年社会治安综合治理(综治)工作实施方案03-08
课程论文11-13
- 企业安全培训试题题库
- 《WEB应用开发》复习题
- 2018届河南省新乡市高三第三次模拟测试英语试题Word版含答案
- 山东省建设工程优质结构评审标准(试行)
- 2016-2022年中国MEMS行业分析及发展趋势预测报告 - 图文
- 工程材料习题和练习 - 图文
- 2013--2014年小学六年级数学毕业水平检测卷及答案
- 江苏省2017-2018学年高考模拟历史试题分解(现代世界经济) Word版
- 移动通信实验指导书
- 2017-2018年最新审定新人教版六年级语文新人教版小学语文六年级
- 会展案例分析教案
- 数据库复习题
- 情智作文之学会选材
- 高一年级十月月考地理试题
- 河南省教育科学“十三五”规划2018年度一般课题立项名单
- 大学生宿舍文化现象调查与分析
- 山东省潍坊市2010届高三第二次模拟考试 理综 Word版
- 风险管理简答题
- 大连广播电视大学
- 民航安全管理经典论文
- 内核
- 移植
- mini2440
- Linux
- 32.2
- 2.6
- 教师业务学习笔记
- 20180327-第六届“中金所杯”全国大学生金融知识大赛参考题库
- CRH1型动车组应急故障处理手册 - 图文
- 《统计分析与SPSS的应用(第五版)》课后练习答案(第4章)
- 中西医结合医院持续改进细则 - 图文
- 变配电所运行管理办法(2013年修订稿)
- 2016国家公务员面试时政类题目答题技巧点拨
- 硅 酮 结 构 密 封 胶 使 用 工 艺 指 南 一
- 基于AT8435H步进电机《正式版》
- 2019版高考物理一轮复习 实验十二 验证动量守恒定律学案(无答案
- 幼儿园卫生保健工作内容与要求
- 加油站安全知识试题(答案)
- 2017-2021湘潭房地产行业市场前景预测分析与投资策略咨询(目录
- 七年级知识框架
- 低压电工证考试最终题库(附答案)
- 《我为班级献一计》主题班会设计(定稿)
- 最新人教版八年级语文下册教案
- 2012年中考数学命题趋势分析及复习办法
- 城市户外广告设施技术规范
- C语言实现栈的操作