Hardware Information

Wi-Fi Extender Reference Target

Requirements

Two files are required to bring up Newer model of Turris Omnia (Turris Omnia 2019 & Turris Omnia 2020)[Revision: CZ11NIC23]

  • Omnia Medkit image

omnia-medkit-openwrt-mvebu-cortexa9-cznic_turris-omnia-initramfs_autoupgrade.tar.gz

Extract *.wic.gz or *.wic.bz2 image and rename to sysupgrade.img. For example,

gunzip rdkb-generic-broadband-image_default_*.rootfs.wic.gz
(or)
bzip2 -d rdkb-generic-broadband-image_default_*.rootfs.wic.bz2

mv rdkb-generic-broadband-image_default_*.rootfs.wic sysupgrade.img

Flashing RDKB image (A Yocto Project based Distro)

Flashing with Medkit & Sysupgrade images

NOTE: This upgrade procedure wipes out eMMC flash storage(/dev/mmcblk0) completely. Earlier partitions are lost.

Perform following steps to flash New Turris Omnia with RDKB image.

  • Connect a USB flash drive to PC that is running Linux. Create a partition in flash drive and format the partition with mkfs.ext2
  • Copy both attached medkit image and sysupgrade.img image to USB flash drive.
  • Disconnect other USB devices from the Turris Omnia and connect the flash drive to either USB port.
  • Hold down the reset button (backside, bottom centre) and plug in the power cord. Wait until the fourth LED lights up (green), then release (before the 5th LED lights up). Please check here to see more detail on rescue modes.

  • Wait approximately 2 minutes for the Turris Omnia to flash itself with the temporary image, during which LEDs will change multiple times.

Creating additional partitions

Create partitions for additional rootfs and nvram. Then, reboot the system.

root@TurrisOmnia-GW:~# fdisk /dev/mmcblk0

Welcome to fdisk (util-linux 2.28.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p
Disk /dev/mmcblk0: 7.3 GiB, 7818182656 bytes, 15269888 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xec7ceddc

Device         Boot Start    End Sectors   Size Id Type
/dev/mmcblk0p1 *     2048  34623   32576  15.9M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      34816 755359  720544 351.8M 83 Linux

Command (m for help): n
Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (3,4, default 3): 
First sector (34624-15269887, default 755712): 
Last sector, +sectors or +size{K,M,G,T,P} (755712-15269887, default 15269887): +512M

Created a new partition 3 of type 'Linux' and of size 512 MiB.

Command (m for help): n
Partition type
   p   primary (3 primary, 0 extended, 1 free)
   e   extended (container for logical partitions)
Select (default e): 

Using default response e.
Selected partition 4
First sector (34624-15269887, default 1804288): 
Last sector, +sectors or +size{K,M,G,T,P} (1804288-15269887, default 15269887): 

Created a new partition 4 of type 'Extended' and of size 6.4 GiB.

Command (m for help): n
All primary partitions are in use.
Adding logical partition 5
First sector (1806336-15269887, default 1806336): 
Last sector, +sectors or +size{K,M,G,T,P} (1806336-15269887, default 15269887): +128M

Created a new partition 5 of type 'Linux' and of size 128 MiB.

Command (m for help): p
Disk /dev/mmcblk0: 7.3 GiB, 7818182656 bytes, 15269888 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xec7ceddc

Device         Boot   Start      End  Sectors   Size Id Type
/dev/mmcblk0p1 *       2048    34623    32576  15.9M  c W95 FAT32 (LBA)
/dev/mmcblk0p2        34816   755359   720544 351.8M 83 Linux
/dev/mmcblk0p3       755712  1804287  1048576   512M 83 Linux
/dev/mmcblk0p4      1804288 15269887 13465600   6.4G  5 Extended
/dev/mmcblk0p5      1806336  2068479   262144   128M 83 Linux

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

root@TurrisOmnia-GW:~# reboot


Format newly created two partitions as ext2 partitions.

root@TurrisOmnia-GW:~# mkfs.ext2  /dev/mmcblk0p3
mke2fs 1.43 (17-May-2016)
Discarding device blocks: done                            
Creating filesystem with 131072 4k blocks and 32768 inodes
Filesystem UUID: c2d8887f-6e6b-4d9b-b57a-f3bc28374841
Superblock backups stored on blocks: 
	32768, 98304

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done

root@TurrisOmnia-GW:~# mkfs.ext2  /dev/mmcblk0p5
mke2fs 1.43 (17-May-2016)
Discarding device blocks: done                            
Creating filesystem with 131072 1k blocks and 32768 inodes
Filesystem UUID: 2e4cee8d-f1d5-488a-99f9-5e3a233dcf4f
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done

RDK Firmware(Image) upgrade: (Yet to validate)

Approach 1:

RDK firmware upgrade with XConf server: Firmware upgrade through XCONF server - Turris-Omnia - User Manual - 2020 - M6

Approach 2(Quick):

Copy zImage , dtb file and rootfs files(not *dbg* rootfs file) from PC or VM to /tmp/ directory of Turris Omnia which runs RDK Image.

For example

scp zImage--4.14.22-r0-turris-20200720105910.bin root@<TurrisOmnia-IP>:/tmp/
scp armada-385-turris-omnia.dtb root@<TurrisOmnia-IP>:/tmp/
scp rdkb-generic-broadband-image_default_20200720105910.rootfs.tar.gz root@<TurrisOmnia-IP>:/tmp/


In Turris Omnia, execute /lib/rdk/TurrisFwUpgrade.sh  to flash new RDK image present in /tmp folder

sh /lib/rdk/TurrisFwUpgrade.sh

Turris Omnia will now run upgraded version of Yocto based RDK image.

  • No labels

7 Comments

  1. I also wanted to highlight that this upgrade procedure works for the old Turris Omnia (the one with the black cover) IF u-boot 2019.07 is present on the board.

    1. Hello Z-Lars Feyaerts ,

      When i find time, will add steps to upgrade u-boot and rescue image in older Turris Omnia(Although, this procedure is bit risky since one might corrupt the u-boot). Then, we will have one flashing instruction for all models.

      1. If you managed to currupt the uboot, here are the steps to rescue it via UART from the Turris Website. Tried it myself and it worked until flashing the new uboot. That part I still need to test: https://docs.turris.cz/hw/omnia/serial-boot/

        1. OK I can confirm flashing the Turris Omnia UBOOT and the Turris OS image works with this method.


          BR


          Christian

          1. Okay Christian.
            You mean https://docs.turris.cz/hw/omnia/serial-boot/ works fine in case of u-boot corruption?

  2. Yes. Tried it myself.

    BR

    1. Thanks Christian Lucas !

      Then, i will update wiki page soon accordingly. I mean, i will have one flashing instruction for Turris Omnia.