本文档介绍的是使用buildroot搭建最简单的linux文件系统,Buildroot是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包含boot、kernel、rootfs以及rootfs中的各种库和应用程序)。

下面我们结合iTop4412开发板来讲解一下如何使用 buildroot制作最小文件系统。

1 源码

我们从buildroot 官网 http://buildroot.uclibc.org/download.html获取 buildroot 源码包,笔者这里下的最新的是buildroot-2018.02.4.tar.gz!

 

首先拷贝“buildroot-2018.02.4.tar.gz”到我们的Ubuntu虚拟机上,然后在Ubuntu命令行,使用命令“#tar -xcf buildroot-2018.02.4.tar.gz ”,解压完成后如下图。

 

2 配置

如下图使用命令“cd buildroot-2018.02.4”进入解压出来的源码目录下。

 

执行“make menuconfig”命令,进入配置界面,如下图所示。

 

进入“Target options”目录,将 Target Architecture 配置为 ARM(littlt endian),将 Target Architecture Variant 配置为cortex-A9,将Target ABI 配置为 EABI,将ARM instruction set 配置为 ARM,(如果在其他开发板上测试,修改Target Architecture Variant即可,4418,imx6q为cortex-A9,6818为cortex-A53,imx6ul为cortex-A7)如下图所示。

 

再退回上一界面后,进入Toolchain 目录:将 Toolchain type 配置为 External toolchain,然后在 Toolchain 中选择交叉编译工具的版本,这里我选 ARM 2014.05,在 Toolchain origin 中选择 Toolchain to be downloaded and installed,后面编译时, buildroot 将会自动下载对应的工具链并自动安装。选中 Enable MMU support。如下图所示。

 

退回上一界面后,进入System configuration 界面,在 System hostname 一栏中输入开发板的名称,如 iTop-4412,在 Init system 中选择 BusyBox,在/devmanagement中选择Dynamic using mdev,即使用mdev动态加载设备节点的方式,然后在Path to the permission tables中选择设备节点的配置表,这里我们一定要选择system/device_table_dev.txt,否则后面在dev目录下将不会生成各种设备节点。当然我们也可以手动的配置该文件,添加必要的节点或删除不需要的节点。Root password为配置进入linux 控制台终端后的密码,为空则登录时不需要密码,默认登录用户名为root。如下图所示。

 

选中Run a getty(login prompt)after boot,再进入该选项:将TTY port配置为ttySAC2,将 baudrate 配置为115200,对应 iTop4412 开发板的控制台打印串口(其他开发板控制台串口分别是4418-ttyAMA0、6818-ttySAC0、iMX6Q&iMX6UL-ttymxc0)。如下图所示。

 

返回上一层,再继续返回上一界面,进入Filesystem images 目录,选中tar the rootfilesystem,如下图所示。

 

最后保存当前的配置并退出,配置完成。如下图所示。用户也可以根据自己的实际需要进行配置。

 

3编译

编译buildroot,在buildroot根目录下直接执行make就可以完成了。

 

编译过程中会有如下报错。

 

我们使用命令“export FORCE_UNSAFE_CONFIGURE=1 && make”继续执行即可,等待编译完成,第一次编译的过程中需要自动下载一些工具,所以要保持Ubuntu系统联网。如下图。

 

4生成镜像

编译完成后,我们使用命令“cd output”,进入output文件,targer就是我们编译生成的文件系统,当然buildroot会将其打包成相关镜像,但是格式种类有限(“menuconfig”中的“Filesystem images”目录下配置),镜像就放在image目录下,我们还是回到“output”目录下,使用命令“make_ext4fs -s -l 314572800 -a root -L Linux target.img target/”生成文件系统镜像,如下图所示。

 

如果使用的其他开发板,参照开发板手册“制作最小文件系统镜像”相关章节,对“terger”目录下文件进行打包即可。

我们通过fastboot工具将镜像烧写进iTop4412开发板,只替换qt系统镜像中的system.img文件即可,如下图所示。

 

等待开发板启动,输入“root”即可进入。如下图所示。

 

iTOP4412开发板-使用buildroot搭建最简单的linux的更多相关文章

  1. 学习itop4412开发板有哪些资料可学习?能否学会

    1.光盘资料 下面简单的做一下了解,在需要使用这些资料的时候,会针对性的做详细介绍. 将文件以及文件夹按照“名称+递增”的方式排列,如下: 01_PCB_SCH_DATASHEET-- -----开发 ...

  2. 学习嵌入式Linux-选择iTOP-4412开发板

    部分视频观看地址: [视频教程]iTOP-4412开发板之学习方法--致初学者 http://v.youku.com/v_show/id_XNzQ5MDA4NzM2.html [视频教程]三星Exyn ...

  3. iTOP-4412开发板低功耗高性能的开源硬件平台——上手评测

    iTOP-4412开发板现在比较热门的开发板,笔者近期入了一套.也推荐给初学ARM的朋友学习,4412开发板搭载三星Exynos四核处理器,配备1GB内存,4GB固态硬盘EMMC存储,兼具快速读取与超 ...

  4. 【分享】iTOP4412开发板-Bluetooth移植文档

    [分享]iTOP4412开发板-Bluetooth移植文档 最近须要把Bluetooth移植到iTOP-4412 开发平台.查阅了相关资料,经过一段时间的研究.调试,最终成功的将蓝牙功能移植到了开发板 ...

  5. 开创学习的四核时代-iTOP-4412开发板开源硬件平台

    iTOP-4412开发板如今比較热门的开发板.笔者最近入了一套. 也推荐给初学ARM的朋友学习,4412开发板搭载三星Exynos四核处理器,配备1GB内存,4GB固态硬盘EMMC存储,兼具高速读取与 ...

  6. 迅为iTop开发板使用buildroot构建opencv文件系统

    这次我们来介绍使用buildroot构建opencv开发环境,buildroot 是 Linux平台上一个构建嵌入式Linux系统的框架.整个buildroot是由 Makefile脚本和Kconfi ...

  7. [嵌入式开发板]iTOP-4412开发板linux 系统存储空间的修改

    平台:iTOP-4412开发板 这里我们以修改成 1G 存储空间为例来讲解修改方法, 如果需要改 成其他大小的存储空间,参照此方法修改即可. 首先连接好 iTOP-4412 开发板的调试串口到 pc  ...

  8. [转载]在iTOP-4412开发板上调试helloworld应用

    本文转自迅为论坛:http://www.topeetboard.com 1.安装ADB驱动 在开发板上调试 Android 应用,首先要安装 ADB 驱动. 通过“SDK Manager.exe”来安 ...

  9. 迅为iTOP-4412开发板Ubuntu操作系统烧写方法

    本文转自:http://www.topeetboard.com Ubuntu系统烧写硬件平台:iTOP4412开发板 需要准备:串口线.读卡器.一张SD卡最好是2G(自备).另外一张卡(大于等于2G都 ...

随机推荐

  1. Java 14 都要来了,为什么还有这么多人固守Java8?

    作者:刘欣 从Java 9开始,Java版本的发布就让人眼花缭乱了. 每隔6个月,都会冒出一个新版本出来,Java 10 , Java 11, Java 12, Java 13, 到2020年3月份, ...

  2. git本地代码回滚

    git本地操作有时会有误删误改并提交的时候,此时可以通过回滚获得之前的特定版本 1. 查看log 输入  git log  查看commit记录 [xxxxxxx]$ git log 结果大致如下(根 ...

  3. freeswitch初识

    一.参考内容 1.<FreeSWITCH权威指南>杜金房.张令考著 2.FreeSwitch 国内源码快速下载 3.Ubuntu下freeSwitch安裝指导(推荐) 4.Freeswit ...

  4. CodeForces 1000A Codehorses T-shirts(STL map、思维)

    https://codeforces.com/problemset/problem/1000/A 题意: 有n个人,给出每个人的衣服的尺码,现在,将这n件衣服的尺码换成另外的n种尺码,如果有尺码一样的 ...

  5. json,pickle,shelve序列化

    import json a = [{"a":"b"}] jd = json.dumps(a) #序列化,就是对象通过内存能够存储和传输的过程 with open ...

  6. 简单vue的监听属性(单位换算)

    单位换算 单位换算可以根据实际情况换 <!DOCTYPE html> <html lang="en"> <head> <meta char ...

  7. java笔记——手写+键入

    Frame.setDefaultCloseOpreation() Default:默认的 设置默认关闭操作 (0:什么都不干: 1:隐藏窗口: 2:关闭窗口但继续运行程序: 3:关闭窗口关闭程序:) ...

  8. [极客大挑战 2019]Http

    0x00知识点 了解HTTP协议,使用bp伪造. 0x01 解题 首先查看源代码,找到Secret.php 访问 使用bp查看 提示我们需要来自该网址,直接改header头信息即可,我们可以通过使用r ...

  9. 关于 SQL Server 数据库批量备份与还原的一些 Tips

    一.前提 最近需要将服务器 A 上的数据库全部备份,并在服务器 B 上进行还原,30多个数据库一个一个地用鼠标点,先是 backup,之后时 restore……整个过程实在是太浪费时间了!于是直接写一 ...

  10. 系统学习python第六天学习笔记

    1.补充 1.列表方法补充 reverse,反转. v1 = [1,2,3111,32,13] print(v1) v1.reverse() print(v1) sort,排序 v1 = [11,22 ...