嵌入式Linux开发KERNEL,嵌入式linux kernel开发全流程

需要的材料 硬件方面 嵌入式linux开发板(又称为目标机):arm9,arm11,armcortexA系列开发板均可 个人PC(又称为上位机或宿主机):一般的个人PC均可,搭载操作系统为windows或者linux。本文为搭载linux的x86PC。 开发板与上位机通信工具:串口,网线,USB

需要的材料

硬件方面

嵌入式linux开发板(又称为目标机):arm9 ,arm11 ,arm cortex A系列开发板均可

个人PC(又称为上位机或宿主机):一般的个人PC均可,搭载操作系统为windows或者linux 。本文为搭载linux的x86PC。

开发板与上位机通信工具:串口,网线,USB

软件方面

linux kernel 内核源码树

交叉编译工具连

linux kernel 内核开发环境的搭建

编译linux kernel 的软件要求:

编译和运行3.x kernel 要求多种最新版本的软件包。查阅 Document/Changes 可以得到要求的最小版本号以及如何更新这些软件包。小心过旧的软件包版本会间接造成某些难以解决的错误,因此不要设想在编译时出现错误的时候再去更新软件包。

Current Minimal Requirements

============================

Upgrade to at *least* these software revisions before thinking you've

encountered a bug! If you're unsure what version you're currently

running, the suggested command should tell you.

Again, keep in mind that this list assumes you are already functionally

running a Linux kernel. Also, not all tools are necessary on all

systems; obviously, if you don't have any ISDN hardware, for example,

you probably needn't concern yourself with isdn4k-utils.

o Gnu C 3.2 # gcc --version

o Gnu make 3.80 # make --version

o binutils 2.12 # ld -v

o util-linux 2.10o # fdformat --version

o module-init-tools 0.9.10 # depmod -V

o e2fsprogs 1.41.4 # e2fsck -V

o jfsutils 1.1.3 # fsck.jfs -V

o reiserfsprogs 3.6.3 # reiserfsck -V

o xfsprogs 2.6.0 # xfs_db -V

o squashfs-tools 4.0 # mksquashfs -version

o btrfs-progs 0.18 # btrfsck

o pcmciautils 004 # pccardctl -V

o quota-tools 3.09 # quota -V

o PPP 2.4.0 # pppd --version

o isdn4k-utils 3.1pre1 # isdnctrl 2>&1|grep version

o nfs-utils 1.0.5 # showmount --version

o procps 3.2.0 # ps --version

o oprofile 0.9 # oprofiled --version

o udev 081 # udevd --version

o grub 0.93 # grub --version || grub-install --version

o mcelog 0.6 # mcelog --version

o iptables 1.4.2 # iptables -V

linux kernel 内核配置

linux kernel 的配置选项非常多,从零配置工作量极大,因此一般的配置流程分为两步,先进行预配置,这步主要是利用他人的成果,再进行个性化定制,这步就是根据需要进行细化配置了。通常会有两种情行下,一种是从旧内核升级到新内核时进行配置,一种是从新开始使用默认配置再定制。

使用预定义配置再定制

1 预配置的两种方法

1)使用源代码中提供的预定义配置文件

预定义配置文件在目录 arch/$(ARCH)/configs/ 中,其中$(ARCH)是指处理器架构类型,如arm , x86 ,mips 等。

使用预定义配置的方法如下:

make ARCH=${ARCH} ${PLATFORM}_defconfig“make ARCH=${ARCH}  ${PLATFORM}_defconfig"   使用arch/$ARCH/configs/${PLATFORM}_defconfig 文件中的默认值来创建一个 ./.config文件。 ARCH参数是必要的,既然默认配置文件所在路径中包含了ARCH。

查看内核源代码支持哪些ARCH,可以查看源代码树中的arch目录下有哪些目录名。而具体开发板应该使用哪个ARCH是很好确定的,比如开发板的cpu为arm cortex A8 ,则ARCH为arm,相应的CROSS_COMPILE就是与ARCH一致的交叉编译工具链前缀,为了确定PLATFORM,可以查看arch/$ARCH/configs/下的文件名,也可以使用如下命令

make ARCH=arm help从输出中你就可以看到 ${PLATFORM}_defconfig应该如何书写了,如果没有你的开发板名称,你可以找一个近似的平台作为参考,在此基础上进行配置也不错。

2)使用外部提供的.config文件进行配置

2 个性化定制

个性化定制时,常用如下命令,它们的区别是配置的方式不同。

“ make menuconfig  ”     - Update current config utilising a menu based program 使用基于菜单的程序更新当前配置

“  make xconfig ”     - Update current config utilising a QT based front-end  使用基于QT的前端更新当前配置

注意是更新(Update),这意味着如果当前已经配置过内核(即存在.config文件),那么该命令执行后会读取.config中的配置项,在此基础上进行配置。

从旧内核配置升级到新内核配置

linux kernel 内核编译

linux kernel 内核安装与运行

linux kernel 内核开发与调试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值