linux 内核移植(基本框架)

一.获得linux源码

二.解压系统源码

解压命令

Gzip -v rootfile   压缩一个文件rootfile

Gunzip rootfile.gz  解压缩一个文件

Tar命令

既可以压缩文件也可以解压缩文件,

决定于tar命令后面所跟参数

-A将文件添加到现有的tar

-c表示创建新的tar

-t列出tar包中的内容

-xtar包中解压文件

-f指定tar文件的名称

-jbzip2/bunzip2来压缩和解压tar包,后缀为.tar.bz2

-zgzip/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

根文件系统制作完成

之后还有各种驱动的移植

驱动只有移植进内核才能起到作用

————————————————————————————嵌入式的开始

 

你可能感兴趣的:(linux,flash,makefile,框架,network,嵌入式)