Beaglebone Black——嵌入式linux系统内核编译

本文介绍了如何为Beaglebone Black(BBB)编译嵌入式Linux系统内核。内容包括从何处获取内核源码、编译前的清理步骤、配置选项、编译过程(生成vmlinux、System.map、Image、zImage、uImage等)、设备树编译、内核模块编译及安装。通过详尽的步骤解析,帮助开发者理解并实践BBB的内核编译。
摘要由CSDN通过智能技术生成

        首先是内核源码的来源,首推的当然是来自www.kernel.org的源码,其次很多其他组织或者机构也会用这个正宗内核原版源码,根据自己开发板的应用需求进行裁剪得到最适合自己的linux系统源码,这也就是嵌入式的核心概念,软硬件可裁剪。TI当然也会为自己的BBB板子定制一个内核源码,该源码就在TI的安装包中,下载地址:http://software-dl.ti.com/sitara_linux/esd/AM335xSDK/latest/index_FDS.html。


相关参考资料:

详细讲解关于编译内核的步骤

http://processors.wiki.ti.com/index.php?oldid=149205


         本例以目前官方的最新稳定版本3.16.0来进行操作,如下

zhouyu@zhouyu-virtual-machine:~/linux_kernel.org/linux-3.16$ ls
arch     Documentation  init     lib          README          sound
block    drivers        ipc      MAINTAINERS  REPORTING-BUGS  tools
COPYING  firmware       Kbuild   Makefile     samples         usr
CREDITS  fs             Kconfig  mm           scripts         virt
crypto   include        kernel   net          security

同样,查看一个内核源码的版本也是查看源码树根目录下的Makefile文件,如下图


step1:在进行任何操作之前,先清除内核源码树之前留下的中间文件,如下

zhouyu@zhouyu-virtual-machine:~/linux_kernel.org/linux-3.16$ make distclean


step2:对将要编译的内核进行配置,可以有两种方式进行选择。

方式一:在源码树根目录下arch/arm/configs/目录下有你需要的配置文件,此处选用TI-SDK里面的专门配置文件tisdk_am335x-evm_defconfig,将其复制到这个目录下,那么如下进行配置即可,

zhouyu@zhouyu-virtual-machine:~/linux_kernel.org/linux-3.16$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- tisdk_am335x-evm_defconfig
#
# configuration written to .config
#

最后一个参数表示你在arch/ar m/configs/目录下选中的配置文件,命令执行后,会依据文件tisdk_am335x-evm_defconfig在源码根目录下的生成编译源码所需的.config文件。


方式二:从其他地方(也包括方式一的目录中)你找到你需要的配置文件,将该文件复制到源码数根目录下命名.config,比如将上述的配置文件tisdk_am335x-evm_defconfig复制到根目录下为.config,那么如下进行配置即可,

zhouyu@zhouyu-virtual-machine:~/linux_kernel.org/linux-3.16$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts/kconfig/lxdialog/checklist.o
  HOSTCC  scripts/kconfig/lxdialog/inputbox.o
  HOSTCC  scripts/kconfig/lxdialog/menubox.o
  HOSTCC  scripts/kconfig/lxdialog/textbox.o
  HOSTCC  scripts/kconfig/lxdialog/util.o
  HOSTCC  scripts/kconfig/lxdialog/yesno.o
  HOSTCC  scripts/kconfig/mconf.o
  SHIPPED scripts/kconfig/zconf.tab.c
  SHIPPED scripts/kconfig/zconf.lex.c
  SHIPPED scripts/kconfig/zconf.hash.c
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/mconf
scripts/kconfig/mconf Kconfig
configuration written to .config

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

step3:正式开始编译
  make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage
  ......
  LINK    vmlinux
  LD      vmlinux.o
  MODPOST vmlinux.o
  GEN     .version
  CHK     include/generated/compile.h
  UPD     include/generated/compile.h
  CC      init/version.o
  LD      init/built-in.o
  KSYM    .tmp_kallsyms1.o
  KSY
  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值