用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下查看。


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

简介在linux开发系统上编译arm内核模块不同于本机,需要指定内核源码的位置、架构、编译套件 示例 KERNELDIR := /home/用户名/ti-processor-sdk-linux/boa...
  • x356982611
  • x356982611
  • 2017年04月21日 15:04
  • 435

交叉编译几种常见的报错

由于是第一次交叉编译,不知道会出现什么问题,思路就是先把gcc和ld都改成arm的,然后遇到什么问题在解决什么问题,以下过程都是在这个思路下进行。 1.指定arm的编译器和连接器: 只是把gcc改...
  • wangyi1988wang
  • wangyi1988wang
  • 2014年04月20日 16:08
  • 1022

arm-none-linux-gnueabi交叉工具链安装 ,介绍,区别总结

1.arm-none-linux-gnueabi-gcc下载 http://www.veryarm.com/arm-none-linux-gnueabi-gcc arm...
  • dldw8816
  • dldw8816
  • 2015年05月26日 09:57
  • 2922

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

(mini2440)建立交叉编译环境+配置linux内核 系统ubuntu12.04(非虚拟机下) mini2440 CPU型号:       S3C2440AL-40 Nanflash型号:K9...
  • muyang_ren
  • muyang_ren
  • 2014年09月21日 00:38
  • 3446

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

Linux-2.6.32交叉编译环境的搭建
  • lzh1179805109
  • lzh1179805109
  • 2017年05月18日 09:36
  • 993

交叉编译freetype2

FreeType 2被设计为一种占用空间小的、高效的、高度可定制的、并且可以产生可移植的高品质输出(符号图像)。可以被用在诸如图像库、展出服务器、字体转换工具、图像文字产生工具等多种其它产品上。(百度...
  • dreamInTheWorld
  • dreamInTheWorld
  • 2017年02月15日 22:28
  • 920

汇总(之一):交叉编译工具链arm-none-linux-gnueabi-, Qt交叉编译安装和移植,Qt桌面版编译安装,QTcreator安装和配置

1. 交叉编译工具链arm-none-linux-gnueabi-的安装 2. Qt4.8.1交叉编译安装和移植 3. Qt4.8.4桌面版编译安装 4. QTcreator2.5.2安装和配置 ...
  • tyshtang
  • tyshtang
  • 2015年01月10日 19:11
  • 1518

Linux 最简单内核模块 Hello World 示例

注:如果想要按照本篇实践,需要有能运行的arm开发板和对应版本的内核(如果想在Linux主机上编译运行,请参考附1) 1. 在相应版本内核的driver目录下新建如下文件: module fil...
  • chinaeran
  • chinaeran
  • 2015年04月28日 08:38
  • 5966

树莓派3B之交叉编译链和内核编译

在Ubuntu上搭建树莓派3B的交叉编译环境和编译内核
  • u010833052
  • u010833052
  • 2017年11月08日 18:58
  • 137

深度解析KGDB调试Linux模块和内核

http://blog.csdn.net/swingwang/article/details/72331196 转载文章请注明作者和二维码及全文信息。 不会编程的程序员,不是好...
  • liu0808
  • liu0808
  • 2017年05月16日 23:05
  • 511
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用arm-none-linux-gnueabi交叉编译Linux内核
举报原因:
原因补充:

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