用arm-none-linux-gnueabi交叉编译Linux内核

原创 2016年05月31日 09:42:04

1.安装arm-none-linux-gnueabi交叉编译器

百度一下下载安装交叉编译器

export PATH=/arm-2009q3/bin:$PATH (一次性)

或者gedit ~/.bashrc 在文件的末尾添加 export PATH=/arm-2009q3/bin:$PATH (永久)

2.构造linux内核源码树

百度一下下载安装Linux内核

然后我们输入命令:export ARCH=arm 以及

export CROSS_COMPILE=arm-none-linux-gnueabi-

这里的CROSS_COMPILE环境变量就是指定交叉编译器。进入解压后的源码目录。假设我们的源码目录在~/Desktop/linux-source-2.6.27下,那么 们先进入它的/arch/arm/configs文件夹中找一个config文件,至于选哪个合适说实话我也没弄清楚,当时我所选的是S3C_2410_defconfig文件。貌 选哪一个文件得和目标平台有关。当选好config文件后,用cp 命令将其复制到~Desktop/linux-source-2.6.27 也就是我们的源码目录下,并更名为. nfig 更名后的文件需要使用ls -a才能显示出来。

做好这一切后,接下来就运行命令 sudo make menuconfig ,如果不出意外就会看到类似以下界面:

然后作用键选择退出这个界面。需要说明一点,如果在运行sudo make menuconfig 命令时出现以下错误提示信息:

*** Unable to find the ncurses libraries or the

*** required header files.

*** ‘make menuconfig’ requires the ncurses libraries.

***

*** Install ncurses (ncurses-devel) and try again.

那么就运行命令:sudo apt-get insatll ncurses-dev

sudo apt-get install libncurses5-dev安装相应的软件。如果是在CentOS下则运行命令yum install -y ncurses-devel 即可。

接下来就依次运行以下命令:

sudo make oldconfig

sudo make (时间比较长)

sudo make bzImage

sudo make modules

sudo make modules_install

在网上看到很多人执行这些命令时遇到了些错误以及他们解决的办法。不过由于我试了几次都没有问题,在此就不贴出问题了,如果遇到可以“放 狗搜一下”。

成功执行上述命令后,我们会在源码目录下看到vmlinux.o文件。

3.编译内核模块

内核模块的Makefile文件中,KERN_DIR = /lib/modules/$(shell uname -r)/build就是引用内核源码树的位置。当我们构建好了内核源码树后只需要将 $(shell uname -r)换成安装好的内核源码版本就行。具体可以进入/lib/modules下查看。


相关文章推荐

ubuntu 交叉编译arm linux 内核

原文地址::http://www.cnblogs.com/foxhengxing/archive/2011/02/05/1949368.html 相关文章 1、交叉编译 Linux 内核 for ...

(mini2440)建立交叉编译环境+配置linux内核

(mini2440)建立交叉编译环境+配置linux内核 系统ubuntu12.04(非虚拟机下) mini2440 CPU型号:       S3C2440AL-40 Nanflash型号:K9...

arm-linux-gcc在编译应用程序时,如何查找默认的头文件路径

arm-linux-gcc编译应用程序时,如何查找默认的头文件路径?
  • MingLLu
  • MingLLu
  • 2015年12月03日 15:49
  • 1878

交叉编译 Linux 内核 for ARM

交叉编译Linux内核for ARM 本文以三星S5PC100芯片为例,采用codesourcery公司出品的ARM平台交叉编译工具链,编译最新的内核源代码2.6.33。 1. 交叉编译工具链 ...
  • junllee
  • junllee
  • 2011年12月11日 00:01
  • 3934

Ubuntu14.04交叉编译Linux内核

参考资料 [1]linux内核的编译

编译Linux kernel时设置交叉编译器

在默认情况下,内核构建系统默认内核是本地编译,即编译的内核是运行在与宿主系统相同的体系架构上。如果是为其他的架构编译内核,即交叉编译,我们需要设置两个变量:ARCH和CROSS_COMPILE。其中:...

交叉编译环境的搭建(Linux-2.6.32内核)

Linux-2.6.32交叉编译环境的搭建

交叉编译linux内核

一.下载linux内核源码      我使用的是linux-loongson-release-zb-kernel.tgz      将其解压到/usr/src目录下: tar -xzvf l...

Linux内核编译详解

学习了网上的一些资料,自己试着摸索了一下,整理出此文。 由于在下水平相当有限,不当之处,还望大家批评指正^_^ 重要的参考资料有: http://raspberrypi.stackexc...

编译在linux arm核上运行的内核模块

简介在linux开发系统上编译arm内核模块不同于本机,需要指定内核源码的位置、架构、编译套件 示例 KERNELDIR := /home/用户名/ti-processor-sdk-linux/boa...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用arm-none-linux-gnueabi交叉编译Linux内核
举报原因:
原因补充:

(最多只允许输入30个字)