分类:
2009-06-19 23:10:27
判断一个目录是否被mount
mount | grep -q $RAM_DIR
if [ $? -eq 0 ]; then
echo " $RAM_DIR is currently mounted."
echo " Unmounting '$RAM_DIR'."
umount $BASE_DIR/$RAM_DIR
fi
判断编译环境有没有
"$CROSS_COMPILE"gcc > /dev/null 2>&1
if [ ! $? = 1 ]; then #如果返回值不为1,则没有交叉编译环境
echo The "$CROSS_COMPILE"gcc compiler is apparently not
echo in the path. The DENX EDLK toolchain needs to be
echo properly configured before this script is executed.
echo
ABORT=1
fi
#判断值是否等于1 如果等于1则终止执行
if [ $ABORT -eq 1 ]; then
echo
echo ERROR: Configuration errors were detected. Please resolve and re-execute
echo the script.
exit 1
fi
#判断是不是超级用户
if [ $UID -ne 0 ]; then
echo You must be root for this script to complete successfully.
echo If that is not possible, you should contact your administrator
echo and request perission to create device nodes via 'mknod' and
echo mount loop devices for RW. Then disable this ID check in the
echo script.
echo
ABORT=1
fi
#判断字符串是否相等
if [ "$BUILDRD" = yes ]; then
echo The ramdisk file size is: "$RAMSIZE"k
echo The ramdisk file will be mounted at: $BASE_DIR/$RAM_DIR
echo
fi
#获取当前目录作为主目录
BASE_DIR=`pwd`
#判断此变量是否存在,不存在则定义并赋值
[ ! $TARGET_NAME ] && TARGET_NAME=makalu
决断脚本传入的第二个参数,如果不存在,则设一个默认值
INSTRUCT=$1
if [ ! $INSTRUCT ]; then
INSTRUCT="full"
fi
判断目录是否存在
if [ -d $BASE_DIR/$FLASH_DIR ]; then
echo " $FLASH_DIR is present."
echo " Removing '$FLASH_DIR'."
rm -rf $BASE_DIR/$FLASH_DIR
fi
判断文件是否存在
if [ -f ramdisk ]; then
echo " Deleting ramdisk file"
rm -f ramdisk
fi
创建父目录
mkdir -p $BASE_DIR/$WORK_DIR/etc/Wireless/RT2860STA
创建根文件系统
[ ! $FLASH_MKFS ] && FLASH_MKFS="mkfs.jffs2 --big-endian"
[ ! $RAMSIZE ] && RAMSIZE=65536
[ ! $RAM_MKFS ] && RAM_MKFS="/sbin/mke2fs -F -m0"
dd if=/dev/zero of=ramdisk.image bs=1k count=$RAMSIZE > /dev/null 2>&1
$RAM_MKFS ramdisk.image > /dev/null 2>&1
mkdir $BASE_DIR/$RAM_DIR
echo Mounting ramdisk to $BASE_DIR/$RAM_DIR
mount -o loop,exec ramdisk.image $BASE_DIR/$RAM_DIR
mkdir $BASE_DIR/$WORK_DIR/bin
mkdir -p $BASE_DIR/$WORK_DIR/dev/pts
mkdir $BASE_DIR/$WORK_DIR/etc
mkdir $BASE_DIR/$WORK_DIR/proc
mkdir $BASE_DIR/$WORK_DIR/sbin
mkdir $BASE_DIR/$WORK_DIR/tmp
mkdir $BASE_DIR/$WORK_DIR/lib
mkdir $BASE_DIR/$WORK_DIR/home
mkdir $BASE_DIR/$WORK_DIR/opt
mkdir $BASE_DIR/$WORK_DIR/root
mkdir -p $BASE_DIR/$WORK_DIR/usr/share
mkdir -p $BASE_DIR/$WORK_DIR/var/ftp
mkdir -p $BASE_DIR/$WORK_DIR/usr/sbin
mkdir -p $BASE_DIR/$WORK_DIR/usr/lib
mkdir -p $BASE_DIR/$WORK_DIR/usr/bin
mkdir $BASE_DIR/$WORK_DIR/mnt
cd $BASE_DIR/$WORK_DIR
./scripts/make_devs.sh $BASE_DIR/$WORK_DIR/dev
/scripts/copy_files.sh $FS_FILES_PATH $BASE_DIR/$WORK_DIR