313282
315978名用户注册
首页 > 技术资讯
裁剪嵌入式Linux内核
2014-09-12 06:42:33       浏览量:35745       来源:管理员


   上海怡胜

   IT技术交流QQ群:378333774

   www.ysitroad.net




定制 Linux 内核(linux-3.0.8)

    

Linux 内核看似佷庞大,其实初学者以及致力于应用开发的用户,不必学习之初就一头钻进浩如烟海的内核代码中问剑;但熟练配置内核的一些常用选项,并编译出来下载到开发板中运行试用,是你迈向 Linux 系统顶峰的必行之路。

 

一、     平台

 操作系统: ubuntu-14.04

           交叉编译器:arm-linux-gcc-4.5.1

              配置内核:linux-3.0.8-20130327.tgz

二、     使用缺省配置文件配置和编译内核:

新建编译a8开发板目录

   mkdir   /root/a8

进入内核树压缩包所在目录,将其解压到设定的目录

tar –zxvf  linux-3.0.8-20130327.tgz  -C   /root/a8 

切换到Linux内核目录目录

    cd   /root/a8/linux-3.0.8

       执行以下命令来使用缺省配置文件 mini210_linux_defconfig

       # cp   mini210_linux_defconfig    .config

       然后执行“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.
***
make[1]: *** [scripts/kconfig/dochecklxdialog]
错误 1
make: *** [menuconfig]
错误 2

上述错误是说,执行make menuconfig 命令需要安装ncurses-dev

解决方案:

在命令行中输入:

sudo          apt-get       install           libncurses*

 正确应该出现配置内核界面


 

 按键盘的向下键,使选择条目移动到加载配置单选项


 

按回车选择进入,输入默认配置单.config,回车确认,

   

按下键盘左右键,选择Exit,回车退出,

 

选择Yes,回车保存退出

 

最后执行命令:

   make    zImage

编译最终得到内核的镜像文件zImage(arch/arm/boot目录中)

 

若提示找不到arm-linux-gcc,有两种情况

(1)   which命令定位,若没有arm-linux-gcc则修改PATH

   export  PATH=/opt/FriendlyARM/toolschain/4.5.1/bin:$PATH

 

2which命令定位,若有arm-linux-gcc 需使用命令apt-get  install  lsb-core 安装64位兼容包

 

 注:在Ubuntu 64位环境下编译Liunx内核出现 Can't use 'defined(@array)' 错误的解决办法

在编译嵌入式Linux内核时出现了以下错误提示:

Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.

起初一头雾水,仔细看了错误提示后删掉了kernel/timeconst.pl 文件中 373行的
if (!defined(@val)) {
改为if (!@val) {

后,编译成功。

 


推荐课程

1请描述您遇到的问题或您的意见、建议

2请留下联系方式,您将有机会获得精美奖品

[可选]