55 lines
1.2 KiB
Bash
Executable File
55 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
err_handler() {
|
|
ret=$?
|
|
[ "$ret" -eq 0 ] && return
|
|
|
|
msg_error "Running ${FUNCNAME[1]} failed!"
|
|
msg_error "exit code $ret from line ${BASH_LINENO[0]}:"
|
|
msg_info " $BASH_COMMAND"
|
|
exit $ret
|
|
}
|
|
|
|
trap 'err_handler' ERR
|
|
# source files
|
|
src=$1
|
|
# generate image
|
|
dst=$2
|
|
|
|
if [ -z "$3" -o -z "$dst" -o ! -d "$src" ]; then
|
|
echo "command format: $(basename $0) <source> <dest image> <partition size>"
|
|
exit 0
|
|
fi
|
|
|
|
# the size of generate image, get info from parameter.txt
|
|
# eg. 0x00040000@0x00016000(rootfs)
|
|
# calculate size fo rootfs partition: 0x00040000 * 512 = 128*0x100000 (Bytes)
|
|
dst_size="$(( $3 / 1024 / 1024 ))M"
|
|
|
|
cwd=$(dirname $(readlink -f $0))
|
|
export PATH=$cwd:$PATH
|
|
|
|
rm -f $dst
|
|
|
|
bin_dir=./
|
|
if [ -f $cwd/bin/mkfs.ext4 ];then
|
|
bin_dir=bin
|
|
fi
|
|
|
|
mkdir -p $(dirname $dst)
|
|
|
|
echo mkfs.ext4 -d $src -r 1 -N 0 -m 5 -L \"\" -O ^64bit,^huge_file $dst \"$dst_size\"
|
|
mkfs.ext4 -d $src -r 1 -N 0 -m 5 -L "" -O ^64bit,^huge_file $dst "$dst_size"
|
|
if [ $? != 0 ]; then
|
|
echo "*** Maybe you need to increase the filesystem size "
|
|
exit 1
|
|
fi
|
|
echo "resize2fs -M $dst"
|
|
resize2fs -M $dst
|
|
echo "e2fsck -fy $dst"
|
|
e2fsck -fy $dst
|
|
echo "tune2fs -m 5 $dst"
|
|
tune2fs -m 5 $dst
|
|
echo "resize2fs -M $dst"
|
|
resize2fs -M $dst
|