基于OMAPL:Linux3.3内核的编译

基于OMAPL:Linux3.3内核的编译

OMAPL对应3个版本的linux源代码,分别是:Linux-3.3、Linux-2.6.37、Linux2.6.33,这里的差距在于Linux2,缺少SYSLINK支持组件。

这里我们选择Linux-3.3版本进行开发。

开发前准备

  • mkimage的工具:sudo apt-get install u-boot-tools
  • menuconfig组件库安装:apt-get install libncurses5-dev
  • 正确配置arm-none-linux-gnueabi的环境
  • 内核源文件:linux-3.3.tar.bz2(一定要用TI提供配套OMAPL的,不是随便找个Linux3.3就可以的)

内核编译过程

  • 解压内核到~/work内核路径为~/work/linux-3.3
  • 进入Linux内核路径`~/work/linux-3.3
  • 清理内核(一个字儿都不能少)

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean

配置内核

配置内核很关键,有些童鞋说,人家的内核编译了5分钟就结束了,怎么我的1个小时还没编译完,很有可能就是很多地方对于这个板子没有用的部件你没有删除掉,一般原厂都会有个推荐配置,当然了,TI的OMAPL138也是提供了推荐配置的。

创龙公司给出的配置为,执行命令:

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- da850_omapl138_tl_defconfig

我使用的是德州仪器给的配置,则执行命令:

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- da850_omapl138_defconfig

当然这不是瞎编的,内核中包含的配置文件在,以下的目录:

./arch/arm/configs

ls以下会看到很多配置:

我们使用画横线的配置信息。

  • 使用make menuconfig写入配置信息

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig

直接Exit就可以,然后就会写入配置信息了。

在这个menu里面我们配置驱动或者内核其他的组件机制,是否编译到内核中,这个根据自己需求进行,初学者可能对于这个地方没有多少概念。可参考韦东山《嵌入式Linux完全开发手册》的编译内核章节,上面有目录规则和解说等。

编译内核

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage -j4

编译内核一般都会有各种各样的错误,去百度或者google清查。

编译完成后可以在内核源码的"arch/arm/boot"目录下找到 uImage。可以将 uImage 拷贝到正常使用的 SD 系统启动卡的 FAT32 格式的 boot 分区,方便以后 SD 卡启动方式时被 U-Boot 加载或者被烧写到 NAND FLASH 分区。

原文地址:https://www.cnblogs.com/sigma0/p/9149041.html

时间: 2024-11-08 23:04:40

基于OMAPL:Linux3.3内核的编译的相关文章

Linux3.4内核的基本配置和编译

转载自:http://www.embedu.org/Column/Column634.htm 作者:李昕,华清远见研发中心讲师. 了解Linux3.4内核的特性及新增功能,掌握Linux内核的编译过程及Linux内核配置选项的内容. [实验环境] ●主机:Ubuntu 10.10 (64bit):                ●目标机:FS_S5PC100平台:                ●交叉编译工具链:arm-eabi-4.4.0(Android4.0.4自带交叉工具链): [实验步骤

Linux内核@系统组成与内核配置编译

Linux系统由什么组成? 由用户空间(应用程序+GNU C标准库)和内核空间(系统调用接口+内核+内核架构代码)组成. Linux内核到底是什么?以及组成. ARM的七种操作级别? 内核网络协议栈(Network Stack)的作用? 为Linux提供了丰富的网络协议(TCP/IP.PPPOE)实现.将网络协议栈放在内核中为了提高网络性能,减少CPU开销. 虚拟文件系统的作用? 为了支持多种文件系统,并为它们提供统一的操作接口. Linux内核源代码结构 关于每个文件夹中的具体内容分析:参考h

inux内核的编译与安装 (转)

转自:http://blog.csdn.net/liuqinstudy/article/details/9055935 步骤: 1.首先下载你想要编译的内核版本:linux-3.2.1.tar.bz2. 2.进入root权限把刚下载的内核代码复制到/usr/src目录下面去. 3.在/usr/src目录下面解压刚才下载的内核代码:tar   -xjvf  linux-3.2.1.tar.bz2,解压完成后进入相应的linux-3.2.1           目录,以后的工作都会在这个目录下面完成

【FL2400】Linux3.0 内核移植 一

接触arm + Linux已经将近两年了,之前都是站在大神的肩膀上来移植linux内核,对很对要求移植的东西都不是很懂!为了进一步深入对内核的了解,我决定重新从头开始对linux内核进行移植.这次移植完全是从一个新手的角度进行移植,包括可能出现的问题,以及出现的问题如何解决. 环境: 操作系统: CentOS 6.2 编译环境:gcc version 4.3.6 (Buildroot 2011.11) 开发板    : 飞凌2440(s3c2440)(arm920t) u-boot    :u-

于Linux-2.6.32内核上编译ipset-6.23的坎坷经历

新版本的ipset 上周在儿童医院给小小看病等待叫号的间隙,收到了Netfilter邮件列表的推送消息,一览了ipset最新的6.23版本的新特性,很多正是我目前所需要的,特别是timeout和skbinfo参数的支持,具体的详情请自行查看manual,如果不想看那么多,我这里简单的贴一下:    timeout       All  set  types  supports the optional timeout parameter when creating a set and addin

基于Hi3716cV200的Android源码编译问题---fastboot-burn.bin

在编译源码时有时会报与"fastboot-burn.bin"有关的错误. 解决办法如下: 进入device/hisilicon/bigfish/sdk目录,一次执行 make hiboot_clean; make hiboot_install. 如果在这个过程中报弄cfg.mak文件的错误,解决办法之一是在Android源码根目录进行一次完整编译,直到出错停止,此时会生成cfg.mak文件:解决方法之二是从sdk/configs拷贝单板配置文件到sdk目录并改名为cfg.mak. ==

Linux内核学习--写一个c程序,并在内核中编译,运行

20140506 今天开始学习伟大的开源代表作:Linux内核.之前的工作流于几个简单命令的应用,因着对Android操作系统的情愫,"忍不住"跟随陈利君老师的步伐,开启OS内核之旅.学习路径之一是直接从代码入手,下面来写一个hello.c内核模块. 说明: 这个路径/usr/src/linux-headers-2.6.32-22/include/linux是引用的头文件. 内核模块固定格式:module_init()/ module_exit(),module函数是从头文件中来的.

Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装

原文:Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装 Linux内核分析(一) 从本篇博文开始我将对linux内核进行学习和分析,整个过程必将十分艰辛,但我会坚持到底,同时在博文中如果那些地方有问题还请各位大神为我讲解. 今天我们会分析到以下内容: 1.      Linux体系结构简介 2.      Linux内核源码简介 3.      Linux内核配置.编译.安装 l  Linux体系结构简介 1.       Linux体系结构(linux系统构成)

基于x86架构的内核Demo的详细开发文档

http://hurlex.0xffffff.org/ 这里是hurlex这个基于x86架构的内核Demo的详细开发文档, 包含PDF文档和生成PDF的XeLaTex源码和文档每章节的阶段代码. 你可以按照如下步骤获得整个项目代码. $ git clone https://github.com/hurley25/hurlex-doc.git