Linux + ARM驱动开发环境配置(内核配置与编译)

要想编写驱动,首先是建立内核目录树。

**

1、查看ARM开发板的内核版本

**

uname -a

我的arm开发板的版本是3.4.39

**

2、安装必要的软件包

**

sudo  apt-get install build-essential kernel-package  libncurses5-dev
sudo apt-get install ncurses-dev 

**

3、下载一个与ARM开发板的内核版本相同的linux内核

**

最好还是找到 ARM开发板 的内核源码

**

4、Linux 内核配置

**
4.1、解压内核,进入源目录

sudo tar vxf linux-3.4.39.tar.gz -C /home/eagle/kernel
cd /home/eagle/kernel/linux-3.4.39

4.2、修改内核目录树根下的Makefile,指明交叉编译器

sudo vim Makefile

找到ARCH和CROSS_COMPILE,如下所示

export KBUILD_BUILDHOST := $(SUBARCH)
ARCH  ?= $(SUBARCH)
CROSS_COMPILE  ?= $(CONFIG_CROSS_COMPILE:"%"=%)

修改如下

export KBUILD_BUILDHOST := $(SUBARCH)
ARCH  ?= arm
CROSS_COMPILE  ?= /usr/local/arm-2014.05/bin/arm-none-linux-gnueabi-

其中 CROSS_COMPILE 的位置是arm交叉编译器的位置

4.3、清除内核原有的配置和编译信息

sudo make distclean

出现类似信息

CLEAN   scripts/basic
CLEAN   scripts/kconfig
CLEAN   include/config

4.4、找出与你开发板相近的芯片配置信息文档

在目录 arch/arm/configs 下可以找到,如:s5pv210_defconfig

sudo cp arch/arm/configs/s5pv210_defconfig .config

4.5、配置内核

sudo make menuconfig

可能出现以下错误:

//Your display is too small to run Menuconfig!

//It must be at least 19 lines by 80 columns.

//make[1]: *** [menuconfig] 错误 1

//make: *** [menuconfig] 错误 2

原因:终端窗口太小,最大化即可解决。

命令执行成功后,如图所示:
配置内核的界面

如果是 arm开发板 的内核源码,则不需要配置,否则需要进行配置。

配置内核时,有3种选择,它们代表的含义分别如下。
● Y:将该功能编译进内核。
● N:不将该功能编译进内核。
● M:将该功能编译成可以在需要时动态插入到内核中的模块。

在每一个选项前都有个括号,有的是中括号,有的是尖括号,还有的是圆括号。用空格键选择时可以发现,中括号中要么是空,要么是 星号;而尖括号中可以是空、星号和“M”。这表示前者对应的项要么不要,要么编译到内核中;后者则多一样选择,可以编译成模块。而圆括号的内容是要你在所提供的几个选项中选择一项。

4.6、保存内核配置文件

配置好后,选择 Exit ,点击 回车键,出现如下所示,点击回车键,进行确认。
保存内核的界面

保存成功后,会出现如下信息:

scripts/kconfig/mconf Kconfig
#
# configuration written to .config
#


*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.

配置文件保存在内核源码根目录下的.config中,但是执行了make distclean后会删除上述保存的config文件。
所以配置内核结束后,最好将配置信息保存。

sudo cp .config s5pv210_defconfig

再次在配置内核之前,再将 s5pv210_defconfig 拷贝给.config

sudo cp s5pv210_defconfig .config 

**

5、编译内核

**

sudo make zImage

如果按照默认的配置,没有改动的话,编译后系统会在arch/arm/boot目录下生成一个zImage文件,这个文件就是刚刚生成的内核文件。

内核配置和编译之后,才可以进行驱动开发,因为在驱动开发的过程中需要用到内核源码树。

  • 3
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值