zoukankan      html  css  js  c++  java
  • buildroot 入门

    buildroot简介

    1. 概述

    https://buildroot.org/downloads/manual/manual.html#_getting_started

    目前我的理解是,buildroot是一个可以自动化的构建完整Linux系统的工具。

    一般来说,要构建一个系统,需要配置 a cross-compilation toolchain, a root filesystem, a Linux kernel image and a bootloader等等,以及第三方package等等,手动来做非常复杂。

    而buildroot可以通过简单的选择脚本、配置脚本,就可以自动化的实现上述内容的构建。甚至在,还可以只构建Linux系统的一部分,比如use an existing cross-compilation toolchain, and build only your root filesystem with Buildroot。

    通过buildroot构建一个Linux系统后,就可以下载到板子,或者使用该系统的一些命令。比如构建一个mips架构的系统,然后使用该系统的ldd命令,帮助你分析mips架构的文件。

     

     2. output文件夹

    构建的系统存在于output文件夹

    一、安装

    https://buildroot.org/downloads/

    下载后解压,进入XX/buildroot下。可见有一个Makefile

    执行make help可见一些帮助信息

     尝试make menuconfig ,使用图形化界面构建一个Linux系统。

     报错,安装所需库即可。

    https://www.cnblogs.com/Crysaty/p/6247548.html

    sudo apt-get install libncurses5-dev

    过程中选择保留之前的配置

    二、简单运行

    2.1 使用defconfig

    如简介中所言,构建文件系统前需要选择或配置脚本。这里先尝试使用默认的脚本构建一个Linux系统。

    在/buildroot/config中有很多默认配置,使用 make list-configs也可以查看

    如图中,有专门为arm_juno平台准备的配置。

     在/buildroot 使用  make arm_foundationv8_defconfig 选择该deconfig

     之后 make menuconfig,使用图形化界面进行配置

     因为选择了deconfig,大部分设置已经自动配置好了。如Target options

     选择save,保存退出

     

     make all (这里我觉得应该有选项选择哪个保存到config,从而构建不同的Linux系统。也可能是每次构建新系统都新建一个buildroot文件夹(buildroot本身也不大,几mb)。不过暂时先不管了)

    2.2 使用menuconfig 自定义

    make menuconfig

    target options

     make all

    编译后

    output文件夹中就包含了映像、package等内容。

    尝试使用构建的libtool

    可见本机是没有安装libtool的,但是通过buildroot构建的linux系统,我们可以使用libtool

     

     三、构建ARM虚拟机

    https://zhuanlan.zhihu.com/p/340362172

    https://www.cnblogs.com/arnoldlu/p/9689585.html

    1. 环境配置

    配置工作环境

    sudo apt install gcc build-essential bison flex gettext tcl sharutils libncurses-dev zlib1g-dev exuberant-ctags g++ texinfo patch vim libtool bc git
    安装交叉编译器
    sudo apt-get install gcc-arm-linux-gnueabi

    验证安装结果

    dpkg -l gcc-arm-linux-gnueabi

    显示如下:

    安装qemu工具:

    sudo apt install qemu-system-arm

    遇到问题sh: 0: getcwd() failed: No such file or directory

    则先

    cd ~

    然后再

    apt-get install XXX

    就没有这个问题了

    2.使用buildroot 编译配置内核

    在buildroot目录下

    make qemu_arm_vexpress_defconfig--------选择虚拟qemu配置

    make-------------------------------------------------下载并且编译包

    经过两个多小时的安装。 

    结果在output/images下生成zImage、vexpress-v2p-ca9.dtb、rootfs.ext2三个文件,分别是内核、DeviceTree文件和文件系统。

     

     

     四、powerpcf

    新解压一个buildroot包,进入

    make configs/qemu_ppc64_pseries_defconfig 
    make

    参考:

    https://buildroot.org/downloads/manual/manual.html#_getting_started

    https://www.cnblogs.com/fuzidage/p/12049442.html

  • 相关阅读:
    流式布局思想
    盒子的显隐
    高级布局 浮动 清浮动
    display总结 overflow知识
    边界圆角 盒模型布局 图片背景 精灵图
    io模型
    协程
    GIL 进程池与线程池
    守护进程 互斥锁 进程间通讯
    子进程
  • 原文地址:https://www.cnblogs.com/lqerio/p/15214988.html
Copyright © 2011-2022 走看看