1*6b07a14bSJoseph Chen#!/bin/bash 2*6b07a14bSJoseph Chen# 3*6b07a14bSJoseph Chen# Copyright (c) 2021 Rockchip Electronics Co., Ltd 4*6b07a14bSJoseph Chen# 5*6b07a14bSJoseph Chen# SPDX-License-Identifier: GPL-2.0 6*6b07a14bSJoseph Chen# 7*6b07a14bSJoseph Chen 8*6b07a14bSJoseph Chenset -e 9*6b07a14bSJoseph Chen 10*6b07a14bSJoseph Chenfunction usage() 11*6b07a14bSJoseph Chen{ 12*6b07a14bSJoseph Chen echo 13*6b07a14bSJoseph Chen echo "usage:" 14*6b07a14bSJoseph Chen echo " $0 -f [Android boot.img] -o [Distro(ext2) boot.img]" 15*6b07a14bSJoseph Chen echo 16*6b07a14bSJoseph Chen} 17*6b07a14bSJoseph Chen 18*6b07a14bSJoseph Chenfunction args_process() 19*6b07a14bSJoseph Chen{ 20*6b07a14bSJoseph Chen if [ $# -ne 4 ]; then 21*6b07a14bSJoseph Chen usage 22*6b07a14bSJoseph Chen exit 1 23*6b07a14bSJoseph Chen fi 24*6b07a14bSJoseph Chen 25*6b07a14bSJoseph Chen while [ $# -gt 0 ]; do 26*6b07a14bSJoseph Chen case $1 in 27*6b07a14bSJoseph Chen -f) 28*6b07a14bSJoseph Chen BOOT_IMG=$2 29*6b07a14bSJoseph Chen shift 2 30*6b07a14bSJoseph Chen ;; 31*6b07a14bSJoseph Chen -o) 32*6b07a14bSJoseph Chen DISTRO_IMG=$2 33*6b07a14bSJoseph Chen shift 2 34*6b07a14bSJoseph Chen ;; 35*6b07a14bSJoseph Chen *) 36*6b07a14bSJoseph Chen usage 37*6b07a14bSJoseph Chen exit 1 38*6b07a14bSJoseph Chen ;; 39*6b07a14bSJoseph Chen esac 40*6b07a14bSJoseph Chen done 41*6b07a14bSJoseph Chen 42*6b07a14bSJoseph Chen if [ ! -f ${BOOT_IMG} ]; then 43*6b07a14bSJoseph Chen echo "ERROR: No ${ITB}" 44*6b07a14bSJoseph Chen exit 1 45*6b07a14bSJoseph Chen fi 46*6b07a14bSJoseph Chen} 47*6b07a14bSJoseph Chen 48*6b07a14bSJoseph Chenfunction android2distro() 49*6b07a14bSJoseph Chen{ 50*6b07a14bSJoseph Chen rm distro/ boot/ ${DISTRO_IMG} -rf 51*6b07a14bSJoseph Chen mkdir -p boot 52*6b07a14bSJoseph Chen 53*6b07a14bSJoseph Chen ./scripts/unpack_bootimg --boot_img ${BOOT_IMG} --out distro/ 54*6b07a14bSJoseph Chen ./scripts/unpack_resource.sh distro/second distro/ 55*6b07a14bSJoseph Chen BOOTARGS=`fdtget -ts distro/rk-kernel.dtb /chosen bootargs` 56*6b07a14bSJoseph Chen 57*6b07a14bSJoseph Chen cp distro/rk-kernel.dtb boot/rk-kernel.dtb 58*6b07a14bSJoseph Chen cp distro/kernel boot/kernel 59*6b07a14bSJoseph Chen cp distro/ramdisk boot/ramdisk 60*6b07a14bSJoseph Chen mkdir -p boot/extlinux 61*6b07a14bSJoseph Chen touch boot/extlinux/extlinux.conf 62*6b07a14bSJoseph Chen echo "label rockchip-linux-kernel" >> boot/extlinux/extlinux.conf 63*6b07a14bSJoseph Chen echo " kernel /kernel" >> boot/extlinux/extlinux.conf 64*6b07a14bSJoseph Chen echo " fdt /rk-kernel.dtb" >> boot/extlinux/extlinux.conf 65*6b07a14bSJoseph Chen echo " initrd /ramdisk" >> boot/extlinux/extlinux.conf 66*6b07a14bSJoseph Chen echo " append ${BOOTARGS}" >> boot/extlinux/extlinux.conf 67*6b07a14bSJoseph Chen 68*6b07a14bSJoseph Chen SIZE_KB=`ls -lh ${BOOT_IMG} | awk '{ print $5 }' | tr -d 'M'` 69*6b07a14bSJoseph Chen SIZE_KB=`expr ${SIZE_KB} + 2` 70*6b07a14bSJoseph Chen SIZE_BYTE=$((${SIZE_KB}*1024)) 71*6b07a14bSJoseph Chen genext2fs -b ${SIZE_BYTE} -B 1024 -d boot/ -i 8192 -U ${DISTRO_IMG} 72*6b07a14bSJoseph Chen 73*6b07a14bSJoseph Chen echo 74*6b07a14bSJoseph Chen echo "Successful: ${DISTRO_IMG} is ready." 75*6b07a14bSJoseph Chen echo 76*6b07a14bSJoseph Chen} 77*6b07a14bSJoseph Chen 78*6b07a14bSJoseph Chenargs_process $* 79*6b07a14bSJoseph Chenandroid2distro 80