为什么要使用buildroot?

(文件系统搭建,强烈建议直接用buildroot,官网[http://buildroot.uclibc.org/]上有使用教程非常详细)文件系统通常要包含很多第三方软件,比如busybox,udhcpc,tftp,apache,sqlite,PHP,iptable,DNS等,为了避免繁杂的移植工作。buildroot应运而生。通过menuconfig配置我们需要的功能,不需要的功能去掉,再执行make指令编译,buildroot就会自动从指定的服务器上下载源码包,自动编译,自动搭建成我们所需要的嵌入式根文件系统。让我们的工作效率成百倍的提升。

1:获取buildroot

我们可以从buildroot官网(http://buildroot.uclibc.org/download.html)获取buildroot源码包,buildroot基本上三个月更新一次,目前最新是buildroot-2016.11.tar.gz,这里我们实际下载的源码包是 buildroot-2016.02.tar.gz。建议下载最新的版本,因为新的版本包含更多的第三方工具软件。

2:配置buildroot

将源码包复制到XXX目录下,并解压tar -xvf buildroot-2015.02.tar.gz

进入目录,执行配置命令:cd /XXX/buildroot-2015.02

执行:make ARCH=arm menuconfig

配置界面如下:

2.1 :进入target options

配置CPU参数:little endian 指的是小端存储;二进制格式是ELF;CPU是Cortex-A5;交叉工具支持eabihf;浮点书处理采用VFP-v4;采用精简指令集Thumb2;

配置如下图所示:

2.2:进入toolchain

将Toolchaintype配置为Externaltoolchain,然后在Toolchain中选择交叉编译工具的版本,如Custom toolchain,在Toolchain origin中选择Pre-installed toolchain,后面编译时,buildroot将会根据Toolchain path找到我们的交叉编译工具。选中Enable MMU support,退回上一界面;

2.3:进入System configuration

在system hostname一栏中输入开发板的名称,如ZHD-A5,在system banner中可输入欢迎语,如welcome to Hi-Target。在Init system中选择BusyBox,在/dev management中选择Dynamic using mdev,即使用mdev动态加载设备节点的方式,然后在Path to thepermission tables中选择设备节点的配置表,这里我们一定要选择system/device_table_dev.txt,否则后面在dev目录下将不会生成各 种设备节点。当然我们也可以手动的配置该文件,添加必要的节点或删除不需要的节点。Root password为配置进入linux控制台终端后的密码,为空则登录时不需要密码,默认登录用户名为root。选中Run agetty(login prompt)after boot。Remount root filesystem read-write during boot表示可以进行动态的挂载;

再进入下面的getty options选项:

将TTY port配置为ttyS0,将baudrate配置为115200,对应开发板的打印串口。

2.4:进入Filesystem images

选中ext2/3/4root filesystem,然后在ext2/3/4variant中选择ext4,选中tar the root filesystem,最后保存当前的配置并退出,配置完成。大家也可以根据自己的实际需要进行配置。

2.5:进入target packages

在target packages目录下,有一大堆第三方的开源工具软件,基本上嵌入式上可能会用到得或用不到的,在这里都用,如果你想要把这个工具软件包含进固件里面,很简单,只要在这个软件的名称前面打个*星号,表示要编译这个软件到固件里面,从此和刀耕火种的源代码移植say goodbye,今入工业文明时代。

下面以移植DNS服务器bind为例,做一个简单的说明:

3:编译buildroot

只需在buildroot的根目录下执行make指令即可编译整个buildroot。

编译时,buildroot会自动下载第三方软件的源码,我们只要等一下,让buildroot自己下载编译。编译完成后,会在output/image目录下面生成固件的镜像包,把这个包拷贝到RTK的platform目录下,然后解压,就可以使用了。在output/target下也可以看根文件,包含的内容如下所示:

借助buildroot一个含有各项所需要包(busybox,apache,PHP,bind等)的文件系统就做好了,真是利器,让很来需要花很多时间和精力的移植工作变得简单而且高效。

Buildroot 神器相关推荐

  1. 教你用 buildroot 构建根文件系统

    如果想要构建完整的根文件系统,大家一般都是使用buildroot,它不仅包含了 busybox 的功能,而且里面还集成了各种软件,需要什么软件就选择什么软件,不需要我们去移植. 嵌入式系统三大部分:b ...

  2. Buildroot构建指南--Overview

    使用Buildroot,让嵌入式Linux系统构建更加便捷.本文以Buildroot-2016.05的版本为基础来讲解,不同版本之间有细节差异,需要根据读者使用的版本自行调整. Buildroot是什 ...

  3. buildroot 下载和make nconfig

    本文参考了Keven2116的博客文章<嵌入式系统制作神器 - Buildroot> 若干细节有修改 2.利用buildroot 生成最小系统用户态镜像 2.1.获取buildroot源码 ...

  4. 精选Pycharm里6大神器插件

    http://www.sohu.com/a/306693644_752099 上次写了一篇关于Sublime的精品插件推荐,有小伙伴提议再来一篇Pycharm的主题.相比Sublime,Pycharm ...

  5. bootstraptable 汇总_JS组件系列——表格组件神器:bootstrap table

    前言:前面介绍了两篇关于bootstrap table的基础用法,这章我们继续来看看它比较常用的一些功能,来个终结篇吧,毛爷爷告诉我们做事要有始有终~~bootstrap table这东西要想所有功能 ...

  6. 悬浮按钮app_分享一款网页转App的神器,绝对值得一用

    分享一款制作安卓app的神器:名字叫做Fusion Apps,这款神器的主要作用就是可以制作属于自己的网页APP,这款软件的列害之处是他不光可以通过网页制作app,而且可以自己自定义制作,非常具有实用 ...

  7. linux的翻译系统开发,Linux系统下的翻译神器——Goldendict

    Linux系统下的翻译神器--Goldendict 学习Linux时明显感受到学习英文的重要性.绝大多数Linux的发行版英文版的功能要远强于中文.因此一款好的翻译软件是了解熟悉Linux系统的必需品 ...

  8. 国内 Java 开发者必备的两个神器:Maven国内镜像和Spring国内脚手架

    虽然目前越来越多的国产优秀技术产品走出了国门,但是对于众领域的开发者来说,依然对于国外的各种基础资源依赖还是非常的强.所以,一些网络基本技能一直都是我们需要掌握的,但是速度与稳定性问题一直也都有困扰着 ...

  9. GitHub开源:一键生成前后端代码神器

    目录 1.技术架构 2.微服务架构图 3.业务应用 本篇博客将为朋友们分享一款神器:JeecgBoot. JeecgBoot 是一款基于代码生成器的低代码开发平台,零代码开发.采用前后端分离架构:Sp ...

最新文章

  1. puppet企业架构部署
  2. Loadrunner11点击录制脚本无响应,IE页面弹不出——解决方案汇总
  3. 5G NGC — UE 的二次鉴权(Secondary Authentication)方案
  4. Django在Win7下安装与创建项目hello word示例
  5. Unable to locate package update
  6. linux下c中嵌套正则表达式
  7. HDU 1517 A Multiplication Game
  8. opencv进阶学习笔记7:直方图,直方图均衡化,直方图比较,直方图反向投影
  9. VTK:vtkAssembly用法实战
  10. OpenGL之常见的专业名词解析
  11. python字符串类库_Python开发以太坊的类库Web3.py V4的新功能
  12. 反汇编基础-数据类型以及C++引用、指针反汇编后的概括
  13. ligerGrid简单例子--通过后台转数据
  14. 在Mac上使用鼠标键来控制指针的方法
  15. Atitti html5 h5 新特性attilax总结
  16. CF1041A Heist
  17. Unity3D脚本语言的类型系统
  18. Hive 自定义函数编写(UDF,UDAF,UDTF)
  19. DDL、DML和DCL的理解(1、总述)
  20. 我了解到的新知识之----遇到路由器DNS被篡改我该怎么办?

热门文章

  1. 基于Nonebot2实现QQ聊天机器人商品查询【Nonebot插件教程】
  2. H5使用Canvas模板设计签名并将图片保存到本地
  3. 2021年面向UX设计人员的9种最佳免费线框工具
  4. Android APP如何防止二次打包
  5. php 四舍五入,php四舍五入 js四舍五入方法 | 帮助信息-动天数据
  6. Mybatis Plus 精华教程
  7. 为什么电脑总是自动关机
  8. 用户登录时的安全问题剖析
  9. Qt QUndoCommand(实现撤回和回撤)
  10. vue使用prerender预渲染配合vue-meta实现单页面实现SEO优化