“Buildroot”的版本间的差异

来自百问网嵌入式Linux wiki
 
(未显示2个用户的80个中间版本)
第1行: 第1行:
buildroot版本为2018.02LTS版
+
=buildroot简介=
官网使用手册 #https://buildroot.org/downloads/manual/manual.html
+
:Buildroot是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。<br>
=配置单板架构=
+
:你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包含boot、kernel、rootfs以及rootfs中的各种库和应用程序)。<br>
Target options  --->
+
:如何使用make menuconfig 请参考[[Menuconfig_or_how_to_configure_kernel]]<br>
  Target Architecture (ARM (little endian))  --->
+
:官网使用手册 https://buildroot.org/downloads/manual/manual.html
  Target Binary Format (ELF)  --->
+
=buildroot功能详解=
  Target Architecture Variant (cortex-A8)  --->
 
  Target ABI (EABIhf)  --->
 
  Floating point strategy (VFPv3-D16)  --->
 
  ARM instruction set (ARM)  --->
 
  
=构建配置=
+
* [[Buildroot_TargetOptions      | TargetOptions      ]]
Build options  --->
+
::目标单板架构配置。
 +
* [[Buildroot_BuildOptions        | BuildOptions        ]]
 +
::主要是一些编译时用到的选项,比如dl的路径,下载代码包使用的路径,同时运行多个编译的上限,是否使能编译器缓冲区等等,这里按照默认就行了.
 +
* [[Buildroot_Toolchain          | Toolchain          ]]
 +
::此页面主要介绍如何使用buildroot配置内部交叉编译工具链,以及外部交叉编译工具链,还有如何添加自己的交叉编译工具链!
 +
* [[Buildroot_SystemConfiguration | SystemConfiguration ]]
 +
:: 此页主要涉及配置系统主机名,登陆欢迎信息root密码,以及构建系统镜像版本,根文件系统覆盖!
 +
* [[Buildroot_Kernel              | Kernel              ]]
 +
::此页面主要介绍在线下载内核源码并自动编译集成到根文件系统的方法!
 +
* [[Buildroot_TargetPackages      | TargetPackages      ]]
 +
::此页主要介绍目标开发板上使用的根文件系统所需要的软件包的添加方法,以及配置方法!
 +
:*[[Buildroot_Audio and video applications | Audio and video applications]]
 +
:::此页主要介绍buildtroot支持的音频和视频应用功能介绍以及如何配置使用
 +
:*[[Buildroot_Compressors and decompressors | Compressors and decompressors]]
 +
:::此页主要介绍buildtroot支持的压缩和解压应用简介以及如何配置使用
 +
:*[[Buildroot_Debugging profiling and benchmark |Debugging profiling and benchmark]]
 +
:::此页面主要介绍buildroot 调试、分析和基准测试应用的简介以及如何配置使用。
 +
:*[[Buildroot_Development tools | Development tools]]
 +
:::此页面主要介绍buildroot支持在目标系统上的开发工具应用的简介以及如何配置使用。
 +
:*[[Buildroot_Filesystem and flash utilities | Filesystem and flash utilities]]
 +
:::此页面主要介绍buildroot支持在目标系统上的文件系统和闪存实用程序的简介以及如何配置使用。
 +
:*[[Buildroot_Fonts cursors icons sounds and themes |Fonts cursors icons sounds and themes]]
 +
:::此页面主要介绍buildroot支持在目标系统上的字体,游标,图标,声音和主题的简介以及如何配置使用。
 +
:*[[Buildroot_Games | Games]]
 +
:::此页面主要介绍buildroot支持在目标系统上的游戏 以及如何配置使用。
 +
:*[[Buildroot_Graphic libraries and applications | Graphic libraries and applications]]
 +
:::此页面主要介绍buildroot支持在目标系统上的图形库和应用程序(图形/文本)的简介以及如何配置使用。
 +
:*[[Buildroot_Hardware handling | Hardware handling]]
 +
:::此页面主要介绍buildroot支持在目标系统上的硬件处理应用/工具的简介以及如何配置使用。
 +
:*[[Buildroot_Interpreter languages and scripting | Interpreter languages and scripting]]
 +
:::此页面主要介绍buildroot支持在目标系统上的编程语言和脚本的简介以及如何配置使用。
 +
:*[[Buildroot_Libraries | Libraries]]
 +
:::此页面主要介绍buildroot支持在目标系统上的库的简介以及如何配置使用。
 +
:*[[Buildroot_Mail| Mail]]
 +
:::此页面主要介绍buildroot支持在目标系统上的邮箱应用的简介以及如何配置使用。
 +
:*[[Buildroot_Miscellaneous | Miscellaneous]]
 +
:::此页面主要介绍buildroot支持在目标系统上的一些杂项应用的简介以及如何配置使用。
 +
:*[[Buildroot_Networking applications | Networking applications]]
 +
:::此页面主要介绍buildroot支持在目标系统上的网络应用程序的简介以及如何配置使用。
 +
:*[[Buildroot_Package managers | Package managers]]
 +
:::此页面主要介绍buildroot支持在目标系统上的 包管理 应用的简介以及如何配置使用。
 +
:*[[Buildroot_Real-Time | Real-Time]]
 +
:::此页面主要介绍buildroot支持在目标系统上的 实时时钟 的简介以及如何配置使用。
 +
:*[[Buildroot_Security | Security]]
 +
:::此页面主要介绍buildroot支持在目标系统上的 实时时钟 的简介以及如何配置使用。
 +
:*[[Buildroot_Shell and utilities | Shell and utilities]]
 +
:::此页面主要介绍buildroot支持在目标系统上的 Shell和程序 的简介以及如何配置使用。
 +
:*[[Buildroot_System tools |System tools]]
 +
:::此页面主要介绍buildroot支持在目标系统上的 系统工具 的简介以及如何配置使用。
 +
:*[[Buildroot_Text editors and viewers | Text editors and viewers]]
 +
:::此页面主要介绍buildroot支持在目标系统上的 文版编辑和浏览工具 的简介以及如何配置使用。
 +
* [[Buildroot_FilesystemImages    | FilesystemImages    ]]
 +
::此页介绍如何使用buildroot自动根据系统分区生成相应的系统镜像!
 +
* [[Buildroot_Bootloaders        | Bootloaders        ]]
 +
::此页主要介绍在线下载u-boot源码,编译并生成相应的镜像文件到指定位置!
 +
* [[Buildroot_HostUtilities      | HostUtilities      ]]
 +
::
 +
* [[Buildroot_LegacyConfigOptions | LegacyConfigOptions ]]
  
  Commands  --->                                                                      
+
=目录结构=
  (/ti/mini437x_buildroot/configs/mini4378_defconfig) Location to save buildroot config
+
*<code>buildroot/package/:</code>下面放着应用软件的配置文件,每个应用软件的配置文件有<code>Config.in</code>和<code>soft_name.mk</code>,其中soft_name.mk(这种其实就Makefile脚本的自动构建脚本)文件可以去下载应用软件的包。
  ($(TOPDIR)/dl) Download dir                                                         
+
*<code>buildroot/output/:</code>是编译出来的输出文件夹,里面的build/目录存放着解压后的各种软件包编译完后的现场。
  ($(BASE_DIR)/host) Host dir                                                         
+
**<code>build:</code>所有源码包解压出来的文件存放地和编译的发生地
      Mirrors and Download locations  --->                                            
+
**<code>staging:</code>软链接到 host/<tuple>/sysroot 就是上面说到的文件系统需要的库等目录,方便查看
  (0) Number of jobs to run simultaneously (0 for auto)                               
+
**<code>target: </code>目录是用来制作rootfs的,里面放着Linux系统基本的目录结构,以及各种编译好的应用库和bin可执行文件。不能用来nfs mount到开发板,因为buildroot不是root权权运行的,所以现dev/,etc/等一些文件无法创建,所以目录还不完整,要用images/里的rootfs.tar解压出来的根文件目录才能mount.使用如下命令:<code>sudo tar -C /destination/of/extraction -xf images/rootfs.tar</code>
  [ ] Enable compiler cache                                                           
+
**<code>Images:</code>目录下就是最终生成的可烧写到板子上的各种image。
  [ ] build packages with debugging symbols                                           
+
**<code>host:</code>是由各类源码编译后在你主机上运行的工具(build for host)的安装目录,如arm-linux-gcc就是安装在这里;编译出来的主机工具在host/usr下;根目录所需要的库及一些基本目录就在<code>host/<tuple>/sysroot/</code>或<code>host/usr/<tuple>/sysroot/</code>(<tuple>:arm-buildroot-linux-gnueabi),如果是外部toolchain,比如lirano的就在libc里,名字不一样而已
  [*] strip target binaries                                                           
+
*<code>buildroot/dl:</code>存放下载的源码包及应用软件的压缩包
  ()    executables that should not be stripped                                       
+
*<code>buildroot/fs:</code>放各种文件系统的源代码
  ()    directories that should be skipped when stripping                             
+
*<code>buildroot/fs/skeleton:</code>放生成文件系统镜像的地方,及板子里面的系统
      gcc optimization level (optimize for size) --->                                
+
*<code>buildroot/linux:</code>存放着Linux kernel的自动构建脚本。
  [ ] Enable google-breakpad support                                                 
+
*<code>buildroot/configs:</code>放置开发板的一些配置参数
      libraries (shared only)  --->                                                  
+
*<code>buildroot/dl:</code>目录存放从官网上下载的开源软件包,第一次下载后,下次就不会再去从官网下载了,而是从dl/目录下拿开源包,以节约时间。本身下载通常都是很慢的,你可以手动找到相关包下载后放到这里就OK了,make时会自动检测这个目录.
  ($(CONFIG_DIR)/local.mk) location of a package override file                       
+
*<code>buildroot/docs:</code>存放相关的参考文档。
  (board/mini335x/patches) global patch directories                                   
+
*<code>buildroot/arch:</code>目录存放CPU架构相关的配置脚本,如arm/mips/x86 ,这些CPU相关的配置,在制作工具链,编译boot和内核时很关键。
      Advanced  --->                                                                  
+
*<code>buildroot/board:</code>存放了一些默认开发板的配置补丁之类的
      *** Security Hardening Options ***                                              
+
*<code>buildroot/boot:</code>
      Stack Smashing Protection (None)  --->                                          
+
*<code>buildroot/build:</code>
      RELRO Protection (None)  --->                                                  
+
*<code>buildroot/support:</code>
      Buffer-overflow Detection (FORTIFY_SOURCE) (None)  --->
+
*<code>buildroot/system:</code>这里就是根目录的主要骨架了和相关的启动初始化配置,当制作根目录时就是将此处的文件cp到output里去.然后再安装toolchain的动态库和你勾选的package的可执行文件之类的.
 +
*<code>buildroot/toolchain:</code>
  
=配置工具链=
+
=buidroot常用命令=
Toolchain type (External toolchain) ---
+
==Linux内核操作的常用命令==
 +
*buildroot下单独编译内核
 +
book@100ask:~/Buildroot$ make linux-rebuild
 +
*运行内核make menuconfig配置选项界面
 +
  book@100ask:~/Buildroot$ make linux-menuconfig 
 +
*保存内核最新的配置文件
 +
  book@100ask:~/Buildroot$ make linux-savedefconfig 
 +
*更新内核配置文件
 +
  book@100ask:~/Buildroot$ make linux-update-defconfig
  
  │ │ ( ) Buildroot toolchain                │ │
+
==其它常用操作==
  │ │                  (X) External toolchain  │ │
+
*buildroot下编译生成sdk
==自动制作工具链==
+
  book@100ask:~/Buildroot$ make sdk
参考文章 https://blog.csdn.net/zhou_chenz/article/details/52346134
+
*buildroot下编译时显示详细信息
 +
book@100ask:~/Buildroot$ make V=1 <pkg>
 +
*buildroot下编译时显示详细信息
 +
book@100ask:~/Buildroot$ make V=1 <pkg>
 +
*buildroot下单独编译u-boot
 +
book@100ask:~/Buildroot$ make uboot-rebuild
 +
*buildroot下单独编译某个软件包
 +
book@100ask:~/Buildroot$ make <pkg>-rebuild
  
==在线下载的==
+
=buildroot高级操作=
  Toolchain type (External toolchain)  --->                                                                                         
+
*[[How to add a new package to buildroot | 如何添加一个自己的包到buildroot]]
      *** Toolchain External Options ***                                                                                                 
+
*[[Buildroot_TargetOptions | 如何配置TargetOptions(目标架构选择) ]]
      Toolchain (Custom toolchain)  --->                                                                                                 
+
*[[Buildroot_BuildOptions| 如何配置buildroot构建选项]]
      Toolchain origin (Toolchain to be downloaded and installed)  --->                                                                 
+
*[[Buildroot_Toolchain | 如何为目标单板配置工具链]]
  (https://publishing-ap-linaro-org.s3.amazonaws.com/...)
+
*[[Buildroot_SystemConfiguration | 如何为目标单板配置系统配置参数]]
  ($(ARCH)-linux-gnueabihf) Toolchain prefix                                                                                             
+
*[[Buildroot_Kernel |如何为目标单板安装内核镜像]]
      External toolchain gcc version (5.x)  --->                                                                                         
+
*[[Buildroot_TargetPackages | 如何安装相应的软件包到目标单板内]]
      External toolchain kernel headers series (4.0.x)  --->                                                                             
+
*[[Buildroot_Bootloaders | 如何为目标单板安装uboot]]
      External toolchain C library (glibc/eglibc)  --->                                                                                 
+
*[[Buildroot_FilesystemImages | 如何为目标单板生成指定的文件系统镜像]]
  [*] Toolchain has SSP support?                                                                                                         
 
  [*] Toolchain has RPC support?                                                                                                         
 
  [*] Toolchain has C++ support?                                                                                                         
 
  () Extra toolchain libraries to be copied to target                                                                                   
 
  [ ] Copy gdb server to the Target                                                                                                     
 
      *** Host GDB Options ***                                                                                                           
 
  [ ] Build cross gdb for the host                                                                                                       
 
      *** Toolchain Generic Options ***                                                                                                  
 
  [ ] Copy gconv libraries                                                                                                               
 
  [*] Enable MMU support                                                                                                                 
 
  ()  Target Optimizations                                                                                                               
 
  ()  Target linker options                                                                                                             
 
  [ ] Register toolchain within Eclipse Buildroot plug-in
 
 
 
=系统配置=                                                                     
 
System configuration  --->
 
==配置登陆信息==
 
  Root FS skeleton (default target skeleton)  --->                                       
 
  (mini437x) System hostname                                                           
 
  (Welcome to Mini437x) System banner                                                   
 
      Passwords encoding (md5)  --->                                                   
 
      Init system (systemV)  --->                                                       
 
      /dev management (Dynamic using devtmpfs + mdev)  --->                             
 
  (system/device_table.txt) Path to the permission tables                               
 
  [ ] support extended attributes in device tables                                     
 
  [ ] Use symlinks to /usr for /bin, /sbin and /lib                                     
 
  [*] Enable root login with password                                                   
 
  ()    Root password                                                                   
 
      /bin/sh (bash)  --->                                                             
 
  [*] Run a getty (login prompt) after boot  --->                                       
 
  [*] remount root filesystem read-write during boot                                   
 
  (eth0) Network interface to configure through DHCP                                   
 
  [*] Purge unwanted locales                                                           
 
  (C en_US) Locales to keep                                                             
 
  ()  Generate locale data                                                             
 
  [ ] Enable Native Language Support (NLS)                                             
 
  -*- Install timezone info                                                             
 
  (default) timezone list                                                               
 
  (Etc/UTC) default local time                                                         
 
  ()  Path to the users tables                                                         
 
  (board/mini437x/rootfs-overlay) Root filesystem overlay directories                   
 
  (board/mini437x/post-build.sh) Custom scripts to run before creating filesystem images
 
  ()  Custom scripts to run inside the fakeroot environment                             
 
  (board/mini437x/post-image.sh) Custom scripts to run after creating filesystem images 
 
  ()    Extra arguments passed to custom scripts
 
 
 
==配置登陆串口==
 
==其它配置==
 
 
 
=配置linuxkernel=
 
Kernel  --->
 
 
 
  │ │    [*] Linux Kernel                                                                    │ │
 
  │ │            *** Linux kernel in thumb mode may be broken with binutils >= 2.29 ***            │ │
 
  │ │            Kernel version (Latest version (4.15))  --->                                      │ │
 
  │ │      ()    Custom kernel patches (NEW)                                                      │ │
 
  │ │            Kernel configuration (Using an in-tree defconfig file)  --->                      │ │
 
  │ │      ()    Defconfig name (NEW)                                                              │ │
 
  │ │      ()    Additional configuration fragment files (NEW)                                    │ │
 
  │ │            Kernel binary format (zImage)  --->                                              │ │
 
  │ │            Kernel compression format (gzip compression)  --->                                │ │
 
  │ │      [ ]  Build a Device Tree Blob (DTB) (NEW)                                              │ │
 
  │ │      [ ]  Install kernel image to /boot in target (NEW)                                    │ │
 
  │ │      [ ]   Needs host OpenSSL (NEW)                                                          │ │
 
  │ │      [ ]   Needs host libelf (NEW)                                                          │ │
 
  │ │            Linux Kernel Extensions  --->                                                    │ │
 
  │ │            Linux Kernel Tools  --->                                                          │ │
 
 
 
=包的管理=
 
Target packages  --->
 
  -*- BusyBox
 
  (package/busybox/busybox.config) BusyBox configuration file to use?
 
  ()    Additional BusyBox configuration fragment files
 
  -*-  Show packages that are also provided by busybox
 
  [ ]  Enable SELinux support
 
  [ ]   Individual binaries
 
  [ ]   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  --->
 
  System tools  --->
 
  Text editors and viewers  --->
 
==手动添加自己的包==
 
==添加蓝牙工具==
 
==添加wifi工具==
 
==添加http+php工具==
 
==添加Qt==
 
==添加can-until==
 
==添加ssh工具==
 
==添加mkfs格式化工具==
 
==添加自己的bin文件==
 
 
 
=编译bootloader=
 
 
 
=系统镜像的生成=
 
 
 
参考网址
 
#https://blog.csdn.net/zhou_chenz/article/category/6019071
 
  
 +
=参考=
 +
* https://hceng.cn/2019/09/05/Buildroot%E7%AC%94%E8%AE%B0/#more
 +
* https://www.cnblogs.com/kele-dad/p/8231434.html
 +
* https://blog.csdn.net/zhou_chenz/article/category/6019071
 +
* http://www.crifan.com/files/doc/docbook/buildroot_intro/release/html/buildroot_intro.html
 +
* https://buildroot.org/
 
[[Category:rootfs]]
 
[[Category:rootfs]]
 +
[[Special:RecentChanges | Special:RecentChanges]]

2020年8月26日 (三) 16:32的最新版本

buildroot简介

Buildroot是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。
你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包含boot、kernel、rootfs以及rootfs中的各种库和应用程序)。
如何使用make menuconfig 请参考Menuconfig_or_how_to_configure_kernel
官网使用手册 https://buildroot.org/downloads/manual/manual.html

buildroot功能详解

目标单板架构配置。
主要是一些编译时用到的选项,比如dl的路径,下载代码包使用的路径,同时运行多个编译的上限,是否使能编译器缓冲区等等,这里按照默认就行了.
此页面主要介绍如何使用buildroot配置内部交叉编译工具链,以及外部交叉编译工具链,还有如何添加自己的交叉编译工具链!
此页主要涉及配置系统主机名,登陆欢迎信息root密码,以及构建系统镜像版本,根文件系统覆盖!
此页面主要介绍在线下载内核源码并自动编译集成到根文件系统的方法!
此页主要介绍目标开发板上使用的根文件系统所需要的软件包的添加方法,以及配置方法!
此页主要介绍buildtroot支持的音频和视频应用功能介绍以及如何配置使用
此页主要介绍buildtroot支持的压缩和解压应用简介以及如何配置使用
此页面主要介绍buildroot 调试、分析和基准测试应用的简介以及如何配置使用。
此页面主要介绍buildroot支持在目标系统上的开发工具应用的简介以及如何配置使用。
此页面主要介绍buildroot支持在目标系统上的文件系统和闪存实用程序的简介以及如何配置使用。
此页面主要介绍buildroot支持在目标系统上的字体,游标,图标,声音和主题的简介以及如何配置使用。
此页面主要介绍buildroot支持在目标系统上的游戏 以及如何配置使用。
此页面主要介绍buildroot支持在目标系统上的图形库和应用程序(图形/文本)的简介以及如何配置使用。
此页面主要介绍buildroot支持在目标系统上的硬件处理应用/工具的简介以及如何配置使用。
此页面主要介绍buildroot支持在目标系统上的编程语言和脚本的简介以及如何配置使用。
此页面主要介绍buildroot支持在目标系统上的库的简介以及如何配置使用。
此页面主要介绍buildroot支持在目标系统上的邮箱应用的简介以及如何配置使用。
此页面主要介绍buildroot支持在目标系统上的一些杂项应用的简介以及如何配置使用。
此页面主要介绍buildroot支持在目标系统上的网络应用程序的简介以及如何配置使用。
此页面主要介绍buildroot支持在目标系统上的 包管理 应用的简介以及如何配置使用。
此页面主要介绍buildroot支持在目标系统上的 实时时钟 的简介以及如何配置使用。
此页面主要介绍buildroot支持在目标系统上的 实时时钟 的简介以及如何配置使用。
此页面主要介绍buildroot支持在目标系统上的 Shell和程序 的简介以及如何配置使用。
此页面主要介绍buildroot支持在目标系统上的 系统工具 的简介以及如何配置使用。
此页面主要介绍buildroot支持在目标系统上的 文版编辑和浏览工具 的简介以及如何配置使用。
此页介绍如何使用buildroot自动根据系统分区生成相应的系统镜像!
此页主要介绍在线下载u-boot源码,编译并生成相应的镜像文件到指定位置!

目录结构

  • buildroot/package/:下面放着应用软件的配置文件,每个应用软件的配置文件有Config.insoft_name.mk,其中soft_name.mk(这种其实就Makefile脚本的自动构建脚本)文件可以去下载应用软件的包。
  • buildroot/output/:是编译出来的输出文件夹,里面的build/目录存放着解压后的各种软件包编译完后的现场。
    • build:所有源码包解压出来的文件存放地和编译的发生地
    • staging:软链接到 host/<tuple>/sysroot 就是上面说到的文件系统需要的库等目录,方便查看
    • target: 目录是用来制作rootfs的,里面放着Linux系统基本的目录结构,以及各种编译好的应用库和bin可执行文件。不能用来nfs mount到开发板,因为buildroot不是root权权运行的,所以现dev/,etc/等一些文件无法创建,所以目录还不完整,要用images/里的rootfs.tar解压出来的根文件目录才能mount.使用如下命令:sudo tar -C /destination/of/extraction -xf images/rootfs.tar
    • Images:目录下就是最终生成的可烧写到板子上的各种image。
    • host:是由各类源码编译后在你主机上运行的工具(build for host)的安装目录,如arm-linux-gcc就是安装在这里;编译出来的主机工具在host/usr下;根目录所需要的库及一些基本目录就在host/<tuple>/sysroot/host/usr/<tuple>/sysroot/里 (<tuple>:arm-buildroot-linux-gnueabi),如果是外部toolchain,比如lirano的就在libc里,名字不一样而已
  • buildroot/dl:存放下载的源码包及应用软件的压缩包
  • buildroot/fs:放各种文件系统的源代码
  • buildroot/fs/skeleton:放生成文件系统镜像的地方,及板子里面的系统
  • buildroot/linux:存放着Linux kernel的自动构建脚本。
  • buildroot/configs:放置开发板的一些配置参数
  • buildroot/dl:目录存放从官网上下载的开源软件包,第一次下载后,下次就不会再去从官网下载了,而是从dl/目录下拿开源包,以节约时间。本身下载通常都是很慢的,你可以手动找到相关包下载后放到这里就OK了,make时会自动检测这个目录.
  • buildroot/docs:存放相关的参考文档。
  • buildroot/arch:目录存放CPU架构相关的配置脚本,如arm/mips/x86 ,这些CPU相关的配置,在制作工具链,编译boot和内核时很关键。
  • buildroot/board:存放了一些默认开发板的配置补丁之类的
  • buildroot/boot:
  • buildroot/build:
  • buildroot/support:
  • buildroot/system:这里就是根目录的主要骨架了和相关的启动初始化配置,当制作根目录时就是将此处的文件cp到output里去.然后再安装toolchain的动态库和你勾选的package的可执行文件之类的.
  • buildroot/toolchain:

buidroot常用命令

Linux内核操作的常用命令

  • buildroot下单独编译内核
book@100ask:~/Buildroot$ make  linux-rebuild
  • 运行内核make menuconfig配置选项界面
 book@100ask:~/Buildroot$ make linux-menuconfig   
  • 保存内核最新的配置文件
 book@100ask:~/Buildroot$ make linux-savedefconfig   
  • 更新内核配置文件
 book@100ask:~/Buildroot$ make linux-update-defconfig

其它常用操作

  • buildroot下编译生成sdk
book@100ask:~/Buildroot$ make sdk
  • buildroot下编译时显示详细信息
book@100ask:~/Buildroot$ make V=1 <pkg>
  • buildroot下编译时显示详细信息
book@100ask:~/Buildroot$ make V=1 <pkg>
  • buildroot下单独编译u-boot
book@100ask:~/Buildroot$ make uboot-rebuild
  • buildroot下单独编译某个软件包
book@100ask:~/Buildroot$ make <pkg>-rebuild