<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>It's Pi all the way down... - upgrades</title><link href="https://waldorf.waveform.org.uk/" rel="alternate"></link><link href="https://waldorf.waveform.org.uk/feeds/upgrades.atom.xml" rel="self"></link><id>https://waldorf.waveform.org.uk/</id><updated>2026-06-15T23:36:17+01:00</updated><entry><title>Resolute, as in stubborn</title><link href="https://waldorf.waveform.org.uk/2026/resolute-as-in-stubborn.html" rel="alternate"></link><published>2026-06-14T00:00:00+01:00</published><updated>2026-06-15T23:36:17+01:00</updated><author><name>Dave Jones</name></author><id>tag:waldorf.waveform.org.uk,2026-06-14:/2026/resolute-as-in-stubborn.html</id><summary type="html">&lt;p class="first last"&gt;How to not mess up your noble (24.04) to resolute (26.04)&amp;nbsp;upgrade&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Well, dear reader, another couple of years have passed and it&amp;#8217;s time for
another &lt;span class="caps"&gt;LTS&lt;/span&gt; release. These are always somewhat nerve-wracking exercises given
they&amp;#8217;re the choice that something like 99% of our users stick to, so we really
want things to &lt;em&gt;go smooth&lt;/em&gt;.&lt;/p&gt;
&lt;div class="section" id="it-never-goes-smooth"&gt;
&lt;h2&gt;&lt;span class="dquo"&gt;&amp;#8220;&lt;/span&gt;It never goes&amp;nbsp;smooth&amp;#8221;&lt;/h2&gt;
&lt;p&gt;Leaving aside fresh installs, which seem to be &amp;#8220;okay&amp;#8221; at the moment, upgrades
are the subject of this story. At the time of writing, there is one &lt;em&gt;supported&lt;/em&gt;
upgrade path and a couple of &lt;em&gt;definitely not supported&lt;/em&gt;&amp;nbsp;ones.&lt;/p&gt;
&lt;p&gt;The supported path is to use ubuntu-release-upgrader by running
&lt;tt class="docutils literal"&gt;sudo &lt;span class="pre"&gt;do-release-upgrade&lt;/span&gt;&lt;/tt&gt;. This gates upgrades on a number of&amp;nbsp;things:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Firstly, it will only offer those upgrades configured by
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;/etc/update-manager/release-upgrades&lt;/span&gt;&lt;/tt&gt;. If this contains &lt;tt class="docutils literal"&gt;Prompt=normal&lt;/tt&gt;
then upgrades for all releases, including interims like questing (25.10) will
be considered. But for most people this contains &lt;tt class="docutils literal"&gt;Prompt=lts&lt;/tt&gt;, in which
case only upgrades from &lt;span class="caps"&gt;LTS&lt;/span&gt; to &lt;span class="caps"&gt;LTS&lt;/span&gt; will be&amp;nbsp;considered.&lt;/li&gt;
&lt;li&gt;For &lt;span class="caps"&gt;LTS&lt;/span&gt; to &lt;span class="caps"&gt;LTS&lt;/span&gt; upgrades, these are only offered once the &amp;#8220;point one&amp;#8221; release
comes out, &lt;em&gt;not&lt;/em&gt; at initial release. In the case of resolute (26.04), this
means upgrades for &lt;span class="caps"&gt;LTS&lt;/span&gt; users will only be officially switched on after August
27th (the current &lt;a class="reference external" href="https://documentation.ubuntu.com/release-notes/26.04/schedule/"&gt;planned release date&lt;/a&gt; for&amp;nbsp;26.04.1).&lt;/li&gt;
&lt;li&gt;Secondly, &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;do-release-upgrade&lt;/span&gt;&lt;/tt&gt; gates on all updates for the current release
being applied; it won&amp;#8217;t proceed until all are installed and the latest kernel
for that release is active (i.e. if you have a pending kernel upgrade you&amp;#8217;ll
need to reboot before it will&amp;nbsp;proceed).&lt;/li&gt;
&lt;li&gt;Thirdly, it will not permit releases to be &amp;#8220;skipped&amp;#8221; during an upgrade. For
example, if &lt;tt class="docutils literal"&gt;Prompt=normal&lt;/tt&gt; and your current install is jammy (22.04), it
will ensure you upgrade to noble (24.04) first, then to questing (25.10), and
only then to resolute (26.04). You cannot skip straight from jammy to&amp;nbsp;resolute.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That&amp;#8217;s the &lt;em&gt;supported&lt;/em&gt; path… What about the &lt;em&gt;unsupported&lt;/em&gt;&amp;nbsp;routes?&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;First, there&amp;#8217;s the &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;--devel&lt;/span&gt;&lt;/tt&gt; option to &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;do-release-upgrade&lt;/span&gt;&lt;/tt&gt;. This is
&lt;em&gt;intended&lt;/em&gt; for testing upgrades to the &amp;#8220;development&amp;#8221; release (currently
stonking, 26.10) prior to its release. However, if &lt;tt class="docutils literal"&gt;Prompt=lts&lt;/tt&gt; on your
system, then resolute &lt;em&gt;appears&lt;/em&gt; to be the development release (from the point
of view of the upgrader), because it&amp;#8217;s the next &amp;#8220;unreleased&amp;#8221; &lt;span class="caps"&gt;LTS&lt;/span&gt; (unreleased
because it&amp;#8217;s prior to the &amp;#8220;point one&amp;#8221;&amp;nbsp;release).&lt;/li&gt;
&lt;li&gt;Second, there&amp;#8217;s the good ol&amp;#8217; dist-upgrade route: re-write all your apt
sources to point to the new release (e.g. &lt;tt class="docutils literal"&gt;sed &lt;span class="pre"&gt;-i&lt;/span&gt; &lt;span class="pre"&gt;-e&lt;/span&gt; 's/noble/resolute/g'
&lt;span class="pre"&gt;/etc/apt/sources.list.d/*.sources&lt;/span&gt;&lt;/tt&gt;) then run &lt;tt class="docutils literal"&gt;sudo apt update; sudo apt
&lt;span class="pre"&gt;dist-upgrade&lt;/span&gt;&lt;/tt&gt;, and hope for the&amp;nbsp;best!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;#8217;ll stress these are &lt;em&gt;unsupported&lt;/em&gt; routes and you shouldn&amp;#8217;t use them. Of
course, that&amp;#8217;s not stopping anyone… &lt;a class="footnote-reference" href="#guilty" id="footnote-reference-1"&gt;[1]&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Unfortunately, due to some of the changes that I introduced in resolute (and
one big mistake), if you try the unsupported route on a Raspberry Pi you&amp;#8217;re
&lt;em&gt;very&lt;/em&gt; likely to run into some trouble. This post explains some of the issues
you&amp;#8217;re going to run into &lt;a class="footnote-reference" href="#hindsight1" id="footnote-reference-2"&gt;[3]&lt;/a&gt; and how to avoid them &lt;a class="footnote-reference" href="#hindsight2" id="footnote-reference-3"&gt;[4]&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="she-makes-things-not-be-smooth"&gt;
&lt;h2&gt;&lt;span class="dquo"&gt;&amp;#8220;&lt;/span&gt;She makes things not be&amp;nbsp;smooth&amp;#8221;&lt;/h2&gt;
&lt;p&gt;There are four problems (at least) occurring more or less simultaneously at
the&amp;nbsp;moment.&lt;/p&gt;
&lt;div class="section" id="out-of-date-eeprom"&gt;
&lt;h3&gt;Out of date &lt;span class="caps"&gt;EEPROM&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a class="reference external" href="https://bugs.launchpad.net/ubuntu/+source/flash-kernel/+bug/2130734"&gt;&lt;span class="caps"&gt;LP&lt;/span&gt;: #2130734&lt;/a&gt;, &lt;a class="reference external" href="https://bugs.launchpad.net/ubuntu/+source/flash-kernel/+bug/2137611"&gt;&lt;span class="caps"&gt;LP&lt;/span&gt;:&amp;nbsp;#2137611&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You&amp;#8217;re on a Pi 4 or a Pi 5, and you didn&amp;#8217;t read the release notes before
dist-upgrading &lt;a class="footnote-reference" href="#tuttut" id="footnote-reference-4"&gt;[5]&lt;/a&gt;, particularly the part about having an up to date
&lt;span class="caps"&gt;EEPROM&lt;/span&gt; (specifically one later than 2022-11-25 on the Pi 4, or 2025-02-11 on
the Pi 5). Now you&amp;#8217;ve rebooted and found the bootloader can&amp;#8217;t (or won&amp;#8217;t) load a
Linux kernel at version&amp;nbsp;7.&lt;/p&gt;
&lt;p&gt;This is partly my fault for not getting the updated &lt;span class="caps"&gt;EEPROM&lt;/span&gt; into noble before
resolute&amp;#8217;s release. In mitigation, it &lt;em&gt;is&lt;/em&gt; in questing, so if you were
following the official upgrade route, you wouldn&amp;#8217;t run into this. The updated
&lt;span class="caps"&gt;EEPROM&lt;/span&gt; package has now been back-ported to noble, and the official release
upgrader was bumped &lt;a class="footnote-reference" href="#beforeafter" id="footnote-reference-5"&gt;[7]&lt;/a&gt; to check the &lt;span class="caps"&gt;EEPROM&lt;/span&gt; level and refuse to
proceed unless it&amp;#8217;s up to&amp;nbsp;date.&lt;/p&gt;
&lt;p&gt;Still, if you&amp;#8217;ve dist-upgraded and now your card won&amp;#8217;t boot at all (because
you&amp;#8217;ve got this problem &lt;em&gt;and&lt;/em&gt; the next one), flash another card with some
reasonably up to date Ubuntu (anything back to noble should now work), or
RaspiOS. Boot it, run through the typical upgrades, then &lt;tt class="docutils literal"&gt;sudo
&lt;span class="pre"&gt;rpi-eeprom-update&lt;/span&gt; &lt;span class="pre"&gt;-a&lt;/span&gt;&lt;/tt&gt; and reboot. Afterwards, re-run &lt;tt class="docutils literal"&gt;sudo
&lt;span class="pre"&gt;rpi-eeprom-update&lt;/span&gt;&lt;/tt&gt; to verify the &lt;span class="caps"&gt;EEPROM&lt;/span&gt; is now up to date, and you should find
your Ubuntu install works&amp;nbsp;too.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="half-complete-dist-upgrade"&gt;
&lt;h3&gt;Half-complete&amp;nbsp;dist-upgrade&lt;/h3&gt;
&lt;p&gt;&lt;a class="reference external" href="https://bugs.launchpad.net/ubuntu/+source/flash-kernel/+bug/2151216"&gt;&lt;span class="caps"&gt;LP&lt;/span&gt;: #2151216&lt;/a&gt; (flash-kernel&amp;nbsp;task)&lt;/p&gt;
&lt;p&gt;Your dist-upgrade didn&amp;#8217;t quite upgrade &lt;em&gt;everything&lt;/em&gt;. In particular, it didn&amp;#8217;t
upgrade the meta-package (&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;ubuntu-server-raspi&lt;/span&gt;&lt;/tt&gt; or &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;ubuntu-desktop-raspi&lt;/span&gt;&lt;/tt&gt;
depending), but &lt;em&gt;did&lt;/em&gt; upgrade the &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;flash-kernel&lt;/span&gt;&lt;/tt&gt; package. Unfortunately, the
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;flash-kernel&lt;/span&gt;&lt;/tt&gt; package in resolute doesn&amp;#8217;t know anything about the Pi and now
apt is crashing out every time something tries to run &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;flash-kernel&lt;/span&gt;&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;re in this situation you&amp;#8217;ll get an error every time apt tries to
call &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;flash-kernel&lt;/span&gt;&lt;/tt&gt; because the version in resolute knows nothing about the
Pi (specifically the error will be something like &lt;tt class="docutils literal"&gt;Unsupported platform
'Raspberry Pi 4 Model B Rev 1.2'&lt;/tt&gt;, substitute your model of Pi&amp;nbsp;here).&lt;/p&gt;
&lt;p&gt;This also doesn&amp;#8217;t occur via the official route because ubuntu-release-upgrader
ensures that meta-packages are in the upgrade set but ultimately this is my
fault for forgetting a &amp;#8220;Breaks&amp;#8221; clause in &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;flash-kernel&lt;/span&gt;&lt;/tt&gt;. That&amp;#8217;s currently
being dealt with (but is currently waiting on another &lt;span class="caps"&gt;SRU&lt;/span&gt; to land before I
upload this&amp;nbsp;fix).&lt;/p&gt;
&lt;p&gt;The workaround here is to &lt;tt class="docutils literal"&gt;sudo apt install &lt;span class="pre"&gt;piboot-try&lt;/span&gt;&lt;/tt&gt;, and accept that it
will remove &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;flash-kernel&lt;/span&gt;&lt;/tt&gt; (in this case the &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;piboot-try&lt;/span&gt;&lt;/tt&gt; package will
provide its own stripped down version of &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;flash-kernel&lt;/span&gt;&lt;/tt&gt; that &lt;em&gt;only&lt;/em&gt; knows
about the Pi). After this you may need to &lt;tt class="docutils literal"&gt;sudo apt &lt;span class="pre"&gt;-f&lt;/span&gt; install&lt;/tt&gt; to &amp;#8220;fix&amp;#8221; any
pending kernel&amp;nbsp;updates.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="failure-to-upgrade-with-armhf-as-foreign-arch"&gt;
&lt;h3&gt;Failure to upgrade with armhf as foreign&amp;nbsp;arch&lt;/h3&gt;
&lt;p&gt;&lt;a class="reference external" href="https://bugs.launchpad.net/ubuntu/+source/dpkg/+bug/2154822"&gt;&lt;span class="caps"&gt;LP&lt;/span&gt;:&amp;nbsp;#2154822&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This one is a consequence of the move of the arm64 packages from
&lt;tt class="docutils literal"&gt;ports.ubuntu.com&lt;/tt&gt; to &lt;tt class="docutils literal"&gt;archive.ubuntu.com&lt;/tt&gt;. The default source
configuration for apt in resolute looks something like&amp;nbsp;this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span id="line-1"&gt;&lt;span class="k"&gt;Types&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;deb deb-src&lt;/span&gt;
&lt;/span&gt;&lt;span id="line-2"&gt;&lt;span class="hll"&gt;&lt;span class="k"&gt;URIs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://archive.ubuntu.com/ubuntu&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span id="line-3"&gt;&lt;span class="k"&gt;Suites&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;resolute resolute-updates resolute-backports&lt;/span&gt;
&lt;/span&gt;&lt;span id="line-4"&gt;&lt;span class="k"&gt;Components&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;main restricted universe multiverse&lt;/span&gt;
&lt;/span&gt;&lt;span id="line-5"&gt;&lt;span class="k"&gt;Signed-By&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/usr/share/keyrings/ubuntu-archive-keyring.gpg
&lt;/span&gt;&lt;span id="line-6"&gt;
&lt;/span&gt;&lt;span id="line-7"&gt;&lt;span class="k"&gt;Types&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;deb deb-src&lt;/span&gt;
&lt;/span&gt;&lt;span id="line-8"&gt;&lt;span class="hll"&gt;&lt;span class="k"&gt;URIs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://security.ubuntu.com/ubuntu&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span id="line-9"&gt;&lt;span class="k"&gt;Suites&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;resolute-security&lt;/span&gt;
&lt;/span&gt;&lt;span id="line-10"&gt;&lt;span class="k"&gt;Components&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;main restricted universe multiverse&lt;/span&gt;
&lt;/span&gt;&lt;span id="line-11"&gt;&lt;span class="k"&gt;Signed-By&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/usr/share/keyrings/ubuntu-archive-keyring.gpg
&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Things to&amp;nbsp;note:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Whereas previously the &lt;span class="caps"&gt;URI&lt;/span&gt; would be &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;http://ports.ubuntu.com/ubuntu-ports&lt;/span&gt;&lt;/tt&gt;
it&amp;#8217;s now &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;http://archive.ubuntu.com/ubuntu&lt;/span&gt;&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;There&amp;#8217;s no &lt;tt class="docutils literal"&gt;Architecture&lt;/tt&gt; limit on these stanzas; they&amp;#8217;ll attempt to pick
up whatever architectures &lt;tt class="docutils literal"&gt;dpkg&lt;/tt&gt; is configured to&amp;nbsp;use&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you&amp;#8217;re on noble, and you&amp;#8217;ve added armhf as a foreign architecture using
&lt;tt class="docutils literal"&gt;sudo dpkg &lt;span class="pre"&gt;--add-architecture&lt;/span&gt; armhf&lt;/tt&gt;, which &lt;em&gt;is&lt;/em&gt; a supported configuration,
you&amp;#8217;ll now encounter an error if you try and upgrade to resolute. Actually,
you&amp;#8217;ll encounter a similar problem if you&amp;#8217;re on a fresh resolute install and
you try and add armhf as an architecture. The architecture is registered with
dpkg, but now apt will try and download armhf package information from
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;http://archive.ubuntu.com&lt;/span&gt;&lt;/tt&gt;. Unfortunately, while arm64 packages moved
there, armhf ones did not; they&amp;#8217;re still on &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;http://ports.ubuntu.com&lt;/span&gt;&lt;/tt&gt;. So
apt reports an error and (in the upgrade case), &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;ubuntu-release-upgrader&lt;/span&gt;&lt;/tt&gt;
simply&amp;nbsp;quits.&lt;/p&gt;
&lt;p&gt;In the dist-upgrade case, I&amp;#8217;m not sure what happens (haven&amp;#8217;t tested this yet
because that&amp;#8217;s not a supported route anyway &amp;#8212; any fix will be going into
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;ubuntu-release-upgrader&lt;/span&gt;&lt;/tt&gt;).&lt;/p&gt;
&lt;p&gt;The workaround for now (and what will probably be automatically done by the
release upgrader in the future) is to split the apt configuration. One file
(presumably the default configuration in &lt;tt class="docutils literal"&gt;ubuntu.sources&lt;/tt&gt;) contains a limit
for the primary architecture&amp;nbsp;(arm64):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span id="line-1"&gt;&lt;span class="k"&gt;Types&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;deb deb-src&lt;/span&gt;
&lt;/span&gt;&lt;span id="line-2"&gt;&lt;span class="hll"&gt;&lt;span class="k"&gt;Architectures&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;arm64&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span id="line-3"&gt;&lt;span class="k"&gt;URIs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://archive.ubuntu.com/ubuntu&lt;/span&gt;
&lt;/span&gt;&lt;span id="line-4"&gt;&lt;span class="k"&gt;Suites&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;resolute resolute-updates resolute-backports&lt;/span&gt;
&lt;/span&gt;&lt;span id="line-5"&gt;&lt;span class="k"&gt;Components&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;main restricted universe multiverse&lt;/span&gt;
&lt;/span&gt;&lt;span id="line-6"&gt;&lt;span class="k"&gt;Signed-By&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/usr/share/keyrings/ubuntu-archive-keyring.gpg
&lt;/span&gt;&lt;span id="line-7"&gt;
&lt;/span&gt;&lt;span id="line-8"&gt;&lt;span class="k"&gt;Types&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;deb deb-src&lt;/span&gt;
&lt;/span&gt;&lt;span id="line-9"&gt;&lt;span class="hll"&gt;&lt;span class="k"&gt;Architectures&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;arm64&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span id="line-10"&gt;&lt;span class="k"&gt;URIs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://security.ubuntu.com/ubuntu&lt;/span&gt;
&lt;/span&gt;&lt;span id="line-11"&gt;&lt;span class="k"&gt;Suites&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;resolute-security&lt;/span&gt;
&lt;/span&gt;&lt;span id="line-12"&gt;&lt;span class="k"&gt;Components&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;main restricted universe multiverse&lt;/span&gt;
&lt;/span&gt;&lt;span id="line-13"&gt;&lt;span class="k"&gt;Signed-By&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/usr/share/keyrings/ubuntu-archive-keyring.gpg
&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And a separate one is made for armhf, pointing at the older&amp;nbsp;address:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span id="line-1"&gt;&lt;span class="k"&gt;Types&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;deb deb-src&lt;/span&gt;
&lt;/span&gt;&lt;span id="line-2"&gt;&lt;span class="hll"&gt;&lt;span class="k"&gt;Architectures&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;armhf&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span id="line-3"&gt;&lt;span class="hll"&gt;&lt;span class="k"&gt;URIs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://ports.ubuntu.com/ubuntu-ports&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span id="line-4"&gt;&lt;span class="k"&gt;Suites&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;resolute resolute-updates resolute-backports&lt;/span&gt;
&lt;/span&gt;&lt;span id="line-5"&gt;&lt;span class="k"&gt;Components&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;main restricted universe multiverse&lt;/span&gt;
&lt;/span&gt;&lt;span id="line-6"&gt;&lt;span class="k"&gt;Signed-By&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/usr/share/keyrings/ubuntu-archive-keyring.gpg
&lt;/span&gt;&lt;span id="line-7"&gt;
&lt;/span&gt;&lt;span id="line-8"&gt;&lt;span class="k"&gt;Types&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;deb deb-src&lt;/span&gt;
&lt;/span&gt;&lt;span id="line-9"&gt;&lt;span class="hll"&gt;&lt;span class="k"&gt;Architectures&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;armhf&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span id="line-10"&gt;&lt;span class="hll"&gt;&lt;span class="k"&gt;URIs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://security.ubuntu.com/ubuntu&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span id="line-11"&gt;&lt;span class="k"&gt;Suites&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;resolute-security&lt;/span&gt;
&lt;/span&gt;&lt;span id="line-12"&gt;&lt;span class="k"&gt;Components&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;main restricted universe multiverse&lt;/span&gt;
&lt;/span&gt;&lt;span id="line-13"&gt;&lt;span class="k"&gt;Signed-By&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/usr/share/keyrings/ubuntu-archive-keyring.gpg
&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="failure-to-boot-latest-kernel-on-older-models"&gt;
&lt;h3&gt;Failure to boot latest kernel on older&amp;nbsp;models&lt;/h3&gt;
&lt;p&gt;&lt;a class="reference external" href="https://bugs.launchpad.net/ubuntu/+source/flash-kernel/+bug/2155094"&gt;&lt;span class="caps"&gt;LP&lt;/span&gt;: #2155094&lt;/a&gt;, &lt;a class="reference external" href="https://bugs.launchpad.net/ubuntu/+source/flash-kernel/+bug/2155659"&gt;&lt;span class="caps"&gt;LP&lt;/span&gt;:&amp;nbsp;#2155659&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is the issue that&amp;#8217;s particularly concerning me at the moment, and mostly
because I&amp;#8217;ve been unable to reliably reproduce it thus far. Several reports
(more than just the two bugs listed) have come in reporting that piboot-try has
fallen back and marked new boot assets &amp;#8220;bad&amp;#8221;. The preponderance of these
reports concern kernel 7.0 revision 1011, but I&amp;#8217;m still trying to corroborate
this is the specific revision concerned in a couple of&amp;nbsp;cases.&lt;/p&gt;
&lt;p&gt;On the plus side: nobody has complained of a non-booting system, so at least we
can say &amp;#8220;piboot-try is doing its job&amp;#8221;. On the downside, everyone&amp;#8217;s very
confused that they get a report complaining about bad boot assets on &lt;em&gt;every
single login&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;For the avoidance of doubt: this is intended, and not harmful. The piboot-try
implementation tries to be cautious in its implementation: it warns on every
login because firstly we can&amp;#8217;t assume you read all the output on every login
&lt;a class="footnote-reference" href="#idont" id="footnote-reference-6"&gt;[8]&lt;/a&gt;, and secondly having a login hook that &lt;em&gt;writes&lt;/em&gt; as well as reads (to
record that a warning has been presented) is generally a bad idea (assumes
every login user has a writable home directory, assumes there will be free
space to perform a write,&amp;nbsp;etc).&lt;/p&gt;
&lt;p&gt;Unfortunately at the moment, there is no &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;piboot-try&lt;/span&gt; &lt;span class="pre"&gt;--yes-i-know-stfu&lt;/span&gt;&lt;/tt&gt;
option to silence the warning. I&amp;#8217;ll stick it on my &lt;span class="caps"&gt;TODO&lt;/span&gt; list for the future,
but I&amp;#8217;m afraid it won&amp;#8217;t be a terribly high&amp;nbsp;priority.&lt;/p&gt;
&lt;p&gt;Still, at the moment the focus is coming up with a reliable reproducer for
this, and/or narrowing down all reports to a single kernel revision. After
that, it&amp;#8217;ll be on figuring out which component is actually responsible (my gut
feeling at the moment is this &lt;em&gt;may&lt;/em&gt; be a kernel&amp;nbsp;issue).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="why-does-it-never-go-smooth"&gt;
&lt;h2&gt;&lt;span class="dquo"&gt;&amp;#8220;&lt;/span&gt;Why does it never go&amp;nbsp;smooth?&amp;#8221;&lt;/h2&gt;
&lt;p&gt;I was planning a longer post on this, but for now this will have to do. If
there&amp;#8217;s one thing I&amp;#8217;ve gleaned from all this though: the documentation on
piboot-try, and the login messages it produces clearly need some&amp;nbsp;revision.&lt;/p&gt;
&lt;p&gt;It may be more useful to point people at an expanded man-page rather than
encourage everyone to go filing bugs (also I need to update the message to
point to the piboot-try package; flash-kernel is strictly wrong in resolute now
it&amp;#8217;s been split out). Also, the various switches like &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;--reset-new&lt;/span&gt;&lt;/tt&gt; appear to
have a lot of people confused. I should include some worked examples in the
man-page illustrating the scenarios each switch is intended for use&amp;nbsp;under.&lt;/p&gt;
&lt;table class="docutils footnote" frame="void" id="guilty" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#footnote-reference-1"&gt;[1]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Yes, I am also guilty of using these (in fact it&amp;#8217;s what I tend to
do at some point in a cycle when it&amp;#8217;s time to start testing the new
release). But &lt;em&gt;I know what I&amp;#8217;m doing&lt;/em&gt;. &lt;a class="footnote-reference" href="#no-really" id="footnote-reference-7"&gt;[2]&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table class="docutils footnote" frame="void" id="no-really" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#footnote-reference-7"&gt;[2]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Most of the time. Okay, some of the time. Well, now and then, I
guess.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table class="docutils footnote" frame="void" id="hindsight1" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#footnote-reference-2"&gt;[3]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Or have already&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table class="docutils footnote" frame="void" id="hindsight2" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#footnote-reference-3"&gt;[4]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Or fix your system now it&amp;#8217;s utterly borked&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table class="docutils footnote" frame="void" id="tuttut" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#footnote-reference-4"&gt;[5]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Tut tut! Repeat after me: the release notes no longer suck
&lt;a class="footnote-reference" href="#sphinx" id="footnote-reference-8"&gt;[6]&lt;/a&gt;; I shall read the release notes before upgrading in future&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table class="docutils footnote" frame="void" id="sphinx" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#footnote-reference-8"&gt;[6]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;No, really! Instead of a massive, unnavigable, unmanageable &lt;a class="reference external" href="https://discourse.ubuntu.com/t/ubuntu-24-04-lts-noble-numbat-release-notes/39890"&gt;post&lt;/a&gt;
in Discourse&amp;#8217;s horrible interface, they&amp;#8217;re now a &lt;a class="reference external" href="https://documentation.ubuntu.com/release-notes/26.04/#ubuntu-26-04-lts-release-notes"&gt;Sphinx document&lt;/a&gt;
with a &lt;em&gt;proper&lt;/em&gt; multi-level table of contents… and &lt;em&gt;search&lt;/em&gt;! The
organisation is a bit messy, but it&amp;#8217;s still a massive improvement&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table class="docutils footnote" frame="void" id="beforeafter" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#footnote-reference-5"&gt;[7]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Actually it was bumped a couple of times. The Pi 4 case was
done before release, but the Pi 5 case was just after because they have
different root causes. On the Pi 4 the recent &lt;span class="caps"&gt;EEPROM&lt;/span&gt; is required to run the
A/B boot system (so we picked that up back in questing). The Pi 5&amp;#8217;s EEPROMs
are all capable of A/B boot out of the box, &lt;em&gt;but&lt;/em&gt; on that platform the
earlier EEPROMs won&amp;#8217;t boot the 7.0 kernel. Unfortunately, that kernel landed
quite late in development so we didn&amp;#8217;t notice this issue until just after
release.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table class="docutils footnote" frame="void" id="idont" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#footnote-reference-6"&gt;[8]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;I certainly don&amp;#8217;t!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
</content><category term="misc"></category><category term="ubuntu"></category><category term="resolute"></category><category term="pi"></category><category term="upgrades"></category></entry></feed>