<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.ho.stna.me/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=172.17.0.1</id>
	<title>pega.life - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ho.stna.me/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=172.17.0.1"/>
	<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php/Special:Contributions/172.17.0.1"/>
	<updated>2026-07-01T05:00:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.36.2</generator>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=XigmaNAS&amp;diff=470</id>
		<title>XigmaNAS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=XigmaNAS&amp;diff=470"/>
		<updated>2026-06-23T02:54:42Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* install deps via pkg */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Build xigmanas&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh filer02 sudo zfs rollback dozer/chroots/xig@latest ; ssh filer02 xig /root/pkgs/go ; exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xig:~# cat cicd&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
scp -rp 192.168.3.198:pkgs /root/&lt;br /&gt;
/root/pkgs/go&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
BSD cloud images&lt;br /&gt;
https://bsd-cloud-image.org/&lt;br /&gt;
login: freebsd&lt;br /&gt;
&lt;br /&gt;
https://object-storage.public.mtl1.vexxhost.net/swift/v1/1dbafeefbd4f4c80864414a441e72dd2/bsd-cloud-image.org/images/freebsd/14.0/2024-05-06/zfs/freebsd-14.0-zfs-2024-05-06.qcow2&lt;br /&gt;
&lt;br /&gt;
XigmaNAS&lt;br /&gt;
IRC https://web.libera.chat/#xigmanas&lt;br /&gt;
&lt;br /&gt;
=== Finch shell ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[filer02]:~/bin$ cat fch&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$#&amp;quot; -ge 1 ]; then&lt;br /&gt;
        sudo chroot /mnt/tank/finch &amp;quot;$@&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
        sudo chroot /mnt/tank/finch bash -l&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Finch Version ===&lt;br /&gt;
FreeBSD &lt;br /&gt;
9.0 works&lt;br /&gt;
9.3 works (different flags)&lt;br /&gt;
10.0 works&lt;br /&gt;
10.1 works (different flags)&lt;br /&gt;
11.0 works (different flags) (no syslog (-S doesn't exist))&lt;br /&gt;
11.4 locks (different flags) (no syslog (but exists))&lt;br /&gt;
12.0 locks (different flags) (no syslog (but exists))&lt;br /&gt;
13.2 locks (pkill tee works)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
syslogd fails&lt;br /&gt;
syslogd doesn't run in finch&lt;br /&gt;
kill tee (logger) works because logger fails because no syslogd?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# /zroot/bynch141/etc/finch/postinit ; chroot /zroot/bynch141/ /etc/rc.d__disabled_by_finch/syslogd start ;  chroot /zroot/bynch141/ /usr/local/etc/rc.d/yesd onestart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Finch Install ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zpool create -f zroot nda0p4&lt;br /&gt;
zfs create -o compress=zstd zroot/bynch&lt;br /&gt;
cd /zroot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -O wongk@192.168.3.159:f/FreeBSD-14.1-RELEASE-amd64-disc1.iso .&lt;br /&gt;
md=$(mdconfig -a -t vnode -f *.iso)&lt;br /&gt;
mkdir iso&lt;br /&gt;
mount -t cd9660 /dev/${md} iso&lt;br /&gt;
&lt;br /&gt;
alias finch-bootstrap=&amp;quot;SSL_NO_VERIFY_PEER=YES fetch -q -o - http://git.io/HxXrsw | sh -s --&amp;quot;&lt;br /&gt;
finch-bootstrap --help&lt;br /&gt;
&lt;br /&gt;
finch-bootstrap install -y -x --txz-distfiles-dir iso/usr/freebsd-dist --dir /zroot/bynch&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pw user mod root -s /usr/local/bin/bash&lt;br /&gt;
&lt;br /&gt;
chroot /zroot/bynch/ sh&lt;br /&gt;
ldconfig /lib /usr/lib /usr/local/lib&lt;br /&gt;
vi ~/.bash_profile&lt;br /&gt;
PS1=&amp;quot;\[\033[1;37m\]bynch:\[\033[38;5;166m\]\w\[\033[0m\]\\$ &amp;quot;&lt;br /&gt;
cd&lt;br /&gt;
&lt;br /&gt;
chroot /zroot/bynch bash -l&lt;br /&gt;
&lt;br /&gt;
sysrc yes_enable=YES&lt;br /&gt;
vi /usr/local/etc/rc.d/yesd&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/yesd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
yesd&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# PROVIDE: yes&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable yes:&lt;br /&gt;
#&lt;br /&gt;
# yes_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;yes&amp;quot;&lt;br /&gt;
rcvar=&amp;quot;yes_enable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/sbin/daemon&amp;quot;&lt;br /&gt;
command_args=&amp;quot;-P ${pidfile} -r -S -t ${name} -T ${name} /usr/bin/yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
: ${yes_enable:=no}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Jellyfin ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch# qjail create -4 192.168.3.195 jellyfin&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep mlock jellyfin&lt;br /&gt;
allow.mlock;&lt;br /&gt;
finch# qjail start jellyfin&lt;br /&gt;
finch# qjail console jellyfin&lt;br /&gt;
&lt;br /&gt;
jellyfin&amp;gt; pkg install jellyfin&lt;br /&gt;
jellyfin&amp;gt; service jellyfin enable&lt;br /&gt;
jellyfin&amp;gt; service jellyfin start&lt;br /&gt;
&lt;br /&gt;
filer02# sudo mount_nullfs -o ro,noatime /mnt/tank/media /mnt/tank/finch/usr/jails/jellyfin/media&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Bastille Extension ====&lt;br /&gt;
https://github.com/JRGTH/xigmanas-bastille-extension&lt;br /&gt;
https://gitlab.com/bastillebsd-templates/jellyfin/-/blob/main/Bastillefile?ref_type=heads&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CMD mkdir -p /usr/local/etc/pkg/repos&lt;br /&gt;
CMD echo 'FreeBSD: { url: &amp;quot;pkg+http://pkg.FreeBSD.org/${ABI}/latest&amp;quot; }' &amp;gt; /usr/local/etc/pkg/repos/FreeBSD.conf&lt;br /&gt;
CONFIG set allow.mlock=1;&lt;br /&gt;
CONFIG set ip6=inherit;&lt;br /&gt;
RESTART&lt;br /&gt;
PKG jellyfin&lt;br /&gt;
SYSRC jellyfin_enable=TRUE&lt;br /&gt;
SERVICE jellyfin start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bastille BSD ===&lt;br /&gt;
https://bastille.readthedocs.io/en/latest/chapters/networking.html#virtual-network-vnet&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bastille create -V azkaban 14.1-RELEASE 192.168.1.50/24 em0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== debootstrap ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/local/share/debootstrap/scripts# fgrep -nA3 'noble)' noble&lt;br /&gt;
122:            noble)&lt;br /&gt;
123-                    # see https://bugs.debian.org/838388&lt;br /&gt;
124-                    EXTRACT_DEB_TAR_OPTIONS=&amp;quot;$EXTRACT_DEB_TAR_OPTIONS &amp;quot;&lt;br /&gt;
125-                    ;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/local/bastille/releases# bastille bootstrap noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bastille create -L lintest noble 192.168.3.193/24 em0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== VS Code ===&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/mateuszkwiatkowski/ce486d692b4cb18afc2c8c68dcfe8602&lt;br /&gt;
https://www.gaelanlloyd.com/blog/how-to-connect-visual-studio-code-to-freebsd-servers/&lt;br /&gt;
&lt;br /&gt;
remote-ssh seem to ignore bash config files so we need to change $PATH in /etc/login.conf or send custom env with SetEnv directive in ssh_config. Choose which fits you better.&lt;br /&gt;
&lt;br /&gt;
Configure /etc/login.conf&lt;br /&gt;
&lt;br /&gt;
By default it's class default, we need to give priority to linux binaries:&lt;br /&gt;
&amp;lt;pre&amp;gt; :path=/compat/linux/usr/sbin /compat/linux/usr/bin /sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin ~/bin:\ &amp;lt;/pre&amp;gt;&lt;br /&gt;
rebuild CAP database: &lt;br /&gt;
&amp;lt;pre&amp;gt;cap_mkdb /etc/login.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
Flip the switch in the VS Code extension to &amp;quot;Enable Remote Command&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sysctl kern.elf64.fallback_brand&lt;br /&gt;
kern.elf64.fallback_brand: -1&lt;br /&gt;
# sysctl kern.elf64.fallback_brand=3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NIC driver ===&lt;br /&gt;
https://www.intel.com/content/www/us/en/download/15187/intel-network-adapter-gigabit-base-driver-for-freebsd.html&lt;br /&gt;
https://web.archive.org/web/20131009070059/https://thesorcerer.wordpress.com/2011/07/01/guide-intel-82573l-gigabit-ethernet-with-ubuntu-11-04-and-fix-pxe-e05/&lt;br /&gt;
https://www.intel.com/content/www/us/en/download/15755/intel-ethernet-connections-boot-utility-preboot-images-and-efi-drivers.html&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bootutil -defcfg          #force bootutil to load the default PXE configuration into the controller&lt;br /&gt;
&lt;br /&gt;
# Georgi says ” bootutil -nic=1 -defcfg” it’s better. Try if the other returns an err&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== VM Setup ===&lt;br /&gt;
https://github.com/churchers/vm-bhyve&lt;br /&gt;
&lt;br /&gt;
Type ~+Ctrl-D to exit back to your host.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sysrc vm_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
# sysrc vm_dir=&amp;quot;zfs:dozer/vms&amp;quot;&lt;br /&gt;
# zfs create -o compression=lz4 dozer/vms/zvols # lz4 is better for multiple reads?&lt;br /&gt;
vm init&lt;br /&gt;
vm img https://download.freebsd.org/ftp/releases/VM-IMAGES/14.1-RELEASE/amd64/Latest/FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw.xz &lt;br /&gt;
# zfs create -s -V 35G dozer/vms/zvols/freebsd141&lt;br /&gt;
# dd bs=1m if=~/vms/.img/FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw of=/dev/zvol/dozer/vms/zvols/freebsd141 status=progress&lt;br /&gt;
# zfs snapshot dozer/vms/zvols/freebsd141@img35G&lt;br /&gt;
#vm create -t xbuild -s 35G -i FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw -C -k ~/.ssh/vms_id_ed.pub xBhyve141&lt;br /&gt;
vm create -t freebsd-zvol -C -k ~/.ssh/vms_id_ed.pub ci&lt;br /&gt;
zfs destroy dozer/vms/ci/disk0&lt;br /&gt;
zfs clone dozer/vms/zvols/freebsd141@img35G dozer/vms/ci/disk0&lt;br /&gt;
&lt;br /&gt;
 gpart recover nda0&lt;br /&gt;
 gpart show&lt;br /&gt;
# gpart resize -i 5 nda0&lt;br /&gt;
# growfs -f /dev/gpt/rootfs&lt;br /&gt;
&lt;br /&gt;
vm start xBhyve141&lt;br /&gt;
vm console xBhyve141&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
graphics is only possible with loader=&amp;quot;uefi&amp;quot;, not with &amp;quot;grub&amp;quot;. https://forums.freebsd.org/threads/bhyve-graphics-install-and-vncviewer.88114/&lt;br /&gt;
disk0.img is faster, but doesn't support -s 35G on create&lt;br /&gt;
nvme is faster than virtio-blk&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vm create -t freebsd-zvol -s 35G -i FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw -C -k ~/.ssh/vms_id_ed.pub xBuild141&lt;br /&gt;
dd if=/dev/zvol/dozer/vms/xBuild141/disk0 of=xBuild141/disk0.img bs=1m&lt;br /&gt;
vm configure xBuild141&lt;br /&gt;
disk0_name=&amp;quot;disk0.img&amp;quot;&lt;br /&gt;
#disk0_dev=&amp;quot;sparse-zvol&amp;quot;&lt;br /&gt;
&lt;br /&gt;
vm create -t freebsd -s 35G -i FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw -C -k ~/.ssh/vms_id_ed.pub xBuild141&lt;br /&gt;
qemu-img resize -f raw xBuild141/disk0.img 35G # resize before first boot&lt;br /&gt;
vm start xBuild141&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Bastille vnet + vm-bhyve vnet ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig bridge&lt;br /&gt;
ifconfig: interface bridge does not exist&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig bridge create&lt;br /&gt;
bridge0&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig bridge0 name em0bridge&lt;br /&gt;
em0bridge&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig em0bridge addm em0 up&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig em0bridge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Share bastille's bridge with bhyve. (manually setup the switch)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vm switch create -t manual -b em0bridge public&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== vm-bhyve restart ====&lt;br /&gt;
since vm-bhyve is within finch chroot, the mount points need to be re-mounted within the chroot&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zfs list -t filesystem | awk '/vms/ { print $1}' | xargs -n1 zfs mount&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Host Setup ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# disable autoboot delay&lt;br /&gt;
grep autoboot /boot/loader.conf || echo 'autoboot_delay=&amp;quot;-1&amp;quot;' &amp;gt;&amp;gt; /boot/loader.conf&lt;br /&gt;
mkdir -p .ssh&lt;br /&gt;
grep filer02 /etc/hosts || echo -e &amp;quot;192.168.3.159\tfiler02&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
scp wongk@192.168.3.83:.ssh/vms_id_ed.pub .ssh/authorized_keys&lt;br /&gt;
scp wongk@192.168.3.83:.ssh/vms_id_ed .ssh/&lt;br /&gt;
grep vms .ssh/config || echo 'IdentityFile ~/.ssh/vms_id_ed' &amp;gt;&amp;gt; .ssh/config&lt;br /&gt;
ls /boot/entropy || /etc/rc.d/random start&lt;br /&gt;
grep bash /etc/shells || echo /usr/local/bin/bash &amp;gt;&amp;gt; /etc/shells&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y parallel&lt;br /&gt;
echo 'will cite' | parallel --citation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Upgrade Host ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
date ; PAGER=cat yes | freebsd-update -r 14.1-RELEASE-p2 --currently-running 14.1-RELEASE-p1 --not-running-from-cron upgrade; date&lt;br /&gt;
date ; time yes | PAGER=cat freebsd-update --currently-running $(uname -r) --not-running-from-cron fetch install ; date&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
real    4m23.307s&lt;br /&gt;
user    2m49.590s&lt;br /&gt;
sys     0m13.771s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== pkg base ===&lt;br /&gt;
https://wiki.freebsd.org/PkgBase&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
date&lt;br /&gt;
ls -l /boot/kernel/kernel&lt;br /&gt;
mkdir -p /usr/local/etc/pkg/repos/&lt;br /&gt;
grep enabled /usr/local/etc/pkg/repos/base.conf || echo 'base: {&lt;br /&gt;
  url: &amp;quot;pkg+https://pkg.FreeBSD.org/${ABI}/base_release_1&amp;quot;,&lt;br /&gt;
  mirror_type: &amp;quot;srv&amp;quot;,&lt;br /&gt;
  signature_type: &amp;quot;fingerprints&amp;quot;,&lt;br /&gt;
  fingerprints: &amp;quot;/usr/share/keys/pkg&amp;quot;,&lt;br /&gt;
  enabled: yes&lt;br /&gt;
}' &amp;gt;/usr/local/etc/pkg/repos/base.conf&lt;br /&gt;
rm /usr/local/etc/pkg/repos/FreeBSD.conf&lt;br /&gt;
grep enabled /usr/local/etc/pkg/repos/latest.conf || echo 'latest: {&lt;br /&gt;
  url: &amp;quot;pkg+https://pkg.FreeBSD.org/${ABI}/latest&amp;quot;,&lt;br /&gt;
  mirror_type: &amp;quot;srv&amp;quot;,&lt;br /&gt;
  signature_type: &amp;quot;fingerprints&amp;quot;,&lt;br /&gt;
  fingerprints: &amp;quot;/usr/share/keys/pkg&amp;quot;,&lt;br /&gt;
  enabled: yes&lt;br /&gt;
}' &amp;gt;/usr/local/etc/pkg/repos/latest.conf&lt;br /&gt;
pkg update&lt;br /&gt;
&lt;br /&gt;
# find security patches. filter unnecessary and current patch-level packages&lt;br /&gt;
#time pkg search -r base -g 'FreeBSD-*p?' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/ {print $1}' | fgrep -v $(uname -r | awk -F- '{ print $1$3}') | xargs pkg install -y -r base &lt;br /&gt;
time pkg search -r base -g 'FreeBSD-*p?' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/ {print $1}' | xargs pkg install -y -r base &lt;br /&gt;
&lt;br /&gt;
cp -p /etc/master.passwd.pkgsave /etc/master.passwd&lt;br /&gt;
cp -p /etc/group.pkgsave /etc/group&lt;br /&gt;
cp -p /etc/shells.pkgsave /etc/shells&lt;br /&gt;
pwd_mkdb -p /etc/master.passwd&lt;br /&gt;
cp /etc/sysctl.conf.pkgsave /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
cp -p /etc/hosts.pkgsave /etc/hosts&lt;br /&gt;
cp -p /etc/ssh/sshd_config.pkgsave /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
# find changed files with &amp;quot;etc&amp;quot; in path&lt;br /&gt;
#find / -path '*/etc/*' -name &amp;quot;*.pkgsave&amp;quot; -type f&lt;br /&gt;
&lt;br /&gt;
# find changed .conf files&lt;br /&gt;
#find / -name &amp;quot;*.conf.pkgsave&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#find / -name \*.pkgsave -print -delete&lt;br /&gt;
ls -l /boot/kernel/kernel&lt;br /&gt;
date&lt;br /&gt;
&lt;br /&gt;
# (linker.hints was recreated at kernel install and we had the old modules as .pkgsave so we need to recreate it, this will be done at the next reboot)&lt;br /&gt;
rm /boot/kernel/linker.hints&lt;br /&gt;
&lt;br /&gt;
cd /var/cache/pkg&lt;br /&gt;
ls | fgrep -v '~' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pkg search -r base -g 'FreeBSD-*p1' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/ {print $1}' | xargs&lt;br /&gt;
FreeBSD-acct-14.1p1 FreeBSD-clang-14.1p1 FreeBSD-clibs-14.1p1 FreeBSD-devd-14.1p1 FreeBSD-kernel-generic-14.1p1 FreeBSD-lld-14.1p1 FreeBSD-lldb-14.1p1 FreeBSD-rescue-14.1p1 FreeBSD-runtime-14.1p1 FreeBSD-utilities-14.1p1 FreeBSD-zfs-14.1p1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install ports ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# time git clone -o freebsd https://git.freebsd.org/ports.git /usr/ports ; exit&lt;br /&gt;
Cloning into '/usr/ports'...&lt;br /&gt;
remote: Enumerating objects: 6293704, done.&lt;br /&gt;
remote: Counting objects: 100% (47660/47660), done.&lt;br /&gt;
remote: Compressing objects: 100% (37020/37020), done.&lt;br /&gt;
Receiving objects: 100% (6293704/6293704), 1.28 GiB | 6.50 MiB/s, done.&lt;br /&gt;
remote: Total 6293704 (delta 22967), reused 19260 (delta 10304), pack-reused 6246044 (from 1)&lt;br /&gt;
Resolving deltas: 100% (3797103/3797103), done.&lt;br /&gt;
Updating files: 100% (162138/162138), done.&lt;br /&gt;
&lt;br /&gt;
real    7m9.337s&lt;br /&gt;
user    6m38.899s&lt;br /&gt;
sys     1m26.111s&lt;br /&gt;
&lt;br /&gt;
# time git clone --depth 1 https://git.freebsd.org/ports.git /usr/ports&lt;br /&gt;
Cloning into '/usr/ports'...&lt;br /&gt;
load: 0.06  cmd: git-remote-https 64926 [select] 13.78r 0.01u 0.00s 0% 13088k&lt;br /&gt;
load: 0.05  cmd: git-remote-https 64926 [select] 21.56r 0.01u 0.00s 0% 13088k&lt;br /&gt;
remote: Enumerating objects: 197757, done.&lt;br /&gt;
remote: Counting objects: 100% (197757/197757), done.&lt;br /&gt;
remote: Compressing objects: 100% (185648/185648), done.&lt;br /&gt;
load: 0.11  cmd: git 64927 [piperd] 3.96r 0.04u 0.00s 0% 6524k &lt;br /&gt;
remote: Total 197757 (delta 13461), reused 117919 (delta 5403), pack-reused 0 (from 0)&lt;br /&gt;
Receiving objects: 100% (197757/197757), 87.61 MiB | 577.00 KiB/s, done.&lt;br /&gt;
Resolving deltas: 100% (13461/13461), done.&lt;br /&gt;
Updating files: 100% (162036/162036), done.&lt;br /&gt;
&lt;br /&gt;
real    3m20.931s&lt;br /&gt;
user    0m6.951s&lt;br /&gt;
sys     0m3.815s&lt;br /&gt;
&lt;br /&gt;
fetch https://download.freebsd.org/ftp/ports/ports/ports.tar.xz # latest&lt;br /&gt;
tar xf ports.tar.xz -C /usr/&lt;br /&gt;
&lt;br /&gt;
# time (fetch https://download.freebsd.org/ftp/ports/ports/ports.tar.xz ;         tar xf ports.tar.xz -C /usr/);&lt;br /&gt;
ports.tar.xz                                            41 MB  943 kBps    45s&lt;br /&gt;
real    1m10.018s&lt;br /&gt;
user    0m3.526s&lt;br /&gt;
sys     0m5.176s&lt;br /&gt;
&lt;br /&gt;
fetch https://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/ports.txz&lt;br /&gt;
tar xf ports.txz -C /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install source ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch https://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/src.txz&lt;br /&gt;
tar xf src.txz -C /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
how_to_compile_xigmanas_from_scratch.pdf&lt;br /&gt;
&lt;br /&gt;
https://forums.freebsd.org/threads/guide-using-git-to-manage-ports-source-and-documentation.79721/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone --depth=1 https://git.freebsd.org/ports.git /usr/ports&lt;br /&gt;
git clone --depth=1 https://git.freebsd.org/src.git /usr/src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Install kernel/base ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch --no-verify-peer http://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/kernel.txz&lt;br /&gt;
mkdir xigmanas/kernel-txz&lt;br /&gt;
tar xf kernel.txz -C xigmanas/kernel-txz&lt;br /&gt;
&lt;br /&gt;
fetch http://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/base.txz&lt;br /&gt;
mkdir xigmanas/base-txz&lt;br /&gt;
tar xf base.txz -C xigmanas/base-txz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install packages: ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y bash subversion pigz cdrtools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Delete all packages: ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg delete -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Getting XigmaNAS from svn ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /usr/local/xigmanas&lt;br /&gt;
cd /usr/local/xigmanas/&lt;br /&gt;
svn co https://svn.code.sf.net/p/xigmanas/code/trunk svn&lt;br /&gt;
&lt;br /&gt;
#cd svn; svn up -r9884 # 13.2.0.5 - Heighliner (revision 9884)&lt;br /&gt;
cd svn; svn up -r10024 # 13.3.0.5 - Hesterion (revision 10024)&lt;br /&gt;
&lt;br /&gt;
mkdir /usr/ports/distfiles&lt;br /&gt;
cp /usr/local/xigmanas/svn/build/ports/distfiles/*.{gz,zip} /usr/ports/distfiles/&lt;br /&gt;
ln -s /usr/local/xigmanas /root/xigmanas&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /usr/local/xigmanas&lt;br /&gt;
cd /usr/local/xigmanas/&lt;br /&gt;
fetch https://sourceforge.net/code-snapshots/svn/x/xi/xigmanas/code/xigmanas-code-r9999-trunk.zip&lt;br /&gt;
sudo tar xf xigmanas-code-r9999-trunk.zip&lt;br /&gt;
sudo ln -s xigmanas-code-r9999-trunk svn&lt;br /&gt;
cp /usr/local/xigmanas/svn/build/ports/distfiles/*.{gz,zip} /usr/ports/distfiles/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Update Version ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo -n 14.1.0.7&amp;gt; /usr/local/xigmanas/svn/etc/prd.version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
binary version 14.1.0.7&lt;br /&gt;
&lt;br /&gt;
==== Compiling XigmaNAS ====&lt;br /&gt;
WITHOUT_X11 is unsupported, use WITHOUT=X11 # virtualbox-ose&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo WITHOUT_X11=yes &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo WITHOUT=X11 &amp;gt;&amp;gt; /etc/make.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export XIGMANAS_ROOTFS=/usr/local/xigmanas/rootfs/&lt;br /&gt;
export BATCH=yes&lt;br /&gt;
/usr/local/xigmanas/svn/build/make.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls /usr/local/xigmanas&lt;br /&gt;
XigmaNAS-x86-9.0.0.1.43.checksum builds&lt;br /&gt;
XigmaNAS-x86-LiveCD-9.0.0.1.43.iso rootfs&lt;br /&gt;
XigmaNAS-x86-embedded-9.0.0.1.43.img svn&lt;br /&gt;
bootloader work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make build-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y&lt;br /&gt;
make run-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== install deps via pkg =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
USE_PACKAGE_DEPENDS=YES &lt;br /&gt;
#USE_PACKAGE_DEPENDS_ONLY=YES&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports&lt;br /&gt;
for i in */; do &lt;br /&gt;
cd $i&lt;br /&gt;
make build-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y&lt;br /&gt;
cd ..&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports&lt;br /&gt;
for i in */; do &lt;br /&gt;
cd $i&lt;br /&gt;
make build-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y&lt;br /&gt;
make -j8 build ; make package &amp;amp;&amp;amp; cp work/pkg/* /var/cache/pkg/&lt;br /&gt;
cd ..&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blog ===&lt;br /&gt;
Code highlighting&lt;br /&gt;
https://prismjs.com/#examples&lt;br /&gt;
=== History ===&lt;br /&gt;
freebsd mkdir(2) manpage history update&lt;br /&gt;
syscall was not in version 1 unix&lt;br /&gt;
it wasn't in version 6 either (see tom lions) syscalls:&lt;br /&gt;
https://warsus.github.io/lions-/&lt;br /&gt;
mkdir is not listed&lt;br /&gt;
&lt;br /&gt;
https://cgit.freebsd.org/src/plain/share/misc/bsd-family-tree?id=ea2b79b03eec2c1c49c8c04aa7c7a40bb5e41303&lt;br /&gt;
&lt;br /&gt;
mkdir syscall was added in BSD by Kirk McKuisick&lt;br /&gt;
https://www.youtube.com/watch?v=XUj2vCKtegU&amp;amp;t=736s&lt;br /&gt;
&lt;br /&gt;
https://gunkies.org/wiki/BSD&lt;br /&gt;
4.1c BSD - A beta of 4.2, and I think the first version of BSD sockets?&lt;br /&gt;
&lt;br /&gt;
https://gunkies.org/wiki/4.2_BSD&lt;br /&gt;
Date Released:	1983&lt;br /&gt;
&lt;br /&gt;
https://gunkies.org/wiki/Installing_4.1c_BSD_on_SIMH&lt;br /&gt;
You will need the following files from Bitsavers archive from the UCB_CSRG directory. I have used the files:&lt;br /&gt;
&lt;br /&gt;
4.1C_BSD_1of2.zip (http://bitsavers.informatik.uni-stuttgart.de/bits/UCB_CSRG/4.1C_BSD_1of2.zip)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
❯ grep mkdir.2 4.1C_BSD_1of2/burst/00004.txt&lt;br /&gt;
-rw-r--r-- 0/0            1516 1983-02-26 17:21:59 man/man2/mkdir.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
debootstrap unbuntu updates / symlink&lt;br /&gt;
&lt;br /&gt;
=== Fonts ===&lt;br /&gt;
https://github.com/emaste/fontstuff/tree/master&lt;br /&gt;
&lt;br /&gt;
https://docs.freebsd.org/en/books/handbook/bsdinstall/#bsdinstall-start&lt;br /&gt;
&lt;br /&gt;
FreeBSD 8x8 syscons font&lt;br /&gt;
&lt;br /&gt;
unifont https://unifoundry.com/unifont/unifont-utilities.html&lt;br /&gt;
&amp;lt;pre&amp;gt;xinch-filer02:/usr/ports# pkg install gnu-unifont-otf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;fetch https://raw.githubusercontent.com/emaste/fontstuff/master/hex2bdf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;unifont# ./hex2bdf iso-8x8.hex  &amp;gt; iso-8x8.bdf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;fontforge -lang=ff -c 'Open($1); Generate($2)' iso-8x8.bdf iso-8x8.woff2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linux Jail ===&lt;br /&gt;
https://wiki.freebsd.org/LinuxJails&lt;br /&gt;
&lt;br /&gt;
https://forums.freebsd.org/threads/running-linux-in-a-jail.90527/&lt;br /&gt;
&lt;br /&gt;
https://iocage.readthedocs.io/en/latest/debian.html&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qjail create -4 192.168.3.197 jammy&lt;br /&gt;
debootstrap --arch=amd64 --no-check-gpg jammy /usr/jails/jammy/compat/ubuntu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/share/debootstrap/scripts# ln -s gutsy noble&lt;br /&gt;
debootstrap --arch=amd64 --no-check-gpg noble /usr/jails/noble/compat/ubuntu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xDev:/compat# for i in noble/var/cache/apt/archives/*.deb; do echo $i; tar xf $i -C unzip data.tar.zst ; tar xpf unzip/data.tar.zst -C noble; done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Errors ===&lt;br /&gt;
==== No Menu ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    XigmaNAS: 14.1.0.9 (revision 10142)                                                   &lt;br /&gt;
    Compiled: Mon Jul 15 08:12:52 CDT 2024 Platform: x64-liveusb                          &lt;br /&gt;
    Copyright (c) 2018-2024 XigmaNAS(R). All Rights Reserved.                             &lt;br /&gt;
    Visit www.xigmanas.com for regular system updates!                                    &lt;br /&gt;
                                                                                          &lt;br /&gt;
        WebGUI Address: http://                                                           &lt;br /&gt;
                                                                                          &lt;br /&gt;
        LAN Network IPv4 Address:                                                         &lt;br /&gt;
        LAN Network Interface:    vtnet0                                                  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FreeBSD/amd64 (xigmanas.internal) (ttyu0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FreeBSD/amd64 (xigmanas.internal) (ttyu0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FreeBSD/amd64 (xigmanas.internal) (ttyu0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Fix ====&lt;br /&gt;
Check for opie&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls ~/xigmanas/rootfs/usr/local/lib/libopie*&lt;br /&gt;
/root/xigmanas/rootfs/usr/local/lib/libopie.so&lt;br /&gt;
/root/xigmanas/rootfs/usr/local/lib/libopie.so.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
==== fdisk ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/fdisk&lt;br /&gt;
make extract&lt;br /&gt;
&lt;br /&gt;
egrep -B1 -A1 '^usage' work/fdisk-1.1/fdisk.c&lt;br /&gt;
&lt;br /&gt;
sed -i '.orig' 's/^\([a-z][a-zA-Z0-9_]*\)()$/\1(void)/g' /usr/local/xigmanas/svn/build/ports/fdisk/work/fdisk-1.1/fdisk.c&lt;br /&gt;
&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/fdisk/work/fdisk-1.1&lt;br /&gt;
diff -u fdisk.c.orig fdisk.c &amp;gt; ../../files/patch-fdisk.c &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== isboot ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/isboot/&lt;br /&gt;
make extract&lt;br /&gt;
&lt;br /&gt;
grep pmap_unmapdev work/isboot-0.3.3/src/ibft.c&lt;br /&gt;
&lt;br /&gt;
sed -i '.orig' 's/pmap_unmapdev((vm_offset_t)vaddr,/pmap_unmapdev((void *)(uintptr_t)vaddr,/g' /usr/local/xigmanas/svn/build/ports/isboot/work/isboot-0.3.3/src/ibft.c&lt;br /&gt;
&lt;br /&gt;
sed -i '.orig' 's/DVIMAGE$/DVIMAGE\nCFLAGS+= -Wno-error=unused-but-set-variable\n/g' /usr/local/xigmanas/svn/build/ports/isboot/work/isboot-0.3.3/src/Makefile&lt;br /&gt;
&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/isboot/work/isboot-0.3.3/src&lt;br /&gt;
diff -u ibft.c.orig ibft.c &amp;gt; ../../../files/patch-ibft.c&lt;br /&gt;
diff -u Makefile.orig Makefile &amp;gt; ../../../files/patch-Makefile&lt;br /&gt;
&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/isboot/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== fuppes ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# bash automake gettext-tools libtool pkgconf newest ports?&lt;br /&gt;
# autoreconf libtool gettext-tools pkgconf&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/fuppes&lt;br /&gt;
make extract&lt;br /&gt;
grep 'pStream-&amp;gt;codec-&amp;gt;' work/fuppes-0.692/src/plugins/metadata_libavformat.c&lt;br /&gt;
sed -i '.orig' 's/pStream-&amp;gt;codec-&amp;gt;/pStream-&amp;gt;codecpar-&amp;gt;/g' work/fuppes-0.692/src/plugins/metadata_libavformat.c &lt;br /&gt;
&lt;br /&gt;
diff -u /usr/local/xigmanas/svn/build/ports/fuppes/work/fuppes-0.692/src/plugins/metadata_libavformat.c.orig /usr/local/xigmanas/svn/build/ports/fuppes/work/fuppes-0.692/src/plugins/metadata_libavformat.c &amp;gt; files/patch-src__plugins__metadata_libavformat.c&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== netatalk3 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@xigmanas:/usr/local/xigmanas/svn/build/ports/netatalk3 # grep -r FreeBSD . | grep LINUX&lt;br /&gt;
./work/netatalk-3.1.14/etc/uams/uams_dhx_pam.c:#if defined LINUX || defined __FreeBSD__&lt;br /&gt;
./work/netatalk-3.1.14/etc/uams/uams_dhx2_pam.c:#if defined LINUX || defined __FreeBSD__&lt;br /&gt;
./work/netatalk-3.1.14/etc/uams/uams_pam.c:#if defined LINUX || defined __FreeBSD__&lt;br /&gt;
root@xigmanas:/usr/local/xigmanas/svn/build/ports/netatalk3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@xigmanas:/usr/ports/net/netatalk3/files # ls -l&lt;br /&gt;
total 40&lt;br /&gt;
-rw-r--r--  1 root wheel  646 Apr  6  2021 netatalk.in&lt;br /&gt;
-rw-r--r--  1 root wheel  188 Apr  6  2021 pam.conf&lt;br /&gt;
-rw-r--r--  1 root wheel 1767 May  1  2022 patch-config_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  556 Oct  6 23:17 patch-configure&lt;br /&gt;
-rw-r--r--  1 root wheel 1007 Feb 27  2023 patch-etc_afpd_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  273 Jul 20  2016 patch-etc_cnid__dbd_cnid__metad.c&lt;br /&gt;
-rw-r--r--  1 root wheel  341 May  1  2022 patch-etc_netatalk_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  380 Nov 22 16:10 patch-etc_uams_uams__dhx2__pam.c&lt;br /&gt;
-rw-r--r--  1 root wheel  581 Nov 22 16:10 patch-etc_uams_uams__dhx__pam.c&lt;br /&gt;
-rw-r--r--  1 root wheel  416 Nov 22 16:10 patch-etc_uams_uams__pam.c&lt;br /&gt;
root@xigmanas:/usr/ports/net/netatalk3/files # cat patch-etc_uams_uams__dhx2__pam.c&lt;br /&gt;
--- etc/uams/uams_dhx2_pam.c.orig       2023-11-22 15:19:12 UTC&lt;br /&gt;
+++ etc/uams/uams_dhx2_pam.c&lt;br /&gt;
@@ -136,7 +136,7 @@ error:&lt;br /&gt;
  * echo off means password.&lt;br /&gt;
  */&lt;br /&gt;
 static int PAM_conv (int num_msg,&lt;br /&gt;
-#ifdef LINUX&lt;br /&gt;
+#if defined(LINUX) || (defined(FREEBSD) &amp;amp;&amp;amp; __FreeBSD_version &amp;gt;= 1400000)&lt;br /&gt;
                      const struct pam_message **msg,&lt;br /&gt;
 #else&lt;br /&gt;
                      struct pam_message **msg,&lt;br /&gt;
root@xigmanas:/usr/ports/net/netatalk3/files # ls -l /usr/local/xigmanas/svn/build/ports/netatalk3/files/&lt;br /&gt;
total 24&lt;br /&gt;
-rw-r--r--  1 root wheel 2563 Dec 28 17:22 netatalk.in&lt;br /&gt;
-rw-r--r--  1 root wheel 1767 Dec 28 17:22 patch-config_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  508 Dec 28 17:22 patch-configure&lt;br /&gt;
-rw-r--r--  1 root wheel 1007 Dec 28 17:22 patch-etc_afpd_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  273 Dec 28 17:22 patch-etc_cnid__dbd_cnid__metad.c&lt;br /&gt;
-rw-r--r--  1 root wheel  341 Dec 28 17:22 patch-etc_netatalk_Makefile.in&lt;br /&gt;
root@xigmanas:/usr/ports/net/netatalk3/files # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=XigmaNAS&amp;diff=469</id>
		<title>XigmaNAS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=XigmaNAS&amp;diff=469"/>
		<updated>2026-06-23T02:50:41Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* install deps via pkg */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Build xigmanas&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh filer02 sudo zfs rollback dozer/chroots/xig@latest ; ssh filer02 xig /root/pkgs/go ; exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xig:~# cat cicd&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
scp -rp 192.168.3.198:pkgs /root/&lt;br /&gt;
/root/pkgs/go&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
BSD cloud images&lt;br /&gt;
https://bsd-cloud-image.org/&lt;br /&gt;
login: freebsd&lt;br /&gt;
&lt;br /&gt;
https://object-storage.public.mtl1.vexxhost.net/swift/v1/1dbafeefbd4f4c80864414a441e72dd2/bsd-cloud-image.org/images/freebsd/14.0/2024-05-06/zfs/freebsd-14.0-zfs-2024-05-06.qcow2&lt;br /&gt;
&lt;br /&gt;
XigmaNAS&lt;br /&gt;
IRC https://web.libera.chat/#xigmanas&lt;br /&gt;
&lt;br /&gt;
=== Finch shell ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[filer02]:~/bin$ cat fch&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$#&amp;quot; -ge 1 ]; then&lt;br /&gt;
        sudo chroot /mnt/tank/finch &amp;quot;$@&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
        sudo chroot /mnt/tank/finch bash -l&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Finch Version ===&lt;br /&gt;
FreeBSD &lt;br /&gt;
9.0 works&lt;br /&gt;
9.3 works (different flags)&lt;br /&gt;
10.0 works&lt;br /&gt;
10.1 works (different flags)&lt;br /&gt;
11.0 works (different flags) (no syslog (-S doesn't exist))&lt;br /&gt;
11.4 locks (different flags) (no syslog (but exists))&lt;br /&gt;
12.0 locks (different flags) (no syslog (but exists))&lt;br /&gt;
13.2 locks (pkill tee works)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
syslogd fails&lt;br /&gt;
syslogd doesn't run in finch&lt;br /&gt;
kill tee (logger) works because logger fails because no syslogd?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# /zroot/bynch141/etc/finch/postinit ; chroot /zroot/bynch141/ /etc/rc.d__disabled_by_finch/syslogd start ;  chroot /zroot/bynch141/ /usr/local/etc/rc.d/yesd onestart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Finch Install ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zpool create -f zroot nda0p4&lt;br /&gt;
zfs create -o compress=zstd zroot/bynch&lt;br /&gt;
cd /zroot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -O wongk@192.168.3.159:f/FreeBSD-14.1-RELEASE-amd64-disc1.iso .&lt;br /&gt;
md=$(mdconfig -a -t vnode -f *.iso)&lt;br /&gt;
mkdir iso&lt;br /&gt;
mount -t cd9660 /dev/${md} iso&lt;br /&gt;
&lt;br /&gt;
alias finch-bootstrap=&amp;quot;SSL_NO_VERIFY_PEER=YES fetch -q -o - http://git.io/HxXrsw | sh -s --&amp;quot;&lt;br /&gt;
finch-bootstrap --help&lt;br /&gt;
&lt;br /&gt;
finch-bootstrap install -y -x --txz-distfiles-dir iso/usr/freebsd-dist --dir /zroot/bynch&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pw user mod root -s /usr/local/bin/bash&lt;br /&gt;
&lt;br /&gt;
chroot /zroot/bynch/ sh&lt;br /&gt;
ldconfig /lib /usr/lib /usr/local/lib&lt;br /&gt;
vi ~/.bash_profile&lt;br /&gt;
PS1=&amp;quot;\[\033[1;37m\]bynch:\[\033[38;5;166m\]\w\[\033[0m\]\\$ &amp;quot;&lt;br /&gt;
cd&lt;br /&gt;
&lt;br /&gt;
chroot /zroot/bynch bash -l&lt;br /&gt;
&lt;br /&gt;
sysrc yes_enable=YES&lt;br /&gt;
vi /usr/local/etc/rc.d/yesd&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/yesd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
yesd&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# PROVIDE: yes&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable yes:&lt;br /&gt;
#&lt;br /&gt;
# yes_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;yes&amp;quot;&lt;br /&gt;
rcvar=&amp;quot;yes_enable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/sbin/daemon&amp;quot;&lt;br /&gt;
command_args=&amp;quot;-P ${pidfile} -r -S -t ${name} -T ${name} /usr/bin/yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
: ${yes_enable:=no}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Jellyfin ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch# qjail create -4 192.168.3.195 jellyfin&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep mlock jellyfin&lt;br /&gt;
allow.mlock;&lt;br /&gt;
finch# qjail start jellyfin&lt;br /&gt;
finch# qjail console jellyfin&lt;br /&gt;
&lt;br /&gt;
jellyfin&amp;gt; pkg install jellyfin&lt;br /&gt;
jellyfin&amp;gt; service jellyfin enable&lt;br /&gt;
jellyfin&amp;gt; service jellyfin start&lt;br /&gt;
&lt;br /&gt;
filer02# sudo mount_nullfs -o ro,noatime /mnt/tank/media /mnt/tank/finch/usr/jails/jellyfin/media&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Bastille Extension ====&lt;br /&gt;
https://github.com/JRGTH/xigmanas-bastille-extension&lt;br /&gt;
https://gitlab.com/bastillebsd-templates/jellyfin/-/blob/main/Bastillefile?ref_type=heads&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CMD mkdir -p /usr/local/etc/pkg/repos&lt;br /&gt;
CMD echo 'FreeBSD: { url: &amp;quot;pkg+http://pkg.FreeBSD.org/${ABI}/latest&amp;quot; }' &amp;gt; /usr/local/etc/pkg/repos/FreeBSD.conf&lt;br /&gt;
CONFIG set allow.mlock=1;&lt;br /&gt;
CONFIG set ip6=inherit;&lt;br /&gt;
RESTART&lt;br /&gt;
PKG jellyfin&lt;br /&gt;
SYSRC jellyfin_enable=TRUE&lt;br /&gt;
SERVICE jellyfin start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bastille BSD ===&lt;br /&gt;
https://bastille.readthedocs.io/en/latest/chapters/networking.html#virtual-network-vnet&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bastille create -V azkaban 14.1-RELEASE 192.168.1.50/24 em0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== debootstrap ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/local/share/debootstrap/scripts# fgrep -nA3 'noble)' noble&lt;br /&gt;
122:            noble)&lt;br /&gt;
123-                    # see https://bugs.debian.org/838388&lt;br /&gt;
124-                    EXTRACT_DEB_TAR_OPTIONS=&amp;quot;$EXTRACT_DEB_TAR_OPTIONS &amp;quot;&lt;br /&gt;
125-                    ;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/local/bastille/releases# bastille bootstrap noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bastille create -L lintest noble 192.168.3.193/24 em0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== VS Code ===&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/mateuszkwiatkowski/ce486d692b4cb18afc2c8c68dcfe8602&lt;br /&gt;
https://www.gaelanlloyd.com/blog/how-to-connect-visual-studio-code-to-freebsd-servers/&lt;br /&gt;
&lt;br /&gt;
remote-ssh seem to ignore bash config files so we need to change $PATH in /etc/login.conf or send custom env with SetEnv directive in ssh_config. Choose which fits you better.&lt;br /&gt;
&lt;br /&gt;
Configure /etc/login.conf&lt;br /&gt;
&lt;br /&gt;
By default it's class default, we need to give priority to linux binaries:&lt;br /&gt;
&amp;lt;pre&amp;gt; :path=/compat/linux/usr/sbin /compat/linux/usr/bin /sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin ~/bin:\ &amp;lt;/pre&amp;gt;&lt;br /&gt;
rebuild CAP database: &lt;br /&gt;
&amp;lt;pre&amp;gt;cap_mkdb /etc/login.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
Flip the switch in the VS Code extension to &amp;quot;Enable Remote Command&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sysctl kern.elf64.fallback_brand&lt;br /&gt;
kern.elf64.fallback_brand: -1&lt;br /&gt;
# sysctl kern.elf64.fallback_brand=3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NIC driver ===&lt;br /&gt;
https://www.intel.com/content/www/us/en/download/15187/intel-network-adapter-gigabit-base-driver-for-freebsd.html&lt;br /&gt;
https://web.archive.org/web/20131009070059/https://thesorcerer.wordpress.com/2011/07/01/guide-intel-82573l-gigabit-ethernet-with-ubuntu-11-04-and-fix-pxe-e05/&lt;br /&gt;
https://www.intel.com/content/www/us/en/download/15755/intel-ethernet-connections-boot-utility-preboot-images-and-efi-drivers.html&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bootutil -defcfg          #force bootutil to load the default PXE configuration into the controller&lt;br /&gt;
&lt;br /&gt;
# Georgi says ” bootutil -nic=1 -defcfg” it’s better. Try if the other returns an err&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== VM Setup ===&lt;br /&gt;
https://github.com/churchers/vm-bhyve&lt;br /&gt;
&lt;br /&gt;
Type ~+Ctrl-D to exit back to your host.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sysrc vm_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
# sysrc vm_dir=&amp;quot;zfs:dozer/vms&amp;quot;&lt;br /&gt;
# zfs create -o compression=lz4 dozer/vms/zvols # lz4 is better for multiple reads?&lt;br /&gt;
vm init&lt;br /&gt;
vm img https://download.freebsd.org/ftp/releases/VM-IMAGES/14.1-RELEASE/amd64/Latest/FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw.xz &lt;br /&gt;
# zfs create -s -V 35G dozer/vms/zvols/freebsd141&lt;br /&gt;
# dd bs=1m if=~/vms/.img/FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw of=/dev/zvol/dozer/vms/zvols/freebsd141 status=progress&lt;br /&gt;
# zfs snapshot dozer/vms/zvols/freebsd141@img35G&lt;br /&gt;
#vm create -t xbuild -s 35G -i FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw -C -k ~/.ssh/vms_id_ed.pub xBhyve141&lt;br /&gt;
vm create -t freebsd-zvol -C -k ~/.ssh/vms_id_ed.pub ci&lt;br /&gt;
zfs destroy dozer/vms/ci/disk0&lt;br /&gt;
zfs clone dozer/vms/zvols/freebsd141@img35G dozer/vms/ci/disk0&lt;br /&gt;
&lt;br /&gt;
 gpart recover nda0&lt;br /&gt;
 gpart show&lt;br /&gt;
# gpart resize -i 5 nda0&lt;br /&gt;
# growfs -f /dev/gpt/rootfs&lt;br /&gt;
&lt;br /&gt;
vm start xBhyve141&lt;br /&gt;
vm console xBhyve141&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
graphics is only possible with loader=&amp;quot;uefi&amp;quot;, not with &amp;quot;grub&amp;quot;. https://forums.freebsd.org/threads/bhyve-graphics-install-and-vncviewer.88114/&lt;br /&gt;
disk0.img is faster, but doesn't support -s 35G on create&lt;br /&gt;
nvme is faster than virtio-blk&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vm create -t freebsd-zvol -s 35G -i FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw -C -k ~/.ssh/vms_id_ed.pub xBuild141&lt;br /&gt;
dd if=/dev/zvol/dozer/vms/xBuild141/disk0 of=xBuild141/disk0.img bs=1m&lt;br /&gt;
vm configure xBuild141&lt;br /&gt;
disk0_name=&amp;quot;disk0.img&amp;quot;&lt;br /&gt;
#disk0_dev=&amp;quot;sparse-zvol&amp;quot;&lt;br /&gt;
&lt;br /&gt;
vm create -t freebsd -s 35G -i FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw -C -k ~/.ssh/vms_id_ed.pub xBuild141&lt;br /&gt;
qemu-img resize -f raw xBuild141/disk0.img 35G # resize before first boot&lt;br /&gt;
vm start xBuild141&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Bastille vnet + vm-bhyve vnet ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig bridge&lt;br /&gt;
ifconfig: interface bridge does not exist&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig bridge create&lt;br /&gt;
bridge0&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig bridge0 name em0bridge&lt;br /&gt;
em0bridge&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig em0bridge addm em0 up&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig em0bridge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Share bastille's bridge with bhyve. (manually setup the switch)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vm switch create -t manual -b em0bridge public&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== vm-bhyve restart ====&lt;br /&gt;
since vm-bhyve is within finch chroot, the mount points need to be re-mounted within the chroot&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zfs list -t filesystem | awk '/vms/ { print $1}' | xargs -n1 zfs mount&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Host Setup ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# disable autoboot delay&lt;br /&gt;
grep autoboot /boot/loader.conf || echo 'autoboot_delay=&amp;quot;-1&amp;quot;' &amp;gt;&amp;gt; /boot/loader.conf&lt;br /&gt;
mkdir -p .ssh&lt;br /&gt;
grep filer02 /etc/hosts || echo -e &amp;quot;192.168.3.159\tfiler02&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
scp wongk@192.168.3.83:.ssh/vms_id_ed.pub .ssh/authorized_keys&lt;br /&gt;
scp wongk@192.168.3.83:.ssh/vms_id_ed .ssh/&lt;br /&gt;
grep vms .ssh/config || echo 'IdentityFile ~/.ssh/vms_id_ed' &amp;gt;&amp;gt; .ssh/config&lt;br /&gt;
ls /boot/entropy || /etc/rc.d/random start&lt;br /&gt;
grep bash /etc/shells || echo /usr/local/bin/bash &amp;gt;&amp;gt; /etc/shells&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y parallel&lt;br /&gt;
echo 'will cite' | parallel --citation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Upgrade Host ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
date ; PAGER=cat yes | freebsd-update -r 14.1-RELEASE-p2 --currently-running 14.1-RELEASE-p1 --not-running-from-cron upgrade; date&lt;br /&gt;
date ; time yes | PAGER=cat freebsd-update --currently-running $(uname -r) --not-running-from-cron fetch install ; date&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
real    4m23.307s&lt;br /&gt;
user    2m49.590s&lt;br /&gt;
sys     0m13.771s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== pkg base ===&lt;br /&gt;
https://wiki.freebsd.org/PkgBase&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
date&lt;br /&gt;
ls -l /boot/kernel/kernel&lt;br /&gt;
mkdir -p /usr/local/etc/pkg/repos/&lt;br /&gt;
grep enabled /usr/local/etc/pkg/repos/base.conf || echo 'base: {&lt;br /&gt;
  url: &amp;quot;pkg+https://pkg.FreeBSD.org/${ABI}/base_release_1&amp;quot;,&lt;br /&gt;
  mirror_type: &amp;quot;srv&amp;quot;,&lt;br /&gt;
  signature_type: &amp;quot;fingerprints&amp;quot;,&lt;br /&gt;
  fingerprints: &amp;quot;/usr/share/keys/pkg&amp;quot;,&lt;br /&gt;
  enabled: yes&lt;br /&gt;
}' &amp;gt;/usr/local/etc/pkg/repos/base.conf&lt;br /&gt;
rm /usr/local/etc/pkg/repos/FreeBSD.conf&lt;br /&gt;
grep enabled /usr/local/etc/pkg/repos/latest.conf || echo 'latest: {&lt;br /&gt;
  url: &amp;quot;pkg+https://pkg.FreeBSD.org/${ABI}/latest&amp;quot;,&lt;br /&gt;
  mirror_type: &amp;quot;srv&amp;quot;,&lt;br /&gt;
  signature_type: &amp;quot;fingerprints&amp;quot;,&lt;br /&gt;
  fingerprints: &amp;quot;/usr/share/keys/pkg&amp;quot;,&lt;br /&gt;
  enabled: yes&lt;br /&gt;
}' &amp;gt;/usr/local/etc/pkg/repos/latest.conf&lt;br /&gt;
pkg update&lt;br /&gt;
&lt;br /&gt;
# find security patches. filter unnecessary and current patch-level packages&lt;br /&gt;
#time pkg search -r base -g 'FreeBSD-*p?' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/ {print $1}' | fgrep -v $(uname -r | awk -F- '{ print $1$3}') | xargs pkg install -y -r base &lt;br /&gt;
time pkg search -r base -g 'FreeBSD-*p?' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/ {print $1}' | xargs pkg install -y -r base &lt;br /&gt;
&lt;br /&gt;
cp -p /etc/master.passwd.pkgsave /etc/master.passwd&lt;br /&gt;
cp -p /etc/group.pkgsave /etc/group&lt;br /&gt;
cp -p /etc/shells.pkgsave /etc/shells&lt;br /&gt;
pwd_mkdb -p /etc/master.passwd&lt;br /&gt;
cp /etc/sysctl.conf.pkgsave /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
cp -p /etc/hosts.pkgsave /etc/hosts&lt;br /&gt;
cp -p /etc/ssh/sshd_config.pkgsave /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
# find changed files with &amp;quot;etc&amp;quot; in path&lt;br /&gt;
#find / -path '*/etc/*' -name &amp;quot;*.pkgsave&amp;quot; -type f&lt;br /&gt;
&lt;br /&gt;
# find changed .conf files&lt;br /&gt;
#find / -name &amp;quot;*.conf.pkgsave&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#find / -name \*.pkgsave -print -delete&lt;br /&gt;
ls -l /boot/kernel/kernel&lt;br /&gt;
date&lt;br /&gt;
&lt;br /&gt;
# (linker.hints was recreated at kernel install and we had the old modules as .pkgsave so we need to recreate it, this will be done at the next reboot)&lt;br /&gt;
rm /boot/kernel/linker.hints&lt;br /&gt;
&lt;br /&gt;
cd /var/cache/pkg&lt;br /&gt;
ls | fgrep -v '~' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pkg search -r base -g 'FreeBSD-*p1' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/ {print $1}' | xargs&lt;br /&gt;
FreeBSD-acct-14.1p1 FreeBSD-clang-14.1p1 FreeBSD-clibs-14.1p1 FreeBSD-devd-14.1p1 FreeBSD-kernel-generic-14.1p1 FreeBSD-lld-14.1p1 FreeBSD-lldb-14.1p1 FreeBSD-rescue-14.1p1 FreeBSD-runtime-14.1p1 FreeBSD-utilities-14.1p1 FreeBSD-zfs-14.1p1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install ports ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# time git clone -o freebsd https://git.freebsd.org/ports.git /usr/ports ; exit&lt;br /&gt;
Cloning into '/usr/ports'...&lt;br /&gt;
remote: Enumerating objects: 6293704, done.&lt;br /&gt;
remote: Counting objects: 100% (47660/47660), done.&lt;br /&gt;
remote: Compressing objects: 100% (37020/37020), done.&lt;br /&gt;
Receiving objects: 100% (6293704/6293704), 1.28 GiB | 6.50 MiB/s, done.&lt;br /&gt;
remote: Total 6293704 (delta 22967), reused 19260 (delta 10304), pack-reused 6246044 (from 1)&lt;br /&gt;
Resolving deltas: 100% (3797103/3797103), done.&lt;br /&gt;
Updating files: 100% (162138/162138), done.&lt;br /&gt;
&lt;br /&gt;
real    7m9.337s&lt;br /&gt;
user    6m38.899s&lt;br /&gt;
sys     1m26.111s&lt;br /&gt;
&lt;br /&gt;
# time git clone --depth 1 https://git.freebsd.org/ports.git /usr/ports&lt;br /&gt;
Cloning into '/usr/ports'...&lt;br /&gt;
load: 0.06  cmd: git-remote-https 64926 [select] 13.78r 0.01u 0.00s 0% 13088k&lt;br /&gt;
load: 0.05  cmd: git-remote-https 64926 [select] 21.56r 0.01u 0.00s 0% 13088k&lt;br /&gt;
remote: Enumerating objects: 197757, done.&lt;br /&gt;
remote: Counting objects: 100% (197757/197757), done.&lt;br /&gt;
remote: Compressing objects: 100% (185648/185648), done.&lt;br /&gt;
load: 0.11  cmd: git 64927 [piperd] 3.96r 0.04u 0.00s 0% 6524k &lt;br /&gt;
remote: Total 197757 (delta 13461), reused 117919 (delta 5403), pack-reused 0 (from 0)&lt;br /&gt;
Receiving objects: 100% (197757/197757), 87.61 MiB | 577.00 KiB/s, done.&lt;br /&gt;
Resolving deltas: 100% (13461/13461), done.&lt;br /&gt;
Updating files: 100% (162036/162036), done.&lt;br /&gt;
&lt;br /&gt;
real    3m20.931s&lt;br /&gt;
user    0m6.951s&lt;br /&gt;
sys     0m3.815s&lt;br /&gt;
&lt;br /&gt;
fetch https://download.freebsd.org/ftp/ports/ports/ports.tar.xz # latest&lt;br /&gt;
tar xf ports.tar.xz -C /usr/&lt;br /&gt;
&lt;br /&gt;
# time (fetch https://download.freebsd.org/ftp/ports/ports/ports.tar.xz ;         tar xf ports.tar.xz -C /usr/);&lt;br /&gt;
ports.tar.xz                                            41 MB  943 kBps    45s&lt;br /&gt;
real    1m10.018s&lt;br /&gt;
user    0m3.526s&lt;br /&gt;
sys     0m5.176s&lt;br /&gt;
&lt;br /&gt;
fetch https://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/ports.txz&lt;br /&gt;
tar xf ports.txz -C /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install source ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch https://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/src.txz&lt;br /&gt;
tar xf src.txz -C /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
how_to_compile_xigmanas_from_scratch.pdf&lt;br /&gt;
&lt;br /&gt;
https://forums.freebsd.org/threads/guide-using-git-to-manage-ports-source-and-documentation.79721/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone --depth=1 https://git.freebsd.org/ports.git /usr/ports&lt;br /&gt;
git clone --depth=1 https://git.freebsd.org/src.git /usr/src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Install kernel/base ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch --no-verify-peer http://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/kernel.txz&lt;br /&gt;
mkdir xigmanas/kernel-txz&lt;br /&gt;
tar xf kernel.txz -C xigmanas/kernel-txz&lt;br /&gt;
&lt;br /&gt;
fetch http://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/base.txz&lt;br /&gt;
mkdir xigmanas/base-txz&lt;br /&gt;
tar xf base.txz -C xigmanas/base-txz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install packages: ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y bash subversion pigz cdrtools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Delete all packages: ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg delete -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Getting XigmaNAS from svn ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /usr/local/xigmanas&lt;br /&gt;
cd /usr/local/xigmanas/&lt;br /&gt;
svn co https://svn.code.sf.net/p/xigmanas/code/trunk svn&lt;br /&gt;
&lt;br /&gt;
#cd svn; svn up -r9884 # 13.2.0.5 - Heighliner (revision 9884)&lt;br /&gt;
cd svn; svn up -r10024 # 13.3.0.5 - Hesterion (revision 10024)&lt;br /&gt;
&lt;br /&gt;
mkdir /usr/ports/distfiles&lt;br /&gt;
cp /usr/local/xigmanas/svn/build/ports/distfiles/*.{gz,zip} /usr/ports/distfiles/&lt;br /&gt;
ln -s /usr/local/xigmanas /root/xigmanas&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /usr/local/xigmanas&lt;br /&gt;
cd /usr/local/xigmanas/&lt;br /&gt;
fetch https://sourceforge.net/code-snapshots/svn/x/xi/xigmanas/code/xigmanas-code-r9999-trunk.zip&lt;br /&gt;
sudo tar xf xigmanas-code-r9999-trunk.zip&lt;br /&gt;
sudo ln -s xigmanas-code-r9999-trunk svn&lt;br /&gt;
cp /usr/local/xigmanas/svn/build/ports/distfiles/*.{gz,zip} /usr/ports/distfiles/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Update Version ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo -n 14.1.0.7&amp;gt; /usr/local/xigmanas/svn/etc/prd.version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
binary version 14.1.0.7&lt;br /&gt;
&lt;br /&gt;
==== Compiling XigmaNAS ====&lt;br /&gt;
WITHOUT_X11 is unsupported, use WITHOUT=X11 # virtualbox-ose&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo WITHOUT_X11=yes &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo WITHOUT=X11 &amp;gt;&amp;gt; /etc/make.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export XIGMANAS_ROOTFS=/usr/local/xigmanas/rootfs/&lt;br /&gt;
export BATCH=yes&lt;br /&gt;
/usr/local/xigmanas/svn/build/make.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls /usr/local/xigmanas&lt;br /&gt;
XigmaNAS-x86-9.0.0.1.43.checksum builds&lt;br /&gt;
XigmaNAS-x86-LiveCD-9.0.0.1.43.iso rootfs&lt;br /&gt;
XigmaNAS-x86-embedded-9.0.0.1.43.img svn&lt;br /&gt;
bootloader work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make build-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y&lt;br /&gt;
make run-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== install deps via pkg =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
USE_PKG_DEPENDS=YES &lt;br /&gt;
#USE_PKG_DEPENDS_ONLY=YES&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports&lt;br /&gt;
for i in */; do &lt;br /&gt;
cd $i&lt;br /&gt;
make build-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y&lt;br /&gt;
cd ..&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports&lt;br /&gt;
for i in */; do &lt;br /&gt;
cd $i&lt;br /&gt;
make build-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y&lt;br /&gt;
make -j8 build ; make package &amp;amp;&amp;amp; cp work/pkg/* /var/cache/pkg/&lt;br /&gt;
cd ..&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blog ===&lt;br /&gt;
Code highlighting&lt;br /&gt;
https://prismjs.com/#examples&lt;br /&gt;
=== History ===&lt;br /&gt;
freebsd mkdir(2) manpage history update&lt;br /&gt;
syscall was not in version 1 unix&lt;br /&gt;
it wasn't in version 6 either (see tom lions) syscalls:&lt;br /&gt;
https://warsus.github.io/lions-/&lt;br /&gt;
mkdir is not listed&lt;br /&gt;
&lt;br /&gt;
https://cgit.freebsd.org/src/plain/share/misc/bsd-family-tree?id=ea2b79b03eec2c1c49c8c04aa7c7a40bb5e41303&lt;br /&gt;
&lt;br /&gt;
mkdir syscall was added in BSD by Kirk McKuisick&lt;br /&gt;
https://www.youtube.com/watch?v=XUj2vCKtegU&amp;amp;t=736s&lt;br /&gt;
&lt;br /&gt;
https://gunkies.org/wiki/BSD&lt;br /&gt;
4.1c BSD - A beta of 4.2, and I think the first version of BSD sockets?&lt;br /&gt;
&lt;br /&gt;
https://gunkies.org/wiki/4.2_BSD&lt;br /&gt;
Date Released:	1983&lt;br /&gt;
&lt;br /&gt;
https://gunkies.org/wiki/Installing_4.1c_BSD_on_SIMH&lt;br /&gt;
You will need the following files from Bitsavers archive from the UCB_CSRG directory. I have used the files:&lt;br /&gt;
&lt;br /&gt;
4.1C_BSD_1of2.zip (http://bitsavers.informatik.uni-stuttgart.de/bits/UCB_CSRG/4.1C_BSD_1of2.zip)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
❯ grep mkdir.2 4.1C_BSD_1of2/burst/00004.txt&lt;br /&gt;
-rw-r--r-- 0/0            1516 1983-02-26 17:21:59 man/man2/mkdir.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
debootstrap unbuntu updates / symlink&lt;br /&gt;
&lt;br /&gt;
=== Fonts ===&lt;br /&gt;
https://github.com/emaste/fontstuff/tree/master&lt;br /&gt;
&lt;br /&gt;
https://docs.freebsd.org/en/books/handbook/bsdinstall/#bsdinstall-start&lt;br /&gt;
&lt;br /&gt;
FreeBSD 8x8 syscons font&lt;br /&gt;
&lt;br /&gt;
unifont https://unifoundry.com/unifont/unifont-utilities.html&lt;br /&gt;
&amp;lt;pre&amp;gt;xinch-filer02:/usr/ports# pkg install gnu-unifont-otf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;fetch https://raw.githubusercontent.com/emaste/fontstuff/master/hex2bdf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;unifont# ./hex2bdf iso-8x8.hex  &amp;gt; iso-8x8.bdf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;fontforge -lang=ff -c 'Open($1); Generate($2)' iso-8x8.bdf iso-8x8.woff2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linux Jail ===&lt;br /&gt;
https://wiki.freebsd.org/LinuxJails&lt;br /&gt;
&lt;br /&gt;
https://forums.freebsd.org/threads/running-linux-in-a-jail.90527/&lt;br /&gt;
&lt;br /&gt;
https://iocage.readthedocs.io/en/latest/debian.html&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qjail create -4 192.168.3.197 jammy&lt;br /&gt;
debootstrap --arch=amd64 --no-check-gpg jammy /usr/jails/jammy/compat/ubuntu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/share/debootstrap/scripts# ln -s gutsy noble&lt;br /&gt;
debootstrap --arch=amd64 --no-check-gpg noble /usr/jails/noble/compat/ubuntu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xDev:/compat# for i in noble/var/cache/apt/archives/*.deb; do echo $i; tar xf $i -C unzip data.tar.zst ; tar xpf unzip/data.tar.zst -C noble; done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Errors ===&lt;br /&gt;
==== No Menu ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    XigmaNAS: 14.1.0.9 (revision 10142)                                                   &lt;br /&gt;
    Compiled: Mon Jul 15 08:12:52 CDT 2024 Platform: x64-liveusb                          &lt;br /&gt;
    Copyright (c) 2018-2024 XigmaNAS(R). All Rights Reserved.                             &lt;br /&gt;
    Visit www.xigmanas.com for regular system updates!                                    &lt;br /&gt;
                                                                                          &lt;br /&gt;
        WebGUI Address: http://                                                           &lt;br /&gt;
                                                                                          &lt;br /&gt;
        LAN Network IPv4 Address:                                                         &lt;br /&gt;
        LAN Network Interface:    vtnet0                                                  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FreeBSD/amd64 (xigmanas.internal) (ttyu0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FreeBSD/amd64 (xigmanas.internal) (ttyu0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FreeBSD/amd64 (xigmanas.internal) (ttyu0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Fix ====&lt;br /&gt;
Check for opie&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls ~/xigmanas/rootfs/usr/local/lib/libopie*&lt;br /&gt;
/root/xigmanas/rootfs/usr/local/lib/libopie.so&lt;br /&gt;
/root/xigmanas/rootfs/usr/local/lib/libopie.so.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
==== fdisk ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/fdisk&lt;br /&gt;
make extract&lt;br /&gt;
&lt;br /&gt;
egrep -B1 -A1 '^usage' work/fdisk-1.1/fdisk.c&lt;br /&gt;
&lt;br /&gt;
sed -i '.orig' 's/^\([a-z][a-zA-Z0-9_]*\)()$/\1(void)/g' /usr/local/xigmanas/svn/build/ports/fdisk/work/fdisk-1.1/fdisk.c&lt;br /&gt;
&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/fdisk/work/fdisk-1.1&lt;br /&gt;
diff -u fdisk.c.orig fdisk.c &amp;gt; ../../files/patch-fdisk.c &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== isboot ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/isboot/&lt;br /&gt;
make extract&lt;br /&gt;
&lt;br /&gt;
grep pmap_unmapdev work/isboot-0.3.3/src/ibft.c&lt;br /&gt;
&lt;br /&gt;
sed -i '.orig' 's/pmap_unmapdev((vm_offset_t)vaddr,/pmap_unmapdev((void *)(uintptr_t)vaddr,/g' /usr/local/xigmanas/svn/build/ports/isboot/work/isboot-0.3.3/src/ibft.c&lt;br /&gt;
&lt;br /&gt;
sed -i '.orig' 's/DVIMAGE$/DVIMAGE\nCFLAGS+= -Wno-error=unused-but-set-variable\n/g' /usr/local/xigmanas/svn/build/ports/isboot/work/isboot-0.3.3/src/Makefile&lt;br /&gt;
&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/isboot/work/isboot-0.3.3/src&lt;br /&gt;
diff -u ibft.c.orig ibft.c &amp;gt; ../../../files/patch-ibft.c&lt;br /&gt;
diff -u Makefile.orig Makefile &amp;gt; ../../../files/patch-Makefile&lt;br /&gt;
&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/isboot/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== fuppes ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# bash automake gettext-tools libtool pkgconf newest ports?&lt;br /&gt;
# autoreconf libtool gettext-tools pkgconf&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/fuppes&lt;br /&gt;
make extract&lt;br /&gt;
grep 'pStream-&amp;gt;codec-&amp;gt;' work/fuppes-0.692/src/plugins/metadata_libavformat.c&lt;br /&gt;
sed -i '.orig' 's/pStream-&amp;gt;codec-&amp;gt;/pStream-&amp;gt;codecpar-&amp;gt;/g' work/fuppes-0.692/src/plugins/metadata_libavformat.c &lt;br /&gt;
&lt;br /&gt;
diff -u /usr/local/xigmanas/svn/build/ports/fuppes/work/fuppes-0.692/src/plugins/metadata_libavformat.c.orig /usr/local/xigmanas/svn/build/ports/fuppes/work/fuppes-0.692/src/plugins/metadata_libavformat.c &amp;gt; files/patch-src__plugins__metadata_libavformat.c&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== netatalk3 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@xigmanas:/usr/local/xigmanas/svn/build/ports/netatalk3 # grep -r FreeBSD . | grep LINUX&lt;br /&gt;
./work/netatalk-3.1.14/etc/uams/uams_dhx_pam.c:#if defined LINUX || defined __FreeBSD__&lt;br /&gt;
./work/netatalk-3.1.14/etc/uams/uams_dhx2_pam.c:#if defined LINUX || defined __FreeBSD__&lt;br /&gt;
./work/netatalk-3.1.14/etc/uams/uams_pam.c:#if defined LINUX || defined __FreeBSD__&lt;br /&gt;
root@xigmanas:/usr/local/xigmanas/svn/build/ports/netatalk3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@xigmanas:/usr/ports/net/netatalk3/files # ls -l&lt;br /&gt;
total 40&lt;br /&gt;
-rw-r--r--  1 root wheel  646 Apr  6  2021 netatalk.in&lt;br /&gt;
-rw-r--r--  1 root wheel  188 Apr  6  2021 pam.conf&lt;br /&gt;
-rw-r--r--  1 root wheel 1767 May  1  2022 patch-config_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  556 Oct  6 23:17 patch-configure&lt;br /&gt;
-rw-r--r--  1 root wheel 1007 Feb 27  2023 patch-etc_afpd_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  273 Jul 20  2016 patch-etc_cnid__dbd_cnid__metad.c&lt;br /&gt;
-rw-r--r--  1 root wheel  341 May  1  2022 patch-etc_netatalk_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  380 Nov 22 16:10 patch-etc_uams_uams__dhx2__pam.c&lt;br /&gt;
-rw-r--r--  1 root wheel  581 Nov 22 16:10 patch-etc_uams_uams__dhx__pam.c&lt;br /&gt;
-rw-r--r--  1 root wheel  416 Nov 22 16:10 patch-etc_uams_uams__pam.c&lt;br /&gt;
root@xigmanas:/usr/ports/net/netatalk3/files # cat patch-etc_uams_uams__dhx2__pam.c&lt;br /&gt;
--- etc/uams/uams_dhx2_pam.c.orig       2023-11-22 15:19:12 UTC&lt;br /&gt;
+++ etc/uams/uams_dhx2_pam.c&lt;br /&gt;
@@ -136,7 +136,7 @@ error:&lt;br /&gt;
  * echo off means password.&lt;br /&gt;
  */&lt;br /&gt;
 static int PAM_conv (int num_msg,&lt;br /&gt;
-#ifdef LINUX&lt;br /&gt;
+#if defined(LINUX) || (defined(FREEBSD) &amp;amp;&amp;amp; __FreeBSD_version &amp;gt;= 1400000)&lt;br /&gt;
                      const struct pam_message **msg,&lt;br /&gt;
 #else&lt;br /&gt;
                      struct pam_message **msg,&lt;br /&gt;
root@xigmanas:/usr/ports/net/netatalk3/files # ls -l /usr/local/xigmanas/svn/build/ports/netatalk3/files/&lt;br /&gt;
total 24&lt;br /&gt;
-rw-r--r--  1 root wheel 2563 Dec 28 17:22 netatalk.in&lt;br /&gt;
-rw-r--r--  1 root wheel 1767 Dec 28 17:22 patch-config_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  508 Dec 28 17:22 patch-configure&lt;br /&gt;
-rw-r--r--  1 root wheel 1007 Dec 28 17:22 patch-etc_afpd_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  273 Dec 28 17:22 patch-etc_cnid__dbd_cnid__metad.c&lt;br /&gt;
-rw-r--r--  1 root wheel  341 Dec 28 17:22 patch-etc_netatalk_Makefile.in&lt;br /&gt;
root@xigmanas:/usr/ports/net/netatalk3/files # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=XigmaNAS&amp;diff=468</id>
		<title>XigmaNAS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=XigmaNAS&amp;diff=468"/>
		<updated>2026-06-23T02:50:20Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* install deps via pkg */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Build xigmanas&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh filer02 sudo zfs rollback dozer/chroots/xig@latest ; ssh filer02 xig /root/pkgs/go ; exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xig:~# cat cicd&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
scp -rp 192.168.3.198:pkgs /root/&lt;br /&gt;
/root/pkgs/go&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
BSD cloud images&lt;br /&gt;
https://bsd-cloud-image.org/&lt;br /&gt;
login: freebsd&lt;br /&gt;
&lt;br /&gt;
https://object-storage.public.mtl1.vexxhost.net/swift/v1/1dbafeefbd4f4c80864414a441e72dd2/bsd-cloud-image.org/images/freebsd/14.0/2024-05-06/zfs/freebsd-14.0-zfs-2024-05-06.qcow2&lt;br /&gt;
&lt;br /&gt;
XigmaNAS&lt;br /&gt;
IRC https://web.libera.chat/#xigmanas&lt;br /&gt;
&lt;br /&gt;
=== Finch shell ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[filer02]:~/bin$ cat fch&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$#&amp;quot; -ge 1 ]; then&lt;br /&gt;
        sudo chroot /mnt/tank/finch &amp;quot;$@&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
        sudo chroot /mnt/tank/finch bash -l&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Finch Version ===&lt;br /&gt;
FreeBSD &lt;br /&gt;
9.0 works&lt;br /&gt;
9.3 works (different flags)&lt;br /&gt;
10.0 works&lt;br /&gt;
10.1 works (different flags)&lt;br /&gt;
11.0 works (different flags) (no syslog (-S doesn't exist))&lt;br /&gt;
11.4 locks (different flags) (no syslog (but exists))&lt;br /&gt;
12.0 locks (different flags) (no syslog (but exists))&lt;br /&gt;
13.2 locks (pkill tee works)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
syslogd fails&lt;br /&gt;
syslogd doesn't run in finch&lt;br /&gt;
kill tee (logger) works because logger fails because no syslogd?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# /zroot/bynch141/etc/finch/postinit ; chroot /zroot/bynch141/ /etc/rc.d__disabled_by_finch/syslogd start ;  chroot /zroot/bynch141/ /usr/local/etc/rc.d/yesd onestart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Finch Install ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zpool create -f zroot nda0p4&lt;br /&gt;
zfs create -o compress=zstd zroot/bynch&lt;br /&gt;
cd /zroot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -O wongk@192.168.3.159:f/FreeBSD-14.1-RELEASE-amd64-disc1.iso .&lt;br /&gt;
md=$(mdconfig -a -t vnode -f *.iso)&lt;br /&gt;
mkdir iso&lt;br /&gt;
mount -t cd9660 /dev/${md} iso&lt;br /&gt;
&lt;br /&gt;
alias finch-bootstrap=&amp;quot;SSL_NO_VERIFY_PEER=YES fetch -q -o - http://git.io/HxXrsw | sh -s --&amp;quot;&lt;br /&gt;
finch-bootstrap --help&lt;br /&gt;
&lt;br /&gt;
finch-bootstrap install -y -x --txz-distfiles-dir iso/usr/freebsd-dist --dir /zroot/bynch&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pw user mod root -s /usr/local/bin/bash&lt;br /&gt;
&lt;br /&gt;
chroot /zroot/bynch/ sh&lt;br /&gt;
ldconfig /lib /usr/lib /usr/local/lib&lt;br /&gt;
vi ~/.bash_profile&lt;br /&gt;
PS1=&amp;quot;\[\033[1;37m\]bynch:\[\033[38;5;166m\]\w\[\033[0m\]\\$ &amp;quot;&lt;br /&gt;
cd&lt;br /&gt;
&lt;br /&gt;
chroot /zroot/bynch bash -l&lt;br /&gt;
&lt;br /&gt;
sysrc yes_enable=YES&lt;br /&gt;
vi /usr/local/etc/rc.d/yesd&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/yesd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
yesd&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# PROVIDE: yes&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable yes:&lt;br /&gt;
#&lt;br /&gt;
# yes_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;yes&amp;quot;&lt;br /&gt;
rcvar=&amp;quot;yes_enable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/sbin/daemon&amp;quot;&lt;br /&gt;
command_args=&amp;quot;-P ${pidfile} -r -S -t ${name} -T ${name} /usr/bin/yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
: ${yes_enable:=no}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Jellyfin ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch# qjail create -4 192.168.3.195 jellyfin&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep mlock jellyfin&lt;br /&gt;
allow.mlock;&lt;br /&gt;
finch# qjail start jellyfin&lt;br /&gt;
finch# qjail console jellyfin&lt;br /&gt;
&lt;br /&gt;
jellyfin&amp;gt; pkg install jellyfin&lt;br /&gt;
jellyfin&amp;gt; service jellyfin enable&lt;br /&gt;
jellyfin&amp;gt; service jellyfin start&lt;br /&gt;
&lt;br /&gt;
filer02# sudo mount_nullfs -o ro,noatime /mnt/tank/media /mnt/tank/finch/usr/jails/jellyfin/media&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Bastille Extension ====&lt;br /&gt;
https://github.com/JRGTH/xigmanas-bastille-extension&lt;br /&gt;
https://gitlab.com/bastillebsd-templates/jellyfin/-/blob/main/Bastillefile?ref_type=heads&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CMD mkdir -p /usr/local/etc/pkg/repos&lt;br /&gt;
CMD echo 'FreeBSD: { url: &amp;quot;pkg+http://pkg.FreeBSD.org/${ABI}/latest&amp;quot; }' &amp;gt; /usr/local/etc/pkg/repos/FreeBSD.conf&lt;br /&gt;
CONFIG set allow.mlock=1;&lt;br /&gt;
CONFIG set ip6=inherit;&lt;br /&gt;
RESTART&lt;br /&gt;
PKG jellyfin&lt;br /&gt;
SYSRC jellyfin_enable=TRUE&lt;br /&gt;
SERVICE jellyfin start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bastille BSD ===&lt;br /&gt;
https://bastille.readthedocs.io/en/latest/chapters/networking.html#virtual-network-vnet&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bastille create -V azkaban 14.1-RELEASE 192.168.1.50/24 em0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== debootstrap ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/local/share/debootstrap/scripts# fgrep -nA3 'noble)' noble&lt;br /&gt;
122:            noble)&lt;br /&gt;
123-                    # see https://bugs.debian.org/838388&lt;br /&gt;
124-                    EXTRACT_DEB_TAR_OPTIONS=&amp;quot;$EXTRACT_DEB_TAR_OPTIONS &amp;quot;&lt;br /&gt;
125-                    ;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/local/bastille/releases# bastille bootstrap noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bastille create -L lintest noble 192.168.3.193/24 em0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== VS Code ===&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/mateuszkwiatkowski/ce486d692b4cb18afc2c8c68dcfe8602&lt;br /&gt;
https://www.gaelanlloyd.com/blog/how-to-connect-visual-studio-code-to-freebsd-servers/&lt;br /&gt;
&lt;br /&gt;
remote-ssh seem to ignore bash config files so we need to change $PATH in /etc/login.conf or send custom env with SetEnv directive in ssh_config. Choose which fits you better.&lt;br /&gt;
&lt;br /&gt;
Configure /etc/login.conf&lt;br /&gt;
&lt;br /&gt;
By default it's class default, we need to give priority to linux binaries:&lt;br /&gt;
&amp;lt;pre&amp;gt; :path=/compat/linux/usr/sbin /compat/linux/usr/bin /sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin ~/bin:\ &amp;lt;/pre&amp;gt;&lt;br /&gt;
rebuild CAP database: &lt;br /&gt;
&amp;lt;pre&amp;gt;cap_mkdb /etc/login.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
Flip the switch in the VS Code extension to &amp;quot;Enable Remote Command&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sysctl kern.elf64.fallback_brand&lt;br /&gt;
kern.elf64.fallback_brand: -1&lt;br /&gt;
# sysctl kern.elf64.fallback_brand=3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NIC driver ===&lt;br /&gt;
https://www.intel.com/content/www/us/en/download/15187/intel-network-adapter-gigabit-base-driver-for-freebsd.html&lt;br /&gt;
https://web.archive.org/web/20131009070059/https://thesorcerer.wordpress.com/2011/07/01/guide-intel-82573l-gigabit-ethernet-with-ubuntu-11-04-and-fix-pxe-e05/&lt;br /&gt;
https://www.intel.com/content/www/us/en/download/15755/intel-ethernet-connections-boot-utility-preboot-images-and-efi-drivers.html&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bootutil -defcfg          #force bootutil to load the default PXE configuration into the controller&lt;br /&gt;
&lt;br /&gt;
# Georgi says ” bootutil -nic=1 -defcfg” it’s better. Try if the other returns an err&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== VM Setup ===&lt;br /&gt;
https://github.com/churchers/vm-bhyve&lt;br /&gt;
&lt;br /&gt;
Type ~+Ctrl-D to exit back to your host.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sysrc vm_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
# sysrc vm_dir=&amp;quot;zfs:dozer/vms&amp;quot;&lt;br /&gt;
# zfs create -o compression=lz4 dozer/vms/zvols # lz4 is better for multiple reads?&lt;br /&gt;
vm init&lt;br /&gt;
vm img https://download.freebsd.org/ftp/releases/VM-IMAGES/14.1-RELEASE/amd64/Latest/FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw.xz &lt;br /&gt;
# zfs create -s -V 35G dozer/vms/zvols/freebsd141&lt;br /&gt;
# dd bs=1m if=~/vms/.img/FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw of=/dev/zvol/dozer/vms/zvols/freebsd141 status=progress&lt;br /&gt;
# zfs snapshot dozer/vms/zvols/freebsd141@img35G&lt;br /&gt;
#vm create -t xbuild -s 35G -i FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw -C -k ~/.ssh/vms_id_ed.pub xBhyve141&lt;br /&gt;
vm create -t freebsd-zvol -C -k ~/.ssh/vms_id_ed.pub ci&lt;br /&gt;
zfs destroy dozer/vms/ci/disk0&lt;br /&gt;
zfs clone dozer/vms/zvols/freebsd141@img35G dozer/vms/ci/disk0&lt;br /&gt;
&lt;br /&gt;
 gpart recover nda0&lt;br /&gt;
 gpart show&lt;br /&gt;
# gpart resize -i 5 nda0&lt;br /&gt;
# growfs -f /dev/gpt/rootfs&lt;br /&gt;
&lt;br /&gt;
vm start xBhyve141&lt;br /&gt;
vm console xBhyve141&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
graphics is only possible with loader=&amp;quot;uefi&amp;quot;, not with &amp;quot;grub&amp;quot;. https://forums.freebsd.org/threads/bhyve-graphics-install-and-vncviewer.88114/&lt;br /&gt;
disk0.img is faster, but doesn't support -s 35G on create&lt;br /&gt;
nvme is faster than virtio-blk&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vm create -t freebsd-zvol -s 35G -i FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw -C -k ~/.ssh/vms_id_ed.pub xBuild141&lt;br /&gt;
dd if=/dev/zvol/dozer/vms/xBuild141/disk0 of=xBuild141/disk0.img bs=1m&lt;br /&gt;
vm configure xBuild141&lt;br /&gt;
disk0_name=&amp;quot;disk0.img&amp;quot;&lt;br /&gt;
#disk0_dev=&amp;quot;sparse-zvol&amp;quot;&lt;br /&gt;
&lt;br /&gt;
vm create -t freebsd -s 35G -i FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw -C -k ~/.ssh/vms_id_ed.pub xBuild141&lt;br /&gt;
qemu-img resize -f raw xBuild141/disk0.img 35G # resize before first boot&lt;br /&gt;
vm start xBuild141&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Bastille vnet + vm-bhyve vnet ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig bridge&lt;br /&gt;
ifconfig: interface bridge does not exist&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig bridge create&lt;br /&gt;
bridge0&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig bridge0 name em0bridge&lt;br /&gt;
em0bridge&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig em0bridge addm em0 up&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig em0bridge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Share bastille's bridge with bhyve. (manually setup the switch)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vm switch create -t manual -b em0bridge public&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== vm-bhyve restart ====&lt;br /&gt;
since vm-bhyve is within finch chroot, the mount points need to be re-mounted within the chroot&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zfs list -t filesystem | awk '/vms/ { print $1}' | xargs -n1 zfs mount&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Host Setup ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# disable autoboot delay&lt;br /&gt;
grep autoboot /boot/loader.conf || echo 'autoboot_delay=&amp;quot;-1&amp;quot;' &amp;gt;&amp;gt; /boot/loader.conf&lt;br /&gt;
mkdir -p .ssh&lt;br /&gt;
grep filer02 /etc/hosts || echo -e &amp;quot;192.168.3.159\tfiler02&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
scp wongk@192.168.3.83:.ssh/vms_id_ed.pub .ssh/authorized_keys&lt;br /&gt;
scp wongk@192.168.3.83:.ssh/vms_id_ed .ssh/&lt;br /&gt;
grep vms .ssh/config || echo 'IdentityFile ~/.ssh/vms_id_ed' &amp;gt;&amp;gt; .ssh/config&lt;br /&gt;
ls /boot/entropy || /etc/rc.d/random start&lt;br /&gt;
grep bash /etc/shells || echo /usr/local/bin/bash &amp;gt;&amp;gt; /etc/shells&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y parallel&lt;br /&gt;
echo 'will cite' | parallel --citation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Upgrade Host ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
date ; PAGER=cat yes | freebsd-update -r 14.1-RELEASE-p2 --currently-running 14.1-RELEASE-p1 --not-running-from-cron upgrade; date&lt;br /&gt;
date ; time yes | PAGER=cat freebsd-update --currently-running $(uname -r) --not-running-from-cron fetch install ; date&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
real    4m23.307s&lt;br /&gt;
user    2m49.590s&lt;br /&gt;
sys     0m13.771s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== pkg base ===&lt;br /&gt;
https://wiki.freebsd.org/PkgBase&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
date&lt;br /&gt;
ls -l /boot/kernel/kernel&lt;br /&gt;
mkdir -p /usr/local/etc/pkg/repos/&lt;br /&gt;
grep enabled /usr/local/etc/pkg/repos/base.conf || echo 'base: {&lt;br /&gt;
  url: &amp;quot;pkg+https://pkg.FreeBSD.org/${ABI}/base_release_1&amp;quot;,&lt;br /&gt;
  mirror_type: &amp;quot;srv&amp;quot;,&lt;br /&gt;
  signature_type: &amp;quot;fingerprints&amp;quot;,&lt;br /&gt;
  fingerprints: &amp;quot;/usr/share/keys/pkg&amp;quot;,&lt;br /&gt;
  enabled: yes&lt;br /&gt;
}' &amp;gt;/usr/local/etc/pkg/repos/base.conf&lt;br /&gt;
rm /usr/local/etc/pkg/repos/FreeBSD.conf&lt;br /&gt;
grep enabled /usr/local/etc/pkg/repos/latest.conf || echo 'latest: {&lt;br /&gt;
  url: &amp;quot;pkg+https://pkg.FreeBSD.org/${ABI}/latest&amp;quot;,&lt;br /&gt;
  mirror_type: &amp;quot;srv&amp;quot;,&lt;br /&gt;
  signature_type: &amp;quot;fingerprints&amp;quot;,&lt;br /&gt;
  fingerprints: &amp;quot;/usr/share/keys/pkg&amp;quot;,&lt;br /&gt;
  enabled: yes&lt;br /&gt;
}' &amp;gt;/usr/local/etc/pkg/repos/latest.conf&lt;br /&gt;
pkg update&lt;br /&gt;
&lt;br /&gt;
# find security patches. filter unnecessary and current patch-level packages&lt;br /&gt;
#time pkg search -r base -g 'FreeBSD-*p?' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/ {print $1}' | fgrep -v $(uname -r | awk -F- '{ print $1$3}') | xargs pkg install -y -r base &lt;br /&gt;
time pkg search -r base -g 'FreeBSD-*p?' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/ {print $1}' | xargs pkg install -y -r base &lt;br /&gt;
&lt;br /&gt;
cp -p /etc/master.passwd.pkgsave /etc/master.passwd&lt;br /&gt;
cp -p /etc/group.pkgsave /etc/group&lt;br /&gt;
cp -p /etc/shells.pkgsave /etc/shells&lt;br /&gt;
pwd_mkdb -p /etc/master.passwd&lt;br /&gt;
cp /etc/sysctl.conf.pkgsave /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
cp -p /etc/hosts.pkgsave /etc/hosts&lt;br /&gt;
cp -p /etc/ssh/sshd_config.pkgsave /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
# find changed files with &amp;quot;etc&amp;quot; in path&lt;br /&gt;
#find / -path '*/etc/*' -name &amp;quot;*.pkgsave&amp;quot; -type f&lt;br /&gt;
&lt;br /&gt;
# find changed .conf files&lt;br /&gt;
#find / -name &amp;quot;*.conf.pkgsave&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#find / -name \*.pkgsave -print -delete&lt;br /&gt;
ls -l /boot/kernel/kernel&lt;br /&gt;
date&lt;br /&gt;
&lt;br /&gt;
# (linker.hints was recreated at kernel install and we had the old modules as .pkgsave so we need to recreate it, this will be done at the next reboot)&lt;br /&gt;
rm /boot/kernel/linker.hints&lt;br /&gt;
&lt;br /&gt;
cd /var/cache/pkg&lt;br /&gt;
ls | fgrep -v '~' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pkg search -r base -g 'FreeBSD-*p1' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/ {print $1}' | xargs&lt;br /&gt;
FreeBSD-acct-14.1p1 FreeBSD-clang-14.1p1 FreeBSD-clibs-14.1p1 FreeBSD-devd-14.1p1 FreeBSD-kernel-generic-14.1p1 FreeBSD-lld-14.1p1 FreeBSD-lldb-14.1p1 FreeBSD-rescue-14.1p1 FreeBSD-runtime-14.1p1 FreeBSD-utilities-14.1p1 FreeBSD-zfs-14.1p1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install ports ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# time git clone -o freebsd https://git.freebsd.org/ports.git /usr/ports ; exit&lt;br /&gt;
Cloning into '/usr/ports'...&lt;br /&gt;
remote: Enumerating objects: 6293704, done.&lt;br /&gt;
remote: Counting objects: 100% (47660/47660), done.&lt;br /&gt;
remote: Compressing objects: 100% (37020/37020), done.&lt;br /&gt;
Receiving objects: 100% (6293704/6293704), 1.28 GiB | 6.50 MiB/s, done.&lt;br /&gt;
remote: Total 6293704 (delta 22967), reused 19260 (delta 10304), pack-reused 6246044 (from 1)&lt;br /&gt;
Resolving deltas: 100% (3797103/3797103), done.&lt;br /&gt;
Updating files: 100% (162138/162138), done.&lt;br /&gt;
&lt;br /&gt;
real    7m9.337s&lt;br /&gt;
user    6m38.899s&lt;br /&gt;
sys     1m26.111s&lt;br /&gt;
&lt;br /&gt;
# time git clone --depth 1 https://git.freebsd.org/ports.git /usr/ports&lt;br /&gt;
Cloning into '/usr/ports'...&lt;br /&gt;
load: 0.06  cmd: git-remote-https 64926 [select] 13.78r 0.01u 0.00s 0% 13088k&lt;br /&gt;
load: 0.05  cmd: git-remote-https 64926 [select] 21.56r 0.01u 0.00s 0% 13088k&lt;br /&gt;
remote: Enumerating objects: 197757, done.&lt;br /&gt;
remote: Counting objects: 100% (197757/197757), done.&lt;br /&gt;
remote: Compressing objects: 100% (185648/185648), done.&lt;br /&gt;
load: 0.11  cmd: git 64927 [piperd] 3.96r 0.04u 0.00s 0% 6524k &lt;br /&gt;
remote: Total 197757 (delta 13461), reused 117919 (delta 5403), pack-reused 0 (from 0)&lt;br /&gt;
Receiving objects: 100% (197757/197757), 87.61 MiB | 577.00 KiB/s, done.&lt;br /&gt;
Resolving deltas: 100% (13461/13461), done.&lt;br /&gt;
Updating files: 100% (162036/162036), done.&lt;br /&gt;
&lt;br /&gt;
real    3m20.931s&lt;br /&gt;
user    0m6.951s&lt;br /&gt;
sys     0m3.815s&lt;br /&gt;
&lt;br /&gt;
fetch https://download.freebsd.org/ftp/ports/ports/ports.tar.xz # latest&lt;br /&gt;
tar xf ports.tar.xz -C /usr/&lt;br /&gt;
&lt;br /&gt;
# time (fetch https://download.freebsd.org/ftp/ports/ports/ports.tar.xz ;         tar xf ports.tar.xz -C /usr/);&lt;br /&gt;
ports.tar.xz                                            41 MB  943 kBps    45s&lt;br /&gt;
real    1m10.018s&lt;br /&gt;
user    0m3.526s&lt;br /&gt;
sys     0m5.176s&lt;br /&gt;
&lt;br /&gt;
fetch https://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/ports.txz&lt;br /&gt;
tar xf ports.txz -C /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install source ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch https://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/src.txz&lt;br /&gt;
tar xf src.txz -C /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
how_to_compile_xigmanas_from_scratch.pdf&lt;br /&gt;
&lt;br /&gt;
https://forums.freebsd.org/threads/guide-using-git-to-manage-ports-source-and-documentation.79721/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone --depth=1 https://git.freebsd.org/ports.git /usr/ports&lt;br /&gt;
git clone --depth=1 https://git.freebsd.org/src.git /usr/src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Install kernel/base ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch --no-verify-peer http://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/kernel.txz&lt;br /&gt;
mkdir xigmanas/kernel-txz&lt;br /&gt;
tar xf kernel.txz -C xigmanas/kernel-txz&lt;br /&gt;
&lt;br /&gt;
fetch http://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/base.txz&lt;br /&gt;
mkdir xigmanas/base-txz&lt;br /&gt;
tar xf base.txz -C xigmanas/base-txz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install packages: ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y bash subversion pigz cdrtools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Delete all packages: ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg delete -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Getting XigmaNAS from svn ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /usr/local/xigmanas&lt;br /&gt;
cd /usr/local/xigmanas/&lt;br /&gt;
svn co https://svn.code.sf.net/p/xigmanas/code/trunk svn&lt;br /&gt;
&lt;br /&gt;
#cd svn; svn up -r9884 # 13.2.0.5 - Heighliner (revision 9884)&lt;br /&gt;
cd svn; svn up -r10024 # 13.3.0.5 - Hesterion (revision 10024)&lt;br /&gt;
&lt;br /&gt;
mkdir /usr/ports/distfiles&lt;br /&gt;
cp /usr/local/xigmanas/svn/build/ports/distfiles/*.{gz,zip} /usr/ports/distfiles/&lt;br /&gt;
ln -s /usr/local/xigmanas /root/xigmanas&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /usr/local/xigmanas&lt;br /&gt;
cd /usr/local/xigmanas/&lt;br /&gt;
fetch https://sourceforge.net/code-snapshots/svn/x/xi/xigmanas/code/xigmanas-code-r9999-trunk.zip&lt;br /&gt;
sudo tar xf xigmanas-code-r9999-trunk.zip&lt;br /&gt;
sudo ln -s xigmanas-code-r9999-trunk svn&lt;br /&gt;
cp /usr/local/xigmanas/svn/build/ports/distfiles/*.{gz,zip} /usr/ports/distfiles/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Update Version ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo -n 14.1.0.7&amp;gt; /usr/local/xigmanas/svn/etc/prd.version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
binary version 14.1.0.7&lt;br /&gt;
&lt;br /&gt;
==== Compiling XigmaNAS ====&lt;br /&gt;
WITHOUT_X11 is unsupported, use WITHOUT=X11 # virtualbox-ose&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo WITHOUT_X11=yes &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo WITHOUT=X11 &amp;gt;&amp;gt; /etc/make.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export XIGMANAS_ROOTFS=/usr/local/xigmanas/rootfs/&lt;br /&gt;
export BATCH=yes&lt;br /&gt;
/usr/local/xigmanas/svn/build/make.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls /usr/local/xigmanas&lt;br /&gt;
XigmaNAS-x86-9.0.0.1.43.checksum builds&lt;br /&gt;
XigmaNAS-x86-LiveCD-9.0.0.1.43.iso rootfs&lt;br /&gt;
XigmaNAS-x86-embedded-9.0.0.1.43.img svn&lt;br /&gt;
bootloader work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make build-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y&lt;br /&gt;
make run-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== install deps via pkg =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
USE_PKG_DEPENDS=yes &lt;br /&gt;
#USE_PKG_DEPENDS_ONLY=YES&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports&lt;br /&gt;
for i in */; do &lt;br /&gt;
cd $i&lt;br /&gt;
make build-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y&lt;br /&gt;
cd ..&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports&lt;br /&gt;
for i in */; do &lt;br /&gt;
cd $i&lt;br /&gt;
make build-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y&lt;br /&gt;
make -j8 build ; make package &amp;amp;&amp;amp; cp work/pkg/* /var/cache/pkg/&lt;br /&gt;
cd ..&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blog ===&lt;br /&gt;
Code highlighting&lt;br /&gt;
https://prismjs.com/#examples&lt;br /&gt;
=== History ===&lt;br /&gt;
freebsd mkdir(2) manpage history update&lt;br /&gt;
syscall was not in version 1 unix&lt;br /&gt;
it wasn't in version 6 either (see tom lions) syscalls:&lt;br /&gt;
https://warsus.github.io/lions-/&lt;br /&gt;
mkdir is not listed&lt;br /&gt;
&lt;br /&gt;
https://cgit.freebsd.org/src/plain/share/misc/bsd-family-tree?id=ea2b79b03eec2c1c49c8c04aa7c7a40bb5e41303&lt;br /&gt;
&lt;br /&gt;
mkdir syscall was added in BSD by Kirk McKuisick&lt;br /&gt;
https://www.youtube.com/watch?v=XUj2vCKtegU&amp;amp;t=736s&lt;br /&gt;
&lt;br /&gt;
https://gunkies.org/wiki/BSD&lt;br /&gt;
4.1c BSD - A beta of 4.2, and I think the first version of BSD sockets?&lt;br /&gt;
&lt;br /&gt;
https://gunkies.org/wiki/4.2_BSD&lt;br /&gt;
Date Released:	1983&lt;br /&gt;
&lt;br /&gt;
https://gunkies.org/wiki/Installing_4.1c_BSD_on_SIMH&lt;br /&gt;
You will need the following files from Bitsavers archive from the UCB_CSRG directory. I have used the files:&lt;br /&gt;
&lt;br /&gt;
4.1C_BSD_1of2.zip (http://bitsavers.informatik.uni-stuttgart.de/bits/UCB_CSRG/4.1C_BSD_1of2.zip)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
❯ grep mkdir.2 4.1C_BSD_1of2/burst/00004.txt&lt;br /&gt;
-rw-r--r-- 0/0            1516 1983-02-26 17:21:59 man/man2/mkdir.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
debootstrap unbuntu updates / symlink&lt;br /&gt;
&lt;br /&gt;
=== Fonts ===&lt;br /&gt;
https://github.com/emaste/fontstuff/tree/master&lt;br /&gt;
&lt;br /&gt;
https://docs.freebsd.org/en/books/handbook/bsdinstall/#bsdinstall-start&lt;br /&gt;
&lt;br /&gt;
FreeBSD 8x8 syscons font&lt;br /&gt;
&lt;br /&gt;
unifont https://unifoundry.com/unifont/unifont-utilities.html&lt;br /&gt;
&amp;lt;pre&amp;gt;xinch-filer02:/usr/ports# pkg install gnu-unifont-otf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;fetch https://raw.githubusercontent.com/emaste/fontstuff/master/hex2bdf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;unifont# ./hex2bdf iso-8x8.hex  &amp;gt; iso-8x8.bdf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;fontforge -lang=ff -c 'Open($1); Generate($2)' iso-8x8.bdf iso-8x8.woff2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linux Jail ===&lt;br /&gt;
https://wiki.freebsd.org/LinuxJails&lt;br /&gt;
&lt;br /&gt;
https://forums.freebsd.org/threads/running-linux-in-a-jail.90527/&lt;br /&gt;
&lt;br /&gt;
https://iocage.readthedocs.io/en/latest/debian.html&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qjail create -4 192.168.3.197 jammy&lt;br /&gt;
debootstrap --arch=amd64 --no-check-gpg jammy /usr/jails/jammy/compat/ubuntu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/share/debootstrap/scripts# ln -s gutsy noble&lt;br /&gt;
debootstrap --arch=amd64 --no-check-gpg noble /usr/jails/noble/compat/ubuntu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xDev:/compat# for i in noble/var/cache/apt/archives/*.deb; do echo $i; tar xf $i -C unzip data.tar.zst ; tar xpf unzip/data.tar.zst -C noble; done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Errors ===&lt;br /&gt;
==== No Menu ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    XigmaNAS: 14.1.0.9 (revision 10142)                                                   &lt;br /&gt;
    Compiled: Mon Jul 15 08:12:52 CDT 2024 Platform: x64-liveusb                          &lt;br /&gt;
    Copyright (c) 2018-2024 XigmaNAS(R). All Rights Reserved.                             &lt;br /&gt;
    Visit www.xigmanas.com for regular system updates!                                    &lt;br /&gt;
                                                                                          &lt;br /&gt;
        WebGUI Address: http://                                                           &lt;br /&gt;
                                                                                          &lt;br /&gt;
        LAN Network IPv4 Address:                                                         &lt;br /&gt;
        LAN Network Interface:    vtnet0                                                  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FreeBSD/amd64 (xigmanas.internal) (ttyu0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FreeBSD/amd64 (xigmanas.internal) (ttyu0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FreeBSD/amd64 (xigmanas.internal) (ttyu0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Fix ====&lt;br /&gt;
Check for opie&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls ~/xigmanas/rootfs/usr/local/lib/libopie*&lt;br /&gt;
/root/xigmanas/rootfs/usr/local/lib/libopie.so&lt;br /&gt;
/root/xigmanas/rootfs/usr/local/lib/libopie.so.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
==== fdisk ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/fdisk&lt;br /&gt;
make extract&lt;br /&gt;
&lt;br /&gt;
egrep -B1 -A1 '^usage' work/fdisk-1.1/fdisk.c&lt;br /&gt;
&lt;br /&gt;
sed -i '.orig' 's/^\([a-z][a-zA-Z0-9_]*\)()$/\1(void)/g' /usr/local/xigmanas/svn/build/ports/fdisk/work/fdisk-1.1/fdisk.c&lt;br /&gt;
&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/fdisk/work/fdisk-1.1&lt;br /&gt;
diff -u fdisk.c.orig fdisk.c &amp;gt; ../../files/patch-fdisk.c &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== isboot ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/isboot/&lt;br /&gt;
make extract&lt;br /&gt;
&lt;br /&gt;
grep pmap_unmapdev work/isboot-0.3.3/src/ibft.c&lt;br /&gt;
&lt;br /&gt;
sed -i '.orig' 's/pmap_unmapdev((vm_offset_t)vaddr,/pmap_unmapdev((void *)(uintptr_t)vaddr,/g' /usr/local/xigmanas/svn/build/ports/isboot/work/isboot-0.3.3/src/ibft.c&lt;br /&gt;
&lt;br /&gt;
sed -i '.orig' 's/DVIMAGE$/DVIMAGE\nCFLAGS+= -Wno-error=unused-but-set-variable\n/g' /usr/local/xigmanas/svn/build/ports/isboot/work/isboot-0.3.3/src/Makefile&lt;br /&gt;
&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/isboot/work/isboot-0.3.3/src&lt;br /&gt;
diff -u ibft.c.orig ibft.c &amp;gt; ../../../files/patch-ibft.c&lt;br /&gt;
diff -u Makefile.orig Makefile &amp;gt; ../../../files/patch-Makefile&lt;br /&gt;
&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/isboot/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== fuppes ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# bash automake gettext-tools libtool pkgconf newest ports?&lt;br /&gt;
# autoreconf libtool gettext-tools pkgconf&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/fuppes&lt;br /&gt;
make extract&lt;br /&gt;
grep 'pStream-&amp;gt;codec-&amp;gt;' work/fuppes-0.692/src/plugins/metadata_libavformat.c&lt;br /&gt;
sed -i '.orig' 's/pStream-&amp;gt;codec-&amp;gt;/pStream-&amp;gt;codecpar-&amp;gt;/g' work/fuppes-0.692/src/plugins/metadata_libavformat.c &lt;br /&gt;
&lt;br /&gt;
diff -u /usr/local/xigmanas/svn/build/ports/fuppes/work/fuppes-0.692/src/plugins/metadata_libavformat.c.orig /usr/local/xigmanas/svn/build/ports/fuppes/work/fuppes-0.692/src/plugins/metadata_libavformat.c &amp;gt; files/patch-src__plugins__metadata_libavformat.c&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== netatalk3 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@xigmanas:/usr/local/xigmanas/svn/build/ports/netatalk3 # grep -r FreeBSD . | grep LINUX&lt;br /&gt;
./work/netatalk-3.1.14/etc/uams/uams_dhx_pam.c:#if defined LINUX || defined __FreeBSD__&lt;br /&gt;
./work/netatalk-3.1.14/etc/uams/uams_dhx2_pam.c:#if defined LINUX || defined __FreeBSD__&lt;br /&gt;
./work/netatalk-3.1.14/etc/uams/uams_pam.c:#if defined LINUX || defined __FreeBSD__&lt;br /&gt;
root@xigmanas:/usr/local/xigmanas/svn/build/ports/netatalk3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@xigmanas:/usr/ports/net/netatalk3/files # ls -l&lt;br /&gt;
total 40&lt;br /&gt;
-rw-r--r--  1 root wheel  646 Apr  6  2021 netatalk.in&lt;br /&gt;
-rw-r--r--  1 root wheel  188 Apr  6  2021 pam.conf&lt;br /&gt;
-rw-r--r--  1 root wheel 1767 May  1  2022 patch-config_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  556 Oct  6 23:17 patch-configure&lt;br /&gt;
-rw-r--r--  1 root wheel 1007 Feb 27  2023 patch-etc_afpd_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  273 Jul 20  2016 patch-etc_cnid__dbd_cnid__metad.c&lt;br /&gt;
-rw-r--r--  1 root wheel  341 May  1  2022 patch-etc_netatalk_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  380 Nov 22 16:10 patch-etc_uams_uams__dhx2__pam.c&lt;br /&gt;
-rw-r--r--  1 root wheel  581 Nov 22 16:10 patch-etc_uams_uams__dhx__pam.c&lt;br /&gt;
-rw-r--r--  1 root wheel  416 Nov 22 16:10 patch-etc_uams_uams__pam.c&lt;br /&gt;
root@xigmanas:/usr/ports/net/netatalk3/files # cat patch-etc_uams_uams__dhx2__pam.c&lt;br /&gt;
--- etc/uams/uams_dhx2_pam.c.orig       2023-11-22 15:19:12 UTC&lt;br /&gt;
+++ etc/uams/uams_dhx2_pam.c&lt;br /&gt;
@@ -136,7 +136,7 @@ error:&lt;br /&gt;
  * echo off means password.&lt;br /&gt;
  */&lt;br /&gt;
 static int PAM_conv (int num_msg,&lt;br /&gt;
-#ifdef LINUX&lt;br /&gt;
+#if defined(LINUX) || (defined(FREEBSD) &amp;amp;&amp;amp; __FreeBSD_version &amp;gt;= 1400000)&lt;br /&gt;
                      const struct pam_message **msg,&lt;br /&gt;
 #else&lt;br /&gt;
                      struct pam_message **msg,&lt;br /&gt;
root@xigmanas:/usr/ports/net/netatalk3/files # ls -l /usr/local/xigmanas/svn/build/ports/netatalk3/files/&lt;br /&gt;
total 24&lt;br /&gt;
-rw-r--r--  1 root wheel 2563 Dec 28 17:22 netatalk.in&lt;br /&gt;
-rw-r--r--  1 root wheel 1767 Dec 28 17:22 patch-config_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  508 Dec 28 17:22 patch-configure&lt;br /&gt;
-rw-r--r--  1 root wheel 1007 Dec 28 17:22 patch-etc_afpd_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  273 Dec 28 17:22 patch-etc_cnid__dbd_cnid__metad.c&lt;br /&gt;
-rw-r--r--  1 root wheel  341 Dec 28 17:22 patch-etc_netatalk_Makefile.in&lt;br /&gt;
root@xigmanas:/usr/ports/net/netatalk3/files # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=XigmaNAS&amp;diff=467</id>
		<title>XigmaNAS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=XigmaNAS&amp;diff=467"/>
		<updated>2026-06-23T02:49:51Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* install deps via pkg */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Build xigmanas&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh filer02 sudo zfs rollback dozer/chroots/xig@latest ; ssh filer02 xig /root/pkgs/go ; exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xig:~# cat cicd&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
scp -rp 192.168.3.198:pkgs /root/&lt;br /&gt;
/root/pkgs/go&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
BSD cloud images&lt;br /&gt;
https://bsd-cloud-image.org/&lt;br /&gt;
login: freebsd&lt;br /&gt;
&lt;br /&gt;
https://object-storage.public.mtl1.vexxhost.net/swift/v1/1dbafeefbd4f4c80864414a441e72dd2/bsd-cloud-image.org/images/freebsd/14.0/2024-05-06/zfs/freebsd-14.0-zfs-2024-05-06.qcow2&lt;br /&gt;
&lt;br /&gt;
XigmaNAS&lt;br /&gt;
IRC https://web.libera.chat/#xigmanas&lt;br /&gt;
&lt;br /&gt;
=== Finch shell ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[filer02]:~/bin$ cat fch&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$#&amp;quot; -ge 1 ]; then&lt;br /&gt;
        sudo chroot /mnt/tank/finch &amp;quot;$@&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
        sudo chroot /mnt/tank/finch bash -l&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Finch Version ===&lt;br /&gt;
FreeBSD &lt;br /&gt;
9.0 works&lt;br /&gt;
9.3 works (different flags)&lt;br /&gt;
10.0 works&lt;br /&gt;
10.1 works (different flags)&lt;br /&gt;
11.0 works (different flags) (no syslog (-S doesn't exist))&lt;br /&gt;
11.4 locks (different flags) (no syslog (but exists))&lt;br /&gt;
12.0 locks (different flags) (no syslog (but exists))&lt;br /&gt;
13.2 locks (pkill tee works)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
syslogd fails&lt;br /&gt;
syslogd doesn't run in finch&lt;br /&gt;
kill tee (logger) works because logger fails because no syslogd?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# /zroot/bynch141/etc/finch/postinit ; chroot /zroot/bynch141/ /etc/rc.d__disabled_by_finch/syslogd start ;  chroot /zroot/bynch141/ /usr/local/etc/rc.d/yesd onestart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Finch Install ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zpool create -f zroot nda0p4&lt;br /&gt;
zfs create -o compress=zstd zroot/bynch&lt;br /&gt;
cd /zroot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -O wongk@192.168.3.159:f/FreeBSD-14.1-RELEASE-amd64-disc1.iso .&lt;br /&gt;
md=$(mdconfig -a -t vnode -f *.iso)&lt;br /&gt;
mkdir iso&lt;br /&gt;
mount -t cd9660 /dev/${md} iso&lt;br /&gt;
&lt;br /&gt;
alias finch-bootstrap=&amp;quot;SSL_NO_VERIFY_PEER=YES fetch -q -o - http://git.io/HxXrsw | sh -s --&amp;quot;&lt;br /&gt;
finch-bootstrap --help&lt;br /&gt;
&lt;br /&gt;
finch-bootstrap install -y -x --txz-distfiles-dir iso/usr/freebsd-dist --dir /zroot/bynch&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pw user mod root -s /usr/local/bin/bash&lt;br /&gt;
&lt;br /&gt;
chroot /zroot/bynch/ sh&lt;br /&gt;
ldconfig /lib /usr/lib /usr/local/lib&lt;br /&gt;
vi ~/.bash_profile&lt;br /&gt;
PS1=&amp;quot;\[\033[1;37m\]bynch:\[\033[38;5;166m\]\w\[\033[0m\]\\$ &amp;quot;&lt;br /&gt;
cd&lt;br /&gt;
&lt;br /&gt;
chroot /zroot/bynch bash -l&lt;br /&gt;
&lt;br /&gt;
sysrc yes_enable=YES&lt;br /&gt;
vi /usr/local/etc/rc.d/yesd&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/yesd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
yesd&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# PROVIDE: yes&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable yes:&lt;br /&gt;
#&lt;br /&gt;
# yes_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;yes&amp;quot;&lt;br /&gt;
rcvar=&amp;quot;yes_enable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/sbin/daemon&amp;quot;&lt;br /&gt;
command_args=&amp;quot;-P ${pidfile} -r -S -t ${name} -T ${name} /usr/bin/yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
: ${yes_enable:=no}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Jellyfin ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch# qjail create -4 192.168.3.195 jellyfin&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep mlock jellyfin&lt;br /&gt;
allow.mlock;&lt;br /&gt;
finch# qjail start jellyfin&lt;br /&gt;
finch# qjail console jellyfin&lt;br /&gt;
&lt;br /&gt;
jellyfin&amp;gt; pkg install jellyfin&lt;br /&gt;
jellyfin&amp;gt; service jellyfin enable&lt;br /&gt;
jellyfin&amp;gt; service jellyfin start&lt;br /&gt;
&lt;br /&gt;
filer02# sudo mount_nullfs -o ro,noatime /mnt/tank/media /mnt/tank/finch/usr/jails/jellyfin/media&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Bastille Extension ====&lt;br /&gt;
https://github.com/JRGTH/xigmanas-bastille-extension&lt;br /&gt;
https://gitlab.com/bastillebsd-templates/jellyfin/-/blob/main/Bastillefile?ref_type=heads&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CMD mkdir -p /usr/local/etc/pkg/repos&lt;br /&gt;
CMD echo 'FreeBSD: { url: &amp;quot;pkg+http://pkg.FreeBSD.org/${ABI}/latest&amp;quot; }' &amp;gt; /usr/local/etc/pkg/repos/FreeBSD.conf&lt;br /&gt;
CONFIG set allow.mlock=1;&lt;br /&gt;
CONFIG set ip6=inherit;&lt;br /&gt;
RESTART&lt;br /&gt;
PKG jellyfin&lt;br /&gt;
SYSRC jellyfin_enable=TRUE&lt;br /&gt;
SERVICE jellyfin start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bastille BSD ===&lt;br /&gt;
https://bastille.readthedocs.io/en/latest/chapters/networking.html#virtual-network-vnet&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bastille create -V azkaban 14.1-RELEASE 192.168.1.50/24 em0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== debootstrap ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/local/share/debootstrap/scripts# fgrep -nA3 'noble)' noble&lt;br /&gt;
122:            noble)&lt;br /&gt;
123-                    # see https://bugs.debian.org/838388&lt;br /&gt;
124-                    EXTRACT_DEB_TAR_OPTIONS=&amp;quot;$EXTRACT_DEB_TAR_OPTIONS &amp;quot;&lt;br /&gt;
125-                    ;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/local/bastille/releases# bastille bootstrap noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bastille create -L lintest noble 192.168.3.193/24 em0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== VS Code ===&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/mateuszkwiatkowski/ce486d692b4cb18afc2c8c68dcfe8602&lt;br /&gt;
https://www.gaelanlloyd.com/blog/how-to-connect-visual-studio-code-to-freebsd-servers/&lt;br /&gt;
&lt;br /&gt;
remote-ssh seem to ignore bash config files so we need to change $PATH in /etc/login.conf or send custom env with SetEnv directive in ssh_config. Choose which fits you better.&lt;br /&gt;
&lt;br /&gt;
Configure /etc/login.conf&lt;br /&gt;
&lt;br /&gt;
By default it's class default, we need to give priority to linux binaries:&lt;br /&gt;
&amp;lt;pre&amp;gt; :path=/compat/linux/usr/sbin /compat/linux/usr/bin /sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin ~/bin:\ &amp;lt;/pre&amp;gt;&lt;br /&gt;
rebuild CAP database: &lt;br /&gt;
&amp;lt;pre&amp;gt;cap_mkdb /etc/login.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
Flip the switch in the VS Code extension to &amp;quot;Enable Remote Command&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sysctl kern.elf64.fallback_brand&lt;br /&gt;
kern.elf64.fallback_brand: -1&lt;br /&gt;
# sysctl kern.elf64.fallback_brand=3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NIC driver ===&lt;br /&gt;
https://www.intel.com/content/www/us/en/download/15187/intel-network-adapter-gigabit-base-driver-for-freebsd.html&lt;br /&gt;
https://web.archive.org/web/20131009070059/https://thesorcerer.wordpress.com/2011/07/01/guide-intel-82573l-gigabit-ethernet-with-ubuntu-11-04-and-fix-pxe-e05/&lt;br /&gt;
https://www.intel.com/content/www/us/en/download/15755/intel-ethernet-connections-boot-utility-preboot-images-and-efi-drivers.html&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bootutil -defcfg          #force bootutil to load the default PXE configuration into the controller&lt;br /&gt;
&lt;br /&gt;
# Georgi says ” bootutil -nic=1 -defcfg” it’s better. Try if the other returns an err&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== VM Setup ===&lt;br /&gt;
https://github.com/churchers/vm-bhyve&lt;br /&gt;
&lt;br /&gt;
Type ~+Ctrl-D to exit back to your host.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sysrc vm_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
# sysrc vm_dir=&amp;quot;zfs:dozer/vms&amp;quot;&lt;br /&gt;
# zfs create -o compression=lz4 dozer/vms/zvols # lz4 is better for multiple reads?&lt;br /&gt;
vm init&lt;br /&gt;
vm img https://download.freebsd.org/ftp/releases/VM-IMAGES/14.1-RELEASE/amd64/Latest/FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw.xz &lt;br /&gt;
# zfs create -s -V 35G dozer/vms/zvols/freebsd141&lt;br /&gt;
# dd bs=1m if=~/vms/.img/FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw of=/dev/zvol/dozer/vms/zvols/freebsd141 status=progress&lt;br /&gt;
# zfs snapshot dozer/vms/zvols/freebsd141@img35G&lt;br /&gt;
#vm create -t xbuild -s 35G -i FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw -C -k ~/.ssh/vms_id_ed.pub xBhyve141&lt;br /&gt;
vm create -t freebsd-zvol -C -k ~/.ssh/vms_id_ed.pub ci&lt;br /&gt;
zfs destroy dozer/vms/ci/disk0&lt;br /&gt;
zfs clone dozer/vms/zvols/freebsd141@img35G dozer/vms/ci/disk0&lt;br /&gt;
&lt;br /&gt;
 gpart recover nda0&lt;br /&gt;
 gpart show&lt;br /&gt;
# gpart resize -i 5 nda0&lt;br /&gt;
# growfs -f /dev/gpt/rootfs&lt;br /&gt;
&lt;br /&gt;
vm start xBhyve141&lt;br /&gt;
vm console xBhyve141&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
graphics is only possible with loader=&amp;quot;uefi&amp;quot;, not with &amp;quot;grub&amp;quot;. https://forums.freebsd.org/threads/bhyve-graphics-install-and-vncviewer.88114/&lt;br /&gt;
disk0.img is faster, but doesn't support -s 35G on create&lt;br /&gt;
nvme is faster than virtio-blk&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vm create -t freebsd-zvol -s 35G -i FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw -C -k ~/.ssh/vms_id_ed.pub xBuild141&lt;br /&gt;
dd if=/dev/zvol/dozer/vms/xBuild141/disk0 of=xBuild141/disk0.img bs=1m&lt;br /&gt;
vm configure xBuild141&lt;br /&gt;
disk0_name=&amp;quot;disk0.img&amp;quot;&lt;br /&gt;
#disk0_dev=&amp;quot;sparse-zvol&amp;quot;&lt;br /&gt;
&lt;br /&gt;
vm create -t freebsd -s 35G -i FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw -C -k ~/.ssh/vms_id_ed.pub xBuild141&lt;br /&gt;
qemu-img resize -f raw xBuild141/disk0.img 35G # resize before first boot&lt;br /&gt;
vm start xBuild141&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Bastille vnet + vm-bhyve vnet ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig bridge&lt;br /&gt;
ifconfig: interface bridge does not exist&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig bridge create&lt;br /&gt;
bridge0&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig bridge0 name em0bridge&lt;br /&gt;
em0bridge&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig em0bridge addm em0 up&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig em0bridge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Share bastille's bridge with bhyve. (manually setup the switch)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vm switch create -t manual -b em0bridge public&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== vm-bhyve restart ====&lt;br /&gt;
since vm-bhyve is within finch chroot, the mount points need to be re-mounted within the chroot&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zfs list -t filesystem | awk '/vms/ { print $1}' | xargs -n1 zfs mount&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Host Setup ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# disable autoboot delay&lt;br /&gt;
grep autoboot /boot/loader.conf || echo 'autoboot_delay=&amp;quot;-1&amp;quot;' &amp;gt;&amp;gt; /boot/loader.conf&lt;br /&gt;
mkdir -p .ssh&lt;br /&gt;
grep filer02 /etc/hosts || echo -e &amp;quot;192.168.3.159\tfiler02&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
scp wongk@192.168.3.83:.ssh/vms_id_ed.pub .ssh/authorized_keys&lt;br /&gt;
scp wongk@192.168.3.83:.ssh/vms_id_ed .ssh/&lt;br /&gt;
grep vms .ssh/config || echo 'IdentityFile ~/.ssh/vms_id_ed' &amp;gt;&amp;gt; .ssh/config&lt;br /&gt;
ls /boot/entropy || /etc/rc.d/random start&lt;br /&gt;
grep bash /etc/shells || echo /usr/local/bin/bash &amp;gt;&amp;gt; /etc/shells&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y parallel&lt;br /&gt;
echo 'will cite' | parallel --citation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Upgrade Host ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
date ; PAGER=cat yes | freebsd-update -r 14.1-RELEASE-p2 --currently-running 14.1-RELEASE-p1 --not-running-from-cron upgrade; date&lt;br /&gt;
date ; time yes | PAGER=cat freebsd-update --currently-running $(uname -r) --not-running-from-cron fetch install ; date&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
real    4m23.307s&lt;br /&gt;
user    2m49.590s&lt;br /&gt;
sys     0m13.771s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== pkg base ===&lt;br /&gt;
https://wiki.freebsd.org/PkgBase&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
date&lt;br /&gt;
ls -l /boot/kernel/kernel&lt;br /&gt;
mkdir -p /usr/local/etc/pkg/repos/&lt;br /&gt;
grep enabled /usr/local/etc/pkg/repos/base.conf || echo 'base: {&lt;br /&gt;
  url: &amp;quot;pkg+https://pkg.FreeBSD.org/${ABI}/base_release_1&amp;quot;,&lt;br /&gt;
  mirror_type: &amp;quot;srv&amp;quot;,&lt;br /&gt;
  signature_type: &amp;quot;fingerprints&amp;quot;,&lt;br /&gt;
  fingerprints: &amp;quot;/usr/share/keys/pkg&amp;quot;,&lt;br /&gt;
  enabled: yes&lt;br /&gt;
}' &amp;gt;/usr/local/etc/pkg/repos/base.conf&lt;br /&gt;
rm /usr/local/etc/pkg/repos/FreeBSD.conf&lt;br /&gt;
grep enabled /usr/local/etc/pkg/repos/latest.conf || echo 'latest: {&lt;br /&gt;
  url: &amp;quot;pkg+https://pkg.FreeBSD.org/${ABI}/latest&amp;quot;,&lt;br /&gt;
  mirror_type: &amp;quot;srv&amp;quot;,&lt;br /&gt;
  signature_type: &amp;quot;fingerprints&amp;quot;,&lt;br /&gt;
  fingerprints: &amp;quot;/usr/share/keys/pkg&amp;quot;,&lt;br /&gt;
  enabled: yes&lt;br /&gt;
}' &amp;gt;/usr/local/etc/pkg/repos/latest.conf&lt;br /&gt;
pkg update&lt;br /&gt;
&lt;br /&gt;
# find security patches. filter unnecessary and current patch-level packages&lt;br /&gt;
#time pkg search -r base -g 'FreeBSD-*p?' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/ {print $1}' | fgrep -v $(uname -r | awk -F- '{ print $1$3}') | xargs pkg install -y -r base &lt;br /&gt;
time pkg search -r base -g 'FreeBSD-*p?' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/ {print $1}' | xargs pkg install -y -r base &lt;br /&gt;
&lt;br /&gt;
cp -p /etc/master.passwd.pkgsave /etc/master.passwd&lt;br /&gt;
cp -p /etc/group.pkgsave /etc/group&lt;br /&gt;
cp -p /etc/shells.pkgsave /etc/shells&lt;br /&gt;
pwd_mkdb -p /etc/master.passwd&lt;br /&gt;
cp /etc/sysctl.conf.pkgsave /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
cp -p /etc/hosts.pkgsave /etc/hosts&lt;br /&gt;
cp -p /etc/ssh/sshd_config.pkgsave /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
# find changed files with &amp;quot;etc&amp;quot; in path&lt;br /&gt;
#find / -path '*/etc/*' -name &amp;quot;*.pkgsave&amp;quot; -type f&lt;br /&gt;
&lt;br /&gt;
# find changed .conf files&lt;br /&gt;
#find / -name &amp;quot;*.conf.pkgsave&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#find / -name \*.pkgsave -print -delete&lt;br /&gt;
ls -l /boot/kernel/kernel&lt;br /&gt;
date&lt;br /&gt;
&lt;br /&gt;
# (linker.hints was recreated at kernel install and we had the old modules as .pkgsave so we need to recreate it, this will be done at the next reboot)&lt;br /&gt;
rm /boot/kernel/linker.hints&lt;br /&gt;
&lt;br /&gt;
cd /var/cache/pkg&lt;br /&gt;
ls | fgrep -v '~' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pkg search -r base -g 'FreeBSD-*p1' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/ {print $1}' | xargs&lt;br /&gt;
FreeBSD-acct-14.1p1 FreeBSD-clang-14.1p1 FreeBSD-clibs-14.1p1 FreeBSD-devd-14.1p1 FreeBSD-kernel-generic-14.1p1 FreeBSD-lld-14.1p1 FreeBSD-lldb-14.1p1 FreeBSD-rescue-14.1p1 FreeBSD-runtime-14.1p1 FreeBSD-utilities-14.1p1 FreeBSD-zfs-14.1p1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install ports ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# time git clone -o freebsd https://git.freebsd.org/ports.git /usr/ports ; exit&lt;br /&gt;
Cloning into '/usr/ports'...&lt;br /&gt;
remote: Enumerating objects: 6293704, done.&lt;br /&gt;
remote: Counting objects: 100% (47660/47660), done.&lt;br /&gt;
remote: Compressing objects: 100% (37020/37020), done.&lt;br /&gt;
Receiving objects: 100% (6293704/6293704), 1.28 GiB | 6.50 MiB/s, done.&lt;br /&gt;
remote: Total 6293704 (delta 22967), reused 19260 (delta 10304), pack-reused 6246044 (from 1)&lt;br /&gt;
Resolving deltas: 100% (3797103/3797103), done.&lt;br /&gt;
Updating files: 100% (162138/162138), done.&lt;br /&gt;
&lt;br /&gt;
real    7m9.337s&lt;br /&gt;
user    6m38.899s&lt;br /&gt;
sys     1m26.111s&lt;br /&gt;
&lt;br /&gt;
# time git clone --depth 1 https://git.freebsd.org/ports.git /usr/ports&lt;br /&gt;
Cloning into '/usr/ports'...&lt;br /&gt;
load: 0.06  cmd: git-remote-https 64926 [select] 13.78r 0.01u 0.00s 0% 13088k&lt;br /&gt;
load: 0.05  cmd: git-remote-https 64926 [select] 21.56r 0.01u 0.00s 0% 13088k&lt;br /&gt;
remote: Enumerating objects: 197757, done.&lt;br /&gt;
remote: Counting objects: 100% (197757/197757), done.&lt;br /&gt;
remote: Compressing objects: 100% (185648/185648), done.&lt;br /&gt;
load: 0.11  cmd: git 64927 [piperd] 3.96r 0.04u 0.00s 0% 6524k &lt;br /&gt;
remote: Total 197757 (delta 13461), reused 117919 (delta 5403), pack-reused 0 (from 0)&lt;br /&gt;
Receiving objects: 100% (197757/197757), 87.61 MiB | 577.00 KiB/s, done.&lt;br /&gt;
Resolving deltas: 100% (13461/13461), done.&lt;br /&gt;
Updating files: 100% (162036/162036), done.&lt;br /&gt;
&lt;br /&gt;
real    3m20.931s&lt;br /&gt;
user    0m6.951s&lt;br /&gt;
sys     0m3.815s&lt;br /&gt;
&lt;br /&gt;
fetch https://download.freebsd.org/ftp/ports/ports/ports.tar.xz # latest&lt;br /&gt;
tar xf ports.tar.xz -C /usr/&lt;br /&gt;
&lt;br /&gt;
# time (fetch https://download.freebsd.org/ftp/ports/ports/ports.tar.xz ;         tar xf ports.tar.xz -C /usr/);&lt;br /&gt;
ports.tar.xz                                            41 MB  943 kBps    45s&lt;br /&gt;
real    1m10.018s&lt;br /&gt;
user    0m3.526s&lt;br /&gt;
sys     0m5.176s&lt;br /&gt;
&lt;br /&gt;
fetch https://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/ports.txz&lt;br /&gt;
tar xf ports.txz -C /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install source ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch https://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/src.txz&lt;br /&gt;
tar xf src.txz -C /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
how_to_compile_xigmanas_from_scratch.pdf&lt;br /&gt;
&lt;br /&gt;
https://forums.freebsd.org/threads/guide-using-git-to-manage-ports-source-and-documentation.79721/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone --depth=1 https://git.freebsd.org/ports.git /usr/ports&lt;br /&gt;
git clone --depth=1 https://git.freebsd.org/src.git /usr/src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Install kernel/base ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch --no-verify-peer http://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/kernel.txz&lt;br /&gt;
mkdir xigmanas/kernel-txz&lt;br /&gt;
tar xf kernel.txz -C xigmanas/kernel-txz&lt;br /&gt;
&lt;br /&gt;
fetch http://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/base.txz&lt;br /&gt;
mkdir xigmanas/base-txz&lt;br /&gt;
tar xf base.txz -C xigmanas/base-txz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install packages: ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y bash subversion pigz cdrtools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Delete all packages: ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg delete -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Getting XigmaNAS from svn ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /usr/local/xigmanas&lt;br /&gt;
cd /usr/local/xigmanas/&lt;br /&gt;
svn co https://svn.code.sf.net/p/xigmanas/code/trunk svn&lt;br /&gt;
&lt;br /&gt;
#cd svn; svn up -r9884 # 13.2.0.5 - Heighliner (revision 9884)&lt;br /&gt;
cd svn; svn up -r10024 # 13.3.0.5 - Hesterion (revision 10024)&lt;br /&gt;
&lt;br /&gt;
mkdir /usr/ports/distfiles&lt;br /&gt;
cp /usr/local/xigmanas/svn/build/ports/distfiles/*.{gz,zip} /usr/ports/distfiles/&lt;br /&gt;
ln -s /usr/local/xigmanas /root/xigmanas&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /usr/local/xigmanas&lt;br /&gt;
cd /usr/local/xigmanas/&lt;br /&gt;
fetch https://sourceforge.net/code-snapshots/svn/x/xi/xigmanas/code/xigmanas-code-r9999-trunk.zip&lt;br /&gt;
sudo tar xf xigmanas-code-r9999-trunk.zip&lt;br /&gt;
sudo ln -s xigmanas-code-r9999-trunk svn&lt;br /&gt;
cp /usr/local/xigmanas/svn/build/ports/distfiles/*.{gz,zip} /usr/ports/distfiles/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Update Version ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo -n 14.1.0.7&amp;gt; /usr/local/xigmanas/svn/etc/prd.version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
binary version 14.1.0.7&lt;br /&gt;
&lt;br /&gt;
==== Compiling XigmaNAS ====&lt;br /&gt;
WITHOUT_X11 is unsupported, use WITHOUT=X11 # virtualbox-ose&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo WITHOUT_X11=yes &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo WITHOUT=X11 &amp;gt;&amp;gt; /etc/make.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export XIGMANAS_ROOTFS=/usr/local/xigmanas/rootfs/&lt;br /&gt;
export BATCH=yes&lt;br /&gt;
/usr/local/xigmanas/svn/build/make.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls /usr/local/xigmanas&lt;br /&gt;
XigmaNAS-x86-9.0.0.1.43.checksum builds&lt;br /&gt;
XigmaNAS-x86-LiveCD-9.0.0.1.43.iso rootfs&lt;br /&gt;
XigmaNAS-x86-embedded-9.0.0.1.43.img svn&lt;br /&gt;
bootloader work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make build-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y&lt;br /&gt;
make run-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== install deps via pkg =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
USE_PKG_DEPENDS=yes &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports&lt;br /&gt;
for i in */; do &lt;br /&gt;
cd $i&lt;br /&gt;
make build-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y&lt;br /&gt;
cd ..&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports&lt;br /&gt;
for i in */; do &lt;br /&gt;
cd $i&lt;br /&gt;
make build-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y&lt;br /&gt;
make -j8 build ; make package &amp;amp;&amp;amp; cp work/pkg/* /var/cache/pkg/&lt;br /&gt;
cd ..&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blog ===&lt;br /&gt;
Code highlighting&lt;br /&gt;
https://prismjs.com/#examples&lt;br /&gt;
=== History ===&lt;br /&gt;
freebsd mkdir(2) manpage history update&lt;br /&gt;
syscall was not in version 1 unix&lt;br /&gt;
it wasn't in version 6 either (see tom lions) syscalls:&lt;br /&gt;
https://warsus.github.io/lions-/&lt;br /&gt;
mkdir is not listed&lt;br /&gt;
&lt;br /&gt;
https://cgit.freebsd.org/src/plain/share/misc/bsd-family-tree?id=ea2b79b03eec2c1c49c8c04aa7c7a40bb5e41303&lt;br /&gt;
&lt;br /&gt;
mkdir syscall was added in BSD by Kirk McKuisick&lt;br /&gt;
https://www.youtube.com/watch?v=XUj2vCKtegU&amp;amp;t=736s&lt;br /&gt;
&lt;br /&gt;
https://gunkies.org/wiki/BSD&lt;br /&gt;
4.1c BSD - A beta of 4.2, and I think the first version of BSD sockets?&lt;br /&gt;
&lt;br /&gt;
https://gunkies.org/wiki/4.2_BSD&lt;br /&gt;
Date Released:	1983&lt;br /&gt;
&lt;br /&gt;
https://gunkies.org/wiki/Installing_4.1c_BSD_on_SIMH&lt;br /&gt;
You will need the following files from Bitsavers archive from the UCB_CSRG directory. I have used the files:&lt;br /&gt;
&lt;br /&gt;
4.1C_BSD_1of2.zip (http://bitsavers.informatik.uni-stuttgart.de/bits/UCB_CSRG/4.1C_BSD_1of2.zip)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
❯ grep mkdir.2 4.1C_BSD_1of2/burst/00004.txt&lt;br /&gt;
-rw-r--r-- 0/0            1516 1983-02-26 17:21:59 man/man2/mkdir.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
debootstrap unbuntu updates / symlink&lt;br /&gt;
&lt;br /&gt;
=== Fonts ===&lt;br /&gt;
https://github.com/emaste/fontstuff/tree/master&lt;br /&gt;
&lt;br /&gt;
https://docs.freebsd.org/en/books/handbook/bsdinstall/#bsdinstall-start&lt;br /&gt;
&lt;br /&gt;
FreeBSD 8x8 syscons font&lt;br /&gt;
&lt;br /&gt;
unifont https://unifoundry.com/unifont/unifont-utilities.html&lt;br /&gt;
&amp;lt;pre&amp;gt;xinch-filer02:/usr/ports# pkg install gnu-unifont-otf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;fetch https://raw.githubusercontent.com/emaste/fontstuff/master/hex2bdf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;unifont# ./hex2bdf iso-8x8.hex  &amp;gt; iso-8x8.bdf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;fontforge -lang=ff -c 'Open($1); Generate($2)' iso-8x8.bdf iso-8x8.woff2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linux Jail ===&lt;br /&gt;
https://wiki.freebsd.org/LinuxJails&lt;br /&gt;
&lt;br /&gt;
https://forums.freebsd.org/threads/running-linux-in-a-jail.90527/&lt;br /&gt;
&lt;br /&gt;
https://iocage.readthedocs.io/en/latest/debian.html&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qjail create -4 192.168.3.197 jammy&lt;br /&gt;
debootstrap --arch=amd64 --no-check-gpg jammy /usr/jails/jammy/compat/ubuntu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/share/debootstrap/scripts# ln -s gutsy noble&lt;br /&gt;
debootstrap --arch=amd64 --no-check-gpg noble /usr/jails/noble/compat/ubuntu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xDev:/compat# for i in noble/var/cache/apt/archives/*.deb; do echo $i; tar xf $i -C unzip data.tar.zst ; tar xpf unzip/data.tar.zst -C noble; done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Errors ===&lt;br /&gt;
==== No Menu ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    XigmaNAS: 14.1.0.9 (revision 10142)                                                   &lt;br /&gt;
    Compiled: Mon Jul 15 08:12:52 CDT 2024 Platform: x64-liveusb                          &lt;br /&gt;
    Copyright (c) 2018-2024 XigmaNAS(R). All Rights Reserved.                             &lt;br /&gt;
    Visit www.xigmanas.com for regular system updates!                                    &lt;br /&gt;
                                                                                          &lt;br /&gt;
        WebGUI Address: http://                                                           &lt;br /&gt;
                                                                                          &lt;br /&gt;
        LAN Network IPv4 Address:                                                         &lt;br /&gt;
        LAN Network Interface:    vtnet0                                                  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FreeBSD/amd64 (xigmanas.internal) (ttyu0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FreeBSD/amd64 (xigmanas.internal) (ttyu0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FreeBSD/amd64 (xigmanas.internal) (ttyu0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Fix ====&lt;br /&gt;
Check for opie&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls ~/xigmanas/rootfs/usr/local/lib/libopie*&lt;br /&gt;
/root/xigmanas/rootfs/usr/local/lib/libopie.so&lt;br /&gt;
/root/xigmanas/rootfs/usr/local/lib/libopie.so.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
==== fdisk ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/fdisk&lt;br /&gt;
make extract&lt;br /&gt;
&lt;br /&gt;
egrep -B1 -A1 '^usage' work/fdisk-1.1/fdisk.c&lt;br /&gt;
&lt;br /&gt;
sed -i '.orig' 's/^\([a-z][a-zA-Z0-9_]*\)()$/\1(void)/g' /usr/local/xigmanas/svn/build/ports/fdisk/work/fdisk-1.1/fdisk.c&lt;br /&gt;
&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/fdisk/work/fdisk-1.1&lt;br /&gt;
diff -u fdisk.c.orig fdisk.c &amp;gt; ../../files/patch-fdisk.c &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== isboot ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/isboot/&lt;br /&gt;
make extract&lt;br /&gt;
&lt;br /&gt;
grep pmap_unmapdev work/isboot-0.3.3/src/ibft.c&lt;br /&gt;
&lt;br /&gt;
sed -i '.orig' 's/pmap_unmapdev((vm_offset_t)vaddr,/pmap_unmapdev((void *)(uintptr_t)vaddr,/g' /usr/local/xigmanas/svn/build/ports/isboot/work/isboot-0.3.3/src/ibft.c&lt;br /&gt;
&lt;br /&gt;
sed -i '.orig' 's/DVIMAGE$/DVIMAGE\nCFLAGS+= -Wno-error=unused-but-set-variable\n/g' /usr/local/xigmanas/svn/build/ports/isboot/work/isboot-0.3.3/src/Makefile&lt;br /&gt;
&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/isboot/work/isboot-0.3.3/src&lt;br /&gt;
diff -u ibft.c.orig ibft.c &amp;gt; ../../../files/patch-ibft.c&lt;br /&gt;
diff -u Makefile.orig Makefile &amp;gt; ../../../files/patch-Makefile&lt;br /&gt;
&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/isboot/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== fuppes ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# bash automake gettext-tools libtool pkgconf newest ports?&lt;br /&gt;
# autoreconf libtool gettext-tools pkgconf&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/fuppes&lt;br /&gt;
make extract&lt;br /&gt;
grep 'pStream-&amp;gt;codec-&amp;gt;' work/fuppes-0.692/src/plugins/metadata_libavformat.c&lt;br /&gt;
sed -i '.orig' 's/pStream-&amp;gt;codec-&amp;gt;/pStream-&amp;gt;codecpar-&amp;gt;/g' work/fuppes-0.692/src/plugins/metadata_libavformat.c &lt;br /&gt;
&lt;br /&gt;
diff -u /usr/local/xigmanas/svn/build/ports/fuppes/work/fuppes-0.692/src/plugins/metadata_libavformat.c.orig /usr/local/xigmanas/svn/build/ports/fuppes/work/fuppes-0.692/src/plugins/metadata_libavformat.c &amp;gt; files/patch-src__plugins__metadata_libavformat.c&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== netatalk3 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@xigmanas:/usr/local/xigmanas/svn/build/ports/netatalk3 # grep -r FreeBSD . | grep LINUX&lt;br /&gt;
./work/netatalk-3.1.14/etc/uams/uams_dhx_pam.c:#if defined LINUX || defined __FreeBSD__&lt;br /&gt;
./work/netatalk-3.1.14/etc/uams/uams_dhx2_pam.c:#if defined LINUX || defined __FreeBSD__&lt;br /&gt;
./work/netatalk-3.1.14/etc/uams/uams_pam.c:#if defined LINUX || defined __FreeBSD__&lt;br /&gt;
root@xigmanas:/usr/local/xigmanas/svn/build/ports/netatalk3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@xigmanas:/usr/ports/net/netatalk3/files # ls -l&lt;br /&gt;
total 40&lt;br /&gt;
-rw-r--r--  1 root wheel  646 Apr  6  2021 netatalk.in&lt;br /&gt;
-rw-r--r--  1 root wheel  188 Apr  6  2021 pam.conf&lt;br /&gt;
-rw-r--r--  1 root wheel 1767 May  1  2022 patch-config_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  556 Oct  6 23:17 patch-configure&lt;br /&gt;
-rw-r--r--  1 root wheel 1007 Feb 27  2023 patch-etc_afpd_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  273 Jul 20  2016 patch-etc_cnid__dbd_cnid__metad.c&lt;br /&gt;
-rw-r--r--  1 root wheel  341 May  1  2022 patch-etc_netatalk_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  380 Nov 22 16:10 patch-etc_uams_uams__dhx2__pam.c&lt;br /&gt;
-rw-r--r--  1 root wheel  581 Nov 22 16:10 patch-etc_uams_uams__dhx__pam.c&lt;br /&gt;
-rw-r--r--  1 root wheel  416 Nov 22 16:10 patch-etc_uams_uams__pam.c&lt;br /&gt;
root@xigmanas:/usr/ports/net/netatalk3/files # cat patch-etc_uams_uams__dhx2__pam.c&lt;br /&gt;
--- etc/uams/uams_dhx2_pam.c.orig       2023-11-22 15:19:12 UTC&lt;br /&gt;
+++ etc/uams/uams_dhx2_pam.c&lt;br /&gt;
@@ -136,7 +136,7 @@ error:&lt;br /&gt;
  * echo off means password.&lt;br /&gt;
  */&lt;br /&gt;
 static int PAM_conv (int num_msg,&lt;br /&gt;
-#ifdef LINUX&lt;br /&gt;
+#if defined(LINUX) || (defined(FREEBSD) &amp;amp;&amp;amp; __FreeBSD_version &amp;gt;= 1400000)&lt;br /&gt;
                      const struct pam_message **msg,&lt;br /&gt;
 #else&lt;br /&gt;
                      struct pam_message **msg,&lt;br /&gt;
root@xigmanas:/usr/ports/net/netatalk3/files # ls -l /usr/local/xigmanas/svn/build/ports/netatalk3/files/&lt;br /&gt;
total 24&lt;br /&gt;
-rw-r--r--  1 root wheel 2563 Dec 28 17:22 netatalk.in&lt;br /&gt;
-rw-r--r--  1 root wheel 1767 Dec 28 17:22 patch-config_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  508 Dec 28 17:22 patch-configure&lt;br /&gt;
-rw-r--r--  1 root wheel 1007 Dec 28 17:22 patch-etc_afpd_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  273 Dec 28 17:22 patch-etc_cnid__dbd_cnid__metad.c&lt;br /&gt;
-rw-r--r--  1 root wheel  341 Dec 28 17:22 patch-etc_netatalk_Makefile.in&lt;br /&gt;
root@xigmanas:/usr/ports/net/netatalk3/files # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=Main_Page&amp;diff=466</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=Main_Page&amp;diff=466"/>
		<updated>2025-04-01T08:54:35Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* Formatting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Movies ==&lt;br /&gt;
* Joy Luck Club&lt;br /&gt;
* Motherless Brooklyn&lt;br /&gt;
* Dune&lt;br /&gt;
* The Big Short&lt;br /&gt;
* Andre The Giant 2018&lt;br /&gt;
* Joker&lt;br /&gt;
* &amp;lt;s&amp;gt;Spider-Man&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;The Social Dilemma&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;King Richard (Will Smith)👍🏽&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;Shang-Chi&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;Venom&amp;lt;/s&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;javascript:window.location=document.querySelector('#player iframe').src;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;javascript:window.location=document.querySelector('#player video').src;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Shows == &lt;br /&gt;
* Marvelous Mrs Mazel&lt;br /&gt;
* Watchmen (TV series)&lt;br /&gt;
* Picard&lt;br /&gt;
* &amp;lt;s&amp;gt;Cocaine Cowboys Miami&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Food ==&lt;br /&gt;
&lt;br /&gt;
* Carnaval Brazilian BBQ&lt;br /&gt;
* Feast&lt;br /&gt;
* Across The Board&lt;br /&gt;
* [https://www.tripadvisor.ca/Restaurant_Review-g2648278-d3171065-Reviews-Oma_s_Schnitzel_Stube-St_Pierre_Jolys_Manitoba.html German buffet in St. Malo] Closed/New (bad) management?&lt;br /&gt;
* &amp;lt;s&amp;gt;smash burger&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;Turkey Tacos&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;[https://bluehazebbq.ca BBQ Beausejour]&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;tallest Poppy chicken&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Korean BBQ&lt;br /&gt;
* home made chicken shawarma&lt;br /&gt;
&lt;br /&gt;
* https://www.winnipegrestaurantdeals.com/restaurants&lt;br /&gt;
&lt;br /&gt;
== Travel ==&lt;br /&gt;
* Pembina Valley&lt;br /&gt;
* Banff&lt;br /&gt;
* West Edmonton Mall&lt;br /&gt;
* bunns creek trail (on way to half moon)&lt;br /&gt;
* Bryce Canyon Utah&lt;br /&gt;
&lt;br /&gt;
== [[Disney World]]== &lt;br /&gt;
{{:Disney World}}&lt;br /&gt;
== [[Costa Rica]]==&lt;br /&gt;
{{:Costa Rica}}&lt;br /&gt;
&lt;br /&gt;
== [[UNIX]]==&lt;br /&gt;
{{:UNIX}}&lt;br /&gt;
&lt;br /&gt;
== Games ==&lt;br /&gt;
* X68000: Puzzle: [https://www.youtube.com/watch?v=T3l-6aQ28Ds Deflektor]&lt;br /&gt;
* SNES: Puzzle: Bust-A-Move, The Lost Vikings&lt;br /&gt;
* SNES: VS: Super Bomberman, Tetris Attack&lt;br /&gt;
* SNES: Co-Op: Contra III, Wild Guns&lt;br /&gt;
* SNES: Action RPG: Front Mission Gun Hazard&lt;br /&gt;
* MAME: puzzle: Money Puzzle Exchanger&lt;br /&gt;
* NEOGEO: Co-Op: Alpha Mission 2, Mslug, robo army, Shock Troopers&lt;br /&gt;
* NEOGEO: VS: League Bowling, WindJammer, The Last Blade, Garou&lt;br /&gt;
== emus ==&lt;br /&gt;
https://www.youtube.com/watch?app=desktop&amp;amp;v=UGtU5wRWuhc&lt;br /&gt;
&lt;br /&gt;
* OpenEmu: https://www.youtube.com/watch?v=RxhbhM8BA68&amp;amp;t=0s&lt;br /&gt;
* PSP (PPSSPP ARM): https://www.youtube.com/watch?v=WYfnSCgRBdA&amp;amp;t=0s&lt;br /&gt;
* GC/Wii (Dolphin ARM): https://www.youtube.com/watch?v=lwYKk-_HoPg&amp;amp;t=0s&lt;br /&gt;
* PS2 (PCSX2): https://www.youtube.com/watch?v=veWRt0f7avk&amp;amp;t=0s&lt;br /&gt;
* Dreamcast (Redream): https://www.youtube.com/watch?v=6x_vLg2m7T4&amp;amp;t=0s&lt;br /&gt;
* 3DS (Citra ARM): https://www.youtube.com/watch?v=VpbDl0v_WCs&amp;amp;t=0s&lt;br /&gt;
* PSX (DuckStation): hhttps://www.youtube.com/watch?v=MNofg_jkRnA&amp;amp;t=0s&lt;br /&gt;
* Xbox (Xemu): https://www.youtube.com/watch?v=PCvQ_9M1nlI&amp;amp;t=0s&lt;br /&gt;
* Mac Gaming: https://www.applegamingwiki.com/wiki/PlayStation_2&lt;br /&gt;
==== mega thread ====&lt;br /&gt;
* roms: https://www.reddit.com/r/Roms/comments/gar3bc/roms_megathread_30_ybin_edition/&lt;br /&gt;
* emu files: https://emulation.gametechwiki.com/index.php/Emulator_files#PlayStation_2&lt;br /&gt;
&lt;br /&gt;
==Bike==&lt;br /&gt;
* tighten seat&lt;br /&gt;
* buy helmet&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* &amp;lt;s&amp;gt;Red pocket&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;Plumber&amp;lt;/s&amp;gt;&lt;br /&gt;
== Self Hosting==&lt;br /&gt;
=== Fossil ===&lt;br /&gt;
https://dev.to/schollz/self-hosting-with-fossil-an-alternative-to-git-33bk&lt;br /&gt;
=== certbot ===&lt;br /&gt;
Add new cert:&lt;br /&gt;
&amp;lt;pre&amp;gt;# sudo certbot certonly -d wiki.ho.stna.me&lt;br /&gt;
Saving debug log to /var/log/letsencrypt/letsencrypt.log&lt;br /&gt;
&lt;br /&gt;
How would you like to authenticate with the ACME CA?&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
1: Nginx Web Server plugin (nginx)&lt;br /&gt;
2: Spin up a temporary webserver (standalone)&lt;br /&gt;
3: Place files in webroot directory (webroot)&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Select the appropriate number [1-3] then [enter] (press 'c' to cancel): 1&lt;br /&gt;
Plugins selected: Authenticator nginx, Installer None&lt;br /&gt;
Obtaining a new certificate&lt;br /&gt;
Performing the following challenges:&lt;br /&gt;
http-01 challenge for wiki.ho.stna.me&lt;br /&gt;
Using default addresses 80 and [::]:80 ipv6only=on for authentication.&lt;br /&gt;
Waiting for verification...&lt;br /&gt;
Cleaning up challenges&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== nginx ===&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
=== Archiver / PeaZip ===&lt;br /&gt;
==== File Manager Integration (Context Menus) ====&lt;br /&gt;
https://peazip.github.io/peazip-linux.html&lt;br /&gt;
https://wiki.archlinux.org/title/GNOME/Files#Custom_scripts&lt;br /&gt;
&lt;br /&gt;
https://github.com/peazip/PeaZip/releases/download/9.5.0/peazip_portable-9.5.0.LINUX.GTK2.x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
From the portable download, find scripts in the folder: res/share/batch/freedesktop_integration/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Custom scripts&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Scripts placed in ~/.local/share/nautilus/scripts can be run from the right click context menu of a file.&lt;br /&gt;
&lt;br /&gt;
The context menu can also be organized into subfolders, e.g. ~/.local/share/nautilus/scripts/images and ~/.local/share/nautilus/scripts/music.&lt;br /&gt;
&lt;br /&gt;
== SmartOS ==&lt;br /&gt;
=== Upgrade ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SmartOS (build: 20250220T074131Z)&lt;br /&gt;
[root@cloud ~]# piadm avail&lt;br /&gt;
20250306T000316Z&lt;br /&gt;
[root@cloud ~]# piadm -v install 20250306T000316Z&lt;br /&gt;
[root@cloud ~]# piadm list&lt;br /&gt;
PI STAMP               BOOTABLE FILESYSTEM            BOOT IMAGE NOW  NEXT&lt;br /&gt;
20250220T074131Z       zones/boot                     next       yes  yes&lt;br /&gt;
20250306T000316Z       zones/boot                     available  no   no&lt;br /&gt;
[root@cloud ~]# piadm -v activate 20250306T000316Z&lt;br /&gt;
[root@cloud ~]# piadm list&lt;br /&gt;
PI STAMP               BOOTABLE FILESYSTEM            BOOT IMAGE NOW  NEXT&lt;br /&gt;
20250220T074131Z       zones/boot                     available  yes  no&lt;br /&gt;
20250306T000316Z       zones/boot                     next       no   yes&lt;br /&gt;
[root@cloud ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Migrating ===&lt;br /&gt;
https://docs.smartos.org/managing-instances-with-vmamd/#migrate-an-instance-to-a-different-compute-node&lt;br /&gt;
&lt;br /&gt;
== FreeBSD ==&lt;br /&gt;
=== CUDA ===&lt;br /&gt;
https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;amp;target_arch=x86_64&amp;amp;Distribution=Rocky&amp;amp;target_version=9&amp;amp;target_type=rpm_local&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install nvidia-driver  &lt;br /&gt;
kldload nvidia&lt;br /&gt;
kldload nvidia-modeset &lt;br /&gt;
 # sysrc kld_list+=nvidia-modeset &lt;br /&gt;
kldload linux64&lt;br /&gt;
pkg install linux_base-rl9  &lt;br /&gt;
pkg install linux-rl9-libxml2&lt;br /&gt;
pkg install gcc #gcc13&lt;br /&gt;
&lt;br /&gt;
fetch https://developer.download.nvidia.com/compute/cuda/12.5.1/local_installers/cuda_12.5.1_555.42.06_linux.run&lt;br /&gt;
./cuda_12.5.1_555.42.06_linux.run&lt;br /&gt;
&lt;br /&gt;
fetch https://developer.download.nvidia.com/compute/cuda/12.5.1/local_installers/cuda-repo-rhel9-12-5-local-12.5.1_555.42.06-1.x86_64.rpm&lt;br /&gt;
&lt;br /&gt;
rpm2cpio cuda-repo-rhel9-12-5-local-12.5.1_555.42.06-1.x86_64.rpm &amp;gt; cuda.cpio&lt;br /&gt;
cpio -idmv &amp;lt; cuda.cpio&lt;br /&gt;
&lt;br /&gt;
var/cuda-repo-rhel9-12-5-local# rpm2cpio nvidia-driver-cuda-libs-555.42.06-1.el9.x86_64.rpm &amp;gt; nvidia-driver-cuda-libs-555.42.06-1.el9.x86_64.cpio&lt;br /&gt;
cpio -idmv &amp;lt; nvidia-driver-cuda-libs-555.42.06-1.el9.x86_64.cpio&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
brandelf -t Linux &amp;lt;path_to_CUDA_installer&amp;gt;&lt;br /&gt;
./cuda_&amp;lt;version&amp;gt;_linux.run&lt;br /&gt;
&lt;br /&gt;
LD_LIBRARY_PATH=/usr/lib64 ffmpeg -i TheBear-S03E01.ts -c:v h264_nvenc -preset slow -b:v 5000k -maxrate 5000k -bufsize 10000k -pix_fmt yuv420p -c:a aac output.mp4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Containers ===&lt;br /&gt;
containerd / runj&lt;br /&gt;
&lt;br /&gt;
https://productionwithscissors.run/2022/09/04/containerd-linux-on-freebsd/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://catalog.ngc.nvidia.com/orgs/nvidia/containers/cuda/tags&lt;br /&gt;
nvcr.io/nvidia/cuda:12.5.1-cudnn-devel-ubuntu20.04&lt;br /&gt;
&lt;br /&gt;
https://github.com/canonical/microk8s/issues/1239&lt;br /&gt;
#ctr run --rm --gpus 0 docker.io/nvidia/cuda:9.0-base nvidia-smi nvidia-smi&lt;br /&gt;
&lt;br /&gt;
ctr image pull --platform=linux nvcr.io/nvidia/cuda:12.5.1-cudnn-devel-ubuntu20.04&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== VMs ===&lt;br /&gt;
==== qemu / quickemu ====&lt;br /&gt;
https://github.com/quickemu-project/quickemu?tab=readme-ov-file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install qemu-nox11 coreutils socat usbutils swtpm zsync samba416 qemu-nox11 edk2-qemu-x64&lt;br /&gt;
git clone https://github.com/quickemu-project/quickemu&lt;br /&gt;
cd quickemu&lt;br /&gt;
./quickget alpine v3.11&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cat freebsd.patch&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/quickemu b/quickemu&lt;br /&gt;
index f2bd9df..2ad1933 100755&lt;br /&gt;
--- a/quickemu&lt;br /&gt;
+++ b/quickemu&lt;br /&gt;
@@ -652,6 +652,8 @@ function configure_bios() {&lt;br /&gt;
             if command -v brew &amp;amp;&amp;gt;/dev/null; then&lt;br /&gt;
                 SHARE_PATH=&amp;quot;$(brew --prefix qemu)/share&amp;quot;&lt;br /&gt;
             fi&lt;br /&gt;
+       elif [ &amp;quot;${OS_KERNEL}&amp;quot; == &amp;quot;FreeBSD&amp;quot; ]; then&lt;br /&gt;
+               SHARE_PATH=/usr/local/share&lt;br /&gt;
         fi&lt;br /&gt;
 &lt;br /&gt;
         # https://bugzilla.redhat.com/show_bug.cgi?id=1929357#c5&lt;br /&gt;
@@ -675,7 +677,9 @@ function configure_bios() {&lt;br /&gt;
                         &amp;quot;${SHARE_PATH}/edk2-ovmf/OVMF_CODE.fd&amp;quot;,&amp;quot;${SHARE_PATH}/edk2-ovmf/OVMF_VARS.fd&amp;quot; \&lt;br /&gt;
                         &amp;quot;${SHARE_PATH}/qemu/ovmf-x86_64-4m-code.bin&amp;quot;,&amp;quot;${SHARE_PATH}/qemu/ovmf-x86_64-4m-vars.bin&amp;quot; \&lt;br /&gt;
                         &amp;quot;${SHARE_PATH}/qemu/edk2-x86_64-code.fd&amp;quot;,&amp;quot;${SHARE_PATH}/qemu/edk2-x86_64-code.fd&amp;quot; \&lt;br /&gt;
-                        &amp;quot;${SHARE_PATH}/edk2-ovmf/x64/OVMF_CODE.fd&amp;quot;,&amp;quot;${SHARE_PATH}/edk2-ovmf/x64/OVMF_VARS.fd&amp;quot;&lt;br /&gt;
+                        &amp;quot;${SHARE_PATH}/edk2-ovmf/x64/OVMF_CODE.fd&amp;quot;,&amp;quot;${SHARE_PATH}/edk2-ov&lt;br /&gt;
mf/x64/OVMF_VARS.fd&amp;quot; \&lt;br /&gt;
+                        &amp;quot;${SHARE_PATH}/edk2-qemu/QEMU_UEFI_CODE-x86_64.fd&amp;quot;,&amp;quot;${SHARE_PATH}&lt;br /&gt;
/edk2-qemu/QEMU_UEFI_VARS-x86_64.fd&amp;quot;&lt;br /&gt;
+&lt;br /&gt;
                     );;&lt;br /&gt;
             esac&lt;br /&gt;
             # Attempt each EFI_CODE file one by one, selecting the corresponding code and&lt;br /&gt;
 vars&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Linuxulator ===&lt;br /&gt;
Yes, I’m familiar with both '''SmartOS LX zones''' and '''FreeBSD’s Linuxulator'''. These are two different approaches to providing Linux binary compatibility on non-Linux systems, and their differing abilities to run '''systemd''' highlight some key technical distinctions. Let’s break this down and address what’s missing in FreeBSD’s Linuxulator to support systemd, as well as how you might approach enabling it by leveraging SmartOS/Illumos source code.&lt;br /&gt;
===== SmartOS LX Zones and FreeBSD Linuxulator =====&lt;br /&gt;
&lt;br /&gt;
* '''SmartOS LX Zones''': LX zones are a feature of Illumos-based systems (like SmartOS) that allow running Linux binaries in a lightweight containerized environment called a &amp;quot;branded zone.&amp;quot; These zones provide a near-native Linux kernel ABI (Application Binary Interface) by translating Linux system calls into Illumos equivalents. LX zones were originally developed by Joyent to support running Linux applications, including Docker, on SmartOS. Over time, they’ve been extended to support more complex Linux-specific features, including systemd, which is the default init system for many modern Linux distributions.&lt;br /&gt;
&lt;br /&gt;
* '''FreeBSD Linuxulator''': The Linuxulator is FreeBSD’s Linux binary compatibility layer. It allows FreeBSD to run unmodified Linux ELF binaries by translating Linux system calls to FreeBSD equivalents. Unlike LX zones, it’s not a containerization technology but a kernel-level compatibility layer that operates alongside native FreeBSD processes. It currently supports a subset of Linux kernel functionality, with compatibility levels pegged at Linux 3.2.0 in FreeBSD 12-STABLE and Linux 5.15.0 in FreeBSD 14-STABLE (as of recent documentation). However, it lacks support for several Linux-specific features required by systemd.&lt;br /&gt;
&lt;br /&gt;
==== Why Systemd Works in LX Zones but Not Linuxulator ====&lt;br /&gt;
Systemd is a complex init system that relies heavily on Linux-specific kernel features, such as:&lt;br /&gt;
* '''cgroups (Control Groups)''': Used for resource management and process grouping.&lt;br /&gt;
* '''Namespaces''': Particularly PID, mount, and user namespaces, which provide isolation and scoping for processes.&lt;br /&gt;
* '''Fanotify''': A file system notification system used by systemd for monitoring file events.&lt;br /&gt;
* '''Specific System Calls''': Systemd depends on calls like &amp;lt;code&amp;gt;pidfd_open()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;clone3()&amp;lt;/code&amp;gt;, and others introduced in newer Linux kernels.&lt;br /&gt;
* '''udev Integration''': Systemd integrates tightly with udev, which relies on Linux-specific device management mechanisms.&lt;br /&gt;
&lt;br /&gt;
'''SmartOS LX Zones''' have evolved to support these features. The Illumos kernel, with contributions from Joyent and the SmartOS community, has implemented enough of the Linux kernel ABI—including cgroups, namespaces, and additional system calls—to allow systemd to function within an LX-branded zone. This was driven by the need to support Docker and other modern Linux workloads, which often assume systemd is present.&lt;br /&gt;
&lt;br /&gt;
'''FreeBSD Linuxulator''', on the other hand, does not yet support these features fully. While it can run many Linux binaries (e.g., statically linked programs or those with simpler dependencies), its compatibility layer is incomplete for systemd’s requirements. The Linuxulator’s development has historically focused on supporting popular applications (like Steam or proprietary tools) rather than replicating the full Linux kernel feature set, and systemd support has not been a priority.&lt;br /&gt;
&lt;br /&gt;
==== What’s Missing in FreeBSD Linuxulator? ====&lt;br /&gt;
To run systemd in FreeBSD’s Linuxulator, the following gaps need to be addressed:&lt;br /&gt;
&lt;br /&gt;
===== 1. cgroups Support =====&lt;br /&gt;
* '''Current State''': FreeBSD has no native cgroups implementation. It uses its own resource control mechanisms (e.g., &amp;lt;code&amp;gt;rctl&amp;lt;/code&amp;gt; for resource limits and jails for isolation), which are philosophically and technically different from Linux’s cgroups.&lt;br /&gt;
* '''Requirement''': Systemd expects cgroups v1 or v2 for process grouping, resource limiting, and service management. Without this, systemd cannot initialize properly.&lt;br /&gt;
&lt;br /&gt;
===== 2. Namespaces =====&lt;br /&gt;
* '''Current State''': FreeBSD supports some namespace-like features via jails and VNET (virtual networking), but these are not equivalent to Linux’s PID, mount, or user namespaces. The Linuxulator does not translate Linux namespace-related system calls (e.g., &amp;lt;code&amp;gt;unshare()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;clone()&amp;lt;/code&amp;gt; with namespace flags) into FreeBSD equivalents.&lt;br /&gt;
* '''Requirement''': Systemd uses namespaces for service isolation and scoping, particularly PID namespaces to manage process trees.&lt;br /&gt;
&lt;br /&gt;
===== 3. System Call Gaps =====&lt;br /&gt;
* '''Current State''': The Linuxulator implements a subset of Linux system calls (see &amp;lt;code&amp;gt;sys/compat/linux/linux_sysent.c&amp;lt;/code&amp;gt; in the FreeBSD source). Missing calls include newer ones like &amp;lt;code&amp;gt;pidfd_open()&amp;lt;/code&amp;gt; (Linux 5.3+), &amp;lt;code&amp;gt;clone3()&amp;lt;/code&amp;gt; (Linux 5.3+), and others that systemd may use.&lt;br /&gt;
* '''Requirement''': Full compatibility with the system calls systemd depends on, which may require extending the Linuxulator’s syscall table.&lt;br /&gt;
&lt;br /&gt;
===== 4. Fanotify and File System Events =====&lt;br /&gt;
* '''Current State''': FreeBSD has &amp;lt;code&amp;gt;kqueue&amp;lt;/code&amp;gt; for event notification, but it’s not compatible with Linux’s &amp;lt;code&amp;gt;fanotify&amp;lt;/code&amp;gt; API, which systemd uses for file system monitoring.&lt;br /&gt;
* '''Requirement''': An emulation layer to map &amp;lt;code&amp;gt;fanotify&amp;lt;/code&amp;gt; calls to &amp;lt;code&amp;gt;kqueue&amp;lt;/code&amp;gt; or a custom implementation.&lt;br /&gt;
&lt;br /&gt;
===== 5. udev and Device Management =====&lt;br /&gt;
* '''Current State''': FreeBSD uses &amp;lt;code&amp;gt;devd&amp;lt;/code&amp;gt; for device management, which differs significantly from Linux’s &amp;lt;code&amp;gt;udev&amp;lt;/code&amp;gt;. The Linuxulator does not fully emulate &amp;lt;code&amp;gt;udev&amp;lt;/code&amp;gt;’s behavior or its integration with the kernel.&lt;br /&gt;
* '''Requirement''': Systemd expects &amp;lt;code&amp;gt;udev&amp;lt;/code&amp;gt; to manage device events, so a compatibility layer or partial &amp;lt;code&amp;gt;udev&amp;lt;/code&amp;gt; emulation is needed.&lt;br /&gt;
&lt;br /&gt;
===== 6. Kernel ABI Stability and Versioning =====&lt;br /&gt;
* '''Current State''': The Linuxulator mimics a specific Linux kernel version (e.g., 5.15.0 in FreeBSD 14-STABLE), but systemd may expect features from newer kernels or specific behaviors not yet emulated.&lt;br /&gt;
* '''Requirement''': Ensuring the emulated ABI matches a Linux kernel version that systemd supports (e.g., at least 4.4 or later for modern versions).&lt;br /&gt;
&lt;br /&gt;
==== Where to Start: Leveraging SmartOS/Illumos Source ====&lt;br /&gt;
Since both SmartOS (Illumos) and FreeBSD are open source, you can study the LX zone implementation to guide enhancements to the Linuxulator. Here’s a step-by-step approach:&lt;br /&gt;
&lt;br /&gt;
===== 1. Study Illumos LX Zone Source Code =====&lt;br /&gt;
* '''Location''': The relevant code is in the Illumos gate repository, specifically under &amp;lt;code&amp;gt;usr/src/uts/common/brand/lx/&amp;lt;/code&amp;gt; and related directories. Key files include:&lt;br /&gt;
** &amp;lt;code&amp;gt;lx_syscalls.c&amp;lt;/code&amp;gt;: Handles Linux system call emulation.&lt;br /&gt;
** &amp;lt;code&amp;gt;lx_cgroups.c&amp;lt;/code&amp;gt;: Implements cgroups support.&lt;br /&gt;
** &amp;lt;code&amp;gt;lx_namespace.c&amp;lt;/code&amp;gt;: Manages Linux namespace emulation.&lt;br /&gt;
** &amp;lt;code&amp;gt;lx_fanotify.c&amp;lt;/code&amp;gt;: Provides fanotify support.&lt;br /&gt;
* '''Key Insight''': Illumos has extended its kernel to natively support these features for LX zones, rather than just translating them to existing Solaris/Illumos mechanisms. This suggests FreeBSD may need a hybrid approach—either adding native support or building a more comprehensive translation layer.&lt;br /&gt;
&lt;br /&gt;
===== 2. Map Illumos Features to FreeBSD =====&lt;br /&gt;
* '''cgroups''': Start by reviewing &amp;lt;code&amp;gt;lx_cgroups.c&amp;lt;/code&amp;gt;. You could either:&lt;br /&gt;
** Implement a minimal cgroups shim in the Linuxulator that maps to FreeBSD’s &amp;lt;code&amp;gt;rctl&amp;lt;/code&amp;gt; or a new subsystem.&lt;br /&gt;
** Port Illumos’s cgroups implementation directly, adapting it to FreeBSD’s kernel architecture.&lt;br /&gt;
* '''Namespaces''': Look at &amp;lt;code&amp;gt;lx_namespace.c&amp;lt;/code&amp;gt;. FreeBSD jails and VNET provide a foundation, but you’d need to extend the Linuxulator to handle &amp;lt;code&amp;gt;clone()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;unshare()&amp;lt;/code&amp;gt; with namespace flags, possibly by mapping them to jail-like constructs.&lt;br /&gt;
* '''System Calls''': Compare Illumos’s &amp;lt;code&amp;gt;lx_syscalls.c&amp;lt;/code&amp;gt; with FreeBSD’s &amp;lt;code&amp;gt;sys/compat/linux/linux_sysent.c&amp;lt;/code&amp;gt;. Add missing syscalls (e.g., &amp;lt;code&amp;gt;pidfd_open()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;clone3()&amp;lt;/code&amp;gt;) by adapting Illumos’s implementations or writing new ones based on Linux kernel source (e.g., from kernel.org).&lt;br /&gt;
* '''Fanotify''': Use &amp;lt;code&amp;gt;lx_fanotify.c&amp;lt;/code&amp;gt; as a model to build a translation layer from &amp;lt;code&amp;gt;fanotify&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;kqueue&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===== 3. Modify FreeBSD Linuxulator =====&lt;br /&gt;
* '''Source Location''': FreeBSD’s Linuxulator code is in &amp;lt;code&amp;gt;sys/compat/linux/&amp;lt;/code&amp;gt; in the FreeBSD source tree (e.g., &amp;lt;code&amp;gt;/usr/src/sys/compat/linux/&amp;lt;/code&amp;gt; if you’ve cloned the repo).&lt;br /&gt;
* '''Steps''':&lt;br /&gt;
# Extend the syscall table (&amp;lt;code&amp;gt;linux_sysent.c&amp;lt;/code&amp;gt;) with missing calls, using Illumos as a reference.&lt;br /&gt;
# Add new kernel modules or hooks for cgroups and namespaces, potentially under &amp;lt;code&amp;gt;sys/compat/linux/&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Implement fanotify emulation by integrating with &amp;lt;code&amp;gt;kqueue&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Test with a minimal systemd binary (e.g., from a lightweight distro like Alpine) in a chroot environment.&lt;br /&gt;
&lt;br /&gt;
==== 4. Test and Iterate =====&lt;br /&gt;
* '''Setup''': Use a FreeBSD jail with Linuxulator enabled (e.g., via &amp;lt;code&amp;gt;sysctl compat.linux.emulation=1&amp;lt;/code&amp;gt; and a Linux base system in &amp;lt;code&amp;gt;/compat/linux&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/compat/ubuntu&amp;lt;/code&amp;gt;).&lt;br /&gt;
* '''Test Case''': Try running &amp;lt;code&amp;gt;systemd --version&amp;lt;/code&amp;gt; or a simple &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; init process. Debug failures using &amp;lt;code&amp;gt;ktrace&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;truss&amp;lt;/code&amp;gt; to identify missing syscalls or features.&lt;br /&gt;
* '''Reference''': Illumos’s LX zone testing scripts (e.g., in &amp;lt;code&amp;gt;usr/src/test/&amp;lt;/code&amp;gt;) can inspire a test suite.&lt;br /&gt;
&lt;br /&gt;
===== 5. Community and Documentation =====&lt;br /&gt;
* '''FreeBSD Resources''': Check the FreeBSD Wiki’s Linuxulator page and the &amp;lt;code&amp;gt;linux(4)&amp;lt;/code&amp;gt; man page for current capabilities and known gaps.&lt;br /&gt;
* '''Illumos Resources''': The Illumos wiki and SmartOS documentation provide insights into LX zone internals.&lt;br /&gt;
* '''Collaboration''': Engage with the FreeBSD and Illumos communities (e.g., via mailing lists like &amp;lt;code&amp;gt;freebsd-hackers@&amp;lt;/code&amp;gt; or the Illumos IRC) to validate your approach and get feedback.&lt;br /&gt;
&lt;br /&gt;
==== Challenges and Considerations ====&lt;br /&gt;
* '''Philosophical Differences''': FreeBSD avoids adopting Linux-specific features natively (e.g., cgroups) to maintain its distinct identity. You may need to argue for a compatibility-only approach rather than kernel bloat.&lt;br /&gt;
* '''Performance''': Emulating complex features like cgroups and namespaces could introduce overhead, unlike Illumos’s native integration.&lt;br /&gt;
* '''Upstream Acceptance''': Contributions to FreeBSD must align with project goals. Systemd support might face resistance unless justified by broad use cases (e.g., Docker compatibility).&lt;br /&gt;
&lt;br /&gt;
==== Starting Point ====&lt;br /&gt;
Clone the FreeBSD source (&amp;lt;code&amp;gt;git clone https://git.freebsd.org/src.git&amp;lt;/code&amp;gt;) and Illumos gate (&amp;lt;code&amp;gt;git clone https://github.com/illumos/illumos-gate.git&amp;lt;/code&amp;gt;). Begin by prototyping cgroups support—perhaps a minimal shim in &amp;lt;code&amp;gt;sys/compat/linux/&amp;lt;/code&amp;gt;—and test it with a systemd binary. Use Illumos’s &amp;lt;code&amp;gt;lx_cgroups.c&amp;lt;/code&amp;gt; as a blueprint, adapting it to FreeBSD’s kernel structure (e.g., replacing Illumos’s &amp;lt;code&amp;gt;zone_t&amp;lt;/code&amp;gt; with FreeBSD’s &amp;lt;code&amp;gt;struct prison&amp;lt;/code&amp;gt; for jail integration).&lt;br /&gt;
&lt;br /&gt;
This is a significant undertaking, but with both projects being open source, you have the raw materials to bridge the gap. Good luck, and feel free to ask if you need more specific guidance as you dive in!&lt;br /&gt;
&lt;br /&gt;
== [[Podman]] ==&lt;br /&gt;
{{:Podman}}&lt;br /&gt;
&lt;br /&gt;
== [[WikiJS]] ==&lt;br /&gt;
{{:WikiJS}}&lt;br /&gt;
&lt;br /&gt;
== [[TrueNAS]] ==&lt;br /&gt;
{{:TrueNAS}}&lt;br /&gt;
&lt;br /&gt;
== [[XigmaNAS]] ==&lt;br /&gt;
{{:XigmaNAS}}&lt;br /&gt;
&lt;br /&gt;
== 3d printer ==&lt;br /&gt;
{{:3d printer}}&lt;br /&gt;
&lt;br /&gt;
== Formatting ==&lt;br /&gt;
* https://www.mediawiki.org/wiki/Help:Formatting&lt;br /&gt;
== Extension Setup ==&lt;br /&gt;
old MediaWiki needs old PreToClip version&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd &lt;br /&gt;
# git clone  https://gerrit.wikimedia.org/r/mediawiki/extensions/PreToClip&lt;br /&gt;
# cd PreToClip&lt;br /&gt;
PreToClip# git checkout 924a129&lt;br /&gt;
# cd ; mv PreToClip /var/www/html/extensions/&lt;br /&gt;
# tail -n2 /var/www/html/LocalSettings.php&lt;br /&gt;
wfLoadExtension( 'PreToClip' );&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=464</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=464"/>
		<updated>2025-04-01T06:59:27Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* jail HOST setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Setup ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
=== wiki install ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir /wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C /wiki&lt;br /&gt;
cd /wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== startup script ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# environment variables&lt;br /&gt;
. /etc/profile.d/jail-env.sh&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name} on port 3000...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;${DB_TYPE}&amp;quot; DB_FILEPATH=&amp;quot;${DB_FILEPATH}&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
' &amp;gt; /usr/local/etc/rc.d/wikijs&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail setup ===&lt;br /&gt;
environment variables are setup like Docker, so we can use the docker .yml file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
export DB_TYPE=&amp;quot;sqlite&amp;quot;&lt;br /&gt;
export DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot;' &amp;gt; /etc/profile.d/jail-env.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail HOST setup ===&lt;br /&gt;
load environment variables on jail startup &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep start wikijs&lt;br /&gt;
#exec.start = &amp;quot;/bin/sh -c '. /etc/profile.d/jail-env.sh ; /bin/sh /etc/rc'&amp;quot;;&lt;br /&gt;
exec.start = &amp;quot;/bin/sh /etc/rc&amp;quot;; # simpler to have /usrlocal/etc/rc.d/wikijs just source /etc/profile.d/jail-env.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== enable service ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysrc wikijs_enable=YES&lt;br /&gt;
service wikijs start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=463</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=463"/>
		<updated>2025-04-01T06:59:14Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* jail HOST setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Setup ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
=== wiki install ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir /wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C /wiki&lt;br /&gt;
cd /wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== startup script ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# environment variables&lt;br /&gt;
. /etc/profile.d/jail-env.sh&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name} on port 3000...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;${DB_TYPE}&amp;quot; DB_FILEPATH=&amp;quot;${DB_FILEPATH}&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
' &amp;gt; /usr/local/etc/rc.d/wikijs&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail setup ===&lt;br /&gt;
environment variables are setup like Docker, so we can use the docker .yml file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
export DB_TYPE=&amp;quot;sqlite&amp;quot;&lt;br /&gt;
export DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot;' &amp;gt; /etc/profile.d/jail-env.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail HOST setup ===&lt;br /&gt;
load environment variables on jail startup &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep start wikijs&lt;br /&gt;
#exec.start = &amp;quot;/bin/sh -c '. /etc/profile.d/jail-env.sh ; /bin/sh /etc/rc'&amp;quot;;&lt;br /&gt;
exec.start = &amp;quot;/bin/sh /etc/rc&amp;quot;; # simpler to have /usrlocal/etc/rc.d/wikijs just source /etc/profile.d/jail-env.sh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== enable service ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysrc wikijs_enable=YES&lt;br /&gt;
service wikijs start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=462</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=462"/>
		<updated>2025-04-01T06:58:56Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* jail HOST setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Setup ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
=== wiki install ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir /wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C /wiki&lt;br /&gt;
cd /wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== startup script ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# environment variables&lt;br /&gt;
. /etc/profile.d/jail-env.sh&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name} on port 3000...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;${DB_TYPE}&amp;quot; DB_FILEPATH=&amp;quot;${DB_FILEPATH}&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
' &amp;gt; /usr/local/etc/rc.d/wikijs&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail setup ===&lt;br /&gt;
environment variables are setup like Docker, so we can use the docker .yml file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
export DB_TYPE=&amp;quot;sqlite&amp;quot;&lt;br /&gt;
export DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot;' &amp;gt; /etc/profile.d/jail-env.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail HOST setup ===&lt;br /&gt;
load environment variables on jail startup &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep start wikijs&lt;br /&gt;
#exec.start = &amp;quot;/bin/sh -c '. /etc/profile.d/jail-env.sh ; /bin/sh /etc/rc'&amp;quot;;&lt;br /&gt;
exec.start = &amp;quot;/bin/sh /etc/rc&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
simpler to have /usrlocal/etc/rc.d/wikijs just source /etc/profile.d/jail-env.sh&lt;br /&gt;
&lt;br /&gt;
=== enable service ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysrc wikijs_enable=YES&lt;br /&gt;
service wikijs start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=461</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=461"/>
		<updated>2025-04-01T06:57:34Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* startup script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Setup ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
=== wiki install ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir /wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C /wiki&lt;br /&gt;
cd /wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== startup script ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# environment variables&lt;br /&gt;
. /etc/profile.d/jail-env.sh&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name} on port 3000...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;${DB_TYPE}&amp;quot; DB_FILEPATH=&amp;quot;${DB_FILEPATH}&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
' &amp;gt; /usr/local/etc/rc.d/wikijs&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail setup ===&lt;br /&gt;
environment variables are setup like Docker, so we can use the docker .yml file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
export DB_TYPE=&amp;quot;sqlite&amp;quot;&lt;br /&gt;
export DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot;' &amp;gt; /etc/profile.d/jail-env.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail HOST setup ===&lt;br /&gt;
load environment variables on jail startup &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep start wikijs&lt;br /&gt;
exec.start = &amp;quot;/bin/sh -c '. /etc/profile.d/jail-env.sh ; /bin/sh /etc/rc'&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== enable service ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysrc wikijs_enable=YES&lt;br /&gt;
service wikijs start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=460</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=460"/>
		<updated>2025-04-01T06:54:41Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* jail HOST setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Setup ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
=== wiki install ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir /wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C /wiki&lt;br /&gt;
cd /wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== startup script ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name} on port 3000...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;${DB_TYPE}&amp;quot; DB_FILEPATH=&amp;quot;${DB_FILEPATH}&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
' &amp;gt; /usr/local/etc/rc.d/wikijs&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail setup ===&lt;br /&gt;
environment variables are setup like Docker, so we can use the docker .yml file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
export DB_TYPE=&amp;quot;sqlite&amp;quot;&lt;br /&gt;
export DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot;' &amp;gt; /etc/profile.d/jail-env.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail HOST setup ===&lt;br /&gt;
load environment variables on jail startup &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep start wikijs&lt;br /&gt;
exec.start = &amp;quot;/bin/sh -c '. /etc/profile.d/jail-env.sh ; /bin/sh /etc/rc'&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== enable service ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysrc wikijs_enable=YES&lt;br /&gt;
service wikijs start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=459</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=459"/>
		<updated>2025-04-01T06:50:58Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* jail HOST setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Setup ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
=== wiki install ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir /wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C /wiki&lt;br /&gt;
cd /wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== startup script ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name} on port 3000...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;${DB_TYPE}&amp;quot; DB_FILEPATH=&amp;quot;${DB_FILEPATH}&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
' &amp;gt; /usr/local/etc/rc.d/wikijs&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail setup ===&lt;br /&gt;
environment variables are setup like Docker, so we can use the docker .yml file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
export DB_TYPE=&amp;quot;sqlite&amp;quot;&lt;br /&gt;
export DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot;' &amp;gt; /etc/profile.d/jail-env.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail HOST setup ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep start wikijs&lt;br /&gt;
exec.start = &amp;quot;/bin/sh -c '. /etc/profile.d/jail-env.sh ; /bin/sh /etc/rc'&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== enable service ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysrc wikijs_enable=YES&lt;br /&gt;
service wikijs start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=458</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=458"/>
		<updated>2025-04-01T06:00:30Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* startup script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Setup ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
=== wiki install ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir /wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C /wiki&lt;br /&gt;
cd /wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== startup script ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name} on port 3000...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;${DB_TYPE}&amp;quot; DB_FILEPATH=&amp;quot;${DB_FILEPATH}&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
' &amp;gt; /usr/local/etc/rc.d/wikijs&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail setup ===&lt;br /&gt;
environment variables are setup like Docker, so we can use the docker .yml file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
export DB_TYPE=&amp;quot;sqlite&amp;quot;&lt;br /&gt;
export DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot;' &amp;gt; /etc/profile.d/jail-env.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail HOST setup ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep start wikijs&lt;br /&gt;
exec.start          =  &amp;quot;/bin/sh /etc/profile.d/jail-env.sh; /bin/sh /etc/rc&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== enable service ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysrc wikijs_enable=YES&lt;br /&gt;
service wikijs start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=457</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=457"/>
		<updated>2025-04-01T05:58:59Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* jail setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Setup ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
=== wiki install ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir /wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C /wiki&lt;br /&gt;
cd /wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== startup script ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name} on port 3000...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;sqlite&amp;quot; DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
' &amp;gt; /usr/local/etc/rc.d/wikijs&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail setup ===&lt;br /&gt;
environment variables are setup like Docker, so we can use the docker .yml file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
export DB_TYPE=&amp;quot;sqlite&amp;quot;&lt;br /&gt;
export DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot;' &amp;gt; /etc/profile.d/jail-env.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail HOST setup ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep start wikijs&lt;br /&gt;
exec.start          =  &amp;quot;/bin/sh /etc/profile.d/jail-env.sh; /bin/sh /etc/rc&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== enable service ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysrc wikijs_enable=YES&lt;br /&gt;
service wikijs start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=456</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=456"/>
		<updated>2025-04-01T05:57:40Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* jail setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Setup ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
=== wiki install ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir /wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C /wiki&lt;br /&gt;
cd /wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== startup script ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name} on port 3000...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;sqlite&amp;quot; DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
' &amp;gt; /usr/local/etc/rc.d/wikijs&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail setup ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
export DB_TYPE=&amp;quot;sqlite&amp;quot;&lt;br /&gt;
export DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot;' &amp;gt; /etc/profile.d/jail-env.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail HOST setup ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep start wikijs&lt;br /&gt;
exec.start          =  &amp;quot;/bin/sh /etc/profile.d/jail-env.sh; /bin/sh /etc/rc&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== enable service ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysrc wikijs_enable=YES&lt;br /&gt;
service wikijs start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=455</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=455"/>
		<updated>2025-04-01T05:56:49Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Setup ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
=== wiki install ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir /wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C /wiki&lt;br /&gt;
cd /wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== startup script ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name} on port 3000...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;sqlite&amp;quot; DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
' &amp;gt; /usr/local/etc/rc.d/wikijs&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail setup ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
export DB_TYPE=&amp;quot;sqlite&amp;quot;&lt;br /&gt;
export DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot;' &amp;gt; /etc/profile.d/jail-env.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep start wikijs&lt;br /&gt;
exec.start          =  &amp;quot;/bin/sh /etc/profile.d/jail-env.sh; /bin/sh /etc/rc&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== enable service ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysrc wikijs_enable=YES&lt;br /&gt;
service wikijs start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=454</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=454"/>
		<updated>2025-04-01T05:55:16Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* jail setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Install ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir /wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C /wiki&lt;br /&gt;
cd /wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== startup script ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name} on port 3000...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;sqlite&amp;quot; DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
' &amp;gt; /usr/local/etc/rc.d/wikijs&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== enable service ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysrc wikijs_enable=YES&lt;br /&gt;
service wikijs start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail setup ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
export DB_TYPE=&amp;quot;sqlite&amp;quot;&lt;br /&gt;
export DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot;' &amp;gt; /etc/profile.d/jail-env.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep start wikijs&lt;br /&gt;
exec.start          =  &amp;quot;/bin/sh /etc/profile.d/jail-env.sh; /bin/sh /etc/rc&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=453</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=453"/>
		<updated>2025-04-01T05:55:08Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* jail setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Install ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir /wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C /wiki&lt;br /&gt;
cd /wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== startup script ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name} on port 3000...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;sqlite&amp;quot; DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
' &amp;gt; /usr/local/etc/rc.d/wikijs&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== enable service ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysrc wikijs_enable=YES&lt;br /&gt;
service wikijs start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail setup ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
export DB_TYPE=&amp;quot;sqlite&amp;quot;&lt;br /&gt;
export DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot;' &amp;gt; /etc/profile.d/jail-env.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep start wikijs&lt;br /&gt;
exec.start          =  &amp;quot;/bin/sh /etc/profile.d/jail-env.sh; /bin/sh /etc/rc&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=452</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=452"/>
		<updated>2025-04-01T05:49:25Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* jail setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Install ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir /wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C /wiki&lt;br /&gt;
cd /wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== startup script ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name} on port 3000...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;sqlite&amp;quot; DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
' &amp;gt; /usr/local/etc/rc.d/wikijs&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== enable service ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysrc wikijs_enable=YES&lt;br /&gt;
service wikijs start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail setup ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
export DB_TYPE=&amp;quot;sqlite&amp;quot;&lt;br /&gt;
export DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot;' &amp;gt; /etc/profile.d/wikijs.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep start wikijs&lt;br /&gt;
exec.start          =  &amp;quot;env DB_TYPE='sqlite' DB_FILEPATH='wiki.sqlite' /bin/sh /etc/rc&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=451</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=451"/>
		<updated>2025-04-01T05:48:51Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* jail setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Install ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir /wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C /wiki&lt;br /&gt;
cd /wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== startup script ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name} on port 3000...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;sqlite&amp;quot; DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
' &amp;gt; /usr/local/etc/rc.d/wikijs&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== enable service ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysrc wikijs_enable=YES&lt;br /&gt;
service wikijs start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail setup ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
export DB_TYPE=&amp;quot;sqlite&amp;quot;&lt;br /&gt;
export DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot;&lt;br /&gt;
' &amp;gt; /etc/profile.d/wikijs.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep start wikijs&lt;br /&gt;
exec.start          =  &amp;quot;env DB_TYPE='sqlite' DB_FILEPATH='wiki.sqlite' /bin/sh /etc/rc&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=450</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=450"/>
		<updated>2025-04-01T05:48:08Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* startup script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Install ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir /wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C /wiki&lt;br /&gt;
cd /wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== startup script ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name} on port 3000...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;sqlite&amp;quot; DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
' &amp;gt; /usr/local/etc/rc.d/wikijs&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== enable service ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysrc wikijs_enable=YES&lt;br /&gt;
service wikijs start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jail setup ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep start wikijs&lt;br /&gt;
exec.start          =  &amp;quot;env DB_TYPE='sqlite' DB_FILEPATH='wiki.sqlite' /bin/sh /etc/rc&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=449</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=449"/>
		<updated>2025-04-01T05:47:27Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* WikiJS Install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Install ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir /wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C /wiki&lt;br /&gt;
cd /wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== startup script ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name} on port 3000...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;sqlite&amp;quot; DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
' &amp;gt; /usr/local/etc/rc.d/wikijs&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysrc wikijs_enable=YES&lt;br /&gt;
service wikijs start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep start wikijs&lt;br /&gt;
exec.start          =  &amp;quot;env DB_TYPE='sqlite' DB_FILEPATH='wiki.sqlite' /bin/sh /etc/rc&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=448</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=448"/>
		<updated>2025-04-01T05:43:56Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* WikiJS Install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Install ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir /wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C /wiki&lt;br /&gt;
cd /wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name} on port 3000...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;sqlite&amp;quot; DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
' &amp;gt; /usr/local/etc/rc.d/wikijs&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysrc wikijs_enable=YES&lt;br /&gt;
service wikijs start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep start wikijs&lt;br /&gt;
exec.start          =  &amp;quot;env DB_TYPE='sqlite' DB_FILEPATH='wiki.sqlite' /bin/sh /etc/rc&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=447</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=447"/>
		<updated>2025-04-01T05:43:43Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* WikiJS Install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Install ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir /wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C /wiki&lt;br /&gt;
cd /wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&lt;br /&gt;
vi /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo '#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name} on port 3000...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;sqlite&amp;quot; DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
' &amp;gt; /usr/local/etc/rc.d/wikijs&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysrc wikijs_enable=YES&lt;br /&gt;
service wikijs start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep start wikijs&lt;br /&gt;
exec.start          =  &amp;quot;env DB_TYPE='sqlite' DB_FILEPATH='wiki.sqlite' /bin/sh /etc/rc&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=446</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=446"/>
		<updated>2025-04-01T05:37:54Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* WikiJS Install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Install ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir /wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C /wiki&lt;br /&gt;
cd /wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&lt;br /&gt;
vi /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name} on port 3000...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;sqlite&amp;quot; DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysrc wikijs_enable=YES&lt;br /&gt;
service wikijs start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=445</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=445"/>
		<updated>2025-04-01T04:20:32Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* WikiJS Install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Install ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir /wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C /wiki&lt;br /&gt;
cd /wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&lt;br /&gt;
vi /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name} on port 3000...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    export DB_TYPE=&amp;quot;sqlite&amp;quot;&lt;br /&gt;
    export DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot;&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;sqlite&amp;quot; DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysrc wikijs_enable=YES&lt;br /&gt;
service wikijs start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=444</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=444"/>
		<updated>2025-04-01T04:19:36Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* WikiJS Install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Install ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir /wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C /wiki&lt;br /&gt;
cd /wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&lt;br /&gt;
vi /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name}...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    export DB_TYPE=&amp;quot;sqlite&amp;quot;&lt;br /&gt;
    export DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot;&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;sqlite&amp;quot; DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysrc wikijs_enable=YES&lt;br /&gt;
service wikijs start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=443</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=443"/>
		<updated>2025-04-01T04:17:15Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* WikiJS Install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Install ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C ./wiki&lt;br /&gt;
cd ./wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&lt;br /&gt;
vi /usr/local/etc/rc.d/wikijs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name}...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    export DB_TYPE=&amp;quot;sqlite&amp;quot;&lt;br /&gt;
    export DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot;&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;sqlite&amp;quot; DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sysrc wikijs_enable=YES&lt;br /&gt;
service wikijs start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=442</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=442"/>
		<updated>2025-04-01T04:16:19Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* WikiJS Install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Install ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C ./wiki&lt;br /&gt;
cd ./wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# PROVIDE: wikijs&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable wikijs:&lt;br /&gt;
# wikijs_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# wikijs_enable (bool): Set to &amp;quot;NO&amp;quot; by default.&lt;br /&gt;
#                       Set it to &amp;quot;YES&amp;quot; to enable Wiki.js&lt;br /&gt;
# wikijs_user (str):    User to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_group (str):   Group to run Wiki.js as&lt;br /&gt;
#                       Default: &amp;quot;www&amp;quot;&lt;br /&gt;
# wikijs_dir (str):     Directory where Wiki.js is installed&lt;br /&gt;
#                       Default: &amp;quot;/wiki&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;wikijs&amp;quot;&lt;br /&gt;
rcvar=wikijs_enable&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
&lt;br /&gt;
: ${wikijs_enable:=&amp;quot;NO&amp;quot;}&lt;br /&gt;
: ${wikijs_user:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_group:=&amp;quot;www&amp;quot;}&lt;br /&gt;
: ${wikijs_dir:=&amp;quot;/wiki&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/local/bin/node&amp;quot;&lt;br /&gt;
command_args=&amp;quot;server&amp;quot;&lt;br /&gt;
procname=&amp;quot;node&amp;quot;&lt;br /&gt;
start_cmd=&amp;quot;${name}_start&amp;quot;&lt;br /&gt;
stop_cmd=&amp;quot;${name}_stop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wikijs_start() {&lt;br /&gt;
    echo &amp;quot;Starting ${name}...&amp;quot;&lt;br /&gt;
    cd ${wikijs_dir} || exit 1&lt;br /&gt;
    export DB_TYPE=&amp;quot;sqlite&amp;quot;&lt;br /&gt;
    export DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot;&lt;br /&gt;
    /usr/sbin/daemon -P ${pidfile} -r -S -t ${name} -T ${name} -u ${wikijs_user} \&lt;br /&gt;
        env DB_TYPE=&amp;quot;sqlite&amp;quot; DB_FILEPATH=&amp;quot;wiki.sqlite&amp;quot; ${command} ${command_args}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
wikijs_stop() {&lt;br /&gt;
    if [ -f &amp;quot;${pidfile}&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Stopping ${name}...&amp;quot;&lt;br /&gt;
        pkill -F ${pidfile} 2&amp;gt;/dev/null&lt;br /&gt;
        rm -f ${pidfile}&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;${name} is not running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=441</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=441"/>
		<updated>2025-04-01T04:15:40Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* WikiJS Install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Install ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -i node npm sqlite3&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&lt;br /&gt;
mkdir wiki&lt;br /&gt;
tar xzf wiki-js.tar.gz -C ./wiki&lt;br /&gt;
cd ./wiki&lt;br /&gt;
&lt;br /&gt;
fetch https://github.com/requarks/wiki/raw/refs/heads/main/dev/build/config.yml&lt;br /&gt;
&lt;br /&gt;
npm rebuild sqlite3&lt;br /&gt;
&lt;br /&gt;
DB_TYPE=sqlite DB_FILELPATH=wiki.sqlite node server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=440</id>
		<title>WikiJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=WikiJS&amp;diff=440"/>
		<updated>2025-04-01T03:17:17Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: Created page with &amp;quot;== WikiJS Install == https://docs.requarks.io/install/macos &amp;lt;pre&amp;gt; fetch wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz &amp;lt;/pre&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WikiJS Install ==&lt;br /&gt;
https://docs.requarks.io/install/macos&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=Main_Page&amp;diff=439</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=Main_Page&amp;diff=439"/>
		<updated>2025-04-01T03:16:15Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* Podman */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Movies ==&lt;br /&gt;
* Joy Luck Club&lt;br /&gt;
* Motherless Brooklyn&lt;br /&gt;
* Dune&lt;br /&gt;
* The Big Short&lt;br /&gt;
* Andre The Giant 2018&lt;br /&gt;
* Joker&lt;br /&gt;
* &amp;lt;s&amp;gt;Spider-Man&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;The Social Dilemma&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;King Richard (Will Smith)👍🏽&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;Shang-Chi&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;Venom&amp;lt;/s&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;javascript:window.location=document.querySelector('#player iframe').src;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;javascript:window.location=document.querySelector('#player video').src;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Shows == &lt;br /&gt;
* Marvelous Mrs Mazel&lt;br /&gt;
* Watchmen (TV series)&lt;br /&gt;
* Picard&lt;br /&gt;
* &amp;lt;s&amp;gt;Cocaine Cowboys Miami&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Food ==&lt;br /&gt;
&lt;br /&gt;
* Carnaval Brazilian BBQ&lt;br /&gt;
* Feast&lt;br /&gt;
* Across The Board&lt;br /&gt;
* [https://www.tripadvisor.ca/Restaurant_Review-g2648278-d3171065-Reviews-Oma_s_Schnitzel_Stube-St_Pierre_Jolys_Manitoba.html German buffet in St. Malo] Closed/New (bad) management?&lt;br /&gt;
* &amp;lt;s&amp;gt;smash burger&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;Turkey Tacos&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;[https://bluehazebbq.ca BBQ Beausejour]&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;tallest Poppy chicken&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Korean BBQ&lt;br /&gt;
* home made chicken shawarma&lt;br /&gt;
&lt;br /&gt;
* https://www.winnipegrestaurantdeals.com/restaurants&lt;br /&gt;
&lt;br /&gt;
== Travel ==&lt;br /&gt;
* Pembina Valley&lt;br /&gt;
* Banff&lt;br /&gt;
* West Edmonton Mall&lt;br /&gt;
* bunns creek trail (on way to half moon)&lt;br /&gt;
* Bryce Canyon Utah&lt;br /&gt;
&lt;br /&gt;
== [[Disney World]]== &lt;br /&gt;
{{:Disney World}}&lt;br /&gt;
== [[Costa Rica]]==&lt;br /&gt;
{{:Costa Rica}}&lt;br /&gt;
&lt;br /&gt;
== [[UNIX]]==&lt;br /&gt;
{{:UNIX}}&lt;br /&gt;
&lt;br /&gt;
== Games ==&lt;br /&gt;
* X68000: Puzzle: [https://www.youtube.com/watch?v=T3l-6aQ28Ds Deflektor]&lt;br /&gt;
* SNES: Puzzle: Bust-A-Move, The Lost Vikings&lt;br /&gt;
* SNES: VS: Super Bomberman, Tetris Attack&lt;br /&gt;
* SNES: Co-Op: Contra III, Wild Guns&lt;br /&gt;
* SNES: Action RPG: Front Mission Gun Hazard&lt;br /&gt;
* MAME: puzzle: Money Puzzle Exchanger&lt;br /&gt;
* NEOGEO: Co-Op: Alpha Mission 2, Mslug, robo army, Shock Troopers&lt;br /&gt;
* NEOGEO: VS: League Bowling, WindJammer, The Last Blade, Garou&lt;br /&gt;
== emus ==&lt;br /&gt;
https://www.youtube.com/watch?app=desktop&amp;amp;v=UGtU5wRWuhc&lt;br /&gt;
&lt;br /&gt;
* OpenEmu: https://www.youtube.com/watch?v=RxhbhM8BA68&amp;amp;t=0s&lt;br /&gt;
* PSP (PPSSPP ARM): https://www.youtube.com/watch?v=WYfnSCgRBdA&amp;amp;t=0s&lt;br /&gt;
* GC/Wii (Dolphin ARM): https://www.youtube.com/watch?v=lwYKk-_HoPg&amp;amp;t=0s&lt;br /&gt;
* PS2 (PCSX2): https://www.youtube.com/watch?v=veWRt0f7avk&amp;amp;t=0s&lt;br /&gt;
* Dreamcast (Redream): https://www.youtube.com/watch?v=6x_vLg2m7T4&amp;amp;t=0s&lt;br /&gt;
* 3DS (Citra ARM): https://www.youtube.com/watch?v=VpbDl0v_WCs&amp;amp;t=0s&lt;br /&gt;
* PSX (DuckStation): hhttps://www.youtube.com/watch?v=MNofg_jkRnA&amp;amp;t=0s&lt;br /&gt;
* Xbox (Xemu): https://www.youtube.com/watch?v=PCvQ_9M1nlI&amp;amp;t=0s&lt;br /&gt;
* Mac Gaming: https://www.applegamingwiki.com/wiki/PlayStation_2&lt;br /&gt;
==== mega thread ====&lt;br /&gt;
* roms: https://www.reddit.com/r/Roms/comments/gar3bc/roms_megathread_30_ybin_edition/&lt;br /&gt;
* emu files: https://emulation.gametechwiki.com/index.php/Emulator_files#PlayStation_2&lt;br /&gt;
&lt;br /&gt;
==Bike==&lt;br /&gt;
* tighten seat&lt;br /&gt;
* buy helmet&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* &amp;lt;s&amp;gt;Red pocket&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;Plumber&amp;lt;/s&amp;gt;&lt;br /&gt;
== Self Hosting==&lt;br /&gt;
=== Fossil ===&lt;br /&gt;
https://dev.to/schollz/self-hosting-with-fossil-an-alternative-to-git-33bk&lt;br /&gt;
=== certbot ===&lt;br /&gt;
Add new cert:&lt;br /&gt;
&amp;lt;pre&amp;gt;# sudo certbot certonly -d wiki.ho.stna.me&lt;br /&gt;
Saving debug log to /var/log/letsencrypt/letsencrypt.log&lt;br /&gt;
&lt;br /&gt;
How would you like to authenticate with the ACME CA?&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
1: Nginx Web Server plugin (nginx)&lt;br /&gt;
2: Spin up a temporary webserver (standalone)&lt;br /&gt;
3: Place files in webroot directory (webroot)&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Select the appropriate number [1-3] then [enter] (press 'c' to cancel): 1&lt;br /&gt;
Plugins selected: Authenticator nginx, Installer None&lt;br /&gt;
Obtaining a new certificate&lt;br /&gt;
Performing the following challenges:&lt;br /&gt;
http-01 challenge for wiki.ho.stna.me&lt;br /&gt;
Using default addresses 80 and [::]:80 ipv6only=on for authentication.&lt;br /&gt;
Waiting for verification...&lt;br /&gt;
Cleaning up challenges&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== nginx ===&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
=== Archiver / PeaZip ===&lt;br /&gt;
==== File Manager Integration (Context Menus) ====&lt;br /&gt;
https://peazip.github.io/peazip-linux.html&lt;br /&gt;
https://wiki.archlinux.org/title/GNOME/Files#Custom_scripts&lt;br /&gt;
&lt;br /&gt;
https://github.com/peazip/PeaZip/releases/download/9.5.0/peazip_portable-9.5.0.LINUX.GTK2.x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
From the portable download, find scripts in the folder: res/share/batch/freedesktop_integration/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Custom scripts&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Scripts placed in ~/.local/share/nautilus/scripts can be run from the right click context menu of a file.&lt;br /&gt;
&lt;br /&gt;
The context menu can also be organized into subfolders, e.g. ~/.local/share/nautilus/scripts/images and ~/.local/share/nautilus/scripts/music.&lt;br /&gt;
&lt;br /&gt;
== SmartOS ==&lt;br /&gt;
=== Upgrade ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SmartOS (build: 20250220T074131Z)&lt;br /&gt;
[root@cloud ~]# piadm avail&lt;br /&gt;
20250306T000316Z&lt;br /&gt;
[root@cloud ~]# piadm -v install 20250306T000316Z&lt;br /&gt;
[root@cloud ~]# piadm list&lt;br /&gt;
PI STAMP               BOOTABLE FILESYSTEM            BOOT IMAGE NOW  NEXT&lt;br /&gt;
20250220T074131Z       zones/boot                     next       yes  yes&lt;br /&gt;
20250306T000316Z       zones/boot                     available  no   no&lt;br /&gt;
[root@cloud ~]# piadm -v activate 20250306T000316Z&lt;br /&gt;
[root@cloud ~]# piadm list&lt;br /&gt;
PI STAMP               BOOTABLE FILESYSTEM            BOOT IMAGE NOW  NEXT&lt;br /&gt;
20250220T074131Z       zones/boot                     available  yes  no&lt;br /&gt;
20250306T000316Z       zones/boot                     next       no   yes&lt;br /&gt;
[root@cloud ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Migrating ===&lt;br /&gt;
https://docs.smartos.org/managing-instances-with-vmamd/#migrate-an-instance-to-a-different-compute-node&lt;br /&gt;
&lt;br /&gt;
== FreeBSD ==&lt;br /&gt;
=== CUDA ===&lt;br /&gt;
https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;amp;target_arch=x86_64&amp;amp;Distribution=Rocky&amp;amp;target_version=9&amp;amp;target_type=rpm_local&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install nvidia-driver  &lt;br /&gt;
kldload nvidia&lt;br /&gt;
kldload nvidia-modeset &lt;br /&gt;
 # sysrc kld_list+=nvidia-modeset &lt;br /&gt;
kldload linux64&lt;br /&gt;
pkg install linux_base-rl9  &lt;br /&gt;
pkg install linux-rl9-libxml2&lt;br /&gt;
pkg install gcc #gcc13&lt;br /&gt;
&lt;br /&gt;
fetch https://developer.download.nvidia.com/compute/cuda/12.5.1/local_installers/cuda_12.5.1_555.42.06_linux.run&lt;br /&gt;
./cuda_12.5.1_555.42.06_linux.run&lt;br /&gt;
&lt;br /&gt;
fetch https://developer.download.nvidia.com/compute/cuda/12.5.1/local_installers/cuda-repo-rhel9-12-5-local-12.5.1_555.42.06-1.x86_64.rpm&lt;br /&gt;
&lt;br /&gt;
rpm2cpio cuda-repo-rhel9-12-5-local-12.5.1_555.42.06-1.x86_64.rpm &amp;gt; cuda.cpio&lt;br /&gt;
cpio -idmv &amp;lt; cuda.cpio&lt;br /&gt;
&lt;br /&gt;
var/cuda-repo-rhel9-12-5-local# rpm2cpio nvidia-driver-cuda-libs-555.42.06-1.el9.x86_64.rpm &amp;gt; nvidia-driver-cuda-libs-555.42.06-1.el9.x86_64.cpio&lt;br /&gt;
cpio -idmv &amp;lt; nvidia-driver-cuda-libs-555.42.06-1.el9.x86_64.cpio&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
brandelf -t Linux &amp;lt;path_to_CUDA_installer&amp;gt;&lt;br /&gt;
./cuda_&amp;lt;version&amp;gt;_linux.run&lt;br /&gt;
&lt;br /&gt;
LD_LIBRARY_PATH=/usr/lib64 ffmpeg -i TheBear-S03E01.ts -c:v h264_nvenc -preset slow -b:v 5000k -maxrate 5000k -bufsize 10000k -pix_fmt yuv420p -c:a aac output.mp4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Containers ===&lt;br /&gt;
containerd / runj&lt;br /&gt;
&lt;br /&gt;
https://productionwithscissors.run/2022/09/04/containerd-linux-on-freebsd/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://catalog.ngc.nvidia.com/orgs/nvidia/containers/cuda/tags&lt;br /&gt;
nvcr.io/nvidia/cuda:12.5.1-cudnn-devel-ubuntu20.04&lt;br /&gt;
&lt;br /&gt;
https://github.com/canonical/microk8s/issues/1239&lt;br /&gt;
#ctr run --rm --gpus 0 docker.io/nvidia/cuda:9.0-base nvidia-smi nvidia-smi&lt;br /&gt;
&lt;br /&gt;
ctr image pull --platform=linux nvcr.io/nvidia/cuda:12.5.1-cudnn-devel-ubuntu20.04&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== VMs ===&lt;br /&gt;
==== qemu / quickemu ====&lt;br /&gt;
https://github.com/quickemu-project/quickemu?tab=readme-ov-file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install qemu-nox11 coreutils socat usbutils swtpm zsync samba416 qemu-nox11 edk2-qemu-x64&lt;br /&gt;
git clone https://github.com/quickemu-project/quickemu&lt;br /&gt;
cd quickemu&lt;br /&gt;
./quickget alpine v3.11&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cat freebsd.patch&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/quickemu b/quickemu&lt;br /&gt;
index f2bd9df..2ad1933 100755&lt;br /&gt;
--- a/quickemu&lt;br /&gt;
+++ b/quickemu&lt;br /&gt;
@@ -652,6 +652,8 @@ function configure_bios() {&lt;br /&gt;
             if command -v brew &amp;amp;&amp;gt;/dev/null; then&lt;br /&gt;
                 SHARE_PATH=&amp;quot;$(brew --prefix qemu)/share&amp;quot;&lt;br /&gt;
             fi&lt;br /&gt;
+       elif [ &amp;quot;${OS_KERNEL}&amp;quot; == &amp;quot;FreeBSD&amp;quot; ]; then&lt;br /&gt;
+               SHARE_PATH=/usr/local/share&lt;br /&gt;
         fi&lt;br /&gt;
 &lt;br /&gt;
         # https://bugzilla.redhat.com/show_bug.cgi?id=1929357#c5&lt;br /&gt;
@@ -675,7 +677,9 @@ function configure_bios() {&lt;br /&gt;
                         &amp;quot;${SHARE_PATH}/edk2-ovmf/OVMF_CODE.fd&amp;quot;,&amp;quot;${SHARE_PATH}/edk2-ovmf/OVMF_VARS.fd&amp;quot; \&lt;br /&gt;
                         &amp;quot;${SHARE_PATH}/qemu/ovmf-x86_64-4m-code.bin&amp;quot;,&amp;quot;${SHARE_PATH}/qemu/ovmf-x86_64-4m-vars.bin&amp;quot; \&lt;br /&gt;
                         &amp;quot;${SHARE_PATH}/qemu/edk2-x86_64-code.fd&amp;quot;,&amp;quot;${SHARE_PATH}/qemu/edk2-x86_64-code.fd&amp;quot; \&lt;br /&gt;
-                        &amp;quot;${SHARE_PATH}/edk2-ovmf/x64/OVMF_CODE.fd&amp;quot;,&amp;quot;${SHARE_PATH}/edk2-ovmf/x64/OVMF_VARS.fd&amp;quot;&lt;br /&gt;
+                        &amp;quot;${SHARE_PATH}/edk2-ovmf/x64/OVMF_CODE.fd&amp;quot;,&amp;quot;${SHARE_PATH}/edk2-ov&lt;br /&gt;
mf/x64/OVMF_VARS.fd&amp;quot; \&lt;br /&gt;
+                        &amp;quot;${SHARE_PATH}/edk2-qemu/QEMU_UEFI_CODE-x86_64.fd&amp;quot;,&amp;quot;${SHARE_PATH}&lt;br /&gt;
/edk2-qemu/QEMU_UEFI_VARS-x86_64.fd&amp;quot;&lt;br /&gt;
+&lt;br /&gt;
                     );;&lt;br /&gt;
             esac&lt;br /&gt;
             # Attempt each EFI_CODE file one by one, selecting the corresponding code and&lt;br /&gt;
 vars&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Linuxulator ===&lt;br /&gt;
Yes, I’m familiar with both '''SmartOS LX zones''' and '''FreeBSD’s Linuxulator'''. These are two different approaches to providing Linux binary compatibility on non-Linux systems, and their differing abilities to run '''systemd''' highlight some key technical distinctions. Let’s break this down and address what’s missing in FreeBSD’s Linuxulator to support systemd, as well as how you might approach enabling it by leveraging SmartOS/Illumos source code.&lt;br /&gt;
===== SmartOS LX Zones and FreeBSD Linuxulator =====&lt;br /&gt;
&lt;br /&gt;
* '''SmartOS LX Zones''': LX zones are a feature of Illumos-based systems (like SmartOS) that allow running Linux binaries in a lightweight containerized environment called a &amp;quot;branded zone.&amp;quot; These zones provide a near-native Linux kernel ABI (Application Binary Interface) by translating Linux system calls into Illumos equivalents. LX zones were originally developed by Joyent to support running Linux applications, including Docker, on SmartOS. Over time, they’ve been extended to support more complex Linux-specific features, including systemd, which is the default init system for many modern Linux distributions.&lt;br /&gt;
&lt;br /&gt;
* '''FreeBSD Linuxulator''': The Linuxulator is FreeBSD’s Linux binary compatibility layer. It allows FreeBSD to run unmodified Linux ELF binaries by translating Linux system calls to FreeBSD equivalents. Unlike LX zones, it’s not a containerization technology but a kernel-level compatibility layer that operates alongside native FreeBSD processes. It currently supports a subset of Linux kernel functionality, with compatibility levels pegged at Linux 3.2.0 in FreeBSD 12-STABLE and Linux 5.15.0 in FreeBSD 14-STABLE (as of recent documentation). However, it lacks support for several Linux-specific features required by systemd.&lt;br /&gt;
&lt;br /&gt;
==== Why Systemd Works in LX Zones but Not Linuxulator ====&lt;br /&gt;
Systemd is a complex init system that relies heavily on Linux-specific kernel features, such as:&lt;br /&gt;
* '''cgroups (Control Groups)''': Used for resource management and process grouping.&lt;br /&gt;
* '''Namespaces''': Particularly PID, mount, and user namespaces, which provide isolation and scoping for processes.&lt;br /&gt;
* '''Fanotify''': A file system notification system used by systemd for monitoring file events.&lt;br /&gt;
* '''Specific System Calls''': Systemd depends on calls like &amp;lt;code&amp;gt;pidfd_open()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;clone3()&amp;lt;/code&amp;gt;, and others introduced in newer Linux kernels.&lt;br /&gt;
* '''udev Integration''': Systemd integrates tightly with udev, which relies on Linux-specific device management mechanisms.&lt;br /&gt;
&lt;br /&gt;
'''SmartOS LX Zones''' have evolved to support these features. The Illumos kernel, with contributions from Joyent and the SmartOS community, has implemented enough of the Linux kernel ABI—including cgroups, namespaces, and additional system calls—to allow systemd to function within an LX-branded zone. This was driven by the need to support Docker and other modern Linux workloads, which often assume systemd is present.&lt;br /&gt;
&lt;br /&gt;
'''FreeBSD Linuxulator''', on the other hand, does not yet support these features fully. While it can run many Linux binaries (e.g., statically linked programs or those with simpler dependencies), its compatibility layer is incomplete for systemd’s requirements. The Linuxulator’s development has historically focused on supporting popular applications (like Steam or proprietary tools) rather than replicating the full Linux kernel feature set, and systemd support has not been a priority.&lt;br /&gt;
&lt;br /&gt;
==== What’s Missing in FreeBSD Linuxulator? ====&lt;br /&gt;
To run systemd in FreeBSD’s Linuxulator, the following gaps need to be addressed:&lt;br /&gt;
&lt;br /&gt;
===== 1. cgroups Support =====&lt;br /&gt;
* '''Current State''': FreeBSD has no native cgroups implementation. It uses its own resource control mechanisms (e.g., &amp;lt;code&amp;gt;rctl&amp;lt;/code&amp;gt; for resource limits and jails for isolation), which are philosophically and technically different from Linux’s cgroups.&lt;br /&gt;
* '''Requirement''': Systemd expects cgroups v1 or v2 for process grouping, resource limiting, and service management. Without this, systemd cannot initialize properly.&lt;br /&gt;
&lt;br /&gt;
===== 2. Namespaces =====&lt;br /&gt;
* '''Current State''': FreeBSD supports some namespace-like features via jails and VNET (virtual networking), but these are not equivalent to Linux’s PID, mount, or user namespaces. The Linuxulator does not translate Linux namespace-related system calls (e.g., &amp;lt;code&amp;gt;unshare()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;clone()&amp;lt;/code&amp;gt; with namespace flags) into FreeBSD equivalents.&lt;br /&gt;
* '''Requirement''': Systemd uses namespaces for service isolation and scoping, particularly PID namespaces to manage process trees.&lt;br /&gt;
&lt;br /&gt;
===== 3. System Call Gaps =====&lt;br /&gt;
* '''Current State''': The Linuxulator implements a subset of Linux system calls (see &amp;lt;code&amp;gt;sys/compat/linux/linux_sysent.c&amp;lt;/code&amp;gt; in the FreeBSD source). Missing calls include newer ones like &amp;lt;code&amp;gt;pidfd_open()&amp;lt;/code&amp;gt; (Linux 5.3+), &amp;lt;code&amp;gt;clone3()&amp;lt;/code&amp;gt; (Linux 5.3+), and others that systemd may use.&lt;br /&gt;
* '''Requirement''': Full compatibility with the system calls systemd depends on, which may require extending the Linuxulator’s syscall table.&lt;br /&gt;
&lt;br /&gt;
===== 4. Fanotify and File System Events =====&lt;br /&gt;
* '''Current State''': FreeBSD has &amp;lt;code&amp;gt;kqueue&amp;lt;/code&amp;gt; for event notification, but it’s not compatible with Linux’s &amp;lt;code&amp;gt;fanotify&amp;lt;/code&amp;gt; API, which systemd uses for file system monitoring.&lt;br /&gt;
* '''Requirement''': An emulation layer to map &amp;lt;code&amp;gt;fanotify&amp;lt;/code&amp;gt; calls to &amp;lt;code&amp;gt;kqueue&amp;lt;/code&amp;gt; or a custom implementation.&lt;br /&gt;
&lt;br /&gt;
===== 5. udev and Device Management =====&lt;br /&gt;
* '''Current State''': FreeBSD uses &amp;lt;code&amp;gt;devd&amp;lt;/code&amp;gt; for device management, which differs significantly from Linux’s &amp;lt;code&amp;gt;udev&amp;lt;/code&amp;gt;. The Linuxulator does not fully emulate &amp;lt;code&amp;gt;udev&amp;lt;/code&amp;gt;’s behavior or its integration with the kernel.&lt;br /&gt;
* '''Requirement''': Systemd expects &amp;lt;code&amp;gt;udev&amp;lt;/code&amp;gt; to manage device events, so a compatibility layer or partial &amp;lt;code&amp;gt;udev&amp;lt;/code&amp;gt; emulation is needed.&lt;br /&gt;
&lt;br /&gt;
===== 6. Kernel ABI Stability and Versioning =====&lt;br /&gt;
* '''Current State''': The Linuxulator mimics a specific Linux kernel version (e.g., 5.15.0 in FreeBSD 14-STABLE), but systemd may expect features from newer kernels or specific behaviors not yet emulated.&lt;br /&gt;
* '''Requirement''': Ensuring the emulated ABI matches a Linux kernel version that systemd supports (e.g., at least 4.4 or later for modern versions).&lt;br /&gt;
&lt;br /&gt;
==== Where to Start: Leveraging SmartOS/Illumos Source ====&lt;br /&gt;
Since both SmartOS (Illumos) and FreeBSD are open source, you can study the LX zone implementation to guide enhancements to the Linuxulator. Here’s a step-by-step approach:&lt;br /&gt;
&lt;br /&gt;
===== 1. Study Illumos LX Zone Source Code =====&lt;br /&gt;
* '''Location''': The relevant code is in the Illumos gate repository, specifically under &amp;lt;code&amp;gt;usr/src/uts/common/brand/lx/&amp;lt;/code&amp;gt; and related directories. Key files include:&lt;br /&gt;
** &amp;lt;code&amp;gt;lx_syscalls.c&amp;lt;/code&amp;gt;: Handles Linux system call emulation.&lt;br /&gt;
** &amp;lt;code&amp;gt;lx_cgroups.c&amp;lt;/code&amp;gt;: Implements cgroups support.&lt;br /&gt;
** &amp;lt;code&amp;gt;lx_namespace.c&amp;lt;/code&amp;gt;: Manages Linux namespace emulation.&lt;br /&gt;
** &amp;lt;code&amp;gt;lx_fanotify.c&amp;lt;/code&amp;gt;: Provides fanotify support.&lt;br /&gt;
* '''Key Insight''': Illumos has extended its kernel to natively support these features for LX zones, rather than just translating them to existing Solaris/Illumos mechanisms. This suggests FreeBSD may need a hybrid approach—either adding native support or building a more comprehensive translation layer.&lt;br /&gt;
&lt;br /&gt;
===== 2. Map Illumos Features to FreeBSD =====&lt;br /&gt;
* '''cgroups''': Start by reviewing &amp;lt;code&amp;gt;lx_cgroups.c&amp;lt;/code&amp;gt;. You could either:&lt;br /&gt;
** Implement a minimal cgroups shim in the Linuxulator that maps to FreeBSD’s &amp;lt;code&amp;gt;rctl&amp;lt;/code&amp;gt; or a new subsystem.&lt;br /&gt;
** Port Illumos’s cgroups implementation directly, adapting it to FreeBSD’s kernel architecture.&lt;br /&gt;
* '''Namespaces''': Look at &amp;lt;code&amp;gt;lx_namespace.c&amp;lt;/code&amp;gt;. FreeBSD jails and VNET provide a foundation, but you’d need to extend the Linuxulator to handle &amp;lt;code&amp;gt;clone()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;unshare()&amp;lt;/code&amp;gt; with namespace flags, possibly by mapping them to jail-like constructs.&lt;br /&gt;
* '''System Calls''': Compare Illumos’s &amp;lt;code&amp;gt;lx_syscalls.c&amp;lt;/code&amp;gt; with FreeBSD’s &amp;lt;code&amp;gt;sys/compat/linux/linux_sysent.c&amp;lt;/code&amp;gt;. Add missing syscalls (e.g., &amp;lt;code&amp;gt;pidfd_open()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;clone3()&amp;lt;/code&amp;gt;) by adapting Illumos’s implementations or writing new ones based on Linux kernel source (e.g., from kernel.org).&lt;br /&gt;
* '''Fanotify''': Use &amp;lt;code&amp;gt;lx_fanotify.c&amp;lt;/code&amp;gt; as a model to build a translation layer from &amp;lt;code&amp;gt;fanotify&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;kqueue&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===== 3. Modify FreeBSD Linuxulator =====&lt;br /&gt;
* '''Source Location''': FreeBSD’s Linuxulator code is in &amp;lt;code&amp;gt;sys/compat/linux/&amp;lt;/code&amp;gt; in the FreeBSD source tree (e.g., &amp;lt;code&amp;gt;/usr/src/sys/compat/linux/&amp;lt;/code&amp;gt; if you’ve cloned the repo).&lt;br /&gt;
* '''Steps''':&lt;br /&gt;
# Extend the syscall table (&amp;lt;code&amp;gt;linux_sysent.c&amp;lt;/code&amp;gt;) with missing calls, using Illumos as a reference.&lt;br /&gt;
# Add new kernel modules or hooks for cgroups and namespaces, potentially under &amp;lt;code&amp;gt;sys/compat/linux/&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Implement fanotify emulation by integrating with &amp;lt;code&amp;gt;kqueue&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Test with a minimal systemd binary (e.g., from a lightweight distro like Alpine) in a chroot environment.&lt;br /&gt;
&lt;br /&gt;
==== 4. Test and Iterate =====&lt;br /&gt;
* '''Setup''': Use a FreeBSD jail with Linuxulator enabled (e.g., via &amp;lt;code&amp;gt;sysctl compat.linux.emulation=1&amp;lt;/code&amp;gt; and a Linux base system in &amp;lt;code&amp;gt;/compat/linux&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/compat/ubuntu&amp;lt;/code&amp;gt;).&lt;br /&gt;
* '''Test Case''': Try running &amp;lt;code&amp;gt;systemd --version&amp;lt;/code&amp;gt; or a simple &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; init process. Debug failures using &amp;lt;code&amp;gt;ktrace&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;truss&amp;lt;/code&amp;gt; to identify missing syscalls or features.&lt;br /&gt;
* '''Reference''': Illumos’s LX zone testing scripts (e.g., in &amp;lt;code&amp;gt;usr/src/test/&amp;lt;/code&amp;gt;) can inspire a test suite.&lt;br /&gt;
&lt;br /&gt;
===== 5. Community and Documentation =====&lt;br /&gt;
* '''FreeBSD Resources''': Check the FreeBSD Wiki’s Linuxulator page and the &amp;lt;code&amp;gt;linux(4)&amp;lt;/code&amp;gt; man page for current capabilities and known gaps.&lt;br /&gt;
* '''Illumos Resources''': The Illumos wiki and SmartOS documentation provide insights into LX zone internals.&lt;br /&gt;
* '''Collaboration''': Engage with the FreeBSD and Illumos communities (e.g., via mailing lists like &amp;lt;code&amp;gt;freebsd-hackers@&amp;lt;/code&amp;gt; or the Illumos IRC) to validate your approach and get feedback.&lt;br /&gt;
&lt;br /&gt;
==== Challenges and Considerations ====&lt;br /&gt;
* '''Philosophical Differences''': FreeBSD avoids adopting Linux-specific features natively (e.g., cgroups) to maintain its distinct identity. You may need to argue for a compatibility-only approach rather than kernel bloat.&lt;br /&gt;
* '''Performance''': Emulating complex features like cgroups and namespaces could introduce overhead, unlike Illumos’s native integration.&lt;br /&gt;
* '''Upstream Acceptance''': Contributions to FreeBSD must align with project goals. Systemd support might face resistance unless justified by broad use cases (e.g., Docker compatibility).&lt;br /&gt;
&lt;br /&gt;
==== Starting Point ====&lt;br /&gt;
Clone the FreeBSD source (&amp;lt;code&amp;gt;git clone https://git.freebsd.org/src.git&amp;lt;/code&amp;gt;) and Illumos gate (&amp;lt;code&amp;gt;git clone https://github.com/illumos/illumos-gate.git&amp;lt;/code&amp;gt;). Begin by prototyping cgroups support—perhaps a minimal shim in &amp;lt;code&amp;gt;sys/compat/linux/&amp;lt;/code&amp;gt;—and test it with a systemd binary. Use Illumos’s &amp;lt;code&amp;gt;lx_cgroups.c&amp;lt;/code&amp;gt; as a blueprint, adapting it to FreeBSD’s kernel structure (e.g., replacing Illumos’s &amp;lt;code&amp;gt;zone_t&amp;lt;/code&amp;gt; with FreeBSD’s &amp;lt;code&amp;gt;struct prison&amp;lt;/code&amp;gt; for jail integration).&lt;br /&gt;
&lt;br /&gt;
This is a significant undertaking, but with both projects being open source, you have the raw materials to bridge the gap. Good luck, and feel free to ask if you need more specific guidance as you dive in!&lt;br /&gt;
&lt;br /&gt;
== [[Podman]] ==&lt;br /&gt;
{{:Podman}}&lt;br /&gt;
&lt;br /&gt;
== [[WikiJS]] ==&lt;br /&gt;
{{:WikiJS}}&lt;br /&gt;
&lt;br /&gt;
== [[TrueNAS]] ==&lt;br /&gt;
{{:TrueNAS}}&lt;br /&gt;
&lt;br /&gt;
== [[XigmaNAS]] ==&lt;br /&gt;
{{:XigmaNAS}}&lt;br /&gt;
&lt;br /&gt;
== 3d printer ==&lt;br /&gt;
{{:3d printer}}&lt;br /&gt;
&lt;br /&gt;
== Formatting ==&lt;br /&gt;
* https://www.mediawiki.org/wiki/Help:Formatting&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=Main_Page&amp;diff=438</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=Main_Page&amp;diff=438"/>
		<updated>2025-03-31T22:13:04Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* TrueNAS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Movies ==&lt;br /&gt;
* Joy Luck Club&lt;br /&gt;
* Motherless Brooklyn&lt;br /&gt;
* Dune&lt;br /&gt;
* The Big Short&lt;br /&gt;
* Andre The Giant 2018&lt;br /&gt;
* Joker&lt;br /&gt;
* &amp;lt;s&amp;gt;Spider-Man&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;The Social Dilemma&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;King Richard (Will Smith)👍🏽&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;Shang-Chi&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;Venom&amp;lt;/s&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;javascript:window.location=document.querySelector('#player iframe').src;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;javascript:window.location=document.querySelector('#player video').src;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Shows == &lt;br /&gt;
* Marvelous Mrs Mazel&lt;br /&gt;
* Watchmen (TV series)&lt;br /&gt;
* Picard&lt;br /&gt;
* &amp;lt;s&amp;gt;Cocaine Cowboys Miami&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Food ==&lt;br /&gt;
&lt;br /&gt;
* Carnaval Brazilian BBQ&lt;br /&gt;
* Feast&lt;br /&gt;
* Across The Board&lt;br /&gt;
* [https://www.tripadvisor.ca/Restaurant_Review-g2648278-d3171065-Reviews-Oma_s_Schnitzel_Stube-St_Pierre_Jolys_Manitoba.html German buffet in St. Malo] Closed/New (bad) management?&lt;br /&gt;
* &amp;lt;s&amp;gt;smash burger&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;Turkey Tacos&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;[https://bluehazebbq.ca BBQ Beausejour]&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;tallest Poppy chicken&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Korean BBQ&lt;br /&gt;
* home made chicken shawarma&lt;br /&gt;
&lt;br /&gt;
* https://www.winnipegrestaurantdeals.com/restaurants&lt;br /&gt;
&lt;br /&gt;
== Travel ==&lt;br /&gt;
* Pembina Valley&lt;br /&gt;
* Banff&lt;br /&gt;
* West Edmonton Mall&lt;br /&gt;
* bunns creek trail (on way to half moon)&lt;br /&gt;
* Bryce Canyon Utah&lt;br /&gt;
&lt;br /&gt;
== [[Disney World]]== &lt;br /&gt;
{{:Disney World}}&lt;br /&gt;
== [[Costa Rica]]==&lt;br /&gt;
{{:Costa Rica}}&lt;br /&gt;
&lt;br /&gt;
== [[UNIX]]==&lt;br /&gt;
{{:UNIX}}&lt;br /&gt;
&lt;br /&gt;
== Games ==&lt;br /&gt;
* X68000: Puzzle: [https://www.youtube.com/watch?v=T3l-6aQ28Ds Deflektor]&lt;br /&gt;
* SNES: Puzzle: Bust-A-Move, The Lost Vikings&lt;br /&gt;
* SNES: VS: Super Bomberman, Tetris Attack&lt;br /&gt;
* SNES: Co-Op: Contra III, Wild Guns&lt;br /&gt;
* SNES: Action RPG: Front Mission Gun Hazard&lt;br /&gt;
* MAME: puzzle: Money Puzzle Exchanger&lt;br /&gt;
* NEOGEO: Co-Op: Alpha Mission 2, Mslug, robo army, Shock Troopers&lt;br /&gt;
* NEOGEO: VS: League Bowling, WindJammer, The Last Blade, Garou&lt;br /&gt;
== emus ==&lt;br /&gt;
https://www.youtube.com/watch?app=desktop&amp;amp;v=UGtU5wRWuhc&lt;br /&gt;
&lt;br /&gt;
* OpenEmu: https://www.youtube.com/watch?v=RxhbhM8BA68&amp;amp;t=0s&lt;br /&gt;
* PSP (PPSSPP ARM): https://www.youtube.com/watch?v=WYfnSCgRBdA&amp;amp;t=0s&lt;br /&gt;
* GC/Wii (Dolphin ARM): https://www.youtube.com/watch?v=lwYKk-_HoPg&amp;amp;t=0s&lt;br /&gt;
* PS2 (PCSX2): https://www.youtube.com/watch?v=veWRt0f7avk&amp;amp;t=0s&lt;br /&gt;
* Dreamcast (Redream): https://www.youtube.com/watch?v=6x_vLg2m7T4&amp;amp;t=0s&lt;br /&gt;
* 3DS (Citra ARM): https://www.youtube.com/watch?v=VpbDl0v_WCs&amp;amp;t=0s&lt;br /&gt;
* PSX (DuckStation): hhttps://www.youtube.com/watch?v=MNofg_jkRnA&amp;amp;t=0s&lt;br /&gt;
* Xbox (Xemu): https://www.youtube.com/watch?v=PCvQ_9M1nlI&amp;amp;t=0s&lt;br /&gt;
* Mac Gaming: https://www.applegamingwiki.com/wiki/PlayStation_2&lt;br /&gt;
==== mega thread ====&lt;br /&gt;
* roms: https://www.reddit.com/r/Roms/comments/gar3bc/roms_megathread_30_ybin_edition/&lt;br /&gt;
* emu files: https://emulation.gametechwiki.com/index.php/Emulator_files#PlayStation_2&lt;br /&gt;
&lt;br /&gt;
==Bike==&lt;br /&gt;
* tighten seat&lt;br /&gt;
* buy helmet&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* &amp;lt;s&amp;gt;Red pocket&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;Plumber&amp;lt;/s&amp;gt;&lt;br /&gt;
== Self Hosting==&lt;br /&gt;
=== Fossil ===&lt;br /&gt;
https://dev.to/schollz/self-hosting-with-fossil-an-alternative-to-git-33bk&lt;br /&gt;
=== certbot ===&lt;br /&gt;
Add new cert:&lt;br /&gt;
&amp;lt;pre&amp;gt;# sudo certbot certonly -d wiki.ho.stna.me&lt;br /&gt;
Saving debug log to /var/log/letsencrypt/letsencrypt.log&lt;br /&gt;
&lt;br /&gt;
How would you like to authenticate with the ACME CA?&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
1: Nginx Web Server plugin (nginx)&lt;br /&gt;
2: Spin up a temporary webserver (standalone)&lt;br /&gt;
3: Place files in webroot directory (webroot)&lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
Select the appropriate number [1-3] then [enter] (press 'c' to cancel): 1&lt;br /&gt;
Plugins selected: Authenticator nginx, Installer None&lt;br /&gt;
Obtaining a new certificate&lt;br /&gt;
Performing the following challenges:&lt;br /&gt;
http-01 challenge for wiki.ho.stna.me&lt;br /&gt;
Using default addresses 80 and [::]:80 ipv6only=on for authentication.&lt;br /&gt;
Waiting for verification...&lt;br /&gt;
Cleaning up challenges&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTES:&lt;br /&gt;
 - Congratulations! Your certificate and chain have been saved at:&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== nginx ===&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
=== Archiver / PeaZip ===&lt;br /&gt;
==== File Manager Integration (Context Menus) ====&lt;br /&gt;
https://peazip.github.io/peazip-linux.html&lt;br /&gt;
https://wiki.archlinux.org/title/GNOME/Files#Custom_scripts&lt;br /&gt;
&lt;br /&gt;
https://github.com/peazip/PeaZip/releases/download/9.5.0/peazip_portable-9.5.0.LINUX.GTK2.x86_64.tar.gz&lt;br /&gt;
&lt;br /&gt;
From the portable download, find scripts in the folder: res/share/batch/freedesktop_integration/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Custom scripts&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Scripts placed in ~/.local/share/nautilus/scripts can be run from the right click context menu of a file.&lt;br /&gt;
&lt;br /&gt;
The context menu can also be organized into subfolders, e.g. ~/.local/share/nautilus/scripts/images and ~/.local/share/nautilus/scripts/music.&lt;br /&gt;
&lt;br /&gt;
== SmartOS ==&lt;br /&gt;
=== Upgrade ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SmartOS (build: 20250220T074131Z)&lt;br /&gt;
[root@cloud ~]# piadm avail&lt;br /&gt;
20250306T000316Z&lt;br /&gt;
[root@cloud ~]# piadm -v install 20250306T000316Z&lt;br /&gt;
[root@cloud ~]# piadm list&lt;br /&gt;
PI STAMP               BOOTABLE FILESYSTEM            BOOT IMAGE NOW  NEXT&lt;br /&gt;
20250220T074131Z       zones/boot                     next       yes  yes&lt;br /&gt;
20250306T000316Z       zones/boot                     available  no   no&lt;br /&gt;
[root@cloud ~]# piadm -v activate 20250306T000316Z&lt;br /&gt;
[root@cloud ~]# piadm list&lt;br /&gt;
PI STAMP               BOOTABLE FILESYSTEM            BOOT IMAGE NOW  NEXT&lt;br /&gt;
20250220T074131Z       zones/boot                     available  yes  no&lt;br /&gt;
20250306T000316Z       zones/boot                     next       no   yes&lt;br /&gt;
[root@cloud ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Migrating ===&lt;br /&gt;
https://docs.smartos.org/managing-instances-with-vmamd/#migrate-an-instance-to-a-different-compute-node&lt;br /&gt;
&lt;br /&gt;
== FreeBSD ==&lt;br /&gt;
=== CUDA ===&lt;br /&gt;
https://developer.nvidia.com/cuda-downloads?target_os=Linux&amp;amp;target_arch=x86_64&amp;amp;Distribution=Rocky&amp;amp;target_version=9&amp;amp;target_type=rpm_local&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install nvidia-driver  &lt;br /&gt;
kldload nvidia&lt;br /&gt;
kldload nvidia-modeset &lt;br /&gt;
 # sysrc kld_list+=nvidia-modeset &lt;br /&gt;
kldload linux64&lt;br /&gt;
pkg install linux_base-rl9  &lt;br /&gt;
pkg install linux-rl9-libxml2&lt;br /&gt;
pkg install gcc #gcc13&lt;br /&gt;
&lt;br /&gt;
fetch https://developer.download.nvidia.com/compute/cuda/12.5.1/local_installers/cuda_12.5.1_555.42.06_linux.run&lt;br /&gt;
./cuda_12.5.1_555.42.06_linux.run&lt;br /&gt;
&lt;br /&gt;
fetch https://developer.download.nvidia.com/compute/cuda/12.5.1/local_installers/cuda-repo-rhel9-12-5-local-12.5.1_555.42.06-1.x86_64.rpm&lt;br /&gt;
&lt;br /&gt;
rpm2cpio cuda-repo-rhel9-12-5-local-12.5.1_555.42.06-1.x86_64.rpm &amp;gt; cuda.cpio&lt;br /&gt;
cpio -idmv &amp;lt; cuda.cpio&lt;br /&gt;
&lt;br /&gt;
var/cuda-repo-rhel9-12-5-local# rpm2cpio nvidia-driver-cuda-libs-555.42.06-1.el9.x86_64.rpm &amp;gt; nvidia-driver-cuda-libs-555.42.06-1.el9.x86_64.cpio&lt;br /&gt;
cpio -idmv &amp;lt; nvidia-driver-cuda-libs-555.42.06-1.el9.x86_64.cpio&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
brandelf -t Linux &amp;lt;path_to_CUDA_installer&amp;gt;&lt;br /&gt;
./cuda_&amp;lt;version&amp;gt;_linux.run&lt;br /&gt;
&lt;br /&gt;
LD_LIBRARY_PATH=/usr/lib64 ffmpeg -i TheBear-S03E01.ts -c:v h264_nvenc -preset slow -b:v 5000k -maxrate 5000k -bufsize 10000k -pix_fmt yuv420p -c:a aac output.mp4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Containers ===&lt;br /&gt;
containerd / runj&lt;br /&gt;
&lt;br /&gt;
https://productionwithscissors.run/2022/09/04/containerd-linux-on-freebsd/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://catalog.ngc.nvidia.com/orgs/nvidia/containers/cuda/tags&lt;br /&gt;
nvcr.io/nvidia/cuda:12.5.1-cudnn-devel-ubuntu20.04&lt;br /&gt;
&lt;br /&gt;
https://github.com/canonical/microk8s/issues/1239&lt;br /&gt;
#ctr run --rm --gpus 0 docker.io/nvidia/cuda:9.0-base nvidia-smi nvidia-smi&lt;br /&gt;
&lt;br /&gt;
ctr image pull --platform=linux nvcr.io/nvidia/cuda:12.5.1-cudnn-devel-ubuntu20.04&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== VMs ===&lt;br /&gt;
==== qemu / quickemu ====&lt;br /&gt;
https://github.com/quickemu-project/quickemu?tab=readme-ov-file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install qemu-nox11 coreutils socat usbutils swtpm zsync samba416 qemu-nox11 edk2-qemu-x64&lt;br /&gt;
git clone https://github.com/quickemu-project/quickemu&lt;br /&gt;
cd quickemu&lt;br /&gt;
./quickget alpine v3.11&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cat freebsd.patch&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/quickemu b/quickemu&lt;br /&gt;
index f2bd9df..2ad1933 100755&lt;br /&gt;
--- a/quickemu&lt;br /&gt;
+++ b/quickemu&lt;br /&gt;
@@ -652,6 +652,8 @@ function configure_bios() {&lt;br /&gt;
             if command -v brew &amp;amp;&amp;gt;/dev/null; then&lt;br /&gt;
                 SHARE_PATH=&amp;quot;$(brew --prefix qemu)/share&amp;quot;&lt;br /&gt;
             fi&lt;br /&gt;
+       elif [ &amp;quot;${OS_KERNEL}&amp;quot; == &amp;quot;FreeBSD&amp;quot; ]; then&lt;br /&gt;
+               SHARE_PATH=/usr/local/share&lt;br /&gt;
         fi&lt;br /&gt;
 &lt;br /&gt;
         # https://bugzilla.redhat.com/show_bug.cgi?id=1929357#c5&lt;br /&gt;
@@ -675,7 +677,9 @@ function configure_bios() {&lt;br /&gt;
                         &amp;quot;${SHARE_PATH}/edk2-ovmf/OVMF_CODE.fd&amp;quot;,&amp;quot;${SHARE_PATH}/edk2-ovmf/OVMF_VARS.fd&amp;quot; \&lt;br /&gt;
                         &amp;quot;${SHARE_PATH}/qemu/ovmf-x86_64-4m-code.bin&amp;quot;,&amp;quot;${SHARE_PATH}/qemu/ovmf-x86_64-4m-vars.bin&amp;quot; \&lt;br /&gt;
                         &amp;quot;${SHARE_PATH}/qemu/edk2-x86_64-code.fd&amp;quot;,&amp;quot;${SHARE_PATH}/qemu/edk2-x86_64-code.fd&amp;quot; \&lt;br /&gt;
-                        &amp;quot;${SHARE_PATH}/edk2-ovmf/x64/OVMF_CODE.fd&amp;quot;,&amp;quot;${SHARE_PATH}/edk2-ovmf/x64/OVMF_VARS.fd&amp;quot;&lt;br /&gt;
+                        &amp;quot;${SHARE_PATH}/edk2-ovmf/x64/OVMF_CODE.fd&amp;quot;,&amp;quot;${SHARE_PATH}/edk2-ov&lt;br /&gt;
mf/x64/OVMF_VARS.fd&amp;quot; \&lt;br /&gt;
+                        &amp;quot;${SHARE_PATH}/edk2-qemu/QEMU_UEFI_CODE-x86_64.fd&amp;quot;,&amp;quot;${SHARE_PATH}&lt;br /&gt;
/edk2-qemu/QEMU_UEFI_VARS-x86_64.fd&amp;quot;&lt;br /&gt;
+&lt;br /&gt;
                     );;&lt;br /&gt;
             esac&lt;br /&gt;
             # Attempt each EFI_CODE file one by one, selecting the corresponding code and&lt;br /&gt;
 vars&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Linuxulator ===&lt;br /&gt;
Yes, I’m familiar with both '''SmartOS LX zones''' and '''FreeBSD’s Linuxulator'''. These are two different approaches to providing Linux binary compatibility on non-Linux systems, and their differing abilities to run '''systemd''' highlight some key technical distinctions. Let’s break this down and address what’s missing in FreeBSD’s Linuxulator to support systemd, as well as how you might approach enabling it by leveraging SmartOS/Illumos source code.&lt;br /&gt;
===== SmartOS LX Zones and FreeBSD Linuxulator =====&lt;br /&gt;
&lt;br /&gt;
* '''SmartOS LX Zones''': LX zones are a feature of Illumos-based systems (like SmartOS) that allow running Linux binaries in a lightweight containerized environment called a &amp;quot;branded zone.&amp;quot; These zones provide a near-native Linux kernel ABI (Application Binary Interface) by translating Linux system calls into Illumos equivalents. LX zones were originally developed by Joyent to support running Linux applications, including Docker, on SmartOS. Over time, they’ve been extended to support more complex Linux-specific features, including systemd, which is the default init system for many modern Linux distributions.&lt;br /&gt;
&lt;br /&gt;
* '''FreeBSD Linuxulator''': The Linuxulator is FreeBSD’s Linux binary compatibility layer. It allows FreeBSD to run unmodified Linux ELF binaries by translating Linux system calls to FreeBSD equivalents. Unlike LX zones, it’s not a containerization technology but a kernel-level compatibility layer that operates alongside native FreeBSD processes. It currently supports a subset of Linux kernel functionality, with compatibility levels pegged at Linux 3.2.0 in FreeBSD 12-STABLE and Linux 5.15.0 in FreeBSD 14-STABLE (as of recent documentation). However, it lacks support for several Linux-specific features required by systemd.&lt;br /&gt;
&lt;br /&gt;
==== Why Systemd Works in LX Zones but Not Linuxulator ====&lt;br /&gt;
Systemd is a complex init system that relies heavily on Linux-specific kernel features, such as:&lt;br /&gt;
* '''cgroups (Control Groups)''': Used for resource management and process grouping.&lt;br /&gt;
* '''Namespaces''': Particularly PID, mount, and user namespaces, which provide isolation and scoping for processes.&lt;br /&gt;
* '''Fanotify''': A file system notification system used by systemd for monitoring file events.&lt;br /&gt;
* '''Specific System Calls''': Systemd depends on calls like &amp;lt;code&amp;gt;pidfd_open()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;clone3()&amp;lt;/code&amp;gt;, and others introduced in newer Linux kernels.&lt;br /&gt;
* '''udev Integration''': Systemd integrates tightly with udev, which relies on Linux-specific device management mechanisms.&lt;br /&gt;
&lt;br /&gt;
'''SmartOS LX Zones''' have evolved to support these features. The Illumos kernel, with contributions from Joyent and the SmartOS community, has implemented enough of the Linux kernel ABI—including cgroups, namespaces, and additional system calls—to allow systemd to function within an LX-branded zone. This was driven by the need to support Docker and other modern Linux workloads, which often assume systemd is present.&lt;br /&gt;
&lt;br /&gt;
'''FreeBSD Linuxulator''', on the other hand, does not yet support these features fully. While it can run many Linux binaries (e.g., statically linked programs or those with simpler dependencies), its compatibility layer is incomplete for systemd’s requirements. The Linuxulator’s development has historically focused on supporting popular applications (like Steam or proprietary tools) rather than replicating the full Linux kernel feature set, and systemd support has not been a priority.&lt;br /&gt;
&lt;br /&gt;
==== What’s Missing in FreeBSD Linuxulator? ====&lt;br /&gt;
To run systemd in FreeBSD’s Linuxulator, the following gaps need to be addressed:&lt;br /&gt;
&lt;br /&gt;
===== 1. cgroups Support =====&lt;br /&gt;
* '''Current State''': FreeBSD has no native cgroups implementation. It uses its own resource control mechanisms (e.g., &amp;lt;code&amp;gt;rctl&amp;lt;/code&amp;gt; for resource limits and jails for isolation), which are philosophically and technically different from Linux’s cgroups.&lt;br /&gt;
* '''Requirement''': Systemd expects cgroups v1 or v2 for process grouping, resource limiting, and service management. Without this, systemd cannot initialize properly.&lt;br /&gt;
&lt;br /&gt;
===== 2. Namespaces =====&lt;br /&gt;
* '''Current State''': FreeBSD supports some namespace-like features via jails and VNET (virtual networking), but these are not equivalent to Linux’s PID, mount, or user namespaces. The Linuxulator does not translate Linux namespace-related system calls (e.g., &amp;lt;code&amp;gt;unshare()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;clone()&amp;lt;/code&amp;gt; with namespace flags) into FreeBSD equivalents.&lt;br /&gt;
* '''Requirement''': Systemd uses namespaces for service isolation and scoping, particularly PID namespaces to manage process trees.&lt;br /&gt;
&lt;br /&gt;
===== 3. System Call Gaps =====&lt;br /&gt;
* '''Current State''': The Linuxulator implements a subset of Linux system calls (see &amp;lt;code&amp;gt;sys/compat/linux/linux_sysent.c&amp;lt;/code&amp;gt; in the FreeBSD source). Missing calls include newer ones like &amp;lt;code&amp;gt;pidfd_open()&amp;lt;/code&amp;gt; (Linux 5.3+), &amp;lt;code&amp;gt;clone3()&amp;lt;/code&amp;gt; (Linux 5.3+), and others that systemd may use.&lt;br /&gt;
* '''Requirement''': Full compatibility with the system calls systemd depends on, which may require extending the Linuxulator’s syscall table.&lt;br /&gt;
&lt;br /&gt;
===== 4. Fanotify and File System Events =====&lt;br /&gt;
* '''Current State''': FreeBSD has &amp;lt;code&amp;gt;kqueue&amp;lt;/code&amp;gt; for event notification, but it’s not compatible with Linux’s &amp;lt;code&amp;gt;fanotify&amp;lt;/code&amp;gt; API, which systemd uses for file system monitoring.&lt;br /&gt;
* '''Requirement''': An emulation layer to map &amp;lt;code&amp;gt;fanotify&amp;lt;/code&amp;gt; calls to &amp;lt;code&amp;gt;kqueue&amp;lt;/code&amp;gt; or a custom implementation.&lt;br /&gt;
&lt;br /&gt;
===== 5. udev and Device Management =====&lt;br /&gt;
* '''Current State''': FreeBSD uses &amp;lt;code&amp;gt;devd&amp;lt;/code&amp;gt; for device management, which differs significantly from Linux’s &amp;lt;code&amp;gt;udev&amp;lt;/code&amp;gt;. The Linuxulator does not fully emulate &amp;lt;code&amp;gt;udev&amp;lt;/code&amp;gt;’s behavior or its integration with the kernel.&lt;br /&gt;
* '''Requirement''': Systemd expects &amp;lt;code&amp;gt;udev&amp;lt;/code&amp;gt; to manage device events, so a compatibility layer or partial &amp;lt;code&amp;gt;udev&amp;lt;/code&amp;gt; emulation is needed.&lt;br /&gt;
&lt;br /&gt;
===== 6. Kernel ABI Stability and Versioning =====&lt;br /&gt;
* '''Current State''': The Linuxulator mimics a specific Linux kernel version (e.g., 5.15.0 in FreeBSD 14-STABLE), but systemd may expect features from newer kernels or specific behaviors not yet emulated.&lt;br /&gt;
* '''Requirement''': Ensuring the emulated ABI matches a Linux kernel version that systemd supports (e.g., at least 4.4 or later for modern versions).&lt;br /&gt;
&lt;br /&gt;
==== Where to Start: Leveraging SmartOS/Illumos Source ====&lt;br /&gt;
Since both SmartOS (Illumos) and FreeBSD are open source, you can study the LX zone implementation to guide enhancements to the Linuxulator. Here’s a step-by-step approach:&lt;br /&gt;
&lt;br /&gt;
===== 1. Study Illumos LX Zone Source Code =====&lt;br /&gt;
* '''Location''': The relevant code is in the Illumos gate repository, specifically under &amp;lt;code&amp;gt;usr/src/uts/common/brand/lx/&amp;lt;/code&amp;gt; and related directories. Key files include:&lt;br /&gt;
** &amp;lt;code&amp;gt;lx_syscalls.c&amp;lt;/code&amp;gt;: Handles Linux system call emulation.&lt;br /&gt;
** &amp;lt;code&amp;gt;lx_cgroups.c&amp;lt;/code&amp;gt;: Implements cgroups support.&lt;br /&gt;
** &amp;lt;code&amp;gt;lx_namespace.c&amp;lt;/code&amp;gt;: Manages Linux namespace emulation.&lt;br /&gt;
** &amp;lt;code&amp;gt;lx_fanotify.c&amp;lt;/code&amp;gt;: Provides fanotify support.&lt;br /&gt;
* '''Key Insight''': Illumos has extended its kernel to natively support these features for LX zones, rather than just translating them to existing Solaris/Illumos mechanisms. This suggests FreeBSD may need a hybrid approach—either adding native support or building a more comprehensive translation layer.&lt;br /&gt;
&lt;br /&gt;
===== 2. Map Illumos Features to FreeBSD =====&lt;br /&gt;
* '''cgroups''': Start by reviewing &amp;lt;code&amp;gt;lx_cgroups.c&amp;lt;/code&amp;gt;. You could either:&lt;br /&gt;
** Implement a minimal cgroups shim in the Linuxulator that maps to FreeBSD’s &amp;lt;code&amp;gt;rctl&amp;lt;/code&amp;gt; or a new subsystem.&lt;br /&gt;
** Port Illumos’s cgroups implementation directly, adapting it to FreeBSD’s kernel architecture.&lt;br /&gt;
* '''Namespaces''': Look at &amp;lt;code&amp;gt;lx_namespace.c&amp;lt;/code&amp;gt;. FreeBSD jails and VNET provide a foundation, but you’d need to extend the Linuxulator to handle &amp;lt;code&amp;gt;clone()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;unshare()&amp;lt;/code&amp;gt; with namespace flags, possibly by mapping them to jail-like constructs.&lt;br /&gt;
* '''System Calls''': Compare Illumos’s &amp;lt;code&amp;gt;lx_syscalls.c&amp;lt;/code&amp;gt; with FreeBSD’s &amp;lt;code&amp;gt;sys/compat/linux/linux_sysent.c&amp;lt;/code&amp;gt;. Add missing syscalls (e.g., &amp;lt;code&amp;gt;pidfd_open()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;clone3()&amp;lt;/code&amp;gt;) by adapting Illumos’s implementations or writing new ones based on Linux kernel source (e.g., from kernel.org).&lt;br /&gt;
* '''Fanotify''': Use &amp;lt;code&amp;gt;lx_fanotify.c&amp;lt;/code&amp;gt; as a model to build a translation layer from &amp;lt;code&amp;gt;fanotify&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;kqueue&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===== 3. Modify FreeBSD Linuxulator =====&lt;br /&gt;
* '''Source Location''': FreeBSD’s Linuxulator code is in &amp;lt;code&amp;gt;sys/compat/linux/&amp;lt;/code&amp;gt; in the FreeBSD source tree (e.g., &amp;lt;code&amp;gt;/usr/src/sys/compat/linux/&amp;lt;/code&amp;gt; if you’ve cloned the repo).&lt;br /&gt;
* '''Steps''':&lt;br /&gt;
# Extend the syscall table (&amp;lt;code&amp;gt;linux_sysent.c&amp;lt;/code&amp;gt;) with missing calls, using Illumos as a reference.&lt;br /&gt;
# Add new kernel modules or hooks for cgroups and namespaces, potentially under &amp;lt;code&amp;gt;sys/compat/linux/&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Implement fanotify emulation by integrating with &amp;lt;code&amp;gt;kqueue&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Test with a minimal systemd binary (e.g., from a lightweight distro like Alpine) in a chroot environment.&lt;br /&gt;
&lt;br /&gt;
==== 4. Test and Iterate =====&lt;br /&gt;
* '''Setup''': Use a FreeBSD jail with Linuxulator enabled (e.g., via &amp;lt;code&amp;gt;sysctl compat.linux.emulation=1&amp;lt;/code&amp;gt; and a Linux base system in &amp;lt;code&amp;gt;/compat/linux&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/compat/ubuntu&amp;lt;/code&amp;gt;).&lt;br /&gt;
* '''Test Case''': Try running &amp;lt;code&amp;gt;systemd --version&amp;lt;/code&amp;gt; or a simple &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; init process. Debug failures using &amp;lt;code&amp;gt;ktrace&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;truss&amp;lt;/code&amp;gt; to identify missing syscalls or features.&lt;br /&gt;
* '''Reference''': Illumos’s LX zone testing scripts (e.g., in &amp;lt;code&amp;gt;usr/src/test/&amp;lt;/code&amp;gt;) can inspire a test suite.&lt;br /&gt;
&lt;br /&gt;
===== 5. Community and Documentation =====&lt;br /&gt;
* '''FreeBSD Resources''': Check the FreeBSD Wiki’s Linuxulator page and the &amp;lt;code&amp;gt;linux(4)&amp;lt;/code&amp;gt; man page for current capabilities and known gaps.&lt;br /&gt;
* '''Illumos Resources''': The Illumos wiki and SmartOS documentation provide insights into LX zone internals.&lt;br /&gt;
* '''Collaboration''': Engage with the FreeBSD and Illumos communities (e.g., via mailing lists like &amp;lt;code&amp;gt;freebsd-hackers@&amp;lt;/code&amp;gt; or the Illumos IRC) to validate your approach and get feedback.&lt;br /&gt;
&lt;br /&gt;
==== Challenges and Considerations ====&lt;br /&gt;
* '''Philosophical Differences''': FreeBSD avoids adopting Linux-specific features natively (e.g., cgroups) to maintain its distinct identity. You may need to argue for a compatibility-only approach rather than kernel bloat.&lt;br /&gt;
* '''Performance''': Emulating complex features like cgroups and namespaces could introduce overhead, unlike Illumos’s native integration.&lt;br /&gt;
* '''Upstream Acceptance''': Contributions to FreeBSD must align with project goals. Systemd support might face resistance unless justified by broad use cases (e.g., Docker compatibility).&lt;br /&gt;
&lt;br /&gt;
==== Starting Point ====&lt;br /&gt;
Clone the FreeBSD source (&amp;lt;code&amp;gt;git clone https://git.freebsd.org/src.git&amp;lt;/code&amp;gt;) and Illumos gate (&amp;lt;code&amp;gt;git clone https://github.com/illumos/illumos-gate.git&amp;lt;/code&amp;gt;). Begin by prototyping cgroups support—perhaps a minimal shim in &amp;lt;code&amp;gt;sys/compat/linux/&amp;lt;/code&amp;gt;—and test it with a systemd binary. Use Illumos’s &amp;lt;code&amp;gt;lx_cgroups.c&amp;lt;/code&amp;gt; as a blueprint, adapting it to FreeBSD’s kernel structure (e.g., replacing Illumos’s &amp;lt;code&amp;gt;zone_t&amp;lt;/code&amp;gt; with FreeBSD’s &amp;lt;code&amp;gt;struct prison&amp;lt;/code&amp;gt; for jail integration).&lt;br /&gt;
&lt;br /&gt;
This is a significant undertaking, but with both projects being open source, you have the raw materials to bridge the gap. Good luck, and feel free to ask if you need more specific guidance as you dive in!&lt;br /&gt;
&lt;br /&gt;
== [[Podman]] ==&lt;br /&gt;
{{:Podman}}&lt;br /&gt;
&lt;br /&gt;
== [[TrueNAS]] ==&lt;br /&gt;
{{:TrueNAS}}&lt;br /&gt;
&lt;br /&gt;
== [[XigmaNAS]] ==&lt;br /&gt;
{{:XigmaNAS}}&lt;br /&gt;
&lt;br /&gt;
== 3d printer ==&lt;br /&gt;
{{:3d printer}}&lt;br /&gt;
&lt;br /&gt;
== Formatting ==&lt;br /&gt;
* https://www.mediawiki.org/wiki/Help:Formatting&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=Podman&amp;diff=437</id>
		<title>Podman</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=Podman&amp;diff=437"/>
		<updated>2025-03-31T21:50:16Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# podman restart wiki&lt;br /&gt;
Error: 1 error occurred:&lt;br /&gt;
        * plugin type=&amp;quot;bridge&amp;quot; failed (delete): cni plugin bridge failed: error removing 10.88.0.26 from cni-nat table: %!v(MISSING)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=Podman&amp;diff=436</id>
		<title>Podman</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=Podman&amp;diff=436"/>
		<updated>2025-03-31T21:50:06Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: Created page with &amp;quot; # podman restart wiki Error: 1 error occurred:         * plugin type=&amp;quot;bridge&amp;quot; failed (delete): cni plugin bridge failed: error removing 10.88.0.26 from cni-nat table: %!v(MIS...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
# podman restart wiki&lt;br /&gt;
Error: 1 error occurred:&lt;br /&gt;
        * plugin type=&amp;quot;bridge&amp;quot; failed (delete): cni plugin bridge failed: error removing 10.88.0.26 from cni-nat table: %!v(MISSING)&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=XigmaNAS&amp;diff=435</id>
		<title>XigmaNAS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=XigmaNAS&amp;diff=435"/>
		<updated>2025-03-31T19:02:07Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* VM Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Build xigmanas&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh filer02 sudo zfs rollback dozer/chroots/xig@latest ; ssh filer02 xig /root/pkgs/go ; exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xig:~# cat cicd&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
scp -rp 192.168.3.198:pkgs /root/&lt;br /&gt;
/root/pkgs/go&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
BSD cloud images&lt;br /&gt;
https://bsd-cloud-image.org/&lt;br /&gt;
login: freebsd&lt;br /&gt;
&lt;br /&gt;
https://object-storage.public.mtl1.vexxhost.net/swift/v1/1dbafeefbd4f4c80864414a441e72dd2/bsd-cloud-image.org/images/freebsd/14.0/2024-05-06/zfs/freebsd-14.0-zfs-2024-05-06.qcow2&lt;br /&gt;
&lt;br /&gt;
XigmaNAS&lt;br /&gt;
IRC https://web.libera.chat/#xigmanas&lt;br /&gt;
&lt;br /&gt;
=== Finch shell ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[filer02]:~/bin$ cat fch&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$#&amp;quot; -ge 1 ]; then&lt;br /&gt;
        sudo chroot /mnt/tank/finch &amp;quot;$@&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
        sudo chroot /mnt/tank/finch bash -l&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Finch Version ===&lt;br /&gt;
FreeBSD &lt;br /&gt;
9.0 works&lt;br /&gt;
9.3 works (different flags)&lt;br /&gt;
10.0 works&lt;br /&gt;
10.1 works (different flags)&lt;br /&gt;
11.0 works (different flags) (no syslog (-S doesn't exist))&lt;br /&gt;
11.4 locks (different flags) (no syslog (but exists))&lt;br /&gt;
12.0 locks (different flags) (no syslog (but exists))&lt;br /&gt;
13.2 locks (pkill tee works)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
syslogd fails&lt;br /&gt;
syslogd doesn't run in finch&lt;br /&gt;
kill tee (logger) works because logger fails because no syslogd?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# /zroot/bynch141/etc/finch/postinit ; chroot /zroot/bynch141/ /etc/rc.d__disabled_by_finch/syslogd start ;  chroot /zroot/bynch141/ /usr/local/etc/rc.d/yesd onestart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Finch Install ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zpool create -f zroot nda0p4&lt;br /&gt;
zfs create -o compress=zstd zroot/bynch&lt;br /&gt;
cd /zroot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -O wongk@192.168.3.159:f/FreeBSD-14.1-RELEASE-amd64-disc1.iso .&lt;br /&gt;
md=$(mdconfig -a -t vnode -f *.iso)&lt;br /&gt;
mkdir iso&lt;br /&gt;
mount -t cd9660 /dev/${md} iso&lt;br /&gt;
&lt;br /&gt;
alias finch-bootstrap=&amp;quot;SSL_NO_VERIFY_PEER=YES fetch -q -o - http://git.io/HxXrsw | sh -s --&amp;quot;&lt;br /&gt;
finch-bootstrap --help&lt;br /&gt;
&lt;br /&gt;
finch-bootstrap install -y -x --txz-distfiles-dir iso/usr/freebsd-dist --dir /zroot/bynch&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pw user mod root -s /usr/local/bin/bash&lt;br /&gt;
&lt;br /&gt;
chroot /zroot/bynch/ sh&lt;br /&gt;
ldconfig /lib /usr/lib /usr/local/lib&lt;br /&gt;
vi ~/.bash_profile&lt;br /&gt;
PS1=&amp;quot;\[\033[1;37m\]bynch:\[\033[38;5;166m\]\w\[\033[0m\]\\$ &amp;quot;&lt;br /&gt;
cd&lt;br /&gt;
&lt;br /&gt;
chroot /zroot/bynch bash -l&lt;br /&gt;
&lt;br /&gt;
sysrc yes_enable=YES&lt;br /&gt;
vi /usr/local/etc/rc.d/yesd&lt;br /&gt;
chmod +x /usr/local/etc/rc.d/yesd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
yesd&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# PROVIDE: yes&lt;br /&gt;
# REQUIRE: DAEMON&lt;br /&gt;
# KEYWORD: shutdown&lt;br /&gt;
&lt;br /&gt;
# Add the following lines to /etc/rc.conf to enable yes:&lt;br /&gt;
#&lt;br /&gt;
# yes_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. /etc/rc.subr&lt;br /&gt;
&lt;br /&gt;
name=&amp;quot;yes&amp;quot;&lt;br /&gt;
rcvar=&amp;quot;yes_enable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
pidfile=&amp;quot;/var/run/${name}.pid&amp;quot;&lt;br /&gt;
command=&amp;quot;/usr/sbin/daemon&amp;quot;&lt;br /&gt;
command_args=&amp;quot;-P ${pidfile} -r -S -t ${name} -T ${name} /usr/bin/yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
load_rc_config $name&lt;br /&gt;
: ${yes_enable:=no}&lt;br /&gt;
&lt;br /&gt;
run_rc_command &amp;quot;$1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Jellyfin ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch# qjail create -4 192.168.3.195 jellyfin&lt;br /&gt;
finch:/usr/local/etc/qjail.config# grep mlock jellyfin&lt;br /&gt;
allow.mlock;&lt;br /&gt;
finch# qjail start jellyfin&lt;br /&gt;
finch# qjail console jellyfin&lt;br /&gt;
&lt;br /&gt;
jellyfin&amp;gt; pkg install jellyfin&lt;br /&gt;
jellyfin&amp;gt; service jellyfin enable&lt;br /&gt;
jellyfin&amp;gt; service jellyfin start&lt;br /&gt;
&lt;br /&gt;
filer02# sudo mount_nullfs -o ro,noatime /mnt/tank/media /mnt/tank/finch/usr/jails/jellyfin/media&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Bastille Extension ====&lt;br /&gt;
https://github.com/JRGTH/xigmanas-bastille-extension&lt;br /&gt;
https://gitlab.com/bastillebsd-templates/jellyfin/-/blob/main/Bastillefile?ref_type=heads&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CMD mkdir -p /usr/local/etc/pkg/repos&lt;br /&gt;
CMD echo 'FreeBSD: { url: &amp;quot;pkg+http://pkg.FreeBSD.org/${ABI}/latest&amp;quot; }' &amp;gt; /usr/local/etc/pkg/repos/FreeBSD.conf&lt;br /&gt;
CONFIG set allow.mlock=1;&lt;br /&gt;
CONFIG set ip6=inherit;&lt;br /&gt;
RESTART&lt;br /&gt;
PKG jellyfin&lt;br /&gt;
SYSRC jellyfin_enable=TRUE&lt;br /&gt;
SERVICE jellyfin start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bastille BSD ===&lt;br /&gt;
https://bastille.readthedocs.io/en/latest/chapters/networking.html#virtual-network-vnet&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bastille create -V azkaban 14.1-RELEASE 192.168.1.50/24 em0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== debootstrap ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/local/share/debootstrap/scripts# fgrep -nA3 'noble)' noble&lt;br /&gt;
122:            noble)&lt;br /&gt;
123-                    # see https://bugs.debian.org/838388&lt;br /&gt;
124-                    EXTRACT_DEB_TAR_OPTIONS=&amp;quot;$EXTRACT_DEB_TAR_OPTIONS &amp;quot;&lt;br /&gt;
125-                    ;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/local/bastille/releases# bastille bootstrap noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bastille create -L lintest noble 192.168.3.193/24 em0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== VS Code ===&lt;br /&gt;
&lt;br /&gt;
https://gist.github.com/mateuszkwiatkowski/ce486d692b4cb18afc2c8c68dcfe8602&lt;br /&gt;
https://www.gaelanlloyd.com/blog/how-to-connect-visual-studio-code-to-freebsd-servers/&lt;br /&gt;
&lt;br /&gt;
remote-ssh seem to ignore bash config files so we need to change $PATH in /etc/login.conf or send custom env with SetEnv directive in ssh_config. Choose which fits you better.&lt;br /&gt;
&lt;br /&gt;
Configure /etc/login.conf&lt;br /&gt;
&lt;br /&gt;
By default it's class default, we need to give priority to linux binaries:&lt;br /&gt;
&amp;lt;pre&amp;gt; :path=/compat/linux/usr/sbin /compat/linux/usr/bin /sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin ~/bin:\ &amp;lt;/pre&amp;gt;&lt;br /&gt;
rebuild CAP database: &lt;br /&gt;
&amp;lt;pre&amp;gt;cap_mkdb /etc/login.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
Flip the switch in the VS Code extension to &amp;quot;Enable Remote Command&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sysctl kern.elf64.fallback_brand&lt;br /&gt;
kern.elf64.fallback_brand: -1&lt;br /&gt;
# sysctl kern.elf64.fallback_brand=3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NIC driver ===&lt;br /&gt;
https://www.intel.com/content/www/us/en/download/15187/intel-network-adapter-gigabit-base-driver-for-freebsd.html&lt;br /&gt;
https://web.archive.org/web/20131009070059/https://thesorcerer.wordpress.com/2011/07/01/guide-intel-82573l-gigabit-ethernet-with-ubuntu-11-04-and-fix-pxe-e05/&lt;br /&gt;
https://www.intel.com/content/www/us/en/download/15755/intel-ethernet-connections-boot-utility-preboot-images-and-efi-drivers.html&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bootutil -defcfg          #force bootutil to load the default PXE configuration into the controller&lt;br /&gt;
&lt;br /&gt;
# Georgi says ” bootutil -nic=1 -defcfg” it’s better. Try if the other returns an err&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== VM Setup ===&lt;br /&gt;
https://github.com/churchers/vm-bhyve&lt;br /&gt;
&lt;br /&gt;
Type ~+Ctrl-D to exit back to your host.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sysrc vm_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
# sysrc vm_dir=&amp;quot;zfs:dozer/vms&amp;quot;&lt;br /&gt;
# zfs create -o compression=lz4 dozer/vms/zvols # lz4 is better for multiple reads?&lt;br /&gt;
vm init&lt;br /&gt;
vm img https://download.freebsd.org/ftp/releases/VM-IMAGES/14.1-RELEASE/amd64/Latest/FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw.xz &lt;br /&gt;
# zfs create -s -V 35G dozer/vms/zvols/freebsd141&lt;br /&gt;
# dd bs=1m if=~/vms/.img/FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw of=/dev/zvol/dozer/vms/zvols/freebsd141 status=progress&lt;br /&gt;
# zfs snapshot dozer/vms/zvols/freebsd141@img35G&lt;br /&gt;
#vm create -t xbuild -s 35G -i FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw -C -k ~/.ssh/vms_id_ed.pub xBhyve141&lt;br /&gt;
vm create -t freebsd-zvol -C -k ~/.ssh/vms_id_ed.pub ci&lt;br /&gt;
zfs destroy dozer/vms/ci/disk0&lt;br /&gt;
zfs clone dozer/vms/zvols/freebsd141@img35G dozer/vms/ci/disk0&lt;br /&gt;
&lt;br /&gt;
 gpart recover nda0&lt;br /&gt;
 gpart show&lt;br /&gt;
# gpart resize -i 5 nda0&lt;br /&gt;
# growfs -f /dev/gpt/rootfs&lt;br /&gt;
&lt;br /&gt;
vm start xBhyve141&lt;br /&gt;
vm console xBhyve141&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
graphics is only possible with loader=&amp;quot;uefi&amp;quot;, not with &amp;quot;grub&amp;quot;. https://forums.freebsd.org/threads/bhyve-graphics-install-and-vncviewer.88114/&lt;br /&gt;
disk0.img is faster, but doesn't support -s 35G on create&lt;br /&gt;
nvme is faster than virtio-blk&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vm create -t freebsd-zvol -s 35G -i FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw -C -k ~/.ssh/vms_id_ed.pub xBuild141&lt;br /&gt;
dd if=/dev/zvol/dozer/vms/xBuild141/disk0 of=xBuild141/disk0.img bs=1m&lt;br /&gt;
vm configure xBuild141&lt;br /&gt;
disk0_name=&amp;quot;disk0.img&amp;quot;&lt;br /&gt;
#disk0_dev=&amp;quot;sparse-zvol&amp;quot;&lt;br /&gt;
&lt;br /&gt;
vm create -t freebsd -s 35G -i FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw -C -k ~/.ssh/vms_id_ed.pub xBuild141&lt;br /&gt;
qemu-img resize -f raw xBuild141/disk0.img 35G # resize before first boot&lt;br /&gt;
vm start xBuild141&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Bastille vnet + vm-bhyve vnet ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig bridge&lt;br /&gt;
ifconfig: interface bridge does not exist&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig bridge create&lt;br /&gt;
bridge0&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig bridge0 name em0bridge&lt;br /&gt;
em0bridge&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig em0bridge addm em0 up&lt;br /&gt;
finch:~/vms/xigmanas# ifconfig em0bridge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Share bastille's bridge with bhyve. (manually setup the switch)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vm switch create -t manual -b em0bridge public&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== vm-bhyve restart ====&lt;br /&gt;
since vm-bhyve is within finch chroot, the mount points need to be re-mounted within the chroot&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zfs list -t filesystem | awk '/vms/ { print $1}' | xargs -n1 zfs mount&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Host Setup ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# disable autoboot delay&lt;br /&gt;
grep autoboot /boot/loader.conf || echo 'autoboot_delay=&amp;quot;-1&amp;quot;' &amp;gt;&amp;gt; /boot/loader.conf&lt;br /&gt;
mkdir -p .ssh&lt;br /&gt;
grep filer02 /etc/hosts || echo -e &amp;quot;192.168.3.159\tfiler02&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
scp wongk@192.168.3.83:.ssh/vms_id_ed.pub .ssh/authorized_keys&lt;br /&gt;
scp wongk@192.168.3.83:.ssh/vms_id_ed .ssh/&lt;br /&gt;
grep vms .ssh/config || echo 'IdentityFile ~/.ssh/vms_id_ed' &amp;gt;&amp;gt; .ssh/config&lt;br /&gt;
ls /boot/entropy || /etc/rc.d/random start&lt;br /&gt;
grep bash /etc/shells || echo /usr/local/bin/bash &amp;gt;&amp;gt; /etc/shells&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y parallel&lt;br /&gt;
echo 'will cite' | parallel --citation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Upgrade Host ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
date ; PAGER=cat yes | freebsd-update -r 14.1-RELEASE-p2 --currently-running 14.1-RELEASE-p1 --not-running-from-cron upgrade; date&lt;br /&gt;
date ; time yes | PAGER=cat freebsd-update --currently-running $(uname -r) --not-running-from-cron fetch install ; date&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
real    4m23.307s&lt;br /&gt;
user    2m49.590s&lt;br /&gt;
sys     0m13.771s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== pkg base ===&lt;br /&gt;
https://wiki.freebsd.org/PkgBase&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
date&lt;br /&gt;
ls -l /boot/kernel/kernel&lt;br /&gt;
mkdir -p /usr/local/etc/pkg/repos/&lt;br /&gt;
grep enabled /usr/local/etc/pkg/repos/base.conf || echo 'base: {&lt;br /&gt;
  url: &amp;quot;pkg+https://pkg.FreeBSD.org/${ABI}/base_release_1&amp;quot;,&lt;br /&gt;
  mirror_type: &amp;quot;srv&amp;quot;,&lt;br /&gt;
  signature_type: &amp;quot;fingerprints&amp;quot;,&lt;br /&gt;
  fingerprints: &amp;quot;/usr/share/keys/pkg&amp;quot;,&lt;br /&gt;
  enabled: yes&lt;br /&gt;
}' &amp;gt;/usr/local/etc/pkg/repos/base.conf&lt;br /&gt;
rm /usr/local/etc/pkg/repos/FreeBSD.conf&lt;br /&gt;
grep enabled /usr/local/etc/pkg/repos/latest.conf || echo 'latest: {&lt;br /&gt;
  url: &amp;quot;pkg+https://pkg.FreeBSD.org/${ABI}/latest&amp;quot;,&lt;br /&gt;
  mirror_type: &amp;quot;srv&amp;quot;,&lt;br /&gt;
  signature_type: &amp;quot;fingerprints&amp;quot;,&lt;br /&gt;
  fingerprints: &amp;quot;/usr/share/keys/pkg&amp;quot;,&lt;br /&gt;
  enabled: yes&lt;br /&gt;
}' &amp;gt;/usr/local/etc/pkg/repos/latest.conf&lt;br /&gt;
pkg update&lt;br /&gt;
&lt;br /&gt;
# find security patches. filter unnecessary and current patch-level packages&lt;br /&gt;
#time pkg search -r base -g 'FreeBSD-*p?' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/ {print $1}' | fgrep -v $(uname -r | awk -F- '{ print $1$3}') | xargs pkg install -y -r base &lt;br /&gt;
time pkg search -r base -g 'FreeBSD-*p?' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/ {print $1}' | xargs pkg install -y -r base &lt;br /&gt;
&lt;br /&gt;
cp -p /etc/master.passwd.pkgsave /etc/master.passwd&lt;br /&gt;
cp -p /etc/group.pkgsave /etc/group&lt;br /&gt;
cp -p /etc/shells.pkgsave /etc/shells&lt;br /&gt;
pwd_mkdb -p /etc/master.passwd&lt;br /&gt;
cp /etc/sysctl.conf.pkgsave /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
cp -p /etc/hosts.pkgsave /etc/hosts&lt;br /&gt;
cp -p /etc/ssh/sshd_config.pkgsave /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
# find changed files with &amp;quot;etc&amp;quot; in path&lt;br /&gt;
#find / -path '*/etc/*' -name &amp;quot;*.pkgsave&amp;quot; -type f&lt;br /&gt;
&lt;br /&gt;
# find changed .conf files&lt;br /&gt;
#find / -name &amp;quot;*.conf.pkgsave&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#find / -name \*.pkgsave -print -delete&lt;br /&gt;
ls -l /boot/kernel/kernel&lt;br /&gt;
date&lt;br /&gt;
&lt;br /&gt;
# (linker.hints was recreated at kernel install and we had the old modules as .pkgsave so we need to recreate it, this will be done at the next reboot)&lt;br /&gt;
rm /boot/kernel/linker.hints&lt;br /&gt;
&lt;br /&gt;
cd /var/cache/pkg&lt;br /&gt;
ls | fgrep -v '~' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# pkg search -r base -g 'FreeBSD-*p1' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/ {print $1}' | xargs&lt;br /&gt;
FreeBSD-acct-14.1p1 FreeBSD-clang-14.1p1 FreeBSD-clibs-14.1p1 FreeBSD-devd-14.1p1 FreeBSD-kernel-generic-14.1p1 FreeBSD-lld-14.1p1 FreeBSD-lldb-14.1p1 FreeBSD-rescue-14.1p1 FreeBSD-runtime-14.1p1 FreeBSD-utilities-14.1p1 FreeBSD-zfs-14.1p1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install ports ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# time git clone -o freebsd https://git.freebsd.org/ports.git /usr/ports ; exit&lt;br /&gt;
Cloning into '/usr/ports'...&lt;br /&gt;
remote: Enumerating objects: 6293704, done.&lt;br /&gt;
remote: Counting objects: 100% (47660/47660), done.&lt;br /&gt;
remote: Compressing objects: 100% (37020/37020), done.&lt;br /&gt;
Receiving objects: 100% (6293704/6293704), 1.28 GiB | 6.50 MiB/s, done.&lt;br /&gt;
remote: Total 6293704 (delta 22967), reused 19260 (delta 10304), pack-reused 6246044 (from 1)&lt;br /&gt;
Resolving deltas: 100% (3797103/3797103), done.&lt;br /&gt;
Updating files: 100% (162138/162138), done.&lt;br /&gt;
&lt;br /&gt;
real    7m9.337s&lt;br /&gt;
user    6m38.899s&lt;br /&gt;
sys     1m26.111s&lt;br /&gt;
&lt;br /&gt;
# time git clone --depth 1 https://git.freebsd.org/ports.git /usr/ports&lt;br /&gt;
Cloning into '/usr/ports'...&lt;br /&gt;
load: 0.06  cmd: git-remote-https 64926 [select] 13.78r 0.01u 0.00s 0% 13088k&lt;br /&gt;
load: 0.05  cmd: git-remote-https 64926 [select] 21.56r 0.01u 0.00s 0% 13088k&lt;br /&gt;
remote: Enumerating objects: 197757, done.&lt;br /&gt;
remote: Counting objects: 100% (197757/197757), done.&lt;br /&gt;
remote: Compressing objects: 100% (185648/185648), done.&lt;br /&gt;
load: 0.11  cmd: git 64927 [piperd] 3.96r 0.04u 0.00s 0% 6524k &lt;br /&gt;
remote: Total 197757 (delta 13461), reused 117919 (delta 5403), pack-reused 0 (from 0)&lt;br /&gt;
Receiving objects: 100% (197757/197757), 87.61 MiB | 577.00 KiB/s, done.&lt;br /&gt;
Resolving deltas: 100% (13461/13461), done.&lt;br /&gt;
Updating files: 100% (162036/162036), done.&lt;br /&gt;
&lt;br /&gt;
real    3m20.931s&lt;br /&gt;
user    0m6.951s&lt;br /&gt;
sys     0m3.815s&lt;br /&gt;
&lt;br /&gt;
fetch https://download.freebsd.org/ftp/ports/ports/ports.tar.xz # latest&lt;br /&gt;
tar xf ports.tar.xz -C /usr/&lt;br /&gt;
&lt;br /&gt;
# time (fetch https://download.freebsd.org/ftp/ports/ports/ports.tar.xz ;         tar xf ports.tar.xz -C /usr/);&lt;br /&gt;
ports.tar.xz                                            41 MB  943 kBps    45s&lt;br /&gt;
real    1m10.018s&lt;br /&gt;
user    0m3.526s&lt;br /&gt;
sys     0m5.176s&lt;br /&gt;
&lt;br /&gt;
fetch https://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/ports.txz&lt;br /&gt;
tar xf ports.txz -C /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install source ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch https://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/src.txz&lt;br /&gt;
tar xf src.txz -C /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
how_to_compile_xigmanas_from_scratch.pdf&lt;br /&gt;
&lt;br /&gt;
https://forums.freebsd.org/threads/guide-using-git-to-manage-ports-source-and-documentation.79721/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone --depth=1 https://git.freebsd.org/ports.git /usr/ports&lt;br /&gt;
git clone --depth=1 https://git.freebsd.org/src.git /usr/src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Install kernel/base ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fetch --no-verify-peer http://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/kernel.txz&lt;br /&gt;
mkdir xigmanas/kernel-txz&lt;br /&gt;
tar xf kernel.txz -C xigmanas/kernel-txz&lt;br /&gt;
&lt;br /&gt;
fetch http://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/base.txz&lt;br /&gt;
mkdir xigmanas/base-txz&lt;br /&gt;
tar xf base.txz -C xigmanas/base-txz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install packages: ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y bash subversion pigz cdrtools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Delete all packages: ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg delete -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Getting XigmaNAS from svn ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /usr/local/xigmanas&lt;br /&gt;
cd /usr/local/xigmanas/&lt;br /&gt;
svn co https://svn.code.sf.net/p/xigmanas/code/trunk svn&lt;br /&gt;
&lt;br /&gt;
#cd svn; svn up -r9884 # 13.2.0.5 - Heighliner (revision 9884)&lt;br /&gt;
cd svn; svn up -r10024 # 13.3.0.5 - Hesterion (revision 10024)&lt;br /&gt;
&lt;br /&gt;
mkdir /usr/ports/distfiles&lt;br /&gt;
cp /usr/local/xigmanas/svn/build/ports/distfiles/*.{gz,zip} /usr/ports/distfiles/&lt;br /&gt;
ln -s /usr/local/xigmanas /root/xigmanas&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir /usr/local/xigmanas&lt;br /&gt;
cd /usr/local/xigmanas/&lt;br /&gt;
fetch https://sourceforge.net/code-snapshots/svn/x/xi/xigmanas/code/xigmanas-code-r9999-trunk.zip&lt;br /&gt;
sudo tar xf xigmanas-code-r9999-trunk.zip&lt;br /&gt;
sudo ln -s xigmanas-code-r9999-trunk svn&lt;br /&gt;
cp /usr/local/xigmanas/svn/build/ports/distfiles/*.{gz,zip} /usr/ports/distfiles/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Update Version ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo -n 14.1.0.7&amp;gt; /usr/local/xigmanas/svn/etc/prd.version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
binary version 14.1.0.7&lt;br /&gt;
&lt;br /&gt;
==== Compiling XigmaNAS ====&lt;br /&gt;
WITHOUT_X11 is unsupported, use WITHOUT=X11 # virtualbox-ose&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo WITHOUT_X11=yes &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
echo WITHOUT=X11 &amp;gt;&amp;gt; /etc/make.conf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export XIGMANAS_ROOTFS=/usr/local/xigmanas/rootfs/&lt;br /&gt;
export BATCH=yes&lt;br /&gt;
/usr/local/xigmanas/svn/build/make.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls /usr/local/xigmanas&lt;br /&gt;
XigmaNAS-x86-9.0.0.1.43.checksum builds&lt;br /&gt;
XigmaNAS-x86-LiveCD-9.0.0.1.43.iso rootfs&lt;br /&gt;
XigmaNAS-x86-embedded-9.0.0.1.43.img svn&lt;br /&gt;
bootloader work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make build-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y&lt;br /&gt;
make run-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== install deps via pkg =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports&lt;br /&gt;
for i in */; do &lt;br /&gt;
cd $i&lt;br /&gt;
make build-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y&lt;br /&gt;
cd ..&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports&lt;br /&gt;
for i in */; do &lt;br /&gt;
cd $i&lt;br /&gt;
make build-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y&lt;br /&gt;
make -j8 build ; make package &amp;amp;&amp;amp; cp work/pkg/* /var/cache/pkg/&lt;br /&gt;
cd ..&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Blog ===&lt;br /&gt;
Code highlighting&lt;br /&gt;
https://prismjs.com/#examples&lt;br /&gt;
=== History ===&lt;br /&gt;
freebsd mkdir(2) manpage history update&lt;br /&gt;
syscall was not in version 1 unix&lt;br /&gt;
it wasn't in version 6 either (see tom lions) syscalls:&lt;br /&gt;
https://warsus.github.io/lions-/&lt;br /&gt;
mkdir is not listed&lt;br /&gt;
&lt;br /&gt;
https://cgit.freebsd.org/src/plain/share/misc/bsd-family-tree?id=ea2b79b03eec2c1c49c8c04aa7c7a40bb5e41303&lt;br /&gt;
&lt;br /&gt;
mkdir syscall was added in BSD by Kirk McKuisick&lt;br /&gt;
https://www.youtube.com/watch?v=XUj2vCKtegU&amp;amp;t=736s&lt;br /&gt;
&lt;br /&gt;
https://gunkies.org/wiki/BSD&lt;br /&gt;
4.1c BSD - A beta of 4.2, and I think the first version of BSD sockets?&lt;br /&gt;
&lt;br /&gt;
https://gunkies.org/wiki/4.2_BSD&lt;br /&gt;
Date Released:	1983&lt;br /&gt;
&lt;br /&gt;
https://gunkies.org/wiki/Installing_4.1c_BSD_on_SIMH&lt;br /&gt;
You will need the following files from Bitsavers archive from the UCB_CSRG directory. I have used the files:&lt;br /&gt;
&lt;br /&gt;
4.1C_BSD_1of2.zip (http://bitsavers.informatik.uni-stuttgart.de/bits/UCB_CSRG/4.1C_BSD_1of2.zip)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
❯ grep mkdir.2 4.1C_BSD_1of2/burst/00004.txt&lt;br /&gt;
-rw-r--r-- 0/0            1516 1983-02-26 17:21:59 man/man2/mkdir.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
debootstrap unbuntu updates / symlink&lt;br /&gt;
&lt;br /&gt;
=== Fonts ===&lt;br /&gt;
https://github.com/emaste/fontstuff/tree/master&lt;br /&gt;
&lt;br /&gt;
https://docs.freebsd.org/en/books/handbook/bsdinstall/#bsdinstall-start&lt;br /&gt;
&lt;br /&gt;
FreeBSD 8x8 syscons font&lt;br /&gt;
&lt;br /&gt;
unifont https://unifoundry.com/unifont/unifont-utilities.html&lt;br /&gt;
&amp;lt;pre&amp;gt;xinch-filer02:/usr/ports# pkg install gnu-unifont-otf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;fetch https://raw.githubusercontent.com/emaste/fontstuff/master/hex2bdf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;unifont# ./hex2bdf iso-8x8.hex  &amp;gt; iso-8x8.bdf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;fontforge -lang=ff -c 'Open($1); Generate($2)' iso-8x8.bdf iso-8x8.woff2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linux Jail ===&lt;br /&gt;
https://wiki.freebsd.org/LinuxJails&lt;br /&gt;
&lt;br /&gt;
https://forums.freebsd.org/threads/running-linux-in-a-jail.90527/&lt;br /&gt;
&lt;br /&gt;
https://iocage.readthedocs.io/en/latest/debian.html&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qjail create -4 192.168.3.197 jammy&lt;br /&gt;
debootstrap --arch=amd64 --no-check-gpg jammy /usr/jails/jammy/compat/ubuntu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
finch:/usr/local/share/debootstrap/scripts# ln -s gutsy noble&lt;br /&gt;
debootstrap --arch=amd64 --no-check-gpg noble /usr/jails/noble/compat/ubuntu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xDev:/compat# for i in noble/var/cache/apt/archives/*.deb; do echo $i; tar xf $i -C unzip data.tar.zst ; tar xpf unzip/data.tar.zst -C noble; done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Errors ===&lt;br /&gt;
==== No Menu ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    XigmaNAS: 14.1.0.9 (revision 10142)                                                   &lt;br /&gt;
    Compiled: Mon Jul 15 08:12:52 CDT 2024 Platform: x64-liveusb                          &lt;br /&gt;
    Copyright (c) 2018-2024 XigmaNAS(R). All Rights Reserved.                             &lt;br /&gt;
    Visit www.xigmanas.com for regular system updates!                                    &lt;br /&gt;
                                                                                          &lt;br /&gt;
        WebGUI Address: http://                                                           &lt;br /&gt;
                                                                                          &lt;br /&gt;
        LAN Network IPv4 Address:                                                         &lt;br /&gt;
        LAN Network Interface:    vtnet0                                                  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FreeBSD/amd64 (xigmanas.internal) (ttyu0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FreeBSD/amd64 (xigmanas.internal) (ttyu0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FreeBSD/amd64 (xigmanas.internal) (ttyu0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Fix ====&lt;br /&gt;
Check for opie&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls ~/xigmanas/rootfs/usr/local/lib/libopie*&lt;br /&gt;
/root/xigmanas/rootfs/usr/local/lib/libopie.so&lt;br /&gt;
/root/xigmanas/rootfs/usr/local/lib/libopie.so.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
==== fdisk ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/fdisk&lt;br /&gt;
make extract&lt;br /&gt;
&lt;br /&gt;
egrep -B1 -A1 '^usage' work/fdisk-1.1/fdisk.c&lt;br /&gt;
&lt;br /&gt;
sed -i '.orig' 's/^\([a-z][a-zA-Z0-9_]*\)()$/\1(void)/g' /usr/local/xigmanas/svn/build/ports/fdisk/work/fdisk-1.1/fdisk.c&lt;br /&gt;
&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/fdisk/work/fdisk-1.1&lt;br /&gt;
diff -u fdisk.c.orig fdisk.c &amp;gt; ../../files/patch-fdisk.c &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== isboot ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/isboot/&lt;br /&gt;
make extract&lt;br /&gt;
&lt;br /&gt;
grep pmap_unmapdev work/isboot-0.3.3/src/ibft.c&lt;br /&gt;
&lt;br /&gt;
sed -i '.orig' 's/pmap_unmapdev((vm_offset_t)vaddr,/pmap_unmapdev((void *)(uintptr_t)vaddr,/g' /usr/local/xigmanas/svn/build/ports/isboot/work/isboot-0.3.3/src/ibft.c&lt;br /&gt;
&lt;br /&gt;
sed -i '.orig' 's/DVIMAGE$/DVIMAGE\nCFLAGS+= -Wno-error=unused-but-set-variable\n/g' /usr/local/xigmanas/svn/build/ports/isboot/work/isboot-0.3.3/src/Makefile&lt;br /&gt;
&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/isboot/work/isboot-0.3.3/src&lt;br /&gt;
diff -u ibft.c.orig ibft.c &amp;gt; ../../../files/patch-ibft.c&lt;br /&gt;
diff -u Makefile.orig Makefile &amp;gt; ../../../files/patch-Makefile&lt;br /&gt;
&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/isboot/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== fuppes ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# bash automake gettext-tools libtool pkgconf newest ports?&lt;br /&gt;
# autoreconf libtool gettext-tools pkgconf&lt;br /&gt;
cd /usr/local/xigmanas/svn/build/ports/fuppes&lt;br /&gt;
make extract&lt;br /&gt;
grep 'pStream-&amp;gt;codec-&amp;gt;' work/fuppes-0.692/src/plugins/metadata_libavformat.c&lt;br /&gt;
sed -i '.orig' 's/pStream-&amp;gt;codec-&amp;gt;/pStream-&amp;gt;codecpar-&amp;gt;/g' work/fuppes-0.692/src/plugins/metadata_libavformat.c &lt;br /&gt;
&lt;br /&gt;
diff -u /usr/local/xigmanas/svn/build/ports/fuppes/work/fuppes-0.692/src/plugins/metadata_libavformat.c.orig /usr/local/xigmanas/svn/build/ports/fuppes/work/fuppes-0.692/src/plugins/metadata_libavformat.c &amp;gt; files/patch-src__plugins__metadata_libavformat.c&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== netatalk3 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@xigmanas:/usr/local/xigmanas/svn/build/ports/netatalk3 # grep -r FreeBSD . | grep LINUX&lt;br /&gt;
./work/netatalk-3.1.14/etc/uams/uams_dhx_pam.c:#if defined LINUX || defined __FreeBSD__&lt;br /&gt;
./work/netatalk-3.1.14/etc/uams/uams_dhx2_pam.c:#if defined LINUX || defined __FreeBSD__&lt;br /&gt;
./work/netatalk-3.1.14/etc/uams/uams_pam.c:#if defined LINUX || defined __FreeBSD__&lt;br /&gt;
root@xigmanas:/usr/local/xigmanas/svn/build/ports/netatalk3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@xigmanas:/usr/ports/net/netatalk3/files # ls -l&lt;br /&gt;
total 40&lt;br /&gt;
-rw-r--r--  1 root wheel  646 Apr  6  2021 netatalk.in&lt;br /&gt;
-rw-r--r--  1 root wheel  188 Apr  6  2021 pam.conf&lt;br /&gt;
-rw-r--r--  1 root wheel 1767 May  1  2022 patch-config_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  556 Oct  6 23:17 patch-configure&lt;br /&gt;
-rw-r--r--  1 root wheel 1007 Feb 27  2023 patch-etc_afpd_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  273 Jul 20  2016 patch-etc_cnid__dbd_cnid__metad.c&lt;br /&gt;
-rw-r--r--  1 root wheel  341 May  1  2022 patch-etc_netatalk_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  380 Nov 22 16:10 patch-etc_uams_uams__dhx2__pam.c&lt;br /&gt;
-rw-r--r--  1 root wheel  581 Nov 22 16:10 patch-etc_uams_uams__dhx__pam.c&lt;br /&gt;
-rw-r--r--  1 root wheel  416 Nov 22 16:10 patch-etc_uams_uams__pam.c&lt;br /&gt;
root@xigmanas:/usr/ports/net/netatalk3/files # cat patch-etc_uams_uams__dhx2__pam.c&lt;br /&gt;
--- etc/uams/uams_dhx2_pam.c.orig       2023-11-22 15:19:12 UTC&lt;br /&gt;
+++ etc/uams/uams_dhx2_pam.c&lt;br /&gt;
@@ -136,7 +136,7 @@ error:&lt;br /&gt;
  * echo off means password.&lt;br /&gt;
  */&lt;br /&gt;
 static int PAM_conv (int num_msg,&lt;br /&gt;
-#ifdef LINUX&lt;br /&gt;
+#if defined(LINUX) || (defined(FREEBSD) &amp;amp;&amp;amp; __FreeBSD_version &amp;gt;= 1400000)&lt;br /&gt;
                      const struct pam_message **msg,&lt;br /&gt;
 #else&lt;br /&gt;
                      struct pam_message **msg,&lt;br /&gt;
root@xigmanas:/usr/ports/net/netatalk3/files # ls -l /usr/local/xigmanas/svn/build/ports/netatalk3/files/&lt;br /&gt;
total 24&lt;br /&gt;
-rw-r--r--  1 root wheel 2563 Dec 28 17:22 netatalk.in&lt;br /&gt;
-rw-r--r--  1 root wheel 1767 Dec 28 17:22 patch-config_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  508 Dec 28 17:22 patch-configure&lt;br /&gt;
-rw-r--r--  1 root wheel 1007 Dec 28 17:22 patch-etc_afpd_Makefile.in&lt;br /&gt;
-rw-r--r--  1 root wheel  273 Dec 28 17:22 patch-etc_cnid__dbd_cnid__metad.c&lt;br /&gt;
-rw-r--r--  1 root wheel  341 Dec 28 17:22 patch-etc_netatalk_Makefile.in&lt;br /&gt;
root@xigmanas:/usr/ports/net/netatalk3/files # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=434</id>
		<title>TrueNAS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=434"/>
		<updated>2025-03-30T03:18:13Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* Building TrueNAS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== BSD Apps ===&lt;br /&gt;
https://github.com/tschettervictor/bsd-apps&lt;br /&gt;
=== Building TrueNAS ===&lt;br /&gt;
https://github.com/truenas/core-build&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y git&lt;br /&gt;
git clone https://github.com/truenas/build /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/build&lt;br /&gt;
make bootstrap-pkgs&lt;br /&gt;
python3 -m ensurepip&lt;br /&gt;
pip3 install six&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make checkout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make update&lt;br /&gt;
make release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Building [[TrueNAS-14.2]] ===&lt;br /&gt;
{{:TrueNAS-14.2}}&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=TrueNAS-14.2&amp;diff=433</id>
		<title>TrueNAS-14.2</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=TrueNAS-14.2&amp;diff=433"/>
		<updated>2025-03-29T19:58:53Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* Building TrueNAS 14.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y git&lt;br /&gt;
git clone https://github.com/truenas/build /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: orange;&amp;quot;&amp;gt;ln -s /usr/bin/xz /usr/local/bin/pxz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make bootstrap-pkgs&lt;br /&gt;
python3 -m ensurepip&lt;br /&gt;
pip3 install six&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make checkout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: orange;&amp;quot;&amp;gt;&lt;br /&gt;
cd /usr/build/freenas/_BE&lt;br /&gt;
mv /usr/ports ports-142&lt;br /&gt;
ln -s ports-142 ports&lt;br /&gt;
&lt;br /&gt;
mv /usr/src os-142&lt;br /&gt;
ln -s os-142 os&lt;br /&gt;
tnc:/usr/build/freenas/_BE/ports-132# cp -rp .* ../ports-142/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#make update&lt;br /&gt;
make release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== poudriere ====&lt;br /&gt;
tnc:/usr/build# rg 13.3-RELEASE .&lt;br /&gt;
./build/profiles/freenas/env.pyd&lt;br /&gt;
&lt;br /&gt;
==== update kernel====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tnc:/usr/build/build/profiles/freenas/kernel# diff -u GENERIC142.orig TRUENAS.amd64 &amp;gt; kern&lt;br /&gt;
el142conf.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
awk '/\t(esp|amr|iir|twa|ixnvdimm)\t/ {print &amp;quot;#&amp;quot; $0}' build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
sed -E -I.bak 's/.*\t(esp|amr|iir|twa|ixnvdimm)\t.*/#&amp;amp;/' /usr/build/build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; stage 1: configuring the kernel&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
cd /usr/build/freenas/_BE/os-142/sys/amd64/conf;  PATH=/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin  config  -d /usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/sys/TrueNAS.amd64  -I '/usr/build/freenas/_BE/objs' -I '/usr/build/freenas/_BE/os-142/sys/amd64/conf'  '/usr/build/freenas/_BE/objs/TrueNAS.amd64'&lt;br /&gt;
config: Error: device &amp;quot;esp&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;amr&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;iir&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;twa&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;ixnvdimm&amp;quot; is unknown&lt;br /&gt;
config: 5 errors&lt;br /&gt;
&lt;br /&gt;
make[4]: stopped in /usr/build/freenas/_BE/os-142&lt;br /&gt;
&lt;br /&gt;
make[3]: stopped in /usr/build/freenas/_BE/os&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tnc:/usr/build# rg 13.3-RELEASE .&lt;br /&gt;
./build/profiles/freenas/env.pyd&lt;br /&gt;
2:FREEBSD_RELEASE_VERSION = &amp;quot;13.3-RELEASE&amp;quot;&lt;br /&gt;
tnc:/usr/build# vi ./build/profiles/freenas/env.pyd&lt;br /&gt;
tnc:/usr/build# cd /usr/build/ ; make release&lt;br /&gt;
[0:00:00] ==&amp;gt; NOTICE: Selected profile: freenas&lt;br /&gt;
[0:00:00] ==&amp;gt; NOTICE: Build timestamp: 202503291947&lt;br /&gt;
[0:00:00] ==&amp;gt; Checking build environment...&lt;br /&gt;
[0:00:00] ==&amp;gt; Build environment is OK&lt;br /&gt;
[0:00:00] ==&amp;gt; Sandbox is fully checked out&lt;br /&gt;
Doing executing target release on host: filer02.condo.ho.stna.me&lt;br /&gt;
Build directory: /usr/obj/usr/build&lt;br /&gt;
[0:00:00] ==&amp;gt; Building world from /usr/build/freenas/_BE/os&lt;br /&gt;
[0:00:00] ==&amp;gt; Log file: /usr/build/freenas/_BE/objs/logs/buildworld&lt;br /&gt;
[0:00:30] ==&amp;gt; Building kernel TrueNAS.amd64 from /usr/build/freenas/_BE/os&lt;br /&gt;
[0:00:30] ==&amp;gt; Log file: /usr/build/freenas/_BE/objs/logs/buildkernel&lt;br /&gt;
[0:00:33] ==&amp;gt; Building kernel TrueNAS.amd64-DEBUG from /usr/build/freenas/_BE/os&lt;br /&gt;
[0:00:33] ==&amp;gt; Log file: /usr/build/freenas/_BE/objs/logs/buildkernel-debug&lt;br /&gt;
[0:00:36] ==&amp;gt; Installing world in /usr/build/freenas/_BE/objs/jail&lt;br /&gt;
[0:00:36] ==&amp;gt; Log file: /usr/build/freenas/_BE/objs/logs/jail-installworld&lt;br /&gt;
[0:01:23] ==&amp;gt; Creating distribution in /usr/build/freenas/_BE/objs/jail&lt;br /&gt;
[0:01:23] ==&amp;gt; Log file: /usr/build/freenas/_BE/objs/logs/jail-distribution&lt;br /&gt;
[0:01:38] ==&amp;gt; Creating ports overlay...&lt;br /&gt;
[0:01:44] ==&amp;gt; Creating ports list&lt;br /&gt;
[0:01:45] ==&amp;gt; Merging ports tree /usr/build/freenas/_BE/freenas/nas_ports&lt;br /&gt;
[0:01:45] ==&amp;gt; Merging ports tree /usr/build/freenas/_BE/webui/ports&lt;br /&gt;
[00:00:00] Creating the reference jail... done&lt;br /&gt;
[00:00:20] Mounting system devices for ja-wongk-p&lt;br /&gt;
[00:00:20] Warning: Using packages from previously failed, or uncommitted, build: /usr/build/freenas/_BE/objs/ports/data/packages/ja-wongk-p/.building&lt;br /&gt;
[00:00:20] Mounting ports from: /usr/build/freenas/_BE/objs/ports-overlay&lt;br /&gt;
[00:00:20] Mounting packages from: /usr/build/freenas/_BE/objs/ports/data/packages/ja-wongk-p&lt;br /&gt;
[00:00:20] Mounting distfiles from: /usr/build/freenas/_BE/objs/ports/distfiles&lt;br /&gt;
[00:00:20] Copying /var/db/ports from: /usr/build/freenas/_BE/objs/poudriere/etc/poudriere.d/options&lt;br /&gt;
[00:00:21] Appending to make.conf: /usr/build/freenas/_BE/objs/poudriere/etc/poudriere.d/make.conf&lt;br /&gt;
/etc/resolv.conf -&amp;gt; /usr/build/freenas/_BE/objs/ports/data/.m/ja-wongk-p/ref/etc/resolv.conf&lt;br /&gt;
[00:00:21] Starting jail ja-wongk-p&lt;br /&gt;
Updating /var/run/os-release done.&lt;br /&gt;
[00:00:21] Will build as root:wheel (0:0)&lt;br /&gt;
[00:00:21] Ports supports: FLAVORS SUBPACKAGES SELECTED_OPTIONS&lt;br /&gt;
[00:00:22] Inspecting /usr/build/freenas/_BE/objs/ports/data/.m/ja-wongk-p/ref//usr/ports&lt;br /&gt;
for modifications to git checkout... yes&lt;br /&gt;
[00:01:51] Ports top-level git hash: f6a305c193ed (dirty)&lt;br /&gt;
[00:01:51] Acquiring build logs lock for ja-wongk-p... done&lt;br /&gt;
[00:01:51] Logs: /usr/build/freenas/_BE/objs/ports/data/logs/bulk/ja-wongk-p/2025-03-29_14&lt;br /&gt;
h49m33s&lt;br /&gt;
[00:01:51] Loading MOVED for /usr/build/freenas/_BE/objs/ports/data/.m/ja-wongk-p/ref/usr/ports&lt;br /&gt;
[00:01:51] Gathering ports metadata&lt;br /&gt;
[00:01:51] Error: MOVED: devel/libhyve-remote EXPIRED 2023-03-19 Has expired: Broken since 2020&lt;br /&gt;
[00:01:51] Error: Nonexistent origin listed: dns/inadyn-troglobit&lt;br /&gt;
[00:01:51] Error: Nonexistent origin listed: net/samba&lt;br /&gt;
[00:01:51] Error: Nonexistent origin listed: sysutils/areca-cli&lt;br /&gt;
[00:01:51] Error: Nonexistent origin listed: sysutils/scanlnk&lt;br /&gt;
[00:01:51] Error: Nonexistent origin listed: sysutils/sedutil&lt;br /&gt;
[00:01:51] Error: Nonexistent origin listed: sysutils/throttle&lt;br /&gt;
[00:01:51] Error: MOVED: www/py-ws4py EXPIRED 2022-09-30 Has expired: Upstream abandoned&lt;br /&gt;
[00:01:51] Error: /usr/local/share/poudriere/bulk.sh:gather_port_vars:125:Fatal errors encountered gathering initial ports metadata&lt;br /&gt;
[ja-wongk-p] [2025-03-29_14h49m33s] [crashed] Time: 00:00:00&lt;br /&gt;
[00:01:51] Logs: /usr/build/freenas/_BE/objs/ports/data/logs/bulk/ja-wongk-p/2025-03-29_14h49m33s&lt;br /&gt;
[00:01:52] Cleaning up&lt;br /&gt;
[00:01:52] Unmounting file systems&lt;br /&gt;
[0:03:42] ==&amp;gt; ERROR: Ports build failed&lt;br /&gt;
[0:03:42] ==&amp;gt; Cleaning up poudriere environment...&lt;br /&gt;
[0:03:42] ==&amp;gt; Unmounting ports overlay...&lt;br /&gt;
*** Error code 1&lt;br /&gt;
&lt;br /&gt;
Stop.&lt;br /&gt;
make[2]: stopped in /usr/obj/usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=432</id>
		<title>TrueNAS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=432"/>
		<updated>2025-03-29T19:58:18Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* Building TrueNAS 14.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Building TrueNAS ===&lt;br /&gt;
https://github.com/truenas/core-build&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y git&lt;br /&gt;
git clone https://github.com/truenas/build /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/build&lt;br /&gt;
make bootstrap-pkgs&lt;br /&gt;
python3 -m ensurepip&lt;br /&gt;
pip3 install six&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make checkout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make update&lt;br /&gt;
make release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Building [[TrueNAS-14.2]] ===&lt;br /&gt;
{{:TrueNAS-14.2}}&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=TrueNAS-14.2&amp;diff=431</id>
		<title>TrueNAS-14.2</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=TrueNAS-14.2&amp;diff=431"/>
		<updated>2025-03-29T19:56:38Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Building TrueNAS 14.2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y git&lt;br /&gt;
git clone https://github.com/truenas/build /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: orange;&amp;quot;&amp;gt;ln -s /usr/bin/xz /usr/local/bin/pxz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make bootstrap-pkgs&lt;br /&gt;
python3 -m ensurepip&lt;br /&gt;
pip3 install six&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make checkout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: orange;&amp;quot;&amp;gt;&lt;br /&gt;
cd /usr/build/freenas/_BE&lt;br /&gt;
mv /usr/ports ports-142&lt;br /&gt;
ln -s ports-142 ports&lt;br /&gt;
&lt;br /&gt;
mv /usr/src os-142&lt;br /&gt;
ln -s os-142 os&lt;br /&gt;
tnc:/usr/build/freenas/_BE/ports-132# cp -rp .* ../ports-142/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#make update&lt;br /&gt;
make release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== poudriere ====&lt;br /&gt;
tnc:/usr/build# rg 13.3-RELEASE .&lt;br /&gt;
./build/profiles/freenas/env.pyd&lt;br /&gt;
&lt;br /&gt;
==== update kernel====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tnc:/usr/build/build/profiles/freenas/kernel# diff -u GENERIC142.orig TRUENAS.amd64 &amp;gt; kern&lt;br /&gt;
el142conf.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
awk '/\t(esp|amr|iir|twa|ixnvdimm)\t/ {print &amp;quot;#&amp;quot; $0}' build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
sed -E -I.bak 's/.*\t(esp|amr|iir|twa|ixnvdimm)\t.*/#&amp;amp;/' /usr/build/build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; stage 1: configuring the kernel&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
cd /usr/build/freenas/_BE/os-142/sys/amd64/conf;  PATH=/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin  config  -d /usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/sys/TrueNAS.amd64  -I '/usr/build/freenas/_BE/objs' -I '/usr/build/freenas/_BE/os-142/sys/amd64/conf'  '/usr/build/freenas/_BE/objs/TrueNAS.amd64'&lt;br /&gt;
config: Error: device &amp;quot;esp&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;amr&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;iir&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;twa&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;ixnvdimm&amp;quot; is unknown&lt;br /&gt;
config: 5 errors&lt;br /&gt;
&lt;br /&gt;
make[4]: stopped in /usr/build/freenas/_BE/os-142&lt;br /&gt;
&lt;br /&gt;
make[3]: stopped in /usr/build/freenas/_BE/os&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tnc:/usr/build# rg 13.3-RELEASE .&lt;br /&gt;
./build/profiles/freenas/env.pyd&lt;br /&gt;
2:FREEBSD_RELEASE_VERSION = &amp;quot;13.3-RELEASE&amp;quot;&lt;br /&gt;
tnc:/usr/build# vi ./build/profiles/freenas/env.pyd&lt;br /&gt;
tnc:/usr/build# cd /usr/build/ ; make release&lt;br /&gt;
[0:00:00] ==&amp;gt; NOTICE: Selected profile: freenas&lt;br /&gt;
[0:00:00] ==&amp;gt; NOTICE: Build timestamp: 202503291947&lt;br /&gt;
[0:00:00] ==&amp;gt; Checking build environment...&lt;br /&gt;
[0:00:00] ==&amp;gt; Build environment is OK&lt;br /&gt;
[0:00:00] ==&amp;gt; Sandbox is fully checked out&lt;br /&gt;
Doing executing target release on host: filer02.condo.ho.stna.me&lt;br /&gt;
Build directory: /usr/obj/usr/build&lt;br /&gt;
[0:00:00] ==&amp;gt; Building world from /usr/build/freenas/_BE/os&lt;br /&gt;
[0:00:00] ==&amp;gt; Log file: /usr/build/freenas/_BE/objs/logs/buildworld&lt;br /&gt;
[0:00:30] ==&amp;gt; Building kernel TrueNAS.amd64 from /usr/build/freenas/_BE/os&lt;br /&gt;
[0:00:30] ==&amp;gt; Log file: /usr/build/freenas/_BE/objs/logs/buildkernel&lt;br /&gt;
[0:00:33] ==&amp;gt; Building kernel TrueNAS.amd64-DEBUG from /usr/build/freenas/_BE/os&lt;br /&gt;
[0:00:33] ==&amp;gt; Log file: /usr/build/freenas/_BE/objs/logs/buildkernel-debug&lt;br /&gt;
[0:00:36] ==&amp;gt; Installing world in /usr/build/freenas/_BE/objs/jail&lt;br /&gt;
[0:00:36] ==&amp;gt; Log file: /usr/build/freenas/_BE/objs/logs/jail-installworld&lt;br /&gt;
[0:01:23] ==&amp;gt; Creating distribution in /usr/build/freenas/_BE/objs/jail&lt;br /&gt;
[0:01:23] ==&amp;gt; Log file: /usr/build/freenas/_BE/objs/logs/jail-distribution&lt;br /&gt;
[0:01:38] ==&amp;gt; Creating ports overlay...&lt;br /&gt;
[0:01:44] ==&amp;gt; Creating ports list&lt;br /&gt;
[0:01:45] ==&amp;gt; Merging ports tree /usr/build/freenas/_BE/freenas/nas_ports&lt;br /&gt;
[0:01:45] ==&amp;gt; Merging ports tree /usr/build/freenas/_BE/webui/ports&lt;br /&gt;
[00:00:00] Creating the reference jail... done&lt;br /&gt;
[00:00:20] Mounting system devices for ja-wongk-p&lt;br /&gt;
[00:00:20] Warning: Using packages from previously failed, or uncommitted, build: /usr/build/freenas/_BE/objs/ports/data/packages/ja-wongk-p/.building&lt;br /&gt;
[00:00:20] Mounting ports from: /usr/build/freenas/_BE/objs/ports-overlay&lt;br /&gt;
[00:00:20] Mounting packages from: /usr/build/freenas/_BE/objs/ports/data/packages/ja-wongk-p&lt;br /&gt;
[00:00:20] Mounting distfiles from: /usr/build/freenas/_BE/objs/ports/distfiles&lt;br /&gt;
[00:00:20] Copying /var/db/ports from: /usr/build/freenas/_BE/objs/poudriere/etc/poudriere.d/options&lt;br /&gt;
[00:00:21] Appending to make.conf: /usr/build/freenas/_BE/objs/poudriere/etc/poudriere.d/make.conf&lt;br /&gt;
/etc/resolv.conf -&amp;gt; /usr/build/freenas/_BE/objs/ports/data/.m/ja-wongk-p/ref/etc/resolv.conf&lt;br /&gt;
[00:00:21] Starting jail ja-wongk-p&lt;br /&gt;
Updating /var/run/os-release done.&lt;br /&gt;
[00:00:21] Will build as root:wheel (0:0)&lt;br /&gt;
[00:00:21] Ports supports: FLAVORS SUBPACKAGES SELECTED_OPTIONS&lt;br /&gt;
[00:00:22] Inspecting /usr/build/freenas/_BE/objs/ports/data/.m/ja-wongk-p/ref//usr/ports&lt;br /&gt;
for modifications to git checkout... yes&lt;br /&gt;
[00:01:51] Ports top-level git hash: f6a305c193ed (dirty)&lt;br /&gt;
[00:01:51] Acquiring build logs lock for ja-wongk-p... done&lt;br /&gt;
[00:01:51] Logs: /usr/build/freenas/_BE/objs/ports/data/logs/bulk/ja-wongk-p/2025-03-29_14&lt;br /&gt;
h49m33s&lt;br /&gt;
[00:01:51] Loading MOVED for /usr/build/freenas/_BE/objs/ports/data/.m/ja-wongk-p/ref/usr/ports&lt;br /&gt;
[00:01:51] Gathering ports metadata&lt;br /&gt;
[00:01:51] Error: MOVED: devel/libhyve-remote EXPIRED 2023-03-19 Has expired: Broken since 2020&lt;br /&gt;
[00:01:51] Error: Nonexistent origin listed: dns/inadyn-troglobit&lt;br /&gt;
[00:01:51] Error: Nonexistent origin listed: net/samba&lt;br /&gt;
[00:01:51] Error: Nonexistent origin listed: sysutils/areca-cli&lt;br /&gt;
[00:01:51] Error: Nonexistent origin listed: sysutils/scanlnk&lt;br /&gt;
[00:01:51] Error: Nonexistent origin listed: sysutils/sedutil&lt;br /&gt;
[00:01:51] Error: Nonexistent origin listed: sysutils/throttle&lt;br /&gt;
[00:01:51] Error: MOVED: www/py-ws4py EXPIRED 2022-09-30 Has expired: Upstream abandoned&lt;br /&gt;
[00:01:51] Error: /usr/local/share/poudriere/bulk.sh:gather_port_vars:125:Fatal errors encountered gathering initial ports metadata&lt;br /&gt;
[ja-wongk-p] [2025-03-29_14h49m33s] [crashed] Time: 00:00:00&lt;br /&gt;
[00:01:51] Logs: /usr/build/freenas/_BE/objs/ports/data/logs/bulk/ja-wongk-p/2025-03-29_14h49m33s&lt;br /&gt;
[00:01:52] Cleaning up&lt;br /&gt;
[00:01:52] Unmounting file systems&lt;br /&gt;
[0:03:42] ==&amp;gt; ERROR: Ports build failed&lt;br /&gt;
[0:03:42] ==&amp;gt; Cleaning up poudriere environment...&lt;br /&gt;
[0:03:42] ==&amp;gt; Unmounting ports overlay...&lt;br /&gt;
*** Error code 1&lt;br /&gt;
&lt;br /&gt;
Stop.&lt;br /&gt;
make[2]: stopped in /usr/obj/usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=TrueNAS-14.2&amp;diff=430</id>
		<title>TrueNAS-14.2</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=TrueNAS-14.2&amp;diff=430"/>
		<updated>2025-03-29T19:54:37Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: Created page with &amp;quot; &amp;lt;pre&amp;gt; tnc:/usr/build# rg 13.3-RELEASE . ./build/profiles/freenas/env.pyd 2:FREEBSD_RELEASE_VERSION = &amp;quot;13.3-RELEASE&amp;quot; tnc:/usr/build# vi ./build/profiles/freenas/env.pyd tnc:/u...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tnc:/usr/build# rg 13.3-RELEASE .&lt;br /&gt;
./build/profiles/freenas/env.pyd&lt;br /&gt;
2:FREEBSD_RELEASE_VERSION = &amp;quot;13.3-RELEASE&amp;quot;&lt;br /&gt;
tnc:/usr/build# vi ./build/profiles/freenas/env.pyd&lt;br /&gt;
tnc:/usr/build# cd /usr/build/ ; make release&lt;br /&gt;
[0:00:00] ==&amp;gt; NOTICE: Selected profile: freenas&lt;br /&gt;
[0:00:00] ==&amp;gt; NOTICE: Build timestamp: 202503291947&lt;br /&gt;
[0:00:00] ==&amp;gt; Checking build environment...&lt;br /&gt;
[0:00:00] ==&amp;gt; Build environment is OK&lt;br /&gt;
[0:00:00] ==&amp;gt; Sandbox is fully checked out&lt;br /&gt;
Doing executing target release on host: filer02.condo.ho.stna.me&lt;br /&gt;
Build directory: /usr/obj/usr/build&lt;br /&gt;
[0:00:00] ==&amp;gt; Building world from /usr/build/freenas/_BE/os&lt;br /&gt;
[0:00:00] ==&amp;gt; Log file: /usr/build/freenas/_BE/objs/logs/buildworld&lt;br /&gt;
[0:00:30] ==&amp;gt; Building kernel TrueNAS.amd64 from /usr/build/freenas/_BE/os&lt;br /&gt;
[0:00:30] ==&amp;gt; Log file: /usr/build/freenas/_BE/objs/logs/buildkernel&lt;br /&gt;
[0:00:33] ==&amp;gt; Building kernel TrueNAS.amd64-DEBUG from /usr/build/freenas/_BE/os&lt;br /&gt;
[0:00:33] ==&amp;gt; Log file: /usr/build/freenas/_BE/objs/logs/buildkernel-debug&lt;br /&gt;
[0:00:36] ==&amp;gt; Installing world in /usr/build/freenas/_BE/objs/jail&lt;br /&gt;
[0:00:36] ==&amp;gt; Log file: /usr/build/freenas/_BE/objs/logs/jail-installworld&lt;br /&gt;
[0:01:23] ==&amp;gt; Creating distribution in /usr/build/freenas/_BE/objs/jail&lt;br /&gt;
[0:01:23] ==&amp;gt; Log file: /usr/build/freenas/_BE/objs/logs/jail-distribution&lt;br /&gt;
[0:01:38] ==&amp;gt; Creating ports overlay...&lt;br /&gt;
[0:01:44] ==&amp;gt; Creating ports list&lt;br /&gt;
[0:01:45] ==&amp;gt; Merging ports tree /usr/build/freenas/_BE/freenas/nas_ports&lt;br /&gt;
[0:01:45] ==&amp;gt; Merging ports tree /usr/build/freenas/_BE/webui/ports&lt;br /&gt;
[00:00:00] Creating the reference jail... done&lt;br /&gt;
[00:00:20] Mounting system devices for ja-wongk-p&lt;br /&gt;
[00:00:20] Warning: Using packages from previously failed, or uncommitted, build: /usr/build/freenas/_BE/objs/ports/data/packages/ja-wongk-p/.building&lt;br /&gt;
[00:00:20] Mounting ports from: /usr/build/freenas/_BE/objs/ports-overlay&lt;br /&gt;
[00:00:20] Mounting packages from: /usr/build/freenas/_BE/objs/ports/data/packages/ja-wongk-p&lt;br /&gt;
[00:00:20] Mounting distfiles from: /usr/build/freenas/_BE/objs/ports/distfiles&lt;br /&gt;
[00:00:20] Copying /var/db/ports from: /usr/build/freenas/_BE/objs/poudriere/etc/poudriere.d/options&lt;br /&gt;
[00:00:21] Appending to make.conf: /usr/build/freenas/_BE/objs/poudriere/etc/poudriere.d/make.conf&lt;br /&gt;
/etc/resolv.conf -&amp;gt; /usr/build/freenas/_BE/objs/ports/data/.m/ja-wongk-p/ref/etc/resolv.conf&lt;br /&gt;
[00:00:21] Starting jail ja-wongk-p&lt;br /&gt;
Updating /var/run/os-release done.&lt;br /&gt;
[00:00:21] Will build as root:wheel (0:0)&lt;br /&gt;
[00:00:21] Ports supports: FLAVORS SUBPACKAGES SELECTED_OPTIONS&lt;br /&gt;
[00:00:22] Inspecting /usr/build/freenas/_BE/objs/ports/data/.m/ja-wongk-p/ref//usr/ports&lt;br /&gt;
for modifications to git checkout... yes&lt;br /&gt;
[00:01:51] Ports top-level git hash: f6a305c193ed (dirty)&lt;br /&gt;
[00:01:51] Acquiring build logs lock for ja-wongk-p... done&lt;br /&gt;
[00:01:51] Logs: /usr/build/freenas/_BE/objs/ports/data/logs/bulk/ja-wongk-p/2025-03-29_14&lt;br /&gt;
h49m33s&lt;br /&gt;
[00:01:51] Loading MOVED for /usr/build/freenas/_BE/objs/ports/data/.m/ja-wongk-p/ref/usr/ports&lt;br /&gt;
[00:01:51] Gathering ports metadata&lt;br /&gt;
[00:01:51] Error: MOVED: devel/libhyve-remote EXPIRED 2023-03-19 Has expired: Broken since 2020&lt;br /&gt;
[00:01:51] Error: Nonexistent origin listed: dns/inadyn-troglobit&lt;br /&gt;
[00:01:51] Error: Nonexistent origin listed: net/samba&lt;br /&gt;
[00:01:51] Error: Nonexistent origin listed: sysutils/areca-cli&lt;br /&gt;
[00:01:51] Error: Nonexistent origin listed: sysutils/scanlnk&lt;br /&gt;
[00:01:51] Error: Nonexistent origin listed: sysutils/sedutil&lt;br /&gt;
[00:01:51] Error: Nonexistent origin listed: sysutils/throttle&lt;br /&gt;
[00:01:51] Error: MOVED: www/py-ws4py EXPIRED 2022-09-30 Has expired: Upstream abandoned&lt;br /&gt;
[00:01:51] Error: /usr/local/share/poudriere/bulk.sh:gather_port_vars:125:Fatal errors encountered gathering initial ports metadata&lt;br /&gt;
[ja-wongk-p] [2025-03-29_14h49m33s] [crashed] Time: 00:00:00&lt;br /&gt;
[00:01:51] Logs: /usr/build/freenas/_BE/objs/ports/data/logs/bulk/ja-wongk-p/2025-03-29_14h49m33s&lt;br /&gt;
[00:01:52] Cleaning up&lt;br /&gt;
[00:01:52] Unmounting file systems&lt;br /&gt;
[0:03:42] ==&amp;gt; ERROR: Ports build failed&lt;br /&gt;
[0:03:42] ==&amp;gt; Cleaning up poudriere environment...&lt;br /&gt;
[0:03:42] ==&amp;gt; Unmounting ports overlay...&lt;br /&gt;
*** Error code 1&lt;br /&gt;
&lt;br /&gt;
Stop.&lt;br /&gt;
make[2]: stopped in /usr/obj/usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=429</id>
		<title>TrueNAS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=429"/>
		<updated>2025-03-29T19:47:38Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* update kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Building TrueNAS ===&lt;br /&gt;
https://github.com/truenas/core-build&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y git&lt;br /&gt;
git clone https://github.com/truenas/build /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/build&lt;br /&gt;
make bootstrap-pkgs&lt;br /&gt;
python3 -m ensurepip&lt;br /&gt;
pip3 install six&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make checkout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make update&lt;br /&gt;
make release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Building TrueNAS 14.2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y git&lt;br /&gt;
git clone https://github.com/truenas/build /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: orange;&amp;quot;&amp;gt;ln -s /usr/bin/xz /usr/local/bin/pxz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make bootstrap-pkgs&lt;br /&gt;
python3 -m ensurepip&lt;br /&gt;
pip3 install six&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make checkout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: orange;&amp;quot;&amp;gt;&lt;br /&gt;
cd /usr/build/freenas/_BE&lt;br /&gt;
mv /usr/ports ports-142&lt;br /&gt;
ln -s ports-142 ports&lt;br /&gt;
&lt;br /&gt;
mv /usr/src os-142&lt;br /&gt;
ln -s os-142 os&lt;br /&gt;
tnc:/usr/build/freenas/_BE/ports-132# cp -rp .* ../ports-142/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#make update&lt;br /&gt;
make release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== poudriere ====&lt;br /&gt;
tnc:/usr/build# rg 13.3-RELEASE .&lt;br /&gt;
./build/profiles/freenas/env.pyd&lt;br /&gt;
&lt;br /&gt;
==== update kernel====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tnc:/usr/build/build/profiles/freenas/kernel# diff -u GENERIC142.orig TRUENAS.amd64 &amp;gt; kern&lt;br /&gt;
el142conf.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
awk '/\t(esp|amr|iir|twa|ixnvdimm)\t/ {print &amp;quot;#&amp;quot; $0}' build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
sed -E -I.bak 's/.*\t(esp|amr|iir|twa|ixnvdimm)\t.*/#&amp;amp;/' /usr/build/build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; stage 1: configuring the kernel&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
cd /usr/build/freenas/_BE/os-142/sys/amd64/conf;  PATH=/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin  config  -d /usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/sys/TrueNAS.amd64  -I '/usr/build/freenas/_BE/objs' -I '/usr/build/freenas/_BE/os-142/sys/amd64/conf'  '/usr/build/freenas/_BE/objs/TrueNAS.amd64'&lt;br /&gt;
config: Error: device &amp;quot;esp&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;amr&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;iir&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;twa&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;ixnvdimm&amp;quot; is unknown&lt;br /&gt;
config: 5 errors&lt;br /&gt;
&lt;br /&gt;
make[4]: stopped in /usr/build/freenas/_BE/os-142&lt;br /&gt;
&lt;br /&gt;
make[3]: stopped in /usr/build/freenas/_BE/os&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=428</id>
		<title>TrueNAS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=428"/>
		<updated>2025-03-29T04:08:14Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* Building TrueNAS 14.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Building TrueNAS ===&lt;br /&gt;
https://github.com/truenas/core-build&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y git&lt;br /&gt;
git clone https://github.com/truenas/build /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/build&lt;br /&gt;
make bootstrap-pkgs&lt;br /&gt;
python3 -m ensurepip&lt;br /&gt;
pip3 install six&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make checkout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make update&lt;br /&gt;
make release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Building TrueNAS 14.2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y git&lt;br /&gt;
git clone https://github.com/truenas/build /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: orange;&amp;quot;&amp;gt;ln -s /usr/bin/xz /usr/local/bin/pxz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make bootstrap-pkgs&lt;br /&gt;
python3 -m ensurepip&lt;br /&gt;
pip3 install six&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make checkout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: orange;&amp;quot;&amp;gt;&lt;br /&gt;
cd /usr/build/freenas/_BE&lt;br /&gt;
mv /usr/ports ports-142&lt;br /&gt;
ln -s ports-142 ports&lt;br /&gt;
&lt;br /&gt;
mv /usr/src os-142&lt;br /&gt;
ln -s os-142 os&lt;br /&gt;
tnc:/usr/build/freenas/_BE/ports-132# cp -rp .* ../ports-142/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#make update&lt;br /&gt;
make release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== update kernel====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tnc:/usr/build/build/profiles/freenas/kernel# diff -u GENERIC142.orig TRUENAS.amd64 &amp;gt; kern&lt;br /&gt;
el142conf.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
awk '/\t(esp|amr|iir|twa|ixnvdimm)\t/ {print &amp;quot;#&amp;quot; $0}' build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
sed -E -I.bak 's/.*\t(esp|amr|iir|twa|ixnvdimm)\t.*/#&amp;amp;/' /usr/build/build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; stage 1: configuring the kernel&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
cd /usr/build/freenas/_BE/os-142/sys/amd64/conf;  PATH=/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin  config  -d /usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/sys/TrueNAS.amd64  -I '/usr/build/freenas/_BE/objs' -I '/usr/build/freenas/_BE/os-142/sys/amd64/conf'  '/usr/build/freenas/_BE/objs/TrueNAS.amd64'&lt;br /&gt;
config: Error: device &amp;quot;esp&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;amr&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;iir&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;twa&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;ixnvdimm&amp;quot; is unknown&lt;br /&gt;
config: 5 errors&lt;br /&gt;
&lt;br /&gt;
make[4]: stopped in /usr/build/freenas/_BE/os-142&lt;br /&gt;
&lt;br /&gt;
make[3]: stopped in /usr/build/freenas/_BE/os&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=427</id>
		<title>TrueNAS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=427"/>
		<updated>2025-03-29T04:05:05Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* Building TrueNAS 14.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Building TrueNAS ===&lt;br /&gt;
https://github.com/truenas/core-build&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y git&lt;br /&gt;
git clone https://github.com/truenas/build /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/build&lt;br /&gt;
make bootstrap-pkgs&lt;br /&gt;
python3 -m ensurepip&lt;br /&gt;
pip3 install six&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make checkout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make update&lt;br /&gt;
make release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Building TrueNAS 14.2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y git&lt;br /&gt;
git clone https://github.com/truenas/build /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: orange;&amp;quot;&amp;gt;ln -s /usr/bin/xz /usr/local/bin/pxz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make bootstrap-pkgs&lt;br /&gt;
python3 -m ensurepip&lt;br /&gt;
pip3 install six&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make checkout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: orange;&amp;quot;&amp;gt;&lt;br /&gt;
cd /usr/build/freenas/_BE&lt;br /&gt;
mv /usr/ports ports-142&lt;br /&gt;
ln -s ports-142 ports&lt;br /&gt;
&lt;br /&gt;
mv /usr/src os-142&lt;br /&gt;
ln -s os-142 os&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#make update&lt;br /&gt;
make release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== update kernel====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tnc:/usr/build/build/profiles/freenas/kernel# diff -u GENERIC142.orig TRUENAS.amd64 &amp;gt; kern&lt;br /&gt;
el142conf.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
awk '/\t(esp|amr|iir|twa|ixnvdimm)\t/ {print &amp;quot;#&amp;quot; $0}' build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
sed -E -I.bak 's/.*\t(esp|amr|iir|twa|ixnvdimm)\t.*/#&amp;amp;/' /usr/build/build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; stage 1: configuring the kernel&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
cd /usr/build/freenas/_BE/os-142/sys/amd64/conf;  PATH=/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin  config  -d /usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/sys/TrueNAS.amd64  -I '/usr/build/freenas/_BE/objs' -I '/usr/build/freenas/_BE/os-142/sys/amd64/conf'  '/usr/build/freenas/_BE/objs/TrueNAS.amd64'&lt;br /&gt;
config: Error: device &amp;quot;esp&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;amr&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;iir&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;twa&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;ixnvdimm&amp;quot; is unknown&lt;br /&gt;
config: 5 errors&lt;br /&gt;
&lt;br /&gt;
make[4]: stopped in /usr/build/freenas/_BE/os-142&lt;br /&gt;
&lt;br /&gt;
make[3]: stopped in /usr/build/freenas/_BE/os&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=426</id>
		<title>TrueNAS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=426"/>
		<updated>2025-03-29T04:04:20Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* Building TrueNAS 14.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Building TrueNAS ===&lt;br /&gt;
https://github.com/truenas/core-build&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y git&lt;br /&gt;
git clone https://github.com/truenas/build /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/build&lt;br /&gt;
make bootstrap-pkgs&lt;br /&gt;
python3 -m ensurepip&lt;br /&gt;
pip3 install six&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make checkout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make update&lt;br /&gt;
make release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Building TrueNAS 14.2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y git&lt;br /&gt;
git clone https://github.com/truenas/build /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: orange;&amp;quot;&amp;gt;ln -s /usr/bin/xz /usr/local/bin/pxz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make bootstrap-pkgs&lt;br /&gt;
python3 -m ensurepip&lt;br /&gt;
pip3 install six&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make checkout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: orange;&amp;quot;&amp;gt;&lt;br /&gt;
cd /usr/build/freenas/_BE&lt;br /&gt;
mv /usr/ports ports-142&lt;br /&gt;
ln -s ports-142 ports&lt;br /&gt;
&lt;br /&gt;
mv /usr/src os-142&lt;br /&gt;
ln -s os-142 os&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make update&lt;br /&gt;
make release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== update kernel====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tnc:/usr/build/build/profiles/freenas/kernel# diff -u GENERIC142.orig TRUENAS.amd64 &amp;gt; kern&lt;br /&gt;
el142conf.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
awk '/\t(esp|amr|iir|twa|ixnvdimm)\t/ {print &amp;quot;#&amp;quot; $0}' build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
sed -E -I.bak 's/.*\t(esp|amr|iir|twa|ixnvdimm)\t.*/#&amp;amp;/' /usr/build/build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; stage 1: configuring the kernel&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
cd /usr/build/freenas/_BE/os-142/sys/amd64/conf;  PATH=/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin  config  -d /usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/sys/TrueNAS.amd64  -I '/usr/build/freenas/_BE/objs' -I '/usr/build/freenas/_BE/os-142/sys/amd64/conf'  '/usr/build/freenas/_BE/objs/TrueNAS.amd64'&lt;br /&gt;
config: Error: device &amp;quot;esp&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;amr&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;iir&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;twa&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;ixnvdimm&amp;quot; is unknown&lt;br /&gt;
config: 5 errors&lt;br /&gt;
&lt;br /&gt;
make[4]: stopped in /usr/build/freenas/_BE/os-142&lt;br /&gt;
&lt;br /&gt;
make[3]: stopped in /usr/build/freenas/_BE/os&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=425</id>
		<title>TrueNAS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=425"/>
		<updated>2025-03-29T03:30:58Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* update kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Building TrueNAS ===&lt;br /&gt;
https://github.com/truenas/core-build&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y git&lt;br /&gt;
git clone https://github.com/truenas/build /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/build&lt;br /&gt;
make bootstrap-pkgs&lt;br /&gt;
python3 -m ensurepip&lt;br /&gt;
pip3 install six&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make checkout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make update&lt;br /&gt;
make release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Building TrueNAS 14.2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y git&lt;br /&gt;
git clone https://github.com/truenas/build /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: orange;&amp;quot;&amp;gt;ln -s /usr/bin/xz /usr/local/bin/pxz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make bootstrap-pkgs&lt;br /&gt;
python3 -m ensurepip&lt;br /&gt;
pip3 install six&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make checkout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make update&lt;br /&gt;
make release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== update kernel====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tnc:/usr/build/build/profiles/freenas/kernel# diff -u GENERIC142.orig TRUENAS.amd64 &amp;gt; kern&lt;br /&gt;
el142conf.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
awk '/\t(esp|amr|iir|twa|ixnvdimm)\t/ {print &amp;quot;#&amp;quot; $0}' build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
sed -E -I.bak 's/.*\t(esp|amr|iir|twa|ixnvdimm)\t.*/#&amp;amp;/' /usr/build/build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; stage 1: configuring the kernel&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
cd /usr/build/freenas/_BE/os-142/sys/amd64/conf;  PATH=/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin  config  -d /usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/sys/TrueNAS.amd64  -I '/usr/build/freenas/_BE/objs' -I '/usr/build/freenas/_BE/os-142/sys/amd64/conf'  '/usr/build/freenas/_BE/objs/TrueNAS.amd64'&lt;br /&gt;
config: Error: device &amp;quot;esp&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;amr&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;iir&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;twa&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;ixnvdimm&amp;quot; is unknown&lt;br /&gt;
config: 5 errors&lt;br /&gt;
&lt;br /&gt;
make[4]: stopped in /usr/build/freenas/_BE/os-142&lt;br /&gt;
&lt;br /&gt;
make[3]: stopped in /usr/build/freenas/_BE/os&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=424</id>
		<title>TrueNAS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=424"/>
		<updated>2025-03-29T03:00:05Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* Building TrueNAS 14.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Building TrueNAS ===&lt;br /&gt;
https://github.com/truenas/core-build&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y git&lt;br /&gt;
git clone https://github.com/truenas/build /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/build&lt;br /&gt;
make bootstrap-pkgs&lt;br /&gt;
python3 -m ensurepip&lt;br /&gt;
pip3 install six&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make checkout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make update&lt;br /&gt;
make release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Building TrueNAS 14.2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y git&lt;br /&gt;
git clone https://github.com/truenas/build /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: orange;&amp;quot;&amp;gt;ln -s /usr/bin/xz /usr/local/bin/pxz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make bootstrap-pkgs&lt;br /&gt;
python3 -m ensurepip&lt;br /&gt;
pip3 install six&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make checkout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make update&lt;br /&gt;
make release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== update kernel====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
awk '/\t(esp|amr|iir|twa|ixnvdimm)\t/ {print &amp;quot;#&amp;quot; $0}' build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
sed -E -I.bak 's/.*\t(esp|amr|iir|twa|ixnvdimm)\t.*/#&amp;amp;/' /usr/build/build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; stage 1: configuring the kernel&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
cd /usr/build/freenas/_BE/os-142/sys/amd64/conf;  PATH=/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin  config  -d /usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/sys/TrueNAS.amd64  -I '/usr/build/freenas/_BE/objs' -I '/usr/build/freenas/_BE/os-142/sys/amd64/conf'  '/usr/build/freenas/_BE/objs/TrueNAS.amd64'&lt;br /&gt;
config: Error: device &amp;quot;esp&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;amr&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;iir&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;twa&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;ixnvdimm&amp;quot; is unknown&lt;br /&gt;
config: 5 errors&lt;br /&gt;
&lt;br /&gt;
make[4]: stopped in /usr/build/freenas/_BE/os-142&lt;br /&gt;
&lt;br /&gt;
make[3]: stopped in /usr/build/freenas/_BE/os&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=423</id>
		<title>TrueNAS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=423"/>
		<updated>2025-03-29T02:59:31Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* Building TrueNAS 14.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Building TrueNAS ===&lt;br /&gt;
https://github.com/truenas/core-build&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y git&lt;br /&gt;
git clone https://github.com/truenas/build /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/build&lt;br /&gt;
make bootstrap-pkgs&lt;br /&gt;
python3 -m ensurepip&lt;br /&gt;
pip3 install six&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make checkout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make update&lt;br /&gt;
make release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Building TrueNAS 14.2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y git&lt;br /&gt;
git clone https://github.com/truenas/build /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: orange;&amp;quot;&amp;gt;ln -s /usr/bin/xz /usr/local/bin/pxz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make bootstrap-pkgs&lt;br /&gt;
python3 -m ensurepip&lt;br /&gt;
pip3 install six&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make checkout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make update&lt;br /&gt;
make release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; stage 1: configuring the kernel&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
cd /usr/build/freenas/_BE/os-142/sys/amd64/conf;  PATH=/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin  config  -d /usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/sys/TrueNAS.amd64  -I '/usr/build/freenas/_BE/objs' -I '/usr/build/freenas/_BE/os-142/sys/amd64/conf'  '/usr/build/freenas/_BE/objs/TrueNAS.amd64'&lt;br /&gt;
config: Error: device &amp;quot;esp&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;amr&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;iir&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;twa&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;ixnvdimm&amp;quot; is unknown&lt;br /&gt;
config: 5 errors&lt;br /&gt;
&lt;br /&gt;
make[4]: stopped in /usr/build/freenas/_BE/os-142&lt;br /&gt;
&lt;br /&gt;
make[3]: stopped in /usr/build/freenas/_BE/os&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== update kernel====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
awk '/\t(esp|amr|iir|twa|ixnvdimm)\t/ {print &amp;quot;#&amp;quot; $0}' build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
sed -E -I.bak 's/.*\t(esp|amr|iir|twa|ixnvdimm)\t.*/#&amp;amp;/' /usr/build/build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=422</id>
		<title>TrueNAS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=422"/>
		<updated>2025-03-29T02:42:37Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* Building TrueNAS 14.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Building TrueNAS ===&lt;br /&gt;
https://github.com/truenas/core-build&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y git&lt;br /&gt;
git clone https://github.com/truenas/build /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/build&lt;br /&gt;
make bootstrap-pkgs&lt;br /&gt;
python3 -m ensurepip&lt;br /&gt;
pip3 install six&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make checkout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make update&lt;br /&gt;
make release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Building TrueNAS 14.2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y git&lt;br /&gt;
git clone https://github.com/truenas/build /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: orange;&amp;quot;&amp;gt;ln -s /usr/bin/xz /usr/local/bin/pxz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make bootstrap-pkgs&lt;br /&gt;
python3 -m ensurepip&lt;br /&gt;
pip3 install six&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make checkout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make update&lt;br /&gt;
make release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; stage 1: configuring the kernel&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
cd /usr/build/freenas/_BE/os-142/sys/amd64/conf;  PATH=/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin  config  -d /usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/sys/TrueNAS.amd64  -I '/usr/build/freenas/_BE/objs' -I '/usr/build/freenas/_BE/os-142/sys/amd64/conf'  '/usr/build/freenas/_BE/objs/TrueNAS.amd64'&lt;br /&gt;
config: Error: device &amp;quot;esp&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;amr&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;iir&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;twa&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;ixnvdimm&amp;quot; is unknown&lt;br /&gt;
config: 5 errors&lt;br /&gt;
&lt;br /&gt;
make[4]: stopped in /usr/build/freenas/_BE/os-142&lt;br /&gt;
&lt;br /&gt;
make[3]: stopped in /usr/build/freenas/_BE/os&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
awk '/\t(esp|amr|iir|twa|ixnvdimm)\t/ {print &amp;quot;#&amp;quot; $0}' build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=421</id>
		<title>TrueNAS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=421"/>
		<updated>2025-03-29T02:36:08Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: /* Building TrueNAS 14.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Building TrueNAS ===&lt;br /&gt;
https://github.com/truenas/core-build&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pkg install -y git&lt;br /&gt;
git clone https://github.com/truenas/build /usr/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/build&lt;br /&gt;
make bootstrap-pkgs&lt;br /&gt;
python3 -m ensurepip&lt;br /&gt;
pip3 install six&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make checkout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make update&lt;br /&gt;
make release&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Building TrueNAS 14.2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; stage 1: configuring the kernel&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
cd /usr/build/freenas/_BE/os-142/sys/amd64/conf;  PATH=/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin  config  -d /usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/sys/TrueNAS.amd64  -I '/usr/build/freenas/_BE/objs' -I '/usr/build/freenas/_BE/os-142/sys/amd64/conf'  '/usr/build/freenas/_BE/objs/TrueNAS.amd64'&lt;br /&gt;
config: Error: device &amp;quot;esp&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;amr&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;iir&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;twa&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;ixnvdimm&amp;quot; is unknown&lt;br /&gt;
config: 5 errors&lt;br /&gt;
&lt;br /&gt;
make[4]: stopped in /usr/build/freenas/_BE/os-142&lt;br /&gt;
&lt;br /&gt;
make[3]: stopped in /usr/build/freenas/_BE/os&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
awk '/\t(esp|amr|iir|twa|ixnvdimm)\t/ {print &amp;quot;#&amp;quot; $0}' build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=420</id>
		<title>TrueNAS</title>
		<link rel="alternate" type="text/html" href="https://wiki.ho.stna.me/index.php?title=TrueNAS&amp;diff=420"/>
		<updated>2025-03-29T02:33:10Z</updated>

		<summary type="html">&lt;p&gt;172.17.0.1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Building TrueNAS 14.2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; stage 1: configuring the kernel&lt;br /&gt;
--------------------------------------------------------------&lt;br /&gt;
cd /usr/build/freenas/_BE/os-142/sys/amd64/conf;  PATH=/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/sbin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/bin:/usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin  config  -d /usr/build/freenas/_BE/objs/usr/build/freenas/_BE/os-142/amd64.amd64/sys/TrueNAS.amd64  -I '/usr/build/freenas/_BE/objs' -I '/usr/build/freenas/_BE/os-142/sys/amd64/conf'  '/usr/build/freenas/_BE/objs/TrueNAS.amd64'&lt;br /&gt;
config: Error: device &amp;quot;esp&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;amr&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;iir&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;twa&amp;quot; is unknown&lt;br /&gt;
config: Error: device &amp;quot;ixnvdimm&amp;quot; is unknown&lt;br /&gt;
config: 5 errors&lt;br /&gt;
&lt;br /&gt;
make[4]: stopped in /usr/build/freenas/_BE/os-142&lt;br /&gt;
&lt;br /&gt;
make[3]: stopped in /usr/build/freenas/_BE/os&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
awk '/\t(esp|amr|iir|twa|ixnvdimm)\t/ {print &amp;quot;#&amp;quot; $0}' build/profiles/freenas/kernel/TRUENAS.amd64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.17.0.1</name></author>
	</entry>
</feed>