您的位置:首页 > 运维架构 > Linux

ARM linux busybox ramdisk制作脚本

2015-02-13 16:41 411 查看
#bash/sh

echo "Start make rootfs !"

BUSYBOX_PATH=/home/fanyl/work/mv_pro_5.0/busybox-1.23.0

ROOTFS_PATH=/home/fanyl/work/mv_pro_5.0/mkOSrtfs/rootfs

cur_dir=$(cd "$(dirname "$0")"; pwd)

echo $cur_dir

mkdir mkOSrtfs

cd mkOSrtfs

if [ ! -d "$ROOTFS_PATH" ]

then

mkdir rootfs

cd rootfs

mkdir dev etc lib proc tmp usr var

chmod 777 tmp

mkdir usr/lib

mkdir var/lib var/lock var/log var/run var/tmp

chmod 777 var/tmp

cp -dpR $BUSYBOX_PATH/_install/* .

cd dev

sudo mknod console c 5 1

sudo mknod null c 1 3

sudo mknod tty c 5 0

sudo mknod tty0 c 4 0

sudo mknod tty1 c 4 1

sudo mknod tty2 c 4 2

sudo mknod tty3 c 4 3

sudo mknod tty4 c 4 4

sudo mknod tty5 c 4 5

sudo mknod tty6 c 4 6

cd ../

cp -R $BUSYBOX_PATH/examples/bootfloppy/etc/* etc/

OBJ_LIB_PATH=/home/fanyl/work/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le/target

cd ${OBJ_LIB_PATH}/lib

echo $OBJ_LIB_PATH

#如果你对ramdisk的大小没有太多的限制的话,可以采用下面的方法将so库全部拷过来,如果要求很高使用:arm_v5t_le-readelf -d busybox | grep NEEDED

# 0x00000001 (NEEDED) Shared library: [libm.so.6]

# 0x00000001 (NEEDED) Shared library: [libc.so.6]

#获取指定的so库

for file in ` ls $1 `

do

cp *.so.* $ROOTFS_PATH/lib

#cp -d *.so.* $ROOTFS_PATH/lib

done

cp -d ld*.so* $ROOTFS_PATH/lib

fi

cd $ROOTFS_PATH

cd ../

mkdir ramdisk

sudo dd if=/dev/zero of=ramdisk.img bs=1k count=4096

/sbin/mke2fs -F -v -m0 ramdisk.img

sudo mount -o loop ramdisk.img ramdisk

cp -av rootfs/* ramdisk

sudo umount ramdisk

#gzip -9 ramdisk.img

echo "End make rootfs!"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: