【Linux-buildroot,】

Linux-buildroot,

  • ■ buildroot
    • ■ 1、简介
    • ■ 2、下载
    • ■ 2、编译
    • ■ 问题一:buildroot 编译的时候会先从网上下载所需的软件源码,下载cmake-3.8.2.tar.gz或下载很慢的情况
  • ■ buildroot-构建根文件系统
    • ■ 1、配置 buildroot
    • ■ 2、
    • ■ 3、
  • ■ buildroot-构建 linux 内核
    • ■ 1 、
    • ■ 2 、
    • ■ 3 、
  • ■ buildroot-构建uboot
    • ■ 1 、
    • ■ 2 、
    • ■ 3 、
  • ■ buildroot-第三方软件和库的配置
    • ■ 1、使能 alsa-lib
    • ■ 2、
    • ■ 3、
  • ■ buildroot-busybox
    • ■ 1、busybox下载解压
    • ■ 2、打开 busybox 的配置界面
    • ■ 3、编译busybox
    • ■ 4、重新编译 buildroot

■ buildroot

■ 1、简介

一种傻瓜式的方法或软件,它不仅包含了 busybox 的功能,而且里面还集成了各种软件,需要什么软件就选择什么软件,不需要我们去移植。答案肯定是有的, buildroot 就是这样一种工具。
buildroot 下载后进行配置,比如设置交叉编译器、设置目标 CPU 参数等,最主要的就是选择所需要的第三方库或软件。
一切配置好以后就可以进行编译,编译完成了以后就会在一个文件夹里面存放好编译结果,也就是根文件系统。

类似 buildroot 的软件 yocto工具。

■ 2、下载

buildroot 源码肯定是要从 buildroot 官网下载,官网地址为 https://buildroot.org/
官网地址

■ 2、编译

  1. sudo make //注意,一定要加 sudo,而且不能通过-jx 来指定多核编译!!!
    buildroot 编译的时候会先从网上下载所需的软件源码,有些软件源码可能下载不下来,这个时候就需要我们自行处理,
    buildroot 编译过程会很耗时,可能需要几个小时.
    编译完成以后就会在 buildroot-2019.02.6/output/images 下生成根文件系统,
    编译出来了多种格式的 rootfs,比如 ext2、 ext4、 ubi 等。其中rootfs.tar 就是打包好的根文件系统,

  2. 新建 buildrootfs文件夹,拷贝到里面解压
    cd /home/zuozhongkai/linux/nfs //进入到 nfs 目录下
    mkdir buildrootfs //创建 buildrootfs 目录
    cd buildrootfs //进入到 buildrootfs 目录
    cp …/…/IMX6ULL/tool/buildroot-2019.02.6/output/images/rootfs.tar ./ //拷贝到 rootfs.tar
    tar
    tar -vxf rootfs.tar //解压缩 rootfs.tar
    rm rootfs.tar //删除 rootfs.tar

  3. 不编译 Linux 内核
    在这里插入图片描述

  4. 禁止编译 Uboot
    -> Bootloaders
    -> [ ] U-Boot //不要选择编译 U-Boot 选项!
    在这里插入图片描述

■ 问题一:buildroot 编译的时候会先从网上下载所需的软件源码,下载cmake-3.8.2.tar.gz或下载很慢的情况

我 们可以自 行 到 https://cmake.org/files/v3.8/cmake-3.8.2.tar.gz 这个网站上去将 cmake-3.8.2.tar.gz 这个源码下载下
来,然后拷贝到 Ubuntu 中 buildroot 源码目录下的 dl 文件夹中, dl 文件夹专用用于存放下载下来的源码。

■ buildroot-构建根文件系统

■ 1、配置 buildroot

  • 下载解压buildroot
    tar -vxjf buildroot-2019.02.6.tar.bz2
    //解压完成以后就会得到一个名为“buildroot-2019.02.6”的目录,此目录就是我们解压得到的 buildroot 源码。
  • make menuconfig //图形化配置界面

1)配置 Target options
在这里插入图片描述
2)配置 Toolchain
在这里插入图片描述
3)

■ 2、

■ 3、


■ buildroot-构建 linux 内核

■ 1 、

■ 2 、

■ 3 、


■ buildroot-构建uboot

■ 1 、

■ 2 、

■ 3 、


■ buildroot-第三方软件和库的配置

我在前面学习的时候需要自行移植一些第三方的库和软件,
比如 alsa-lib、 alsa-utils 等等,
现在我们不需要自行移植这些第三方软件和库了,可以直接在 buildroot 里面配置使能。
比如我们现在配置使能 alsa-lib、 alsa-utils 这两个软件和库。

■ 1、使能 alsa-lib

■ 2、

■ 3、


■ buildroot-busybox

buildroot 在构建根文件系统的时候也是要用到 busybox 的,既然用到了 busybox 那么就涉及到 busybox 的配置。
buildroot 会自动下载 busybox 压缩包, buildroot 下载的源码压缩包都存放在/dl 目录下,在 dl 目录下就有一个叫做“busybox”的文件夹,
要想编译 busybox,busybox-1.29.3.tar.bz2压缩包进行解压缩 buildroot 将所有解压缩后的软件保存在/output/build 软件中

■ 1、busybox下载解压

要想编译 busybox,busybox-1.29.3.tar.bz2压缩包进行解压缩 buildroot 将所有解压缩后的软件保存在/output/build 软件中

■ 2、打开 busybox 的配置界面

sudo make busybox-menuconfig 输入以后就会打开 buildroot 下的 busybox 配置界面

■ 3、编译busybox

配置好以后就可以重新编译 buildroot 下的 busybox
进入到 buildroot 源码目录下,输入如下命令查看当前 buildroot 所有配置了的目标软件包,也就是 packages:

cd buildroot
sudo make show-targets //列出了当前 buildroot 中所有使能了的 packages 包
sudo make busybox // 重新编译 busybox

■ 4、重新编译 buildroot

sudo make 重新编译 buildroot, //重新编译完成以后查看一下 output/images 目录下 rootfs.tar 的创建时间是否为刚刚编译的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/20164.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TK防关联引流系统:全球TikTok多账号运营的神器

在TikTok的生态中,高效运营多个账号已成为品牌全球推广的必经之路。为此,TK防关联引流系统应运而生,它是一款专为TikTok设计的效率神器,助您迅速搭建并管理全球多账号矩阵。该系统由先进的“防关联智能终端”硬件和智能的“TK防关…

AI生成微信职业头像

加油,新时代打工人! 真别说,还挺好看的 https://chatglm.cn/main/alltoolsdetail

GPT-4o:免费且更快的模型

OpenAI GPT-4o 公告 OpenAI 推出了增强版 GPT-4 模型——OpenAI GPT-4o,用于支持 ChatGPT。首席技术官 Mira Murati 表示,更新后的模型速度更快,并在文本、视觉和音频处理方面有了显著提升。GPT-4o 将免费向所有用户开放,付费用户…

C++中类的访问权限及友元函数

目录 摘要 访问权限(Access Specifiers) 1. private 2. protected 3. public 友元函数(Friend Functions) 关键点 总结 摘要 C中的访问权限(Access Specifiers -- private、protected、public)和友…

shell脚本不用nohup如何在后台执行?

supervisord进程管理(go版本) 主要是托管自已的脚本 进程管理工具。 可以监听、启动、停止、重启一个或多个进程 用supervisord管理的进程,当一个进程意外被杀死,supervisord监听到进程死后,会自动将它重启,很方便的做到进程的自动恢复的功能,不在需要自己写脚本来控制 启动文…

乐高小人分类项目

数据来源 LEGO Minifigures | Kaggle 建立文件目录 BASE_DIR lego/star-wars-images/ names [YODA, LUKE SKYWALKER, R2-D2, MACE WINDU, GENERAL GRIEVOUS ] tf.random.set_seed(1)# Read information about dataset if not os.path.isdir(BASE_DIR train/):for name in …

plc scl编程语言:深度解析与应用探索

plc scl编程语言:深度解析与应用探索 在工业自动化领域,PLC(可编程逻辑控制器)扮演着至关重要的角色。而SCL(结构化控制语言)作为PLC的一种编程语言,因其强大的功能和灵活性备受青睐。本文将从…

利用 Docker 简化Redis部署:快速搭建Redis服务

利用 Docker 简化Redis部署:快速搭建Redis服务 目录 利用 Docker 简化Redis部署:快速搭建Redis服务为什么选择 Docker准备工作拉取Redis镜像快速运行Redis容器验证Redis服务总结 在现代软件开发中,Redis作为一种高性能的键值数据库&#xff0…

52 https

HTTPS是什么 https也是一个应用层协议,是在http协议的基础上引入了一个加密层 http协议内容都是按照文本的方式明文传输的,这就导致在传输过程中出现一些被篡改的情况 http和https是可以同时存在的,数据时从应用层自上往下发的&#xff0c…

简述浏览器和 Node.js 中的事件循环 ?

浏览器和Node.js中的事件循环都是用于处理异步任务和回调函数的机制,但它们在某些实现细节和用途上有所不同。下面分别对它们进行简述: 浏览器中的事件循环 目的: 浏览器事件循环是浏览器用于处理用户输入、网络请求、渲染和其他异步事件的机…

OVP、TVS、ESD二极管、稳压二极管的区别

本文介绍OVP、TVS、ESD二极管、稳压二极管简介及TVS与ESD的区别。 文章目录 一、简介1、过压保护(OVP, Over-Voltage Protection)3、稳压二极管(Zener Diode 或齐纳二极管)小结: 二、TVS&ESD的区别1、设计目标2、…

C++的PDF库

PDF(Portable Document Format,可移植文档格式)是一种由 Adobe Systems 开发并推出的文件格式。PDF 主要用于在不同平台和设备之间精确呈现文档,无论是在 Windows、macOS、Linux 还是其他操作系统上打开,文档的外观都保…

springboot 集成minio 实现文件上传

引入依赖 <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.2.0</version> </dependency>因为我是后端开发需要使用knife4j <?xml version"1.0" encoding"UTF-8"…

数仓建模—ChatETL

数仓建模—ChatETL 前面我们介绍过ChatBI ,就是让用户通过自然语言对话的方式可以获取到自己想要的数据,然后通过合适的报表展示出来,其实我们可以将其理解为应用层面的技术创新,但是这个实现的前提就是我们底层已经有加工好的大量的数据模型数据表,并且有完善的元数据建…

vue3使用antdv 组件处理左边菜单栏,刷新菜单栏保持选中状态

//方法1 <a-menuv-model:selectedKeys"selectedKeys"theme"dark"mode"inline"click"activeMenu selectedKeys">const selectedKeys ref([sessionStorage.getItem("activeMenu") || "/home"]); const acti…

【Python】解决Python报错:AttributeError: ‘str‘ object has no attribute ‘xxx‘

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

每日刷题——相遇、宝石(模拟+数学)、相助(模拟+数组)、相依(dp的优化)

相遇 原题链接登录—专业IT笔试面试备考平台_牛客网 题目描述 运行代码 #include<iostream> using namespace std; int main(){ int a,b; cin>>a>>b; if(ab) { cout<<"p"; } else if(a - b 1 || (a 1 && b 3)){cout <<…

Kong网关命令详解

Kong网关的所有命令行指令都在 /usr/local/share/lua/5.1/kong/cmd 目录内。 cd /usr/local/share/lua/5.1/kong/cmdcheck.lua debug.lua hybrid.lua migrations.lua quit.lua restart.lua runner.lua stop.lua vault.lua config.lua health.lua init.lua prepare.…

系统架构设计师【第10章】: 软件架构的演化和维护 (核心总结)

文章目录 10.1 软件架构演化和定义的关系10.1.1 演化的重要性10.1.2 演化和定义的关系 10.2 面向对象软件架构演化过程10.2.1 对象演化10.2.2 消息演化10.2.3 复合片段演化10.2.4 约束演化 10.3 软件架构演化方式的分类10.3.1 软件架构演化时期10.3.2 软件架构静态演…

eNSP学习——连接RIP与OSPF网络

目录 相关主要命令 原理概述 实验目的 实验内容 实验拓扑 实验编址 实验步骤 1、基本配置 2、搭建RIP和OSPF网络 3、配置双向路由引入 4、手工配置引入时的开销值 相关主要命令 [R1-ospf-1]import-route rip 1 //引入RIP路由 [R1-rip-1]import-route ospf 1 …