<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>OS on Sovol on mainline Klipper</title><link>https://sovol.lexfrei.dev/zero/os/</link><description>Recent content in OS on Sovol on mainline Klipper</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://sovol.lexfrei.dev/zero/os/index.xml" rel="self" type="application/rss+xml"/><item><title>Easy install</title><link>https://sovol.lexfrei.dev/zero/os/quickstart/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/zero/os/quickstart/</guid><description>&lt;h1 id="easy-install--for-most-people"&gt;Easy install — for most people&lt;a class="anchor" href="#easy-install--for-most-people"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;The &lt;a href="https://sovol.lexfrei.dev/zero/os/clean-slate/"&gt;clean-slate page&lt;/a&gt; bakes everything into the image offline, by hand. You don&amp;rsquo;t have to. There&amp;rsquo;s a friendlier path: flash a base image, let it come up, and answer a short wizard over SSH — the same first-run experience as any Armbian board. No ext4 editing, no &lt;code&gt;debugfs&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Two facts make this easy on the Zero:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The board has a microSD slot, and the H616 boots SD before eMMC.&lt;/strong&gt; So you can run the whole thing from a microSD — no reader, no pulling the module, no risk to the stock eMMC. Leave the eMMC alone as a factory backup, or &lt;a href="https://sovol.lexfrei.dev/zero/os/in-place/"&gt;move the system onto it later&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The first SSH login runs Armbian&amp;rsquo;s friendly setup wizard&lt;/strong&gt; (&lt;code&gt;armbian-firstlogin&lt;/code&gt;): it makes you change the root password, creates your user, and asks locale + timezone — right there in the SSH session.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use the &lt;strong&gt;&lt;a href="https://github.com/lexfrei/sovobian/releases"&gt;Sovobian&lt;/a&gt;&lt;/strong&gt; image for all of these — it&amp;rsquo;s upstream Armbian CB1 with the 40 MHz eMMC overlay already baked, and it ships the 6.12.68 kernel where onboard Ethernet works out of the box. A plain BTT CB1 image drives the eMMC at 3× the validated clock (see &lt;a href="https://sovol.lexfrei.dev/zero/os/armbian/#what-almost-a-cb1-actually-means#what-almost-a-cb1-actually-means"&gt;the CB1 difference&lt;/a&gt;) — don&amp;rsquo;t use it.&lt;/p&gt;</description></item><item><title>Vanilla Armbian</title><link>https://sovol.lexfrei.dev/zero/os/armbian/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/zero/os/armbian/</guid><description>&lt;h1 id="vanilla-armbian-on-the-sovol-zero-board"&gt;Vanilla Armbian on the Sovol Zero board&lt;a class="anchor" href="#vanilla-armbian-on-the-sovol-zero-board"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;The Klipper migration leaves Sovol&amp;rsquo;s stock OS image untouched — Klipper lives in &lt;code&gt;/home/sovol&lt;/code&gt;, so swapping the Klipper layer never rewrites the rootfs or the bootloader. For a fully vendor-free machine the last layer is the OS on the eMMC. This is the harder, destructive step (it rewrites the whole boot device).&lt;/p&gt;
&lt;p&gt;This is a verified end-to-end recipe for &lt;strong&gt;vanilla Armbian on the stock 8 GB eMMC module&lt;/strong&gt; — no custom OS build, no replacement module. The original Armbian-on-Zero walkthrough is &lt;a href="https://github.com/asnajder/zero-config"&gt;asnajder/zero-config&lt;/a&gt;, which this builds on; where the two disagree (most notably on the 8 GB module), the difference is explained below.&lt;/p&gt;</description></item><item><title>Clean-slate (eMMC reader)</title><link>https://sovol.lexfrei.dev/zero/os/clean-slate/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/zero/os/clean-slate/</guid><description>&lt;h1 id="clean-slate-install-with-an-emmc-reader"&gt;Clean-slate install with an eMMC reader&lt;a class="anchor" href="#clean-slate-install-with-an-emmc-reader"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;The cleanest OS path: pull the eMMC module, flash it offline in a USB reader, bake in everything first boot needs, and power up a configured machine. This is the exact sequence used to (re)build the reference machine — twice — so every step has survived contact with reality.&lt;/p&gt;
&lt;p&gt;Prerequisites: the eMMC module in a USB reader, a Linux machine or VM for the offline edits (macOS cannot write ext4 — see the offline-edit note below), and the MCUs already on mainline Katapult + Klipper (see &lt;a href="https://sovol.lexfrei.dev/zero/firmware/mcu-migration/"&gt;MCU migration&lt;/a&gt;). If the MCUs ran mainline before, they still do — &lt;a href="https://sovol.lexfrei.dev/concepts/"&gt;layer 2 survives layer 3&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>In place, no eMMC reader</title><link>https://sovol.lexfrei.dev/zero/os/in-place/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/zero/os/in-place/</guid><description>&lt;h1 id="reprovisioning-the-os-without-an-emmc-reader"&gt;Reprovisioning the OS without an eMMC reader&lt;a class="anchor" href="#reprovisioning-the-os-without-an-emmc-reader"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;No reader, and you don&amp;rsquo;t want to pull the module? You can put a fresh OS on the eMMC from the running board. The trick is the microSD slot: the H616 boots SD before eMMC, so you boot a fresh image from a card and clone it onto the eMMC from there.&lt;/p&gt;
&lt;p&gt;There is no shortcut over USB — the board exposes no USB-C / OTG port, so the usual &lt;code&gt;sunxi-fel&lt;/code&gt; + U-Boot &lt;code&gt;ums&lt;/code&gt; route to reach the eMMC over USB is off the table (see &lt;a href="https://sovol.lexfrei.dev/zero/os/armbian/#the-board-the-emmc-and-why-fel-is-off-the-table#the-board-the-emmc-and-why-fel-is-off-the-table"&gt;why FEL is out&lt;/a&gt;). SD-boot-and-clone is the only no-reader path.&lt;/p&gt;</description></item><item><title>Updatable Armbian</title><link>https://sovol.lexfrei.dev/zero/os/updatable/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/zero/os/updatable/</guid><description>&lt;h1 id="keeping-armbian-updatable"&gt;Keeping Armbian updatable&lt;a class="anchor" href="#keeping-armbian-updatable"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;The worry that an &lt;code&gt;apt&lt;/code&gt; upgrade will &amp;ldquo;lose the dts&amp;rdquo; and break the eMMC is mostly unfounded, and the real constraint is narrower than it looks. This page separates the two.&lt;/p&gt;
&lt;blockquote class='book-hint note'&gt;
&lt;p&gt;&lt;strong&gt;Experimental in one place.&lt;/strong&gt; Everything about &lt;em&gt;why&lt;/em&gt; the kernel is held is confirmed and documented. The path &lt;em&gt;off&lt;/em&gt; the hold (moving to a newer kernel and keeping onboard Ethernet) is not yet verified on the Zero — it&amp;rsquo;s flagged below. Take a &lt;a href="https://sovol.lexfrei.dev/zero/os/recovery/#back-up-first-the-checklist#back-up-first-the-checklist"&gt;full backup&lt;/a&gt; before testing it.&lt;/p&gt;</description></item><item><title>Recovery</title><link>https://sovol.lexfrei.dev/zero/os/recovery/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sovol.lexfrei.dev/zero/os/recovery/</guid><description>&lt;h1 id="recovery-and-backups"&gt;Recovery and backups&lt;a class="anchor" href="#recovery-and-backups"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;What makes every step in every path reversible, and how to get back a machine that won&amp;rsquo;t boot. Recovery is mostly a backup story: take the right snapshots before you touch anything, and a dead layer becomes a restore instead of a rebuild.&lt;/p&gt;
&lt;h2 id="back-up-first-the-checklist"&gt;Back up first — the checklist&lt;a class="anchor" href="#back-up-first-the-checklist"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Take these before erasing anything. They are what make each later step reversible.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The vendor stack&lt;/strong&gt; (file-level, resumable rsync — not a raw &lt;code&gt;dd&lt;/code&gt; over WiFi): vendor &lt;code&gt;~/klipper&lt;/code&gt; as a git bundle, &lt;code&gt;~/printer_data/config&lt;/code&gt;, &lt;code&gt;~/printer_data/build/*.bin&lt;/code&gt;, and the per-chip build configs &lt;code&gt;~/klipper/.config*&lt;/code&gt; (useful seeds even though their flash offsets are stale).&lt;/p&gt;</description></item></channel></rss>