RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
Wi-Fi Extender Reference Targets
https://doc.turris.cz/doc/en/troubleshooting/serial_link#turris_omnia
...
NOTE:
shared links and information on taking serial connection and flashing OpenWRT imageIn serial console, press "Enter" key to get into u-boot prompt
Type "version" u-boot command to check the u-boot version
If the version found to be "U-Boot 2015.10-rc2", then type "reset" u-boot command. Then skip this section and move on to sub section(Setting default U-boot environment)
If version is other than U-Boot 2015.10-rc2, follow below steps (derived from https://wiki.debian.org/InstallingDebianOn/TurrisOmnia#Bootloader_update)
View file | ||||
---|---|---|---|---|
|
...
Code Block | ||
---|---|---|
| ||
dhcp
tftpboot 0x1000000 uboot-turris-omnia-spl.kwb
sf probe
sf update 0x1000000 0 $filesize |
In serial console, press "Enter" key to get into u-boot prompt
...
Code Block | ||
---|---|---|
| ||
env default -a saveenv reset |
The Omnia ships with TurrisOS preinstalled. This is an OpenWrt fork with the older Linux 4.4 kernel. It uses btrfs to manage the eMMC flash.
...
Download openwrt-18.06.2-mvebu-cortexa9-turris-omnia-sysupgrade.img.gz and omnia-medkit-openwrt-18.06.2-mvebu-cortexa9-turris-omnia-initramfs.tar.gz from http://downloads.openwrt.org/releases/18.06.2/targets/mvebu/cortexa9/ and copy both files to the root of the flash drive.
Disconnect other USB devices from the Omnia and connect the flash drive to either USB port. (I have only verified this with the USB port at the front).
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 click here to see more detail on rescue modes.
Either use the serial console, or connect a computer to a LAN port (LAN0 to LAN4) of the Turris Omnia with a DHCP client.
From a computer:
Code Block | ||
---|---|---|
| ||
ssh root@192.168.1.1 |
Then, from the ssh session or a serial console:
Code Block | ||
---|---|---|
| ||
mount /dev/sda1 /mnt sysupgrade /mnt/openwrt-18.06.2-mvebu-cortexa9-turris-omnia-sysupgrade.img.gz |
Wait another minute for the final OpenWrt image to be flashed. The Turris Omnia will reboot itself and you can remove the flash drive.
...
Code Block | ||
---|---|---|
| ||
root@OpenWrt:~# fdisk /dev/mmcblk0 Welcome to fdisk (util-linux 2.32). 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: 0x15344058 Device Boot Start End Sectors Size Id Type /dev/mmcblk0p1 * 2048 35327 33280 16.3M c W95 FAT32 (LBA) /dev/mmcblk0p2 36864 561663 524800 256.3M 83 Linux |
Note | ||||
---|---|---|---|---|
| ||||
root@OpenWrt:~# opkg update root@OpenWrt:~# opkg install fdisk |
...
The devicetree database and the Linux kernel are in the FAT32 partition:
Code Block | ||
---|---|---|
| ||
root@OpenWrt:~# mount /dev/mmcblk0p1 /mnt root@OpenWrt:~# ls -l /mnt -rwxr-xr-x 1 root root 17353 Aug 17 2018 armada-385-turris-omnia.dtb -rwxr-xr-x 1 root root 2445072 Aug 17 2018 zImage |
Copy the kernel in the FAT32 partition.
Reconfigure U-boot to boot from your kernel and root partition.
It is strongly recommend to keep the OpenWrt partition and kernel. If boot fails, it is easy to change the U-boot environment and boot back into OpenWrt(Fail safe OS).
Follow instruction from wiki page(https://wiki.rdkcentral.com/display/RDK/Wifi-Extender+Yocto+Build+Instructions) to make yocto's RDK-B image from yocto workspace in your PC.
Boot into openwrt based linux system in turris omnia board. Its downlink interface will have 192.168.1.1 IP address and have it connected to your PCit connected to your PC.
Create a new partitions for RDK-B.
Create one primary partition for zImage. Create another extended partition for holding logical partitions for rootfs and /nvram.
Code Block | ||||
---|---|---|---|---|
| ||||
root@OpenWrt:/# 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: 0x15488508 Device Boot Start End Sectors Size Id Type /dev/mmcblk0p1 * 2048 35327 33280 16.3M c W95 FAT32 (LBA) /dev/mmcblk0p2 36864 561663 524800 256.3M 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 (35328-15269887, default 563200): Last sector, +sectors or +size{K,M,G,T,P} (563200-15269887, default 15269887): 596479 Created a new partition 3 of type 'Linux' and of size 16.3 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): e Selected partition 4 First sector (35328-15269887, default 598016): Last sector, +sectors or +size{K,M,G,T,P} (598016-15269887, default 15269887): Created a new partition 4 of type 'Extended' and of size 7 GiB. Command (m for help): n All primary partitions are in use. Adding logical partition 5 First sector (600064-15269887, default 600064): Last sector, +sectors or +size{K,M,G,T,P} (600064-15269887, default 15269887): +512M Created a new partition 5 of type 'Linux' and of size 512 MiB. Command (m for help): n All primary partitions are in use. Adding logical partition 6 First sector (1650688-15269887, default 1650688): Last sector, +sectors or +size{K,M,G,T,P} (1650688-15269887, default 15269887): +64M Created a new partition 6 of type 'Linux' and of size 64 MiB. All primary partitions are in use. Command (m for help): n All primary partitions are in use. Adding logical partition 7 First sector (1783808-15269887, default 1783808): Last sector, +sectors or +size{K,M,G,T,P} (1783808-15269887, default 15269887): +512M Created a new partition 7 of type 'Linux' and of size 512 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: 0x15488508 Device Boot Start End Sectors Size Id Type /dev/mmcblk0p1 * 2048 35327 33280 16.3M c W95 FAT32 (LBA) /dev/mmcblk0p2 36864 561663 524800 256.3M 83 Linux /dev/mmcblk0p3 563200 596479 33280 16.3M 83 Linux /dev/mmcblk0p4 598016 15269887 14671872 7G 5 Extended /dev/mmcblk0p5 600064 1648639 1048576 512M 83 Linux /dev/mmcblk0p6 1650688 1781759 131072 64M 83 Linux /dev/mmcblk0p7 1783808 2832383 1048576 512M 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.: 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@OpenWrt:/# reboot |
...
Code Block | ||||
---|---|---|---|---|
| ||||
root@OpenWrt:/# mkfs.ext2 /dev/mmcblk0p3 mke2fs 1.44.1 (24-Mar-2018) /dev/mmcblk0p3 contains a ext2 file system last mounted on /mnt on Fri Aug 9 13:56:55 2019 Proceed anyway? (y,N) y Discarding device blocks: done Creating filesystem with 16640 1k blocks and 4176 inodes Filesystem UUID: 1b53ea80-b120-4072-a87e-9e68092ed311 Superblock backups stored on blocks: 8193 Allocating group tables: done Writing inode tables: done Writing superblocks and filesystem accounting information: done root@OpenWrt:/# mkfs.ext2 /dev/mmcblk0p5 mke2fs 1.44.1 (24-Mar-2018) /dev/mmcblk0p5 contains a ext2 file system last mounted on / on Fri Aug 9 13:57:53 2019 Proceed anyway? (y,N) y Discarding device blocks: done Creating filesystem with 262145 1k blocks and 65792 inodes Filesystem UUID: 14219ea9-3584-4d61-adb4-8370dd73b5cc Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729, 204801, 221185 Allocating group Allocating group tables: done Writing inode tables: done Writing inode tables: done superblocks and filesystem accounting information: done root@OpenWrt:/# mkfs.ext2 /dev/mmcblk0p6 mke2fs 1.44.1 (24-Mar-2018) /dev/mmcblk0p6 contains a ext2 file system last mounted on /nvram on Fri Aug 9 13:59:29 2019 Proceed anyway? (y,N) y Discarding device blocks: done Writing superblocks and filesystem accounting information: done root@OpenWrt:/# mkfs.ext2 /dev/mmcblk0p6 mke2fs 1.44.1 (24-Mar-2018) /dev/mmcblk0p6 contains a ext2 file system Creating filesystem with 65536 1k blocks and 16384 inodes Filesystem UUID: last mounteddf6ac518-0a1a-432a-a921-d6958307340a Superblock backups stored on /nvram on Fri Augblocks: 9 13:59:29 2019 Proceed anyway? (y,N) y Discarding device blocks 8193, 24577, 40961, 57345 Allocating group tables: done CreatingWriting filesysteminode withtables: 65536done 1k blocks and 16384 inodes Filesystem UUID: df6ac518-0a1a-432a-a921-d6958307340a Superblock backups stored on blocks: 8193, 24577, 40961, 57345 Allocating group tables: done Writing superblocks and filesystem accounting Writing inode tables: done information: done root@OpenWrt:/# mkfs.ext2 /dev/mmcblk0p7 mke2fs 1.44.1 (24-Mar-2018) Discarding device blocks: done Creating filesystem with 131072 4k blocks and 32768 inodes Filesystem UUID: 543d4394-4a94-457a-b487-9c3595d3131e Superblock backups stored on blocks: 32768, 98304 Allocating group tables: done Writing inode tables: done Writing superblocks and filesystem accounting information: done |
...
Code Block | ||
---|---|---|
| ||
$ scp <yocto_workspace>build-turris/tmp/deploy/images/turris/zImage root@192.168.1.1:/tmp $ scp <yocto_workspace>build-turris/tmp/deploy/images/turris/{"zImage-",""}armada-385-turris-omnia.dtb root@192.168.1.1:/tmp/armada-385-turris-omnia.dtb $ scp <yocto_workspace>build-turris/tmp/deploy/images/turris/rdkb-generic-broadband-image_default_<image-timestamp>.rootfs.tar.gz root@192.168.1.1:/tmp/ |
...
Now, Turris Omnia will boot with Yocto based RDKB image.
RDK firmware upgrade with XConf server: Firmware upgrade through XCONF server - Turris-Omnia - User Manual - 2020 - M6
Copy zImage, dtb file and rootfs files(not *dbg* rootfs file) from PC or VM to /tmp/ directory of Turris Omnia which is currently running RDK Image.
...
Code Block | ||
---|---|---|
| ||
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/ |
...
Code Block | ||
---|---|---|
| ||
sh /lib/rdk/TurrisFwUpgrade.sh |
Go back to OpenWrt OS (please refer Fallback to OpenWrt OS section above below ).
Have Ethernet connection from your PC to LAN port of Turris Omnia.
Keep rootfs(rdkb-generic-broadband-image_default_*.rootfs.tar.gz) and , zImage(zImage--4.14.22-r0-turris-*.bin) files and dtb file in home directory of your PC.
...
Code Block | ||
---|---|---|
| ||
MYPC_IP=192.168.1.83
USER_NAME=manigandan
scp $USER_NAME@$MYPC_IP:*$1* /tmp/
mount /dev/mmcblk0p3 /mnt
mv /tmp/zImage-* /mnt/zImage
mv /tmp/armada-385-turris-omnia.dtb /mnt/
umount /mnt
mount /dev/mmcblk0p5 /mnt
rm -rf /mnt/*
tar -xzf /tmp/rdkb-* -C /mnt/
umount /mnt
reboot |
...
Turris Omnia will now run upgraded version of Yocto based RDK image.
To fallback to openwrt OS, enter following u-boot commands.
...