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-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.
7 Comments
Z-Lars Feyaerts
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.
Manigandan Gopalakrishnan
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.
Z-Christian Lucas
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/
Z-Christian Lucas
OK I can confirm flashing the Turris Omnia UBOOT and the Turris OS image works with this method.
BR
Christian
Manigandan Gopalakrishnan
Okay Christian.
You mean https://docs.turris.cz/hw/omnia/serial-boot/ works fine in case of u-boot corruption?
Z-Christian Lucas
Yes. Tried it myself.
BR
Manigandan Gopalakrishnan
Thanks Christian Lucas !
Then, i will update wiki page soon accordingly. I mean, i will have one flashing instruction for Turris Omnia.