历史上的今天
今天是:2025年07月26日(星期六)
2021年07月26日 | 移植Linux-2.6.30.4内核之根文件系统构建
2021-07-26 来源:eefocus
上一次只移植完成了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 然后在 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 复制出来,烧写到开发板中,就可以运行了。运行成功如下图所示:
史海拾趣
|
时间触发嵌入式系统设计模式:使用8051微控制器开发可靠应用(含光盘源代码下载) 时间触发嵌入式系统设计模式:使用8051微控制器开发可靠应用(含光盘源代码下载) 目录: 第1章 什么是时间触发的嵌入式系统 1.1 引言 1.2 信息系统 1.3 桌面系统 1.4 实时系统 1.5 嵌入式系统 1.6 事件触发系统 1.7 时间触发系统 1.8 小结 ...… 查看全部问答> |
|
如果我说造飞碟,你认为是天方夜谭那么我告诉你,你落后了。在网上有几千UFO研究者和制造者!以下是关于飞碟制造的资料和设计参考!!! 瑟尔效应反重力研究群: 永动机: 分别介绍我所有的资料: 1、纳粹德国飞碟制造: &n ...… 查看全部问答> |
|
speic电路问题,计算和仿真都可以但就是做出来有问题,请教大家啦!! 按照speic电路模型,计算出L1=L2=100uH,(用工字电感)。Cs是用22uF的极性电容,mos管用IRF540N,pwm 20k,输出电容为104和10uF的极性电容,负载280欧,二极管用IN5822肖特基二极管,输入用5v但无论怎么改变占空比输出都是0.不知道什么原因… 查看全部问答> |
|
1 装好Linux后,开启相应的服务及软件,包括:tftp,NFS,Samba,使用apt-get install安装即可。 安装ti-sdk-am335x-evm-05.03.02.00-Linux-x86-Install 后,可运行其中的setup.sh 装好后即设置交叉编 ...… 查看全部问答> |




