<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Runbooks on Sovol on mainline Klipper</title><link>https://sovol.lexfrei.dev/zero/runbooks/</link><description>Recent content in Runbooks on Sovol on mainline Klipper</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://sovol.lexfrei.dev/zero/runbooks/index.xml" rel="self" type="application/rss+xml"/><item><title>Over stock firmware</title><link>https://sovol.lexfrei.dev/zero/runbooks/over-stock/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/zero/runbooks/over-stock/</guid><description>&lt;h1 id="runbook--migrating-in-place-over-the-stock-firmware"&gt;Runbook — migrating in place over the stock firmware&lt;a class="anchor" href="#runbook--migrating-in-place-over-the-stock-firmware"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;The printer works and you migrate on top of it. The vendor OS stays, the application and MCU firmware move to upstream, and the OS is an optional last step. This is the incremental de-vendoring path.&lt;/p&gt;
&lt;p&gt;Each step below is a link into the component that does the work — this page is only the order.&lt;/p&gt;
&lt;h2 id="1-back-up-everything-first"&gt;1. Back up everything first&lt;a class="anchor" href="#1-back-up-everything-first"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Vendor stack rsync, an SWD dump of the toolhead, and ideally a full eMMC image. The backups are what make every later step reversible. → &lt;a href="https://sovol.lexfrei.dev/zero/os/recovery/#back-up-first-the-checklist#back-up-first-the-checklist"&gt;Recovery: back up first&lt;/a&gt;&lt;/p&gt;</description></item><item><title>With an eMMC reader</title><link>https://sovol.lexfrei.dev/zero/runbooks/emmc-reader/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/zero/runbooks/emmc-reader/</guid><description>&lt;h1 id="runbook--clean-slate-build-with-an-emmc-reader"&gt;Runbook — clean-slate build with an eMMC reader&lt;a class="anchor" href="#runbook--clean-slate-build-with-an-emmc-reader"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;The path a recovery or a fresh build actually takes: OS first, application on top, MCUs usually last — and often untouched, because &lt;a href="https://sovol.lexfrei.dev/concepts/"&gt;layer 2 survived whatever killed layer 3&lt;/a&gt;. This is the order verified end-to-end on the reference machine.&lt;/p&gt;
&lt;h2 id="1-inventory-your-backups"&gt;1. Inventory your backups&lt;a class="anchor" href="#1-inventory-your-backups"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Minimum viable: the config set (git repo or any copy) and the MCU state. Already-mainline MCUs need nothing here; vendor MCUs need the firmware steps below. A full eMMC image makes this a restore instead of a rebuild. → &lt;a href="https://sovol.lexfrei.dev/zero/os/recovery/"&gt;Recovery&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Recovery</title><link>https://sovol.lexfrei.dev/zero/runbooks/recovery/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/zero/runbooks/recovery/</guid><description>&lt;h1 id="runbook--recovering-a-machine-that-wont-come-up"&gt;Runbook — recovering a machine that won&amp;rsquo;t come up&lt;a class="anchor" href="#runbook--recovering-a-machine-that-wont-come-up"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Route by what actually failed. Because &lt;a href="https://sovol.lexfrei.dev/concepts/"&gt;layer 2 survives layer 3&lt;/a&gt;, most recoveries are narrower than they feel — a dead OS doesn&amp;rsquo;t touch the MCUs, and a bad app flash doesn&amp;rsquo;t touch the OS.&lt;/p&gt;
&lt;p&gt;The backup checklist and the detailed rollbacks live on &lt;a href="https://sovol.lexfrei.dev/zero/os/recovery/"&gt;the recovery page&lt;/a&gt;; this is the routing.&lt;/p&gt;
&lt;h2 id="the-os-wont-boot"&gt;The OS won&amp;rsquo;t boot&lt;a class="anchor" href="#the-os-wont-boot"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The MCUs are fine. Rebuild only the OS, then reconnect.&lt;/p&gt;</description></item></channel></rss>