OpenWrt upstreaming update

Hi all,


Screenshot above: LuCI status page on Ten64 running from an OpenWrt.org build

I am delighted to announce that OpenWrt now has support for the Ten64 as part of it’s new armsr (Arm SystemReady) target.

armsr takes over from the previous armvirt target and adds support for Arm systems that support booting EFI images. These include Ten64, Arm based servers (like AWS Graviton) virtual machines like VMWare Fusion on macOS and various other devices from embedded to servers.
SystemReady is the name of Arm’s standards and certification program which we are working on getting for the Ten64 as well.

By being part of a industry standard, we will be able to use enhancements like secure boot in the future without ‘reinventing the wheel’.

I have actually had some form of this port around for several years, but there has been quite an increase in interest from others in the ecosystem in the last 6-12 months.

Sorry it’s taken so long, but I believe the outcome achieved is better for everyone.

When the next generation of Arm SoC’s arrives over the next few years, I expect they will use this target instead of individual ones (such as imx, layerscape etc.).

What about OpenWrt 23.05?: The armsr change has only been applied to the OpenWrt main (master) branch, but we are working on getting it into the upcoming 23.05 release.
23.05 uses kernel 5.15 while the main branch is now on 6.1.

NAND users:
Update: as of 2023-06-27, snapshot builds for Ten64 NAND are available, see the OpenWrt firmware selector.

The armsr target is only for disk boot, but a separate pull request has been opened to add Ten64-NAND to the layerscape target. These images will be compatible with the images built by Traverse.
The NAND builds on archive.traverse.com.au will continue to be built on the (now) armsr target for efficiency reasons. You will still be able to move between our builds and OpenWrt.org ones.
There are enhancements for NAND boot planned in upcoming firmware releases, so it’s not going anywhere.

Upgrades from our 22.03 builds are not currently supported!
The sysupgrade mechanism has been changed slightly the upstream version. If you upgrade, it will not correctly update the root= argument in the new GRUB configuration. I will see if I can backport the “new” upgrade support to the 22.03 builds.
There are also issues with the different / partition sizes between Traverse and OpenWrt.org builds. It is on the TODO list to deal with this more gracefully.

Where to download the OpenWrt builds
Ten64 (disk boot) support falls under the armsr/armv8 target (Arm SystemReady => 64 bit (armv8) machines in the OpenWrt buildroot).

You can download them from https://downloads.openwrt.org/snapshots/targets/armsr/armv8/.

Keep in mind that OpenWrt.org builds (currently) don’t have LuCI or WiFi drivers installed by default. For example, you will need to run opkg update && opkg install luci.
Attended Sysupgrade does not work just yet, I am looking into it.

Acknowledgements:
Many thanks to Anton Antonov at Arm for his assistance, Petr Štetiar (ynezz) for reviewing and merging these changes, users of various other Arm boards for testing and to all of you for your support.

4 Likes

Great work :clap::clap:.
Looking very much forward to attended sysupgrade, it makes upgrades so easy.

Some updates:

Attendedsysupgrade for armsr is pending the images being renamed in the same style as x86 (combined-efi)

Note that some features from our OpenWrt builds are not available on mainline:

  • Fan controller (we can provide an ipk for releases like 23.05)
  • SFP information in LuCI
  • DPAA2 crypto accelerator modules (will send changes to OpenWrt next month)
1 Like

OpenWrt 23.05-rc4 has been released, this now includes both the kernel and userspace bits to support virtualization/KVM and various kernel config adjustments to align with the mainline kernel defconfig.

On the main branch, Attended Sysupgrade was fixed in the last few days. This fix has not made it into 23.05 yet.

If you want to jump across to the 23.05 release on disk (not NAND), you will need to copy your config in one of two ways:

  1. Download the config backup from LuCI or from the sysupgrade -b command. Restore after upgrade
    or
  2. After upgrade, mount the /boot partition (where the sysupgrade.tgz was stored prior to upstream) and copy it into root:
mount /dev/nvme0n1p1 /boot
cp /boot/sysupgrade.tgz /
/sbin/reboot

After reboot, the old config will be migrated in place.

The sensor drivers (including the fan controller) will not be upstream for a while yet. A snippet has been added to the manual describing how they can be compiled for an OpenWrt release using the SDK

The Traverse OpenWrt builds will be updated in the coming days.

With OpenWrt Firmware Selector, are there any additional packages I should be telling it to include?

There are two that should be added when using the firmware selector: luci and kmod-fs-vfat

(there is a fix pending to ensure vfat is added for 23.05.x, it only affects the ImageBuilder/firmware selector)

Any drivers (and support programs like wpad) for WiFi or other add-on hardware also need to be added manually.