<?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/"
	>

<channel>
	<title>Terabyte home Archives - Stephen Foskett, Pack Rat</title>
	<atom:link href="https://blog.fosketts.net/category/everything/TerabyteHome/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.fosketts.net/category/everything/terabytehome/</link>
	<description>Understanding the accumulation of data</description>
	<lastBuildDate>Fri, 11 Jul 2025 16:31:04 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Rescue Your Belkin Wemo with Apple HomeKit</title>
		<link>https://blog.fosketts.net/2025/07/11/rescue-your-belkin-wemo-with-apple-homekit/</link>
					<comments>https://blog.fosketts.net/2025/07/11/rescue-your-belkin-wemo-with-apple-homekit/#comments</comments>
		
		<dc:creator><![CDATA[Stephen]]></dc:creator>
		<pubDate>Fri, 11 Jul 2025 16:27:03 +0000</pubDate>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[Terabyte home]]></category>
		<category><![CDATA[Belkin]]></category>
		<category><![CDATA[Home Assistant]]></category>
		<category><![CDATA[HomeKit]]></category>
		<category><![CDATA[Matter]]></category>
		<guid isPermaLink="false">https://blog.fosketts.net/?p=10185</guid>

					<description><![CDATA[<p>This morning, Belkin announced that they are pulling the plug on their Wemo home automation ecosystem and shutting down the app, cloud, and devices as of January 31, 2026. This is seriously bad news for those of us who bought Wemo smart switches and other devices, since they will cease to function on that date. But there is hope: Most Wemo devices can be connected to Apple's HomeKit before the shutdown date and will continue to function afterwards! Here's how to keep your Belkin Wemo devices from becoming e-waste.</p>
<hr />
<p><small>© Stephen Foskett for <a href="https://blog.fosketts.net">Stephen Foskett, Pack Rat</a>: <a href="https://blog.fosketts.net/2025/07/11/rescue-your-belkin-wemo-with-apple-homekit/">Rescue Your Belkin Wemo with Apple HomeKit</a></small></p>
]]></description>
										<content:encoded><![CDATA[
<p>This morning, <a href="https://www.belkin.com/support-article/?articleNum=335419">Belkin announced that they are pulling the plug on their Wemo home automation ecosystem</a> and shutting down the app, cloud, and devices as of January 31, 2026. This is seriously bad news for those of us who bought Wemo smart switches and other devices, since they will cease to function on that date. But there is hope: Most Wemo devices can be connected to Apple&#8217;s HomeKit before the shutdown date and will continue to function afterwards! Here&#8217;s how to keep your Belkin Wemo devices from becoming e-waste.</p>


<div class="wp-block-image">
<figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large"><img fetchpriority="high" decoding="async" width="500" height="500" src="https://blog.fosketts.net/wp-content/uploads/2025/07/IMG_2627-500x500.png" alt="" class="wp-image-10188" srcset="https://blog.fosketts.net/wp-content/uploads/2025/07/IMG_2627-500x500.png 500w, https://blog.fosketts.net/wp-content/uploads/2025/07/IMG_2627-300x300.png 300w, https://blog.fosketts.net/wp-content/uploads/2025/07/IMG_2627-150x150.png 150w, https://blog.fosketts.net/wp-content/uploads/2025/07/IMG_2627-768x768.png 768w, https://blog.fosketts.net/wp-content/uploads/2025/07/IMG_2627-100x100.png 100w, https://blog.fosketts.net/wp-content/uploads/2025/07/IMG_2627.png 1206w" sizes="(max-width: 500px) 100vw, 500px" /><figcaption class="wp-element-caption">Rescue your Belkin Wemo switches by adding them to your Apple Home using HomeKit Protocol &#8211; before it&#8217;s too late!</figcaption></figure>
</div>


<h2 class="wp-block-heading">What is Belkin Wemo?</h2>



<p>Wemo was a brand of home automation devices produced by Belkin from 2011 through 2023. They released a few Matter/Thread devices after that and these are unaffected by this announcement.</p>



<p>The most-common Wemo device (in my experience) is their plug-in &#8220;Smart Plug&#8221; line, which was widely available at retail. I purchased four of their &#8220;Smart Plug Mini&#8221; devices at Costco a few years back and was very happy with their performance, functionality, and integration into Home Assistant. They also produced other smart devices, notably light switches, lights, and even crock pots, heaters, coffee makers, and baby monitors! Most of these devices required cloud connectivity for use and will become e-waste when Belkin cuts them off after January 2026.</p>



<p>Classic Wemo devices rely on Belkin&#8217;s cloud for configuration and everyday functionality, including integration with Amazon Alexa, Google Home, and IFTTT. All of this will cease to function following the Wemo cloud shutdown.</p>



<p><a href="https://www.belkin.com/support-article/?articleNum=335419#DevicesAffected">The complete list of Belkin devices</a>, including their support and HomeKit status, is available in their Wemo FAQ.</p>


<div class="wp-block-image">
<figure style=' float: right;'  class="alignright size-large is-resized"><img decoding="async" width="500" height="564" src="https://blog.fosketts.net/wp-content/uploads/2025/07/IMG_2623-500x564.jpeg" alt="" class="wp-image-10186" style="width:300px" srcset="https://blog.fosketts.net/wp-content/uploads/2025/07/IMG_2623-500x564.jpeg 500w, https://blog.fosketts.net/wp-content/uploads/2025/07/IMG_2623-266x300.jpeg 266w, https://blog.fosketts.net/wp-content/uploads/2025/07/IMG_2623-133x150.jpeg 133w, https://blog.fosketts.net/wp-content/uploads/2025/07/IMG_2623-768x866.jpeg 768w, https://blog.fosketts.net/wp-content/uploads/2025/07/IMG_2623.jpeg 1206w" sizes="(max-width: 500px) 100vw, 500px" /><figcaption class="wp-element-caption">Belkin&#8217;s Wemo devices were compatible with Amazon, Google, and IFTTT, but only Apple HomeKit will continue working</figcaption></figure>
</div>


<h2 class="wp-block-heading">Apple HomeKit to the Rescue?</h2>



<p>Over time, Belkin added Apple HomeKit support as an option to many of their light switches, dimmers, and plugs, and this is independent of the native app and cloud connectivity. This support for Apple HomeKit offers a ray of hope: HomeKit devices connect locally over Wi-Fi with HomeKit Accessory Protocol (HAP) and this doesn&#8217;t require Belkin&#8217;s app or cloud! </p>



<p>Belkin&#8217;s Wemo FAQ is explicitly about this: &#8220;Wemo products configured for use with Apple HomeKit prior to January 31, 2026 will continue to function via HomeKit in the absence of Wemo cloud services and the Wemo app.&#8221;</p>



<p>This means you can &#8220;rescue&#8221; your compatible switches and plugs by enabling HomeKit support and continue to use them. But configuring HomeKit requires the Belkin Wemo app (at least for my Wemo Mini plugs) so you have to do this before the Wemo shutoff date. I recommend doing a factory reset and enabling HomeKit sooner rather than later to avoid losing your Wemo devices next year.</p>



<h2 class="wp-block-heading">Enable HomeKit in Your Wemo Switches</h2>



<p>Enabling HomeKit is a straightforward process <em>as long as the Wemo app is still working</em>. Regardless of whether or not the device includes the HomeKit logo and number on the back, the following devices appear to be compatible:</p>



<ul class="wp-block-list">
<li>WLS0403 &#8211; Wemo Smart Light Switch 3-Way</li>



<li>WDS060 &#8211; Wemo Wi-Fi Smart Light Switch w/ Dimmer</li>



<li>WLS040 &#8211; Wemo Smart Light Switch</li>



<li>F7C064 &#8211; Wemo?HomeKit</li>



<li>F7C059 &#8211; Wemo?Dimmer Light Switch</li>



<li>F7C063 &#8211; Wemo?Mini Plugin Switch</li>



<li>WSP090 &#8211; Wemo?Outdoor Plug</li>



<li>WSP080 &#8211; Wemo Mini Smart Plug</li>
</ul>


<div class="wp-block-image">
<figure style=' float: right;'  class="alignright size-large is-resized"><img decoding="async" width="500" height="545" src="https://blog.fosketts.net/wp-content/uploads/2025/07/IMG_2624-500x545.jpeg" alt="" class="wp-image-10187" style="width:300px" srcset="https://blog.fosketts.net/wp-content/uploads/2025/07/IMG_2624-500x545.jpeg 500w, https://blog.fosketts.net/wp-content/uploads/2025/07/IMG_2624-275x300.jpeg 275w, https://blog.fosketts.net/wp-content/uploads/2025/07/IMG_2624-138x150.jpeg 138w, https://blog.fosketts.net/wp-content/uploads/2025/07/IMG_2624-768x837.jpeg 768w, https://blog.fosketts.net/wp-content/uploads/2025/07/IMG_2624.jpeg 1206w" sizes="(max-width: 500px) 100vw, 500px" /><figcaption class="wp-element-caption">Belkin&#8217;s Wemo devices connect directly to Apple Home using HomeKit Accessory Protocol</figcaption></figure>
</div>


<p>Before you begin, make sure you have the Apple Home app installed and configured. I suggest doing a factory reset of the Wemo switch as well, just to make sure it&#8217;s really &#8220;clean&#8221; and ready to configure. Also, you might want to give it a few minutes after adding it to the Wemo app before trying to configure HomeKit.</p>



<ol class="wp-block-list">
<li>In the Wemo app, tap the &#8220;&#8230; More&#8221; button at the bottom, then tap &#8220;Connect to Other Services&#8221;, then &#8220;Apple Home App&#8221;</li>



<li>Tap &#8220;Get Started&#8221; and the Wemo app will scan for compatible devices</li>



<li>Tap &#8220;Connect&#8221; next to a compatible Wemo device to start the process</li>



<li>This will bring up an Apple Home pop-up &#8211; select a Home (if you have more than one), then tap &#8220;Add to Home&#8221;, select a Location and tap &#8220;Continue&#8221;, give the switch a name and tap &#8220;Continue&#8221;, select Outlet and tap &#8220;Continue&#8221;</li>



<li>And you&#8217;re done!</li>
</ol>



<p>The Wemo device will now show up in your Apple Home app and can be operated directly from there with no need for the Wemo app or cloud. It should continue to work after the cloud is shut down, but you will likely not be able to reconfigure the device after this date. At least you can avoid having to toss these Wemo devices into the e-waste pile for a while!</p>



<h2 class="wp-block-heading">What About Home Assistant?</h2>



<p>Home Assistant has a native <a href="https://www.home-assistant.io/integrations/wemo/">Belkin Wemo integration</a> which appears to operate locally without involvement of the Wemo cloud. This may continue to work without HomeKit after the shutdown date, since <a href="https://community.home-assistant.io/t/the-end-of-wemo-cloud-and-app/909663">many people are already firewalling off their Wemo devices</a> and using them exclusively from Home Assistant. We can&#8217;t be sure, but Home Assistant might be another way to keep your Wemo devices working past January.</p>



<p>You may also be able to access Wemo devices via HomeKit protocol by adding them as an Apple HomeKit Device in Home Assistant. If you aren&#8217;t an Apple ecosystem user, this might be a way to re-enable Wemo devices for your chosen ecosystem: Convert them to HomeKit, add them to Home Assistant, and present them to other devices. But this might prove too complex to be reliable or even desirable.</p>



<h2 class="wp-block-heading">Stephen&#8217;s Stance</h2>



<p>Proprietary products, especially cloud-based ones, pose real problems. This is especially troubling for devices that are physically installed like light switches or appliances. I have serious concerns about the long-term viability of connected devices and am turning away from anything that has a proprietary ecosystem, but it&#8217;s sometimes impossible to avoid them. Time and again, standards-based devices have longer useful lives than proprietary ones: The fact that Belkin&#8217;s Matter/Thread devices will continue to function, not to mention HomeKit compatibility, gives me some hope for the future of connected devices! I&#8217;m especially positive about open source devices using ESP Home, <a href="https://blog.fosketts.net/tag/tasmota/">Tasmota</a>, and so on, but will accept Matter devices as a minimum viable option. I encourage you to do the same!</p>
<hr />
<p><small>© Stephen Foskett for <a href="https://blog.fosketts.net">Stephen Foskett, Pack Rat</a>: <a href="https://blog.fosketts.net/2025/07/11/rescue-your-belkin-wemo-with-apple-homekit/">Rescue Your Belkin Wemo with Apple HomeKit</a></small></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.fosketts.net/2025/07/11/rescue-your-belkin-wemo-with-apple-homekit/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>JetKVM Gives You a Keyboard, Video, and More From Anywhere</title>
		<link>https://blog.fosketts.net/2025/02/17/jetkvm-gives-you-a-keyboard-video-and-more-from-anywhere/</link>
					<comments>https://blog.fosketts.net/2025/02/17/jetkvm-gives-you-a-keyboard-video-and-more-from-anywhere/#respond</comments>
		
		<dc:creator><![CDATA[Stephen]]></dc:creator>
		<pubDate>Mon, 17 Feb 2025 23:30:34 +0000</pubDate>
				<category><![CDATA[Everything]]></category>
		<category><![CDATA[Terabyte home]]></category>
		<category><![CDATA[ATX]]></category>
		<category><![CDATA[iLO]]></category>
		<category><![CDATA[IPMI]]></category>
		<category><![CDATA[JetKVM]]></category>
		<category><![CDATA[Kickstarter]]></category>
		<category><![CDATA[KVM]]></category>
		<category><![CDATA[remote administration]]></category>
		<guid isPermaLink="false">https://blog.fosketts.net/?p=10161</guid>

					<description><![CDATA[<p>The JetKVM is an excellent little device, and a real steal at $69. It's wonderfully useful right out of the box and the planned software updates ought to make it even better. If you're like me and have a few critical PCs without integrated out-of-band management (like HPE iLO or Supermicro IPMI) this little device is a lifesaver. And it even offers a few tricks those expensive enterprise solutions don't offer!</p>
<hr />
<p><small>© Stephen Foskett for <a href="https://blog.fosketts.net">Stephen Foskett, Pack Rat</a>: <a href="https://blog.fosketts.net/2025/02/17/jetkvm-gives-you-a-keyboard-video-and-more-from-anywhere/">JetKVM Gives You a Keyboard, Video, and More From Anywhere</a></small></p>
]]></description>
										<content:encoded><![CDATA[
<p>I&#8217;ve used a lot of KVM (keyboard, video, and mouse) switches over the years, but the JetKVM is a whole new ballgame. It&#8217;s a tiny and high-quality device that gives access to any computer from anywhere. Launched as a Kickstarter, it&#8217;s way more mature than I expected, and a lot cheaper than the competition at under $70. I bought four for me (and one as a gift) and wish I got more!</p>


<div class="wp-block-image">
<figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1280" height="1280" src="https://blog.fosketts.net/wp-content/uploads/2025/02/IMG_1738.jpeg" alt="" class="wp-image-10162" style="width:600px" srcset="https://blog.fosketts.net/wp-content/uploads/2025/02/IMG_1738.jpeg 1280w, https://blog.fosketts.net/wp-content/uploads/2025/02/IMG_1738-300x300.jpeg 300w, https://blog.fosketts.net/wp-content/uploads/2025/02/IMG_1738-500x500.jpeg 500w, https://blog.fosketts.net/wp-content/uploads/2025/02/IMG_1738-150x150.jpeg 150w, https://blog.fosketts.net/wp-content/uploads/2025/02/IMG_1738-768x768.jpeg 768w, https://blog.fosketts.net/wp-content/uploads/2025/02/IMG_1738-100x100.jpeg 100w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /><figcaption class="wp-element-caption">The JetKVM is a compact but full-featured device that lets you control a computer from anywhere</figcaption></figure>
</div>


<p><em>Note: The &#8220;Jet&#8221; in JetKVM makes me think of the 1973 single by Paul McCartney &amp; Wings, so I&#8217;m using their songs as headers in this article. Turn on some power pop to get the full experience.</em></p>



<h3 class="wp-block-heading">Band on the Run</h3>



<p>I&#8217;m a nerd and I have lots of computers. Web servers, routers, home automation, and a whole lot more. Too many, really. <a href="https://blog.fosketts.net/2017/05/25/core-i7-macintosh-se/">I built a server into an old Macintosh SE</a> and <a href="https://blog.fosketts.net/2016/08/03/hello-freenas-goodbye-drobo-iomega/">built a giant file server</a>. That sort of thing. I even repatriated all of my web servers (which I swear I will eventually document), my <a href="https://www.activepieces.com">Activepieces</a> instance, my YOURLS link shortener, and more. Kubernetes? Yeah, <a href="https://blog.fosketts.net/2020/09/10/introducing-rabbit-i-bought-a-cloud/">I got that in my coffee table</a>.</p>



<p>The problem is, none of this is really production-ready. And it always seems to fall over whenever I go out of town. So I&#8217;ve been relying on a combination of Home Assistant-driven Z-Wave switches, <a href="https://blog.fosketts.net/2023/02/28/taming-power-outages-in-the-home-and-small-office/">big honkin&#8217; batteries</a>, jump hosts, and luck to keep things running. But sometimes all this can fail: What if the server is powered off? Or stuck at POST? And what if you need to adjust something in the BIOS screen? Wouldn&#8217;t it be amazing to be able to reset the power or plug in a USB drive from anywhere?</p>



<p>Sure some computers have out-of-band management built in: My <s>FreeNAS</s> TrueNAS server uses a Supermicro motherboard with (sketchy) IPMI, and I&#8217;ve been using a really nice HPE ProLiant server with built-in iLO. But most of my devices are sorely lacking when it comes to remote management! Think of JetKVM as iLO for Everyone!</p>



<h3 class="wp-block-heading">Let &#8216;Em In</h3>



<p>That&#8217;s where the <a href="https://jetkvm.com">JetKVM</a> comes in. While most KVMs are focused on multiplexing your keyboard and monitor for local servers, the JetKVM is a new kind of device: It&#8217;s designed to allow you to access one server from anywhere. It&#8217;s a simple-looking device with USB, HDMI, Ethernet, and Extension ports on the back and a cute color screen on the front. The whole thing is packaged in a sturdy die cast housing that sits solidly in place. And it&#8217;s tiny &#8211; about the size of the power brick for your NUC or external hard drive.</p>



<p>I&#8217;ve had pretty good luck with <a href="https://blog.fosketts.net/2015/07/28/aio-robotics-zeus-3d-printer-review/">Kickstarters</a> (<a href="https://grail-watch.com/2018/04/25/xeric-xeriscope-an-amusing-piece-of-junk/">though there have been some busts&#8230;</a>) and the JetKVM is no exception: It was delivered pretty much on schedule and worked perfectly out of the box. The software is surprisingly mature (though not perfect) and the whole experience has been a good one. I&#8217;ve got no qualm about giving one to a nerdy friend at <a href="https://TechFieldDay.com">Cloud Field Day</a>!</p>


<div class="wp-block-image">
<figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1280" height="1280" src="https://blog.fosketts.net/wp-content/uploads/2025/02/IMG_1737.jpeg" alt="" class="wp-image-10163" style="width:600px" srcset="https://blog.fosketts.net/wp-content/uploads/2025/02/IMG_1737.jpeg 1280w, https://blog.fosketts.net/wp-content/uploads/2025/02/IMG_1737-300x300.jpeg 300w, https://blog.fosketts.net/wp-content/uploads/2025/02/IMG_1737-500x500.jpeg 500w, https://blog.fosketts.net/wp-content/uploads/2025/02/IMG_1737-150x150.jpeg 150w, https://blog.fosketts.net/wp-content/uploads/2025/02/IMG_1737-768x768.jpeg 768w, https://blog.fosketts.net/wp-content/uploads/2025/02/IMG_1737-100x100.jpeg 100w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /><figcaption class="wp-element-caption">The JetKVM is well-built, well-designed, and nicely-packaged</figcaption></figure>
</div>


<h3 class="wp-block-heading">Silly Love Songs</h3>



<p>This is no 3D-printed beta-test monstrosity. Far from it: The JetKVM device is solid, textured, and feels better in the hand than 95% of IT gear out there. It reminds me of unboxing <a href="https://blog.fosketts.net/2009/09/04/drobo-impressions/">my first Drobo</a>, with sleek smoked-glass solidity that inspires confidence. The packaging isn&#8217;t quite Apple-level, but I&#8217;m glad they didn&#8217;t waste time or money on that. It&#8217;s nice enough to be on store shelves and a heck of a lot nicer than the last KVM I bought!</p>



<p>Another nice aspect of the JetKVM experience is that it comes with everything you need to <a href="https://jetkvm.com/docs/getting-started/quick-start">get started</a> and plugs right in. There&#8217;s no need to read the manual or fiddle with configuration: Plug the mini-HDMI-to-HDMI cable and USB-C-to-A cable into your server, plug the Ethernet cable in, and you&#8217;re up and running. The little screen shows all you need to know to get started: The IP address and connectivity state are simply and elegantly displayed along with the MAC address and JetKVM logo. This is literally a 1-minute setup!</p>



<h3 class="wp-block-heading">Coming Up</h3>


<div class="wp-block-image">
<figure style=' float: right;'  class="alignright size-full is-resized"><img loading="lazy" decoding="async" width="962" height="597" src="https://blog.fosketts.net/wp-content/uploads/2025/02/JetKVM-Video-EDID.png" alt="" class="wp-image-10164" style="width:400px" srcset="https://blog.fosketts.net/wp-content/uploads/2025/02/JetKVM-Video-EDID.png 962w, https://blog.fosketts.net/wp-content/uploads/2025/02/JetKVM-Video-EDID-300x186.png 300w, https://blog.fosketts.net/wp-content/uploads/2025/02/JetKVM-Video-EDID-500x310.png 500w, https://blog.fosketts.net/wp-content/uploads/2025/02/JetKVM-Video-EDID-150x93.png 150w, https://blog.fosketts.net/wp-content/uploads/2025/02/JetKVM-Video-EDID-768x477.png 768w" sizes="auto, (max-width: 962px) 100vw, 962px" /></figure>
</div>


<p>The software works great on mobile or desktop and thankfully seems solid in Safari. The device emulates a USB keyboard and mouse and can pass through your device keyboard or use an on-screen virtual keyboard. The HDMI video can emulate a few popular monitors if needed, and you can even upload your own custom EDID file if you need some specific resolution.</p>



<p>I do wish the EDID selection included a lower-resolution option, since the text can be hard to read on a browser window. I tend to pick the Dell D7271H since it&#8217;s 1080p, but I&#8217;ve been thinking of whipping up a 1024&#215;768 option called &#8220;NEC MultiSync&#8221; for giggles!</p>



<h3 class="wp-block-heading">No More Lonely Nights</h3>



<p>The JetKVM also includes a handy virtual media function, allowing you to mount an ISO image uploaded to the device or from a URL. A forthcoming update will allow you to stream an image directly through your browser too!</p>



<p>This is incredibly useful for provisioning new servers. I set up a &#8220;crash cart&#8221; JetKVM device in the basement, connected it to a spare PC, and did a complete Ubuntu install from the comfy couch upstairs. It was much easier than writing the image to a USB drive and huddling over the machine.</p>



<p>Unfortunately, the virtual media function only emulates a USB optical drive, so I first had to reconfigure the BIOS to boot from CD/DVD. Happily this is pretty easy to do using the virtual Ctrl-Alt-Delete and function keys, which don&#8217;t require a two-finger combination like most modern &#8220;multimedia&#8221; keyboards. But I had to be quick about it, since it takes a moment for the HDMI to &#8220;sync&#8221; and show up in the browser, so the BIOS tends to fly by.</p>


<div class="wp-block-image">
<figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="2598" height="2338" src="https://blog.fosketts.net/wp-content/uploads/2025/02/JetKVM-UI.png" alt="" class="wp-image-10165" style="width:600px" srcset="https://blog.fosketts.net/wp-content/uploads/2025/02/JetKVM-UI.png 2598w, https://blog.fosketts.net/wp-content/uploads/2025/02/JetKVM-UI-300x270.png 300w, https://blog.fosketts.net/wp-content/uploads/2025/02/JetKVM-UI-500x450.png 500w, https://blog.fosketts.net/wp-content/uploads/2025/02/JetKVM-UI-150x135.png 150w, https://blog.fosketts.net/wp-content/uploads/2025/02/JetKVM-UI-768x691.png 768w, https://blog.fosketts.net/wp-content/uploads/2025/02/JetKVM-UI-1536x1382.png 1536w, https://blog.fosketts.net/wp-content/uploads/2025/02/JetKVM-UI-2048x1843.png 2048w" sizes="auto, (max-width: 2598px) 100vw, 2598px" /><figcaption class="wp-element-caption">The JetKVM UI is reasonably up to date, though it could use a few features</figcaption></figure>
</div>


<h3 class="wp-block-heading">Live and Let Die</h3>



<p>The JetKVM is so good as-is that I&#8217;m already dreaming of enhancements to this little platform. Here&#8217;s a smattering of wish-it-was-better ideas:</p>



<ol class="wp-block-list">
<li>I&#8217;d love a full-screen mode, preferably with picture-in-picture on iPadOS</li>



<li>Power over Ethernet support would be incredible (it&#8217;s apparently in the works)</li>



<li>The whole power situation is a little odd: It has a power splitter cable, but when I power my &#8220;crash cart&#8221; using a USB-C wall wart the JetKVM reboots when the attached PC shuts down</li>



<li>The Ctrl-Alt-Delete button should be on the main screen since I often open the virtual keyboard just for this one key combo</li>



<li>I&#8217;ve had a few instances of the virtual optical drive getting &#8220;stuck&#8221; with media so it would be nice to be able to completely turn that on and off</li>



<li>Speaking of that, I&#8217;d love a reboot button since I&#8217;ve had the whole device lock up once</li>



<li>I discovered accidentally that the cute little screen is a touchscreen, though the swipe-in-from-left menu only gives moderately-useful device info</li>



<li>I wish it had a full-sized HDMI port instead of the maddening mini-HDMI; at least it&#8217;s not a micro!</li>



<li>I hate that JetKVM Cloud can only authenticate using a Google account</li>
</ol>



<p>One more thing: That <a href="https://jetkvm.com/docs/peripheral-devices/extension-port">RJ11 Extension port</a> is very cool, promising incredible control over an ATX PC (using the ATX Power Control board). But I&#8217;m still waiting on my ATX extension boards so I couldn&#8217;t test it out. In theory the board sits between the power supply and motherboard, enabling you to remotely hard- and soft-reset the PC. And it powers the JetKVM even when the PC is off! But this is all theoretical since my boards are nowhere to be seen and apparently <a href="https://github.com/jetkvm/kvm/issues/129">the software isn&#8217;t ready</a> anyway. I&#8217;ll update this post when/if they arrive!</p>


<div class="wp-block-image">
<figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1280" height="961" src="https://blog.fosketts.net/wp-content/uploads/2025/02/IMG_1773.jpeg" alt="" class="wp-image-10166" style="width:600px" srcset="https://blog.fosketts.net/wp-content/uploads/2025/02/IMG_1773.jpeg 1280w, https://blog.fosketts.net/wp-content/uploads/2025/02/IMG_1773-300x225.jpeg 300w, https://blog.fosketts.net/wp-content/uploads/2025/02/IMG_1773-500x375.jpeg 500w, https://blog.fosketts.net/wp-content/uploads/2025/02/IMG_1773-150x113.jpeg 150w, https://blog.fosketts.net/wp-content/uploads/2025/02/IMG_1773-768x577.jpeg 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /><figcaption class="wp-element-caption">The JetKVM is an excellent device, and well worth the price!</figcaption></figure>
</div>


<h3 class="wp-block-heading">Listen to What the Man Said</h3>



<p>The JetKVM is an excellent little device, and a real steal at $69. It&#8217;s wonderfully useful right out of the box and the planned software updates ought to make it even better. If you&#8217;re like me and have a few critical PCs without integrated out-of-band management (like HPE iLO or Supermicro IPMI) this little device is a lifesaver. And it even offers a few tricks those expensive enterprise solutions don&#8217;t offer!</p>
<hr />
<p><small>© Stephen Foskett for <a href="https://blog.fosketts.net">Stephen Foskett, Pack Rat</a>: <a href="https://blog.fosketts.net/2025/02/17/jetkvm-gives-you-a-keyboard-video-and-more-from-anywhere/">JetKVM Gives You a Keyboard, Video, and More From Anywhere</a></small></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.fosketts.net/2025/02/17/jetkvm-gives-you-a-keyboard-video-and-more-from-anywhere/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Monitor Linux Server Stats in Home Assistant</title>
		<link>https://blog.fosketts.net/2024/12/30/how-to-monitor-linux-server-stats-in-home-assistant/</link>
					<comments>https://blog.fosketts.net/2024/12/30/how-to-monitor-linux-server-stats-in-home-assistant/#comments</comments>
		
		<dc:creator><![CDATA[Stephen]]></dc:creator>
		<pubDate>Mon, 30 Dec 2024 22:55:59 +0000</pubDate>
				<category><![CDATA[Everything]]></category>
		<category><![CDATA[Terabyte home]]></category>
		<category><![CDATA[Home Assistant]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[MQTT]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[systemd]]></category>
		<category><![CDATA[systems administration]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[yaml]]></category>
		<guid isPermaLink="false">https://blog.fosketts.net/?p=10125</guid>

					<description><![CDATA[<p>I've been using Home Assistant to show system metrics. This blog post shows how to monitor Linux servers over MQTT using Home Assistant dashboards.</p>
<hr />
<p><small>© Stephen Foskett for <a href="https://blog.fosketts.net">Stephen Foskett, Pack Rat</a>: <a href="https://blog.fosketts.net/2024/12/30/how-to-monitor-linux-server-stats-in-home-assistant/">How to Monitor Linux Server Stats in Home Assistant</a></small></p>
]]></description>
										<content:encoded><![CDATA[
<p>I&#8217;m a long-time Home Assistant user, and have found it an incredible way to control and monitor a wide variety of devices. Home Assistant just keeps getting better at displaying information in a friendly format, and I&#8217;ve been using it to show dashboards for everything from office lighting to server stats. The latter is the focus for this blog post: Monitoring Linux servers over MQTT using Home Assistant dashboards!</p>


<div class="wp-block-image">
<figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large"><img loading="lazy" decoding="async" width="500" height="407" src="https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-and-MacSE-Stats-500x407.png" alt="" class="wp-image-10129" srcset="https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-and-MacSE-Stats-500x407.png 500w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-and-MacSE-Stats-300x244.png 300w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-and-MacSE-Stats-150x122.png 150w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-and-MacSE-Stats-768x625.png 768w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-and-MacSE-Stats-1536x1249.png 1536w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-and-MacSE-Stats.png 1812w" sizes="auto, (max-width: 500px) 100vw, 500px" /><figcaption class="wp-element-caption">Just look at these pretty system graphs!</figcaption></figure>
</div>


<h3 class="wp-block-heading">Monitoring Linux Server Stats</h3>



<p>I&#8217;ve been a Unix admin for over 3 decades, and have spent much of that time fighting with various software packages to monitor server stats. SNMP is anything but simple, and commercial packages traditionally made a significant dent on CPU and memory resources. Then there was the issue of collecting, formatting, and filtering stats to create a useful dashboard.</p>



<p>Home Assistant excels at collecting information, organizing it in a database, and displaying useful graphs and dashboards. But it&#8217;s not meant to handle system statistics &#8211; Home Assistant is primarily a platform for IoT devices. Although there is an official System Monitor service, it&#8217;s intended to monitor the local server running Home Assistant, not a remote server.</p>



<p>Happily, there is an excellent lightweight system monitor package designed for exactly this purpose: <a href="https://pypi.org/project/linux2mqtt/">Linux2MQTT</a> collects system stats and exports them via MQTT. As developer Cyrill Raccaud says, &#8220;linux2mqtt is a lightweight wrapper around psutil that publishes CPU utilization, free memory, and other system-level stats to a MQTT broker. The primary use case is to collect system performance metrics for ingestion into Home Assistant (HA) for alerting, reporting, and firing off any number of automations.&#8221; I&#8217;m happy to report that it works quite well, even if it is a little fiddly.</p>



<p>In case you&#8217;re not familiar with <a href="https://en.wikipedia.org/wiki/MQTT">MQTT</a>, it&#8217;s a lightweight publish-subscribe message queueing protocol that&#8217;s found a niche in the IoT space. MQTT clients pass messages through an MQTT broker using &#8220;topics&#8221; that other clients can subscribe to. Home Assistant has an open source MQTT broker Add-On called Mosquitto as well as an MQTT client, and many IoT devices like my <a href="https://tasmota.github.io/docs/">Tasmota</a> lights and <a href="https://us.shelly.com">Shelly</a> switches already use this protocol for control and metrics. A client like linux2mqtt can easily publish system stats to a broker like Mosquitto for use in Home Assistant.</p>



<h3 class="wp-block-heading">Installing and Running linux2mqtt in Ubuntu</h3>



<p><a href="https://pypi.org/project/systemctl2mqtt/">The linux2mqtt package</a> is written in Python and is available on Pypi, making it easy to install and maintain. But I do have a few tips and tricks to share to get it up and running monitoring Ubuntu servers.</p>



<p>A best practice in Debian and Ubuntu (and frankly all Unix systems) is to install Python packages in a <a href="https://docs.python.org/3/library/venv.html">virtual environment</a> to maintain proper version of the Python interpreter and libraries. This functions something like a container (though less isolated or portable) and overcomes many of the headaches of maintaining a usable Python environment.</p>



<p>Note that linux2mqtt runs as a user, not as root. This should be reassuring but also poses some issues we will overcome!</p>



<p>Creating a venv for linux2mqtt is our first step:</p>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install python3-venv
python3 -m venv ~/linux2mqtt</code></pre>



<p>Now that we have a proper venv set up in our user home directory we can install linux2mqtt inside:</p>



<pre class="wp-block-code"><code>~/linux2mqtt/bin/pip install linux2mqtt</code></pre>



<p>We now have a version of linux2mqtt installed and ready to test out!</p>



<h3 class="wp-block-heading">Preparing Home Assistant</h3>



<p>Configuring Mosquitto and the MQTT client in Home Assistant is far beyond the subject of this article. Suffice to say, the built-in Home Assistant Mosquitto broker and client are sufficient for everything we are doing here, though you could also use any other broker if you choose.</p>



<p>The important thing is that you have the IP address, username, and password of your MQTT broker. For purposes of this illustration I will use the following:</p>



<ul class="wp-block-list">
<li>MQTT Broker IP: 192.168.1.31</li>



<li>MQTT Broker User: mosquitto</li>



<li>MQTT Broker Password: password</li>
</ul>



<p>Make sure the MQTT client is up and running in &#8220;Devices &amp; Services&#8221; and is configured to query the Mosquitto broker. By default, Home Assistant uses &#8220;homeassistant&#8221; as the MQTT auto-discovery prefix, and this is also the default for linux2mqtt. If you change this prefix you will need to specify the new one using the &#8211;homeassistant-prefix command line parameter.</p>



<p>Happily, Home Assistant will properly receive and organize incoming data from linux2mqtt without any other setup. As soon as you start publishing system data to the broker a new device and associated entities will appear in Home Assistant!</p>



<h3 class="wp-block-heading">Selecting System Metrics</h3>



<p>It&#8217;s a good idea to pick out the specific system metrics to send to Home Assistant before running linux2mqtt for the first time. For the purposes of this article, we will send CPU percentage, CPU temperature, network utilization, and filesystem usage. Some of these requires a little preparation work, so let&#8217;s dive in!</p>



<p>We&#8217;ll build a metric set to send to the MQTT broker interactively, but here&#8217;s a good baseline:</p>



<pre class="wp-block-code"><code>~/linux2mqtt/bin/linux2mqtt \
--name $HOSTNAME \
--cpu=15 \
--vm \
--temp \
--fan \
--du='/' \
--du='/home' \
--net=enp0s1,15 \
--host=192.168.1.31 \
--username=mosquitto \
--password=password \
-vvvvv</code></pre>



<p>One of the most important command line parameters is &#8220;<strong>&#8211;name $HOSTNAME</strong>&#8220;. This identifies all of the state metrics in MQTT and Home Assistant. You can use $HOSTNAME (as I did here) or specify a name manually. I like Initial Capital Letters so I generally specify the hostname manually.</p>



<p>The easiest sensor to add is CPU. Just add &#8220;&#8211;cpu=60&#8221; to the linux2mqtt command line and it will send overall CPU usage plus a number of detailed state attributes (see below) each minute. I actually like to use &#8220;<strong>&#8211;cpu=15</strong>&#8221; to get more frequent updates (every 15 seconds) but you&#8217;re free to choose any value you like.</p>



<p>Another useful sensor is virtual memory. Add &#8220;<strong>&#8211;vm</strong>&#8221; to the command line to send virtual memory usage plus detailed state attributes. I wish there was more instrumentation for physical memory, but I can&#8217;t find it.</p>



<p>Each server platform will have its own set of temperature metrics, and mine are all over the map. Some provide a ton of detailed thermal info with &#8220;<strong>&#8211;temp</strong>&#8221; for various zones while others just show the CPU. Not all systems will show fan status, but it doesn&#8217;t break anything to add &#8220;<strong>&#8211;fan</strong>&#8221; just in case. If your server doesn&#8217;t have fan sensors you could leave this off the final parameter list.</p>



<p>Next we want to collect disk usage stats. Most people will add &#8220;<strong>&#8211;du=&#8217;/&#8217;</strong>&#8221; to collect root directory stats. Being a veteran sysadmin and storage nerd I like to use separate filesystems for things that might fill up, including /home, /var/lib/docker, and various application directories in /srv. Just run &#8220;df -h&#8221; on the command line and decide which volumes you want to include. Then add multiple parameters like &#8220;<strong>&#8211;du=&#8217;/home&#8217;</strong>&#8221; to the list.</p>



<p>You can also monitor one or more network interfaces. You will need to specify the specific interface name on the command line, and the easiest way to get this is by typing &#8220;ip address show | more&#8221; on the command line. If you&#8217;re using Docker or similar tools you might have quite a few! I&#8217;ve simplified it above to just &#8220;<strong>&#8211;net=enp0s1,15</strong>&#8220;, which will send stats for the interface called enp0s1 every 15 seconds. You can add multiple parameters with different network names to monitor multiple interfaces.</p>



<p>Next we have to specify the MQTT Broker with &#8220;<strong>&#8211;host=192.168.1.31</strong>&#8221; and authenticate with &#8220;<strong>&#8211;username=mosquitto</strong>&#8221; and &#8220;<strong>&#8211;password=password</strong>&#8220;. Obviously you&#8217;ll use your own broker IP address, username, and password.</p>



<p>Finally we can add &#8220;<strong>-vvvvv</strong>&#8221; to show verbose debugging info on our first run. We will leave this out when we put this into production.</p>



<p>Now that you have figured out which parameters to use for your particular host, you can simply run linux2mqtt on the command line:</p>



<pre class="wp-block-code"><code>~/linux2mqtt/bin/linux2mqtt --name $HOSTNAME --cpu=15 --vm --temp --fan --du='/' --du='/home' --net=enp0s1,15 --host=192.168.1.31 --username=mosquitto --password=password -vvvvv</code></pre>



<p>This will start collection and begin sending data to the MQTT broker. Within a few seconds you will see this show up in Home Assistant under the MQTT client! Once you&#8217;re satisfied you can stop this initial run with ctrl-c and proceed to put linux2mqtt into production!</p>



<h3 class="wp-block-heading">Creating a Systemd Service for linux2mqtt</h3>



<p>I am not a fan of <a href="https://en.wikipedia.org/wiki/Systemd">systemd</a> but that&#8217;s what Debian and Ubuntu use to run system services. And it works. So we&#8217;re going to use it.</p>



<p>Although many of us have mucked about with system services, I was less familiar with using systemd to run user-space services. But that&#8217;s the right way to run linux2mqtt, since it does not need root privileges.</p>



<p>We&#8217;ll create a systemd service file in our home directory for linux2mqtt:</p>



<pre class="wp-block-code"><code>mkdir -p ~/.config/systemd/user
vi ~/.config/systemd/user/linux2mqtt.service</code></pre>



<p>This service file will be pretty simple. The most important bit is the command used to run linux2mqtt, which we developed in the previous section. Copy whatever worked at the end there as the &#8220;ExecStart&#8221; command in the following template. You should specify the complete directory path rather than &#8220;/home/username&#8221; and the proper hostname in this file. I&#8217;ve bolded these below. And don&#8217;t include the &#8220;-vvvvv&#8221;.</p>



<pre class="wp-block-code"><code>&#91;Unit]
Description=Log system information via MQTT
DefaultDependencies=no

&#91;Service]
ExecStart=/home/<strong>username</strong>/linux2mqtt/bin/linux2mqtt --name <strong>Hostname</strong> --cpu=15 --vm --temp --fan --du='/' --du='/home' --net=enp0s1,15 --host=192.168.1.31 --username=mosquitto --password=password
Type=exec
Restart=always

&#91;Install]
WantedBy=default.target</code></pre>



<p>Assuming you&#8217;re ready to roll, just enable these using systemd and you&#8217;re done on the host side! Note that you need to enable &#8220;linger&#8221; so systemd can run things when you&#8217;re not actively logged in.</p>



<pre class="wp-block-code"><code>sudo loginctl enable-linger $USER 
systemctl --user daemon-reload
systemctl --user enable linux2mqtt.service
systemctl --user start linux2mqtt.service</code></pre>



<h3 class="wp-block-heading">Home Assistant State Attributes</h3>


<div class="wp-block-image">
<figure style=' float: right;'  class="alignright size-large is-resized"><img loading="lazy" decoding="async" width="500" height="665" src="https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-Linux-CPU-500x665.png" alt="" class="wp-image-10127" style="width:300px" srcset="https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-Linux-CPU-500x665.png 500w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-Linux-CPU-225x300.png 225w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-Linux-CPU-113x150.png 113w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-Linux-CPU-768x1022.png 768w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-Linux-CPU-1154x1536.png 1154w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-Linux-CPU.png 1186w" sizes="auto, (max-width: 500px) 100vw, 500px" /><figcaption class="wp-element-caption">Although you only see one metric by default, there are many more hidden under Attributes!</figcaption></figure>
</div>


<p>The first thing to understand about linux2mqtt is that it sends a basic state plus a number of state attributes for each sensor. For example, the CPU sensor displays percentage used by default but also sends User, Nice, System, Idle, and so on as &#8220;Attributes&#8221;. These can be seen in the Home Assistant UI by clicking the Attributes dropdown box below the sensor History graph. You can show these attributes in some (but far too few) dashboard cards, or you can create a helper template to use them anywhere.</p>



<p>I don&#8217;t love this. But it&#8217;s what we have to work with.</p>



<p>The easiest thing to do is simply use the basic/default sensor attributes when building Home Assistant cards. This works pretty well for CPU and temperature sensors, and I&#8217;m using those as-is. Total Rate isn&#8217;t too bad for network usage, but I would prefer to show transfer and receive rate. And I&#8217;m really not happy with a display of bytes used as my disk statistic.</p>



<p>Happily, the default Entity Card can show Attributes right from the GUI. I just selected Percent under Attributes, added &#8220;%&#8221; as the Unit, and added a sensible Name. Once you add this, Home Assistant will even show you a proper historic graph for this Attribute when you click on the value. Nice!</p>


<div class="wp-block-image">
<figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large"><img loading="lazy" decoding="async" width="500" height="279" src="https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-Linux-Virtual-Memory-500x279.png" alt="" class="wp-image-10128" srcset="https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-Linux-Virtual-Memory-500x279.png 500w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-Linux-Virtual-Memory-300x167.png 300w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-Linux-Virtual-Memory-150x84.png 150w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-Linux-Virtual-Memory-768x428.png 768w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-Linux-Virtual-Memory-1536x856.png 1536w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-Linux-Virtual-Memory-2048x1141.png 2048w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-Linux-Virtual-Memory-750x420.png 750w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-Linux-Virtual-Memory-630x350.png 630w" sizes="auto, (max-width: 500px) 100vw, 500px" /><figcaption class="wp-element-caption">The Entity Card can use Attributes directly from the Visual Editor</figcaption></figure>
</div>


<p>Looking in the Code Editor, we can see how the Entity Card specifies this Attribute in yaml:</p>



<pre class="wp-block-code"><code>type: entity
entity: sensor.pet_linux_disk_usage_volume
attribute: percent
unit: "%"
name: /</code></pre>



<p>This gives us clues as to how to present this information in other Cards. Some can handle Attributes if you enter them in the Code Editor, while others simply can&#8217;t display them. Sadly the Glance Card does not support Attributes, but I was able to create some slick Cards!</p>


<div class="wp-block-image">
<figure style=' float: right;'  class="alignright size-large is-resized"><img loading="lazy" decoding="async" width="500" height="840" src="https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-Linux-System-Stats-500x840.png" alt="" class="wp-image-10126" style="width:300px" srcset="https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-Linux-System-Stats-500x840.png 500w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-Linux-System-Stats-179x300.png 179w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-Linux-System-Stats-89x150.png 89w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-Linux-System-Stats-768x1290.png 768w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-Linux-System-Stats.png 886w" sizes="auto, (max-width: 500px) 100vw, 500px" /><figcaption class="wp-element-caption">This dashboard combines the mini-graph-card with the basic Entity card</figcaption></figure>
</div>


<p>The linux2mqtt page suggests using <a href="https://github.com/kalkih/mini-graph-card?tab=readme-ov-file">kalkih&#8217;s mini-graph-card</a> to display graphs of sensor data, and I found it to be quite attractive once I customized it. This Card is available in HACS &#8211; just search for mini-graph-card!</p>



<p>Although mini-graph-card doesn&#8217;t support visual editing, it&#8217;s fairly easy to add Attributes to its graphs. For example, here&#8217;s my yaml for a slick network graph:</p>



<pre class="wp-block-code"><code>type: custom:mini-graph-card
entities:
  - entity: sensor.pet_linux_network_throughput_nic_enp2s0
    show_graph: false
  - entity: sensor.pet_linux_network_throughput_nic_enp2s0
    attribute: tx_rate
    name: Transmit
  - entity: sensor.pet_linux_network_throughput_nic_enp2s0
    attribute: rx_rate
    name: Receive
hours_to_show: 24
decimals: 0
name: Pet Network
lower_bound: 0
smoothing: false
show:
  legend: false
  fill: false
  points: false</code></pre>



<p>The resulting card shows aggregate throughput as well as transmit and receive graphs for the host Pet. You&#8217;ll note that the basic aggregate throughput is displayed but not graphed while the transmit and receive stats are graphed on the same scale. I hid the legend, points, and fill since they were simply visual clutter.</p>


<div class="wp-block-image">
<figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large"><img loading="lazy" decoding="async" width="500" height="308" src="https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-CPU-500x308.png" alt="" class="wp-image-10138" srcset="https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-CPU-500x308.png 500w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-CPU-300x185.png 300w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-CPU-150x92.png 150w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-CPU-768x472.png 768w, https://blog.fosketts.net/wp-content/uploads/2024/12/HA-Pet-CPU.png 956w" sizes="auto, (max-width: 500px) 100vw, 500px" /><figcaption class="wp-element-caption">Here&#8217;s my updated CPU and memory card</figcaption></figure>
</div>


<p>Here&#8217;s a nice mini-graph-card setup for CPU and memory. Substitute your own sensor IDs as needed:</p>



<pre class="wp-block-code"><code>type: custom:mini-graph-card
entities:
  - entity: sensor.pet_linux_cpu
    show_graph: false
  - entity: sensor.pet_linux_thermal_zone_k10temp_tctl
    show_state: true
    show_graph: false
  - entity: sensor.pet_linux_virtual_memory
    attribute: percent
    unit: "% RAM"
    show_state: true
    show_graph: false
  - entity: sensor.pet_linux_cpu
    attribute: user
    name: User
  - entity: sensor.pet_linux_cpu
    attribute: system
    name: System
  - entity: sensor.pet_linux_cpu
    attribute: iowait
    name: Wait
hours_to_show: 24
decimals: 1
name: Pet CPU
smoothing: false
show:
  fill: false
  points: false</code></pre>



<h3 class="wp-block-heading">Stephen&#8217;s Stance</h3>



<p>This little project of adding remote system stats to a Dashboard illustrates what I love and hate about Home Assistant. It&#8217;s an excellent platform for collecting and displaying metrics and has an incredible ecosystem of add-ons and supported protocols. But actually getting what you want can be frustrating and fidgety, as witnessed by the spotty support for Attributes in various cards. It&#8217;s frustrating that Attributes are not supported in the Glance card or the new Badges, for instance. But I was ultimately able to make it all work, and the result was worth the effort.</p>
<hr />
<p><small>© Stephen Foskett for <a href="https://blog.fosketts.net">Stephen Foskett, Pack Rat</a>: <a href="https://blog.fosketts.net/2024/12/30/how-to-monitor-linux-server-stats-in-home-assistant/">How to Monitor Linux Server Stats in Home Assistant</a></small></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.fosketts.net/2024/12/30/how-to-monitor-linux-server-stats-in-home-assistant/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Taming Power Outages in the Home and Small Office</title>
		<link>https://blog.fosketts.net/2023/02/28/taming-power-outages-in-the-home-and-small-office/</link>
					<comments>https://blog.fosketts.net/2023/02/28/taming-power-outages-in-the-home-and-small-office/#respond</comments>
		
		<dc:creator><![CDATA[Stephen]]></dc:creator>
		<pubDate>Tue, 28 Feb 2023 13:37:39 +0000</pubDate>
				<category><![CDATA[Everything]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[Terabyte home]]></category>
		<category><![CDATA[APC]]></category>
		<category><![CDATA[EcoFlow]]></category>
		<category><![CDATA[EcoFlow Delta Pro]]></category>
		<category><![CDATA[generator]]></category>
		<category><![CDATA[solar]]></category>
		<category><![CDATA[UPS]]></category>
		<guid isPermaLink="false">https://blog.fosketts.net/?p=10041</guid>

					<description><![CDATA[<p>I worked primarily from home for over a decade, and though I now have an office with a few employees, many of the challenges remain the same. Key among these is power, or lack thereof, and the havoc it can wreak. I recently set about upgrading from my old consumer UPS approach to a real always-on power solution for the home, and thought my blog readers would like to follow along!</p>
<hr />
<p><small>© Stephen Foskett for <a href="https://blog.fosketts.net">Stephen Foskett, Pack Rat</a>: <a href="https://blog.fosketts.net/2023/02/28/taming-power-outages-in-the-home-and-small-office/">Taming Power Outages in the Home and Small Office</a></small></p>
]]></description>
										<content:encoded><![CDATA[
<p>I worked primarily from home for over a decade, and though I now have an office with a few employees, many of the challenges remain the same. Key among these is power, or lack thereof, and the havoc it can wreak. I recently set about upgrading from my old consumer UPS approach to a real always-on power solution for the home, and thought my blog readers would like to follow along!</p>



<p>I&#8217;ll begin with an overview of what&#8217;s available for home and small office power backup. This is by no means exhaustive, but it reflects the realistic options I found when researching. I welcome your suggestions in the comments!</p>


<div class="wp-block-image">
<figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large"><img loading="lazy" decoding="async" width="500" height="500" src="https://blog.fosketts.net/wp-content/uploads/2023/02/EcoFlow-Delta-Pro-and-Portable-Solar-in-bag-500x500.jpeg" alt="" class="wp-image-10052" srcset="https://blog.fosketts.net/wp-content/uploads/2023/02/EcoFlow-Delta-Pro-and-Portable-Solar-in-bag-500x500.jpeg 500w, https://blog.fosketts.net/wp-content/uploads/2023/02/EcoFlow-Delta-Pro-and-Portable-Solar-in-bag-300x300.jpeg 300w, https://blog.fosketts.net/wp-content/uploads/2023/02/EcoFlow-Delta-Pro-and-Portable-Solar-in-bag-150x150.jpeg 150w, https://blog.fosketts.net/wp-content/uploads/2023/02/EcoFlow-Delta-Pro-and-Portable-Solar-in-bag-768x768.jpeg 768w, https://blog.fosketts.net/wp-content/uploads/2023/02/EcoFlow-Delta-Pro-and-Portable-Solar-in-bag-100x100.jpeg 100w, https://blog.fosketts.net/wp-content/uploads/2023/02/EcoFlow-Delta-Pro-and-Portable-Solar-in-bag.jpeg 1280w" sizes="auto, (max-width: 500px) 100vw, 500px" /><figcaption class="wp-element-caption">EcoFlow Delta Pro &#8220;solar generator&#8221; with portable solar panel</figcaption></figure>
</div>


<h2 class="wp-block-heading">Office UPS Units</h2>


<div class="wp-block-image">
<figure style=' float: right;'  class="alignright size-medium"><img loading="lazy" decoding="async" width="300" height="300" src="https://blog.fosketts.net/wp-content/uploads/2023/02/APC-Back-UPS-ES-550-300x300.jpeg" alt="" class="wp-image-10046" srcset="https://blog.fosketts.net/wp-content/uploads/2023/02/APC-Back-UPS-ES-550-300x300.jpeg 300w, https://blog.fosketts.net/wp-content/uploads/2023/02/APC-Back-UPS-ES-550-500x500.jpeg 500w, https://blog.fosketts.net/wp-content/uploads/2023/02/APC-Back-UPS-ES-550-150x150.jpeg 150w, https://blog.fosketts.net/wp-content/uploads/2023/02/APC-Back-UPS-ES-550-768x768.jpeg 768w, https://blog.fosketts.net/wp-content/uploads/2023/02/APC-Back-UPS-ES-550-100x100.jpeg 100w, https://blog.fosketts.net/wp-content/uploads/2023/02/APC-Back-UPS-ES-550.jpeg 1280w" sizes="auto, (max-width: 300px) 100vw, 300px" /><figcaption class="wp-element-caption">Most of us have a few of these around the home or office, typically with a dead battery&#8230;</figcaption></figure>
</div>


<p>By far the easiest approach to dealing with power outages is to use a consumer un-interruptable power system (UPS). These are widely available and start around $100, making them easy to deploy.</p>



<p>The biggest issue with consumer UPSes is that they lack any real long-term power capability. Despite the big numbers on the box the run time for a UPS is measured in minutes rather than hours, making them an incomplete solution if the power is out for long. Even larger or more expensive ones only last a few hours, and running them down to zero will destroy the expensive batteries inside. This is the other big issue. Expect to spend about the purchase price every few years to replace the sealed lead-acid batteries. Most UPS controls can&#8217;t actually detect a bad battery so you&#8217;re often surprised when your UPS instantly dies without warning. UPS units also can&#8217;t power high-wattage devices like the sump pump that keeps my basement dry. And their AC inverters are cheap, noisy square wave &#8220;choppers&#8221; so some equipment might not like the power.</p>



<p>Still, UPS units are a great way to quickly cover short-term power outages and can make a nice complement to a bigger power solution. In fact, I spent some money replacing the batteries in a few UPS units to make sure the rest of my solution is truly uninterrupted!</p>



<h2 class="wp-block-heading">Gas-Powered Generators</h2>


<div class="wp-block-image">
<figure style=' float: right;'  class="alignright size-medium"><img loading="lazy" decoding="async" width="300" height="211" src="https://blog.fosketts.net/wp-content/uploads/2023/02/640px-Honda_EBR2300CX_004-300x211.jpg" alt="" class="wp-image-10047" srcset="https://blog.fosketts.net/wp-content/uploads/2023/02/640px-Honda_EBR2300CX_004-300x211.jpg 300w, https://blog.fosketts.net/wp-content/uploads/2023/02/640px-Honda_EBR2300CX_004-500x352.jpg 500w, https://blog.fosketts.net/wp-content/uploads/2023/02/640px-Honda_EBR2300CX_004-150x105.jpg 150w, https://blog.fosketts.net/wp-content/uploads/2023/02/640px-Honda_EBR2300CX_004.jpg 640w" sizes="auto, (max-width: 300px) 100vw, 300px" /><figcaption class="wp-element-caption"><a href="https://commons.wikimedia.org/w/index.php?curid=22960474">By Tennen-Gas &#8211; Own work, CC BY-SA 3.0</a></figcaption></figure>
</div>


<p>One popular solution to longer-term power outages is a generator. Smaller portable units typically cost around $1000 while large fixed generators can cost more than 10 times that much. They usually use liquid fuel (gasoline) or gas (propane or natural gas) to power a small piston engine (air or liquid cooled) and run an AC inverter. Portable generators usually have a few conventional AC outlets, so you would run extension cords inside to keep a few key appliances running, while larger units are usually hard-wired to the house.</p>



<p>Because they burn fossil fuels, generators must be vented and usually are placed outdoors when running. This complicates installation and use. Portable generators are usually stored in a garage or shed and rolled out manually when needed. So it takes a good hour to get up and running, since the generator must be moved into place and fueled and extension cables must be run to necessary appliances. As anyone with a lawnmower knows, small engines like these require maintenance and gasoline (even with fuel stabilizers) can go bad over time. Unless you are careful to regularly test and maintain your generator you might find that it won&#8217;t start or run reliably when you need it most! Propane is much better in this regard, since it is more stable and portable. Natural gas hookups are even better. But the engines still require maintenance (oil changes, air filter cleaning, etc) regardless of fuel.</p>


<div class="wp-block-image">
<figure style=' float: right;'  class="alignright size-medium"><img loading="lazy" decoding="async" width="300" height="300" src="https://blog.fosketts.net/wp-content/uploads/2023/02/Honeywell-22kW-Home-Standby-Generator-300x300.jpeg" alt="" class="wp-image-10048" srcset="https://blog.fosketts.net/wp-content/uploads/2023/02/Honeywell-22kW-Home-Standby-Generator-300x300.jpeg 300w, https://blog.fosketts.net/wp-content/uploads/2023/02/Honeywell-22kW-Home-Standby-Generator-500x500.jpeg 500w, https://blog.fosketts.net/wp-content/uploads/2023/02/Honeywell-22kW-Home-Standby-Generator-150x150.jpeg 150w, https://blog.fosketts.net/wp-content/uploads/2023/02/Honeywell-22kW-Home-Standby-Generator-100x100.jpeg 100w, https://blog.fosketts.net/wp-content/uploads/2023/02/Honeywell-22kW-Home-Standby-Generator.jpeg 680w" sizes="auto, (max-width: 300px) 100vw, 300px" /><figcaption class="wp-element-caption"><a href="https://www.costco.com/honeywell-22kw-home-standby-generator-with-transfer-switch.product.100767860.html">Honeywell 22kW Home Standby Generator, </a>Costco.com</figcaption></figure>
</div>


<p>&#8220;Whole house&#8221; generators are permanently installed, typically on a slab of concrete, and wired to a transfer switch inside the house. I talked to many friends and neighbors who spent the money (typically $10,000 to $20,000) for a complete whole-home generator setup and none was happy with theirs. The best setups use an automatic transfer switch (see below) and power on once a month, yet they often failed to perform as expected in outages. I&#8217;m sure people will disagree in the comments (especially dealers of whole-home generators) but the reviews of these solutions are awful. A family member is on their third unit and recently found that it needs to be replaced again! On the plus side, whole-home generators can power the entire house and (in theory) can be activated in a few minutes in the event of an outage.</p>



<p>One common issue with generator-based solutions is fuel consumption. Although manufacturers no longer publish &#8220;idle&#8221; numbers, it is clear that they are most efficient under moderate to heavy load. Most will &#8220;drink&#8221; 25% or even 50% as much at light load as at full throttle. This might not be a problem (apart from cost and pollution) when connected to a natural gas pipe or large tank, but it&#8217;s a real concern for portable units with small tanks. Because it&#8217;s not a good idea to store gasoline for months or years, be prepared to run to the station to fill up when the power goes out! This is one reason to consider propane instead: It&#8217;s stable for years and a 20 lb tank runs as long as 5 gallons of gasoline.</p>



<h2 class="wp-block-heading">Solar Panels</h2>


<div class="wp-block-image">
<figure style=' float: right;'  class="alignright size-medium"><img loading="lazy" decoding="async" width="294" height="300" src="https://blog.fosketts.net/wp-content/uploads/2023/02/706px-Children_of_the_Sun_Solar_Initiative_48132850231-294x300.jpg" alt="" class="wp-image-10049" srcset="https://blog.fosketts.net/wp-content/uploads/2023/02/706px-Children_of_the_Sun_Solar_Initiative_48132850231-294x300.jpg 294w, https://blog.fosketts.net/wp-content/uploads/2023/02/706px-Children_of_the_Sun_Solar_Initiative_48132850231-500x510.jpg 500w, https://blog.fosketts.net/wp-content/uploads/2023/02/706px-Children_of_the_Sun_Solar_Initiative_48132850231-147x150.jpg 147w, https://blog.fosketts.net/wp-content/uploads/2023/02/706px-Children_of_the_Sun_Solar_Initiative_48132850231.jpg 706w" sizes="auto, (max-width: 294px) 100vw, 294px" /><figcaption class="wp-element-caption"><a href="https://commons.wikimedia.org/w/index.php?curid=79977287">By U.S. Department of Energy from United States &#8211; Children of the Sun Solar Initiative, Public Domain</a></figcaption></figure>
</div>


<p>Solar panels are amazing, but they don&#8217;t solve the problem alone. One of the common misconceptions about solar panels is that they will power your home or business in the event of an outage. In fact, this is illegal in most locations and is simply not practical. Solar panels are an excellent power source, help reduce greenhouse and CO2 emissions, and cost less than you would think. But most installations are grid-connected and do not provide power in the event of an outage, even on a sunny day! This would require the addition of a battery and transfer switch, which is much more costly and complex, as we will discuss.</p>



<p>Solar panels have really improved over the last few decades, and today&#8217;s panels can provide an incredibly amount of electric power at very low cost. In fact, it is now cheaper to buy and install solar than to use conventional power for just a few years. But the power they provide varies dramatically moment-to-moment. A shadow on a panel can reduce or stop production, and they must be properly angled to maximize output. And of course they only produce electricity in direct sunlight. Therefore most modern solar deployments are connected to the electric grid, offsetting your demand or even powering the local grid when the sun is shining. Many also use &#8220;micro inverters&#8221; to output AC from each panel to reduce the impact of local shadows or under-performing panels on the rest of the system.</p>



<p>For the purposes of this article, I will lump solar panels together with the public grid as a power source but not as a solution to cover mid- to long-term power outages for the home or office. I strongly recommend investing in solar, however, since it brings many benefits and doesn&#8217;t cost as much as you think! Many in the DiY community are buying bulk or surplus panels for well under $1000 and connecting them to the expensive systems listed here.</p>



<h2 class="wp-block-heading">Larger Battery Systems</h2>



<p>I&#8217;ve mentioned batteries a few times so far, so it&#8217;s time to tackle the peculiarities of these. When considering battery-backed power, it&#8217;s important to consider the cost and benefits of the various options. There are small battery systems like the UPS mentioned earlier and larger solutions like the Tesla Power Wall and similar devices. Then we must consider chemistry, from lead-acid to lithium-ion, and the variations on each.</p>



<p>Since we covered consumer UPS devices above, let&#8217;s focus only on larger units capable of supplying 1 kWh or more. If you&#8217;re on a budget, there are a variety of less-expensive battery systems designed for computer and telecom racks. These <a href="https://www.mobile-solarpower.com/server-rack-lifepo4.html">typically cost</a> $1000-$2000 for 5 kWh, which is remarkably affordable compared to name-brand packs. They can be paired with an inverter and solar panel management system for $1300 more, resulting in a functional system under $5000. There&#8217;s a whole world of DiY solar and battery hackers out there, and they&#8217;re doing <a href="https://www.youtube.com/channel/UCxsQVLAwuT_4UGewTEaHr0Q">amazing work</a> <a href="https://www.youtube.com/user/nocrf50here">building batteries out of surplus laptop cells</a>, but this is certainly not for everyone. Still, there are some amazing resources out there like Will Prouse&#8217;s <a href="https://www.mobile-solarpower.com">mobile-solarpower.com</a> and <a class="vglnk" href="https://diysolarforum.com/" rel="nofollow"><span>diysolarforum.com</span></a>.</p>


<div class="wp-block-image">
<figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large"><img loading="lazy" decoding="async" width="500" height="271" src="https://blog.fosketts.net/wp-content/uploads/2023/02/1280px-Batterie_Powerwall_de_Tesla-500x271.jpg" alt="" class="wp-image-10050" srcset="https://blog.fosketts.net/wp-content/uploads/2023/02/1280px-Batterie_Powerwall_de_Tesla-500x271.jpg 500w, https://blog.fosketts.net/wp-content/uploads/2023/02/1280px-Batterie_Powerwall_de_Tesla-300x163.jpg 300w, https://blog.fosketts.net/wp-content/uploads/2023/02/1280px-Batterie_Powerwall_de_Tesla-150x81.jpg 150w, https://blog.fosketts.net/wp-content/uploads/2023/02/1280px-Batterie_Powerwall_de_Tesla-768x416.jpg 768w, https://blog.fosketts.net/wp-content/uploads/2023/02/1280px-Batterie_Powerwall_de_Tesla.jpg 1280w" sizes="auto, (max-width: 500px) 100vw, 500px" /><figcaption class="wp-element-caption"><a href="https://www.flickr.com/photos/158096755@N08/41981900820">By Kenneth Lund</a>, CC BY 2.0</figcaption></figure>
</div>


<p>The Tesla Power Wall is a very nice integrated battery solution that works with or without solar panels. As of 2023 you can only buy a Tesla Power Wall with a complete solar solution, and the battery unit itself costs $12,850 for 13.5 kWh. Tesla uses lithium nickel manganese cobalt oxide (NMC) power cells in the Power Wall and carefully manages them (reducing usable capacity) to avoid damaging them. Tesla also sells solar roof tiles, but they are really not competitive: I priced out a Tesla solar and Power Wall solution for my home and it was over $100,000! Even a roof-mounted solar panel system with a power wall came out over $30k from a local provider.</p>


<div class="wp-block-image">
<figure style=' float: right;'  class="alignright size-medium"><img loading="lazy" decoding="async" width="300" height="225" src="https://blog.fosketts.net/wp-content/uploads/2023/02/EcoFlow-Delta-Pro-3-300x225.jpeg" alt="" class="wp-image-10051" srcset="https://blog.fosketts.net/wp-content/uploads/2023/02/EcoFlow-Delta-Pro-3-300x225.jpeg 300w, https://blog.fosketts.net/wp-content/uploads/2023/02/EcoFlow-Delta-Pro-3-500x375.jpeg 500w, https://blog.fosketts.net/wp-content/uploads/2023/02/EcoFlow-Delta-Pro-3-150x113.jpeg 150w, https://blog.fosketts.net/wp-content/uploads/2023/02/EcoFlow-Delta-Pro-3-768x576.jpeg 768w, https://blog.fosketts.net/wp-content/uploads/2023/02/EcoFlow-Delta-Pro-3.jpeg 1280w" sizes="auto, (max-width: 300px) 100vw, 300px" /><figcaption class="wp-element-caption">EcoFlow Delta Pro &#8220;solar generator&#8221;</figcaption></figure>
</div>


<p>There is also an emerging class of so-called &#8220;solar generators&#8221; which combine solar and other DC inputs with an AC inverter and battery in a single unit. Some of these are compact and portable while others are larger and heavier or even fixed in place. Technically even the Tesla Power Wall is a solar generator! Perhaps the best of breed as of 2023 is the <a href="https://www.ecoflow.com/us/delta-pro-portable-power-station">EcoFlow Delta Pro</a>, one of the most successful kickstarter projects of all time. It uses an advanced LFP battery and provides 3.6 kWh of power as part of an ecosystem of products. Spoiler alert: I just bought two!</p>



<h2 class="wp-block-heading">From Extension Cords to Transfer Switches</h2>



<p>One of the biggest issues for battery backup solutions is cabling. How do you connect your existing equipment to the generator or battery and how do you switch over (and back) when the power goes out? Most cheaper &#8220;solutions&#8221; rely on a nest of extension cords from the generator to the devices themselves, rolled out and plugged in by hand when the power goes out. This is especially an issue for portable generators since they must be placed outside when running! The inside/outside issue is one reason most people lack any kind of power protection and many generators remain unused even when the power does go out.</p>



<p>The recommended solution for generators is to hard-wire a power circuit from the pad or patio to the breaker board. This can be terminated inside as one or more electrical outlets, but this still requires extension cords or manual re-wiring inside. A better solution is a transfer switch, which cuts the connection of a whole circuit from the grid to the backup generator or battery. A cheap manual transfer switch costs about $200 but requires manual activation when the power goes out. Automatic transfer switches exist too, but they&#8217;re much more expensive, starting at $1000. And any transfer switch requires extensive electrical installation work.</p>



<p>High-end transfer switches are able to switch between supplies (grid, solar, battery, or generator) nearly instantly, often using an app or schedule, and the best can prioritize various circuits based on demand and supply of power. For example, all circuits could be cut over to battery or generator power when the power goes out and lower-priority circuits could be cut as the power reserve is depleted. These can also dynamically allocate power, for example running on solar on sunny days and switching to the grid or battery at night. <a href="https://www.ecoflow.com/us/whole-home-backup-power-solution">EcoFlow&#8217;s Smart Home Panel</a> is an example of this smart home transfer switch.</p>



<h2 class="wp-block-heading">What Solution is Right for You?</h2>



<p>There are a lot of options, but it&#8217;s difficult to recommend any one solution. Solar panels are amazing, but an integrated solar setup can be costly and still won&#8217;t power your equipment through an outage without a battery backup system. Generators are cheap but most people are disappointed by the (lack of) usability in practice. It&#8217;s incredibly challenging to select and construct a system that is affordable and user friendly, leading many people to simply make do without power.</p>



<p>Expect to pair multiple devices to arrive at a complete solution. Even the fastest automatic transfer switch or generator inverter will have a gap, so a downstream UPS is required to keep computers up and running. And solar panels work best when paired with a battery and automatic transfer switch. You get the picture: You&#8217;re going to be buying and integrating a few different components.</p>



<h2 class="wp-block-heading">Stephen&#8217;s Stance</h2>



<p>I recently went through the process of evaluating and selecting an emergency power solution, and this article is the first in a series to lay out the various options. Although I&#8217;m something of a hacker, I decided to go with an integrated ecosystem rather than DiY, yet I couldn&#8217;t justify the expense of a Tesla solar roof and Power Wall setup. I ended up purchasing <a href="https://www.ecoflow.com/collections/smart">a pair of EcoFlow Delta Pro &#8220;solar generators&#8221; and their Smart Home Panel switch</a>. I&#8217;ll go into more detail in later posts!</p>
<hr />
<p><small>© Stephen Foskett for <a href="https://blog.fosketts.net">Stephen Foskett, Pack Rat</a>: <a href="https://blog.fosketts.net/2023/02/28/taming-power-outages-in-the-home-and-small-office/">Taming Power Outages in the Home and Small Office</a></small></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.fosketts.net/2023/02/28/taming-power-outages-in-the-home-and-small-office/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Monitor Air Traffic With a Software-Defined Radio and a Raspberry Pi</title>
		<link>https://blog.fosketts.net/2023/02/16/monitor-air-traffic-with-a-software-defined-radio-and-a-raspberry-pi/</link>
					<comments>https://blog.fosketts.net/2023/02/16/monitor-air-traffic-with-a-software-defined-radio-and-a-raspberry-pi/#comments</comments>
		
		<dc:creator><![CDATA[Stephen]]></dc:creator>
		<pubDate>Thu, 16 Feb 2023 17:00:00 +0000</pubDate>
				<category><![CDATA[Everything]]></category>
		<category><![CDATA[Terabyte home]]></category>
		<category><![CDATA[ADS-B]]></category>
		<category><![CDATA[FlightAware]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[SDR]]></category>
		<guid isPermaLink="false">https://blog.fosketts.net/?p=10030</guid>

					<description><![CDATA[<p>If you're a real hacker, you're interested in all sorts of tech, from computers and the internet to radio to airplanes. The intersection of all of these interests is ADS-B, the protocol used by aircraft to share data like position and speed. Widespread availability of cheap software-defined radio (SDR) receivers and cheap computers like the Raspberry Pi makes it easy for anyone to join a global network sharing ADS-B data. Read on to learn how to build your own ADS-B receiver for under $100 and get involved!</p>
<hr />
<p><small>© Stephen Foskett for <a href="https://blog.fosketts.net">Stephen Foskett, Pack Rat</a>: <a href="https://blog.fosketts.net/2023/02/16/monitor-air-traffic-with-a-software-defined-radio-and-a-raspberry-pi/">Monitor Air Traffic With a Software-Defined Radio and a Raspberry Pi</a></small></p>
]]></description>
										<content:encoded><![CDATA[
<p>If you&#8217;re a <a href="https://en.wikipedia.org/wiki/Hacker_culture">real hacker</a>, you&#8217;re interested in all sorts of tech, from computers and the internet to radio to airplanes. The intersection of all of these interests is <a href="https://en.wikipedia.org/wiki/Automatic_Dependent_Surveillance–Broadcast">ADS-B</a>, the protocol used by aircraft to share data like position and speed. Widespread availability of cheap software-defined radio (SDR) receivers and cheap computers like the Raspberry Pi makes it easy for anyone to join a global network sharing ADS-B data. Read on to learn how to build your own ADS-B receiver for under $100 and get involved!</p>



<h2 class="wp-block-heading">A Little Background on ADS-B</h2>



<p>Although it has a creepy name, <a href="https://en.wikipedia.org/wiki/Automatic_Dependent_Surveillance–Broadcast">Automatic Dependent Surveillance–Broadcast (ADS-B)</a> is pretty cool. Most countries now require all aircraft to broadcast flight data, including position, altitude, speed, and heading, using a standard digital packet-based protocol. This data comes from on-board GPS receivers and other instruments. Larger, high-flying aircraft send these once per second at 1090 MHz. The goal of ADS-B is to augment or even replace radar as the primary means of coordinating flights and avoiding accidents.</p>



<p>Essentially, ADS-B lets receivers &#8220;see&#8221; every aircraft in the sky, and this data is used by pilots, air traffic control, and many others besides. Take a look at <a href="https://flightaware.com">FlightAware</a> and you&#8217;ll a real-time visualization of ADS-B data from thousands of receivers all around the world. But this data isn&#8217;t just collected and used by companies like FlightAware: A network of independent enthusiasts is also collecting, processing, and sharing this data. This was exemplified by ADSB Exchange, but <a href="https://arstechnica.com/tech-policy/2023/01/the-flight-tracker-that-powered-elonjet-has-taken-a-left-turn/">after they were purchased by a for-profit company</a> the task was picked up by <a href="https://globe.adsb.fi">ADSB.fi</a> and others.</p>



<p>As mentioned, all aircraft are required to broadcast ADS-B data, including private and military planes. But FlightAware and similar services only focus on commercial traffic, filtering out everything else. Wouldn&#8217;t it be interesting to see everything?</p>



<h2 class="wp-block-heading">Software-Defined Radio and the ADS-B Community</h2>



<p>A few years back, cheap USB TV tuners began appearing on the market. But hardware hackers quickly noted that the <a href="https://www.realtek.com/en/products/communications-network-ics/item/rtl2832u">RealTek RTL2832U ASIC</a> could receive much more than TV data. Indeed, custom software could enable this little chip to receiv data across the spectrum, including weather, emergency services, and even satellites. A whole world of hobbyist software-defined radio (SDR) applications was opened up!</p>



<p>It&#8217;s important to note that this chip is receive only. In other words, it can &#8220;listen&#8221; to nearly any frequency but can not transmit. There is no risk of interfering with fire fighters, astronomers, or air traffic controllers. And the USB device needs software and supporting hardware to function.</p>



<p>Thankfully, the ubiquitous Raspberry Pi has plenty of horsepower to support most SDR applications, and free software is widely available. Applications like <a href="https://github.com/antirez/dump1090">Dump1090</a> can extract and decode data transmissions from the RTL SDR device, making ADS-B data widely available and usable. This has been embraced both by FlightAware and by a broad international community. There are literally tens of thousands of independently-operated ADS-B receivers collecting and sharing this data all around the world.</p>


<div class="wp-block-image">
<figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large"><img loading="lazy" decoding="async" width="500" height="500" src="https://blog.fosketts.net/wp-content/uploads/2023/02/IMG_7174-500x500.jpeg" alt="" class="wp-image-10034" srcset="https://blog.fosketts.net/wp-content/uploads/2023/02/IMG_7174-500x500.jpeg 500w, https://blog.fosketts.net/wp-content/uploads/2023/02/IMG_7174-300x300.jpeg 300w, https://blog.fosketts.net/wp-content/uploads/2023/02/IMG_7174-150x150.jpeg 150w, https://blog.fosketts.net/wp-content/uploads/2023/02/IMG_7174-768x768.jpeg 768w, https://blog.fosketts.net/wp-content/uploads/2023/02/IMG_7174-1536x1536.jpeg 1536w, https://blog.fosketts.net/wp-content/uploads/2023/02/IMG_7174-2048x2048.jpeg 2048w, https://blog.fosketts.net/wp-content/uploads/2023/02/IMG_7174-100x100.jpeg 100w" sizes="auto, (max-width: 500px) 100vw, 500px" /><figcaption class="wp-element-caption">The <a class="vglnk" href="http://RTL-SDR.com" rel="nofollow"><span>RTL-SDR.com</span></a> kit has everything you need to set up your own home ADS-B receiver station!</figcaption></figure>
</div>


<h2 class="wp-block-heading">Build Your Own ADS-B Receiver!</h2>



<p>If you&#8217;re interested in exploring this community, it&#8217;s easy and cheap to build your own ADS-B station, using an RTL-SDR dongle and a Raspberry Pi. It literally took less than half an hour for me to start receiving data and sharing it with FlightAware and ADSB.fi! I&#8217;m going to list the simple steps here, but I encourage to to get involved with the community if you want to go deeper or try a different solution.</p>



<p>What you need:</p>



<ul class="wp-block-list">
<li>A Raspberry Pi &#8211; including appropriate power supply and SD card (I used a Model 3B that I had laying around)</li>



<li>An RTL-SDR dongle &#8211; <a href="https://www.rtl-sdr.com/buy-rtl-sdr-dvb-t-dongles/">I bought a kit from <span>rtl-sdr.com</span></a> and had it shipped direct from China but it&#8217;s also available from Amazon (watch out for fakes!)</li>



<li>An antenna &#8211; The RTL-SDR kit I bought came with an antenna that works fine</li>



<li>Software &#8211; <a href="https://www.raspberrypi.com/software/operating-systems/">Raspberry Pi OS Lite</a>, <a href="https://flightaware.com/adsb/piaware/build">PiAware</a>, <a href="https://github.com/d4rken/adsb-fi-scripts">adsb-fi-scripts</a> (there are a lot of software options but this works)</li>
</ul>


<div class="wp-block-image">
<figure style=' float: right;'  class="alignright size-medium"><img loading="lazy" decoding="async" width="214" height="300" src="https://blog.fosketts.net/wp-content/uploads/2023/02/IMG_7186-214x300.jpeg" alt="" class="wp-image-10039" srcset="https://blog.fosketts.net/wp-content/uploads/2023/02/IMG_7186-214x300.jpeg 214w, https://blog.fosketts.net/wp-content/uploads/2023/02/IMG_7186-500x703.jpeg 500w, https://blog.fosketts.net/wp-content/uploads/2023/02/IMG_7186-107x150.jpeg 107w, https://blog.fosketts.net/wp-content/uploads/2023/02/IMG_7186-768x1079.jpeg 768w, https://blog.fosketts.net/wp-content/uploads/2023/02/IMG_7186.jpeg 911w" sizes="auto, (max-width: 214px) 100vw, 214px" /><figcaption class="wp-element-caption">My simple home ADS-B setup</figcaption></figure>
</div>


<p>What to do:</p>



<ol class="wp-block-list">
<li>Set up the Raspberry Pi
<ul class="wp-block-list">
<li>Install Raspberry Pi OS Lite (bullseye 32-bit) on a micro SD card</li>



<li>In raspi-config, configure localization, enable SSH, and set up Wi-Fi</li>



<li>Install fail2ban, add your ssh keys, and disable password-based and root login</li>



<li>I strongly recommend using an official Raspberry Pi power adapter, since generic ones often lack sufficient power and you&#8217;re going to have a juice-sucking USB device permanently attached and running!</li>
</ul>
</li>



<li>Connect the RTL-SDR dongle and antenna
<ul class="wp-block-list">
<li>Plug the dongle into any USB port on the Pi</li>



<li>Screw the antenna base cable to the dongle</li>



<li>Attach the long antennas to the antenna base</li>



<li>Arrange the antennas in a &#8220;T&#8221; shape but do not extend them further</li>



<li>Attach the antenna base to the tripod and arrange it so the antennas are vertical (pointing up and down)</li>



<li>Place the antenna near an outside wall, as high up as possible</li>
</ul>
</li>



<li>Set up the ADS-B software
<ul class="wp-block-list">
<li>Download and install the piaware-repository, dump1090, and dump978 <a href="https://flightaware.com/adsb/piaware/install">per the instructions from FlightAware</a></li>



<li>Reboot and you&#8217;re in business! Go to raspberrypi:8080 to see a web interface on your device!</li>



<li>Register for a FlightAware account and <a href="https://flightaware.com/adsb/piaware/claim">claim your PiAware instance</a> to get a free Enterprise account</li>



<li>Install the <a href="https://github.com/d4rken/adsb-fi-scripts">adsb-fi-scripts per their GitHub</a> to also send data to <a href="https://adsb.fi/">ADSB.fi</a></li>



<li>Install their local interface too (step 4 in the GitHub) and visit raspberrypi/adsbfi/ to see their graph</li>
</ul>
</li>
</ol>



<p>You will be tempted to stretch the antenna all the way out and arrange it like a &#8220;V.&#8221; Don&#8217;t do this. <a href="https://forum.planefinder.net/threads/most-common-mistakes-in-construction-of-diy-ads-b-antennas.1285/">Antennas are bizarre witchcraft</a>. A quarter wavelength antenna at 1090 MHz is just 65.3 mm (2.57 inches) and a half wave (twice this) is roughly the length of the longer metal antenna in the kit. That&#8217;s the longest antenna you want! And it&#8217;s best to orient it straight up and down (like a sideways &#8220;T&#8221;). Just do this for the time being until you&#8217;re ready to nerd out about the antenna.</p>


<div class="wp-block-image">
<figure style=' float: right;'  class="alignright size-medium"><img loading="lazy" decoding="async" width="218" height="300" src="https://blog.fosketts.net/wp-content/uploads/2023/02/IMG_7176-218x300.jpeg" alt="" class="wp-image-10037" srcset="https://blog.fosketts.net/wp-content/uploads/2023/02/IMG_7176-218x300.jpeg 218w, https://blog.fosketts.net/wp-content/uploads/2023/02/IMG_7176-500x687.jpeg 500w, https://blog.fosketts.net/wp-content/uploads/2023/02/IMG_7176-109x150.jpeg 109w, https://blog.fosketts.net/wp-content/uploads/2023/02/IMG_7176-768x1056.jpeg 768w, https://blog.fosketts.net/wp-content/uploads/2023/02/IMG_7176-1117x1536.jpeg 1117w, https://blog.fosketts.net/wp-content/uploads/2023/02/IMG_7176.jpeg 1179w" sizes="auto, (max-width: 218px) 100vw, 218px" /><figcaption class="wp-element-caption">Hey look! A British A380 was flying overhead!</figcaption></figure>
</div>


<p>I love that the ADSB.fi interface generates a coverage map for you, as seen at right. It&#8217;s a rough indication of how far your rig can see, and is regenerated every time you boot. I recommend setting everything up and letting it run for a few hours in various spots around the house to fine the most convenient and effective spot. I did exactly this and my ADS-B station now covers most of Northeast Ohio! I&#8217;m tracking 13 aircraft and receiving over 80 messages per second as I type this.</p>



<h2 class="wp-block-heading">What&#8217;s The Point?</h2>



<p>Although I was excited enough about the prospect of my own ADS-B receiver to but the SDR dongle and set it up, I can imagine some people might be confused. What&#8217;s the point of tracking planes? I gave that a thought:</p>



<ol class="wp-block-list">
<li>The hacker ethos is all about seeing the unseen and investigating the unknown. It&#8217;s fun to slap together a few bits of hardware and software and have it do something unusual.</li>



<li>Because ADS-B is not encrypted or authenticated, some have suggested it could be spoofed or hacked. A proliferation of independent ground stations and robust data collection and processing can help detect or prevent this, keeping everyone safer.</li>



<li>If you&#8217;ve ever heard a plane and wondered what it was, nothing beats having your own receiver! Within 12 hours I spotted (and heard) a <a href="https://en.wikipedia.org/wiki/Lockheed_C-130_Hercules">Canadian CC-130</a>, an American <a href="https://en.wikipedia.org/wiki/Boeing_E-6_Mercury">E-6 Mercury</a>, and a rescue helicopter, and none of these were listed on the commercial flight tracker apps!</li>



<li>Nerds love radio, free software, and airplanes and this brings it all together.</li>



<li>Hey, free Enterprise-level FlightAware account?</li>
</ol>



<p>Yes, FlightAware is a for-profit company and they are selling the data I&#8217;m collecting. But I&#8217;ve used their data for free for years, and am ok with this trade. Plus it&#8217;s simple to contribute to the open community at ADSB.fi at the same time!</p>



<h2 class="wp-block-heading">Stephen&#8217;s Stance</h2>



<p>This whole process took about 30 minutes from unpacking to planespotting, plus a few hours tinkering with antennas. It&#8217;s a great way to explore the world of software-defined radio (SDR) while contributing a useful data source. Plus it&#8217;s fun to know what that plane was!</p>
<hr />
<p><small>© Stephen Foskett for <a href="https://blog.fosketts.net">Stephen Foskett, Pack Rat</a>: <a href="https://blog.fosketts.net/2023/02/16/monitor-air-traffic-with-a-software-defined-radio-and-a-raspberry-pi/">Monitor Air Traffic With a Software-Defined Radio and a Raspberry Pi</a></small></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.fosketts.net/2023/02/16/monitor-air-traffic-with-a-software-defined-radio-and-a-raspberry-pi/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>How To Install ZeroTier on TrueNAS 12</title>
		<link>https://blog.fosketts.net/2022/02/03/how-to-install-zerotier-on-truenas-12/</link>
					<comments>https://blog.fosketts.net/2022/02/03/how-to-install-zerotier-on-truenas-12/#comments</comments>
		
		<dc:creator><![CDATA[Stephen]]></dc:creator>
		<pubDate>Thu, 03 Feb 2022 22:51:03 +0000</pubDate>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Terabyte home]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[FreeNAS]]></category>
		<category><![CDATA[iXsystems]]></category>
		<category><![CDATA[pfSense]]></category>
		<category><![CDATA[Time Machine]]></category>
		<category><![CDATA[TrueNAS]]></category>
		<category><![CDATA[VPN]]></category>
		<category><![CDATA[ZeroTier]]></category>
		<guid isPermaLink="false">https://blog.fosketts.net/?p=9976</guid>

					<description><![CDATA[<p>ZeroTier is an incredibly useful tool to enable true access from anywhere to any networked resource. Although TrueNAS has removed ZeroTier support, the FreeBSD package is easy to install and seems to work fine! The only issue is that it doesn't persist across reboots without some major risky work.</p>
<hr />
<p><small>© Stephen Foskett for <a href="https://blog.fosketts.net">Stephen Foskett, Pack Rat</a>: <a href="https://blog.fosketts.net/2022/02/03/how-to-install-zerotier-on-truenas-12/">How To Install ZeroTier on TrueNAS 12</a></small></p>
]]></description>
										<content:encoded><![CDATA[
<p><a href="https://blog.fosketts.net/2022/01/14/how-to-connect-everything-from-everywhere-with-zerotier/">ZeroTier is an incredibly useful tool</a> to enable true access from anywhere to any networked resource. I&#8217;ve been using it for a few months to access my Home Assistant instances, VNC to my home Mac, and log in to my servers even as I&#8217;m traveling and using odd networks like airplane and hotel Wi-Fi and LTE on my iPhone. Although TrueNAS has removed ZeroTier support, the FreeBSD package is easy to install and seems to work fine! The only issue is that it doesn&#8217;t persist across reboots without some major risky work.</p>



<div class="wp-block-image"><figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full"><img loading="lazy" decoding="async" width="1798" height="286" src="https://blog.fosketts.net/wp-content/uploads/2022/02/ZeroTier-networks-on-TrueNAS.jpg" alt="" class="wp-image-9982" srcset="https://blog.fosketts.net/wp-content/uploads/2022/02/ZeroTier-networks-on-TrueNAS.jpg 1798w, https://blog.fosketts.net/wp-content/uploads/2022/02/ZeroTier-networks-on-TrueNAS-300x48.jpg 300w, https://blog.fosketts.net/wp-content/uploads/2022/02/ZeroTier-networks-on-TrueNAS-500x80.jpg 500w, https://blog.fosketts.net/wp-content/uploads/2022/02/ZeroTier-networks-on-TrueNAS-150x24.jpg 150w, https://blog.fosketts.net/wp-content/uploads/2022/02/ZeroTier-networks-on-TrueNAS-768x122.jpg 768w, https://blog.fosketts.net/wp-content/uploads/2022/02/ZeroTier-networks-on-TrueNAS-1536x244.jpg 1536w" sizes="auto, (max-width: 1798px) 100vw, 1798px" /><figcaption>Proof that ZeroTier can run natively on TrueNAS 12!</figcaption></figure></div>



<p class="has-text-align-center"><em>You would probably like my other article, <a href="https://blog.fosketts.net/2022/01/14/how-to-connect-everything-from-everywhere-with-zerotier/">How to Connect Everything from Everywhere with ZeroTier</a></em></p>



<h2 class="wp-block-heading" id="freenas-truenas-and-zerotier">FreeNAS, TrueNAS, and ZeroTier</h2>



<p>TrueNAS is one of the best options for building a home or small office fileserver. Formerly known as FreeNAS, it uses ZFS and FreeBSD to provide reliable and flexible storage. I&#8217;ve previously written about <a href="https://blog.fosketts.net/2016/08/10/14-drives-14-ports-case-freenas/">my home TrueNAS build</a>, which I use for general file storage as well as Time Machine backups, and it&#8217;s still going strong.</p>



<p>ZeroTier was offered as an installable package for FreeNAS but was removed in version 11.3. <a href="https://www.truenas.com/community/threads/secure-access-to-lan-from-wan.81424/#post-564650">According to Kris Moore</a>, SVP of Engineering at iXsystems, maker of TrueNAS, it was removed for licensing reasons. Apparently, ZeroTier no longer allows governmental or SaaS use, and iXsystems felt this was incompatible with TrueNAS. Although it is possible to access a TrueNAS system using OpenVPN, WireGuard, or even through a router on a ZeroTier network, I strongly prefer a native ZeroTier client.</p>



<h2 class="wp-block-heading" id="install-freebsd-packages-on-truenas-12">Install FreeBSD Packages on TrueNAS 12</h2>



<p>Since TrueNAS is built on FreeBSD 12, it can easily run the native FreeBSD build of ZeroTier. Although TrueNAS is configured by default not to allow installation of FreeBSD packages, it is fairly easy to enable this and install ZeroTier.</p>



<p>The first step is to allow FreeBSD packages to be installed. <a href="https://www.justinsilver.com/random/fix-pkg-on-freenas-11-2/">As documented by Justin Silver</a>, this requires modifying two files to enable access to the FreeBSD repository. SSH to your TrueNAS box and do the following.</p>



<p>Disable local packages:</p>



<pre class="wp-block-preformatted">sudo vi /usr/local/etc/pkg/repos/local.conf
# Change "enabled: yes" to "enabled: no" to turn off access to the local packages repo</pre>



<p>Enable FreeBSD packages:</p>



<pre class="wp-block-preformatted">sudo vi /usr/local/etc/pkg/repos/FreeBSD.conf
# Change "enabled: no" to "enabled: yes" to allow access to the FreeBSD packages repo</pre>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1296" height="356" data-id="9977" src="https://blog.fosketts.net/wp-content/uploads/2022/02/FreeBSD-FreeBSD.conf_.jpg" alt="" class="wp-image-9977" srcset="https://blog.fosketts.net/wp-content/uploads/2022/02/FreeBSD-FreeBSD.conf_.jpg 1296w, https://blog.fosketts.net/wp-content/uploads/2022/02/FreeBSD-FreeBSD.conf_-300x82.jpg 300w, https://blog.fosketts.net/wp-content/uploads/2022/02/FreeBSD-FreeBSD.conf_-500x137.jpg 500w, https://blog.fosketts.net/wp-content/uploads/2022/02/FreeBSD-FreeBSD.conf_-150x41.jpg 150w, https://blog.fosketts.net/wp-content/uploads/2022/02/FreeBSD-FreeBSD.conf_-768x211.jpg 768w" sizes="auto, (max-width: 1296px) 100vw, 1296px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1296" height="356" data-id="9978" src="https://blog.fosketts.net/wp-content/uploads/2022/02/FreeBSD-local.conf_.jpg" alt="" class="wp-image-9978" srcset="https://blog.fosketts.net/wp-content/uploads/2022/02/FreeBSD-local.conf_.jpg 1296w, https://blog.fosketts.net/wp-content/uploads/2022/02/FreeBSD-local.conf_-300x82.jpg 300w, https://blog.fosketts.net/wp-content/uploads/2022/02/FreeBSD-local.conf_-500x137.jpg 500w, https://blog.fosketts.net/wp-content/uploads/2022/02/FreeBSD-local.conf_-150x41.jpg 150w, https://blog.fosketts.net/wp-content/uploads/2022/02/FreeBSD-local.conf_-768x211.jpg 768w" sizes="auto, (max-width: 1296px) 100vw, 1296px" /></figure>
<figcaption class="blocks-gallery-caption">Change two files to allow access to FreeBSD packages</figcaption></figure>



<p>Now you will be able to install any FreeBSD package using the native pkg utility. This will not persist following a reboot, so updating ZeroTier won&#8217;t be possible without going through these steps again!</p>



<h2 class="wp-block-heading" id="install-zerotier-on-truenas-12">Install ZeroTier on TrueNAS 12</h2>



<p>Assuming you have already set up ZeroTier and have a network ID, type the following in your TrueNAS terminal to install and configure <a href="https://www.freshports.org/net/zerotier/">the FreeBSD ZeroTier package</a>:</p>



<pre class="wp-block-preformatted">sudo pkg install zerotier
sudo /usr/local/sbin/zerotier-one -d
sudo /usr/local/bin/zerotier-cli join &lt;your network ID></pre>



<p>If all goes as expected, your TrueNAS box will now show up in your ZeroTier Central interface. Accept it and (optionally) manually assign an IP address.</p>



<p>Use ifconfig to validate that the interfaces are up, and type sudo /usr/local/bin/zerotier-cli listnetworks to ensure that any networks show &#8220;OK&#8221;. Next, test connectivity by pinging your TrueNAS machine from another ZeroTier client and vice-versa. If everything went OK you should have no trouble accessing your file server from anywhere!</p>



<h2 class="wp-block-heading" id="make-zerotier-persistent-on-truenas-12">Make ZeroTier Persistent on TrueNAS 12</h2>



<p>But there&#8217;s still one big issue with TrueNAS: It wipes all this configuration after every reboot! So you&#8217;ll have to re-start the ZeroTier daemon and re-join all your networks each time you reboot. That&#8217;s a bummer.</p>



<p>If you want to make ZeroTier (or any other service on TrueNAS) persistent across reboots you have to do some black magic to override this behavior.</p>



<div class="wp-block-image"><figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full"><img loading="lazy" decoding="async" width="540" height="250" src="https://blog.fosketts.net/wp-content/uploads/2022/02/McCoy-Permit-Illegal-Thing.jpg" alt="" class="wp-image-9980" srcset="https://blog.fosketts.net/wp-content/uploads/2022/02/McCoy-Permit-Illegal-Thing.jpg 540w, https://blog.fosketts.net/wp-content/uploads/2022/02/McCoy-Permit-Illegal-Thing-300x139.jpg 300w, https://blog.fosketts.net/wp-content/uploads/2022/02/McCoy-Permit-Illegal-Thing-500x231.jpg 500w, https://blog.fosketts.net/wp-content/uploads/2022/02/McCoy-Permit-Illegal-Thing-150x69.jpg 150w" sizes="auto, (max-width: 540px) 100vw, 540px" /><figcaption>The following is dangerous and could result in a non-bootable system. Just like visiting Planet Genesis in Star Trek III, modifying TrueNAS like this is forbidden!</figcaption></figure></div>



<p>The TrueNAS developers really don&#8217;t want people mucking about with FreeBSD, and for good reason. Making changes to the OS is a great way to ruin a perfectly good system install! But it is possible to modify the configuration in a way that persists, and that&#8217;s what we&#8217;re going to do. Proceed with caution!</p>



<p>ZeroTier uses a few components in different places, some of which won&#8217;t be touched by a TrueNAS reboot. The binaries in /usr/local/sbin and /usr/local/bin are safe, but the configuration files in /var/db/zerotier-one and the daemon setup won&#8217;t survive a reboot.</p>



<p>We need to add a ZeroTier script to /etc/local/rc.d and add an enable to /etc/rc.local so the daemon will start on boot. Thankfully, <a href="https://github.com/ChanceM/pfSense-pkg-zerotier">ChanceM has put in the work for pfSense</a> (which is also FreeBSD based) and we can use <a href="https://github.com/ChanceM/pfSense-pkg-zerotier/blob/master/zerotier">his zerotier rc script</a>!</p>



<pre class="wp-block-preformatted"># Go to <a class="vglnk" href="https://github.com/ChanceM/pfSense-pkg-zerotier/blob/master/zerotier" rel="nofollow"><span>https://github.com/ChanceM/pfSense-pkg-zerotier/blob/master/zerotier</span></a> and copy the text of that file

sudo vi /etc/local/rc.d/zerotier
# Paste in the text and save with :wq

# Make it executable
sudo chmod 555 /etc/local/rc.d/zerotier

# Test your new ZeroTier service
sudo service zerotier stop
sudo service zerotier start</pre>



<p>Now we&#8217;ll set FreeBSD to start the ZeroTier daemon automatically on reboot.</p>



<pre class="wp-block-preformatted">sudo vi /etc/rc.conf

# add the following line right before nginx_enable:
zerotier_enable="Yes"</pre>



<p>Before you proceed, check that your ZeroTier configuration is 100% working!</p>



<p>TrueNAS stores the persistent configuration in /conf/base and uses this to wipe the /etc, /mnt, and /var directories on boot. You can modify /conf/base and make changes to the config using the following commands.</p>



<pre class="wp-block-preformatted"># Before proceeding, get ZeroTier installed and join any and all networks you want to persist!

# back up the ZeroTier components that need to persist
cd / ; sudo tar -cvf ~/zerotier.tar etc/rc.conf etc/local/rc.d/zerotier var/db/zerotier-one
# make the root filesystem writable
sudo mount -uw /
# restore our configuration to the persistent area
cd /conf/base
sudo tar -xvpf ~/zerotier.tar</pre>



<p>That&#8217;s it! ZeroTier should persist across a reboot!</p>



<p>It&#8217;s also likely that upgrading to a new version of TrueNAS will wipe out some or all of this configuration, but the zerotier.tar file we created above should be a good backup. But be careful because restoring it will blow away the contents of rc.conf and that could be bad!</p>



<h2 class="wp-block-heading" id="time-machine-from-anywhere-with-zerotier-and-truenas">Time Machine from Anywhere with ZeroTier and TrueNAS</h2>



<p>My next step is to enable Time Machine backups from my various Mac machines to my TrueNAS box. I created a second ZeroTier network for this so I can have better control over the process: Time Machine starts automatically when you are &#8220;on network&#8221; with the target server but this isn&#8217;t always desirable when you&#8217;re connected via LTE or other expensive or slow networks. Since it&#8217;s simple to have multiple ZeroTier networks configured and running at once, I can connect to or disconnect from my Time Machine network to allow backups to happen.</p>



<p>Once the Time Machine network is set up, I connect to the fileserver using the ZeroTier Time Machine network IP address and configure Time Machine on my Mac to use this as a target. After this, all I have to do is connect to the Time Machine network in ZeroTier and my Mac will see the file server and begin backing up on a regular basis!</p>



<p>I actually haven&#8217;t gotten this working yet because I&#8217;m having issues backing up to TrueNAS shares. But I was able to get it working from one Mac to another, so it ought to work fine. The issue is TrueNAS not ZeroTier.</p>



<h2 class="wp-block-heading" id="stephen-s-stance">Stephen&#8217;s Stance</h2>



<p>Don&#8217;t do this. Seriously, if you&#8217;re wondering if you should enable ZeroTier natively on TrueNAS but aren&#8217;t sure about all this, just stop now. I&#8217;ve been a UNIX sysadmin for over 25 years, and I&#8217;m extremely comfortable mucking about with systems, but most people probably aren&#8217;t. Also I don&#8217;t really have time to debug your particular configuration, so please don&#8217;t expect this of me.</p>



<p>If you&#8217;re a UNIX nerd like me, though, this is an effective way to install ZeroTier natively on TrueNAS. It&#8217;s not perfect (the ZeroTier interfaces don&#8217;t show up in TrueNAS Network Summary, for example) but it&#8217;s definitely usable! And maybe all this will help others wondering how to install software and persist across reboots on TrueNAS.</p>
<hr />
<p><small>© Stephen Foskett for <a href="https://blog.fosketts.net">Stephen Foskett, Pack Rat</a>: <a href="https://blog.fosketts.net/2022/02/03/how-to-install-zerotier-on-truenas-12/">How To Install ZeroTier on TrueNAS 12</a></small></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.fosketts.net/2022/02/03/how-to-install-zerotier-on-truenas-12/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>How To Connect Everything From Everywhere with ZeroTier</title>
		<link>https://blog.fosketts.net/2022/01/14/how-to-connect-everything-from-everywhere-with-zerotier/</link>
					<comments>https://blog.fosketts.net/2022/01/14/how-to-connect-everything-from-everywhere-with-zerotier/#comments</comments>
		
		<dc:creator><![CDATA[Stephen]]></dc:creator>
		<pubDate>Fri, 14 Jan 2022 17:28:23 +0000</pubDate>
				<category><![CDATA[Everything]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[Terabyte home]]></category>
		<category><![CDATA[Home Assistant]]></category>
		<category><![CDATA[NAT]]></category>
		<category><![CDATA[NUC]]></category>
		<category><![CDATA[OpenVPN]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[SD-WAN]]></category>
		<category><![CDATA[Tech Field Day]]></category>
		<category><![CDATA[VPN]]></category>
		<category><![CDATA[ZeroTier]]></category>
		<guid isPermaLink="false">https://blog.fosketts.net/?p=9952</guid>

					<description><![CDATA[<p>If you're like me, you have a lot of different systems running in different places: at work, at home, in the lab, and in the cloud. And if you're like me you've often struggled to connect and access these machines, especially when you're on the road. At long last, I have a fully functional solution that lets me access everything from everywhere, securely and efficiently, whether on the open internet or behind NAT after NAT. The solution is ZeroTier!</p>
<hr />
<p><small>© Stephen Foskett for <a href="https://blog.fosketts.net">Stephen Foskett, Pack Rat</a>: <a href="https://blog.fosketts.net/2022/01/14/how-to-connect-everything-from-everywhere-with-zerotier/">How To Connect Everything From Everywhere with ZeroTier</a></small></p>
]]></description>
										<content:encoded><![CDATA[
<p>If you&#8217;re like me, you have a lot of different systems running in different places: at work, at home, in the lab, and in the cloud. And if you&#8217;re like me you&#8217;ve often struggled to connect and access these machines, especially when you&#8217;re on the road. At long last, I have a fully functional solution that lets me access everything from everywhere, securely and efficiently, whether on the open internet or behind NAT after NAT. The solution is <a href="https://zerotier.com">ZeroTier</a>!</p>



<h2 class="wp-block-heading">Connectivity Challenges of the Modern Nerd</h2>



<p>I have a variety of computer systems I like to access, and most are inherently inaccessible. Some of this is incidental, thanks to NAT and consumer telcos, but I&#8217;m also careful to lock them up with firewalls and access controls. I&#8217;ve been searching for a reliable, friendly, and secure way to access everything from everywhere since forever, and I finally have just the thing up and running!</p>



<p>Here&#8217;s a rough inventory of the systems I&#8217;m trying to access, and why it&#8217;s hard to get to them:</p>



<ul class="wp-block-list"><li>My <strong>home network</strong> is served by two unreliable consumer ISPs (Spectrum and Windstream), each with its own NAT. These are fed to a pfSense router with another layer of NAT, but I often switch ISPs as one falls on its face. Inside my home I have a firewalled VLAN for IoT devices and another for <a href="https://blog.fosketts.net/2020/09/10/introducing-rabbit-i-bought-a-cloud/">my home lab</a>. I&#8217;ve also got a big TrueNAS file server, some Macs, a few Ubuntu machines, and a Home Assistant instance.</li><li>My <strong>office</strong> has amazing high-speed connectivity but the building router is inaccessible to me and feeds my office pfSense with two layers of NAT. Here again, I&#8217;ve got a firewalled VLAN for my office lab machines, along with a bunch of Macs, a file server, a few more Ubuntu machines, and another Home Assistant instance.</li><li>My <strong>web servers</strong> run in Linode using Docker and are well firewalled.</li><li>My <strong>mobile clients</strong> include my new 14&#8243; M1 MacBook Pro, my trusty <a href="https://blog.fosketts.net/2018/11/11/ranting-and-raving-about-the-2018-ipad-pro/">iPad Pro</a>, and my iPhone. I&#8217;m often connected using mobile data of course, but I also sometimes use Wi-Fi at hotels, family, or work spaces.</li></ul>



<div class="wp-block-image"><figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full"><img loading="lazy" decoding="async" width="1224" height="868" src="https://blog.fosketts.net/wp-content/uploads/2022/01/Pre-ZeroTier-Network-Diagram.jpg" alt="" class="wp-image-9954" srcset="https://blog.fosketts.net/wp-content/uploads/2022/01/Pre-ZeroTier-Network-Diagram.jpg 1224w, https://blog.fosketts.net/wp-content/uploads/2022/01/Pre-ZeroTier-Network-Diagram-300x213.jpg 300w, https://blog.fosketts.net/wp-content/uploads/2022/01/Pre-ZeroTier-Network-Diagram-500x355.jpg 500w, https://blog.fosketts.net/wp-content/uploads/2022/01/Pre-ZeroTier-Network-Diagram-150x106.jpg 150w, https://blog.fosketts.net/wp-content/uploads/2022/01/Pre-ZeroTier-Network-Diagram-768x545.jpg 768w" sizes="auto, (max-width: 1224px) 100vw, 1224px" /><figcaption>This detailed diagram shows my current attempts to connect my various networks and devices</figcaption></figure></div>



<p>The challenge, put simply, is how to be able to connect to my home network, my office, and my web servers from any of my mobile clients, regardless of the connectivity available at each location. And how to keep it all secure so my remote access doesn&#8217;t let others get in and mess up my stuff!</p>



<p>By far the biggest issue is all that NAT. If you&#8217;re not familiar with the issue, network address translation (NAT) &#8220;hides&#8221; a private network behind a single IP address, dynamically routing connections to the right client. This is why so many home and office routers use IP addresses beginning with 192.168 or 10: They&#8217;re NATting this private network. The problem is that some services (especially if they deal with incoming connections) need a public IP address or at least a public port. But some routers don&#8217;t &#8220;do&#8221; UPNP port assignment right, and even if they do you still need a dynamic DNS provider to deal with dynamic IP addresses. Remote access behind NAT is a mess, and it&#8217;s even worse when you have NAT behind NAT and no access to any of the routers!</p>



<p>NAT, DNS, and firewalls also pose a serious challenge on the client side. It&#8217;s sometimes hard to get back to an open port since some providers block access to well-known VPN ports or IP addresses or force the use of their own DNS resolver or other client &#8220;services&#8221; that muck up the works.</p>



<p>There are many remote access services and VPN providers, but these don&#8217;t solve the issues completely. It&#8217;s hard to set up a VPN server behind a NAT in the best circumstances and nearly impossible behind double NAT, especially if you don&#8217;t control the router. And remote desktop solutions tend to have limited client support, over-reliance on UPNP, or are system resource hogs.</p>



<p>Up to now, the only moderately-reliable connectivity scheme I&#8217;ve had was a combination of OpenVPN and SSH. Because I was able to control my home routers, I could set up an OpenVPN service on my home pfSense, punching through both NATs with a private port and using a dynamic DNS provider to locate the IP. Then I set up an OpenVPN client at work, which connected outbound through double NAT to my home network. I provided access to my client devices using another OpenVPN server and OpenVPN clients for iOS and macOS. I provided backup access using an SSH endpoint at home on a high port. This solution worked, but was incredibly finicky. And since the world can see my dynamic DNS hostname, I had to be very careful to secure it.</p>



<h2 class="wp-block-heading">ZeroTier Changes Everything</h2>



<p>Once I started playing with <a href="https://zerotier.com">ZeroTier</a>, I realized that it could do everything I wanted and more.</p>



<p>The most powerful aspect of ZeroTier is that it is designed to punch through NAT, firewalls, and dynamic network infrastructure from the inside out. There are no static accessible servers &#8211; everything is a client and everything connects to the ZeroTier service before turning around and accessing your other resources over a private network. </p>



<p>And rather than playing around with high-level services, ZeroTier connects everything with a simple virtual layer-1 and 2 Ethernet network. It provides some higher-level services (IP addresses and DNS) but it doesn&#8217;t even pretend to be a remote access service. It&#8217;s a virtual network connection, and you can run anything on top of it.</p>



<p>It&#8217;s also incredibly robust and secure, with end-to-end 256-bit encryption and a &#8220;zero trust&#8221; design so your network is your own. And it runs on pretty much everything, from Linux to macOS and iOS to Windows and Android. It&#8217;s even available as a plugin for Home Assistant, Mikrotik/OpenWRT, and many NAS operating systems! It&#8217;s not yet robustly supported by TrueNAS or pfSense, but I expect that will come with time.</p>



<p>I was able to get ZeroTier up and running in just a few minutes, and it provided robust and reliable access to everything while I was out of the country on dodgy internet for a month. I was even able to set up a private &#8220;home run&#8221; back to the USA so my Apple TV worked! In fact, ZeroTier was the most reliable part of my infrastructure over this time, punching through a triple-NAT-quadruple-Wi-Fi-Repeater sandwich and quickly coming back online through reboots and outages from various other components.</p>



<p>ZeroTier is not perfect, however. It is unapologetically nerdy, with heavy reliance on CLI commands and an assumption of network and system administration competence. And the new DNS feature really needs work. But even with minimal documentation I was able to get everything up and running, and I expect my readers could do the same!</p>



<div class="wp-block-image"><figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full"><img loading="lazy" decoding="async" width="1142" height="498" src="https://blog.fosketts.net/wp-content/uploads/2022/01/ZeroTier-Architecture.jpg" alt="" class="wp-image-9956" srcset="https://blog.fosketts.net/wp-content/uploads/2022/01/ZeroTier-Architecture.jpg 1142w, https://blog.fosketts.net/wp-content/uploads/2022/01/ZeroTier-Architecture-300x131.jpg 300w, https://blog.fosketts.net/wp-content/uploads/2022/01/ZeroTier-Architecture-500x218.jpg 500w, https://blog.fosketts.net/wp-content/uploads/2022/01/ZeroTier-Architecture-150x65.jpg 150w, https://blog.fosketts.net/wp-content/uploads/2022/01/ZeroTier-Architecture-768x335.jpg 768w" sizes="auto, (max-width: 1142px) 100vw, 1142px" /><figcaption>ZeroTier Inc maintains root &#8220;planet/moon&#8221; servers to allow peer-to-peer client and route discovery, forwarding packets and continually investigating the creation of direct paths between clients</figcaption></figure></div>



<p>One of the criticisms of ZeroTier is that, although it is fundamentally a peer-to-peer network, it relies on root servers operated by the company to enable connectivity. But this is really a philosophical rather than a technical issue, since nearly every service relies on some root nodes, from DNS to the internet itself, and ZeroTier actively tries to &#8220;get out of the way&#8221; by encouraging direct peer-to-peer connectivity for performance reasons. Additionally, the system is designed with &#8220;zero trust&#8221; end-to-end encryption, so your data is isolated from any other users of the network.</p>



<p>Operationally, setting up a ZeroTier network is incredibly simple:</p>



<ol class="wp-block-list"><li>Create a ZeroTier account on <a href="https://my.zerotier.com">ZeroTier Central</a></li><li>Provision your own network using their web interface, including setting IP address ranges</li><li>Install the ZeroTier One client on any device and enter your network ID</li><li>Accept the client into your network using the web interface and configure an IP address for it</li></ol>



<p>Once a client is added to your network, you can access it from any other network client as if they were on the same LAN. It&#8217;s really that easy, and in my experience works through anything and from anywhere!</p>



<p>More advanced users can set up DNS or routing within their ZeroTier network, allowing it to act as a full-blown VPN. But even without these features enabled, the VPN-like iOS and macOS client enabled me to use my servers and access my systems using IP addresses.</p>



<p><em>Note: <a href="https://techfieldday.com/event/nfd27/">ZeroTier is presenting at Networking Field Day in January, 2022</a>! <a href="https://techfieldday.com/appearance/zerotier-presents-at-networking-field-day-27/">Tune in Thursday, January 27, at 1 PM Pacific time for a technical deep dive into ZeroTier</a> with some of the smartest people in enterprise networking. We&#8217;ll also post recordings of the session on <a href="https://www.youtube.com/TechFieldDay">the Tech Field Day YouTube channel</a> shortly after. Although this is my company and event, I &#8220;discovered&#8221; ZeroTier independently and this article was not sponsored or influenced by this sponsored event in any way!</em></p>



<h2 class="wp-block-heading">Stephen&#8217;s Stance</h2>



<p>It is rare that I am so enthusiastic about any service, but ZeroTier does exactly what I needed. With very little effort, I was able to access the key components of my infrastructure from any device, regardless of network configuration or availability of IP addresses or ports. And everything I&#8217;ve tried to do (from the Home Assistant UI to SSH to SMB file transfer) has worked flawlessly and efficiently. Apart from the fidgety user interface, <a href="https://zerotier.com">ZeroTier</a> is the answer to my connectivity prayers!</p>
<hr />
<p><small>© Stephen Foskett for <a href="https://blog.fosketts.net">Stephen Foskett, Pack Rat</a>: <a href="https://blog.fosketts.net/2022/01/14/how-to-connect-everything-from-everywhere-with-zerotier/">How To Connect Everything From Everywhere with ZeroTier</a></small></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.fosketts.net/2022/01/14/how-to-connect-everything-from-everywhere-with-zerotier/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Powering Rabbits: The Mean Well LRS-350-12 Power Supply</title>
		<link>https://blog.fosketts.net/2020/10/18/powering-rabbits-the-mean-well-lrs-350-12-power-supply/</link>
					<comments>https://blog.fosketts.net/2020/10/18/powering-rabbits-the-mean-well-lrs-350-12-power-supply/#comments</comments>
		
		<dc:creator><![CDATA[Stephen]]></dc:creator>
		<pubDate>Sun, 18 Oct 2020 20:19:13 +0000</pubDate>
				<category><![CDATA[Everything]]></category>
		<category><![CDATA[Terabyte home]]></category>
		<category><![CDATA[fan]]></category>
		<category><![CDATA[fuses]]></category>
		<category><![CDATA[Mean Well]]></category>
		<category><![CDATA[Rabbit]]></category>
		<category><![CDATA[Thingiverse]]></category>
		<category><![CDATA[Tinkercad]]></category>
		<guid isPermaLink="false">http://blog.fosketts.net/?p=9886</guid>

					<description><![CDATA[<p>My cloud of Intel NUC servers are powered by a generic slim 12 volt power supply from Chinese company Mean Well. This is a popular power supply with hobbyists and is widely available worldwide. I replaced the non-functional fans and 3D printed a cover for the terminals, and now two of my three "Rabbit" trays are up and running happily.</p>
<hr />
<p><small>© Stephen Foskett for <a href="https://blog.fosketts.net">Stephen Foskett, Pack Rat</a>: <a href="https://blog.fosketts.net/2020/10/18/powering-rabbits-the-mean-well-lrs-350-12-power-supply/">Powering Rabbits: The Mean Well LRS-350-12 Power Supply</a></small></p>
]]></description>
										<content:encoded><![CDATA[
<p>My cloud of Intel NUC servers are powered by a generic slim 12 volt power supply from Chinese company Mean Well. This is a popular power supply with hobbyists and is widely available worldwide. I replaced the non-functional fans and 3D printed a cover for the terminals, and now two of my three &#8220;Rabbit&#8221; trays are up and running happily.</p>



<h4 class="has-text-align-center wp-block-heading">Read my entire Rabbit Cloud series</h4>



<ul class="wp-block-list"><li><a href="https://blog.fosketts.net/2020/09/10/introducing-rabbit-i-bought-a-cloud/">Introducing Rabbit: I Bought a Cloud!</a></li><li><a href="https://blog.fosketts.net/2020/09/21/running-rabbits-more-about-my-cloud-nucs/">Running Rabbits: More About My Cloud NUCs</a></li><li><a href="https://blog.fosketts.net/2020/09/22/tortoise-or-hare-nvidia-jetson-tk1/">Tortoise or Hare? Nvidia Jetson TK1</a></li><li><a href="https://blog.fosketts.net/2020/10/18/powering-rabbits-the-mean-well-lrs-350-12-power-supply/">Powering Rabbits: The Mean Well LRS-350-12 Power Supply</a></li></ul>



<div class="wp-block-image"><figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large"><img loading="lazy" decoding="async" width="500" height="281" src="https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2246-500x281.jpeg" alt="" class="wp-image-9895" srcset="https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2246-500x281.jpeg 500w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2246-300x169.jpeg 300w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2246-150x84.jpeg 150w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2246-768x432.jpeg 768w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2246-750x420.jpeg 750w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2246.jpeg 1280w" sizes="auto, (max-width: 500px) 100vw, 500px" /><figcaption>The Rabbit trays use the popular LRS-350 12 volt power supply</figcaption></figure></div>



<h2 class="wp-block-heading">The Rabbit Power Design</h2>



<p>The &#8220;Rabbit&#8221; trays have a simple power design, with two of three V+ rails of the power supply going to a pair of 10-fuse blocks before being distributed to the various devices. The V- rails are split and sent directly to ground on the devices. It&#8217;s a workmanlike but unbalanced design, and surprisingly is not wired uniformly rack-to-rack.</p>



<div class="wp-block-image"><figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large"><img loading="lazy" decoding="async" width="500" height="370" src="https://blog.fosketts.net/wp-content/uploads/2020/10/Rabbit-Power-Diagram-500x370.jpg" alt="" class="wp-image-9887" srcset="https://blog.fosketts.net/wp-content/uploads/2020/10/Rabbit-Power-Diagram-500x370.jpg 500w, https://blog.fosketts.net/wp-content/uploads/2020/10/Rabbit-Power-Diagram-300x222.jpg 300w, https://blog.fosketts.net/wp-content/uploads/2020/10/Rabbit-Power-Diagram-150x111.jpg 150w, https://blog.fosketts.net/wp-content/uploads/2020/10/Rabbit-Power-Diagram-768x568.jpg 768w, https://blog.fosketts.net/wp-content/uploads/2020/10/Rabbit-Power-Diagram.jpg 1202w" sizes="auto, (max-width: 500px) 100vw, 500px" /><figcaption>This diagram shows the wiring of the Rabbit trays, with only 2 of 5 servers per &#8220;rank&#8221;</figcaption></figure></div>



<p>The Mean Well LRS-350 is part of a series of similar slim power supplies from the Chinese company. The LRS-200 models are passively cooled and max out around 200 Watts, while the LRS-350 have a fan and can go to 350 Watts. The supply can handle 90-132 volts or 180-264 volts, switchable via a switch on the side. Input and output is routed to a block of nine screw terminals on one side, along with a trimmer and LED.</p>



<div class="wp-block-image"><figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large"><img loading="lazy" decoding="async" width="500" height="375" src="https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2253-500x375.jpeg" alt="" class="wp-image-9888" srcset="https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2253-500x375.jpeg 500w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2253-300x225.jpeg 300w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2253-150x113.jpeg 150w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2253-768x577.jpeg 768w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2253.jpeg 1280w" sizes="auto, (max-width: 500px) 100vw, 500px" /><figcaption>The Mean Well LRS-350-12 is a simple but popular 12 Volt DC power supply</figcaption></figure></div>



<p>The power distribution design essentially splits the +12V output into two, each with a separate fuse block. One powers five NUCs and five Jetsons, while the other powers the other five NUCs and the Ethernet switch. The -12V (ground) blocks are split in three: One for five NUCs, one for five Jetsons, and one for five NUCs and the switch. The fuse blocks are numbered 1-10, but each of my trays is wired differently, with some putting the first fuse on the nearest NUC and others putting it on the farthest. This lack of uniformity really bothers me, but it works fine.</p>



<p>Although all three devices (NUC, Jetson, Ethernet switch) use 12 volt power, each has a different barrel connector. The trays have the proper connector for each device and all the wires are neatly routed and zip tied in place. Note that all three devices <em>can</em> use the same barrel connector, but it&#8217;s not a perfect fit. It&#8217;s nice to see that they specified the right one. This makes me feel a little better.</p>



<div class="wp-block-image"><figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large"><img loading="lazy" decoding="async" width="500" height="375" src="https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2266-500x375.jpeg" alt="" class="wp-image-9898" srcset="https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2266-500x375.jpeg 500w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2266-300x225.jpeg 300w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2266-150x113.jpeg 150w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2266-768x576.jpeg 768w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2266.jpeg 1280w" sizes="auto, (max-width: 500px) 100vw, 500px" /><figcaption>Two fuse blocks protect the NUCs, Jetsons, and switch</figcaption></figure></div>



<p>The fuse blocks use &#8220;<a href="https://en.wikipedia.org/wiki/Fuse_(automotive)">Micro 2</a>&#8221; 3 Amp fuses. These appear to be fairly hard to find at local stores, so I&#8217;m ordering a pack of them. For now I&#8217;ve been swapping fuses as needed from the six blocks on three racks. Since a few of my NUCs arrived DOA, I&#8217;ve got spaces. I have blown one fuse already, thanks to a short when plugging in a Jetson. It&#8217;s good to know that they work.</p>



<h2 class="wp-block-heading">Risk of Electric Shock</h2>



<p>The exposed screw terminals present a safety risk, and could potentially short out if something is dropped on them. So I immediately insulated them in electrical tape while considering how better to cover them. I decided to design a 3D printed cover for the terminals (and the entire end of the PSU) to better protect myself and my Rabbits. <a href="https://www.thingiverse.com/thing:4627396">Download my Mean Well LRS Power Protector from Thingiverse</a>.</p>



<div class="wp-block-image"><figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large"><img loading="lazy" decoding="async" width="500" height="375" src="https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2262-500x375.jpeg" alt="" class="wp-image-9891" srcset="https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2262-500x375.jpeg 500w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2262-300x225.jpeg 300w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2262-150x113.jpeg 150w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2262-768x576.jpeg 768w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2262.jpeg 1280w" sizes="auto, (max-width: 500px) 100vw, 500px" /><figcaption>My 3D printed cover prevents electric shock and shorts</figcaption></figure></div>



<p>It seems that the Mean Well LRS is popular with the DIY and tinkerer crowd, so there are a ton of other printable add-ons for it. Mine is pretty simple and small, but I may end up using a different one depending on what I do with my Rabbits.</p>



<p>I just used electrical tape on the fuse blocks for now, since the primary connector is exposed. At least the rest of the connections are properly insulated.</p>



<h2 class="wp-block-heading">The Fan Sucks and Blows</h2>



<p>Next, my attention turned to the power supply. The fan sucks (forces air into the power supply), but all three fans on my trays were seized up. So I guess you could say the fans also blow. These are cheap 60mm by 15mm fans with a simple 2-wire (off/on) connector.</p>



<div class="wp-block-image"><figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large"><img loading="lazy" decoding="async" width="500" height="375" src="https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2257-500x375.jpeg" alt="" class="wp-image-9893" srcset="https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2257-500x375.jpeg 500w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2257-300x225.jpeg 300w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2257-150x113.jpeg 150w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2257-768x576.jpeg 768w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2257.jpeg 1280w" sizes="auto, (max-width: 500px) 100vw, 500px" /><figcaption>The stock fan (right) and replacement (left)</figcaption></figure></div>



<p>I purchased a slightly-nicer fan from eBay to replace the bas ones. The new one is lower-profile (10mm) so it doesn&#8217;t have to work as hard, given the tight dimensions inside the power supply. It also blows a little more air than the stock fan.</p>



<p>Note that the fans were wired differently so <strong>I had to swap the red and black connectors</strong> to make the replacement fan work. Also, pay attention to the airflow direction: You want to have air flow into the power supply, not out as might be expected.</p>



<div class="wp-block-image"><figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large"><img loading="lazy" decoding="async" width="500" height="375" src="https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2259-500x375.jpeg" alt="" class="wp-image-9896" srcset="https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2259-500x375.jpeg 500w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2259-300x225.jpeg 300w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2259-150x113.jpeg 150w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2259-768x576.jpeg 768w, https://blog.fosketts.net/wp-content/uploads/2020/10/IMG_2259.jpeg 1280w" sizes="auto, (max-width: 500px) 100vw, 500px" /><figcaption>The red and black wired are reversed on my replacement fan</figcaption></figure></div>



<p>Once I replaced the fans, the power supply is much cooler. It was quite hot under load without the fan, and now it&#8217;s merely warm. I also designed my terminal block cover to preserve as much airflow as possible, since the end is an active exhaust. Since the similar LRS-200 is designed for passive airflow, I imagine it would be acceptable to remove the fan entirely as long as it&#8217;s not running under much load. And many of the 3D printed options include a larger fan.</p>



<p>Note that the LRS-350 includes a thermostat to turn the fan on or off based on internal temperature. I verified this by varying the load on the power supply and blocking the vents. The latter caused the fan to turn on, while the former did not. Also, I have found that 10 NUC5 Rabbits under 100% CPU load is not enough to kick the fan on, but 10 NUC6 Rabbits is!</p>



<h2 class="wp-block-heading">Stephen&#8217;s Stance</h2>



<p>The Rabbit trays use a standard power supply and have a well-designed power distribution design with fuses and proper connectors. Although the fans died, it was a simple matter to replace them. And my 3D printed cover helps prevent electric shock. My Rabbits are really running now!</p>
<hr />
<p><small>© Stephen Foskett for <a href="https://blog.fosketts.net">Stephen Foskett, Pack Rat</a>: <a href="https://blog.fosketts.net/2020/10/18/powering-rabbits-the-mean-well-lrs-350-12-power-supply/">Powering Rabbits: The Mean Well LRS-350-12 Power Supply</a></small></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.fosketts.net/2020/10/18/powering-rabbits-the-mean-well-lrs-350-12-power-supply/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Tortoise or Hare? Nvidia Jetson TK1</title>
		<link>https://blog.fosketts.net/2020/09/22/tortoise-or-hare-nvidia-jetson-tk1/</link>
					<comments>https://blog.fosketts.net/2020/09/22/tortoise-or-hare-nvidia-jetson-tk1/#comments</comments>
		
		<dc:creator><![CDATA[Stephen]]></dc:creator>
		<pubDate>Tue, 22 Sep 2020 20:41:37 +0000</pubDate>
				<category><![CDATA[Everything]]></category>
		<category><![CDATA[Terabyte home]]></category>
		<category><![CDATA[ASIX]]></category>
		<category><![CDATA[Cable Matters]]></category>
		<category><![CDATA[Jetson]]></category>
		<category><![CDATA[NVIDIA]]></category>
		<category><![CDATA[Nvidia Jetson TK1]]></category>
		<category><![CDATA[Realtek]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">http://blog.fosketts.net/?p=9875</guid>

					<description><![CDATA[<p>I'm quite pleased with the Intel NUC boards that came with my surplus Rabbit cloud, but I can't say the same about the Nvidia Jetson TK1 boards. They're weird, flaky, limited, and haven't proved useful even in simple applications. Frankly, I'm not sure what I'm going to do with the 15 Jetsons sitting in my office!</p>
<hr />
<p><small>© Stephen Foskett for <a href="https://blog.fosketts.net">Stephen Foskett, Pack Rat</a>: <a href="https://blog.fosketts.net/2020/09/22/tortoise-or-hare-nvidia-jetson-tk1/">Tortoise or Hare? Nvidia Jetson TK1</a></small></p>
]]></description>
										<content:encoded><![CDATA[
<p>I&#8217;m quite pleased with the Intel NUC boards that came with my surplus Rabbit cloud, but I can&#8217;t say the same about the Nvidia Jetson TK1 boards. They&#8217;re weird, flaky, limited, and haven&#8217;t proved useful even in simple applications. Frankly, I&#8217;m not sure what I&#8217;m going to do with the 15 Jetsons sitting in my office!</p>



<h4 class="has-text-align-center wp-block-heading">Read my entire Rabbit Cloud series</h4>



<ul class="wp-block-list"><li><a href="https://blog.fosketts.net/2020/09/10/introducing-rabbit-i-bought-a-cloud/">Introducing Rabbit: I Bought a Cloud!</a></li><li><a href="https://blog.fosketts.net/2020/09/21/running-rabbits-more-about-my-cloud-nucs/">Running Rabbits: More About My Cloud NUCs</a></li><li><a href="https://blog.fosketts.net/2020/09/22/tortoise-or-hare-nvidia-jetson-tk1/">Tortoise or Hare? Nvidia Jetson TK1</a></li><li><a href="https://blog.fosketts.net/2020/10/18/powering-rabbits-the-mean-well-lrs-350-12-power-supply/">Powering Rabbits: The Mean Well LRS-350-12 Power Supply</a></li></ul>



<div class="wp-block-image"><figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large"><img loading="lazy" decoding="async" width="500" height="500" src="https://blog.fosketts.net/wp-content/uploads/2020/09/Nvidia-Jetson-TK1-500x500.jpeg" alt="" class="wp-image-9879" srcset="https://blog.fosketts.net/wp-content/uploads/2020/09/Nvidia-Jetson-TK1-500x500.jpeg 500w, https://blog.fosketts.net/wp-content/uploads/2020/09/Nvidia-Jetson-TK1-300x300.jpeg 300w, https://blog.fosketts.net/wp-content/uploads/2020/09/Nvidia-Jetson-TK1-150x150.jpeg 150w, https://blog.fosketts.net/wp-content/uploads/2020/09/Nvidia-Jetson-TK1-100x100.jpeg 100w, https://blog.fosketts.net/wp-content/uploads/2020/09/Nvidia-Jetson-TK1.jpeg 667w" sizes="auto, (max-width: 500px) 100vw, 500px" /><figcaption>Meet the Nvidia Jetson TK1: A single-board computer that has really not aged well</figcaption></figure></div>



<h2 class="wp-block-heading">Meet George Jetson</h2>



<p>The Jetson was one of the first high-profile AI prototyping boards released, and was quite impressive back in 2014. This was before the Raspberry Pi 2 was released, so it would have been compared to the original Pi, which had a 700 MHz single-core Broadcom BCM2835 CPU. The TK1 sported a quad-core Tegra K1 SoC (which used the Cortex A15 microarchitecture and actually included a fifth low-power &#8220;companion&#8221; core) running at up to 2.3 GHz, blowing the doors off the Pi and actually quite competitive with low-end PCs of the day.</p>



<p>But this performance was overshadowed by the inclusion of a then-modern &#8220;Kepler&#8221; GPU with 192 CUDA cores. The Jetson TK1 became the darling of the AI set, with robots and autonomous driving experiments built around it. No doubt this is also why the original Rabbit streaming service specified five Jetson TK1 boards as companions to the ten NUCs on each tray. It would have been an impressive-sounding setup for the time.</p>



<p>But times change.</p>



<p>The Jetson TK1 is a surprisingly limited board today, since it&#8217;s so proprietary and integrated:</p>



<ul class="wp-block-list"><li>2GB of memory might have sounded fine in 2014, but since <strong>it&#8217;s soldered to the board</strong> and not socketed like the NUC it is a major limitation today</li><li>The USB 3.0 port is nice, but <strong>there&#8217;s only one</strong> and <strong>it&#8217;s flaky</strong>, needing special firmware and causing issues sometimes; you can get an adapter to use the micro-USB port as a second port, but <strong>a USB 3.0 hub</strong> is easier to find</li><li>The Gigabit Ethernet port is just slow, only able to hit <strong>68% of the throughput</strong> of the equivalent port on the NUC</li><li>It can boot Linux for Tegra from the 16GB integrated eMMC storage, but this was <strong>never updated past Ubuntu 14</strong> and it&#8217;s fiddly to get anything else to boot</li><li>The Kepler GPU is <strong>not supported by the latest software</strong>, nor is it all that fast by today&#8217;s standards</li></ul>



<p>On the plus side, there are some nice aspects to the board:</p>



<ul class="wp-block-list"><li>The Tegra K1 CPU is <strong>reasonably powerful</strong> for an embedded board even today</li><li>Integrated RAM and eMMC mean the salvage company delivered <strong>a bootable and usable board</strong>, unlike the NUC which came without RAM or storage</li><li>The mini PCI-E slot is half-length but extends &#8220;off the board&#8221; without obstruction so it should be able to accommodate <strong>other peripherals</strong></li><li>It has <strong>a nicer SD slot</strong> than the NUC, with a spring-loaded ejector</li><li>It has a <strong>SATA port</strong>, though a drive would require external power</li></ul>



<p>Objectively weighing the plusses and minuses of the Jetson TK1, I decided that it would be useful in a supporting role, while the NUCs were the star of the show. I planned to use a few Jetson boards on each tray as a simple router, DHCP server, DNS server, NTP server, and perhaps a storage server or cluster.</p>



<h2 class="wp-block-heading">Booting the Jetson TK1</h2>



<p>The embedded eMMC storage is the logical boot medium for the Jetson TK1, so that was my focus from the start. It could theoretically also boot from SD card, USB drive, or SATA, but all of these require a functioning eMMC pre-boot environment.</p>



<p>The Jetson TK1 has a micro-USB port that allows the eMMC to be flashed with Linux for Tegra or another operating system. I found the flashing process to be <a href="https://cyclicredundancy.wordpress.com/2014/05/10/flashing-the-rootfs-on-a-nvidia-jetson-tk1/">simple</a> once I got used to the quirks. Rather than rehashing the whole process, here&#8217;s my quick list of lessons learned to help anyone else:</p>



<ul class="wp-block-list"><li>Linux for Tegra must be installed from <strong>an Intel x86 host running Ubuntu 14.04</strong>. <em>It will not work from a Pi, a Jetson, or a different or more modern version of Linux.</em> You have been warned!</li><li><a href="https://developer.nvidia.com/embedded/linux-tegra-archive">Download Linux for Tegra from Nvidia&#8217;s Tegra archive</a>. I suggest grabbing the original <a href="https://developer.nvidia.com/linux-tegra-rel-19">Release 19.3</a> as well as the latest <a href="https://developer.nvidia.com/linux-tegra-r218">Release 21.8</a>. Get the <a href="https://developer.nvidia.com/embedded/dlc/tk1-driver-package-r218">Driver Package</a> and <a href="https://developer.nvidia.com/embedded/dlc/sample-root-filesystem-r218">Sample Root Filesystem</a> for your release of choice. That&#8217;s all you need.</li><li>Connect the Jetson TK1 to your Linux server with <strong>a quality micro-USB to USB cable</strong>. Some random cables in my drawer did not work. If you don&#8217;t see &#8220;Nvidia&#8221; in lsusb on the host, try another cable.</li><li>Enable eMMC flash mode by holding the &#8220;Recovery&#8221; button while tapping the &#8220;Reset&#8221; button once. No need to hold it longer or time anything.</li><li>Carefully follow the <a href="https://developer.download.nvidia.com/embedded/L4T/r21_Release_v8.0/release_files/l4t_quick_start_guide.txt?BB_9Ae4yNzi7uSfJV5MgnwMCE0L-QtRCVGVsWu7udWLIqvBh9t7J5eOz2087zj3bggUMnKFBJohDVrsXoEUy2_WWKMmSablH5CmRR3qTNXqZ27WP84zE4_qF9TmYdY4dkkQBLvHtK1FCXom4j5ivvSKz7Ar2U4CNOAIKSXDVW1M8Prrw">Quick-Start Guide</a>, including <strong>running the commands with sudo</strong>. Make sure you have plenty of high-speed storage available; <em>it will not fit in a 32 GB card</em>.</li><li><a href="https://elinux.org/Jetson_TK1#Get_access_to_the_entire_eMMC_storage_space_of_Jetson">Maximize the available eMMC space</a> by flashing using &#8220;sudo ./flash.sh -S 14580MiB jetson-tk1 mmcblk0p1&#8221;</li><li>Linux for Tegra includes <strong>a boat-load of useless software</strong>, so clean it up after installation by running <a href="https://gist.github.com/trungnt13/ef547cb26aa0460a8f24">a ton of &#8220;apt-get purge&#8221; commands</a> (I scripted these and might share that later)</li></ul>



<p>Follow my lead, and you&#8217;ll have your Jetson TK1 running Ubuntu 14.04 in no time. But then what? Ubuntu 14.04 reached the end of the LTS window on April 30, 2019 (even before L4T 21.8 was released) but still works fine. Just don&#8217;t expect many bug fixes, and be prepared to &#8220;fight&#8221; to get modern software installed. I&#8217;ve already been hunting down back-ported libraries (libssl, for one) and I&#8217;m not doing much with it. And don&#8217;t even think of exposing a Ubuntu 14 server to the open internet, since there&#8217;s no telling if there are un-patched exploits out there and they likely won&#8217;t be fixed.</p>



<h2 class="wp-block-heading">Hare or Tortoise?</h2>



<p>The Jetson seems pretty snappy when running, so I was feeling good about using mine as &#8220;Hares&#8221; to support the NUC &#8220;Rabbits&#8221; in my cloud cluster. But things have not worked out well so far.</p>



<p>The first thing I wanted to do was configure a Jetson as a simple router and DHCP server, allowing the cloud to exist independently of the network to which it is connected. Like most people, I use 192.168 behind my NAT, so I planned to create another 192.168 subnet for each cloud tray. This would give the NUCs plenty of IP addresses even if they need a few for various containers and services.</p>



<p>The ISC DHCP Server is <a href="https://www.krizna.com/ubuntu/setup-dhcp-server-ubuntu-14-04/">easy to set up</a> in Ubuntu 14 and seems to work fine with the Rabbit configuration.</p>



<p>Since the Jetson TK1 has a single Ethernet port, I planned to use a USB 3.0 Ethernet adapter as a second port for routing. The included NetGear switch is un-managed, which makes tagged VLANs a little more challenging. <a href="https://blog.fosketts.net/2013/08/14/cable-matters-usb3-gigabit-ethernet-adapter-review/">My old Cable Matters ASIX-based USB 3.0 adapter</a> was recognized by Ubuntu with no special software to install.</p>



<p>Routing <a href="https://askubuntu.com/questions/590920/ubuntu-14-04-as-a-gateway-router-and-a-firewall">can be as simple</a> as enabling net.ipv4.ip_forward in sysctl.conf, especially if a firewall or NAT is not needed. It was more challenging to enable a second subnet on my pfSense router, which needed both a gateway and static route added. I also needed to add outbound NAT rules on the pfSense router, and I still don&#8217;t have this working correctly.</p>



<p>I am actually considering using OpenVPN to set up an outbound tunnel from the Rabbit router to my pfSense router instead. This would allow me to set up the Rabbit tray anywhere (home or office) and have it come up correctly regardless. We&#8217;ll see when/if I get around to this!</p>



<p>But right now I&#8217;m having major issues with the TK1&#8230;</p>



<p>First, it appears that the Gigabit Ethernet port is connected to a slow I/O line somehow. Some have suggested that it&#8217;s on the USB interface (like the Pi) but it appears to be on the PCI bus in lspci. Regardless, it&#8217;s slow. I recorded between 600 and 640 Mbits/s using iPerf, and it appears to be about the same in both directions. For comparison, the NUCs are pushing about 940 Mbit/s in the same test.</p>



<p>Doing some research, I came across <a href="https://tuxbyte.com/how-to-get-your-realtek-rtl8111rtl8168-working-updated-guide/">this popular blog post</a> suggesting that the open source r8169 driver isn&#8217;t appropriate for the older Realtek 8111 ethernet controller, and that one should use the r8168-dkms driver instead. Sure enough, the Linux for Tegra install does use the R8169 driver.</p>



<div class="wp-block-image"><figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large"><img loading="lazy" decoding="async" width="500" height="252" src="https://blog.fosketts.net/wp-content/uploads/2020/09/Linux-for-Tegra-r8169-driver-500x252.jpg" alt="" class="wp-image-9877" srcset="https://blog.fosketts.net/wp-content/uploads/2020/09/Linux-for-Tegra-r8169-driver-500x252.jpg 500w, https://blog.fosketts.net/wp-content/uploads/2020/09/Linux-for-Tegra-r8169-driver-300x151.jpg 300w, https://blog.fosketts.net/wp-content/uploads/2020/09/Linux-for-Tegra-r8169-driver-150x76.jpg 150w, https://blog.fosketts.net/wp-content/uploads/2020/09/Linux-for-Tegra-r8169-driver-768x387.jpg 768w, https://blog.fosketts.net/wp-content/uploads/2020/09/Linux-for-Tegra-r8169-driver.jpg 958w" sizes="auto, (max-width: 500px) 100vw, 500px" /><figcaption>That&#8217;s not the right driver for the Realtek 8111&#8230;</figcaption></figure></div>



<p>Although the correct driver does appear in the Linux for Tegra universal repository, I was unable to get it to &#8220;take over&#8221; for the port. After un-commenting the &#8220;universal&#8221; lines from /etc/apt/sources.list and updating the apt repository, I installed the new driver with &#8220;sudo apt install r8168-dkms&#8221;. I then blacklisted the r8169 driver per <a href="https://tuxbyte.com/how-to-get-your-realtek-rtl8111rtl8168-working-updated-guide/">step 3 in that blog post</a> and rebooted. But no matter what I did, the port continues to use the r8169 driver.</p>



<p>Even worse, I&#8217;m having issues using the Jetson as a router. Even without iptables running, it&#8217;s slow and flaky. I&#8217;m getting time-outs on ssh sessions and if I can&#8217;t reliably log in through the Jetson, it probably won&#8217;t work well for regular use. I might try setting things up using VLANs direct to the pfSense router, or sourcing a Mini-PCIe Ethernet adapter, but this seems like over-kill. Maybe I&#8217;ll just use one of the NUCs as a router.</p>



<h2 class="wp-block-heading">Stephen&#8217;s Stance: Jetson TK1 is Meh</h2>



<p>All this is to say that I am not impressed by the Jetson TK1. The hardware is inflexible and limited, the operating system is out of date, and the networking is slow. I&#8217;m frankly not sure if I will be able to use the Jetson boards for anything productive. </p>
<hr />
<p><small>© Stephen Foskett for <a href="https://blog.fosketts.net">Stephen Foskett, Pack Rat</a>: <a href="https://blog.fosketts.net/2020/09/22/tortoise-or-hare-nvidia-jetson-tk1/">Tortoise or Hare? Nvidia Jetson TK1</a></small></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.fosketts.net/2020/09/22/tortoise-or-hare-nvidia-jetson-tk1/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Running Rabbits: More About My Cloud NUCs</title>
		<link>https://blog.fosketts.net/2020/09/21/running-rabbits-more-about-my-cloud-nucs/</link>
					<comments>https://blog.fosketts.net/2020/09/21/running-rabbits-more-about-my-cloud-nucs/#respond</comments>
		
		<dc:creator><![CDATA[Stephen]]></dc:creator>
		<pubDate>Mon, 21 Sep 2020 12:46:34 +0000</pubDate>
				<category><![CDATA[Everything]]></category>
		<category><![CDATA[Terabyte home]]></category>
		<category><![CDATA[Jeff Geerling]]></category>
		<category><![CDATA[Monero]]></category>
		<category><![CDATA[NUC]]></category>
		<category><![CDATA[NUC6CAYH]]></category>
		<category><![CDATA[Rabbit]]></category>
		<category><![CDATA[Samsung]]></category>
		<category><![CDATA[SD card]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">http://blog.fosketts.net/?p=9864</guid>

					<description><![CDATA[<p>As I suspected, the Intel NUCs included in my "Rabbit" cloud hardware are proving much more useful than the Nvidia Jetson TK1s. I received both "Silvermont" NUC5 and "Goldmont" NUC6 machines in my surplus eBay cloud hardware, and both are good little machines, with some notable limitations.</p>
<hr />
<p><small>© Stephen Foskett for <a href="https://blog.fosketts.net">Stephen Foskett, Pack Rat</a>: <a href="https://blog.fosketts.net/2020/09/21/running-rabbits-more-about-my-cloud-nucs/">Running Rabbits: More About My Cloud NUCs</a></small></p>
]]></description>
										<content:encoded><![CDATA[
<p>As I suspected, the Intel NUCs included in my &#8220;Rabbit&#8221; cloud hardware are proving much more useful than the Nvidia Jetson TK1s. I received both &#8220;Silvermont&#8221; NUC5 and &#8220;Goldmont&#8221; NUC6 machines in my surplus eBay cloud hardware, and both are good little machines, with some notable limitations.</p>



<h4 class="has-text-align-center wp-block-heading">Read my entire Rabbit Cloud series</h4>



<ul class="wp-block-list"><li><a href="https://blog.fosketts.net/2020/09/10/introducing-rabbit-i-bought-a-cloud/">Introducing Rabbit: I Bought a Cloud!</a></li><li><a href="https://blog.fosketts.net/2020/09/21/running-rabbits-more-about-my-cloud-nucs/">Running Rabbits: More About My Cloud NUCs</a></li><li><a href="https://blog.fosketts.net/2020/09/22/tortoise-or-hare-nvidia-jetson-tk1/">Tortoise or Hare? Nvidia Jetson TK1</a></li><li><a href="https://blog.fosketts.net/2020/10/18/powering-rabbits-the-mean-well-lrs-350-12-power-supply/">Powering Rabbits: The Mean Well LRS-350-12 Power Supply</a></li></ul>



<h2 class="wp-block-heading">My NUC Census</h2>



<p>I purchased three &#8220;trays&#8221; of ex-rabb.it encoding hardware from eBay. Each included 10x Intel NUC single-board computers, 5x NVIDIA Jetson TK1 single-board computers, a Gigabit Ethernet switch and cabling, and a power supply. Although most purchasers received only NUC5 machines with &#8220;Silvermont&#8221; Pentium N3700 processors, one of my trays included NUC6 machines with &#8220;Goldmont&#8221; Celeron J3455 processors. The latter also support dual-channel memory (and have two SO-DIMM slots) up to 16 GB.</p>



<p>This last point is a bit of surprise since Intel&#8217;s documentation for the NUC6CAYH specifically says it&#8217;s limited to 8 GB of RAM. But when I loaded it with two 8 GB DIMMs, the BIOS recognized the RAM and it was available to the Linux kernel.</p>



<div class="wp-block-image"><figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large"><img loading="lazy" decoding="async" width="500" height="366" src="https://blog.fosketts.net/wp-content/uploads/2020/09/NUC6-16-GB-RAM-500x366.jpeg" alt="" class="wp-image-9865" srcset="https://blog.fosketts.net/wp-content/uploads/2020/09/NUC6-16-GB-RAM-500x366.jpeg 500w, https://blog.fosketts.net/wp-content/uploads/2020/09/NUC6-16-GB-RAM-300x220.jpeg 300w, https://blog.fosketts.net/wp-content/uploads/2020/09/NUC6-16-GB-RAM-150x110.jpeg 150w, https://blog.fosketts.net/wp-content/uploads/2020/09/NUC6-16-GB-RAM-768x563.jpeg 768w, https://blog.fosketts.net/wp-content/uploads/2020/09/NUC6-16-GB-RAM.jpeg 1280w" sizes="auto, (max-width: 500px) 100vw, 500px" /><figcaption>I guess the NUC6 isn&#8217;t limited to 8 GB after all!</figcaption></figure></div>



<p>Another notable difference between these machines is the BIOS. The NUC6 has many more options, especially when it comes to power. One interesting one is &#8220;Power Sense&#8221;, which will apparently throttle the CPU if the board is going to draw more than the rated power supply level. But I imagine that the Rabbit fuse block will do that too! And frankly it&#8217;s not likely I would run into this, with a 10 Watt TDP CPU and no hard disk or peripherals.</p>



<div class="wp-block-image"><figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large"><img loading="lazy" decoding="async" width="500" height="375" src="https://blog.fosketts.net/wp-content/uploads/2020/09/External-HDD-Power-Supplies-500x375.jpeg" alt="" class="wp-image-9866" srcset="https://blog.fosketts.net/wp-content/uploads/2020/09/External-HDD-Power-Supplies-500x375.jpeg 500w, https://blog.fosketts.net/wp-content/uploads/2020/09/External-HDD-Power-Supplies-300x225.jpeg 300w, https://blog.fosketts.net/wp-content/uploads/2020/09/External-HDD-Power-Supplies-150x113.jpeg 150w, https://blog.fosketts.net/wp-content/uploads/2020/09/External-HDD-Power-Supplies-768x576.jpeg 768w, https://blog.fosketts.net/wp-content/uploads/2020/09/External-HDD-Power-Supplies.jpeg 1280w" sizes="auto, (max-width: 500px) 100vw, 500px" /><figcaption>I finally have a use for these extra &#8220;wall warts&#8221;!</figcaption></figure></div>



<p>Speaking of power, I&#8217;m actually using a simple solution to run them in testing. If you&#8217;re read my blog much, you know that I&#8217;ve often &#8220;shucked&#8221; external hard disk drives for the SATA drive contained within. I&#8217;ve got a pile of these extra &#8220;wall warts&#8221; in a box, and was pleased to find that they&#8217;re just fine to bring up a NUC or Jetson for testing. They supply 12 Volts and the barrel connector is configured correctly with a positive tip. Although they&#8217;re rated at just 1.5 Amps, this is plenty of power in practice.</p>



<figure class="wp-block-table is-style-stripes"><table><thead><tr><th></th><th>NUC5</th><th>NUC6</th></tr></thead><tbody><tr><td>Idle</td><td>.08 A</td><td>.07-.08 A</td></tr><tr><td>Geekbench</td><td>.18 A</td><td>.20 A</td></tr><tr><td>xmrig</td><td>280 H/s</td><td>382 H/s<br>420 H/s</td></tr></tbody></table><figcaption>Power readings on my Kill-A-Watt meter</figcaption></figure>



<p>The highest power draw I saw when running Geekbench was just 0.20 Amps (12.8 Watts). Trying to generate more power draw, I fired up the xmrig Monero miner with four threads. Although the CPU is running at maximum speed (2.3 GHz) the fan is barely pushing any air and gets only warm to the touch even after hours of running. These little &#8220;bunnies&#8221; are amazingly power efficient!</p>



<p>And while we&#8217;re on that topic, you can put any thoughts of a massive Monero miner out of your head. Neither Atom CPU has enough L2 cache to run the RandomX algorithm efficiently, so it has to go to main memory constantly. The Pentium N3700 can complete 280 hashes per second, while the Celeron J3455 hits 382 hashes per second. Dual-channel RAM in the Celeron allows it to hit 420 hashes per second with two RAM sticks. This is small potatoes: The Core i3-5010U in my NUC5 can do 640, my Core i7-6700K hits 1800, and my new Ryzen 9 3900X is steady at 9975. Or to put it another way, all 30 NUCs can&#8217;t match the hash power of a single Ryzen 9 CPU, and they would use twice as much power doing it!</p>



<h2 class="wp-block-heading">How to Boot? That is the Question!</h2>



<p>The NUC5 and NUC6 can boot from a variety of media:</p>



<ul class="wp-block-list"><li>PXE Network Boot (this is how they come from rabb.it)</li><li>SATA (requires a powered drive or custom cable)</li><li>USB disk drive (draws more power, expensive)</li><li>USB flash drive (iffy reliability, cheap)</li><li>SD card (not the fastest, cheap)</li></ul>



<p>I&#8217;m sticking to the latter for now. I definitely don&#8217;t want to mess around with PXE network booting, so that&#8217;s right out. Then there&#8217;s the issue of sourcing SATA cables and SDDs at a reasonable price. And external USB disk drives don&#8217;t sound that attractive. So I&#8217;m sticking with SD cards for now.</p>



<p>After browsing <a href="http://www.pidramble.com/wiki/benchmarks/microsd-cards">Jeff Geerling&#8217;s SD card tests</a>, I&#8217;m using SanDisk Extreme and Samsung Evo Plus cards. My own experience has shown me just how unreliable and slow generic SD cards can be, and how many counterfeit and defective cards there are in the e-commerce supply chain, so I&#8217;m paying a little more for name-brand cards from major retailers.</p>



<p>Best Buy had the best price on the Samsung cards so I bought a bunch of them at retail, and boy are they fast! Plus, SD cards support TRIM out of the box, unlike most other media, and have gotten much more reliable. Short of a real SSD, booting from SD seems like a winner.</p>



<div class="wp-block-image"><figure style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large"><img loading="lazy" decoding="async" width="500" height="282" src="https://blog.fosketts.net/wp-content/uploads/2020/09/Samsung-DIMMs-500x282.jpeg" alt="" class="wp-image-9869" srcset="https://blog.fosketts.net/wp-content/uploads/2020/09/Samsung-DIMMs-500x282.jpeg 500w, https://blog.fosketts.net/wp-content/uploads/2020/09/Samsung-DIMMs-300x169.jpeg 300w, https://blog.fosketts.net/wp-content/uploads/2020/09/Samsung-DIMMs-150x84.jpeg 150w, https://blog.fosketts.net/wp-content/uploads/2020/09/Samsung-DIMMs-768x433.jpeg 768w, https://blog.fosketts.net/wp-content/uploads/2020/09/Samsung-DIMMs.jpeg 1280w" sizes="auto, (max-width: 500px) 100vw, 500px" /><figcaption>My RAM arrived! That&#8217;s 30 new Samsung DDR3L 8 GB SO-DIMMs, straight from China</figcaption></figure></div>



<p>Installation of Ubuntu went pretty smoothly once I got started with the SD cards. This is no surprise, since these are basically little PCs with well-supported hardware. This is one reason the NUCs are so useful: Even though they use an oddball Atom CPU, they&#8217;re not really unusual at all. I expect that they will be useful and supported for years, if not decades to come. The same can not be said of the Jetson TK1, as I will discuss in my next article!</p>



<p>I created a generic install of Ubuntu 18 on one of the Rabbits and copied the card image to my Mac using dd. Now I can create more copies whenever needed and only have to do a little tuning to get the next Rabbit running: Change the BIOS to disable PXE, enable boot from USB, and enable USB port 4 (which is mysteriously disabled in BIOS on every NUC) and set the hostname to a generic value based on its position in the Rabbit tray.</p>



<p><em>Note: I experienced some &#8220;weirdness&#8221; getting the Ubuntu Server install process to recognize an SD card or a USB flash drive as a valid install target. I am not sure if I did something wrong or if Ubuntu&#8217;s latest installer really doesn&#8217;t want to work with them. But the older images and installers seem to work fine. I solved this by putting the SD card in an external USB reader, and the installer happily wrote to it.</em></p>



<h2 class="wp-block-heading">Stephen&#8217;s Stance: Good Little Rabbits</h2>



<p>My experiments so far have cemented my opinion on the value of the NUCs in a cloud lab environment: They&#8217;re plenty snappy with 8 or 16 GB of RAM, even using an SD card for storage. The tray power supply is efficient and capable, and the whole tray doesn&#8217;t make much noise or heat. I&#8217;ll write more about that soon! Overall, with just about $1k invested, this &#8220;cloud of rabbits&#8221; is working out fine.</p>
<hr />
<p><small>© Stephen Foskett for <a href="https://blog.fosketts.net">Stephen Foskett, Pack Rat</a>: <a href="https://blog.fosketts.net/2020/09/21/running-rabbits-more-about-my-cloud-nucs/">Running Rabbits: More About My Cloud NUCs</a></small></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.fosketts.net/2020/09/21/running-rabbits-more-about-my-cloud-nucs/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
