busybox+交叉编译器源码制作根文件系统

本文件系统制作参考http://blog.csdn.net/lizuobin2/article/details/52673494中的“制作文件系统”部分。

注:本文涉及的源码包网上一大堆,此文不再给出下载链接。

1、解压下载好的busybox
  tar jxvf busybox-1.22.1.tar.bz2

2、配置

  cdbusybox-1.22.1/
  make menuconfig
    Busybox Settings ->
    general configuration ->
      [*] don't use /usr //选中它 否则会破坏虚拟机
    build options->
      cross comliler prefix = arm-linux- //选择交叉编译工具

3、编译 & 安装
  make
  make install
  cd _install
  ls //查看是否安装成功
  编译安装完毕之后,我们的文件系统就生成在_install 目录下了

4、创建 /etc/inittab
  mkdir etc
  vi etc/inittab

    加入以下内容:
  # /etc/inittab
  # 启动脚本/etc/init.d/rcS
  ::sysinit:/etc/init.d/rcS
  # 启动 shell
  ::askfirst:-/bin/sh
  # 重启、关机前 卸载文件系统
  ::ctrlaltdel:/sbin/reboot
  ::shutdown:/bin/umount -a -r

5、创建 /etc/init.d/rcS
  mkdir etc/init.d
  vi etc/init.d/rcS

        加入以下内容:
  # 这是一个脚本文件,用/bin/sh解析
  #!/bin/sh
  # 挂载文件系统
  mount -a
  # 使用内存文件系统
  mkdir /dev/pts
  mount -t devpts devpts /dev/pts
  echo /sbin/mdev > /proc/sys/kernel/hotplug
  mdev -s
  # 设置IP
  /sbin/ifconfig eth0 192.168.0.100 #IP根据自己的需要更改
  # 挂载 /etc/fstab 中的文件系统
  mount -a
  exec /etc/rc.local
6、创建 rc.local
  vi etc/rc.local

     加入以下内容:
  #!/bin/sh
  . /etc/profile //注意.后边有个空格!
7、创建 /etc/fstab
  vi etc/fstab

扫描二维码关注公众号,回复: 2862383 查看本文章

     加入以下内容:
  # device mount-point type options dump fsck order
  proc /proc proc defaults 0 0
  sysfs /sys sysfs defaults 0 0
  tmpfs /tmp tmpfs defaults 0 0
  tmpfs /dev tmpfs defaults 0 0
8、构建 /dev 目录
  mkdir dev
  sudo mknoddev/console c 5 1
  sudo mknoddev/null c 1 3
9、创建其它目录
  mkdir proc mnt tmp sys root usr
10、拷贝lib

  (注:不同的编译器,lib库的位置不一样,请在自己的编译器目录下找,一般位于xxx/arm-none-linux-gnueabi/lib下。此处我的编译器是freescale imx6solo提供的,在multi-libs下)

  mkdir lib
  cp xxx/fsl-linaro-toolchain/arm-fsl-linux-gnueabi/multi-libs/armv7-a/arm/hard/a9/lib/*.so* lib -d
 mkdir usr/lib
  cp xxx/fsl-linaro-toolchain/arm-fsl-linux-gnueabi/multi-libs/armv7-a/arm/hard/a9/usr/lib*.so* usr/lib -d

猜你喜欢

转载自blog.csdn.net/hsh6509/article/details/53103308