【Tiny4412--3】Kernel的配置、编译和移植

阅读说明

该系列文章,基于的平台均为Tiny4412SDK 1312;4G EMMC; 1G DDR3

带@lamar: 前缀的表示终端里面的命令
带@tiny4412: 前缀的表示开发板终端里的命令

前言

此处略

准备

  1. linux源码包,本文使用的是:linux-3.5-20140822.tgz
  2. dnw工具,详细配置请移步:dnw配置
  3. 交叉编译环境,详情请移步:编译环境搭建
  4. ubuntu 12.04

开始

==>>1. 配置和编译

1)解压

@lamar:tar zxvf linux-3.5-20140822.tgz
@lamar:cd linux-3.5

2)在该目录下我们可以看到已经存在了一些config项,具体的配置过程友善已经帮我们搞好了,这个后期会写一个专门的编译配置流程和原理,现在我们就暂时用现成的吧;拷贝4412的config到kernel的默认.config

@lamar:cp tiny4412_linux_defconfig .config
@lamar:make -j

具体操作如下:
【Tiny4412--3】Kernel的配置、编译和移植_第1张图片
最后,编译成功后,会有如下的提示(zImage编译后存放的路径):
【Tiny4412--3】Kernel的配置、编译和移植_第2张图片

注意:

我这个版本,友善提供的默认config项,好像有问题;编译出来之后kernel解压不出来,卡在解压的log上,后面发现是少了一个配置项,重新配置,重新编译就好了。具体操作如下:

@lamar:make menuconfig

.a:选择System Type
【Tiny4412--3】Kernel的配置、编译和移植_第3张图片
.b:去掉Support Trust….这个选项
【Tiny4412--3】Kernel的配置、编译和移植_第4张图片
配置完之后,直接起编译就行了。

==>>2. 用dnw进行移植

1)dnw的详细操作步骤参考博文:dnw配置
2)1中已经详细的描述了,烧写和启动过程;但是你会发现每次boot只能引导一次kernel,第二次起来的时候boot就找不到kernel了;我们每次都得重新烧kernel和设置bootm,这也太麻烦了!
~@~不过这里我们可以先把kernel拷贝到sd卡上,然后简单的通过设置bootm环境变量,让boot自动的去加载kernel;在boot界面下,我们可以执行如下操作:

.a:对sd卡进行分区(注意分区的格式),然后,把zImage拷贝到对应的分区里(一般选择sd卡的第一个分区,且分区格式为fat32);该部分内容在busybox文件系统的构建中会详细的描述:基于busybox的简单根文件系统构建

.b:设置好bootm的环境变量

/*加载mmc设备上的第一块分区的zImage,并引导内核*/
@tiny4412:set bootcmd "fatload mmc 0:1 0x40008000 zImage;bootm 0x40008000"
@tiny4412:save
@tiny4412:res

此时,应该就可以看到,boot自动的加载内核,解压……..

你可能感兴趣的:(Tiny4412)