千家信息网

嵌入式Linux内核中根文件系统构建工具Buildroot怎么用

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,嵌入式Linux内核中根文件系统构建工具Buildroot怎么用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Buildroot 快速入
千家信息网最后更新 2026年11月03日嵌入式Linux内核中根文件系统构建工具Buildroot怎么用

嵌入式Linux内核中根文件系统构建工具Buildroot怎么用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

Buildroot 快速入手指导

buildroot 是一款专门用来定制嵌入式 Linux 的内核和根文件系统(rootfs) 的开源工具, 非常强大兼方便, 不过对于新手来说, 过多的配置项明显有些难度, 本文的目标就是简要介绍这款工具, 让新手迅速入门.

目标:

  • 1 新手需要了解的2个目录和1个文件


  • 2 熟悉该工具的基本命令 ;


  • 3 构建出一个内核和一个根文件系统


练习:

  • 1 查看针对特定开发板的典型配置文件的选项


  • 2 利用工具自带的配置文件生成一个 Linux 内核和根文件系统;


首先是获取该工具, 在 github 上, 命令如下:

git clone https://github.com/buildroot/buildroot

进入目录, 查看:

pi@rpi /opt/github/buildroot $ ls -altotal 420drwxr-xr-x   15 root root   4096 Dec 24 21:18 .drwxr-xr-x   73 git  git    4096 Jan  3 08:01 ..drwxr-xr-x    2 root root   4096 Dec 24 21:15 archdrwxr-xr-x   25 root root   4096 Dec 24 21:15 boarddrwxr-xr-x   15 root root   4096 Dec 24 21:15 boot-rw-r--r--    1 root root 146433 Dec 24 21:15 CHANGES-rw-r--r--    1 root root  44501 Dec 24 21:16 .config-rw-r--r--    1 root root  19111 Dec 24 21:15 Config.in-rw-r--r--    1 root root  42879 Dec 24 21:15 Config.in.legacydrwxr-xr-x    2 root root   4096 Dec 24 21:15 configs-rw-r--r--    1 root root  17987 Dec 24 21:15 COPYING-rw-r--r--    1 root root   1246 Dec 24 21:15 .defconfigdrwxr-xr-x    5 root root   4096 Dec 24 21:15 docsdrwxr-xr-x   15 root root   4096 Dec 24 21:15 fsdrwxr-xr-x    8 root root   4096 Dec 24 21:18 .git-rw-r--r--    1 root root    125 Dec 24 21:15 .gitignoredrwxr-xr-x    2 root root   4096 Dec 24 21:15 linux-rw-r--r--    1 root root  34899 Dec 24 21:15 Makefile-rw-r--r--    1 root root   2432 Dec 24 21:15 Makefile.legacydrwxr-xr-x    3 root root   4096 Dec 24 21:18 outputdrwxr-xr-x 1266 root root  36864 Dec 24 21:15 package-rw-r--r--    1 root root    972 Dec 24 21:15 READMEdrwxr-xr-x   11 root root   4096 Dec 24 21:15 supportdrwxr-xr-x    3 root root   4096 Dec 24 21:15 systemdrwxr-xr-x    5 root root   4096 Dec 24 21:15 toolchainpi@rpi /opt/github/buildroot $

1. 新手需要了解的2个目录和1个文件

先说目录:

  • 目录1: `configs`


一个是 configs 目录, 存放着工具提供的一些特定系统的构建配置, 换句话说就是一些使用比较广泛的 Linux 嵌入式系统的构建配置文件, 例如, 我们熟悉的树莓派1 raspberrypi_defconfig 和2 raspberrypi2_defconfig 的构建配置文件就在其中, 我们可以看一下内容:

pi@rpi /opt/github/buildroot $ ls ./configsaltera_sockit_defconfig        calao_usb_a9g20_lpw_defconfig        minnowboard_defconfig              qemu_ppc_virtex_ml507_defconfigarmadeus_apf27_defconfig       ci20_defconfig                       minnowboard_max_defconfig          qemu_sh5_r2d_defconfigarmadeus_apf28_defconfig       cubieboard2_defconfig                mx53loco_defconfig                 qemu_sparc_ss10_defconfigarmadeus_apf51_defconfig       cubieboard_defconfig                 nitrogen6x_defconfig               qemu_x86_64_defconfigarmadeus_apf9328_defconfig     freescale_imx28evk_defconfig         olimex_imx233_olinuxino_defconfig  qemu_x86_defconfigarm_foundationv8_defconfig     freescale_imx31_3stack_defconfig     openblocks_a6_defconfig            qemu_xtensa_lx60_defconfigat91rm9200df_defconfig         freescale_imx6dlsabreauto_defconfig  pandaboard_defconfig               qmx6_defconfigat91sam9260dfc_defconfig       freescale_imx6dlsabresd_defconfig    qemu_aarch74_virt_defconfig        raspberrypi2_defconfigat91sam9260eknf_defconfig      freescale_imx6qsabreauto_defconfig   qemu_arm_nuri_defconfig            raspberrypi_defconfigat91sam9261ek_defconfig        freescale_imx6qsabresd_defconfig     qemu_arm_versatile_defconfig       raspberrypi_dt_defconfigat91sam9263ek_defconfig        freescale_imx6sololiteevk_defconfig  qemu_arm_vexpress_defconfig        riotboard_defconfigat91sam9g20dfc_defconfig       freescale_mpc8315erdb_defconfig      qemu_microblazebe_mmu_defconfig    s6lx9_microboard_defconfigat91sam9g45m10ek_defconfig     freescale_p1010rdb_pa_defconfig      qemu_microblazeel_mmu_defconfig    sheevaplug_defconfigatmel_xplained_defconfig       freescale_p2020ds_defconfig          qemu_mips64el_malta_defconfig      telit_evk_pro3_defconfigbeaglebone_defconfig           gnublin_defconfig                    qemu_mips64_malta_defconfig        ts5x00_defconfigcalao_qil_a9260_defconfig      integrator926_defconfig              qemu_mipsel_malta_defconfig        udoo_quad_defconfigcalao_snowball_defconfig       kb9202_defconfig                     qemu_mips_malta_defconfig          wandboard_defconfigcalao_tny_a9g20_lpw_defconfig  lego_ev3_defconfig                   qemu_ppc64_pseries_defconfig       zedboard_defconfigcalao_usb_a9260_defconfig      loongson1c_smartloong_defconfig      qemu_ppc_g3beige_defconfigcalao_usb_a9263_defconfig      mini2440_defconfig                   qemu_ppc_mpc8544ds_defconfigpi@rpi /opt/github/buildroot $
  • 目录2: `output`


另一个是 output 目录, 存放着你构建好之后的输出, 在 output/images/ 目录下放着构建好的内核和根文件系统, 我们可以在开始构建之前看看该目录的结构:

pi@rpi /opt/github/buildroot $ tree ./output./output└── build    └── buildroot-config        ├── conf.o        ├── lxdialog        │   ├── checklist.o        │   ├── inputbox.o        │   ├── menubox.o        │   ├── textbox.o        │   ├── util.o        │   └── yesno.o        ├── mconf        ├── mconf.o        ├── zconf.hash.c        ├── zconf.lex.c        └── zconf.tab.o3 directories, 12 filespi@rpi /opt/github/buildroot $
  • 文件: `.config`


一个文件就是 .config, 它就是构建时使用的配置文件, 举个例子, 如果我们打算使用工具自带的配置文件来构建树莓派2的内核和根文件系统, 那么首先把它从 configs 目录拷出来, 覆盖掉当前目录下的 .config 文件, 命令如下:

cp ./configs/ raspberrypi2_defconfig ./.config

讲解了简单的2个目录和1个文件, 接下来说一下基本命令

2. 熟悉该工具的基本命令

buildroot 基本的命令就是 make, 对于新手来说只需要执行2次:

  • 第1次带参数执行用来定制系统:


定制系统的命令为:

make menuconfig

执行后会启动一个配置菜单, 进去之后可以根据你自己的需要增加或裁剪系统功能, 然后选择保存, 所有的配置会被保存为当前目录下的 .config 文件.

执行界面就是这个样子:

也可以通过 load 选项加载工具自带的配置文件, 看看典型配置是什么样的.

  • 第2次不带参数执行用来构建系统:


构建命令为:

make

会构建比较长的时间, 构建完成后可以查看刚才说过的 ./output/images/ 目录, 恰好我刚刚完成一次对龙芯智龙开源开发板的根文件系统构建, 我们可以看看:

git@debian:/opt/github/pengphai-buildroot$ ls -al ./output总用量 28drwxr-xr-x  6 git git 4096 8月   6 06:51 .drwxr-xr-x 16 git git 4096 8月   6 06:51 ..drwxr-xr-x 54 git git 4096 8月   6 07:36 builddrwxr-xr-x  5 git git 4096 8月   6 07:12 hostdrwxr-xr-x  2 git git 4096 8月   6 07:36 imageslrwxrwxrwx  1 git git   81 8月   6 06:51 staging -> /opt/github/pengphai-buildroot/output/host/usr/mipsel-buildroot-linux-gnu/sysrootdrwxr-xr-x 19 git git 4096 8月   6 07:36 targetgit@debian:/opt/github/pengphai-buildroot$ ls -al ./output/images总用量 22956drwxr-xr-x 2 git git     4096 8月   6 07:36 .drwxr-xr-x 6 git git     4096 8月   6 06:51 ..-rw------- 1 git git 23498112 8月   6 07:36 rootfs.yaffs2imggit@debian:/opt/github/pengphai-buildroot$

3. 构建出一个内核和一个根文件系统

命令很简单, 我们以树莓派2为例, 直接使用工具自带的配置文件, 命令如下:

pi@rpi /opt/github/buildroot $ sudo cp ./configs/raspberrypi2_defconfig ./configpi@rpi /opt/github/buildroot $ sudo make

我是在树莓派2上执行的构建, 所以应该会有一个漫长的构建过程

===补充说明, 刚发现树莓派2的配置文件还有很多项没配置, 需要用户选择, 后续我写一个完全配置好的, 这个例子只会让新手疑惑

看完上述内容,你们掌握嵌入式Linux内核中根文件系统构建工具Buildroot怎么用的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

文件 配置 系统 目录 工具 命令 内核 就是 新手 树莓 嵌入式 内容 例子 典型 参数 方法 更多 用量 目标 问题 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 精品咖啡豆 互联网科技公司经营范围 互联网科技产业 金融科技创新监管互联网金融 安徽鑫晟辉互联网科技 互联网科技有限公司 翻译 中国最先进互联网科技公司 南平创想时代互联网科技有限公司 苏州五指互联网络科技有限 广西互联网科技孵化中心 华夏恒生科技与互联网科技 玉溪新华互联网科技好不好 中科明德北京互联网科技 广东工业互联网大赛深圳学泰科技 广州千川互联网科技有限公司 互联网科技数字货币 上海互联网科技公司ppt 互联网科技融合创新 江苏互联网科技小贷 广州智享互联网科技 南京欣网互联网络科技有限公司 A股互联网金融科技公司 圆梦互联网科技 互联网科技卖菜 互联网科技素材视频竖屏 茂名市互联网科技产业园 玉溪互联网科技怎么选 珠海东科互联网科技有限公司 保山互联网科技靠谱吗 中国互联网公司的科技投入
0