Micro2440 内核定制实践1
来源:互联网 发布:新手怎么做淘宝刷好评 编辑:程序博客网 时间:2024/06/05 16:33
课堂实践:
我们不需要按照教材上通过一个“干净”的内核来移植Linux,而且内核源文件中也没有本节内容提及的s3c2440_defconfig。
使用Micro2440开发板附带光盘提供的内核进行移植,内核源文件为linux/linux-2.6.29-mini2440-20090708.tgz,配置文件使用内核源文件目录下的config_mini2440_t35。
首先设置交叉编译环境
步骤1:
#cp config_mini2440_t35 .config
# make menuconfig
步骤2:
参照前面的内容配置内核
步骤3:
#make zImage
生成的zImage文件在“/arch/arm/boot/”目录下面
1、使用第7章编译的u-boot,通过nfs或者tftp启动编译好的linux内核。
2、通过nfs或者tftp启动linux内核,并指定根文件系统的位置。
root=/dev/mtdblock2 rootfstype=yaffs2 console=ttySAC0,115200
此时看到的结果,就像我们以前从flash启动开发板一样了。
问题:为什么根文件系统是mtdblock2,而不是mtdblock3,或者mtdblock4?(提示:请查看内核启动时显示的信息)
------------------------------------------------------------
其实,主要是想通过nfs或者tftp来加载内核,之后再加载Nand flash上的根文件系统。
我这边是用nfs服务来加载内核的。
setenv bootcmd 'nfs 0x30008000 192.168.1.5:/nfs/micro2440/zImage.img;bootm'
直接 输入boot 开始下载内核并加载Nand flash上的根文件系统啦。
这里要注意的是,别忘了,编译了内核以后,要用mkimage工具处理下。
制作内核映像的命令示例:
./mkimage -n 'tekkaman' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -d zImage zImage.img
至于那个问题,
问题:为什么根文件系统是mtdblock2,而不是mtdblock3,或者mtdblock4?(提示:请查看内核启动时显示的信息)
之前有强调要在u-boot中,设置bootargs为
root=/dev/mtdblock2 rootfstype=yaffs2 console=ttySAC0,115200
往上拉,观察下内核的加载过程。发现了
我们要做的是,正确的设置U-boot,让U-boot能 正常的找到原来Nand flash上的根文件系统,也就是截图中圈住的root分区,很明显,2.6.29的内核分区情况是vivi--kernel--root,分区号从0开始,所以root分区就成了分区2了,所以才会用mtdblock2而不能用mtdblock3、mtdblock4的原因。
通过查看内核源码arch/arm/plat-s3c24xx/common-smdk.c文件,也能发现
static struct mtd_partition smdk_default_nand_part[] = {
[0] = {
.name = "arm2440_uboot",
.size = 0x00040000,
.offset = 0x00000000,
},
[1] = {
.name = "arm2440_kernel",
.offset = 0x0004C000,
.size = 0x00200000,
},
[2] = {
.name = "arm2440_yaffs2",
.offset = 0x0024C000,
.size = 0x03DB0000,
}
};
- Micro2440 内核定制实践1
- Micro2440 内核定制实践2
- Micro2440-利用nfs和tftp引导内核
- 定制内核
- Micro2440 U-boot 编译实践 增加U-boot命令
- FreeBSD内核定制参考
- FreeBSD内核定制参考
- WinCE内核定制
- 建立一个定制内核
- WINCE6.0内核定制
- Linux上定制内核
- Fedora定制内核
- 内核定制问题
- CentOS内核定制
- 内核模块定制,添加
- linux内核定制详解
- 定制自己的内核
- 定制内核(摘抄)
- [MySQL生产环境复制故障修复] Last_IO_Errno: 1045 Last_IO_Error: error connecting to master 'replication@
- 常用到ubuntu命令1
- 设计模式(c++)笔记之十五(State模式)
- 关于git 仓库的创建
- Bit、Byte、Word、DWord之间的关系
- Micro2440 内核定制实践1
- 查找CPU使用率最大的线程
- 正则表达式
- SQL_Plus操作命令
- UVa 11234 Expressions (二叉树重建&由叶往根的层次遍历)
- 消灭Bug!十款免费移动应用测试框架推荐
- h3c低端路由器DDNS配置样例
- Notes和关系数据库的连接(三部曲之一 -- DECS)
- (DS1.5.8)POJ 1338 Ugly Numbers(寻找因子只含有2||3||5的数)