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

本文详细介绍Tiny4412开发板上Linux 3.5内核的编译与配置过程,包括环境搭建、编译配置及常见问题解决,并指导如何通过dnw工具进行内核移植。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

阅读说明

该系列文章,基于的平台均为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

具体操作如下:
这里写图片描述
最后,编译成功后,会有如下的提示(zImage编译后存放的路径):
这里写图片描述

注意:

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

@lamar:make menuconfig

.a:选择System Type
这里写图片描述
.b:去掉Support Trust….这个选项
这里写图片描述
配置完之后,直接起编译就行了。

==>>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自动的加载内核,解压……..

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值