Linux开源模块移植概述暨交叉编译跨平台移植总结--摘自《嵌入式Linux驱动模板精讲与项目实践》

本文摘自《嵌入式Linux驱动模板精讲与项目实践》一书中的“开发与调试技巧”。

Linux的强大威力就在于有很多开源项目可以使用,通常很多需求可以通过寻找相关的开源模块做为快速解决方案。要把这些开源模块应用到嵌入式中,其中一个关键点就是要使用交叉编译工具对开源项目进行交叉编译。

根据具体情况,下载的开源项目在组织上有很多情况,在此对各种情况进行归类介绍。

1. 下载的开源软件包找不到Makefile

对于这种开源包通常是采用configure的方式组织的,那么第一步就是使用软件包中的configure生成Makefile文件。例如移植module-init-tools-3.2:

CC=arm-linux-gcc ./configure --prefix=/my_depmod --without-gun-ld --host=arm-linux

在./ configure之前指定交叉编译工具,指定安装路径为/my_depmod,后面选项是CPU相关的。各个选项可以通过./configure –help查看。

第二步,生成Makefile之后,打开Makefile就可以看到:

prefix = /home/xlong.lin/workspace/sample/module-init-tools-3.2/my_depmode

CC = arm-linux-gcc

已经自动生成了对应的交叉编译Makefile。

第三步,Make进行编译。

第四步,make install安装。在指定的安装路径下得到最终需要的目标文件或者是库。

第五步,为了确认,使用file查看所得到的文件是否是嵌入式CPU中可以执行的。

2. 有些源码包下载解压之后有Makefile的,同时里面有CC选项的,这种情况比较简单,只要修改CC等选项即可。

例如,移植goahead到单板上,解压之后Makefile中修改:

CC = arm-linux-gcc

AR = arm-linux-ar

然后Make编译即可。

如果Makefile中有CROSS_COMPILE也同样修改交叉编译工具即可。

3. 有Makefile但是找不到CC或者CROSS_COMPILE的情况。

这种情况采用 make CROSS= arm-linux-进行编译。

以上只对常见情况的交叉编译进行总结,无论哪种情况编译出来的都需要使用file工具确认是否交叉编译成功,是否可以在相应的CPU上执行。善于使用开源软件进行交叉编译移植可以快速的实现很多功能。

Linux开源模块移植概述暨交叉编译跨平台移植总结--摘自《嵌入式Linux驱动模板精讲与项目实践》,布布扣,bubuko.com

时间: 2024-10-14 10:46:16

Linux开源模块移植概述暨交叉编译跨平台移植总结--摘自《嵌入式Linux驱动模板精讲与项目实践》的相关文章

Linux开源模块迁移概述暨交叉编译跨平台移植总结--从《嵌入式Linux驱动模板简洁和工程实践》

本文摘录<嵌入式Linux驱动模板简洁和工程实践>一本书"开发和调试技术". Linux强大的是,有那么多的开源项目可以使用.通常非常需要可以通过寻找相关的源模块被定义为高速的解决方案.使这些开源模块的嵌入.对开源项目进行交叉编译. 依据详细情况.下载的开源项目在组织上有非常多情况,在此对各种情况进行归类介绍. 1. 下载的开源软件包找不到Makefile 对于这样的开源包一般是採用configure的方式组织的,那么第一步就是使用软件包中的configure生成Makef

linux驱动开发重点关注内容--摘自《嵌入式Linux驱动模板精讲与项目实践》

本文摘自本人拙著 <嵌入式Linux驱动模板精讲与项目实践> 初步看起来Linux设备驱动开发涉及内容非常多,而须要实现驱动的设备千差万别.事实上做一段时间驱动之后回首看来主要就是下面几点: (1)对驱动进行分类.先归纳为哪个类型的驱动.归类正确再利用内核提供的子系统进行开发,往往会发现事实上非常多通用的事情内核已经帮我们做了,一个优秀的驱动project师应该最大程度上利用内核的资源.内核已经实现的毕竟稳定性强.可移植性高. (2)找到内核的提供的子系统.接下来就是要制作该子系统对该类设备提

【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)

深入浅出嵌入式linux系统移植开发 (环境搭建.uboot的移植.嵌入式内核的配置与编译) 亲爱的网友,我这里有套课程想和大家分享,如果对这个课程有兴趣的,可以加我的QQ2059055336和我联系. 课程内容简介 本课程重点是给大家讲解嵌入式linux系统移植的开发方法,采用理论与实践,硬件与软件相结合的方法. 1.在每节开始之前先简单回顾上一节所讲的主要内容,并对本节所讲的内容先进行概述,讲解概念.技术要点,设计实现思路等内容,最后总结本次课程的要掌握的要点. 2.在讲课的过程中对关键技术

龙尚3G、4G模块嵌入式Linux系统使用说明【转】

本文转载自;http://blog.csdn.net/zqixiao_09/article/details/52506812 驱动部分: 1.kernle/drivers/usb/serial/option.c的结构体数组 static struct usb_device_id option_ids[]中增加加入产品的VID和PID { USB_DEVICE( 0x1c9e, 0x9e00 ) }  //   U5300v/C7500 evdo { USB_DEVICE( 0x1c9e, 0x9

(转)在嵌入式Linux系统(OK6410)中移植Boa 服务器

OK6410的Boa服务器移植: <一> Boa的编译 1. 从 www.boa.org 下载 Boa 服务器的最新版:boa-0.94.13.tar.gz. 2. 解压:tar xzf boa-0.94.13.tar.gz 3. 进入解压后的文件夹 boa-0.94.13内部的 src文件夹,对源文件进行如下修改 ================================================= 由于arm-linux-gcc 编译器版本过高,对语法的支持有一些改变,所以需要

【分享】4412开发板-嵌入式Linux开发需要掌握的基础知识和技能

本文转自迅为电子论坛:http://www.topeetboard.com 1.Linux 基础 安装Linux操作系统 Linux文件系统 Linux常用命令 Linux启动过程详解 熟悉Linux服务能够独立安装Linux操作系统 能够熟练使用Linux系统的基本命令 认识Linux系统的常用服务安装Linux操作系统 Linux基本命令实践 设置Linux环境变量 定制Linux的服务 Shell 编程基础使用vi编辑文件 使用Emacs编辑文件 使用其他编辑器 2.Shell 编程基础

嵌入式Linux会议LinuxCon欧洲的时间表公布

From: http://linuxgizmos.com/embedded-linux-conference-and-linuxcon-europe-schedules-posted/ Linux基金会公布了LinuxCon + CloudOpen +嵌入式Linux大会欧洲的时间表,它们将在10月13-15日于德国的杜塞尔多夫举行.除了Linux基金会在七月初发布的LinuxCon + CloudOpen + ELC(嵌入式Linux大会)欧洲的主题演讲的初步名单外,Linux的倡导组织追加了

嵌入式Linux操作系统学习规划

开发板用友善之臂的吧mini2440 连3.5寸屏500块钱的样子有好几张DVD学习光盘 这款口碑比较高 嵌入式Linux操作系统学习规划ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标: (1) 掌握主流嵌入式微处理器的结构与原理(初步定为arm9) (2) 必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本待定) (3) 必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目. 从事嵌入式软件开发的好处是: (1)目前国内外这方面的人都很稀缺.这一

嵌入式Linux要学哪些东西?你真的造吗?

嵌入式Linux要学哪些东西?你真的造吗? 嵌入式Linux要学哪些?一些人总在寻思,怕走了弯路,又怕学的东西离企业需求远.那么今天就请华清远见高级讲师曹大神告诉你,9点浅析嵌入式学习步骤.下面是他本人亲笔. 1.要学习Linux,首先要会用,如果不会用怎么知道怎么知道怎么去做,所以需要学习Linux系统的安装及使用. 2.学会用Linux了,那么我们就要做一些Linux下的开发了,开发什么呢?看到网上有很多很强大很有趣的程序,我们都可以尝试去做,可是如何去做呢,程序是什么呢,怎么写呢?这时我们