linux 内核移植(基本框架)

    技术2022-05-19  30

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

    根文件系统制作完成

    之后还有各种驱动的移植

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

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

     


    最新回复(0)