iTOP4412开发板-使用buildroot搭建最简单的linux
本文档介绍的是使用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的更多相关文章
- 学习itop4412开发板有哪些资料可学习?能否学会
1.光盘资料 下面简单的做一下了解,在需要使用这些资料的时候,会针对性的做详细介绍. 将文件以及文件夹按照“名称+递增”的方式排列,如下: 01_PCB_SCH_DATASHEET-- -----开发 ...
- 学习嵌入式Linux-选择iTOP-4412开发板
部分视频观看地址: [视频教程]iTOP-4412开发板之学习方法--致初学者 http://v.youku.com/v_show/id_XNzQ5MDA4NzM2.html [视频教程]三星Exyn ...
- iTOP-4412开发板低功耗高性能的开源硬件平台——上手评测
iTOP-4412开发板现在比较热门的开发板,笔者近期入了一套.也推荐给初学ARM的朋友学习,4412开发板搭载三星Exynos四核处理器,配备1GB内存,4GB固态硬盘EMMC存储,兼具快速读取与超 ...
- 【分享】iTOP4412开发板-Bluetooth移植文档
[分享]iTOP4412开发板-Bluetooth移植文档 最近须要把Bluetooth移植到iTOP-4412 开发平台.查阅了相关资料,经过一段时间的研究.调试,最终成功的将蓝牙功能移植到了开发板 ...
- 开创学习的四核时代-iTOP-4412开发板开源硬件平台
iTOP-4412开发板如今比較热门的开发板.笔者最近入了一套. 也推荐给初学ARM的朋友学习,4412开发板搭载三星Exynos四核处理器,配备1GB内存,4GB固态硬盘EMMC存储,兼具高速读取与 ...
- 迅为iTop开发板使用buildroot构建opencv文件系统
这次我们来介绍使用buildroot构建opencv开发环境,buildroot 是 Linux平台上一个构建嵌入式Linux系统的框架.整个buildroot是由 Makefile脚本和Kconfi ...
- [嵌入式开发板]iTOP-4412开发板linux 系统存储空间的修改
平台:iTOP-4412开发板 这里我们以修改成 1G 存储空间为例来讲解修改方法, 如果需要改 成其他大小的存储空间,参照此方法修改即可. 首先连接好 iTOP-4412 开发板的调试串口到 pc ...
- [转载]在iTOP-4412开发板上调试helloworld应用
本文转自迅为论坛:http://www.topeetboard.com 1.安装ADB驱动 在开发板上调试 Android 应用,首先要安装 ADB 驱动. 通过“SDK Manager.exe”来安 ...
- 迅为iTOP-4412开发板Ubuntu操作系统烧写方法
本文转自:http://www.topeetboard.com Ubuntu系统烧写硬件平台:iTOP4412开发板 需要准备:串口线.读卡器.一张SD卡最好是2G(自备).另外一张卡(大于等于2G都 ...
随机推荐
- Mybatis 持久化,持久层
持久化 持久化是将程序数据在持久状态和瞬时状态间转换的机制. 即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘).持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中.X ...
- soupui--替换整个case的url
添加新的URL 随便进入一个case的[REST]step,添加新的url 更换URL 添加完之后双击想要更换url的case,在弹出的窗口中点击URL按钮 在弹出的set endpoint窗口中选择 ...
- VB 正则匹配中的括号
1.正则表达式失灵(excel2016) 案列:提取一段字符串中数字并求和 Function sumnum(x) Dim regexp As Object Set reg = CreateObject ...
- APP测试关注的点 - 笔记
来源公开课笔记!!! 1.黑盒测试 是否正确并如设计的一样正常运行.测试自动化回归测试 2.测试主要关注参数: CPU.内存.耗电量.流量.FRS(流畅度).同时关注APP安装耗时和启动耗时 3.适配 ...
- 一个算法题--Self Crossing
You are given an array x of n positive numbers. You start at point (0,0) and moves x[0] metres to th ...
- 代码杂谈-or符号
看到别人的代码里用了 or, 有点巧用. 记录一下. def func(a,b, context=None): # .... ctx = context or global_context() # . ...
- MySQL视图和事务
视图的操作 ...
- 光纤卡网卡的区别以及HBA的常规定义-----引自百度百科
在讨论这个问题的时候,需要先说清楚一个问题:我们知道,在早期的SAN存储系统中,服务器与交换机的数据传输是通过光纤进行的,因为服务器是把SCSI指令传输到存储设备上,不能走普通LAN网的IP协议,所以 ...
- Windows下对文件夹下所有图片批量重命名(附C++,python,matlab代码)
https://blog.csdn.net/u011574296/article/details/72956446: Windows下对文件夹下所有图片批量重命名(附C++,python,matlab ...
- 85.常用的返回QuerySet对象的方法使用详解:defer,only
defer(),only(): 这两个方法都会返回一个"QuerySet"对象,并且这个"QuerySet"中装的是模型,不像values()和values_l ...