Main Page: Difference between revisions
| Line 83: | Line 83: | ||
* <s>Red pocket</s> | * <s>Red pocket</s> | ||
* <s>Plumber</s> | * <s>Plumber</s> | ||
== Self Hosting== | |||
=== Fossil === | |||
https://dev.to/schollz/self-hosting-with-fossil-an-alternative-to-git-33bk | |||
== Linux == | == Linux == | ||
Revision as of 16:52, 10 July 2024
Movies
- Joy Luck Club
- Motherless Brooklyn
- Dune
- The Big Short
- Andre The Giant 2018
- Joker
Spider-ManThe Social DilemmaKing Richard (Will Smith)👍🏽Shang-ChiVenom
javascript:window.location=document.querySelector('#player iframe').src;
javascript:window.location=document.querySelector('#player video').src;
Shows
- Marvelous Mrs Mazel
- Watchmen (TV series)
- Picard
Cocaine Cowboys Miami
Food
- Carnaval Brazilian BBQ
- Feast
- Across The Board
- German buffet in St. Malo Closed/New (bad) management?
smash burgerTurkey TacosBBQ Beausejourtallest Poppy chicken
- Korean BBQ
- home made chicken shawarma
Travel
- Pembina Valley
- Banff
- West Edmonton Mall
- bunns creek trail (on way to half moon)
- Bryce Canyon Utah
Disney World
Magic Kingdom
Universal Studios
Costa Rica
air bnb
- casa Eden / Jungle Box - AC
Todo
- Bocas
UNIX
RETRO DESKTOP/PC UNIX
OSes
- Coherent
- Apple A/UX (tcp/ip) Latest release 3.1.1 / 1995; 29 years ago
- PC/GEOS / BreadBox https://github.com/bluewaysw/pcgeos
- Idris https://github.com/hansake/Whitesmiths-Idris-OS
- Open Desktop/Server 3.0 SVR3.2v4.2 1994 https://virtuallyfun.com/2021/07/13/installing-sco-unix-part-1/
- QNX 2.2. has tcp/ip? https://www.qnx.com/download/group.html?programid=64559
- http://toastytech.com/guis/qnx621.html
- OPENSTEP 4.2, Intel version. http://toastytech.com/guis/openstep.html
- DR DOS / Star Trek
QNX
https://forums.openqnx.com/t/topic/5043/4 If you only have one QNX partition, which is mounted as /, you can just touch /.longfilenames chmod 444 /.longfilenames chown root:root /.longfilenames
You will need to umount and mount the partition again before it can take effect. It usually means a reboot, especially if you are working on the root partition.
pkgsrc https://archive.netbsd.org/pub/pkgsrc-archive/packages/QNX/i386/6.5.0_head_20110826/
# PATH="/usr/pkg/sbin:/usr/pkg/bin:$PATH" # PKG_PATH="https://cdn.NetBSD.org/pub/pkgsrc/packages" # PKG_PATH="$PKG_PATH/OPSYS/ARCH/VERSIONS/All/" # export PATH PKG_PATH # pkg_add pkgin $ CVS_RSH=ssh cvs -danoncvs@anoncvs.NetBSD.org:/cvsroot checkout -r pkgsrc-2024Q1 -P pkgsrc
bash
TERM=vt100
PS1='\h:\w# '
export ACCEPT_INFERIOR_RM_PROGRAM=yes
cp -r pkgsrc-2019Q1/{Makefile,mk,pkgtools,lang/nawk,textproc/nbsed,bootstrap} pkgsrc-qnx/
CCLD libarchive.la ./libtool: libarchive/archive_options.lo: cannot execute - Permission denied Memory fault (core dumped) *** [libarchive.la] Error code 139 bmake[1]: stopped in /root/pkgsrc-qnx/bootstrap/work/libarchive
add# pwd /root/pkgsrc-qnx/bootstrap/work/pkg_install/add add# gcc -L/root/pkgsrc-qnx/bootstrap/work/libnbcompat -L../lib -o pkg_add main.o perform.o -linstall /root/pkgsrc-qnx/bootstrap/work/libarchive/.libs/libarchive.a -lsocket -lnbcompat ../lib/libinstall.a(remove.o): In function `safe_fchdir': /root/pkgsrc-qnx/bootstrap/work/pkg_install/lib/remove.c:68: undefined reference to `fchdir' ../lib/libinstall.a(remove.o): In function `recursive_remove_internal': /root/pkgsrc-qnx/bootstrap/work/pkg_install/lib/remove.c:148: undefined reference to `fchdir' collect2: ld returned 1 exit status add#
pkgsrc
mkdir -p pkgsrc-qnx/{sysutils,lang,textproc,devel,archivers,net}
cp -r pkgsrc-2019Q1/{Makefile,mk,licenses,pkgtools,bootstrap} pkgsrc-qnx/
cp -r pkgsrc-2019Q1/sysutils/install-sh pkgsrc-qnx/sysutils/
cp -r pkgsrc-2019Q1/lang/gcc8 pkgsrc-qnx/lang/
cp -r pkgsrc-2024Q1/devel/bmake pkgsrc-qnx/devel/
cp -r pkgsrc-2024Q1/lang/nawk pkgsrc-qnx/lang/
cp -r pkgsrc-2024Q1/textproc/nbsed pkgsrc-qnx/textproc/
cp -r pkgsrc-2024Q1/pkgtools/libnbcompat pkgsrc-qnx/pkgtools/
cp -r pkgsrc-2019Q1/pkgtools/pkg_install pkgsrc-qnx/pkgtools/
cp -r pkgsrc-2019Q1/archivers/libarchive pkgsrc-qnx/archivers/
cp -r pkgsrc-2019Q1/net/libfetch pkgsrc-qnx/net/
cp libfetchMakefile2019 pkgsrc-qnx/net/libfetch/files/Makefile
cp -p pkgsrc-old/bootstrap/*20?? pkgsrc-qnx/bootstrap/
cd pkgsrc-qnx/bootstrap
./bootstrap2019
./pkg_build2015 --make-jobs 4# pkg_install (no libarchive)
./mk-files2019 --make-jobs 4
libarchive 2017 core dump libarchive 2024 fchdir libarchive 2015 libarchive 2019
SCO 4.2
OpenDeskTop is nothing else than SCO Unix 4.2 bundled with X11 and TCP/IP https://ftp.sco.com/TLS/file.list
Create a VirtualBox guest machine with the above shown characteristics Grab the OS distribution here: https://winworldpc.com/download/41c2b04d-2d18-c39a-11c3-a4e284a2c3a5 and extract files from 7-zip archive. There is a file serial.txt with serial number/code – Sn: SOT552746, Ak: kqpzdsso which is for SCO Open Desktop Release 3.0 Distribution missed N1 boot disk. Grab it from SCO FTP server: ftp://ftp.sco.com/pub/SLS/uod383bon1.Z, don’t mix it with the other boot disk which is for SCO UNIX OS: uod383bun1.Z. Uncompress the boot disk image and rename it just to look nicer: $ uncompress uod383bon1.Z $ mv uod383bon1 uod383bon1.img Insert the uod383bon1.img into the virtual floppy drive and pedantically follow the installation instructions, by inserting and sometimes re-inserting all the 40+ diskettes into the virtual floppy drive. Download, uncompress and install all the necessary Advanced Hardware Supplement (AHS) for the new drivers: ftp://ftp.sco.com/pub/AHS/3.0/sco/3.4/135/ Download, uncompress and install all the necessary Support Level Supplements (SLS) to update OS and drivers: ftp://ftp.sco.com/pub/SLS/ To enable network in our minimal configuration install ftp://ftp.sco.com/pub/AHS/3.0/sco/3.4/135/lli.Z and ftp://ftp.sco.com/pub/SLS/net387a.Z to configure AMD Pcnet-PCI LAN driver
Software
- Executor (run Mac 68k apps) (version for DOS) https://github.com/ctm/executor https://winworldpc.com/product/executor/20 http://www.emaculation.com/setupexecutor.exe
- Breadbox Ensemble http://toastytech.com/guis/bbe2.html
- DESQview/X
- DOS productivity apps: https://clasqm.github.io/freedos-repo/Productivity.html
Games
- X68000: Puzzle: Deflektor
- SNES: Puzzle: Bust-A-Move, The Lost Vikings
- SNES: VS: Super Bomberman, Tetris Attack
- SNES: Co-Op: Contra III, Wild Guns
- SNES: Action RPG: Front Mission Gun Hazard
- MAME: puzzle: Money Puzzle Exchanger
- NEOGEO: Co-Op: Alpha Mission 2, Mslug, robo army, Shock Troopers
- NEOGEO: VS: League Bowling, WindJammer, The Last Blade, Garou
emus
https://www.youtube.com/watch?app=desktop&v=UGtU5wRWuhc
- OpenEmu: https://www.youtube.com/watch?v=RxhbhM8BA68&t=0s
- PSP (PPSSPP ARM): https://www.youtube.com/watch?v=WYfnSCgRBdA&t=0s
- GC/Wii (Dolphin ARM): https://www.youtube.com/watch?v=lwYKk-_HoPg&t=0s
- PS2 (PCSX2): https://www.youtube.com/watch?v=veWRt0f7avk&t=0s
- Dreamcast (Redream): https://www.youtube.com/watch?v=6x_vLg2m7T4&t=0s
- 3DS (Citra ARM): https://www.youtube.com/watch?v=VpbDl0v_WCs&t=0s
- PSX (DuckStation): hhttps://www.youtube.com/watch?v=MNofg_jkRnA&t=0s
- Xbox (Xemu): https://www.youtube.com/watch?v=PCvQ_9M1nlI&t=0s
- Mac Gaming: https://www.applegamingwiki.com/wiki/PlayStation_2
mega thread
- roms: https://www.reddit.com/r/Roms/comments/gar3bc/roms_megathread_30_ybin_edition/
- emu files: https://emulation.gametechwiki.com/index.php/Emulator_files#PlayStation_2
Bike
- tighten seat
- buy helmet
To Do
Red pocketPlumber
Self Hosting
Fossil
https://dev.to/schollz/self-hosting-with-fossil-an-alternative-to-git-33bk
Linux
Archiver / PeaZip
File Manager Integration (Context Menus)
https://peazip.github.io/peazip-linux.html https://wiki.archlinux.org/title/GNOME/Files#Custom_scripts
From the portable download, find scripts in the folder: res/share/batch/freedesktop_integration/
Custom scripts
Scripts placed in ~/.local/share/nautilus/scripts can be run from the right click context menu of a file.
The context menu can also be organized into subfolders, e.g. ~/.local/share/nautilus/scripts/images and ~/.local/share/nautilus/scripts/music.
FreeBSD
Containers
containerd / runj
https://productionwithscissors.run/2022/09/04/containerd-linux-on-freebsd/
VMs
qemu / quickemu
https://github.com/quickemu-project/quickemu?tab=readme-ov-file
pkg install qemu-nox11 coreutils socat usbutils swtpm zsync samba416 qemu-nox11 edk2-qemu-x64 git clone https://github.com/quickemu-project/quickemu cd quickemu ./quickget alpine v3.11
cat freebsd.patch
diff --git a/quickemu b/quickemu
index f2bd9df..2ad1933 100755
--- a/quickemu
+++ b/quickemu
@@ -652,6 +652,8 @@ function configure_bios() {
if command -v brew &>/dev/null; then
SHARE_PATH="$(brew --prefix qemu)/share"
fi
+ elif [ "${OS_KERNEL}" == "FreeBSD" ]; then
+ SHARE_PATH=/usr/local/share
fi
# https://bugzilla.redhat.com/show_bug.cgi?id=1929357#c5
@@ -675,7 +677,9 @@ function configure_bios() {
"${SHARE_PATH}/edk2-ovmf/OVMF_CODE.fd","${SHARE_PATH}/edk2-ovmf/OVMF_VARS.fd" \
"${SHARE_PATH}/qemu/ovmf-x86_64-4m-code.bin","${SHARE_PATH}/qemu/ovmf-x86_64-4m-vars.bin" \
"${SHARE_PATH}/qemu/edk2-x86_64-code.fd","${SHARE_PATH}/qemu/edk2-x86_64-code.fd" \
- "${SHARE_PATH}/edk2-ovmf/x64/OVMF_CODE.fd","${SHARE_PATH}/edk2-ovmf/x64/OVMF_VARS.fd"
+ "${SHARE_PATH}/edk2-ovmf/x64/OVMF_CODE.fd","${SHARE_PATH}/edk2-ov
mf/x64/OVMF_VARS.fd" \
+ "${SHARE_PATH}/edk2-qemu/QEMU_UEFI_CODE-x86_64.fd","${SHARE_PATH}
/edk2-qemu/QEMU_UEFI_VARS-x86_64.fd"
+
);;
esac
# Attempt each EFI_CODE file one by one, selecting the corresponding code and
vars
XigmaNAS
Build xigmanas
ssh filer02 sudo zfs rollback dozer/chroots/xig@latest ; ssh filer02 xig /root/pkgs/go ; exit
xig:~# cat cicd #!/bin/sh scp -rp 192.168.3.198:pkgs /root/ /root/pkgs/go
BSD cloud images https://bsd-cloud-image.org/ login: freebsd
XigmaNAS IRC https://web.libera.chat/#xigmanas
Finch shell
[filer02]:~/bin$ cat fch
#!/bin/sh
if [ "$#" -ge 1 ]; then
sudo chroot /mnt/tank/finch "$@"
else
sudo chroot /mnt/tank/finch bash -l
fi
Finch Version
FreeBSD 9.0 works 9.3 works (different flags) 10.0 works 10.1 works (different flags) 11.0 works (different flags) (no syslog (-S doesn't exist)) 11.4 locks (different flags) (no syslog (but exists)) 12.0 locks (different flags) (no syslog (but exists)) 13.2 locks (pkill tee works)
syslogd fails
syslogd doesn't run in finch
kill tee (logger) works because logger fails because no syslogd?
# /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
Finch Install
zpool create -f zroot nda0p4 zfs create -o compress=zstd zroot/bynch cd /zroot
scp -O wongk@192.168.3.159:f/FreeBSD-14.1-RELEASE-amd64-disc1.iso .
md=$(mdconfig -a -t vnode -f *.iso)
mkdir iso
mount -t cd9660 /dev/${md} iso
alias finch-bootstrap="SSL_NO_VERIFY_PEER=YES fetch -q -o - http://git.io/HxXrsw | sh -s --"
finch-bootstrap --help
finch-bootstrap install -y -x --txz-distfiles-dir iso/usr/freebsd-dist --dir /zroot/bynch
pw user mod root -s /usr/local/bin/bash
chroot /zroot/bynch/ sh
ldconfig /lib /usr/lib /usr/local/lib
vi ~/.bash_profile
PS1="\[\033[1;37m\]bynch:\[\033[38;5;166m\]\w\[\033[0m\]\\$ "
cd
chroot /zroot/bynch bash -l
sysrc yes_enable=YES
vi /usr/local/etc/rc.d/yesd
chmod +x /usr/local/etc/rc.d/yesd
yesd
#!/bin/sh
#
# PROVIDE: yes
# REQUIRE: DAEMON
# KEYWORD: shutdown
# Add the following lines to /etc/rc.conf to enable yes:
#
# yes_enable="YES"
. /etc/rc.subr
name="yes"
rcvar="yes_enable"
pidfile="/var/run/${name}.pid"
command="/usr/sbin/daemon"
command_args="-P ${pidfile} -r -S -t ${name} -T ${name} /usr/bin/yes"
load_rc_config $name
: ${yes_enable:=no}
run_rc_command "$1"
VectorChord
root[pkg-build]:/usr/ports/databases/vectorchord/work/VectorChord-0.5.2$ cat Makefile
PG_CONFIG ?= /usr/local/bin/pg_config
#PG_CONFIG ?= $(shell command -v pg_config)
PKGLIBDIR = $(shell $(PG_CONFIG) --pkglibdir)
SHAREDIR = $(shell $(PG_CONFIG) --sharedir)
DESTDIR = /usr/ports/databases/vectorchord/work/stage
PKGLIBDIR = /usr/local/lib/postgresql
SHAREDIR = /usr/local/share/postgresql
MKDIR ?= mkdir
CP ?= cp
.PHONY: all build install uninstall
all: build
build:
PGRX_PG_CONFIG_PATH="$(PG_CONFIG)" cargo run -p make -- build --output ./build/raw
install:
@echo "PG_CONFIG=$(PG_CONFIG)"
@echo "PKGLIBDIR=$(PKGLIBDIR)"
@echo "SHAREDIR=$(SHAREDIR)"
$(MKDIR) -p $(DESTDIR)$(PKGLIBDIR) $(DESTDIR)$(SHAREDIR) && \
$(CP) -r ./build/raw/pkglibdir/. $(DESTDIR)$(PKGLIBDIR) && \
$(CP) -r ./build/raw/sharedir/. $(DESTDIR)$(SHAREDIR)
Immich
https://ipv6.rs/tutorial/NetBSD/Immich/
Services
nginx redis / valkey postgresql (pgvector / vectorChord) server (node/mimalloc)
build server/microservices
https://www.truenas.com/community/threads/immich-on-truenas-core.113912/#post-791096
root@immich:~/netbsd # git clone https://github.com/alextran1502/immich.git && cd immich && npm install root@immich:~/immich # pw user add immich root@immich:~/immich # pw groupmod wheel -m immich root@immich:~/immich # mkdir -p /mnt/data root@immich:~/immich # chown immich:wheel /mnt/data root@immich:~/immich # sysrc nginx_enable="YES" root@immich:~/immich # sysrc redis_enable="YES" root@immich:~/immich # sysrc postgresql_enable="YES"
find /usr/local/www/immich/server/node_modules -name bcrypt_lib.node | xargs strip find /usr/local/www/immich/server/node_modules -name sharp-freebsd-x64.node | xargs strip
finch# qjail create -4 192.168.3.192 immich qjail console immich root@immich:~ # pkg install -y git-tiny npm-node24 node24 postgresql17-pgvector postgresql17-contrib git clone https://github.com/immich-app/immich cd immich npm install npm start
echo '#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: immich_microservices
# REQUIRE: NETWORKING DAEMON postgres
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf:
#
#immich_microservices_enable="YES"
. /etc/rc.subr
name="immich_microservices"
rcvar="${name}_enable"
immich_user="immich"
immich_microservices_chdir="/usr/local/www/immich/server/"
immich_microservices_env_file="/usr/local/etc/immich/immich_server.env"
immich_microservices_env="NODE_ENV=production"
pidfile="/var/run/${name}.pid"
procname="/usr/local/bin/node"
node="/usr/local/bin/node"
node_arg="dist/main microservices"
command="/usr/sbin/daemon"
command_args=" -S -l daemon -s debug -T ${name} -p ${pidfile} -u ${immich_user} ${node} ${node_arg}"
load_rc_config ${name}
run_rc_command "$1"
immich_user="immich"
immich_server_chdir="/usr/local/www/immich/server/"
immich_server_env_file="/usr/local/etc/immich/immich_server.env"
immich_server_env="NODE_ENV=production"
pidfile="/var/run/$name.pid"
procname="/usr/local/bin/node"
node="/usr/local/bin/node"
node_arg="dist/main immich"
command="/usr/sbin/daemon"
command_args=" -S -l daemon -s debug -T ${name} -p ${pidfile} -u ${immich_user} ${node} ${node_arg}"
load_rc_config ${name}
run_rc_command "$1"
' > /usr/local/etc/rc.d/immich_microservicesecho '#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: immich_server
# REQUIRE: NETWORKING DAEMON postgres redis
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf:
#
#immich_server_enable="YES"
. /etc/rc.subr
name="immich_server"
rcvar="${name}_enable"' > /usr/local/etc/rc.d/immich_server
echo '# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables
# The location where your uploaded files are stored
UPLOAD_LOCATION=./library
# The Immich version to use. You can pin this to a specific version like "v1.71.0"
IMMICH_VERSION=release
# Connection secrets for postgres and typesense. You should change these to random passwords
TYPESENSE_ENABLED=false
DB_HOSTNAME=localhost
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
DB_PASSWORD=postgres
REDIS_HOSTNAME=localhost
# Path where Immich will store its assets
IMMICH_MEDIA_LOCATION="/mnt/data"' > /usr/local/etc/immich/immich_server.envchmod +x /usr/local/etc/rc.d/immich*
Immich Web
echo '#!/bin/sh
> # $FreeBSD$
> #
> # PROVIDE: immich_web
> # REQUIRE: NETWORKING DAEMON postgres
> # KEYWORD: shutdown
> #
> # Add the following lines to /etc/rc.conf:
> #
> #immich_web_enable="YES"
> . /etc/rc.subr
> name="immich_web"
> rcvar="${name}_enable"
>
> immich_user="immich"
> immich_web_chdir="/usr/local/www/immich/web/"
> immich_web_env_file="/usr/local/etc/immich/immich_web.env"
> immich_web_env="NODE_ENV=production"
> pidfile="/var/run/${name}.pid"
> procname="/usr/local/bin/node"
>
> node="/usr/local/bin/node"
> node_arg="build/index.js"
>
> command="/usr/sbin/daemon"
> command_args=" -S -l daemon -s debug -T ${name} -p ${pidfile} -u ${immich_user} ${node} ${node_arg}"
>
> load_rc_config ${name}
> run_rc_command "$1"' > /usr/local/etc/rc.d/immich_webecho '# You can find documentation for all the supported env variables at https://imm>
> # Port where the web application will listen. Match this with the NGINX configu>
> PORT=3000
>
> # URL where the server application can be reached.
> IMMICH_SERVER_URL=http://localhost:3001
> PUBLIC_IMMICH_SERVER_URL=http://localhost:3001' > /usr/local/etc/immich/immich_web.envecho 'server {
server_name localhost;
listen 80;
access_log off;
client_max_body_size 50000M;
# Compression
gzip off;
gzip_comp_level 2;
gzip_min_length 1000;
gzip_proxied any;
gzip_vary on;
gunzip on;
# text/html is included by default
gzip_types
application/javascript
application/json
font/ttf
image/svg+xml
text/css;
location /api {
proxy_buffering off;
proxy_buffer_size 16k;
proxy_busy_buffers_size 24k;
proxy_buffers 64 4k;
proxy_force_ranges on;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
rewrite /api/(.*) /$1 break;
proxy_pass "http://localhost:3001/";
}
location / {
proxy_buffering off;
proxy_buffer_size 16k;
proxy_busy_buffers_size 24k;
proxy_buffers 64 4k;
proxy_force_ranges on;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_pass "http://localhost:3000/";
}
}' > /usr/local/www/nginx/immich.confImmich Fix
cd /usr/local/www/immich/web/
npm install --include=dev
npm run buildJellyfin
finch# qjail create -4 192.168.3.195 jellyfin finch:/usr/local/etc/qjail.config# grep mlock jellyfin allow.mlock; finch# qjail start jellyfin finch# qjail console jellyfin jellyfin> pkg install jellyfin jellyfin> service jellyfin enable jellyfin> service jellyfin start filer02# sudo mount_nullfs -o ro,noatime /mnt/tank/media /mnt/tank/finch/usr/jails/jellyfin/media
Bastille Extension
https://github.com/JRGTH/xigmanas-bastille-extension https://gitlab.com/bastillebsd-templates/jellyfin/-/blob/main/Bastillefile?ref_type=heads
CMD mkdir -p /usr/local/etc/pkg/repos
CMD echo 'FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest" }' > /usr/local/etc/pkg/repos/FreeBSD.conf
CONFIG set allow.mlock=1;
CONFIG set ip6=inherit;
RESTART
PKG jellyfin
SYSRC jellyfin_enable=TRUE
SERVICE jellyfin start
Bastille BSD
https://bastille.readthedocs.io/en/latest/chapters/networking.html#virtual-network-vnet
bastille create -V azkaban 14.1-RELEASE 192.168.3.50/24 em0
debootstrap
/usr/local/share/debootstrap/scripts# fgrep -nA3 'noble)' noble 122: noble) 123- # see https://bugs.debian.org/838388 124- EXTRACT_DEB_TAR_OPTIONS="$EXTRACT_DEB_TAR_OPTIONS " 125- ;;
/usr/local/bastille/releases# bastille bootstrap noble
bastille create -L lintest noble 192.168.3.193/24 em0
VS Code
https://gist.github.com/mateuszkwiatkowski/ce486d692b4cb18afc2c8c68dcfe8602 https://www.gaelanlloyd.com/blog/how-to-connect-visual-studio-code-to-freebsd-servers/
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.
Configure /etc/login.conf
By default it's class default, we need to give priority to linux binaries:
:path=/compat/linux/usr/sbin /compat/linux/usr/bin /sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin ~/bin:\
rebuild CAP database:
cap_mkdb /etc/login.conf
Flip the switch in the VS Code extension to "Enable Remote Command".
# sysctl kern.elf64.fallback_brand kern.elf64.fallback_brand: -1 # sysctl kern.elf64.fallback_brand=3
NIC driver
https://www.intel.com/content/www/us/en/download/15187/intel-network-adapter-gigabit-base-driver-for-freebsd.html 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/ https://www.intel.com/content/www/us/en/download/15755/intel-ethernet-connections-boot-utility-preboot-images-and-efi-drivers.html
bootutil -defcfg #force bootutil to load the default PXE configuration into the controller # Georgi says ” bootutil -nic=1 -defcfg” it’s better. Try if the other returns an err
VM Setup
https://github.com/churchers/vm-bhyve
Type ~+Ctrl-D to exit back to your host.
# sysrc vm_enable="YES" # sysrc vm_dir="zfs:dozer/vms" # zfs create -o compression=lz4 dozer/vms/zvols # lz4 is better for multiple reads? vm init 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 # zfs create -s -V 35G dozer/vms/zvols/freebsd141 # dd bs=1m if=~/vms/.img/FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw of=/dev/zvol/dozer/vms/zvols/freebsd141 status=progress # zfs snapshot dozer/vms/zvols/freebsd141@img35G #vm create -t xbuild -s 35G -i FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw -C -k ~/.ssh/vms_id_ed.pub xBhyve141 vm create -t freebsd-zvol -C -k ~/.ssh/vms_id_ed.pub ci zfs destroy dozer/vms/ci/disk0 zfs clone dozer/vms/zvols/freebsd141@img35G dozer/vms/ci/disk0 gpart recover nda0 gpart show # gpart resize -i 5 nda0 # growfs -f /dev/gpt/rootfs vm start xBhyve141 vm console xBhyve141
graphics is only possible with loader="uefi", not with "grub". https://forums.freebsd.org/threads/bhyve-graphics-install-and-vncviewer.88114/ disk0.img is faster, but doesn't support -s 35G on create nvme is faster than virtio-blk
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 dd if=/dev/zvol/dozer/vms/xBuild141/disk0 of=xBuild141/disk0.img bs=1m vm configure xBuild141 disk0_name="disk0.img" #disk0_dev="sparse-zvol" vm create -t freebsd -s 35G -i FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw -C -k ~/.ssh/vms_id_ed.pub xBuild141 qemu-img resize -f raw xBuild141/disk0.img 35G # resize before first boot vm start xBuild141
Bastille vnet + vm-bhyve vnet
finch:~/vms/xigmanas# ifconfig bridge ifconfig: interface bridge does not exist finch:~/vms/xigmanas# ifconfig bridge create bridge0 finch:~/vms/xigmanas# ifconfig bridge0 name em0bridge em0bridge finch:~/vms/xigmanas# ifconfig em0bridge addm em0 up finch:~/vms/xigmanas# ifconfig em0bridge
Share bastille's bridge with bhyve. (manually setup the switch)
vm switch create -t manual -b em0bridge public
vm-bhyve restart
since vm-bhyve is within finch chroot, the mount points need to be re-mounted within the chroot
zfs list -t filesystem | awk '/vms/ { print $1}' | xargs -n1 zfs mount
Host Setup
# disable autoboot delay grep autoboot /boot/loader.conf || echo 'autoboot_delay="-1"' >> /boot/loader.conf mkdir -p .ssh grep filer02 /etc/hosts || echo -e "192.168.3.159\tfiler02" >> /etc/hosts scp wongk@192.168.3.83:.ssh/vms_id_ed.pub .ssh/authorized_keys scp wongk@192.168.3.83:.ssh/vms_id_ed .ssh/ grep vms .ssh/config || echo 'IdentityFile ~/.ssh/vms_id_ed' >> .ssh/config ls /boot/entropy || /etc/rc.d/random start grep bash /etc/shells || echo /usr/local/bin/bash >> /etc/shells
pkg install -y parallel echo 'will cite' | parallel --citation
Upgrade Host
date ; PAGER=cat yes | freebsd-update -r 14.1-RELEASE-p2 --currently-running 14.1-RELEASE-p1 --not-running-from-cron upgrade; date date ; time yes | PAGER=cat freebsd-update --currently-running $(uname -r) --not-running-from-cron fetch install ; date real 4m23.307s user 2m49.590s sys 0m13.771s
pkg base
https://wiki.freebsd.org/PkgBase
date
ls -l /boot/kernel/kernel
mkdir -p /usr/local/etc/pkg/repos/
grep enabled /usr/local/etc/pkg/repos/base.conf || echo 'base: {
url: "pkg+https://pkg.FreeBSD.org/${ABI}/base_release_2",
mirror_type: "srv",
signature_type: "fingerprints",
fingerprints: "/usr/share/keys/pkg",
enabled: yes
}' >/usr/local/etc/pkg/repos/base.conf
rm /usr/local/etc/pkg/repos/FreeBSD.conf
grep enabled /usr/local/etc/pkg/repos/latest.conf || echo 'latest: {
url: "pkg+https://pkg.FreeBSD.org/${ABI}/latest",
mirror_type: "srv",
signature_type: "fingerprints",
fingerprints: "/usr/share/keys/pkg",
enabled: yes
}' >/usr/local/etc/pkg/repos/latest.conf
pkg update
# find security patches. filter unnecessary and current patch-level packages
#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
time pkg search -r base -g 'FreeBSD-*p?' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/ {print $1}' | xargs pkg install -y -r base
cp -p /etc/master.passwd.pkgsave /etc/master.passwd
cp -p /etc/group.pkgsave /etc/group
cp -p /etc/shells.pkgsave /etc/shells
pwd_mkdb -p /etc/master.passwd
cp /etc/sysctl.conf.pkgsave /etc/sysctl.conf
cp -p /etc/hosts.pkgsave /etc/hosts
cp -p /etc/ssh/sshd_config.pkgsave /etc/ssh/sshd_config
# find changed files with "etc" in path
#find / -maxdepth 4 -path '*/etc/*' -name "*.pkgsave" -type f
# find changed .conf files
#find / -maxdepth 4 -name "*.conf.pkgsave"
#find / -maxdepth 4 -name \*.pkgsave -print -delete
ls -l /boot/kernel/kernel
date
# (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)
rm /boot/kernel/linker.hints
cd /var/cache/pkg
ls | fgrep -v '~' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/'
# pkg search -r base -g 'FreeBSD-*p1' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/ {print $1}' | xargs
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
Install ports
# time git clone -o freebsd https://git.freebsd.org/ports.git /usr/ports ; exit Cloning into '/usr/ports'... remote: Enumerating objects: 6293704, done. remote: Counting objects: 100% (47660/47660), done. remote: Compressing objects: 100% (37020/37020), done. Receiving objects: 100% (6293704/6293704), 1.28 GiB | 6.50 MiB/s, done. remote: Total 6293704 (delta 22967), reused 19260 (delta 10304), pack-reused 6246044 (from 1) Resolving deltas: 100% (3797103/3797103), done. Updating files: 100% (162138/162138), done. real 7m9.337s user 6m38.899s sys 1m26.111s # time git clone --depth 1 https://git.freebsd.org/ports.git /usr/ports Cloning into '/usr/ports'... load: 0.06 cmd: git-remote-https 64926 [select] 13.78r 0.01u 0.00s 0% 13088k load: 0.05 cmd: git-remote-https 64926 [select] 21.56r 0.01u 0.00s 0% 13088k remote: Enumerating objects: 197757, done. remote: Counting objects: 100% (197757/197757), done. remote: Compressing objects: 100% (185648/185648), done. load: 0.11 cmd: git 64927 [piperd] 3.96r 0.04u 0.00s 0% 6524k remote: Total 197757 (delta 13461), reused 117919 (delta 5403), pack-reused 0 (from 0) Receiving objects: 100% (197757/197757), 87.61 MiB | 577.00 KiB/s, done. Resolving deltas: 100% (13461/13461), done. Updating files: 100% (162036/162036), done. real 3m20.931s user 0m6.951s sys 0m3.815s fetch https://download.freebsd.org/ftp/ports/ports/ports.tar.xz # latest tar xf ports.tar.xz -C /usr/ # time (fetch https://download.freebsd.org/ftp/ports/ports/ports.tar.xz ; tar xf ports.tar.xz -C /usr/); ports.tar.xz 41 MB 943 kBps 45s real 1m10.018s user 0m3.526s sys 0m5.176s fetch https://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/ports.txz tar xf ports.txz -C /
Install source
fetch https://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/src.txz tar xf src.txz -C /
how_to_compile_xigmanas_from_scratch.pdf
https://forums.freebsd.org/threads/guide-using-git-to-manage-ports-source-and-documentation.79721/
git clone --depth=1 https://git.freebsd.org/ports.git /usr/ports git clone --depth=1 https://git.freebsd.org/src.git /usr/src
Install kernel/base
fetch --no-verify-peer http://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/kernel.txz mkdir xigmanas/kernel-txz tar xf kernel.txz -C xigmanas/kernel-txz fetch http://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/base.txz mkdir xigmanas/base-txz tar xf base.txz -C xigmanas/base-txz
Install packages:
pkg install -y bash subversion pigz cdrtools
Delete all packages:
pkg delete -a
Getting XigmaNAS from svn
mkdir /usr/local/xigmanas
cd /usr/local/xigmanas/
svn co https://svn.code.sf.net/p/xigmanas/code/trunk svn
#cd svn; svn up -r9884 # 13.2.0.5 - Heighliner (revision 9884)
cd svn; svn up -r10024 # 13.3.0.5 - Hesterion (revision 10024)
mkdir /usr/ports/distfiles
cp /usr/local/xigmanas/svn/build/ports/distfiles/*.{gz,zip} /usr/ports/distfiles/
ln -s /usr/local/xigmanas /root/xigmanas
sudo mkdir /usr/local/xigmanas
cd /usr/local/xigmanas/
fetch https://sourceforge.net/code-snapshots/svn/x/xi/xigmanas/code/xigmanas-code-r9999-trunk.zip
sudo tar xf xigmanas-code-r9999-trunk.zip
sudo ln -s xigmanas-code-r9999-trunk svn
cp /usr/local/xigmanas/svn/build/ports/distfiles/*.{gz,zip} /usr/ports/distfiles/
Update Version
echo -n 14.1.0.7> /usr/local/xigmanas/svn/etc/prd.version
binary version 14.1.0.7
Compiling XigmaNAS
WITHOUT_X11 is unsupported, use WITHOUT=X11 # virtualbox-ose
echo WITHOUT_X11=yes >> /etc/make.conf echo WITHOUT=X11 >> /etc/make.conf
export XIGMANAS_ROOTFS=/usr/local/xigmanas/rootfs/ export BATCH=yes /usr/local/xigmanas/svn/build/make.sh
# ls /usr/local/xigmanas XigmaNAS-x86-9.0.0.1.43.checksum builds XigmaNAS-x86-LiveCD-9.0.0.1.43.iso rootfs XigmaNAS-x86-embedded-9.0.0.1.43.img svn bootloader work
make build-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y make run-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y
install deps via pkg
cd /usr/local/xigmanas/svn/build/ports for i in */; do cd $i make build-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y cd .. done
cd /usr/local/xigmanas/svn/build/ports for i in */; do cd $i make build-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y make -j8 build ; make package && cp work/pkg/* /var/cache/pkg/ cd .. done
Blog
Code highlighting https://prismjs.com/#examples
History
freebsd mkdir(2) manpage history update syscall was not in version 1 unix it wasn't in version 6 either (see tom lions) syscalls: https://warsus.github.io/lions-/ mkdir is not listed
http://minnie.tuhs.org/cgi-bin/utree.pl?file=4.1cBSD/usr/man/man2/mkdir.2
https://pubs.opengroup.org/onlinepubs/009695299/functions/mkdir.html
mkdir syscall was added in BSD by Kirk McKuisick https://www.youtube.com/watch?v=XUj2vCKtegU&t=736s
https://gunkies.org/wiki/BSD 4.1c BSD - A beta of 4.2, and I think the first version of BSD sockets?
https://gunkies.org/wiki/4.2_BSD Date Released: 1983
https://gunkies.org/wiki/Installing_4.1c_BSD_on_SIMH You will need the following files from Bitsavers archive from the UCB_CSRG directory. I have used the files:
4.1C_BSD_1of2.zip (http://bitsavers.informatik.uni-stuttgart.de/bits/UCB_CSRG/4.1C_BSD_1of2.zip)
❯ grep mkdir.2 4.1C_BSD_1of2/burst/00004.txt -rw-r--r-- 0/0 1516 1983-02-26 17:21:59 man/man2/mkdir.2
Other
debootstrap unbuntu updates / symlink
Fonts
https://github.com/emaste/fontstuff/tree/master
https://docs.freebsd.org/en/books/handbook/bsdinstall/#bsdinstall-start
FreeBSD 8x8 syscons font
unifont https://unifoundry.com/unifont/unifont-utilities.html
xinch-filer02:/usr/ports# pkg install gnu-unifont-otf
fetch https://raw.githubusercontent.com/emaste/fontstuff/master/hex2bdf
unifont# ./hex2bdf iso-8x8.hex > iso-8x8.bdf
fontforge -lang=ff -c 'Open($1); Generate($2)' iso-8x8.bdf iso-8x8.woff2
Linux Jail
https://wiki.freebsd.org/LinuxJails
https://forums.freebsd.org/threads/running-linux-in-a-jail.90527/
https://iocage.readthedocs.io/en/latest/debian.html
qjail create -4 192.168.3.197 jammy debootstrap --arch=amd64 --no-check-gpg jammy /usr/jails/jammy/compat/ubuntu
finch:/usr/local/share/debootstrap/scripts# ln -s gutsy noble debootstrap --arch=amd64 --no-check-gpg noble /usr/jails/noble/compat/ubuntu
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
Errors
No Menu
XigmaNAS: 14.1.0.9 (revision 10142)
Compiled: Mon Jul 15 08:12:52 CDT 2024 Platform: x64-liveusb
Copyright (c) 2018-2024 XigmaNAS(R). All Rights Reserved.
Visit www.xigmanas.com for regular system updates!
WebGUI Address: http://
LAN Network IPv4 Address:
LAN Network Interface: vtnet0
FreeBSD/amd64 (xigmanas.internal) (ttyu0)
FreeBSD/amd64 (xigmanas.internal) (ttyu0)
FreeBSD/amd64 (xigmanas.internal) (ttyu0)
Fix
Check for opie
# ls ~/xigmanas/rootfs/usr/local/lib/libopie* /root/xigmanas/rootfs/usr/local/lib/libopie.so /root/xigmanas/rootfs/usr/local/lib/libopie.so.8
Patches
fdisk
cd /usr/local/xigmanas/svn/build/ports/fdisk make extract egrep -B1 -A1 '^usage' work/fdisk-1.1/fdisk.c 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 cd /usr/local/xigmanas/svn/build/ports/fdisk/work/fdisk-1.1 diff -u fdisk.c.orig fdisk.c > ../../files/patch-fdisk.c
isboot
cd /usr/local/xigmanas/svn/build/ports/isboot/ make extract grep pmap_unmapdev work/isboot-0.3.3/src/ibft.c 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 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 cd /usr/local/xigmanas/svn/build/ports/isboot/work/isboot-0.3.3/src diff -u ibft.c.orig ibft.c > ../../../files/patch-ibft.c diff -u Makefile.orig Makefile > ../../../files/patch-Makefile cd /usr/local/xigmanas/svn/build/ports/isboot/
fuppes
# bash automake gettext-tools libtool pkgconf newest ports? # autoreconf libtool gettext-tools pkgconf cd /usr/local/xigmanas/svn/build/ports/fuppes make extract grep 'pStream->codec->' work/fuppes-0.692/src/plugins/metadata_libavformat.c sed -i '.orig' 's/pStream->codec->/pStream->codecpar->/g' work/fuppes-0.692/src/plugins/metadata_libavformat.c 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 > files/patch-src__plugins__metadata_libavformat.c
netatalk3
root@xigmanas:/usr/local/xigmanas/svn/build/ports/netatalk3 # grep -r FreeBSD . | grep LINUX ./work/netatalk-3.1.14/etc/uams/uams_dhx_pam.c:#if defined LINUX || defined __FreeBSD__ ./work/netatalk-3.1.14/etc/uams/uams_dhx2_pam.c:#if defined LINUX || defined __FreeBSD__ ./work/netatalk-3.1.14/etc/uams/uams_pam.c:#if defined LINUX || defined __FreeBSD__ root@xigmanas:/usr/local/xigmanas/svn/build/ports/netatalk3 #
root@xigmanas:/usr/ports/net/netatalk3/files # ls -l
total 40
-rw-r--r-- 1 root wheel 646 Apr 6 2021 netatalk.in
-rw-r--r-- 1 root wheel 188 Apr 6 2021 pam.conf
-rw-r--r-- 1 root wheel 1767 May 1 2022 patch-config_Makefile.in
-rw-r--r-- 1 root wheel 556 Oct 6 23:17 patch-configure
-rw-r--r-- 1 root wheel 1007 Feb 27 2023 patch-etc_afpd_Makefile.in
-rw-r--r-- 1 root wheel 273 Jul 20 2016 patch-etc_cnid__dbd_cnid__metad.c
-rw-r--r-- 1 root wheel 341 May 1 2022 patch-etc_netatalk_Makefile.in
-rw-r--r-- 1 root wheel 380 Nov 22 16:10 patch-etc_uams_uams__dhx2__pam.c
-rw-r--r-- 1 root wheel 581 Nov 22 16:10 patch-etc_uams_uams__dhx__pam.c
-rw-r--r-- 1 root wheel 416 Nov 22 16:10 patch-etc_uams_uams__pam.c
root@xigmanas:/usr/ports/net/netatalk3/files # cat patch-etc_uams_uams__dhx2__pam.c
--- etc/uams/uams_dhx2_pam.c.orig 2023-11-22 15:19:12 UTC
+++ etc/uams/uams_dhx2_pam.c
@@ -136,7 +136,7 @@ error:
* echo off means password.
*/
static int PAM_conv (int num_msg,
-#ifdef LINUX
+#if defined(LINUX) || (defined(FREEBSD) && __FreeBSD_version >= 1400000)
const struct pam_message **msg,
#else
struct pam_message **msg,
root@xigmanas:/usr/ports/net/netatalk3/files # ls -l /usr/local/xigmanas/svn/build/ports/netatalk3/files/
total 24
-rw-r--r-- 1 root wheel 2563 Dec 28 17:22 netatalk.in
-rw-r--r-- 1 root wheel 1767 Dec 28 17:22 patch-config_Makefile.in
-rw-r--r-- 1 root wheel 508 Dec 28 17:22 patch-configure
-rw-r--r-- 1 root wheel 1007 Dec 28 17:22 patch-etc_afpd_Makefile.in
-rw-r--r-- 1 root wheel 273 Dec 28 17:22 patch-etc_cnid__dbd_cnid__metad.c
-rw-r--r-- 1 root wheel 341 Dec 28 17:22 patch-etc_netatalk_Makefile.in
root@xigmanas:/usr/ports/net/netatalk3/files #
3d printer
3D Design
3D Pixel Art
- find/create sprites/pixel art image
- reduce colors (2-4) and save image
- load image in MagicaVoxel (drag image file to image area)
- set each color to its own depth
- save to voxel file
- convert voxel to STL: https://drububu.com/miscellaneous/voxelizer/?out=stl
- make any changes to stl (Tinker CAD/etc)
- in PrusaSlicer, add breakpoints/stops/pauses for filament changes (note Z height on printer display when printing and Z slice height to see progress)
Octoprint
- https://community.octoprint.org/t/setting-up-octoprint-on-a-raspberry-pi-running-raspbian-or-raspberry-pi-os/2337
- https://raspberrypi.stackexchange.com/questions/59381/how-do-i-update-my-rpi3-to-python-3-6
- https://github.com/jjhelmus/berryconda
plugins
raspberry pi
cases
- octoscreen / octodash (screen has a simpler interface for smaller screens. dash is more powerful
LCD
- http://www.kumantech.com/kuman-35quot-inch-480x320-rgb-tft-lcd-pixels-touch-screen-with-touch-pen-for-raspberry-pi-3-2-model-b-b-a-a-module-spi-interface-sc06_p0014.html
- https://raspberrypi.stackexchange.com/questions/55522/how-can-i-install-the-kuman-3-5-inch-display
- https://github.com/goodtft/LCD-show
- https://community.octoprint.org/t/steps-to-install-touchui-for-kuman-3-5/16514