summaryrefslogtreecommitdiff
path: root/scripts/upgrade-kernel
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/upgrade-kernel')
-rw-r--r--scripts/upgrade-kernel/BUILD.txt20
-rw-r--r--scripts/upgrade-kernel/README.txt43
-rw-r--r--scripts/upgrade-kernel/install.txt173
-rw-r--r--scripts/upgrade-kernel/truss/image/README.txt6
-rw-r--r--scripts/upgrade-kernel/truss/image/uImage--3.12.70-r17.2-mtcdt-20180131072120.bin0
-rw-r--r--scripts/upgrade-kernel/truss/image/uImage.md51
-rwxr-xr-xscripts/upgrade-kernel/truss/install.sh65
-rw-r--r--scripts/upgrade-kernel/truss/packages/mtcdt/README.txt20
-rw-r--r--scripts/upgrade-kernel/truss/packages/opkg/opkg.conf44
9 files changed, 372 insertions, 0 deletions
diff --git a/scripts/upgrade-kernel/BUILD.txt b/scripts/upgrade-kernel/BUILD.txt
new file mode 100644
index 0000000..8e9e30f
--- /dev/null
+++ b/scripts/upgrade-kernel/BUILD.txt
@@ -0,0 +1,20 @@
+Look in the file truss/packages/mtcdt/README.txt and
+truss/image/README.txt.
+
+The ipk files needed for the upgrade should be built,
+and then all the files not needed for the upgrade should
+be removed, and then bitbake package-index run.
+
+The mtcdt or mtcap directory can be copied into the
+truss/packages/mtcdt or mtcap directory. If mtcap
+is used, the install.sh script will need modification.
+
+The kernel image from build/tmp/deploy/images/mtcdt
+(or mtcap) can be copied into the image directory.
+
+truss could be renamed to suit the kernel name and
+version. For instance kernel-3.12.70-r17.1.
+
+A tar file is then created with the truss name as the
+root of the tar.
+
diff --git a/scripts/upgrade-kernel/README.txt b/scripts/upgrade-kernel/README.txt
new file mode 100644
index 0000000..601f3c9
--- /dev/null
+++ b/scripts/upgrade-kernel/README.txt
@@ -0,0 +1,43 @@
+install.txt What the install should look like
+kernel-*.tar Tar file with the packages and kernel image.
+
+1. Copy kernel-*.tar and *.md5 to the Conduit directory /var/volatile.
+ scp or winscp would be good. User mtadm.
+
+2. Log into Conduit
+
+3. cd /var/volatile
+
+4. md5sum -c *.md5
+
+5. tar -xf kernel-*.tar
+
+6. cd kernel-*
+
+7. sudo ./install.sh
+
+This will take about 20 minutes.
+
+The install must not be interrupted. opkg does not always clean up after an
+aborted install.
+
+At this point the kernel image is installed, followed by the module packages.
+If there are errors you should see messages:
+ERROR: ...
+
+There is a log in file /tmp/opkglog*
+
+The log must be copied from the Conduit before rebooting if there are issues.
+
+7. sudo reboot
+
+8. New kernel can be verified:
+
+uname -r
+
+(Old kernel is 3.12.27)
+
+Packages can be verified:
+
+opkg list-installed | fgrep '3.12.70'
+
diff --git a/scripts/upgrade-kernel/install.txt b/scripts/upgrade-kernel/install.txt
new file mode 100644
index 0000000..81d2aed
--- /dev/null
+++ b/scripts/upgrade-kernel/install.txt
@@ -0,0 +1,173 @@
+# Example of an installation of a kernel upgrade.
+cd /var/volatile/
+root@mtcdt:/var/volatile# tar -xf *.tar
+root@mtcdt:/var/volatile# ls
+kernel-3.12.70-r17.2 log
+kernel-3.12.70-r17.2.tar tmp
+root@mtcdt:/var/volatile# cd kernel-3.12.70-r17.2
+root@mtcdt:/var/volatile/kernel-3.12.70-r17.2# uname -r
+3.12.27
+root@mtcdt:/var/volatile/kernel-3.12.70-r17.2# ./install.sh
+uImage--3.12.70-r17.2-mtcdt-20180131072120.bin: OK
+Erasing the kernel partition
+Erasing 128 Kibyte @ 0 -- 0 % complete Erasing 128 Kibyte @ 20000 -- 2 % complete Erasing 128 Kibyte @ 40000 -- 4 % complete Erasing 128 Kibyte @ 60000 -- 6 % complete Erasing 128 Kibyte @ 80000 -- 8 % complete Erasing 128 Kibyte @ a0000 -- 10 % complete Erasing 128 Kibyte @ c0000 -- 12 % complete Erasing 128 Kibyte @ e0000 -- 14 % complete Erasing 128 Kibyte @ 100000 -- 16 % complete Erasing 128 Kibyte @ 120000 -- 18 % complete Erasing 128 Kibyte @ 140000 -- 20 % complete Erasing 128 Kibyte @ 160000 -- 22 % complete Erasing 128 Kibyte @ 180000 -- 25 % complete Erasing 128 Kibyte @ 1a0000 -- 27 % complete Erasing 128 Kibyte @ 1c0000 -- 29 % complete Erasing 128 Kibyte @ 1e0000 -- 31 % complete Erasing 128 Kibyte @ 200000 -- 33 % complete Erasing 128 Kibyte @ 220000 -- 35 % complete Erasing 128 Kibyte @ 240000 -- 37 % complete Erasing 128 Kibyte @ 260000 -- 39 % complete Erasing 128 Kibyte @ 280000 -- 41 % complete Erasing 128 Kibyte @ 2a0000 -- 43 % complete Erasing 128 Kibyte @ 2c0000 -- 45 % complete Erasing 128 Kibyte @ 2e0000 -- 47 % complete Erasing 128 Kibyte @ 300000 -- 50 % complete Erasing 128 Kibyte @ 320000 -- 52 % complete Erasing 128 Kibyte @ 340000 -- 54 % complete Erasing 128 Kibyte @ 360000 -- 56 % complete Erasing 128 Kibyte @ 380000 -- 58 % complete Erasing 128 Kibyte @ 3a0000 -- 60 % complete Erasing 128 Kibyte @ 3c0000 -- 62 % complete Erasing 128 Kibyte @ 3e0000 -- 64 % complete Erasing 128 Kibyte @ 400000 -- 66 % complete Erasing 128 Kibyte @ 420000 -- 68 % complete Erasing 128 Kibyte @ 440000 -- 70 % complete Erasing 128 Kibyte @ 460000 -- 72 % complete Erasing 128 Kibyte @ 480000 -- 75 % complete Erasing 128 Kibyte @ 4a0000 -- 77 % complete Erasing 128 Kibyte @ 4c0000 -- 79 % complete Erasing 128 Kibyte @ 4e0000 -- 81 % complete Erasing 128 Kibyte @ 500000 -- 83 % complete Erasing 128 Kibyte @ 520000 -- 85 % complete Erasing 128 Kibyte @ 540000 -- 87 % complete Erasing 128 Kibyte @ 560000 -- 89 % complete Erasing 128 Kibyte @ 580000 -- 91 % complete Erasing 128 Kibyte @ 5a0000 -- 93 % complete Erasing 128 Kibyte @ 5c0000 -- 95 % complete Erasing 128 Kibyte @ 5e0000 -- 97 % complete Erasing 128 Kibyte @ 5e0000 -- 100 % complete
+Writing the kernel partition
+Writing data to block 0 at offset 0x0
+Writing data to block 1 at offset 0x20000
+Writing data to block 2 at offset 0x40000
+Writing data to block 3 at offset 0x60000
+Writing data to block 4 at offset 0x80000
+Writing data to block 5 at offset 0xa0000
+Writing data to block 6 at offset 0xc0000
+Writing data to block 7 at offset 0xe0000
+Writing data to block 8 at offset 0x100000
+Writing data to block 9 at offset 0x120000
+Writing data to block 10 at offset 0x140000
+Writing data to block 11 at offset 0x160000
+Writing data to block 12 at offset 0x180000
+Writing data to block 13 at offset 0x1a0000
+Writing data to block 14 at offset 0x1c0000
+Writing data to block 15 at offset 0x1e0000
+Writing data to block 16 at offset 0x200000
+Writing data to block 17 at offset 0x220000
+Writing data to block 18 at offset 0x240000
+Writing data to block 19 at offset 0x260000
+Writing data to block 20 at offset 0x280000
+Writing data to block 21 at offset 0x2a0000
+Writing data to block 22 at offset 0x2c0000
+Writing data to block 23 at offset 0x2e0000
+Saving install results to /tmp/opkglog.P0qNTE
+ 1 of 222depmod: WARNING: could not open /lib/modules/3.12.27/modules.order: No such file or directory
+depmod: WARNING: could not open /lib/modules/3.12.27/modules.builtin: No such file or directory
+ 2 of 222mts-io: Unloading mts-io module
+[INFO] mts-io:cleanup:928: cleaning up....
+[INFO] mts-io:mts_io_exit:1011: exiting
+update-rc.d: /etc/init.d/mts-io exists during rc.d purge (continuing)
+ 3 of 222 4 of 222 5 of 222 6 of 222 7 of 222 8 of 222 9 of 222 10 of 222 11 of 222 12 of 222 13 of 222 14 of 222 15 of 222 16 of 222 17 of 222 18 of 222date
+ 19 of 222 20 of 222 21 of 222 22 of 22223 of 22224 of 222 25 of 22226 of 22227 of 222
+ 28 of 222 29 of 222 30 of 222 31 of 222 32 of 222 33 of 222 34 of 222 35 of 222 36 of 222 37 of 222 38 of 222 39 of 222 40 of 222 41 of 222 42 of 222 43 of 222 44 of 222 45 of 222 46 of 222 47 of 222 48 of 222 49 of 222 50 of 222 51 of 222 52 of 222 53 of 222 54 of 222 55 of 222 56 of 222 57 of 222 58 of 222 59 of 222 60 of 222 61 of 222 62 of 222 63 of 222 64 of 222 65 of 222 66 of 222 67 of 222 68 of 222 69 of 222 70 of 222 71 of 222 72 of 222 73 of 222 74 of 222 75 of 222 76 of 222 77 of 222 78 of 222jffs2: warning: (266) jffs2_sum_write_data: Not enough space for summary, padsize = -243
+ 79 of 222 80 of 222 81 of 222 82 of 222 83 of 222 84 of 222 85 of 222 86 of 222 87 of 222 88 of 222 89 of 222 90 of 222 91 of 222 92 of 222 93 of 222 94 of 222 95 of 222 96 of 222 97 of 222 98 of 222 99 of 222100 of 222101 of 222102 of 222103 of 222104 of 222105 of 222106 of 222107 of 222108 of 222109 of 222110 of 222111 of 222112 of 222113 of 222114 of 222115 of 222116 of 222117 of 222jffs2: warning: (2850) jffs2_sum_write_data: Not enough space for summary, padsize = -1402
+118 of 222119 of 222120 of 222121 of 222122 of 222123 of 222124 of 222125 of 222126 of 222127 of 222128 of 222129 of 222130 of 222131 of 222132 of 222133 of 222134 of 222135 of 222136 of 222137 of 222138 of 222139 of 222140 of 222141 of 222142 of 222143 of 222144 of 222145 of 222146 of 222147 of 222148 of 222149 of 222150 of 222151 of 222152 of 222153 of 222154 of 222155 of 222156 of 222157 of 222158 of 222159 of 222160 of 222161 of 222162 of 222163 of 222164 of 222165 of 222166 of 222167 of 222168 of 222169 of 222170 of 222171 of 222172 of 222173 of 222174 of 222175 of 222176 of 222177 of 222178 of 222179 of 222180 of 222181 of 222182 of 222183 of 222184 of 222185 of 222186 of 222187 of 222188 of 222189 of 222190 of 222191 of 222192 of 222193 of 222194 of 222195 of 222196 of 222197 of 222198 of 222199 of 222200 of 222201 of 222202 of 222203 of 222204 of 222205 of 222206 of 222207 of 222208 of 222209 of 222210 of 222211 of 222jffs2: warning: (4419) jffs2_sum_write_data: Not enough space for summary, padsize = -888
+212 of 222update-rc.d: /etc/init.d/vizzini exists during rc.d purge (continuing)
+213 of 222214 of 222215 of 222216 of 222217 of 222218 of 222219 of 222220 of 222221 of 222222 of 222
+depmod: WARNING: could not open /lib/modules/3.12.27/modules.order: No such file or directory
+depmod: WARNING: could not open /lib/modules/3.12.27/modules.builtin: No such file or directory
+Installed 222 packages.
+Ready for reboot
+root@mtcdt:/var/volatile/kernel-3.12.70-r17.2# date
+Tue Dec 13 12:44:06 CST 2016
+root@mtcdt:/var/volatile/kernel-3.12.70-r17.2# cd /tmp
+root@mtcdt:/tmp# ls opkg*
+opkglog.P0qNTE
+root@mtcdt:/tmp# grep ERROR opkglog*
+root@mtcdt:/tmp# uname -r
+3.12.27
+root@mtcdt:/tmp# cd /lib/modules/3.12.27
+root@mtcdt:/lib/modules/3.12.27# find . -name '*.ko'
+root@mtcdt:/lib/modules/3.12.27# cd ../3.12.70
+root@mtcdt:/lib/modules/3.12.70# find . -name '*vizzini*'
+./extra/vizzini.ko
+root@mtcdt:/lib/modules/3.12.70# opkg list-installed | grep mts
+libmts-io0 - 0.6-r0.0
+libmts0 - 0.3-r1.0
+mts-id-eeprom - 0.2.10-r0.0.0
+mts-io - 1.5.16-r9.0-3.12.70r17.0
+root@mtcdt:/lib/modules/3.12.70# opkg files mts-io
+Package mts-io (1.5.16-r9.0-3.12.70r17.0) is installed on root and has the following files:
+/usr/sbin/mts-io-sysfs
+/etc/init.d/mts-io
+/etc/init.d/radio-reset
+/lib/modules/3.12.70/extra/mts_io.ko
+/etc/rc5.d/S95led-status_heartbeat_trigger
+/etc/default/radio-reset
+/lib/modules/3.12.70/extra/
+/usr/lib/mts-io-sysfs/
+/etc/default/mts-io
+/usr/lib/mts-io-sysfs/mts-io-sysfs-inc.sh
+/etc/init.d/led-status_heartbeat_trigger
+/etc/rc6.d/S30radio-reset
+root@mtcdt:/lib/modules/3.12.70# cd extra
+root@mtcdt:/lib/modules/3.12.70/extra# ls
+mts_io.ko vizzini.ko
+root@mtcdt:/lib/modules/3.12.70/extra# uname -r
+3.12.27
+root@mtcdt:/lib/modules/3.12.70/extra# reboot
+root@mtcdt:/lib/modules/3.12.70/extra# INIT: Switching to runlevel: 6
+
+ ...
+
+Starting reset-handler
+monit: disabled in /etc/default
+Stopping Bootlog daemon: bootlogd.
+
+ _ _
+ _ __ ___ | | (_)_ __ _ ___ __
+ | '_ ` _ \| | | | '_ \| | | \ \/ /
+ | | | | | | |___| | | | | |_| |> <
+ |_| |_| |_|_____|_|_| |_|\__,_/_/\_\
+
+MultiTech Systems mLinux GNU/Linux
+mLinux 3.2.3 mtcdt /dev/ttyS0
+
+
+Version: 3.2.3
+Date: 2016-12-13T11:36:05
+mtcdt login: root
+Password:
+root@mtcdt:~# uname -r
+3.12.70
+usb 1-2.3: new high-speed USB device number 5 using atmel-ehci
+dusb 1-2.3: New USB device found, idVendor=1bc7, idProduct=1201
+usb 1-2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
+usb 1-2.3: Product: Android
+usb 1-2.3: Manufacturer: Android
+usb 1-2.3: SerialNumber: 0123456789ABCDEF
+option 1-2.3:1.0: GSM modem (1-port) converter detected
+usb 1-2.3: GSM modem (1-port) converter now attached to ttyUSB0
+qmi_wwan 1-2.3:1.2: cdc-wdm0: USB WDM device
+qmi_wwan 1-2.3:1.2 wwan0: register 'qmi_wwan' at usb-700000.ehci-2.3, WWAN/QMI device, 86:85:cb:b4:04:d0
+option 1-2.3:1.3: GSM modem (1-port) converter detected
+usb 1-2.3: GSM modem (1-port) converter now attached to ttyUSB1
+option 1-2.3:1.4: GSM modem (1-port) converter detected
+usb 1-2.3: GSM modem (1-port) converter now attached to ttyUSB2
+option 1-2.3:1.5: GSM modem (1-port) converter detected
+usb 1-2.3: GSM modem (1-port) converter now attached to ttyUSB3
+option 1-2.3:1.6: GSM modem (1-port) converter detected
+usb 1-2.3: GSM modem (1-port) converter now attached to ttyUSB4
+root@mtcdt:~# lsmod
+Module Size Used by
+usb_f_acm 4175 1
+u_serial 8814 3 usb_f_acm
+g_serial 1702 0
+libcomposite 26585 2 usb_f_acm,g_serial
+configfs 21926 3 usb_f_acm,libcomposite
+mts_io 50710 0
+qmi_wwan 11307 0
+cdc_wdm 9414 1 qmi_wwan
+option 27880 0
+usbnet 17525 1 qmi_wwan
+spidev 4817 0
+mii 3421 1 usbnet
+usb_wwan 5342 1 option
+usbserial 19164 2 option,usb_wwan
+vizzini 15702 0
+cdc_acm 15055 0
+tmp102 2720 0
+atmel_usba_udc 11424 0
+spi_atmel 11016 0
+udc_core 6118 2 atmel_usba_udc,libcomposite
+atmel_mci 13209 0
+pps_gpio 2323 0
+pps_core 7367 1 pps_gpio
+uio_pdrv_genirq 2705 0
+uio 6950 1 uio_pdrv_genirq
+root@mtcdt:~# ping 192.168.2.2
+PING 192.168.2.2 (192.168.2.2) 56(84) bytes of data.
+64 bytes from 192.168.2.2: icmp_seq=1 ttl=64 time=1.60 ms
+64 bytes from 192.168.2.2: icmp_seq=2 ttl=64 time=0.371 ms
+64 bytes from 192.168.2.2: icmp_seq=3 ttl=64 time=0.387 ms
+64 bytes from 192.168.2.2: icmp_seq=4 ttl=64 time=0.356 ms
+^C
+--- 192.168.2.2 ping statistics ---
+4 packets transmitted, 4 received, 0% packet loss, time 3000ms
+rtt min/avg/max/mdev = 0.356/0.678/1.601/0.533 ms
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