<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>tribblix &amp;mdash; LinuxPizza</title>
    <link>https://blogs.linux.pizza/tag:tribblix</link>
    <description>Personal notes and occasional posts - 100% human, 0% AI generated</description>
    <pubDate>Tue, 14 Apr 2026 15:49:18 +0000</pubDate>
    <item>
      <title>OmniOS - The distant cousin to Linux</title>
      <link>https://blogs.linux.pizza/omnios-the-distant-cousin-to-linux</link>
      <description>&lt;![CDATA[OmniOS - The distant cousin to Linux&#xA;Linux distant cousin - OmniOS&#xA;Not so long ago, there where plenty of cousins alive and well in the world. You may have heard about Solaris, IRIX, AIX, HP-UX - in this post, we will explore the grand-child to SunOS called OmniOS&#xA;&#xA;OmniOS is based on the Illumos kernel - a fork of the long forgotten and abandoned OpenSolaris kernel that famously was killed by Oracle shortly after the takeover from Sun Microsystems (rest in peace).&#xA;&#xA;I personally, are not fond of a homogeneous IT world, where every system is basically the same. I do think that diversity is good. So I hope that I can you as a reader interested in different Linux-alternatives (that is not BSD).&#xA;&#xA;So, pick the hypervisor you want (Proxmox, VMWare, AHV, VirtualBox) and navigate to https://omnios.org/download to download the latest stable .iso.&#xA;&#xA;The installation itself is very straight forward, so I&#39;ll be skipping that part here.&#xA;&#xA;When you have installed the system, and rebooted - we need to get networking up and running.&#xA;Login to the machine with the user &#34;root&#34;, and no password.&#xA;&#xA;Lets enable networking, start by displaying the network-ports on your system. In my case - I&#39;m using a virtualized Intel e1000 network card (available in basically every hypervisor)&#xA;dladm show-link -o link&#xA;Output:&#xA;LINK&#xA;e1000g0&#xA;Great, since this virtual machine only have a single NIC - this output is expected.&#xA;&#xA;Lets create the interface, give it an IPv4 and add a default route via the network gateway:&#xA;ipadm create-if e1000g0&#xA;ipadm create-addr -T static -a 192.168.2.38/24 e1000g0/v4&#xA;route -p add default 192.168.2.254&#xA;Verify that you have network connection with ping:&#xA;ping 8.8.8.8&#xA;8.8.8.8 is alive&#xA;DNS-resolution is not yet working, so we have to take care of that. Lets modify echo &#34;domain local.lan&#34;   /etc/resolv.conf&#xA;echo &#34;nameserver 192.168.1.254&#34;     /etc/resolv.conf&#xA;In some cases, I have had to overwrite nsswitch.conf aswell:&#xA;cat /etc/nsswitch.dns   /etc/nsswitch.conf&#xA;We should be able to resolve our way into the internet now:&#xA;ping linux.pizza&#xA;linux.pizza is alive&#xA;&#xA;Create a user and enable SSH, most of you will probably recognize the steps, since they are fairly basic and do not differ that much from how you would to in on a modern Linux machine&#xA;&#xA;Let&#39;s start by create a user:&#xA;useradd -m -d /home/jonathan -s /bin/bash jonathan&#xA;And set a password for the user, you can do it for the root-user aswell:&#xA;passwd jonathan&#xA;New password:&#xA;...&#xA;And last, enable the SSH-service:&#xA;svcadm enable ssh  &#xA;&#xA;Great, you should now be able to SSH-into the machine with the user you just created. You can elevate yourself into the root-user with the &#34;su&#34; command.&#xA;Not that complicated, right?&#xA;&#xA;Let&#39;s update the system.&#xA;&#xA;Lets update the package-information from the repositories&#xA;pkg refresh&#xA;pkg update&#xA;Just let this run, your system will be updated. In some cases, your system will have to reboot. &#xA;&#xA;And here, is where OmniOS shines - you can reboot your system - test it after you have performed the updates, and if stuff does not really work, you can simply rollback the changes you&#39;ve made with ## Rollback the system&#xA;After you have rebooted your system, check the output of root@omnios:~# beadm list&#xA;BE               Active Mountpoint Space  Policy Created&#xA;omnios-r151038an -      -          65.40M static 2022-12-03 15:35&#xA;omnios-r151038ca NR     /          1.35G  static 2022-12-03 16:14&#xA;You&#39;ll see to environments, and the one marked with &#34;NR&#34; is the current active one. If you want to rollback, you could execute (in my case) &#xA;root@omnios:~# beadm activate omnios-r151038an&#xA;Activated successfully&#xA;root@omnios:~# &#xA;root@omnios:~# &#xA;root@omnios:~# &#xA;root@omnios:~# ls&#xA;1&#xA;root@omnios:~# beadm list&#xA;BE               Active Mountpoint Space   Policy Created&#xA;omnios-r151038an R      -          869.15M static 2022-12-03 15:35&#xA;omnios-r151038ca N      /          580.90M static 2022-12-03 16:14&#xA;Then do a quick Let&#39;s check the current active environment after the system has rebooted:&#xA;root@omnios:~# beadm list&#xA;BE               Active Mountpoint Space   Policy Created&#xA;omnios-r151038an NR     /          872.95M static 2022-12-03 15:35&#xA;omnios-r151038ca -      -          583.64M static 2022-12-03 16:14&#xA;And we can see that the old one, created at 15:35 is the one that is currently active. We can now remove the newer one, since we dont need it anymore:&#xA;&#xA;root@omnios:~# beadm destroy omnios-r151038ca&#xA;Are you sure you want to destroy omnios-r151038ca?&#xA;This action cannot be undone (y/[n]): y&#xA;Destroyed successfully&#xA;root@omnios:~# beadm list &#xA;BE               Active Mountpoint Space   Policy Created&#xA;omnios-r151038an NR     /          748.05M static 2022-12-03 15:35&#xA;So, what is the practical / real world use for OmniOS?&#xA;Since OmniOS use ZFS, anything storage-related makes sense, such as a Network Attached Storage (NAS) even a Virtual Machine Host with the bhyve hypervisor - which itself is very interesting.&#xA;&#xA;If you are interested in more, you can check out my older post about Tribblix here.&#xA;&#xA;#unix #solaris #omnisos #illumos #tribblix #zfs&#xA;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://static.content.linux.pizza/jselea/content/omnios/omnios.svg" alt="OmniOS - The distant cousin to Linux" title="Linux distant cousin - OmniOS"></p>

<h1 id="linux-distant-cousin-omnios" id="linux-distant-cousin-omnios">Linux distant cousin – OmniOS</h1>

<h3 id="not-so-long-ago-there-where-plenty-of-cousins-alive-and-well-in-the-world-you-may-have-heard-about-solaris-irix-aix-hp-ux-in-this-post-we-will-explore-the-grand-child-to-sunos-called-omnios" id="not-so-long-ago-there-where-plenty-of-cousins-alive-and-well-in-the-world-you-may-have-heard-about-solaris-irix-aix-hp-ux-in-this-post-we-will-explore-the-grand-child-to-sunos-called-omnios">Not so long ago, there where plenty of cousins alive and well in the world. You may have heard about Solaris, IRIX, AIX, HP-UX – in this post, we will explore the grand-child to SunOS called OmniOS</h3>

<p>OmniOS is based on the Illumos kernel – a fork of the long forgotten and abandoned OpenSolaris kernel that famously was killed by Oracle shortly after the takeover from Sun Microsystems (rest in peace).</p>

<p>I personally, are not fond of a homogeneous IT world, where every system is basically the same. I do think that diversity is good. So I hope that I can you as a reader interested in different Linux-alternatives (that is not BSD).</p>

<p>So, pick the hypervisor you want (Proxmox, VMWare, AHV, VirtualBox) and navigate to <a href="https://omnios.org/download">https://omnios.org/download</a> to download the latest stable .iso.</p>

<p>The installation itself is very straight forward, so I&#39;ll be skipping that part here.</p>

<p>When you have installed the system, and rebooted – we need to get networking up and running.
Login to the machine with the user “root”, and no password.</p>

<p>Lets enable networking, start by displaying the network-ports on your system. In my case – I&#39;m using a virtualized Intel e1000 network card (available in basically every hypervisor)</p>

<pre><code>dladm show-link -o link
</code></pre>

<p>Output:</p>

<pre><code>LINK
e1000g0
</code></pre>

<p>Great, since this virtual machine only have a single NIC – this output is expected.</p>

<p>Lets create the interface, give it an IPv4 and add a default route via the network gateway:</p>

<pre><code>ipadm create-if e1000g0
ipadm create-addr -T static -a 192.168.2.38/24 e1000g0/v4
route -p add default 192.168.2.254
</code></pre>

<p>Verify that you have network connection with ping:</p>

<pre><code>ping 8.8.8.8
8.8.8.8 is alive
</code></pre>

<p>DNS-resolution is not yet working, so we have to take care of that. Lets modify <code>/etc/resolv.conf</code> with the following</p>

<pre><code>echo &#34;domain local.lan&#34; &gt; /etc/resolv.conf
echo &#34;nameserver 192.168.1.254&#34; &gt;&gt; /etc/resolv.conf
</code></pre>

<p>In some cases, I have had to overwrite nsswitch.conf aswell:</p>

<pre><code>cat /etc/nsswitch.dns &gt; /etc/nsswitch.conf
</code></pre>

<p>We should be able to resolve our way into the internet now:</p>

<pre><code>ping linux.pizza
linux.pizza is alive
</code></pre>

<h3 id="create-a-user-and-enable-ssh-most-of-you-will-probably-recognize-the-steps-since-they-are-fairly-basic-and-do-not-differ-that-much-from-how-you-would-to-in-on-a-modern-linux-machine" id="create-a-user-and-enable-ssh-most-of-you-will-probably-recognize-the-steps-since-they-are-fairly-basic-and-do-not-differ-that-much-from-how-you-would-to-in-on-a-modern-linux-machine">Create a user and enable SSH, most of you will probably recognize the steps, since they are fairly basic and do not differ that much from how you would to in on a modern Linux machine</h3>

<p>Let&#39;s start by create a user:</p>

<pre><code>useradd -m -d /home/jonathan -s /bin/bash jonathan
</code></pre>

<p>And set a password for the user, you can do it for the root-user aswell:</p>

<pre><code>passwd jonathan
New password:
...
</code></pre>

<p>And last, enable the SSH-service:</p>

<pre><code>svcadm enable ssh  
</code></pre>

<p>Great, you should now be able to SSH-into the machine with the user you just created. You can elevate yourself into the root-user with the “su” command.
Not that complicated, right?</p>

<h2 id="let-s-update-the-system" id="let-s-update-the-system">Let&#39;s update the system.</h2>

<p>Lets update the package-information from the repositories</p>

<pre><code>pkg refresh
</code></pre>

<pre><code>pkg update
</code></pre>

<p>Just let this run, your system will be updated. In some cases, your system will have to reboot.</p>

<p>And here, is where OmniOS shines – you can reboot your system – test it after you have performed the updates, and if stuff does not really work, you can simply rollback the changes you&#39;ve made with <code>beadm</code></p>

<h2 id="rollback-the-system" id="rollback-the-system">Rollback the system</h2>

<p>After you have rebooted your system, check the output of <code>beadm list</code></p>

<pre><code>root@omnios:~# beadm list
BE               Active Mountpoint Space  Policy Created
omnios-r151038an -      -          65.40M static 2022-12-03 15:35
omnios-r151038ca NR     /          1.35G  static 2022-12-03 16:14
</code></pre>

<p>You&#39;ll see to environments, and the one marked with “NR” is the current active one. If you want to rollback, you could execute (in my case) `<code>beadm activate omnios-r151038an</code></p>

<pre><code>root@omnios:~# beadm activate omnios-r151038an
Activated successfully
root@omnios:~# 
root@omnios:~# 
root@omnios:~# 
root@omnios:~# ls
1
root@omnios:~# beadm list
BE               Active Mountpoint Space   Policy Created
omnios-r151038an R      -          869.15M static 2022-12-03 15:35
omnios-r151038ca N      /          580.90M static 2022-12-03 16:14
</code></pre>

<p>Then do a quick <code>reboot</code> to boot into the active one.
Let&#39;s check the current active environment after the system has rebooted:</p>

<pre><code>root@omnios:~# beadm list
BE               Active Mountpoint Space   Policy Created
omnios-r151038an NR     /          872.95M static 2022-12-03 15:35
omnios-r151038ca -      -          583.64M static 2022-12-03 16:14
</code></pre>

<p>And we can see that the old one, created at 15:35 is the one that is currently active. We can now remove the newer one, since we dont need it anymore:</p>

<pre><code>root@omnios:~# beadm destroy omnios-r151038ca
Are you sure you want to destroy omnios-r151038ca?
This action cannot be undone (y/[n]): y
Destroyed successfully
root@omnios:~# beadm list 
BE               Active Mountpoint Space   Policy Created
omnios-r151038an NR     /          748.05M static 2022-12-03 15:35
</code></pre>

<h2 id="so-what-is-the-practical-real-world-use-for-omnios" id="so-what-is-the-practical-real-world-use-for-omnios">So, what is the practical / real world use for OmniOS?</h2>

<p>Since OmniOS use ZFS, anything storage-related makes sense, such as a Network Attached Storage (NAS) even a Virtual Machine Host with the <a href="https://omnios.org/info/bhyve">bhyve hypervisor</a> – which itself is very interesting.</p>

<p>If you are interested in more, you can <a href="https://blogs.linux.pizza/run-a-tor-relay-on-tribblix-an-illumos-retro-distribution">check out my older post about Tribblix here.</a></p>

<p><a href="https://blogs.linux.pizza/tag:unix" class="hashtag"><span>#</span><span class="p-category">unix</span></a> <a href="https://blogs.linux.pizza/tag:solaris" class="hashtag"><span>#</span><span class="p-category">solaris</span></a> <a href="https://blogs.linux.pizza/tag:omnisos" class="hashtag"><span>#</span><span class="p-category">omnisos</span></a> <a href="https://blogs.linux.pizza/tag:illumos" class="hashtag"><span>#</span><span class="p-category">illumos</span></a> <a href="https://blogs.linux.pizza/tag:tribblix" class="hashtag"><span>#</span><span class="p-category">tribblix</span></a> <a href="https://blogs.linux.pizza/tag:zfs" class="hashtag"><span>#</span><span class="p-category">zfs</span></a></p>
]]></content:encoded>
      <guid>https://blogs.linux.pizza/omnios-the-distant-cousin-to-linux</guid>
      <pubDate>Sat, 03 Dec 2022 15:46:53 +0000</pubDate>
    </item>
    <item>
      <title>Run a Tor-Relay on Tribblix - an Illumos retro distribution</title>
      <link>https://blogs.linux.pizza/run-a-tor-relay-on-tribblix-an-illumos-retro-distribution</link>
      <description>&lt;![CDATA[This fall, has been busy for me, and when I am busy I like to experiment and play with stuff - especially IT and nerdy stuff.&#xA;This brings me back to the days when I started with Linux, for me it was new, cool and different. Nowadays I feel like it is not so different.&#xA;&#xA;So, being the hipster that I am, I set out to find something new. I&#39;ve already tried and played with OmniOS a couple of years back and I liked it. And during my quest to get it on a iPXE server - I found out about Tribblix.&#xA;&#xA;Tribblix is a Illumos distribution with a retro feel. And that I liked. The iPXE setup was easy since Peter Tribble - the creator and maintainer of Tribblix - already have an iPXE server up and running. So I just used the already ready target at (http://pkgs.tribblix.org/m24/ipxe.txt) and got it up and running according to the installation instructions provided by Tribblix here:&#xA;http://www.tribblix.org/install.html&#xA;&#xA;Enter Tor - and the recent news that Russia has decided to block Tor nationwide. I must say that I do understand why they did it from a IT-security perspective - alot of crap is originating from Russia. That is an undisputed fact.&#xA;However, from a freedom perspective - this is making an already bad situation even worse. So what a perfect opporunity to run a Tor-relay on a SunOS machine! Currently, there is only 5 relays that is running on a Solaris/SunOS based kernel (including one of mine).&#xA;Lets change that - more diversity in the Tor-network is a good thing.&#xA;&#xA;So, assuming that you have installed Tribblix. Lets pull down the Tribblix overlay called &#34;develop&#34;&#xA;&#xA;zap install develop&#xA;&#xA;This takes a couple of minutes, and what it does is that it download and installs all the nessecary packages you need to build Tor.&#xA;&#xA;We also need LibEvent, since Tor requires it. And the TRIBlibev is like libevent - but not really - we need to manually compile it.&#xA;&#xA;Download the latest stable version from github, and extract it like shown below:&#xA;&#xA;wget https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz&#xA;tar -xvf libevent-2.1.12-stable.tar.gz&#xA;Lets also pull down the Tor-source code and extract:&#xA;wget https://dist.torproject.org/tor-0.4.6.9.tar.gz&#xA;tar -xvf tor-0.4.6.9.tar.gz&#xA;&#xA;Great, now you should have everything you need in order to get started.&#xA;&#xA;Navigate to the libevent catalogue you just extracted, and run the following:&#xA;&#xA;./configure --prefix=/tmp/mc --enable-static --disable-shared&#xA;gmake&#xA;gmake install&#xA;This will create a static and temporary copy of LibEvent in the /tmp/mc catalogue. we will use that in the compilation of Tor.&#xA;&#xA;When the compilation of LibEvent is done, nagivate to the Tor-catalogue and run the following:&#xA;./configure --with-libevent-dir=/tmp/mc MAKE=&#34;gmake&#34;&#xA;gmake&#xA;gmake install&#xA;&#xA;The proceedure is quite similar to the LibEvent compilation.&#xA;&#xA;When the &#xA;Configure the torrc file according to your needs, read the Tor Projects Post Install Guide and follow the recommendations.&#xA;&#xA;You can now run tor by just typing &#xA;For now, you can use &#xA;&#xA;Thanks to Peter Tribble, who told me how to get LibEvent into the system.&#xA;&#xA;Tor Relay by Kernels&#xA;&#xA;#unix #tor #building #illumos #tribblix&#xA;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<h3 id="this-fall-has-been-busy-for-me-and-when-i-am-busy-i-like-to-experiment-and-play-with-stuff-especially-it-and-nerdy-stuff" id="this-fall-has-been-busy-for-me-and-when-i-am-busy-i-like-to-experiment-and-play-with-stuff-especially-it-and-nerdy-stuff">This fall, has been busy for me, and when I am busy I like to experiment and play with stuff – especially IT and nerdy stuff.</h3>

<p>This brings me back to the days when I started with Linux, for me it was new, cool and different. Nowadays I feel like it is not so different.</p>

<p>So, being the hipster that I am, I set out to find something new. I&#39;ve already tried and played with OmniOS a couple of years back and I liked it. And during my quest to get it on a iPXE server – I found out about Tribblix.</p>

<p>Tribblix is a <a href="http://www.tribblix.org/">Illumos distribution with a retro feel</a>. And that I liked. The iPXE setup was easy since Peter Tribble – the creator and maintainer of Tribblix – already have an iPXE server up and running. So I just used the already ready target at (<a href="http://pkgs.tribblix.org/m24/ipxe.txt">http://pkgs.tribblix.org/m24/ipxe.txt</a>) and got it up and running according to the installation instructions provided by Tribblix here:
<a href="http://www.tribblix.org/install.html">http://www.tribblix.org/install.html</a></p>

<p>Enter Tor – and the recent news that Russia has decided to block Tor nationwide. I must say that I do understand why they did it from a IT-security perspective – alot of crap is originating from Russia. That is an undisputed fact.
However, from a freedom perspective – this is making an already bad situation even worse. So what a perfect opporunity to run a Tor-relay on a SunOS machine! Currently, there is only 5 relays that is running on a Solaris/SunOS based kernel (including one of mine).
Lets change that – more diversity in the Tor-network is a good thing.</p>

<p>So, assuming that you have installed Tribblix. Lets pull down the Tribblix overlay called “develop”</p>

<pre><code>zap install develop
</code></pre>

<p>This takes a couple of minutes, and what it does is that it download and installs all the nessecary packages you need to build Tor.</p>

<p>We also need LibEvent, since Tor requires it. And the TRIBlibev is like libevent – but not really – we need to manually compile it.</p>

<p>Download the latest stable version from github, and extract it like shown below:</p>

<pre><code>wget https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
tar -xvf libevent-2.1.12-stable.tar.gz
</code></pre>

<p>Lets also pull down the Tor-source code and extract:</p>

<pre><code>wget https://dist.torproject.org/tor-0.4.6.9.tar.gz
tar -xvf tor-0.4.6.9.tar.gz
</code></pre>

<p>Great, now you should have everything you need in order to get started.</p>

<p>Navigate to the libevent catalogue you just extracted, and run the following:</p>

<pre><code>./configure --prefix=/tmp/mc --enable-static --disable-shared
gmake
gmake install
</code></pre>

<p>This will create a static and temporary copy of LibEvent in the /tmp/mc catalogue. we will use that in the compilation of Tor.</p>

<p>When the compilation of LibEvent is done, nagivate to the Tor-catalogue and run the following:</p>

<pre><code>./configure --with-libevent-dir=/tmp/mc MAKE=&#34;gmake&#34;
gmake
gmake install
</code></pre>

<p>The proceedure is quite similar to the LibEvent compilation.</p>

<p>When the <code>gmake install</code> procedure is done, you can find the tor-config files in <code>/usr/local/etc/tor/</code> and the binaries in <code>/usr/local/bin/</code>.</p>

<p>Configure the torrc file according to your needs, read the <a href="https://community.torproject.org/relay/setup/post-install/">Tor Projects Post Install Guide</a> and follow the recommendations.</p>

<p>You can now run tor by just typing <code>/usr/local/bin/tor</code> in your terminal – and you now have a relay running.</p>

<p>For now, you can use <code>tmux</code> in order to run it in the background.</p>

<p>Thanks to <a href="http://www.petertribble.co.uk/">Peter Tribble</a>, who told me how to get LibEvent into the system.</p>

<p><img src="https://cdn.social.linux.pizza/v1/AUTH_91eb37814936490c95da7b85993cc2ff/sociallinuxpizza/media_attachments/files/107/475/160/389/001/956/original/f22f80c8e860c0bf.png" alt="Tor Relay by Kernels"></p>

<p><a href="https://blogs.linux.pizza/tag:unix" class="hashtag"><span>#</span><span class="p-category">unix</span></a> <a href="https://blogs.linux.pizza/tag:tor" class="hashtag"><span>#</span><span class="p-category">tor</span></a> <a href="https://blogs.linux.pizza/tag:building" class="hashtag"><span>#</span><span class="p-category">building</span></a> <a href="https://blogs.linux.pizza/tag:illumos" class="hashtag"><span>#</span><span class="p-category">illumos</span></a> <a href="https://blogs.linux.pizza/tag:tribblix" class="hashtag"><span>#</span><span class="p-category">tribblix</span></a></p>
]]></content:encoded>
      <guid>https://blogs.linux.pizza/run-a-tor-relay-on-tribblix-an-illumos-retro-distribution</guid>
      <pubDate>Fri, 17 Dec 2021 16:46:39 +0000</pubDate>
    </item>
  </channel>
</rss>