说在前头: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中,最终导致系统不能正常运行。
关键字:移植
引用地址:
minis3c2440移植之文件系统移植
推荐阅读最新更新时间:2024-03-16 14:40
Qt 5.5.0-成功移植到TQ210
一、需要准备的资源下载链接地址: 1、ubuntu-14.04.3-desktop-amd64+mac.iso: http://cdimage.ubuntu.com/releases/ 2、qt-everywhere-opensource-src-5.5.0.tar.gz: http://mirrors.ustc.edu.cn/qtproject/official_releases/qt/ 3、最新交叉编译器下载地址(本人使用的是天嵌提供的编译器:arm-linux-gcc:4.4.6 (for TQ210 EmbedSky Tech)): http://www.veryarm.com/arm-none-linux-gnueabi
[单片机]
MSP430F5438A单片机基于SPI的FatFs移植笔记(一)
怎么说呢……太费劲了,前面的博客还烂尾了,主要是觉得自己在调试的过程当中思维太混乱。虽然说自己挖的坑,含着泪也要填上,这几个就先不填了吧我重新开个坑把调通的说清楚。 不管移植什么程序,最重要的就是, 不要自以为是 一定要先查资料,花一周查资料,查到查不到为止,否则你编了一半的程序再参考别人的,直接后果是你下不了决心推翻重来 1. FatFs移植要点: 相信能看到这个博客的都知道FatFs是什么了,目前应该是0.11版本,我就不多废话了,一个开源的文件系统,不全面的说,作用就是让你编程序操作写SD卡的内容能够被PC机读出来(有不对的话懂的大神请指正) 它的好处就是只要写底层的几个硬件驱动函数就OK了,上层的函数都已经写好了,
[单片机]
嵌入式Linux之我行——u-boot-2009.08在2440上的移植详解(三)
一、移植环境 主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器: arm-linux-gcc-4.3.2.tgz u-boot: u-boot-2009.08.tar.bz2 二、移植步骤 5)准备进入u-boot的第二阶段(在u-boot中添加对我们开发板上Nand Flash的支持)。 目前u-boot中还没有对2440上Nand Flash的支持,也就是说要想u-boot从Nand Flash上启动得自己去实现了。 首先,在include/configs/my2440.h头文件中定义Nand要用到的宏和寄存器,如下:
[单片机]
linux 2.6.24.4在S3C2410上的移植(CS8900网卡驱动)(基于GEC2410)
SMDK2410配置默认使用的是DM9000A的网卡,因此我们需要修改成CS8900A的网卡驱动. 网上找到移植方法有两种方法,一种是将以前版本的cs8900.c驱动拿过来用,只要在配置中增加ARM_CS8900选项,这个代码网上有很多,拿过来试了以下,的确没问题. 另一种方法是修改2.6.24.4自带的cs89x0.c驱动,这个驱动没有2410的直接支持,我们需要修改. 这里采用第二种方法.参考了网上很多方法,将我的步骤整理如下,如有错误,欢迎指正. 1.内核配置菜单 由于cs89x0驱动依赖于NET_PCI,见drivers/net/Kconfig depends on NET_PCI && (ISA || M
[单片机]
第一章、Tiny4412 U-BOOT移植一 说明
一、移植前说明: 1、 特别声明:此文档是我的学习文档,里面肯定有错误地方,仅供参考! 2、移植平台:友善之臂Tiny4412SDK1306平台。 3、移植系统:Ubuntu12.04 4、移植原始CODE:平台光盘中由Samsung提供的U-Boot-samsung-dev.tar.bz2。为什么用这个,只能说因为我也菜鸟,我找了u-boot官网最新的代码看了一下,我没有在boardsamsung目录下找到与Exynos4412芯片很相关的平台目录,估计是有的,只是由于我很菜,不清楚是那一个,为了省自学时间,还是用三星提供的U-Boot源码。 5、参考文档:各相关手册,主要手册是Exynos4412 RISC Microproc
[单片机]
u-boot-2016.09移植(6)-dm9000
TQ210的自带网卡是DM9000AE,u-boot已经自带了 DM9000A 的驱动,我们需要做的就是讲该驱动添加到我们的设备当中。 一、网卡启动分析 在board_init_r调用的init_sequence_r函数数组中找到网卡net信息 这里看出网卡信息是用宏CONFIG_CMD_NET来管理是否添加到uboot,所以需要在tq210.h中定义宏 接着看eth_initialize(),发现这个函数在net/eth_legacy.c中,其中主要执行的初始化为board_eth_init函数,发现在这个函数在tq210.c中 因为我们的网卡为DM9000,在DM9000的驱动找到相似的初始化,将其替换为D
[单片机]
μC/OS-Ⅱ在MC9S12A64上的移植及应用
自从嵌入式系统开发以来,很长时间都采用前后台系统软件设计模式:主程序为一个无限循环,单任务顺序执行。通过设置一个或多个中断来处理异步事件。这种系统对于简单的应用是可以的,但对于实时性要求比较高的、处理任务较多的应用,就会暴露出实时性差、系统可靠性低、稳定性差等缺点。uCOS—II是一种给予优先级的抢占式多任务实时操作系统,包含了实时内核、任务管理、时间管理、任务间通信同步(信号量,邮箱,消息队列)和内存管理等功能。它可以使各个任务独立工作,互不干涉,很容易实现准时而且无误执行,使得实时应用程序的设计和扩展变得容易,使得应用程序的设计过程大为减化。而且它内核源代码公开,移植性强,为编程人员提供了很好的一个软件平台。
1 uCOS
[嵌入式]
美首例机器人肝移植手术成功
移植外科医生阿迪尔·汗医学博士正在控制手术机器人。图片来源:圣路易斯华盛顿大学 据美国圣路易斯华盛顿大学医学院官网报道,该院一个外科团队今年5月完成了美国第一例机器人肝脏移植手术。术后一个月,患者不仅行走自如,还恢复了一定的运动能力。此次成功意味着微创机器人手术的优势扩展到了肝脏移植领域,可实现更小切口、更少疼痛和更快恢复,并且具备最有挑战性的腹部手术之一所需的精确度。 大多数移植手术无论是通过腹腔镜还是机器人进行,都过于复杂,不能采用微创方法,而肝脏移植尤其具有挑战性。患病的肝脏在手术切除过程中容易出血过多,而将新肝脏连接到患者的循环系统需要将几个微小的血管精细地缝合在一起。 此次的机器人手术是一种微创手术。外科医生保持对机
[医疗电子]