<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Sysadmin on Swehack</title>
    <link>https://swehack.se/tags/sysadmin/</link>
    <description>Recent content in Sysadmin on Swehack</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 30 Oct 2026 21:09:03 +0100</lastBuildDate>
    <atom:link href="https://swehack.se/tags/sysadmin/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Openterface Setup</title>
      <link>https://swehack.se/blog/openterface-setup/</link>
      <pubDate>Fri, 30 Oct 2026 21:09:03 +0100</pubDate>
      
      <guid>https://swehack.se/blog/openterface-setup/</guid>
      <description>&lt;p&gt;I bought this &lt;a href=&#34;https://openterface.com/minikvm/&#34;&gt;cool little KVM called Openterface&lt;/a&gt; that I use both at home and at work, here&amp;rsquo;s what I had to do to use it on my Fedora Atomic laptop.&lt;/p&gt;
&lt;h2 id=&#34;step-1-download-rpm&#34;&gt;Step 1: Download rpm&lt;/h2&gt;
&lt;p&gt;Get &lt;code&gt;openterfaceQT_Linux_amd64.rpm&lt;/code&gt; from &lt;a href=&#34;https://openterface.com/apps/&#34;&gt;https://openterface.com/apps/&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;step-2-install-the-rpm-in-the-distrobox&#34;&gt;Step 2: Install the rpm in the distrobox&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo rpm -i openterfaceQT_Linux_amd64.rpm
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;step-3-install-the-qt-xcb-dependencies-in-distrobox&#34;&gt;Step 3: Install the Qt xcb dependencies in distrobox&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo dnf install xcb-util-wm xcb-util-image xcb-util-keysyms xcb-util-renderutil xcb-util-cursor libxkbcommon-x11
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;step-4-add-udev-rules-on-the-host&#34;&gt;Step 4: Add udev rules on the host&lt;/h2&gt;
&lt;p&gt;This is required for keyboard input to work.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo tee /etc/udev/rules.d/51-openterface.rules &amp;gt;/dev/null &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;&amp;lt;&amp;#39;EOF&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;SUBSYSTEM==&amp;#34;usb&amp;#34;,    ATTRS{idVendor}==&amp;#34;534d&amp;#34;, ATTRS{idProduct}==&amp;#34;2109&amp;#34;, TAG+=&amp;#34;uaccess&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;SUBSYSTEM==&amp;#34;hidraw&amp;#34;, ATTRS{idVendor}==&amp;#34;534d&amp;#34;, ATTRS{idProduct}==&amp;#34;2109&amp;#34;, TAG+=&amp;#34;uaccess&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;SUBSYSTEM==&amp;#34;usb&amp;#34;,    ATTRS{idVendor}==&amp;#34;345f&amp;#34;, ATTRS{idProduct}==&amp;#34;2109&amp;#34;, TAG+=&amp;#34;uaccess&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;SUBSYSTEM==&amp;#34;hidraw&amp;#34;, ATTRS{idVendor}==&amp;#34;345f&amp;#34;, ATTRS{idProduct}==&amp;#34;2109&amp;#34;, TAG+=&amp;#34;uaccess&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;SUBSYSTEM==&amp;#34;usb&amp;#34;,    ATTRS{idVendor}==&amp;#34;345f&amp;#34;, ATTRS{idProduct}==&amp;#34;2132&amp;#34;, TAG+=&amp;#34;uaccess&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;SUBSYSTEM==&amp;#34;hidraw&amp;#34;, ATTRS{idVendor}==&amp;#34;345f&amp;#34;, ATTRS{idProduct}==&amp;#34;2132&amp;#34;, TAG+=&amp;#34;uaccess&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;SUBSYSTEM==&amp;#34;tty&amp;#34;,    ATTRS{idVendor}==&amp;#34;1a86&amp;#34;, ATTRS{idProduct}==&amp;#34;7523&amp;#34;, TAG+=&amp;#34;uaccess&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;SUBSYSTEM==&amp;#34;usb&amp;#34;,    ATTRS{idVendor}==&amp;#34;1a86&amp;#34;, ATTRS{idProduct}==&amp;#34;7523&amp;#34;, TAG+=&amp;#34;uaccess&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;SUBSYSTEM==&amp;#34;tty&amp;#34;,    ATTRS{idVendor}==&amp;#34;1a86&amp;#34;, ATTRS{idProduct}==&amp;#34;fe0c&amp;#34;, TAG+=&amp;#34;uaccess&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;SUBSYSTEM==&amp;#34;usb&amp;#34;,    ATTRS{idVendor}==&amp;#34;1a86&amp;#34;, ATTRS{idProduct}==&amp;#34;fe0c&amp;#34;, TAG+=&amp;#34;uaccess&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo udevadm control --reload-rules
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo udevadm trigger
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;step-5-add-groups-on-the-host&#34;&gt;Step 5: Add groups on the host&lt;/h2&gt;
&lt;p&gt;You might already have these groups, check with &lt;code&gt;id&lt;/code&gt;. I only needed dialout personally to see the screen and use the keyboard.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; g in dialout video; &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  getent group $g &amp;gt;/dev/null &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; ! grep -q &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;^&lt;/span&gt;$g&lt;span style=&#34;color:#e6db74&#34;&gt;:&amp;#34;&lt;/span&gt; /etc/group &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; getent group $g | sudo tee -a /etc/group &amp;gt;/dev/null
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo usermod -aG dialout,video $USER
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Log out and back in.&lt;/p&gt;
&lt;h2 id=&#34;step-6-launch-the-app&#34;&gt;Step 6: Launch the app&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;openterfaceQT
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
  </channel>
</rss>
