EasyARM imx283/287根文件系统制作实践(修正版)

EasyARM imx283/287根文件系统制作

1.下载busybox

下载地址:http://www.busybox.net/(当前最新的稳定版本busybox-1.22.1)

解压busybox-1.22.1.tar.bz2

 

2.配置编译busybox

1)进入busybox解压后的目录

2)修改Makefile

    CROSS_COMPILE= arm-fsl-linux-gnueabi-

    ARCH = arm

3)make menuconfig

Busybox Settings  --->Build Options  ---> [*] BuildBusyBox as a static binary (no shared libs) //这里编译成静态.(静态和动态的区别?)

Busybox Settings  --->Build Options  --->  () Cross Compiler prefix //这里可以指定编译器arm-fsl-linux-gnueabi-,由于我们在makefile写死了,这里就不需要填。

Busybox Settings  --->Build Options  ---> InstallationOptions ("make install" behavior) ---> (./_install) BusyBoxinstallation prefix //这里填写根文件安装的路径,默认是当前文件夹下的_install

BusyboxSettings  ---> GeneralConfiguration  ---> [*] Don't use /usr

Busybox Settings  --->Busybox Library Tuning  --->[*]     Username    completion  //用户名,环境变量相关

Busybox Settings  --->Busybox Library Tuning  --->[*]   Fancy shell prompts

4)make

5)make install  //拷贝制作好的根文件到安装目录,可以看到生成3个文件目录。

ls _install

bin  linuxrc sbin

bin 和sbin目录下生成的是常用shell命令和工具等,linuxrc 是启动文件。

 

3.创建根文件目录

cd root

mkdir rootfs

cd rootfs

mkdir bin dev etc libproc sbin sys usr mnt tmp var root

mkdir usr/bin usr/libusr/sbin lib/modules

 

4.拷贝busybox编译生成的3个文件目录到rootfs  (busybox只生成3个文件目录 bin  linuxrc  sbin)

    cp –rf _install/*  /root/rootfs

 

5.拷贝c运行库

    拷贝我们开发板的交叉编译工具lib目录:

cd gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/arm-fsl-linux-gnueabi/multi-libs/lib

 

cp *so* /root/rootfs/lib -d    //-d 表示把链接关系原封不动拷贝 

 

6.剪裁链接库的大小。去除LIB的符号表。

cd /root/rootfs/lib

arm-fsl-linux-gnueabi-strip*.so

 

7.在rootfs/dev/下创建设备节点,这2个设备节点是初始化必须的设备:

mknod -m 660 null c 1 3

mknod -m 660 console c 5 1

(busybox-1.22.1好像不需要这一步)

 

8. rootfs/etc/的初始化配置脚本修改

1)拷贝busybox-1.22.1/examples/bootfloopy/etc/*到当前目录下

cp -r  busybox-1.22.1/examples/bootfloopy/etc/*  /root/rootfs/etc

包括文件:fstab init.d inittab profile

 

2)修改iniitab文件:

vi etc/inittab

::sysinit:/etc/init.d/rcS

::respawn:-/bin/sh

::ctrlaltdel:/bin/umount  -a  -r

 

3)修改etc/fstab文件

proc     /proc proc defaults 0 0

tmpfs    /tmp tmpfs defaults 0 0

sysfs    /sys sysfs defaults 0 0

tmpfs   /dev tmpfs defaults 0 0

 

4)修改init.d/rcS文件

#! /bin/sh

ifconfig eth0 192.168.2.201

/bin/mount -a

mkdir -p /dev/pts

mount -t devpts devpts /dev/pts

echo /sbin/mdev > /proc/sys/kernel/hotplug

mdev  –s

 

5)修改profile文件

    这里可以配置用户名等信息,不是必须的,暂时不配。

 

9.根文件系统基本制作完成。可以通过nfs挂载了验证是否正确。

这里我们通过tftp升级uImage,nfs网络文件系统挂载rootfs.

前提,确保配置好了nfs,和 tftp

MX28 U-Boot > setenv serverip 192.168.2.200

MX28 U-Boot > setenv ipaddr 192.168.2.201

MX28 U-Boot >setenv bootargs root=/dev/nfs nfsroot=192.168.2.200:/root/rootfsip=192.168.2.201 init=/sbin/init console=ttyAM0,115200n8

//MX28 U-Boot > run settftpboot

//MX28 U-Boot > saveenv

MX28 U-Boot > tftp 0x41600000 uImage

MX28 U-Boot > bootm

 

启动后,即可看到自己的文件系统啦!

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值