buildroot详解

buildroot常用命令

在buildroot根目录执行make help,即可获得buildroot常用命令的提示信息,内容如下

Cleaning:                            - 清理
  make clean                         - 删除编译产生的文件
  make distclean                     - 删除所有非源码文件—(包括.config)
                                
Build:                               - 编译
  make all                           - 编译所有
  make toolchain                     - 编译工具链
  make sdk                           - 编译sdk(Software Development Kit)
                                
Configuration:                       - 配置
  make menuconfig                    - 基于curses的buildroot配置界面(常用)
  make nconfig                       - 基于ncursesbuildroot配置界面  
  make xconfig                       - 基于Qt的buildroot配置界面  
  make gconfig                       - 基于GTK的buildroot配置界面 
  make oldconfig                     - 解决所有.config中未解决的符号问题(symbols)
  make syncconfig                    - 和oldconfig类似,但会额外更新依赖
  make olddefconfig                  - 和syncconfig类似,但会将新的symbols设为默认值
  make randconfig                    - 所有选项随机配置
  make defconfig                     - 所有选项都询问,如果设置有BR2_DEFCONFIG,则使用它的配置
  make savedefconfig                 - 把当前配置保存到BR2_DEFCONFIG 
  make update-defconfig              - 类似savedefconfig
  make allyesconfig                  - 所有配置选项都选择yes
  make allnoconfig                   - 所有配置选项都选择no
  make alldefconfig                  - 所有配置选项都选择default
  make randpackageconfig             - 软件包选项都选择随机
  make allyespackageconfig           - 软件包选项都选择yes
  make allnopackageconfig            - 软件包选项都选择no
                                
Package-specific:                    - 具体的包操作 
  make <pkg>                         - 编译、安装该pkg以及其依赖
  make <pkg>-source                  - 下载该pkg所有文件
  make <pkg>-extract                 - 解压该pkg(解压后放在output/build/pkg名字目录下)
  make <pkg>-patch                   - 给该pkg打补丁
  make <pkg>-depends                 - 编译pkg的依赖
  make <pkg>-configure               - 编译pkg到配置这一步
  make <pkg>-build                   - 编译pkg到构造这一步
  make <pkg>-show-depends            - 显示该pkg的所有依赖
  make <pkg>-show-rdepends           - 显示依赖该pkg的所有包
  make <pkg>-show-recursive-depends  - 递归显示该pkg的所有依赖
  make <pkg>-show-recursive-rdepends - 递归显示依赖该pkg的所有包
  make <pkg>-graph-depends           - 图形化显示该pkg的所有依赖
  make <pkg>-graph-rdepends          - 图形化显示依赖该pkg的所有包
  make <pkg>-dirclean                - 清除该pkg目录(清除解压目录output/build/pkg名字)
  make <pkg>-reconfigure             - 从配置这一步开始重新编译pkg
  make <pkg>-rebuild                 - 从构造这一步开始重新编译pkg
  
busybox:                             - busybox相关
  make busybox-menuconfig            - 配置busybox界面
                                
uclibc:                              - uclibc相关
  make uclibc-menuconfig             - 配置uclibc界面
                                
linux:                               - linux相关
  make linux-menuconfig              - 配置linux内核界面
  make linux-savedefconfig           - 保存linux内核配置
  make linux-update-defconfig        - 保存配置到BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE指定路径
                                
Documentation:                       - 文档
  make manual                        - 生成各种格式的帮助手册
  make manual-html                   - 生成HTML格式的帮助手册
  make manual-split-html             - 生成split HTML格式的帮助手册
  make manual-pdf                    - 生成PDF格式的帮助手册
  make manual-text                   - 生成text格式的帮助手册
  make manual-epub                   - 生成ePub格式的帮助手册
  make graph-build                   - 生成图形化查看编译时间文件
  make graph-depends                 - 生成图形化查看所有依赖文件
  make graph-size                    - 生成图形化查看文件系统大小文件
  make list-defconfigs               - 显示拥有的默认配置的单板列表
                                
Miscellaneous:                       - 杂项
  make source                        - 下载所有要离线编译的源码到dl路径
  make external-deps                 - 列出使用的所有外部包(make show-targets的详细版)
  make legal-info                    - 显示所有包的license合规性
  make printvars                     - 打印所有内部指定的变量值                              
  make V=0|1                         - 设置编译打印信息(0:安装编译 1:打印编译信息)
  make O=dir                         - 指定所有文件(包括.config)输出目录

buildroot配置

执行make menuconfig进入一级配置菜单:

Target options  --->        
Build options  --->        
Toolchain  --->   
System configuration  --->       
Kernel  --->      
Target packages  --->
Filesystem images  --->     
Bootloaders  --->        
Host utilities  --->   
Legacy config options  ---> 

Target options(目标选项)

Target options  ---> 
    Target Architecture (ARM (little endian))  --->  //目标处理器的架构和大小端模式 [ARM (little endian)]
    Target Binary Format (ELF)  --->                 //目标二进制格式 [ELF]
    Target Architecture Variant (cortex-A7)  --->    //目标处理器核心类型 [cortex-A7]
    Target ABI (EABIhf)  --->                        //目标应用程序二进制接口(Application Binary Interface) [EABIhf] ①
    Floating point strategy (NEON/VFPv4)  --->       //浮点运算策略 [NEON/VFPv4] ②
    ARM instruction set (ARM)  --->                  //ARM的指令集设置 [ARM]

Build options(编译选项)

Build options  --->  
        Commands  --->                                           //指定下载、解压命令参数选项 
            (wget --passive-ftp -nd -t 3) Wget command //用于常规FTP/HTTP下载压缩包 [被动传输模式;不创建目录;超时重试次数为3]
            (svn --non-interactive) Subversion (svn) command     //通过SSH下载压缩包 [禁用所有交互式提示]
            (bzr) Bazaar (bzr) command                           //版本控制工具Bazaa
            (git) Git command                                    //版本控制工具Git
            (cvs) CVS command                                    //版本控制工具CVS
            (cp) Local files retrieval command                   //本地文件拷贝命令
            (scp) Secure copy (scp) command                      //基于ssh的安全的远程文件拷贝命令
            (hg) Mercurial (hg) command                          //版本控制工具hg
            (gzip -d -c) zcat command                            //zip包解压缩查看 [解压zip文件 解压到指定路径,源文件不消失]
            (bzcat) bzcat command                                //bz2包解压缩查看
            (xzcat) xzcat command                                //xz包解压缩查看
            (lzip -d -c) lzcat command                           //lz包解压缩查看
            ()  Tar options                                      //bz2包解压缩查看
    (/home/hceng/imx6ul_buildroot/configs/imx6ulevk_defconfig) Location to save buildroot config  //指定配置文件保存路径
    ($(TOPDIR)/dl) Download dir                                  //指定文件下载保存路径  [./dl/]
    ($(BASE_DIR)/host) Host dir                                  //指定主机编译所需工具安装目录 [./output/host]
        Mirrors and Download locations  --->                     //镜像和下载位置
            ()  Primary download site
            (http://sources.buildroot.net) Backup download site
            (https://cdn.kernel.org/pub) Kernel.org mirror
            (http://ftpmirror.gnu.org) GNU Software mirror
            (http://rocks.moonscript.org) LuaRocks mirror
            (http://cpan.metacpan.org) CPAN mirror (Perl packages)
    (0) Number of jobs to run simultaneously (0 for auto)         //指定编译时运行的CPU核心数 [0自动]
    [ ] Enable compiler cache                                     //使能编译器缓存
    [ ] build packages with debugging symbols                     //启用带调试编译软件包
    [*] strip target binaries                         //binaries和libraries在打包到target目录的时候会被strip命令裁减掉调试信息
    ()    executables that should not be stripped                 //剥离时跳过可执行文件
    ()    directories that should be skipped when stripping       //剥离时跳过的目录
        gcc optimization level (optimize for size)  --->          //GCC优化等级 [优化大小]
    [ ] Enable google-breakpad support                            //启动崩溃日志收集
        libraries (shared only)  --->                             //库类型 [只共享库]
    ($(CONFIG_DIR)/local.mk) location of a package override file  //包覆盖文件的位置
    ()  global patch directories                                  //全局补丁目录
        Advanced  --->
            [*] paranoid check of library/header paths            //检查库/头文件路径
            [ ] Force the building of host dependencies           //强制构建主机依赖
            [ ] Make the build reproducible (experimental)        //构建可重复(实验)
        *** Security Hardening Options ***                        //安全加固选项
        Stack Smashing Protection (None)  --->                    //堆栈粉碎保护 [无]
        RELRO Protection (None)  --->                             //RELRO只读重定位(Relocation Read Only)保护 [无]
        Buffer-overflow Detection (FORTIFY_SOURCE) (None)  --->   //缓冲区溢出检测(强制源) [无] 

Toolchain(工具链)

Toolchain  --->   
        Toolchain type (External toolchain)  --->                 //工具链类型 [外部工具链]
        *** Toolchain External Options ***                        //外部工具链选项
        Toolchain (Custom toolchain)  --->                        //工具链 [自定义工具链]
        Toolchain origin (Toolchain to be downloaded and installed)  --->  //工具链来源 [工具链将被下载安装]
    (https://releases.linaro.org/……) Toolchain URL                //工具链下载链接 ①
    (bin) Toolchain relative binary path                          //工具链二进制文件相对路径 [bin目录]
    ($(ARCH)-linux-gnueabihf) Toolchain prefix                    //工具链前缀 [arm-linux-gnueabihf]
        External toolchain gcc version (6.x)  --->                //外部工具链GCC版本 [6.x]
        External toolchain kernel headers series (4.6.x)  --->    //外部工具链内核头文件系列 [4.6.x]
        External toolchain C library (glibc/eglibc)  --->         //外部工具链C库 [glibc/eglibc] ②
    [*] Toolchain has SSP support?                                //工具链是否支持SSP? ③
    [*] Toolchain has RPC support?                                //工具链是否支持RPC? ④
    [*] Toolchain has C++ support?                                //工具链是否支持C++?
    [*] Toolchain has Fortran support?                            //工具链是否支持Fortran? (一种编程语言)
    ()  Extra toolchain libraries to be copied to target          //复制额外工具链库到目标
    [ ] Copy gdb server to the Target                             //复制GDB服务到目标
        *** Host GDB Options ***                                  //主机GDB选项
    [ ] Build cross gdb for the host                              //为主机交叉编译GDB
        *** Toolchain Generic Options ***                         //工具链通用选项
    [ ] Copy gconv libraries                                      //复制gconv库 (gconv库用于在不同的字符集之间进行转换)
    [*] Enable MMU support                                        //使能MMU支持
    ()  Target Optimizations                                      //目标优化 (需设置前面的GCC优化等级)
    ()  Target linker options                                     //目标链接器选项 (构建目标时传递给链接器的额外选项)
    [ ] Register toolchain within Eclipse Buildroot plug-in       //在Eclipse Buildroot插件中注册工具链

  • glibc(GNU C Library):常用于桌面、服务器中的GNU/Linux类系统中的C语言标准库,支持多种系统平台,功能齐全,但也相对比较臃肿和庞大;
  • eglibc(Embedded glibc):glibc的一种变体,目的在于将glibc用于嵌入式系统;
  • uClibc/uClibc-ng:uClibc-ng是uClibc的分支,它们都是为嵌入式设计的小型的C语言标准库,适合标准和无MMU的Linux系统上运行;
  • musl:一个轻量级的C标准库,目前在buildroot里是实验阶段;

System configuration(系统配置)

System configuration  --->  系统配置
        Root FS skeleton (default target skeleton)  --->          //根文件系统框架 [典型目标框架]
    (ebf6ull) System hostname                                     //系统主机名字(自取任意) [ebf6ull]
    (Welcome to ixm6ull Buildroot!) System banner                 //系统开机提示 [Welcome to ixm6ull Buildroot!]
        Passwords encoding (sha-256)  --->                        //密码编码 [sha-256]
        Init system (systemV)  --->                               //初始化系统方案 [systemV]  ①
        /dev management (Dynamic using devtmpfs + eudev)  --->    //dev管理方案 [Dynamic using devtmpfs + eudev]  ②
    (system/device_table.txt) Path to the permission tables       //权限表路径 
    [ ] support extended attributes in device tables              //支持设备表中的扩展属性
    [ ] Use symlinks to /usr for /bin, /sbin and /lib             //是否将/bin,/sbin,/lib链接到/usr
    [*] Enable root login with password                           //使能root登陆密码
    ()    Root password                                           //设置root密码
        /bin/sh (bash)  --->                                      //选择shell类型 [bash] ③
    [*] Run a getty (login prompt) after boot  --->               //启动后运行getty(登录提示)--->
        (ttymxc0) TTY port                                        //设置TTY硬件端口
              Baudrate (keep kernel default)  --->                //比特率 [与内核保持一致]
        (vt100) TERM environment variable                         //TERM环境变量 (终端类型xterm、vt100)
        ()    other options to pass to getty                      //传递给getty的其他选项
    [*] remount root filesystem read-write during boot            //在引导期间安装根文件系统支持读和写
    (eth0) Network interface to configure through DHCP            //设置DHCP配置的网络接口  [eth0]
    (/bin:/sbin:/usr/bin:/usr/sbin) Set the system's default PATH //设置系统的默认路径  
    [*] Purge unwanted locales                                    //清除不需要的区域设置
    (C en_US) Locales to keep                                     //要保留的语言环境
    ()  Generate locale data                                      //生成区域设置数据
    [ ] Enable Native Language Support (NLS)                      //启用本地语言支持(NLS)
    -*- Install timezone info                                     //安装时区信息
    (default) timezone list                                       //时区清单 [典型]
    (Etc/UTC) default local time                                  //用户表的路径
    ()  Path to the users tables
    (board/hceng/nxp-imx6ull/rootfs-overlay) Root filesystem overlay directories //根文件系统覆盖目录
    ()  Custom scripts to run before creating filesystem images //在创建文件系统映像之前运行的自定义脚本
    ()  Custom scripts to run inside the fakeroot environment //自定义脚本在fakeroot(模拟root权限)环境中运行
    (board/……) Custom scripts to run after creating filesystem images //创建文件系统映像后运行的自定义脚本 ④
    ()    Extra arguments passed to custom scripts //传递给自定义脚本的额外参数

Kernel(内核配置)

    [*] Linux Kernel                                                              //使能编译内核
          *** Linux kernel in thumb mode may be broken with binutils >= 2.29 ***  //binutils>=2.29可能会破坏thumb模式下的内核
          Kernel version (Custom Git repository)  --->                            //内核版本 [自定义Git仓库]
    (https://git.dev.tencent.com/……) URL of custom repository                     //自定义仓库网址 ①
    (origin/master) Custom repository version                                     //自定义仓库版本
    ()    Custom kernel patches                                                   //自定义内核补丁
          Kernel configuration (Using an in-tree defconfig file)  --->            //内核配置 [使用项目内defconfig文件]
    (imx_v7_ebf) Defconfig name                                                   //配置文件名字 (不要_defconfig)
    ()    Additional configuration fragment files                                 //其他配置片段文件
    ()    Custom boot logo file path                                              //自定义启动logo文件路径
          Kernel binary format (zImage)  --->                                     //内核二进制文件格式 [zImage] ②
          Kernel compression format (gzip compression)  --->                      //内核压缩格式 [gzip压缩]
    [*]   Build a Device Tree Blob (DTB)                                          //构建设备树二进制文件(DTB文件)
    (imx6ull-14x14-evk imx6ull-14x14-ebf) In-tree Device Tree Source file names   //项目里设备树源文件名 (不要.dts)
    ()      Out-of-tree Device Tree Source file paths                             //项目外设备树源文件路径
    [ ]     Build Device Tree with overlay support                                //使能设备树文件覆盖支持
    [*]   Install kernel image to /boot in target                                 //安装内核镜像到/boot目录
    [*]   Needs host OpenSSL                                                      //主机需要OpenSSL
    [ ]   Needs host libelf                                                       //主机需要libelf (用于读取,修改或创建ELF文件)
          Linux Kernel Extensions  --->                                           //Linux内核扩展
            [ ] Adeos/Xenomai Real-time patch                                     //Adeos/Xenomai实时时钟补丁
            [ ] RTAI Real-time patch                                              //RTAI实时时钟补丁
            [ ] ev3dev Linux drivers                                              //ev3dev Linux驱动
            [ ] FB TFT drivers                                                    //FB TFT驱动
            [ ] Aufs Filesystem Module patch                                      //Aufs文件系统模块补丁
          Linux Kernel Tools  --->                                                //Linux内核工具
            [ ] cpupower                                                          //用于检查、调整CPU省电相关功能
            [ ] gpio                                                              //用于控制、监控GPIO,仅在4.8版本提供 ③
            [ ] iio                                                               //用于控制、监控iio设备,仅在4.7版本提供
            [ ] pci                                                               //用于测试特定PCI端点, 仅在4.20版本提供
            [ ] perf                                                              //用于Linux性能分析
            [ ] selftests                                                         //用于内核自我测试
            [ ] tmon                                                              //用于用户访问系统相关的热信息

Target packages(目标包配置)

Target packages  --->   
    [*] BusyBox                                                          //使能编译BusyBox
    (package/busybox/busybox.config) BusyBox configuration file to use?  //设置BusyBox配置文件路径
    ()    Additional BusyBox configuration fragment files                //其他BusyBox配置片段文件
    -*-   Show packages that are also provided by busybox                //列出部分busybox也提供的包
    [ ]   Enable SELinux support                                         //SELinux支持(安全增强型Security-Enhanced Linux)
    [ ]   Individual binaries                                            //每个应用程序作为单独二进制文件(为SELinux提供支持)
    [ ]   Install the watchdog daemon startup script                     //在启动脚本安装看门狗守护程序
        Audio and video applications  --->                               //音频和视频应用
        Compressors and decompressors  --->                              //压缩和解压
        Debugging, profiling and benchmark  --->                         //调试、分析和基准测试
        Development tools  --->                                          //开发工具
        Filesystem and flash utilities  --->                             //文件系统和闪存实用程序
        Fonts, cursors, icons, sounds and themes  --->                   //字体,游标,图标,声音和主题
        Games  --->                                                      //游戏
        Graphic libraries and applications (graphic/text)  --->          //图形库和应用程序(图形/文本)
        Hardware handling  --->                                          //硬件处理
        Interpreter languages and scripting  --->                        //编程语言和脚本
        Libraries  --->                                                  //库
        Mail  --->                                                       //邮箱
        Miscellaneous  --->                                              //杂项
        Networking applications  --->                                    //网络应用
        Package managers  --->                                           //安装包管理
        Real-Time  --->                                                  //实时时钟
        Security  --->                                                   //安全
        Shell and utilities  --->                                        //Shell和程序
        System tools  --->                                               //系统工具
        Text editors and viewers  --->                                   //文版编辑和浏览

Filesystem images(文件系统)

Filesystem images  --->  
    [ ] axfs root filesystem                                                //XFS格式根文件系统
    [ ] btrfs root filesystem                                               //btrfs格式根文件系统
    [ ] cloop root filesystem for the target device                         //clop方式压缩根文件系统
    [ ] cpio the root filesystem (for use as an initial RAM filesystem)     //cpio方式压缩根文件系统(用作初始RAM文件系统)
    [ ] cramfs root filesystem                                              //cramf格式根文件系统
    [*] ext2/3/4 root filesystem                                            //ext2/3/4格式根文件系统
          ext2/3/4 variant (ext4)  --->                                     //ext4格式根文件系统
    ()    filesystem label                                                  //文件系统标签
    (200M) exact size                                                       //根文件系统空间大小
    (0)   exact number of inodes (leave at 0 for auto calculation)          //确切的inode数(从0开始自动计算)
    (5)   reserved blocks percentage                                        //保留块百分比 (保留的供root使用,默认5%)
    (-O ^64bit) additional mke2fs options                                   //额外的mke2fs选项 [禁用64位文件系统]
          Compression method (no compression)  --->                         //压缩方式 [无压缩]
    [ ] f2fs root filesystem                                                //f2fs格式根文件系统
    [ ] initial RAM filesystem linked into linux kernel                     //初始RAM文件系统链接到Linux内核
    [ ] jffs2 root filesystem                                               //jffs2格式根文件系统
    [ ] romfs root filesystem                                               //romfs格式根文件系统
    [ ] squashfs root filesystem                                            //squashfs格式根文件系统
    [*] tar the root filesystem                                             //tar压缩格式根文件系统
          Compression method (no compression)  --->                         //压缩方式 [无压缩]
    ()    other random options to pass to tar                               //传递给tar的其他选项
    [ ] ubi image containing an ubifs root filesystem                       //ubifs格式根文件系统包含ubi镜像
    [ ] ubifs root filesystem                                               //ubifs格式根文件系统
    [ ] yaffs2 root filesystem                                              //yaffs2格式根文件系统

Bootloaders(引导程序)

Bootloaders  --->   
    [ ] afboot-stm32                                            //STM32平台的一个非常小的引导加载程序
    [ ] Barebox                                                 //Barebox引导程序,以前叫做U-Boot v2
    [ ] grub2                                                   //GRUB是一个多重引导加载程序
    [ ] mxs-bootlets                                            //适用于飞思卡尔iMX23/iMX28 SoC的Stage1引导加载程序
    [ ] s500-bootloader                                         //适用于Actions Semiconductor S500 SoC的第一级引导加载程序
    [ ] ts4800-mbrboot                                          //TS4800板的第一级引导加载程序
    [*] U-Boot                                                  //U-boot
          Build system (Legacy)  --->                           //构建系统 [遗留]
    (mx6ull_14x14_evk) U-Boot board name                        //U-Boot单板名称
          U-Boot Version (Custom Git repository)  --->          //U-Boot版本 [自定义Git仓库]
    (https://git.dev.tencent.com/……) URL of custom repository   //自定义仓库网址 ①
    (origin/master) Custom repository version                   //自定义仓库版本
    ()    Custom U-Boot patches                                 //自定义U-Boot补丁
    [*]   U-Boot needs dtc                                      //U-Boot设备树可用
    [ ]   U-Boot needs pylibfdt                                 //U-Boot Python libfdt库可用
    [ ]   U-Boot needs OpenSSL                                  //U-Boot OpenSSL可用
    [ ]   U-Boot needs lzop                                     //U-Boot lzop解压缩可用
          U-Boot binary format  --->                            //U-Boot二进制文件格式
            [ ] u-boot.ais                                      //TI定义的格式,OMAP-L1系列处理器
            [ ] u-boot.bin                                      //常规二进制格式bin
            [ ] u-boot-dtb.bin                                  //bin格式,包含设备树dtb
            [ ] u-boot-dtb.img                                  //img格式,包含设备树dtb
            [ ] u-boot-dtb.imx                                  //imx格式,包含设备树dtb
            [ ] u-boot.img                                      //img格式,在bin格式上加入包含地址信息的头部
            [*] u-boot.imx                                      //imx格式,在bin格式上加入包含DRAM配置信息等的头部
            [ ] u-boot-nand.bin                                 //bin格式,适合nand
            [ ] u-boot.kwb (Marvell)                            //适用Marvell系列芯片
            [ ] u-boot.elf                                      //可执行和链接格式(executable and link format)
            [ ] u-boot.sb (Freescale i.MX28)                    //适用飞思卡尔i.MX28
            [ ] u-boot.sd (Freescale i.MX28)                    //适用飞思卡尔i.MX28
            [ ] u-boot.nand (Freescale i.MX28)                  //适用飞思卡尔i.MX28
            [ ] Custom (specify below)                          //自定义[选定后在下面指定]
    [ ]   Install U-Boot SPL binary image                       //安装SPL到U-Boot
    [ ]   Environment image  ----                               //镜像环境
    [ ]   Generate a U-Boot boot script                         //生成U-Boot启动脚本

Host utilities(主机工具)

Host utilities  --->  
    [ ] host aespipe                         //AES加密或解密管道
    [ ] host android-tools                   //包含fastboot和adb实用程序
    [ ] host btrfs-progs                     //btrfs文件系统实用程序
    [ ] host cargo                           //Rust编程语言的包管理器
    [ ] host cbootimage                      //将BCT(引导配置表)镜像写入基于Tegra的设备的Flash中
    [ ] host checkpolicy                     //SELinux编译器
    [ ] host checksec                        //检查可执行文件的属性
    [ ] host cmake                           //构建,测试和打包软件
    [ ] host cramfs                          //生成和检查cramfs文件系统
    [ ] host cryptsetup                      //操作dm-crypt和luks分区以进行磁盘加密
    [ ] host dfu-util                        //下载固件并将其上传到通过USB连接的设备
    [ ] host dos2unix                        //在CRLF和LF之间转换文本文件行结尾
    -*- host dosfstools                      //创建和检查DOS FAT文件系统
    -*- host dtc                             //设备树文件编译、反编译、查看
    -*- host e2fsprogs                       //EXT2/3/4文件系统实现工具
    [ ] host e2tools                         //读写、操作ext2/ext3文件系统中的文件
    [ ] host f2fs-tools                      //用于Flash-Friendly File System的工具(F2FS)
    [ ] host faketime                        //伪造的系统时间到程序
    [ ] host fwup                            //可编写脚本的嵌入式Linux固件更新创建者和运行者
    [ ] host genext2fs                       //生成ext2文件系统作为普通(非root)用户
    [*] host genimage                        //给定根文件系统树,生成多个文件系统和闪存映像的工具
    [ ] host genpart                         //生成由命令行参数定义的16字节分区表条目
    [ ] host gnupg                           //GNU Privacy Guard(GnuPG或GPG)加密软件
    [ ] host gptfdisk                        //由gdisk和sgdisk程序组成的文本模式分区工具,用于全局唯一标识符(GUID)分区表(GPT)磁盘
    [ ] host imx-mkimage                     //imx镜像制作工具
    [ ] host imx-usb-loader                  //Freescale i.MX5x/6x/7x/8x和Vybrid SoC USB上下载和执行代码的工具
    [ ] host jq                              //创建/编辑/合并/检查JSON文件
    [ ] host jsmin                           //删除JavaScript文件中注释和不必要的空格
    [ ] host lpc3250loader                   //LPC3250平台上加载/刻录程序
    [ ] host lttng-babeltrace                //跟踪读写库以及跟踪转换器的应用程序
    [ ] host mfgtools                        //使用Freescale UTP协议通过USB将固件编程到i.MX板
    [ ] host mkpasswd                        //随机密码生成工具
    [ ] host mtd, jffs2 and ubi/ubifs tools  //构建mtd、jffs2和ubi/ubifs工具
    [*] host mtools                          //用于从Unix访问MS-DOS磁盘而不安装它们
    [ ] host mxsldr                          //通过串行下载协议在Freescale i.MX23和i.MX28 SoC上下载和执行代码的工具
    [ ] host omap-u-boot-utils               //用于TI OMAP平台生成特定的U-Boot签名镜像文件等的工具
    [ ] host openocd                         //OpenOCD-开源片上调试器
    [ ] host opkg-utils                      //用于opkg包管理器的帮助程序脚本
    [ ] host parted                          //GNU分区调整大小程序
    [ ] host pkgconf                         //为开发框架配置编译器和链接器标志的程序
    [ ] host pru-software-support            //为某些TI处理器上的PRU单元提供了有用的标头和库,例如:AM3358
    [ ] host pwgen                           //密码生成器
    [ ] host python-cython                   //用于编写Python语言的C扩展的Cython编译器
    [ ] host python-lxml                     //用于处理XML和HTML
    [ ] host python-six                      //Six是Python2和3兼容库,目的是编写兼容两个Python版本的Python代码
    [ ] host python-xlrd                     //用于从Microsoft Excel电子表格文件中提取数据的库
    [ ] host qemu                            //一个通用的开源机器模拟器和虚拟器
    [ ] host raspberrypi-usbboot             //用于Raspberry Pi通过USB启动
    [ ] host rauc                            //用于生成由目标rauc服务处理的固件包
    [ ] host rcw                             //供复位配置字(RCW)编译器,用于构建NXP QoriQ/LS PBL/RCW二进制文件
    [ ] host rustc                           //Rust语言的编译器
    [ ] host sam-ba                          //用于Atmel SAM3、SAM7和SAM9 Soc的编程
    [ ] host squashfs                        //生成SquashFS文件系统的工具
    [ ] host sunxi-tools                     //用于Allwinner A10(又名sun4i)和A13(又名sun5i)设备的工具
    [ ] host swig                            //用于将C和C ++编写的程序与各种高级编程语言连接起来
    [ ] host tegrarcm                        //用于在恢复模式下将代码发送到Tegra设备
    [ ] host ti-cgt-pru                      //为某些TI处理器上的PRU单元提供代码生成工具,例如:AM3358
    -*- host u-boot tools                    //用于Das U-Boot引导程序的配套工具
    [ ]   Flattened Image Tree (FIT) support //拼合镜像(FIT)支持
    -*- host util-linux                      //各种有用/必要的Linux库和实用程序,像mkfs、mkswap、swapon、fdisk、mount,dmesg等
    [ ] host utp_com                         //用于通过飞思卡尔的UTP协议向硬件发送命令(类似于MFGTools)
    [ ] host vboot utils                     //Chromium OS验证了启动实用程序
    [ ] host xorriso                         //将符合POSIX标准的文件系统中的文件对象复制到Rock Ridge增强的ISO 9660文件系统中
    [ ] host zip                             //zip压缩包解压和压缩
    [ ] host zstd                            //快速无损压缩方式

BUildroot目录结构

arch/                   //存放CPU架构相关的配置文件Config.in.arm、Config.in.x86等,以及架构相关的构建脚本 
board/                  //存放某个具体单板紧密相关的文件,比如内核配置文件、sd卡制作脚本、rootfs覆盖文件等 
boot/                   //存放各种Bootloaders相关的的补丁*.patch、校验文件*.hash、构建脚本*.mk、配置选项Config.in
configs/                //存放各个单板的buildroot配置文件
dl/                     //存放所有下载的程序、源码压缩包、补丁等
docs/                   //存放PDF、HTML格式的buildroot详细说明
fs/                     //存放各种文件系统的构建脚本*.mk和配置选项Config.in
linux/                  //存放Linux的构建脚本*.mk和配置选项Config.in
output/                 //存放编译后的各种文件,包括所有软件的解压、编译后的现场、交叉编译工具链、生成的内核、根文件系统镜像等
package/                //存放所有软件包的构建脚本*.mk、配置选项Config.in,以及软件下载、解压、编译的构建脚本pkg-*.mk
support/                //存放一些为bulidroot提供功能支持的脚本、配置文件
system/                 //存放制作根文件系统的配置文件,设备节点的模块等
toolchain/              //存放制作各种交叉编译工具链的构建脚本*.mk和配置选项Config.in
utils/                  //存放一些buildroot的实用脚本和工具
CHANGES                 //buildroot修改日志
.config                 //make menuconfig后生成的最终配置文件
Config.in               //所有Config.in的入口,也是Build options的提供者 
Config.in.legacy        //Legacy config options的提供者
.config.old             //上次buildroot的备份,执行make oldconfig将.config.old替换.config   
COPYING                 //buildroot版权信息
DEVELOPERS              //开发人员列表,N后面是开发人员名字,F后面是开发的软件
Makefile                //顶层Makefile  
Makefile.legacy         //旧的Makefile,为了支持向后兼容
README                  //buildroot简单说明

output目录

output目录下有以下几个目录:
build:存放着解压后的各种软件包编译完后的现场;
graphs:执行make graph-build等命令后,生成的相关图形化文档;
host:制作好的交叉编译工具链;
images:各种最终生成的镜像;
staging:包含了根文件系统的层次结构,编译生成的所有头文件和库,以及其他开发文件,体积较大;
target:已经rootfs_overlay/处理过的根文件系统,但没有创建/dev/下的设备节点;

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×