zoukankan      html  css  js  c++  java
  • 运用busybox构建最小根文件系统

    平台:vmware下ubuntu14.04
    前期准备:安装交叉编译环境arm-linux-gcc-4.5.1;下载完成BusyBox 1.23.2
    一、busybox构建
    1、make menuconfig——>裁剪定制构建选项 make defconfig
    注:menuconfig需要库支持(sudo apt-get install libncurses5-dev)
    2、配置busybox的编译工具链参数:
    确定交叉编译器的安装位置:which arm-linux-gcc
    确定交叉编译器的sys-root目录位置:在交叉编译路径下find . -name sys-root
    将上述路径在配置菜单中填写

    Build Options——>
        ()Cross Compiler prefix  ----输入交叉编译器的安装位置。。。。/arm-linux-
        ()Path to sysroot     ----输入交叉编译器工具链中的sys-root目录

    3、make(根据选项编译出二进制文件)
    4、make install (根据选项安装busybox软件)

    (make install的目的就是将编译生成的可执行程序及其依赖的库文件、配置文件、头文件安装到当前指定的目录下(不指定则为默认目录))
    5、进入_install 可以发现已经创建好了:bin、linuxrc、sbin、usr目录

    二、构建根文件系统
    1、复制 _install目录的内容至需要制作的根文件系统
    2、补全目录结构 :etc lib proc var dev
    3、添加lib库文件(若不添加则动态编译链接好的程序在开发板无法执行)
      (1 查找动态库依赖:readelf -d busybox|grep NEEDED
      (2 在交叉编译工具里寻找动态库文件(ld-linux.so.3 libc.so.6 libm.so.6) :如:find . -name libc.so.6
      (3 复制需要的库文件至lib
    4、创建基本的设备文件(参考pc机linux系统):/dev/console /dev/tty[1-3]
      如:

      则:mknod console c 5 1

    5、拷贝配置文件:
    cp examples/bootfloppy/etc/*  mini_busybox/etc/ -r

    至此,根文件系统mini_busybox制作完成

  • 相关阅读:
    python学习之第二课时--运行程序和字符编码
    python学习之前言
    一天一道算法题--6.14--思维题
    TOJ--2119--最小生成树和map
    NOJ--1046--dfs
    TOJ--1343--dfs
    一天一道算法题--6.13---计算几何
    一天一道算法题---6.12---链表结点的删除
    TOJ--1114--rmq/线段树
    TOJ--1278--最小生成树
  • 原文地址:https://www.cnblogs.com/embeded-linux/p/10615793.html
Copyright © 2011-2022 走看看