<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss"
        xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
        xmlns:media="http://search.yahoo.com/mrss/"><channel>
<title>RedAlder Blog</title>
<atom:link href="https://redalder.org/blog/rss.xml" rel="self" type="application/rss+xml" />
<link>https://redalder.org/blog</link>
<description><![CDATA[]]></description>
<language>en</language>
<pubDate>Mon, 14 Sep 2026 20:24:59 +0000</pubDate>
<lastBuildDate>Mon, 14 Sep 2026 20:24:59 +0000</lastBuildDate>
<generator>Emacs 30.2 Org-mode 9.7.11</generator>
<webMaster>magic_rb@redalder.org (magic_rb)</webMaster>
<image>
<url>https://redalder.org/icons/favicon-512x512.png</url>
<title>RedAlder Blog</title>
<link>https://redalder.org/blog</link>
</image>

<item>
<title>NixOS on the OpenWRT one</title>
<link>https://redalder.org/blog/nixos-on-the-openwrt-one/main.html</link>
<author>magic_rb@redalder.org (magic_rb)</author>
<guid isPermaLink="false">https://redalder.org/blog/nixos-on-the-openwrt-one/main.html</guid>
<pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>

<description><![CDATA[<p>
Preface
</p>
<div id="outline-container-file-var-lib-magicrb-website-repository-blog-nixos-on-the-openwrt-one-main-org-porting" class="outline-3">
<h3 id="file-var-lib-magicrb-website-repository-blog-nixos-on-the-openwrt-one-main-org-porting"><span class="section-number-3">1.1.</span> Porting</h3>
<div class="outline-text-3" id="text-1-1">
<p>
Porting NixOS to embedded, or more correctly, non x86_64 devices, can be a difficult task. The difficulty of a port is mainly influenced by these 4 primary factors:
</p>

<p>
The Linux kernel
</p>

<p>
What matters most here is that you can get the source code of a functional Linux kernel, how functional that kernel is and how mainline it is. The less functional and the less mainline, the more difficult a port will be and more things will not work. If something doesn't work due to the kernel, you'll have to resort to writing C code to fix it.
The uboot
</p>

<p>
With uboot, generally, if you have the source code and it's not utterly ancient, you'll be fine. Rarely is it the case that uboot will give you trouble. It's easy to compile and generally just works.
The hardware itself
</p>

<p>
Certain devices can be hard to open, locked down, not have a serial port easily accessible. You can't do much about these issues, once you've decided on a device to port.
Graphics or no graphics?
</p>

<p>
If your port requires a functional GPU and display, you have to add <a href="https://mesa3d.org">Mesa</a> to the list of things you'll need to worry about. If you don't need graphics, contratulations! Your project just got easier.
</p>
</div>
</div>
<div id="outline-container-file-var-lib-magicrb-website-repository-blog-nixos-on-the-openwrt-one-main-org-the-openwrt-one" class="outline-3">
<h3 id="file-var-lib-magicrb-website-repository-blog-nixos-on-the-openwrt-one-main-org-the-openwrt-one"><span class="section-number-3">1.2.</span> The OpenWRT One</h3>
<div class="outline-text-3" id="text-1-2">
<p>
The OpenWRT One is a router with one 1 gigabit ethernet port and one 2.5 gigabit ethernet port. It also contains a WiFi chipset capable of AP mode and as such serves as a "WiFi router". It's released under the OpenWRT name, but manufactured by BananaPi. Its heart consists of a Mediatek MT7981B, which is a weaker cousin to the one found in the <a href="https://docs.banana-pi.org/en/BPI-R4/BananaPi_BPI-R4">BananaPi-R4</a>.
</p>

<p>
There two main sources of information I discovered while working on the OpenWRT One, the [[<a href="https://openwrt.org/toh/openwrt/one?s%5B%5D=openwrt&amp;s%5B%5D=router">https://openwrt.org/toh/openwrt/one?s%5B%5D=openwrt&amp;s%5B%5D=router</a>][OpenWRT wiki]] and the <a href="https://docs.banana-pi.org/en/OpenWRT-One/BananaPi_OpenWRT-One">BananaPi wiki</a>. The first one is by the OpenWRT people and contains information specific to OpenWRT, but also some more general tid-bits. The BananaPi wiki is maintained by the vendor and, honestly not sure who, so it's more vendor brained. I referred to both when working on the NixOS port.
</p>


<div class="figure">
<p><img src="https://redalder.org/blog/./openwrt_front.jpg" alt="openwrt_front.jpg" />
</p>
<p><span class="figure-number">Figure 1: </span>A picture of the OpenWRT One from the front</p>
</div>
</div>
</div>
]]></description>
</item>
</channel>
</rss>
