linux 内核移植(基本框架)

一.获得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

根文件系统制作完成

之后还有各种驱动的移植

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

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

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值