本文转载自:http://blog.csdn.net/metalseed/article/details/45423061

(文件系统搭建,强烈建议直接用buildroot,官网上有使用教程非常详细buildroot官网) 
文件系统通常要包含很多第三方软件,比如busybox,tslib,qt,vim,交叉编译工具等,为了避免繁杂的移植工作。buildroot应运而生。通过menuconfig配置我们需要的功能,不需要的功能去掉,再执行make指令编译,buildroot就会自动从指定的服务器上下载源码包,自动编译,自动搭建成我们所需要的嵌入式根文件系统。

1:获取buildroot

git clone git://git.buildroot.net/buildroot 
我们可以从buildroot官网(http://buildroot.uclibc.org/download.html)获取buildroot源码包,buildroot基本上三个月更新一次,这里我们实际下载的源码包是buildroot-2015.02.tar.gz

2:配置buildroot 
将源码包复制到/opt目录下,并解压

tar -xvf buildroot-2015.02.tar.gz
  • 1
  • 1

进入目录,执行配置命令

cd /opt/buildroot-2015.02
make menuconfig
  • 1
  • 2
  • 1
  • 2

配置界面如下: 

2.1 :进入target options

将Target Architecture配置为ARM(littlt endian),将Target Architecture Variant配置为cortex-A9,将Target ABI配置为EABI,将ARM instruction set配置为ARM,再退回上一界面

2.2:进入toolchain 
将Toolchaintype配置为Externaltoolchain,然后在Toolchain中选择交叉编译工具的版本,如ARM 2013.11,在Toolchain origin中选择Toolchain to be downloaded andinstalled,后面编译时,buildroot将会自动下载对应的工具链并自动安装。选中Enable MMUsupport,退回上一界面 
 
2.3:进入System configuration 
在system hostname一栏中输入开发板的名称,如metal box,在system banner中可输入欢迎语,如welcome to metal world。在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。 
 
再进入下面的getty options选项: 
将TTY port配置为ttySAC3,将baudrate配置为115200,对应开发板的打印串口。 
 
再返回上一界面,将Root filesystem overlay directories设置为board/metalboard/exynos4412/rootfs-overlay,这里表示该路径下的所有文件将会无条件覆盖buildroot默认的相关路径文件。配置这一步的同时,我们一并将开发板光盘中的相关文件拷贝到buildroot对应的board目录。返回上一界面。 
 
2.4:进入Filesystem images 
选中ext2/3/4root filesystem,然后在ext2/3/4variant中选择ext4,选中tar the root filesystem,最后保存当前的配置并退出,配置完成。大家也可以根据自己的实际需要进行配置。 

在target packages目录下,有无限的宝藏供大家使用,从此和移植狗say goodbye

3:编译buildroot 
只需在buildroot的根目录下执行make指令即可编译整个buildroot。第一次编译可能会弹出一些错误,这基本上是没有安装一些第三方工具造成的。按照提示安装即可,有问题问度娘。 
开始编译的时候,buildroot会自动下载所需要的相关源码包,自动编译安装。

3.1:下载的源码包在buildroot根目录的dl目录下 
 
3.2:编译出来的各种文件会放在buildroot目录下面的output目录 
 
3.2.1: 需要烧写的最终的映像文件在output/images目录下 
 
3.2.2: output/target目录下为对应未打包的文件系统,在调试时可借助于该目录下的文件分析原因 
 
4: 编译完成,烧写测试。 
用fastboot烧入开发版

fastboot  flash  system  rootfs.ext4
  • 1
  • 1

启动开发板看打印信息

Starting mdev...
/etc/init.d/S10mdev: line 9: /proc/sys/kernel/hotplug: No such file or directory
mdev: /sys/class: No such file or directory
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

如上述错误为找不到hotplug文件,直接删除s10mdev文件第九行即可。其他情况类似分析,有问题问度娘。通常不会有大问题。

借助buildroot一个含有各项所需要包(busy box,vi,qt,ffmpeg等)的文件系统就做好了,真是利器,可以让工程师专注于核心内容的开发,避免繁琐的重复过程。z

使用buildroot搭建linux文件系统【转】的更多相关文章

  1. buildroot 制作Linux文件系统初级使用教程

    buildroot 下载地址:https://buildroot.org/download.html 放在Linux文件下解压出来. 使用make menuconfig 进行配置相关的东西. 在使用这 ...

  2. iTOP4412开发板-使用buildroot搭建最简单的linux

    本文档介绍的是使用buildroot搭建最简单的linux文件系统,Buildroot是Linux平台上一个构建嵌入式Linux系统的框架.整个Buildroot是由Makefile脚本和Kconfi ...

  3. Linux文件系统应用---系统数据备份和迁移(用户角度)

    1   前言 首先承诺:对于从Windows系统迁移过来的用户,困扰大家的  “Linux系统下是否可以把系统文件和用户文件分开到C盘和D盘中” 的问题也可以得到完满解决. 之前的文章对Linux的文 ...

  4. 存储那些事儿(二): 下一代Linux文件系统BTRFS简介

    BTRFS,通常念成 Butter FS,Better FS 或B-tree FS.下一代的Linux文件系统. 它基于写时拷贝(copy-on-write),支持高效的snapshot和clone. ...

  5. 扩容Linux文件系统

    扩容Linux文件系统 腾讯云 云硬盘扩容 https://cloud.tencent.com/product/cbs https://cloud.tencent.com/document/produ ...

  6. tiny4412学习(一)之从零搭建linux系统(烧写uboot、内核进emmc+uboot启动内核)【转】

    本文转载自:http://blog.csdn.net/fengyuwuzu0519/article/details/74080109 版权声明:本文为博主原创文章,转载请注明http://blog.c ...

  7. FastDFS搭建分布式文件系统

    FastDFS搭建分布式文件系统 1. 什么是分布式文件系统 分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网 ...

  8. 在Mac 上搭建Linux虚拟机--MacOS & VMware10 & CentOS 7

    在大型项目开发中, 需要使用Linux下的C语言对工程进行开发, 在个人PC或者工作站上搭建Linux系统十分容易且方便. 本篇文章将介绍操作系统和虚拟机的搭建: 1 操作系统2 虚拟机概念3 Lin ...

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

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

随机推荐

  1. 有上下界的网络流 loj115 loj116 loj 117

    参考文章 无源汇有上下界的可行流 有源汇有上下界的最大流 有源汇有上下界的最小流 无源汇有上下界可行流 以 loj115 为例. 剥离出必要边与自由边. #include <iostream&g ...

  2. 一些简单的JavaScript的方法

    <script type="text/javascript"> //js跳转 function UserMouserDown() { confirm('你确定要删除吗? ...

  3. 洛谷P2058 海港

    题目描述 小K是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客. 小K对这些到达海港的船只非常感兴趣,他按照时间记录下了到达海港的每一艘船只情况:对于第i艘到达的船 ...

  4. WordPress升级错误:class-wp-filesystem-direct.php on line 122

    错误描述:WordPress在后台进行版本升级时,出错,之后进入前台或者后台,都无法访问进入,错误信息如下:Warning: copy(/home/xxx/public_html/wordpress/ ...

  5. app后端搜索入门

    现在人们的网络生活已经离不开搜索了,遇到不懂的问题,想知道的事情,搜索一下,就知道答案. 在app中,最常见的搜索情景就是搜索用户.只有几百,几千的用户量时,可以直接用用like这样的模糊查询,但是, ...

  6. CodeForces 598C Nearest vectors

    这题对精度要求很高.用atan2吧... #include<iostream> #include<cstring> #include<cmath> #include ...

  7. Wooden Sticks---hdu1051(最长上升子序列)

    http://acm.hdu.edu.cn/showproblem.php?pid=1051 Problem Description There is a pile of n wooden stick ...

  8. java基础 3 Object通用方法(1)

    Object通用方法(1) clone: 浅复制    被复制对象的所有变量都含有与原对象相同的值,而所有对其他对象的引用仍然指向原来的对象,换言之,浅复制仅仅复                   ...

  9. Spring事务管理概述

    以下内容引用自http://wiki.jikexueyuan.com/project/spring/transaction-management.html: 数据库事务是一个被视为单一的工作单元的操作 ...

  10. 【深入探索c++对象模型】data语义学二

    单一继承中,base class 和derived class的对象都是从相同的地址开始,其间差异只在于derived class比较大,用以容纳自己的nonstatic members. 若vptr ...