diff options
Diffstat (limited to 'scripts/upgrade-kernel/truss')
6 files changed, 136 insertions, 0 deletions
diff --git a/scripts/upgrade-kernel/truss/image/README.txt b/scripts/upgrade-kernel/truss/image/README.txt new file mode 100644 index 0000000..5880b8d --- /dev/null +++ b/scripts/upgrade-kernel/truss/image/README.txt @@ -0,0 +1,6 @@ +The kernel image goes in this directory, +uImage--*. + +The file here is an empty placeholder. + +The install scripts verifies the md5sum. diff --git a/scripts/upgrade-kernel/truss/image/uImage--3.12.70-r17.2-mtcdt-20180131072120.bin b/scripts/upgrade-kernel/truss/image/uImage--3.12.70-r17.2-mtcdt-20180131072120.bin new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/scripts/upgrade-kernel/truss/image/uImage--3.12.70-r17.2-mtcdt-20180131072120.bin diff --git a/scripts/upgrade-kernel/truss/image/uImage.md5 b/scripts/upgrade-kernel/truss/image/uImage.md5 new file mode 100644 index 0000000..911b0c3 --- /dev/null +++ b/scripts/upgrade-kernel/truss/image/uImage.md5 @@ -0,0 +1 @@ +4af5d28c7f92b36705689ed215ab848e uImage--3.12.70-r17.2-mtcdt-20180131072120.bin diff --git a/scripts/upgrade-kernel/truss/install.sh b/scripts/upgrade-kernel/truss/install.sh new file mode 100755 index 0000000..0922f0e --- /dev/null +++ b/scripts/upgrade-kernel/truss/install.sh @@ -0,0 +1,65 @@ +#!/bin/bash +HOMEDIR=$(pwd) +# kernel modules and kernel related files. +PACKAGELIST='kernel-3* kernel-modules* mts-io* kernel-module-*' +if (($(id -u) != 0)) ; then + echo 'This script must be run as root.' + exit 1 +fi +set -e +if ! [[ -d image ]] || ! [[ -d packages ]] ; then + echo must be in the directory with the image and packages directory +fi +sed -i -e "s?TARDIR?${HOMEDIR}?" packages/opkg/opkg.conf +cd image +md5sum -c uImage.md5 +echo "Erasing the kernel partition" +kernel_mtd="/dev/$(cat /proc/mtd | grep '\"uImage\"' | cut -d : -f 1)" +flash_erase ${kernel_mtd} 0 0 +echo "Writing the kernel partition" +nandwrite -p ${kernel_mtd} "uImage--"* +cd ../packages/mtcdt + +temp=$(mktemp -p /tmp opkglog.XXXXXX) +echo "Saving install results to $temp" +opkg -f ${HOMEDIR}/packages/opkg/opkg.conf update 2>&1 >${temp} +set +e +((count=0)) || true +((err=0)) || true + +max=$(ls ${PACKAGELIST} | wc -l) +pkgname=$(opkg list-installed 2>&1 | grep '^kernel-3' | sed -r 's/[[:space:]].*//') +# Probably due to a bug in opkg, whiteheat and vizzini conflict. +for f in ${pkgname} kernel-module-vizzini kernel-module-whiteheat ; do + if ! opkg -f ${HOMEDIR}/packages/opkg/opkg.conf --force-depends remove $pkgname 2>&1 >>${temp} ; then + echo "ERROR: Failed to remove package $pkgname" >>${temp} + err++ + fi +done + +for f in ${PACKAGELIST} ; do + if ! opkg -f ${HOMEDIR}/packages/opkg/opkg.conf --force-downgrade --force-reinstall install $f 2>&1 >>${temp} ; then + echo "Remove package $f because upgrade failed" >>${temp} + pkgname=$(echo $f | sed -e 's/_.*//') + opkg -f ${HOMEDIR}/packages/opkg/opkg.conf --force-depends remove $pkgname 2>&1 >>${temp} + if ! opkg -f ${HOMEDIR}/packages/opkg/opkg.conf install $pkgname 2>&1 >>${temp} ; then + echo "ERROR: Install of $f failed" >>${temp} + ((err++)) + else + ((count++)) + fi + else + ((count++)) + fi + printf "\r%3d of %3d" $count $max +done + +opkg -f ${HOMEDIR}/packages/opkg/opkg.conf --force-depends remove $pkgname 2>&1 >>${temp} +echo +if ((err > 0)) ; then + echo "Installation failures. See ${temp}" + grep '^ERROR' ${temp} +fi +depmod -a +echo "Installed ${count} packages." +echo "Ready for reboot" diff --git a/scripts/upgrade-kernel/truss/packages/mtcdt/README.txt b/scripts/upgrade-kernel/truss/packages/mtcdt/README.txt new file mode 100644 index 0000000..55dd093 --- /dev/null +++ b/scripts/upgrade-kernel/truss/packages/mtcdt/README.txt @@ -0,0 +1,20 @@ +The contents of the build/tmp/deploy/ipk/mtcdt directory goes in this directory. + +Remember to run bitbake package-index, to create the package index for opkg. + +The package index is Package.gz. + +For a full kernel update, the files that are needed are: + +All kernel-module-*.ipk files. +mts-io_*.ipk file. +kernel_*.ipk file. +kernel-modules_*.ipk file. +All Package* files. + +Do not install kernel-vmlinux* +Do not install kernel-dev* +Do not install kernel-firmware* +Do not install kernel-image* + + diff --git a/scripts/upgrade-kernel/truss/packages/opkg/opkg.conf b/scripts/upgrade-kernel/truss/packages/opkg/opkg.conf new file mode 100644 index 0000000..cb55310 --- /dev/null +++ b/scripts/upgrade-kernel/truss/packages/opkg/opkg.conf @@ -0,0 +1,44 @@ +arch all 1 +arch any 6 +arch noarch 11 +arch arm 16 +arch armv4 21 +arch armv4t 26 +arch armv5 31 +arch armv5t 36 +arch armv5e 41 +arch armv5te 46 +arch arm926ejste 51 +arch arm926ejse 56 +arch mtcdt 61 +# Must have one or more source entries of the form: +# +# src <src-name> <source-url> +# +# and one or more destination entries of the form: +# +# dest <dest-name> <target-path> +# +# where <src-name> and <dest-names> are identifiers that +# should match [a-zA-Z0-9._-]+, <source-url> should be a +# URL that points to a directory containing a Familiar +# Packages file, and <target-path> should be a directory +# that exists on the target system. + +# Proxy Support +#option http_proxy http://proxy.tld:3128 +#option ftp_proxy http://proxy.tld:3128 +#option proxy_username <username> +#option proxy_password <password> + +# Enable GPGME signature +# option check_signature 1 + +# Offline mode (for use in constructing flash images offline) +#option offline_root target + +dest root / +lists_dir ext /var/lib/opkg +# The name kernel-3.12.70-r17.2 should be replace with the name +# of the top level directory of the archive. +src/gz mlinux-mtcdt file:///var/volatile/kernel-3.12.70-r17.2/packages/mtcdt |