Flashing mLinux Firmware
NOTE: This section describes upgrading mLinux™ locally on your device and is intended for experts with the appropriate technical knowledge. (Otherwise, use the alternative method Upgrading mLInux.)
Refer to the Downloads page for applicable pre-built images.
The following procedure generally only applies to the MTCDT-xx-210L model but can be used to convert a MTCDT-xx-210A model to MTCDT-xx-210L.
All downloads are available from the Downloads page.
View the Current Firmware Version
$ cat /etc/mlinux-version
Using Auto-Flash During Reboot (Recommended)
During the boot process, the device checks for a file named /var/volatile/do_flash_upgrade
which indicates if it should attempt to flash itself. (NOTE: This file must be owned by root. If /var/volatile/do_flash_upgrade
exists, it will look for the upgrade files in two locations: /var/volatile/flash-upgrade
and /media/card/flash-upgrade
and then flash itself.
Summary
- Copy kernel and rootfs to the newly created directory /var/volatile/flash-upgrade:
mkdir /var/volatile/flash-upgrade
cp <uImage path here> /var/volatile/flash-upgrade/uImage.bin
OR ensure the sd card is formatted as follows:cp <rootfs path here> /var/volatile/flash-upgrade/rootfs.jffs2
/media/card/flash-upgrade/uImage.bin
/media/card/flash-upgrade/rootfs.jffs2
- For mLinux 3.x, do the following commands:
- Run
touch /var/volatile/do_flash_upgrade
- Run
reboot
- Run
- For mLinux 4 or higher, do the following command:
- Run
sudo touch /var/volatile/do_flash_upgrade
- Run
sudo reboot
- Run
The file names must match above exactly and are case-sensitive.
Detailed Steps
- Obtain the required update files from the downloads page. (You can also find these files in your current build of mLinux in the built/tmp/deploy/images directory.) Refer to the Conduit: mLinux Mode, Other Downloads, and click on Pre-Built Images. Select your hardware (currently MTCAP or MTCDT).
Select the version you want to use.
- Then download the jffs2 file desired (base or factory image) and uImage file. For example:
mlinux-factory-image-mtcdt-20150527081222.rootfs.jffs2
uImage--3.12.27-r11.2-mtcdt-20150527052826.bin
- On your PC, rename the new firmware files like this:
mlinux-factory-image-mtcdt-20150527081222.rootfs.jffs2
→rootfs.jffs2
uImage--3.12.27-r11.2-mtcdt-20150527052826.bin
→uImage.bin
- Connect the Conduit to your PC via an ethernet cable and ssh into it.
- On the Conduit, first create the destination directory:
mkdir /var/volatile/flash-upgrade
- Copy the files to the device. If using Windows, you’ll need a tool like WinSCP or SCP in Cygwin.
Using SCP on your PC:
scp uImage.bin root@192.168.2.1:/var/volatile/flash-upgrade/uImage.bin
scp rootfs.jffs2 root@192.168.2.1:/var/volatile/flash-upgrade/rootfs.jffs2
- After transferring the files, on the Conduit run:
- For mLinux 3.x:
- Run
touch /var/volatile/do_flash_upgrade
- Run
reboot
- Run
- For mLinux 4 or higher:
- Run
sudo touch /var/volatile/do_flash_upgrade
- Run
sudo reboot
- Run
- For mLinux 3.x:
During flashing, programmable LEDs will blink in a progression pattern.
Note: If you want to copy uImage.bin and rootfs.jffs2 into the tmpfs mounted at /var/volatile, first verify that there is enough space to fit the images in memory. If you flash a larger image and have an SD card inserted, copy the images into /media/card instead.
Using Auto-Flash During Reboot with image upgrade.bin
The Auto-Flash During Reboot can also be performed with an upgrade file. This process allows a system to be converted from mPower™ to mLinux or vice versa.
Summary
- Besure to download an image compatible with the hardware type MTCDT and MTCAP have different image files
- For mLinux download the factory or base image for MTCDT or MTCAP
- Download an mlinux-*-upgrade.bin or conduit_AEP-X.X.X_upgrade.bin file from Downloads
- Create a directory on the Conduit to receive the file
mkdir /var/volatile/flash-upgrade
- Copy the upgrade file, renaming as upgrade.bin, to the newly created directory /var/volatile/flash-upgrade:
cp <uImage path here> /var/volatile/flash-upgrade/upgrade.bin
- After transferring the files, on the Conduit run:
- For mLinux 3.x:
- Run
touch /var/volatile/do_flash_upgrade
- Run
reboot
- Run
- For mLinux 4 or higher:
- Run
sudo touch /var/volatile/do_flash_upgrade
- Run
sudo reboot
- Run
- For mLinux 3.x:
Convert to mPower
- Download mPower firmware from http://www.multitech.net/developer/downloads/
- Extract the conduit_aep_upgrade.bin or mtcap_aep_upgrade.bin file from the zip file.
- Follow the Auto-Flash instructions above using the aep_upgrade.bin file
Using U-boot & TFTP
Access U-Boot at boot time from the DEBUG serial port behind the front panel. See the Conduit Hardware Guide for debug information
Setting up your U-Boot environment
Linux: Install and configure a TFTP server. For example using in.tftpd and xinetd the following configuration will listen on port 69 and set /tftpboot
as the tftp root dir.
/etc/xinetd.d/tftp:
service tftp { protocol = udp port = 69 socket_type = dgram wait = yes user = nobody server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no }
Windows: Download, install and configure Tftpd32, available at http://www.softpedia.com/get/Internet/Servers/FTP-Servers/Tftpd32.shtml.
On your PC, extract out the the .rootfs.jffs2
and .bin
files and place them in the tftpboot directory . Then rename them like this:
mlinux-factory-image-mtcdt-20150527081222.rootfs.jffs2
→ oe_rootfs.jffs2
uImage--3.12.27-r11.2-mtcdt-20150527052826.bin
→ oe_uImage.bin
Power on the device after connecting the debug cable. You need to interrupt U-Boot from booting the system; look for the Hit any key to stop autoboot.
U-Boot 2012.10-mtcdt-r6 (May 07 2015 - 13:37:07) CPU: AT91SAM9G25 Crystal frequency: 12 MHz CPU clock : 400 MHz Master clock : 133.333 MHz [...] Hit any key to stop autoboot: 0 U-Boot>
Some units come already configured with a U-Boot environment that makes flashing the device simple. To check the contents of the U-Boot environment, run printenv
and check for variables named krb
, tftp_kernel
and tftp_rootfs
, etc.
If these variables do exist, then modify the serverip
, ipaddr
, and netmask
variables to match your network and save the settings. Then skip to the “Flash from U-Boot” section below.
U-Boot> setenv ipaddr 192.168.2.1 U-Boot> setenv serverip 192.168.2.99 U-Boot> setenv netmask 255.255.255.0 Saving Environment to NAND... Erasing redundant NAND... Erasing at 0x160000 -- 100% complete. Writing to redundant NAND... done U-Boot>
If these variables don’t exist, follow these instructions to configure the U-Boot environment for flashing:
Download the uboot-setenv-mtcdt
minicom script from the mLinux git repository to your development PC:
Copy that uboot-setenv-mtcdt
script to a location with a shorter path. The full path needs to be short enough to fit in the Minicom run script menu.
$ cp uboot-setenv-mtcdt.minicom $HOME/uboot-setenv.minicom
Edit ${HOME}/uboot-setenv
to match your network and device.
send setenv serverip 192.168.2.2 send setenv ipaddr 192.168.2.1 send setenv netmask 255.255.255.0
Run the U-Boot environment setup script. At minicom type CTRL-A G
and enter ${HOME}/uboot-setenv
as the name of the script to run. When the script finishes it should save and print out the environment. Make sure you expand ${HOME} to your actual home dir when entering the script name.
Flash from U-Boot
Make sure oe_uImage.bin
and oe_rootfs.jffs2
are in your tftpboot directory, then run the krb command. U-boot will copy the firmware files from your PC, flash the device, and reboot.
U-Boot> run krb
NAND Flash Layout
Name | Offset | Size | Usage |
---|---|---|---|
NANDFlash | 0x00000000 |
0x10000000 |
Whole NAND |
at91bootstrap | 0x00000000 |
0x00040000 (256KB) |
Bootstrap [bootstrap.bin] |
u-Boot | 0x00040000 |
0x00080000 (512KB) |
U-Boot [u-boot.bin] |
u-Boot Config | 0x000C0000 |
0x000A0000 (640KB) |
U-Boot environment |
u-Boot Redundant Config | 0x00160000 |
0x000A0000 (640KB) |
U-Boot redundant environment |
uImage | 0x00200000 |
0x00600000 (6MB) |
Linux Kernel [uImage.bin] |
Config | 0x00800000 |
0x00800000 (8MB) |
Configuration [/var/config] |
OEM Config | 0x01000000 |
0x00800000 (8MB) |
OEM Specific configuration [not used by default] |
Rootfs | 0x01800000 |
0x0E800000 (232MB) |
root filesystem [rootfs.jffs] |
Total Size: 256 MB
Block/Sector Size: 128 KB