移植Linux-2.6.30.4内核之根文件系统构建

上一次只移植完成了linux-2.6.30.4内核,用的是天嵌自带的根文件系统,这次尝试自己制根文件系统。可以按照以下步骤来进行:
在这里插入图片描述

1、移植yaffs2文件系统

现在内核里边还不支持yaffs2文件系统,需要在内核中添加对yaffs2的支持

下载yaffs2的源码,之前天嵌给的源码网址早就不能用了,后来找了好久才下载到。
得到源码后,然后打上 yaffs2 的补丁,方法如下:
#cd yaffs2/ (进到 yaffs2 的补丁目录下)
#./patch-ker.sh c m ~ /sky/kernel-2.6/linux-2.6.30.4/
(执行补丁脚本,打补丁到内核中)
注意第二个参数m/s,要特别注意如果不是最新的linux内核就要使用参数m而不是s,否则内核编译时就会发生错误。–因为这个错误找了半天资料。。。。
执行命令行成功会显示以下信息:
在这里插入图片描述
如果显示其他则代表有问题。

在配置单中添加对yaffs2的支持:make menuconfig
在这里插入图片描述
在配置单的文件系统里选上对yaffs2的支持。
配置好之后,编译出镜像。到这一步就算是把 yaffs2 文件系统移植完毕了,下面就开始制作 yaffs2 文件系统。

2、配置串口驱动

因为在根文件系统的“etc/inittab”文件中涉及到了串口的设置。所以这里还要完善一下内核的串口驱动。
修改Linux-2.6.30.4内核源码“arch/arm/mach-s3c2440/mach-smdk2440.c”文件的 100 行,将其改为:
.ulcon = 0x03,
修改 Linux-2.6.30.4内核的“drivers/serial/samsung.c”文件的 53 行添加如下内容:
#include <mach/regs-gpio.h>
然后在 433 行添加如下内容:
if (port->line == 2) {
s3c2410_gpio_cfgpin(S3C2410_GPH6, S3C2410_GPH6_TXD2);
s3c2410_gpio_pullup(S3C2410_GPH6, 1);
s3c2410_gpio_cfgpin(S3C2410_GPH7, S3C2410_GPH7_RXD2);
s3c2410_gpio_pullup(S3C2410_GPH7, 1);
}
然后再修改 888 行,内容如下所示:
.dev_name = “tq2440_serial”,
然后重新编译出镜像,烧写到开发板中。
注意:在前面使用默认配置单 s3c2410_defconfig 时已经完成了对串口的配置。

2、移植BusyBox

制作文件系统,首先需要用busybox 编译出文件系统所需要的应用程序,然后再做文件系统。
首先下载一个 busybox 的源码,到网页 http://www.busybox.net/downloads/,就可以下载了,这里用busybox-1.13.0.tar.bz2 源码包为例。
解压busybox,然后进到源码中,修改 Makefile 文件,把 164 行修改为:
CROSS_COMPILE = arm-linux-
把 189 行修改为:
ARCH = arm
然后输入:#make menuconfig,进入配置单:
在这里插入图片描述
发现这里和编译内核好相似啊,都有配置单。然后按照天嵌给出的配置选项配置就可以了。然后退出配置单,编译出 busybox 即可,使用命令:#make install,编译结束后会在busybox-1.13.0 目录下面生成一个名为“_install”的目录,这里边有一些构建根文件系统所必须的目录。

3、制作自己的根文件系统

首先新建一个文件夹root_2.6.30.4,复制刚刚编译出来的 busybox的“bin”目录、“sbin”目录、“usr”目录和“linuxrc”到“root_2.6.30.4”目录下,然后建立“dev”、“etc”、“home”、“lib”、“mnt”、“opt”、“proc”、“root”、“sddisk”、“sys”、“tmp”、“udisk”、“var”和“web”目录,同时在原有的“usr”目录下面新建一个“lib”和“share”目录。
在这些文件里边添加内容,具体内容我就不贴出来了,可以参考《天嵌移植手册》。
重点介绍几个目录:
/dev:该目下存放的是设备文件
/etc:用来存放系统的配置文件
/etc/init.d/rcS:想要实现开机自动运行某些程序只需要在本脚本中添加运行指令即可。
/lib:用来存放常用的库文件,获取库文件的方法(从 EABI-4.3.3 的编译器中提取库)
添加完这些目录和文件,文件系统的框架就基本搞好了,然后使用制作 yaffs 文件系统的软件,把它做出 yaffs 文件系统格式的镜像就可以使用了。使用如下命令制作:
#mkyaffsimage_2 root_2.6.30.4 root_2.6.30.4.bin
制作针对 128MB 以上的 Nand Flash 的文件系统使用:mkyaffs2image 的软件;该软件在交叉编译器里面已经提供了,安装交叉编译器的同时也就安装了它。
然后把制作好的镜像 root_2.6.30.4.bin 复制出来,烧写到开发板中,就可以运行了。运行成功如下图所示:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值