# buildroot **Repository Path**: cycui/buildroot ## Basic Information - **Project Name**: buildroot - **Description**: qemu+builldroot - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-18 - **Last Updated**: 2024-06-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### 配置环境变量 ``` sudo apt install sed make binutils build-essential gcc g++ patch gzip bzip2 perl tar cpio unzip rsync file bc wget sudo apt install wget python libncurses5 bzr cvs git mercurial rsync subversion ``` #### 目录介绍 ``` ├── arch: 存放CPU架构相关的配置脚本,如arm/mips/x86,这些CPU相关的配置,在制作工具链时,编译uboot和kernel时很关键. 该目录包含与特定开发板相关的配置文件。每个板目录中通常包含一个`boardname`文件夹和一个`.config`文件,其中`boardname`文件夹包含特定开发板的配置文件和补丁,`.config`文件包含与特定板相关的默认配置。 ├── board ├── boot 存放用于引导的文件,如 U-Boot 配置文件等。 ├── CHANGES ├── Config.in ├── Config.in.legacy ├── configs: 放置开发板的一些配置参数. ├── COPYING ├── DEVELOPERS ├── dl: 存放下载的源代码及应用软件的压缩包. ├── docs: 存放相关的参考文档. ├── fs: 放各种文件系统的源代码. ├── linux: 存放着Linux kernel的自动构建脚本. ├── Makefile ├── Makefile.legacy ├── output: 是编译出来的输出文件夹. │ ├── build: 存放解压后的各种软件包编译完成后的现场. │ ├── host: 存放着制作好的编译工具链,如gcc、arm-linux-gcc等工具. │ ├── images: 存放着编译好的uboot.bin, zImage, rootfs等镜像文件,可烧写到板子里, 让linux系统跑起来. │ ├── staging │ └── target: 用来制作rootfs文件系统,里面放着Linux系统基本的目录结构,以及编译好的应用库和bin可执行文件. (buildroot根据用户配置把.ko .so .bin文件安装到对应的目录下去,根据用户的配置安装指定位置) ├── package:下面放着应用软件的配置文件,每个应用软件的配置文件有Config.in和soft_name.mk。 ├── README ├── support ├── system └── toolchain ``` #### 编译过程 ``` make qemu_arm_vexpress_defconfig //加载配置文件 make all //完整编译系统 ``` ``` exec qemu-system-arm -M vexpress-a9 -smp 1 -m 256 -kernel zImage -dtb vexpress-v2p-ca9.dtb -drive file=rootfs.ext2,if=sd,format=raw -append "console=ttyAMA0,115200 rootwait root=/dev/mmcblk0" -net nic,model=lan9118 -net user ${EXTRA_ARGS} "$@" ``` #### 产生文件 在buildroot的output为编译产生的文件,images为目录文件。 ### 源码位置 uboot存放目录: buildroot/output/build/uboot-x.y.z kernel存放目录: /home/cui/work/buildroot/buildroot/output/build/linux-6.1.44 rootfs存放目录: /home/cui/work/buildroot/buildroot/output/build/busybox-1.36.1 ### 源码位置 ├── build 过程源码, 例如linux,uboot,busybox等 ├── host 交叉编译工具 ├── images 输出镜像 ├── staging -> /home/cui/work/buildroot/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot └── target 文件系统 ### 参考网址 如何基于Buildroot和Qemu搭建嵌入式Linux系统环境 https://blog.csdn.net/lhl_blog/article/details/104430472