blob: 191dcf749778b79867c717280efbbefc362bba0f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
#!/bin/bash
# This script works with a tar archvie
# called upgrade.bin in either /var/volatile
# or on the SD card.
#
# This is what the tar file upgrade file
# should look like to create an ipk upgrade
# file. IPK files should be in all,
# arm926ejste, and mtcdt (for mtcdt)
cat <<'!EOF' >/dev/null
.
|-- install_list.txt
|-- install_list.txt.md5
|-- install.sh*
|-- local.conf
|-- repo/
| |-- arm926ejste/
| | |-- busybox_1.24.1-r0.mlinux2.mlinux2.1_arm926ejste.ipk
| | |-- busybox-hwclock_1.24.1-r0.mlinux2.mlinux2.1_arm926ejste.ipk
| | |-- busybox-ifplugd_1.24.1-r0.mlinux2.mlinux2.1_arm926ejste.ipk
| | |-- busybox-syslog_1.24.1-r0.mlinux2.mlinux2.1_arm926ejste.ipk
| | |-- busybox-udhcpc_1.24.1-r0.mlinux2.mlinux2.1_arm926ejste.ipk
| | |-- initscripts_1.0-r155.3.40.0_arm926ejste.ipk
| | |-- initscripts-functions_1.0-r155.3.40.0_arm926ejste.ipk
| | |-- Packages
| | |-- Packages.gz
| | `-- Packages.stamps
| `-- Packages
!EOF
#
# The tarball must be called upgrade.bin.
#
# The file /var/volatile/do_flash_upgrade must exist and
# be owned by root.
#
# The tar file, upgrade.bin must be either in
# /var/volatile/flash-upgrade or
# /media/card/flash-upgrade
#
# Note that when this script is started, the
# tar file is already unpacked, since this script
# is in the tarball.
# This script assumes that the rootfs and maybe /var
# are writable. For MTR, we may need to set
# root and var to read/write
NAME=install.sh
echo "$NAME starting in directory $(pwd)"
cd flash-upgrade/UPGRADE_DIR
id=$(id -u)
if ((id != 0)) ; then
echo 'You must be root (admin in AEP) to install packages.'
exit 1
fi
cat /proc/mounts
ls /
ls -l /tmp
localcnf=local.conf
if ! [[ -f ${localcnf} ]] ; then
echo "Cannot find ${localcnf}"
echo "This file must be in the current directory."
exit 1
fi
dir=$(pwd)
sed -i "s?FLASHDIR?${dir}?" ${localcnf}
machine=$(mts-io-sysfs show product-id | sed 's/-.*//')
if [[ $machine == MTCAP ]] ; then
# remove mtcdt
sed -i '/mtcdt/d' ${localcnf}
else
# remove mtcap
sed -i '/mtcap/d' ${localcnf}
fi
cat ${localcnf}
pkglist_file="install_list.txt"
cat ${pkglist_file} |
(if ! md5sum -c ${pkglist_file}.md5 ; then
echo "md5sum bad on ${pkglist_file}"
umount_all error
fi)
echo "Update package list ... /usr/bin/opkg -f ${localcnf} update"
/usr/bin/opkg -t /var/volatile/ -f "${localcnf}" update
if [[ -r ${pkglist_file} ]] ; then
OIFS="${IFS}"
IFS=$'\n'
for p in $(cat ${pkglist_file}) ; do
echo /usr/bin/opkg -f "${localcnf}" install $p
/usr/bin/opkg -t /var/volatile/ -f "${localcnf}" install $p
done
IFS="${OIFS}"
fi
/usr/bin/opkg -t /var/volatile/ -f "${localcnf}" upgrade
version=$(grep mLinux /etc/mlinux-version | sed 's/mLinux //')
sed -ri "s/mLinux [0-9][^ ]* /mLinux ${version} /" /etc/issue
sed -ri "s/Version: [0-9][^ ]*/Version: ${version} /" /etc/issue
|