<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.wilsoz.com/index.php?action=history&amp;feed=atom&amp;title=Postmortems%2F2026-06-28_HA_Blue_Bootswitch</id>
	<title>Postmortems/2026-06-28 HA Blue Bootswitch - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.wilsoz.com/index.php?action=history&amp;feed=atom&amp;title=Postmortems%2F2026-06-28_HA_Blue_Bootswitch"/>
	<link rel="alternate" type="text/html" href="https://wiki.wilsoz.com/index.php?title=Postmortems/2026-06-28_HA_Blue_Bootswitch&amp;action=history"/>
	<updated>2026-07-06T07:02:06Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.wilsoz.com/index.php?title=Postmortems/2026-06-28_HA_Blue_Bootswitch&amp;diff=23&amp;oldid=prev</id>
		<title>Wikibot: Migrated from postmortems/2026-06-28-ha-blue-bootswitch.md</title>
		<link rel="alternate" type="text/html" href="https://wiki.wilsoz.com/index.php?title=Postmortems/2026-06-28_HA_Blue_Bootswitch&amp;diff=23&amp;oldid=prev"/>
		<updated>2026-07-05T18:17:37Z</updated>

		<summary type="html">&lt;p&gt;Migrated from postmortems/2026-06-28-ha-blue-bootswitch.md&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;As of: 2026-07-05 — migrated from `postmortems/2026-06-28-ha-blue-bootswitch.md`&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
= Postmortem — Home Assistant &amp;quot;offline / won&amp;#039;t get an IP&amp;quot; (2026-06-28) =&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
The Home Assistant box (shante, &amp;lt;code&amp;gt;192.168.0.140&amp;lt;/code&amp;gt;) had been powered off and boxed for&lt;br /&gt;
~weeks. On power-up it would not appear on the network — no DHCP lease, unreachable on&lt;br /&gt;
LAN and Tailscale. Root cause was &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; a network or HAOS-corruption problem: the&lt;br /&gt;
device&amp;#039;s physical &amp;#039;&amp;#039;&amp;#039;boot-mode toggle switch&amp;#039;&amp;#039;&amp;#039; had been bumped out of the eMMC position,&lt;br /&gt;
so the board booted into its &amp;#039;&amp;#039;&amp;#039;Petitboot recovery shell&amp;#039;&amp;#039;&amp;#039; instead of loading Home&lt;br /&gt;
Assistant OS off the eMMC. HAOS never started, so nothing ever came up on the network.&lt;br /&gt;
Flipping the switch back and rebooting restored normal boot.&lt;br /&gt;
&lt;br /&gt;
== Device identification (corrected) ==&lt;br /&gt;
The unit is a &amp;#039;&amp;#039;&amp;#039;Home Assistant Blue = ODROID-N2+&amp;#039;&amp;#039;&amp;#039;, not a Green/Yellow as the docs had&lt;br /&gt;
it labeled. Identifying tells:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Petitboot&amp;#039;&amp;#039;&amp;#039; bootloader screen (Green uses Rockchip/U-Boot; Yellow uses Pi CM4 — neither uses Petitboot).&lt;br /&gt;
* A physical &amp;#039;&amp;#039;&amp;#039;boot-select toggle switch&amp;#039;&amp;#039;&amp;#039; on the front (eMMC ↔ SPI) — an ODROID-N2+ hardware feature.&lt;br /&gt;
* Blue translucent case; red (power) + blue (activity) LEDs visible through the sliding door.&lt;br /&gt;
* HDMI + single Ethernet on the back.&lt;br /&gt;
&lt;br /&gt;
Docs updated: &amp;lt;code&amp;gt;INFRASTRUCTURE_INVENTORY.md&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;HOME_ASSISTANT_INTEGRATION.md&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;VLAN-Setup-Guide.md&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
* Device boxed unpowered for ~weeks (Tailscale &amp;quot;last seen 26d ago&amp;quot; ≈ 2026-06-02).&lt;br /&gt;
* Powered on; never got an IP. LAN ping/UI dead; Tailscale peer &amp;lt;code&amp;gt;offline&amp;lt;/code&amp;gt;.&lt;br /&gt;
* 8-min network poll for &amp;lt;code&amp;gt;192.168.0.140&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;homeassistant.local&amp;lt;/code&amp;gt; → nothing.&lt;br /&gt;
* HDMI attached → &amp;#039;&amp;#039;&amp;#039;Petitboot&amp;#039;&amp;#039;&amp;#039; menu + &amp;quot;Failed to launch Petitboot, dropping to a shell&amp;quot;, &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; busybox prompt.&lt;br /&gt;
* Recognized Petitboot ⇒ bootloader couldn&amp;#039;t find a bootable OS ⇒ boot/storage issue, not network.&lt;br /&gt;
* User flipped the front toggle switch and rebooted → got a login prompt; reconnected to LAN.&lt;br /&gt;
* HA Core first-boot was slow (&amp;quot;Loading data&amp;quot;, login &amp;quot;something went wrong&amp;quot; while backend caught up). Settled after a few minutes.&lt;br /&gt;
* Confirmed back: Tailscale peer &amp;lt;code&amp;gt;active&amp;lt;/code&amp;gt;, direct &amp;lt;code&amp;gt;192.168.0.140:36309&amp;lt;/code&amp;gt;, real rx traffic.&lt;br /&gt;
&lt;br /&gt;
== Root cause ==&lt;br /&gt;
Physical boot-mode toggle was in the SPI/recovery position (likely bumped while boxed),&lt;br /&gt;
so the ODROID-N2+ ran Petitboot&amp;#039;s recovery shell instead of chain-loading HAOS from eMMC.&lt;br /&gt;
&lt;br /&gt;
== Why login &amp;quot;spun then failed&amp;quot; right after recovery ==&lt;br /&gt;
Not an auth bug. A box stored unpowered for weeks does a slow first start — recorder/DB&lt;br /&gt;
catch-up, NTP clock resync, integration re-init. The frontend (port 8123) answers before&lt;br /&gt;
Core is ready, so login spins / &amp;quot;something went wrong&amp;quot; until the backend finishes. Fix:&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wait 5–15 min, don&amp;#039;t reboot mid-startup.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Diagnostics that worked ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Is it on the network at all?&lt;br /&gt;
ping -c2 192.168.0.140&lt;br /&gt;
curl -sS -m8 -o /dev/null -w &amp;quot;%{http_code}\n&amp;quot; http://192.168.0.140:8123/&lt;br /&gt;
&lt;br /&gt;
# Is Tailscale seeing it? (&amp;quot;offline, last seen Nd ago&amp;quot; = box truly down, not just LAN/DHCP)&lt;br /&gt;
tailscale status | grep -i homeassistant&lt;br /&gt;
&lt;br /&gt;
# At the Petitboot # shell, check whether OS storage is even detected:&lt;br /&gt;
cat /proc/partitions&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prevention / follow-ups ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Leave the front toggle switch in the eMMC (HAOS-boot) position.&amp;#039;&amp;#039;&amp;#039; If the device ever&lt;br /&gt;
  shows the Petitboot screen again, that switch is the first thing to check.&lt;br /&gt;
* If it&amp;#039;s stored again, label/tape the switch position so it isn&amp;#039;t bumped.&lt;br /&gt;
* Consider noting the correct switch orientation physically on the case.&lt;/div&gt;</summary>
		<author><name>Wikibot</name></author>
	</entry>
</feed>