一.获得linux源码
二.解压系统源码
解压命令
Gzip -v rootfile 压缩一个文件rootfile
Gunzip rootfile.gz 解压缩一个文件
Tar命令
既可以压缩文件也可以解压缩文件,
决定于tar 命令后面所跟参数
-A将文件添加到现有的tar包
-c表示创建新的tar包
-t列出tar包中的内容
-x从tar包中解压文件
-f指定tar文件的名称
-j用bzip2/bunzip2来压缩和解压tar包,后缀为.tar.bz2
-z用gzip/gunzip来压缩和解压tar包,后缀为.tar.gz
&tar –xvf xx.tar -C /usr/local
展开此压缩文件,并释放到/usr/local
三.在系统中添加对ARM的支持
修改Makefile文件,添加对ARM体系的支持
四.修改平台输入时钟,添加对开发板的支持
五.制作针对于开发板的配置单
&make menuconfig
配置完成后保存配置单
六.修改机器码
机器码需要与bootloader中的机器码一致
七.编译镜像
&make zImage
镜像所存的位置是在内核中配置好的,如果需要更改zImage 需要更改内核中的配置选项
以上仅仅是能够引导了,因为还未做nand flash 方面的移植
八.Nand flash 驱动移植
修改源代码添加 u_boot kernel 和文件系统的读取起始地址
修改nand flash 读写匹配时间(可以不做这件事)
添加对大容量的nand flash 分区的支持
添加对应的驱动配置,make menuconfig
根据nand flash 的大小,添加相应容量支持,
&make zImage 编译内核,
内核的编译完成
移植yaffas 文件系统
一.获取yaffas 源码
获取yaffas补丁
解压补丁,打上补丁
二.在配置单中添加对yaffas的支持
三.编译出内核
这样yaffas文件系统就算是移植完毕了,下一步就是制作yaffas文件系统了
制作文件系统,首先要用busybox编译出文件系统所用的应用程序,然后再做文件系统
一,编译busybox
1. 获得busybox源码
修改并配置busybox(主要是添加对交叉编译和arm架构的支持)
(遇到错误编译不过去;有关于网络变量的重定义;)
解决方法:根据错误找到源码,修改源码或者修改配置单不选择该项;
因为此错误跟Network有关,我不能确定具体跟哪一项有关所以,我将所有跟网络有关的选项去掉,问题暂时解决
2.&make;make install 编译并安装busybox
3.构建文件系统
新建文件目录root_2.6.25.4
构建框架,复制busybox 生成的-install下的文件夹bin sbin usr linuxrc
到 root_2.6.25.4
&cp -参数 source dest
-a 文件属性,权限,内容,照原样复制
-b 如果目标文件存在,就创造一个备份
-r 如果有子目录,子目录同样复制
-f 如果目的地有重复文件,则覆盖
-L 复制符号链接
复制多个文件命令
&cp -参数 source1 source2 source3 。。。。 dest
&cp –rf source+*
创建 dev etc home lib opt mnt proc root sys
Tmp var web
在usr 下创建 lib 和 share
4.添加内容
在dev目录下添加两个特殊设备文件
&mknod console c 5 1
&mknod null c 1 3
Etc目录存放系统配置文件
在etc下添加特定的文件及内容
建立各个不同的文件夹并添加不同的内容
建立完基本的文件框架
进行编译
&makeyaffasimage_2 root_2.6.25.4 root_2.6.25.4.bin
根文件系统制作完成
之后还有各种驱动的移植
驱动只有移植进内核才能起到作用
————————————————————————————嵌入式的开始