嵌入式linux kernel开发全流程
来源:互联网 发布:魔法王座坐骑进阶数据 编辑:程序博客网 时间:2024/04/28 18:47
需要的材料
硬件方面
嵌入式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'veencountered a bug! If you're unsure what version you're currentlyrunning, the suggested command should tell you. Again, keep in mind that this list assumes you are already functionallyrunning a Linux kernel. Also, not all tools are necessary on allsystems; 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 --versiono Gnu make 3.80 # make --versiono binutils 2.12 # ld -vo util-linux 2.10o # fdformat --versiono module-init-tools 0.9.10 # depmod -Vo e2fsprogs 1.41.4 # e2fsck -Vo jfsutils 1.1.3 # fsck.jfs -Vo reiserfsprogs 3.6.3 # reiserfsck -Vo xfsprogs 2.6.0 # xfs_db -Vo squashfs-tools 4.0 # mksquashfs -versiono btrfs-progs 0.18 # btrfscko pcmciautils 004 # pccardctl -Vo quota-tools 3.09 # quota -Vo PPP 2.4.0 # pppd --versiono isdn4k-utils 3.1pre1 # isdnctrl 2>&1|grep versiono nfs-utils 1.0.5 # showmount --versiono procps 3.2.0 # ps --versiono oprofile 0.9 # oprofiled --versiono udev 081 # udevd --versiono grub 0.93 # grub --version || grub-install --versiono mcelog 0.6 # mcelog --versiono 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 内核开发与调试
- 嵌入式linux kernel开发全流程
- 嵌入式Linux开发流程
- 嵌入式Linux开发流程
- 嵌入式Linux开发流程
- 嵌入式Linux开发流程
- 嵌入式Linux开发流程
- 嵌入式Linux开发流程
- 嵌入式linux软件平台--kernel初始化流程
- 嵌入式linux驱动开发流程
- Linux 嵌入式启动流程 --uboot->kernel->filesystem->app
- 嵌入式Linux基础知识1(嵌入式Linux开发流程)
- 基于Linux的嵌入式开发流程
- 嵌入式Linux系统架构及开发流程
- 嵌入式linux系统架构及开发流程
- 嵌入式Linux系统开发环境搭建流程
- 嵌入式linux驱动程序开发完整流程
- 嵌入式linux驱动开发流程总结
- 求职嵌入式软件开发linux kernel/BSP leader/工程师职位
- 文件夹目录下,txt文档遍历,并且读取最新的
- no session found for current thread错误详解
- 由抓取豆瓣信息想到的網絡知識
- VIICMS仿乐享微信源码2014最新版
- 基地组织再起内讧:最高领导人被指离经叛道
- 嵌入式linux kernel开发全流程
- 什么是字符串常量池?
- flex SparkSkin就button而言的介绍
- javaScript 面向对象-继承(六)
- rhel6.4 安装nodejs和Mysql DB服务
- 滕王阁序
- javascript继承机制的实习
- javascript中可处理的浮点数的最高精度(和小数的一些小特性)
- VS2010/MFC编程入门之九(对话框:设置对话框控件的Tab顺序)