Buildroot制作根文件系统过程(基于MYD-AM335X开发板)

2023-10-27

buildroot的功能很强大,可以利用它制作交叉编译工具链、根文件系统,甚至可以构建多种嵌入式平台的bootloader、linux。下面以米尔科技的MYD-AM335X平台为例展示如何利用buildroot制作自己所需的根文件系统。

一、到官网下载源码: http://buildroot.uclibc.org/downloads/  我这里选用的是buildroot-2014.05.tar.bz2。

二、解压:
$ tar xjf buildroot-2014.05.tar.bz2
$ cd buildroot-2014.05/


三、配置:
$ make menuconfig

1、进入Target options  --->选项,设置目标架构。AM335x的CPU基于ARM的cortex-A8,为了使文件系统充分利用其硬件浮点特性,Target ABI选项中选上EABIhf,当然这还要取决于所使用的交叉编译工具是否支持该EABIhf,比较旧的交叉编译工具可能不支持。

Target options  --->
        Target Architecture (ARM (little endian))  --->          Target Architecture Variant (cortex-A8)  ---> 
        Target ABI (EABIhf)  --->  
        Floating point strategy (VFPv3-D16)  --->  
        ARM instruction set (ARM)  ---> 

2、设置编译文件系统所用的交叉编译工具。可以采用已存在的或着buildroot在编译过程中自己制作的交叉编译工具,为了缩短编译时间,这里采用已存在的交叉编译工具。
进入Toolchain选项:
Toolchain  --->
        Toolchain type (External toolchain)  --->     (设定采用自己定义的交叉编译工具)
        Toolchain (Custom toolchain)  --->
        Toolchain origin (Pre-installed toolchain)  --->
        (/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux) Toolchain path         (设定自定义交叉编译工具的路径)
        (arm-linux-gnueabihf) Toolchain prefix        (设置toolchain的前缀)
        External toolchain kernel headers series (3.2.x)  --->    (最好选用与平台所用的linux版本一致的headers,具体还要看交叉编译工具是否支持)
        External toolchain C library (glibc/eglibc)  --->       (选择自定义交叉编译工具所用的C库)
        
  • Toolchain has C++ support? 


    3、系统配置,特别要注意的是要根据特定平台选用正确的TTY port。
    System configuration  --->       
            
  • Run a getty (login prompt) after boot        
                    getty options  --->
                                (ttyO0) TTY port                  (设置成debug串口的设备节点)
                                              Baudrate (115200)  --->
                                (vt100) TERM environment variable
    4、Target packages  ---> :     按自己需求增加或裁剪Target packages,里面包含了很多常用的库和工具,包括常用的busybox的选用、音频、网络等。由于选项很多,这里不一一列出,可以参考附件中.config文件的配置,总之一切都是按自己需求来配置。


    5、设置目标文件系统的类型、压缩包格式等。
    Filesystem images  --->
            
  • tar the root filesystem
                          Compression method (bzip2)  --->

    说明:这里没设置目标文件系统类型(比如板子上用的是ubi文件系统)是因为我只想要生成的压缩包,后续再用ubi工具制作成ubi文件系统镜像,当然也是完全可以在[ ] ubifs root filesystem选项中配置的,效果是一样的。


    6、配置busybox。
    前提是Target packages  --->选项中已经选用了busybox,默认是选上的。若里面没有自己想要的版本,也可自己去下载源码编译。
    配置busybox的命令是:
    $ make busybox-menuconfig
    这个也是按自己需求增加与裁剪。

    7、关于Kernel  --->和Bootloaders  --->选项,如果不用buildroot构建bootloader和linux内核可不必设置。

    8、保存配置退出后,执行make编译。编译过程中要联网,因为可能需要下载一些packages。


  • 9、编译完成后会在output/images/目录中生成目标文件系统压缩包rootfs.tar.bz2,后续可根据所需的文件系统类型用相关的工具进一步制作成可烧录到开发板的镜像,这一部分可参考MYD-AM335X用户手册。如果在Filesystem images 选项中配置好目标文件系统类型则直接生产可烧录的镜像。


  • 网址:http://www.myir-tech.com/bbs/thread-7134-1-1.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Buildroot制作根文件系统过程(基于MYD-AM335X开发板) 的相关文章

  • Java课程设计之学习成绩管理系统

    package System import java awt import java awt event import java io import javax swing import javax swing table Abstract
  • 6.OS运行机制(补充)

    中断
  • 计算机网路基础 - 一些基本概念与网络结构

    1 基本概念 计算机网络 通信技术 计算机技术 是两项技术紧密结合的产物 通信系统的基础模型 计算机网络 是指将地理位置不同 具有独立功能的多台计算机及其外部设备 通过通信线路连接 在网络操作系统 网络管理软件及网络通信协议的管理和协调下
  • Tomcat7安装及配置教程

    Apache Tomcat7 0安装及配置教程 Apache Tomcat7 0官方网站链接 http tomcat apache org apache tomcat 7 0 73 windows x64 先解压下载的压缩包 然后在bin目
  • System.getProperty用法

    转自 http blog darkmi com 2011 03 16 1666 html System getProperty 用于获取当前的系统属性 比如java版本 操作系统名称 区域 用户名等 这些属性一般由jvm自动获取 不能手工设
  • 计算机领域中随处可见的抽象

    想要管理多种具体的东西 那么需要遵守每种东西的规范 如果想要提供一种通用模式来对这些具体的东西统一管理 需要使用一种古老的技术 抽象 抽象是将多种具体的东西 管理时需要遵守的规范 的共同点抽取出来 放入到更高一层的抽象层 在抽象层不定义或少
  • unix环境高级编程——文件IO

    本期主题 unix环境高级编程 文件IO 文件IO 0 引言 1 文件描述符 2 IO编程中常用的API接口 1 open函数 2 close函数 3 read函数 4 write函数 5 lseek函数 3 函数sync fsync和fd
  • Client-Server问题

    1 实验内容与要求 需要创建客户Client和服务器Server两个进程 它们通过管道进行通信 Client进程派生3个生产者线程 一个管道线程 共享一个20个slots的缓冲区 每个生产者线程随机产生一个数据 打印出来自己的id 进程 线
  • 设备管理过程

    复杂度2 5 机密度2 5 最后更新2021 04 19 AIX中对设备会有如下五个操作 define aix下能看到设备的定义 但驱动程序并没有加载或初始化 该设备不可用 lsdev看到设备时defined 很多逻辑设备 vg lv等 只
  • office2013 excel 打开时提示excel词典xllex.dll文件丢失或损坏

    今天打开Excel时 发现报错 xllex dll文件丢失或损坏 我用的是office2013 网上找了好多都是2007的dll文件 导入不了 于是乎重装office 问题解决 但还是把xllex dll烤出来做个备份吧 参考下面步骤即可
  • Java堆的自动垂直缩放

    多年以来 java一直是贪婪的应用程序的同义词 这种类型的应用程序在晚上打开冰箱并吞噬所有可用资源 直到崩溃 该行为的主要原因是缺乏一种有效的方式来将操作系统在Java堆中分配且不再使用的内存交还给操作系统 However with the
  • 操作系统笔记六(文件管理)

    1 文件逻辑结构 1 1逻辑结构的文件类型 分类 有结构文件 例如 PNG文件 无结构文件 1 2顺序文件 1 3索引文件 2 辅存的存储空间分配 2 1分配方式 连续分配 直接分配连续的存储空间 链接分配 隐式链接 在盘块内指定下一个盘块
  • 深入ftrace kprobe原理解析

    Linux krpobe调试技术是内核开发者专门为了编译跟踪内核函数执行状态所涉及的一种轻量级内核调试技术 利用kprobe技术 内核开发人员可以在内核的绝大多数指定函数中动态插入探测点来收集所需的调试状态信息而基本不影响内核原有的执行流程
  • Linux系统如何看目录属于哪个磁盘分区

    Linux是先有目录 再有磁盘分区 df h 目录 例如 没有挂载磁盘的目录 显示在系统盘 root iZ2ze57v3n0zma46zqiq8nZ sh 1 5 5 df h alidata Filesystem Size Used Av
  • 通过源码包*.src.rpm定制开发rpm

    为什么80 的码农都做不了架构师 gt gt gt 1 基本流程 1 下载 安装相应的src rpm包 wget xxx src rpm rpm ivh xxx src rpm 这里的 安装 是指把xxx src rpm中的tar gz p
  • 使用inet_ntop转换IPv6地址时在macOS和linux上的行为不一样

    下面这段python代码在macOS和linux时运行的结果是不同的 import socket ip socket inet pton socket AF INET6 1 2 3 0 5 6 7 8 print socket inet n
  • Ubuntu9.04太多乱码(中文不能正常显示)

    最近在使用Ubuntu9 04的过程中 发现有好多地方都出现乱码 其实是中文不能正常显示 现在把我所遇到的所有乱码问题集中一下 方便以后查阅参考 一 Flash乱码 在终端输入 sudo gedit etc fonts conf d 49
  • 图解五种磁盘调度算法, FCFS, SSTF, SCAN, C-SCAN, LOOK

    一 FCFS 调度 先来先服务 磁盘调度的最简单形式当然是先来先服务 FCFS 算法 虽然这种算法比较公平 但是它通常并不提供最快的服务 例如 考虑一个磁盘队列 其 I O 请求块的柱面的顺序如下 98 183 37 122 14 124
  • Linux(13):例行性工作排程

    例行性工程 听谓的排程是将工作安排执行的流程之意 Linux 排程就是透过 crontab 与 at 这两个东西 两种工作排程的方式 一种是例行性的 就是每隔一定的周期要来办的事项 一种是突发性的 就是这次做完以后就没有的那一种 at at
  • 【操作系统xv6】学习记录4-一级页表与二级页表

    占位

随机推荐

  • view, Window,Activity等概念的比较分析

    1 View 最基本的UI组件 表示屏幕上的一个矩形区域 2 Window 表示一个窗口 不一定有屏幕那么大 可以很大也可以很小 它包含一个View tree和窗口的layout 参数 View tree的root View可以通过getD
  • 数据结构 单链表1

    头文件
  • Kcov - gcov, lcov and bcov

    Short version Kcov a new project of mine for code coverage testing When developing software I ve often found measuring c
  • Vue实现验证码

    在Web应用程序中 为了避免机器自动化或恶意攻击 很常见的做法是要求用户在表单提交之前输入验证码 验证码最常见的形式是图片验证码 因为图片验证码最大程度地防止了自动化机器调用API来执行攻击 使人类用户输入不是人类难以识别的形式 比如文本和
  • 数据结构的常用八种排序算法

    概述 排序有内部排序和外部排序 内部排序是数据记录在内存中进行排序 而外部排序是因排序的数据很大 一次不能容纳全部的排序记录 在排序过程中需要访问外存 我们这里说说八大排序就是内部排序 当n较大 则应采用时间复杂度为O nlog2n 的排序
  • 活动安排问题-贪心算法

    在时间段内选择尽可能多的活动 0 14 include
  • python-10

    纯函数实现面向对象 人狗大战 游戏人狗大战 人 角色 属性 名称 等级 血量 攻击力 性别 职业 zhangsan name zhangsan level 1 hp 100 ad 20 sex 男 职业 魔法师 def person nam
  • QString和std::string相互转换

    QString和std string相互转换 使用下面的函数 toStdString gt 将QString转换成std string QString toStdString fromStdString gt 将std string转换成Q
  • Docker数据目录(/var/lib/docker)迁移

    本文介绍Linux上如何安全的迁移Docker的数据目录 var lib docker 为什么要迁移 虚拟机创建时 一般分配一个比较小的系统盘 然后挂载一个大容量的数据盘 docker默认情况下数据存储在系统盘 var lib docker
  • 捕获线程执行异常

    在 Thread 类中 可以获取线程运行时异常的 API 总共有四个 public void setUncaughtExceptionHandler UncaughtExceptionHandler eh 为某个特定线程指定 Uncaugh
  • hibernate注解

    现在EJB3实体Bean是纯粹的POJO 实际上表达了和Hibernate持久化实体对象同样的概念 他们的映射都通过JDK5 0注释来定义 EJB3规范中的XML描述语法至今还没有定下来 注释分为两个部分 分别是逻辑映射注释和物理映射注释
  • 目标检测一阶段和二阶段对比图

    图片来源
  • 『学Vue2+Vue3』认识Vue3

    认识Vue3 1 Vue2 选项式 API vs Vue3 组合式API 特点 代码量变少 分散式维护变成集中
  • Linux下安装jre

    Linux下安装Java运行环境 现需要项目部署到Linux中 需要配置java运行环境 注 以下测试环境系统为centOS 用户为超级管理员 jre8 1 下载最新版的jre 服务器环境下不需要配置jdk 下载地址如下 http www
  • microsoft visual c++ 6.0中文版两种使用方法

    microsoft visual c 6 0 是一款语言编程软件 那么很多人都不知道microsoft visual c 6 0中文版怎么使用 其实使用方法很简单哦 只要打开microsoft visual c 6 0中文版就可以进行语言编
  • 《数据结构》 图的创建与遍历 代码表示

    测试数据 10 15 共10个顶点 15条边 0 1 0 8 0 0 第一 二个数表示连接两个顶点的起始顶点 第三个数1表示单通行 0表示双向通行 4 8 1 5 4 0 5 9 1 0 6 0 7 3 1 8 3 1 2 5 0 2 1
  • c#排列组合算法

    Combinatorics cs代码清单 using System using System Collections using System Data
  • 二叉树所有节点转换成大于该节点的平均值,没有最大值就转换成0

    import java util ArrayList import java util List import java util function ToIntFunction import java util stream Collect
  • CUnit(单元测试框架)

    CUnit是一个用C语言编写 管理和运行单元测试的轻量级系统 它为C程序员提供了具有灵活多样用户界面的基本测试功能 CUnit是作为一个静态库构建的 它与用户的测试代码链接在一起 它使用一个简单的框架来构建测试结构 并为测试公共数据类型提供
  • Buildroot制作根文件系统过程(基于MYD-AM335X开发板)

    buildroot的功能很强大 可以利用它制作交叉编译工具链 根文件系统 甚至可以构建多种嵌入式平台的bootloader linux 下面以米尔科技的MYD AM335X平台为例展示如何利用buildroot制作自己所需的根文件系统 一