Installation

HackieboxNG Installation #

Backup #

Please make a full file based + flash backup of your toniebox’s flash with cc3200tool. More details on the usage of the cc3200tool and the required hardware can be found here Python 3 is needed! You may use a different COM port or the right device on linux ex. /dev/ttyUSB0.

cc3200tool -p COM3 read_all_files targetdir/ read_flash backup.bin

Please check, if you dumped every important file.

HackieboxNG Bootloader #

Get the bootloader #

Download the latest version from here. Please unzip the release to your desired directory. You will find a directory called flash there for the file(s) that need to be copied to the flash and a directory called sd for the sd files. If you don’t mind a slightly slower boot but want some log output via UART (Baud 921600, TX Pin) use the debug variant (check the ngCfg.json to enable it!).

Preface #

Installing the new bootloader is split into two stages and differs whether it’s a first install or and update to an existing installation:

Stage 1a: Preloader, first time installation #

Move original bootloader #

First of all you need to copy your just backuped original mcuimg.bin (original bootloader) from your toniebox to a different location (flash:/sys/pre-img.bin) to boot it with the HackieboxNG Bootloader later on. Please don’t confuse the mcuimg.bin (ofw bootloader) you are going to dump with the mcuimg.bin within the hackiebox zip package. (/flash/sys/mcuimg.bin)

cc3200tool -p COM3 read_file /sys/mcuimg.bin mcuimg.bin
cc3200tool -p COM3 write_file mcuimg.bin /sys/pre-img.bin

Install preloader #

cc3200tool -p COM3 write_file flash/sys/mcuimg.bin /sys/mcuimg.bin

Or as oneliner #

cc3200tool -p COM3 read_file /sys/mcuimg.bin mcuimg.bin write_file mcuimg.bin /sys/pre-img.bin write_file flash/sys/mcuimg.bin /sys/mcuimg.bin

Dumping the original firmware #

The box saves up to 3 different versions of the OFW. It can be found flash:/sys/mcuimgN.bin (replace N with 1, 2 or 3). A command to dump all three versions would be:

cc3200tool -p COM3 read_file /sys/mcuimg1.bin mcuimg1.bin read_file /sys/mcuimg2.bin mcuimg2.bin read_file /sys/mcuimg3.bin mcuimg3.bin

To check which version the dumped firmwares are you may just open it with a hex editor (quite at the end) or use our python tool to extract it. If you found a new firmware, let us know by opening a push request for our known firmware listing in the wiki.

Preloader installation finished #

You’ve installed the Preloader onto the Toniebox. Please continue with Stage 2: Installing the bootloader onto the SD card.

Stage 1b: Preloader, updating existing installation #

You may use the (old) Hackiebox CFW to upload the preloader. This way you can install it over the air without direct access to the flash if you have already installed a previous version of the cfw bootloader/preloader. Just run the Hackiebox CFW and use the webinterface to upload the new /sys/mcuimg.bin.

Backup #

To verify that you have currently installed the ofw bootloader to /sys/pre-img.bin you may download the file from flash

http://*.*.*.*/api/ajax?cmd=get-flash-file&filepath=/sys/pre-img.bin

Copy over preloader #

CFW Flash upload

  1. Select Target “Flash”
  2. Select Local file “flash/sys/mcuimg.bin”
  3. Set Overwrite to “on”
  4. Set SD/Flash path to “/sys/mcuimg.bin”
  5. Press Upload!

Verification #

To verify that the upload was successful you can download the mcuimg.bin from flash afterwards and compare it with the flash/sys/mcuimg.bin you have just uploaded.

http://*.*.*.*/api/ajax?cmd=get-flash-file&filepath=/sys/mcuimg.bin

Stage 2: Installing the Bootloader #

SD files #

Copy over all the contents of the sd folder to the sd card of the toniebox. Copy over the original bootloader (mcuimg.bin from your backup) to the first ofw slot sd:/revvox/boot/ng-ofw1.bin. Now the HackieboxNG bootloader will instantly boot the original bootloader and run the original firmware.

Note: The preloader will load any file placed to sd:/revvox/boot/ngbootloader.bin.

More about the different firmware slots and the configuration here.