前面一篇文章http://www.cnblogs.com/linzizhang/p/4817336.html介绍了开发板上系统软件的第一部分--bootloader的编译方法。

  背景:把bootloader烧写到开发板的Nand Flash中后,开发板从Nand启动,硬件会自动将bootloader加载到内存中运行,bootloader将板载资源都初始化完成后,会停留在一个命令行界面,接收并执行用户敲入的命令。这时候用户可以通过命令控制开发板,比如查看参数列表:print、读写nand:nand read\nand write 、内存管理:mm、设置参数列表:setenv、网络下载:tftp、启动内核:bootm等等。如果我们把一个编译好的内核通过tftp服务器下载到内存中,就可以通过bootm 命令启动内核。

  好吧,啰嗦了、、、下面回到正题-----内核的编译。

  编译适合开发板的使用的内核映像其实很简单,无非就是配置然后编译。当然最麻烦的就是配置了,因为配置的过程需要了解板子上都有哪些资源,都是什么型号,需要什么驱动等等,然后根据这些了解到的信息舍取。不过既然我们使用的是别人开发的开发板,那就说明厂家已经进行配置过,只要我们能拿到别人后的配置文件,再通过自己稍加修改,就能省掉很多麻烦。进入顶层目录,操作步骤如下:  

  1、配置内核:执行命令  make menuconfig ARCH=arm-linux 出现如下配置界面:

  

前面说了,这里可以根据板子的情况一项一项的选,但是笔者通常都是往下拉,找到一个 "Load an Alternate Configuration File"

的选项,使用厂家提供的配置文件,这样省时省力。配置完成后保存退出,进行下一步。

  2、编译内核:执行命令 :make uImage ARCH=arm CROSS_COMPILE=arm-linux- 。这是个挺漫长的过程,而且还可能出现编译错误,比如笔者就遇到一个问题,mkimage not found ,其实就是一个打包工具没找到,导致内核映像生成失败。后来发现这个工具是在uboot/tools目录中的,把工具复制到/bin目录中再执行一次编译命令即可。

  这两个步骤完成后用户可以在 arch/arm/boot/中找到uImage.bin文件,这是一个可以被启动的二进制文件,当然这里面还没有文件系统的代码,这将是下一篇文章的内容。

ARM开发板系统移植-----kernel的编译的更多相关文章

  1. ARM开发板系统移植-----u-boot的编译

    本文和另外两篇姊妹篇都是为了说明如何裁剪出适合在mini2440 开发板上运行的Linux系统,以记录自己的学习成果.其中本文先介绍了嵌入式系统的软件组成部分,然后介绍编译出适合在mini2440开发 ...

  2. ARM开发板系统移植-----rootfs的制作

    前面两篇文章分别介绍了mini2440开发板上运行的bootloader和kernel,到这里系统启动后其实是停留在一个“僵死”的状态---无法挂载根文件系统. 这里将介绍如何制作一个根文件系统,并且 ...

  3. 烧写ARM开发板系统教程----->uboot 、内核以及文件系统

    一.sd启动 将u-boot镜像写入SD卡,将SD卡通过读卡器接上电脑(或直接插入笔记本卡槽),通过"cat /proc/partitions"找出SD卡对应的设备,我的设备节点是 ...

  4. 列出当前ARM开发板系统加载的模块

    lsmod 列出当前系统中加载的模块,其中左边第一列是模块名,第二列是该模块大小,第三列则是使用该模块的对象数目

  5. iTOP-IMX6UL 实战项目:ssh 服务器移植到 arm 开发板

    实验环境:迅为提供的Ubuntu12.04.2 以及虚拟机 编译器:arm-2009q3 编译器 开发板系统:QT系统   开发板使用手册中给Windows 系统安装了 ssh 客户端,给 Ubunt ...

  6. 【记录】尝试用QEMU模拟ARM开发板去加载并运行Uboot,kernel,rootfs【转】

    转自:https://www.crifan.com/try_use_qemu_emulate_arm_board_to_load_and_run_uboot_kernel_rootfs/ [背景] 手 ...

  7. 使用arm开发板搭建无线mesh网络(二)

    上篇博文介绍了无线mesh网络和adhoc网络的区别,这篇文章将介绍无线mesh网络的骨干网节点的组建过程.首先需要介绍下骨干网节点的设计方案:每个骨干网节点都是由一块友善之臂的tiny6410 ar ...

  8. 【分享】iTOP4412开发板-Bluetooth移植文档

    [分享]iTOP4412开发板-Bluetooth移植文档 最近须要把Bluetooth移植到iTOP-4412 开发平台.查阅了相关资料,经过一段时间的研究.调试,最终成功的将蓝牙功能移植到了开发板 ...

  9. ubuntu 交叉编译qt 5.7 程序到 arm 开发板

    ubuntu 交叉编译qt 5.7 程序到 arm 开发板平台1 ubuntu 12.042 arm-linux-gcc 4.5.13 QT 5.74 开发板210 armcortex-A8 一 概述 ...

随机推荐

  1. 【基于spark IM 的二次开发笔记】第二天 树形结构

    MessageTreePlugin.java final MessageTreeTab messageTreeTab = new MessageTreeTab(); /** * Adds a tab  ...

  2. xom报错 Exception in thread "main" java.net.UnknownHostException: file

    Exception in thread "main" java.net.UnknownHostException: file at java.net.AbstractPlainSo ...

  3. hdoj 2502 月之数

    月之数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  4. Sublime ctags 函数跳转插件安装

    Sublime Text安装插件的方法,主要有以下两种: 1. 直接通过下载安装包安装 在编辑器菜单中点击“Preferences”–“Browse Packages…”打开插件安装目录,然后把下载的 ...

  5. Ajax 表单验证 实现代码

    兼容: opera 9.6 + chrome 2.0 + FF 3 + IE 6 效果:一边输入一边实现验证 image 环境:ruby 1.8.6 + rails 2.1.0 + windows 核 ...

  6. [ES7] Exploring ES2016 Decorators

    Original artial --> link How descorator looks like: @mydecorator function myFun(){ ... } Descorat ...

  7. [CSS] Targeting Elements with CSS Attribute Selectors

    Beyond classes and IDs CSS also provides selectors to target element based on their attributes. In t ...

  8. PreferenceActivity的使用

    PreferenceActivity是一个非常有用的基类,当我们开发Android项目时避免不了选项设置,这些设置习惯用Preference来保存.Android专门为这种Activity提供了便捷的 ...

  9. Linux shell的&&和||--转载

    Linux shell的&&和||   shell 在执行某个命令的时候,会返回一个返回值,该返回值保存在 shell 变量 $? 中.当 $? == 0 时,表示执行成功:当 $? ...

  10. hdu2039java

    三角形 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...