Elfboard-ELF开发板 Linux学习笔记(十)—— Linux源码介绍

Elfboard-ELF开发板 Linux学习笔记(十)—— Linux源码介绍

一、Linux源码分类

  • Linux开源社区源码
  • 芯片原厂的Linux源码-NXP等
  • 板卡厂商的Linux源码:由芯片原厂的Linux源码修改而来,以适配板卡的硬件。

二、下载linux内核源码

  • 第一种:官网获取:https://mirrors.edge.kernel.org/pub/linux/kernel/
  • 第二种:NXP 的仓库:https://github.com/nxp-imx/linux-imx
  • 第三种:ELF1 开发板资料包\02-Linux 源代码\02-0 出厂内核和 uboot 源码\内核源码\linux-4.1.15-elf1.tar.bz2

三、内核源码目录结构分析

顶层目录

  • include:内核的头文件
  • arch:体系结构相关的代码
  • block:块设备驱动程序代码
  • crypto:加密算法相关的代码
  • common:公共的代码
  • drivers:设备驱动程序
  • init:初始化代码
  • fs:文件系统
  • ipc:进程间通信
  • kernel:内核核心代码
  • lib:内核的库
  • mm:内存管理
  • net:网络协议栈
  • scripts:脚本
  • tools:工具
  • Documentation:文档
  • usr:用户空间代码
  • virtual:虚拟化相关代码

四、内核源码编译

注意
1.初次解压源码后,需要先配置一下,然后对整体进行编译。
2.整体编译之后,可根据实际情况再进行单独编译。

  • 1.解压源码
 tar -xvf linux-4.1.15-elf1.tar.bz2
  • 2.编写编译脚本
    #!/bin/bash
    #设置CPU
    export CPUS=`grep -c processor /proc/cpuinfo`
    #设置编译环境
    source /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
    #清理编译文件
    make distclean
    #配置编译对象
    make imx6ull_elf1_defconfig
    make -j${CPUS}
    rm -rf ./.tmp
    make modules_install INSTALL_MOD_PATH=./.tmp/rootfs/
    cd .tmp/rootfs/
    tar -jcvf modules.tar.bz2 *
  • 3.执行编译脚本
    chmod +x build.sh   //更改文件权限
    ./build.sh     //整体编译 

编译完成之后,会在 arch/arm/boot/目录下生成 zImge 文件,就是内核镜像文件;在 arch/arm/boot/dts/下生成多个.dtb 设备树二进制文件;以及在某些驱动目录下生成.ko 模块。编译完成后,生成的文件以及路径参考 6.3.2 节。

五、编译后文件分析

  • 1.编译后生成的文件
vmlinux:内核原始 elf 格式镜像, 其中包含了可执行的二进制指令,调试信息,符号表等内容
System.map:内核符号表,包含了内核中各个符号(函数、变量等)的地址
Image:内核映像文件,包含了内核原始 bin 格式镜像
zImage:内核映像文件,包含了经压缩和添加头信息后的 bin 镜像
.dtb:设备树二进制文件

我们所关注的最终需要烧写到开发板的是.dtb 设备树镜像和 zImage 内核镜像。
dtb 文件是设备树二进制文件,它是由设备树编译工具 DTC (Device tree compiler)编译 dts 文件而生成的。

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

君逸~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值