• 使用buildroot搭建linux文件系统【转】


    本文转载自: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

  • 相关阅读:
    PhpStudy升级MySQL5.7
    C# 字符串操作详解
    字符串留用与字符串池
    C# 字符串操作基本过程(Equals、Compare、EndsWith等处理方法)
    CLR关于语言文化的类型一CultureInfo类和字符串与线程的关联
    字符、字符串和文本的处理之Char类型
    二、LINQ之查询表达式基础
    一、Linq简介
    Unity学习系列一简介
    C# 静态构造函数
  • 原文地址:https://www.cnblogs.com/zzb-Dream-90Time/p/7109828.html
Copyright © 2020-2023  润新知