| #!/bin/sh |
| |
| install_kernel=no |
| install_rootfs=no |
| kernel_image=kernel.img |
| rootfs_image=rootfs.img |
| partition=0 |
| |
| while getopt "hk::r::p:" Option |
| do |
| if [ ${Option} = k ]; then |
| install_kernel=yes |
| if [ -n ${OPTARG} ]; then |
| kernel_image=${OPTARG} |
| fi |
| elif [ ${Option} = r ]; then |
| install_rootfs=yes |
| if [ -n ${OPTARG} ]; then |
| rootfs_image=${OPTARG} |
| fi |
| elif [ ${Option} = p ]; then |
| if [ x${OPTARG} = x0 ] || [ x${OPTARG} = x1 ]; then |
| partition=${OPTARG} |
| else |
| echo "Invalid parameter for -p" |
| exit 1 |
| fi |
| else |
| . /default/bin/_update_help |
| exit 0 |
| fi |
| done |
| |
| if [ x${install_kernel} != xyes ] && [ x${install_rootfs} != xyes ]; then |
| echo "Specify at least one of -k and -r" |
| echo "" |
| . /default/bin/_update_help |
| exit 0 |
| fi |
| |
| [ -d /tmp ] || mkdir -p /tmp |
| |
| kernel_dev=/dev/nand0.kernel${partition} |
| rootfs_dev=/dev/nand0.rootfs${partition} |
| |
| if [ x${install_kernel} = xyes ]; then |
| echo "Downloading kernel image" |
| tftp ${kernel_image} /tmp/kernel.img || exit 1 |
| echo "Erasing partition" |
| erase ${kernel_dev} || exit 1 |
| echo "Copying kernel image into partition ${kernel_dev}" |
| cp /tmp/kernel.img ${kernel_dev} || exit 1 |
| echo "Verifying" |
| crc32 -f /tmp/kernel.img -F ${kernel_dev} || exit 1 |
| rm /tmp/kernel.img |
| fi |
| |
| if [ x${install_rootfs} = xyes ]; then |
| echo "ubiattach" |
| ubiattach ${rootfs_dev} |
| echo "Deleting UBI volume rootfs in case it already exists" |
| ubirmvol /dev/ubi0 rootfs |
| echo "Deleting UBI volume rootfs-prep in case it exists" |
| ubirmvol /dev/ubi0 rootfs-prep |
| echo "Creating UBI volume rootfs" |
| ubimkvol /dev/ubi0 rootfs 0 || exit 1 |
| echo "TFTPing rootfs into UBI volume" |
| tftp ${rootfs_image} /dev/ubi0.rootfs || exit 1 |
| fi |
| |