1 Star 0 Fork 0

Wangtake/scripts

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
ubinize-image.sh 1.88 KB
一键复制 编辑 原始数据 按行查看 历史
henrisk 提交于 2016-08-18 14:56 . r16 tina linux v2.1 release
#!/bin/sh
ubootenv=""
ubinize_param=""
kernel=""
rootfs=""
outfile=""
err=""
get_magic_word() {
dd if=$1 bs=2 count=1 2>/dev/null | hexdump -v -n 2 -e '1/1 "%02x"'
}
is_ubifs() {
if [ "$( get_magic_word $1 )" = "3118" ]; then
echo "1"
fi
}
ubivol() {
volid=$1
name=$2
image=$3
autoresize=$4
echo "[$name]"
echo "mode=ubi"
echo "vol_id=$volid"
echo "vol_type=dynamic"
echo "vol_name=$name"
if [ "$image" ]; then
echo "image=$image"
else
echo "vol_size=1MiB"
fi
if [ "$autoresize" ]; then
echo "vol_flags=autoresize"
fi
}
ubilayout() {
local vol_id=0
local root_is_ubifs="$( is_ubifs "$2" )"
if [ "$1" = "ubootenv" ]; then
ubivol $vol_id ubootenv
vol_id=$(( $vol_id + 1 ))
ubivol $vol_id ubootenv2
vol_id=$(( $vol_id + 1 ))
fi
if [ "$3" ]; then
ubivol $vol_id kernel "$3"
vol_id=$(( $vol_id + 1 ))
fi
ubivol $vol_id rootfs "$2" $root_is_ubifs
vol_id=$(( $vol_id + 1 ))
[ "$root_is_ubifs" ] || ubivol $vol_id rootfs_data "" 1
}
while [ "$1" ]; do
case "$1" in
"--uboot-env")
ubootenv="ubootenv"
shift
continue
;;
"--kernel")
kernel="$2"
shift
shift
continue
;;
"-"*)
ubinize_param="$@"
break
;;
*)
if [ ! "$rootfs" ]; then
rootfs=$1
shift
continue
fi
if [ ! "$outfile" ]; then
outfile=$1
shift
continue
fi
;;
esac
done
if [ ! -r "$rootfs" -o ! -r "$kernel" -a ! "$outfile" ]; then
echo "syntax: $0 [--uboot-env] [--kernel kernelimage] rootfs out [ubinize opts]"
exit 1
fi
ubinize="$( which ubinize )"
if [ ! -x "$ubinize" ]; then
echo "ubinize tool not found or not usable"
exit 1
fi
ubinizecfg="$( mktemp 2> /dev/null )"
if [ -z "$ubinizecfg" ]; then
# try OSX signature
ubinizecfg="$( mktemp -t 'ubitmp' )"
fi
ubilayout "$ubootenv" "$rootfs" "$kernel" > "$ubinizecfg"
cat "$ubinizecfg"
ubinize -o "$outfile" $ubinize_param "$ubinizecfg"
err="$?"
[ ! -e "$outfile" ] && err=2
rm "$ubinizecfg"
exit $err
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/wangtake/scripts.git
git@gitee.com:wangtake/scripts.git
wangtake
scripts
scripts
r16-v2.1.y

搜索帮助