新闻中心

EEPW首页>嵌入式系统>设计应用> minis3c2440移植之文件系统移植

minis3c2440移植之文件系统移植

作者: 时间:2016-11-24 来源:网络 收藏
说在前头:linux重要的常见系统文件都含有以下的文件,我们所做的就是要编译生成这些文件。
bin普通文件目录(里面是普通的shell脚本命令二进制文件)
sbin 系统文件目录(里面是系统文件的shell脚本命令二进制文件)
dev设备文件目录(里面是对一些外设的驱动配置如:网卡驱动)
etc配置文件目录
lib库文件目录(里面是系统调用时一些常用到的静态和动态库)
proc 内存文件目录(一般作为内存映射)
mnt外部设备挂目录(常见的CD/DVD,USB外设都会挂在次目录下)
tmp
对于我们现在来说的动作就具体的编译生成这些文件,首先用的是busybox- 1.13.1编译工具直接生成bin和sbin这两个系统文件,其次是手动的建立其他的文件目录,最后一起编译生成root.cramfs系统文件。而我们所用的busybox-1.13.1也是支持多种体系的,自然而然适用于s3c2440的板子。
一、用busybox-1.13.1工具生成bin和sbin文件
1、 将busybox-1.13.1.tar的压缩包拷贝到linux的根目录下,进行解压。
2、 进入busybox-1.13.1的目录下,修改Makefile配置文件如下
189行:ARCH?=arm
164行:CROSS_COMPILE?=arm-linux-
3、 make menuconfig保存后会在当前的目录下生成.config
4、 cp scripts/defconfig .config将默认缺省的配置拷贝到.config文件中
5、 导入环境变量export PATH=/armtools/bin:$PATH
6、 make之后make install之后会在当前的目录下生成_install的目录,在此目录下的usr目录下就是我们需要的bin和sbin文件。
二、手动创建其他所需要的文件系统
1、 在linux的根目录下创建testfs/rootfs目录,然后进入testfs的目录下将步骤一中生成的_install文件全部拷贝到rootfs的目录下等待编译。cp –raf /busybox-1.13.1/_install/* rootfs/
2、 在rootfs的目录下手动创建mkdir sys etc tmp proc lib dev目录
3、 在dev的目录下设置设备串口结点:
mknod –m 666 console c 5 1
mknod –m 666 zero c 1 3
4、 在armtools下的库文件全部拷贝到lib目录下以待arm板子的系统和文件调用cp -raf /armtools/arm-linux/lib/* rootfs/lib/然后在roofs/lib的路径下rm *.a删除所有以”.a”为结尾的静态库文件(也可以不删除,一般为了减小最后生成的文件系统的大小就删掉了)。
5、 在etc的目录下touch inittab,再在此文件中编辑系统初始化文件:
::sysinit:etc/init.d/rcS和::sysinit:/bin/sh(shell的执行路径)。
6、 再在etc的目录下创建上面所需要的路径以及文件mkdir init.d,然后进入此文件夹touch rcS,接下来在此文件中编辑挂载的路径:
#!/bin/sh
/bin/mount –a
7、 再在etc的目录下touch fstab,在此文件中编辑
None /proc proc defaults 0 0表示将proc文件挂载到/proc的目录下
8、 退出导testfs目录下准备编译文件系统mkfs.cramfs /rootfs root.cramfs
意思是将rootfs的文件压缩生成以”.cramfs”为格式的root.cramfs文件系统。
说明:生成的root.cramfs的大小必须和文件系统烧录是的大小一致(要求是烧录时的大小至少大于文件系统root.cramfs的大小),否则将不能完整的将整个文件系统烧录到flash中,最终导致系统不能正常运行。


评论


技术专区

关闭