Category Archives: Uncategorized

Valuable News – 2023/05/29

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX or BSD systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here.

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).

Past releases are available at the dedicated NEWS page.

UNIX

Dynamic Tracing on OpenBSD 7.3.
https://blog.lambda.cx/posts/openbsd-dynamic-tracing/

AppJail is Framework Written in sh(1) and C to Create Isolated/Portable Environments Using FreeBSD Jails.
https://github.com/DtxdF/AppJail

Jails on FreeBSD.
https://ogris.de/howtos/freebsd-jails.html

BSD Now 508 – Foundational Proceedings.
https://www.bsdnow.tv/508

The xterm(1) is Better Than You Thought.
https://aduros.com/blog/xterm-its-better-than-you-thought/

NFS Server and Other Enhacements for FreeBSD Jails.
https://twitter.com/vmisev/status/1661916010897604608

Trouble with ALSA on FreeBSD.
https://daemondesktop.blogspot.com/2023/05/the-trouble-with-alsa.html

FreeBSD Foundation – BSDCan 2023 Trip Report – Jake Freeland.
https://freebsdfoundation.org/blog/bsdcan-2023-trip-report-jake-freeland/

Install speedtest-cli on FreeBSD to Check Internet Speed.
https://www.cyberciti.biz/faq/how-to-install-speedtest-cli-on-a-freebsd-to-check-internet-speed/

Is guifetch a Good neofetch Alternative?
https://www.youtube.com/watch?v=FXhnQbcY5ks

Derek Sivers Tech Independence with OpenBSD.
https://sive.rs/ti

Hardware

ASRock iBOX 12W Quad Core N97 Mini PC.
https://www.fanlesstech.com/2023/05/alder-lake-n-asrock-ibox.html

ZOTAC CI337 Nano Quad Core 6W Intel N100 Mini PC.
https://www.fanlesstech.com/2023/05/first-look-zotac-ci337-nano.html

EOF

Valuable News – 2023/05/22

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX or BSD systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here.

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).

Past releases are available at the dedicated NEWS page.

UNIX

NetBSD Installation Overview.
https://twitter.com/padukajorat/status/1658168940344799232/photo/1

BSD Now 506 – Greener BSD.
https://www.bsdnow.tv/506

Comparing Modern Open Source Storage Solutions OpenZFS vs. Rest.
https://klarasystems.com/articles/openzfs-comparing-modern-open-source-storage-solutions/

Creating OpenBSD Template over QEMU/Proxmox.
https://x61.sh/log/2023/05/17052023102313-qemu_proxmox_openbsd_template.html

Alternative CPU Clock Control powerdxx(8) for FreeBSD.
https://lonkamikaze.github.io/2016/04/07/powerdxx-better-cpu-clock-control-for-freebsd

PowerDNS Auth 4.8.0-beta1 on FreeBSD.
https://www.ncartron.org/testing-powerdns-lightning-stream-to-sync-lmdb-backends.html

20 Years of Gentoo.
https://blog.nawaz.org/posts/2023/May/20-years-of-gentoo/

BSD Now 507 – Michael W. Lucas Interview.
https://www.bsdnow.tv/507

Twitter @BlueFoxBook ASLR Comparison of ASLR Technologies.
https://twitter.com/kevlo/status/1657394733159944194

DragonflyBSD Installation Overview.
https://twitter.com/padukajorat/status/1659921214683348992

Progress on Speeding Up FreeBSD Boot Over the Years.
https://twitter.com/cperciva/status/1659059445685420032

How to Get Involved in FreeBSD!
https://www.youtube.com/watch?v=ILTiiGThoak

FreeBSD libfetch Ported to OpenBSD.
https://github.com/0x1eef/libfetch

Hardware

Inevitable POWER9 Hardware Withdrawals Begin.
https://www.itjungle.com/2023/05/15/the-inevitable-power9-hardware-withdrawals-begin/

Beelink EQ12 Intel N100 Mini PC Review.
https://www.cnx-software.com/2023/05/16/beelink-eq12-review-intel-processor-n100-mini-pc-windows-11-truenas-pfsense-ubuntu/

MegaWang 2000 Turbo Edition Hardware.
https://martin-piper.itch.io/bomb-jack-display-hardware

Intel Publishes X86-S Specification for 64bit Only Architecture.
https://www.phoronix.com/news/Intel-X86-S-64-bit-Only

Life

Energy Transition Has Metals Problem.
https://www.zerohedge.com/commodities/energy-transition-has-metals-problem

Bear Grylls Embarrassed After Promoting Veganism – Favors Red Meat Now.
https://www.dailymail.co.uk/health/article-12071921/Bear-Grylls-says-hes-embarrassed-used-promote-veganism.html

Red Meat is Not Health Risk – New study Slams Years of Shoddy Research.
https://bigthink.com/health/red-meat-cancer-not-health-risk/

Analysis: Toxicity of Lithium-Ion Batteries at Odds with Push for Electric Vehicles.
https://www.theepochtimes.com/analysis-toxicity-of-lithium-ion-batteries-at-odds-with-push-for-electric-vehicles_5265496.html

New Study Suggests that Lab Grown Meat Produces Up to 25 Times More CO2.
https://interestingengineering.com/science/lab-grown-meat-25-times-co2

Most Small Cars are Unsafe for Backseat Passengers.
https://www.thedrive.com/news/most-small-cars-are-unsafe-for-backseat-passengers-iihs

I Tell People I am a Janitor.
https://old.reddit.com/r/TrueOffMyChest/comments/13m2sr2/i_tell_people_im_a_janitor/

Bombshell Finding – Any Level of Fluoride in Water is Unsafe.
https://stuartbramhall.wordpress.com/2023/04/06/bombshell-finding-any-level-of-fluoride-in-water-is-unsafe/

Other

Firefox 113 on POWER.
https://www.talospace.com/2023/05/firefox-113-on-power.html

Heroes of Might and Magic II Recreation fheroes2 Adds Widescreen Support.
https://www.gamingonlinux.com/2023/05/heroes-of-might-and-magic-ii-recreation-fheroes2-adds-widescreen-support/

Modding Age of Empires II with Sprite Diffuser.
https://www.engine.study/blog/modding-age-of-empires-ii-with-a-sprite-diffuser/

EOF

Valuable News – 2023/05/15

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX or BSD systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here.

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).

Past releases are available at the dedicated NEWS page.

UNIX

FreeBSD Journal – 2023/03-04 – Embedded.
https://freebsdfoundation.org/past-issues/embedded/

Install FreeBSD 13.2 – Installation Guide for Beginners.
https://ostechnix.com/install-freebsd/

Self Hosted Bookmarks Using DAV and httpd on OpenBSD.
https://www.tumfatig.net/2023/self-hosted-bookmarks-using-dav-and-httpd-on-openbsd/

Setup VLAN Subnets for Home Network with pfSense.
https://netosec.com/home-network-vlans/

FreeBSD on Steam Deck.
https://twitter.com/DarkainMX/status/1568365945676263424

Want to Run macOS 13 on Your Old Mac? Here is How!
https://www.youtube.com/watch?v=3pCYHO-IMvc

OpenBSD cron(8) Now Supports Random Ranges with Steps.
https://www.undeadly.org/cgi?action=article;sid=20230507122935

50 Years in Filesystems – 1974 – Unix V7 File System.
https://blog.koehntopp.info/2023/05/05/50-years-in-filesystems-1974.html

50 Years in Filesystems – 1984 – BSD Fast Filing System.
https://blog.koehntopp.info/2023/05/06/50-years-in-filesystems-1984.html

Understanding ZFS vdev Types.
https://klarasystems.com/articles/openzfs-understanding-zfs-vdev-types/

8 Things You Can Do with KDE Connect on Linux.
https://www.makeuseof.com/things-you-can-do-with-kde-connect-on-linux/

OpenBSD 7.3 on DEC Alpha ES40 Simulator.
https://virtuallyfun.com/2023/05/10/openbsd-7-3-on-the-es40-dec-alpha-emulator/

GhostBSD 2023/04/23 Review – Semper Fidelis.
https://www.youtube.com/watch?v=S1NVpUakLHs

pfSense – Protect Home Network using Subnets – Part 1.
https://netosec.com/protect-home-network/

pfSense – Setup VLAN Subnets for Home Network – Part 2.
https://netosec.com/home-network-vlans/

pfSense – Setup WiFi VLAN Subnets for Home Network – Part 3.
https://netosec.com/home-network-wi-fi-vlans/

FreeBSD 13.2 on ThinkPad T14 (GEN1).
https://vermaden.wordpress.com/2023/05/14/freebsd-13-2-on-thinkpad-t14-gen1/

Introducing rsync-time-machine.py Python Script Offering Time Machine Style Backups.
https://github.com/basnijholt/rsync-time-machine.py

Hardware

Virtual Museum Videocard – Personal Collection.
https://vgamuseum.ru/

432 Core RISC-V Chip is European Processor Designed for Use in Space Taped Out
https://www.hpcwire.com/2023/05/08/european-processor-designed-for-use-in-space-taped-out/

Does USB Drive Gets Heavier as You Store Files on It?
https://www.sciencefocus.com/future-technology/does-a-usb-drive-get-heavier-as-you-store-more-files-on-it/

Baltimore Sues Hyundai/Kia over Massive Spike in Car Thefts.
https://www.thebaltimorebanner.com/community/criminal-justice/baltimore-lawsuit-hyundai-kia-thefts-WQ74KXUXTBGB3JOTHQHEGIPT6M/

IBM PC 8088 Replaced with Motorola 68000 CPU.
https://microcorelabs.wordpress.com/2023/04/28/ibm-pc-8088-replaced-with-a-motorola-68000/

I Will Not Spend More than $250 on New Smartphone.
https://www.theverge.com/23719879/smartphone-price-budget-pixel-7a-editorial

Intel Issues New CPU Microcode Going Back to GEN8 for New and Undisclosed Security Updates.
https://www.phoronix.com/news/Intel-12-May-2023-Microcode

HP Disables Customers Printers if They Use Ink Cartridges from Cheaper Rivals.
https://www.telegraph.co.uk/money/consumer-affairs/hp-printers-computers-ink-cartridges-rivals/

ASRock N100 Based N100DC-ITX and N100M Motherboards.
https://www.servethehome.com/asrock-adopts-intel-alder-lake-n-with-n100-based-n100dc-itx-and-n100m-motherboards/

When Everything Else Fails – Amateur Radio Will Still Be There and Thriving.
https://arstechnica.com/gadgets/2016/06/when-everything-else-fails-amateur-radio-will-still-be-there-and-thriving/

Life

India Bans Open Source Messaging Apps for Security Reasons.
https://www.theregister.com/2023/05/09/india_messaging_apps_ban/

Swiss People Vote Over Ban on Cashless Society.
https://tavexbullion.co.uk/the-swiss-people-vote-over-the-ban-on-cashless-society/

Role of Meat in Human Diet: Evolutionary Aspects and Nutritional Value.
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10105836/

Remembering Golden Age of Airline Food.
https://www.atlasobscura.com/articles/airline-food-history

What Happened Next After I Left Software Engineering Career to Prioritize Health.
https://thewebivore.com/what-happened-next/

Influenza Vaccine Fails to Stop Hospitalization and Death.
https://petermcculloughmd.substack.com/p/influenza-vaccine-fails-to-stop-hospitalization

Two Youths Commit Suicide in Taxpayer Funded Cross Sex Hormone Study.
https://www.zerohedge.com/markets/two-youths-commit-suicide-taxpayer-funded-cross-sex-hormone-study

Cultivated Meat Could Emit 25 Times More CO2 than Conventional Beef.
https://www.foodnavigator.com/Article/2023/05/12/cultivated-meat-could-emit-25-times-more-co2e-than-conventional-beef-finds-research

Other

Firefox 113 Available with AVIS – Animated AV1 Image Support.
https://www.phoronix.com/news/Mozilla-Firefox-113

Firefox 113 Release Notes.
https://www.mozilla.org/en-US/firefox/113.0/releasenotes/

What I Want from Internet.
https://www.chrbutler.com/what-i-want-from-the-internet

Twitter without Ads on Timeline with Small CSS Snippet.
https://gist.github.com/cmoog/6cedfb2be1f712ceb091fbd05c9dab3e

Free42 – HP-42S Calculator Simulator.
https://thomasokken.com/free42/

EOF

FreeBSD 13.2 on ThinkPad T14 (GEN1)

I used to run FreeBSD on older laptops – some more then a decade old – like my favorite ThinkPad W520 daily driver or ThinkPad X220 mobile companion. Today I will share with you my experiences of running latest production ready FreeBSD 13.2-RELEASE system on a quite modern ThinkPad T14 (GEN1) from 2021/2022 (depending on the source of the information) – which is quite new I would say.

… do not interpret this article wrong – The W520 and X220 (sometimes T420s) are still my daily/mobile/… drivers and my points explained in the Epitaph to Laptops article remain the same. I just had an opportunity to use ThinkPad T14 for several days so I thought it would be a good idea to check and document FreeBSD behavior on it.

In many parts this article will be a copy cat of the earlier FreeBSD 13.1 on ThinkPad W520 article – as the topic and configs are mostly the same – you have been warned πŸ™‚

ThinkPad T14 (GEN1)

As the ThinkPad T490 was released Lenovo needed to rethink their naming convention as the next one could have been ThinkPad T4100 (like 100 is after 90) or something different as T500 was already taken by older model … their new naming scheme is not bad – definitely better then their idea of newer keyboard layout after ditching the 7-row keyboard from 2011 and earlier models.

The model I was able to test on had quad core Intel i5-10210U model CPU which is somewhere between 25-35% faster (according to benchmarks) then the Intel i7-2860QM CPU from my ThinkPad W520. Not bad – especially knowing that the time span between their releases is 9 years … but to be honest – in real usage I do not feel that 25-35% more speed.

T14 % lscpu
Architecture:            amd64
Byte Order:              Little Endian
Total CPU(s):            8
Thread(s) per core:      2
Core(s) per socket:      4
Socket(s):               1
Vendor:                  GenuineIntel
CPU family:              6
Model:                   142
Model name:              Intel(R) Core(TM) i5-10210U CPU @ 1.60GHz
Stepping:                12
L1d cache:               32K
L1i cache:               32K
L2 cache:                256K
L3 cache:                6M
Flags:                   fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36
                         cflsh ds acpi mmx fxsr sse sse2 ss htt tm pbe sse3 pclmulqdq dtes64
                         monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1
                         sse4_2 x2apic movbe popcnt tsc_deadline aes xsave osxsave avx f16c rdrnd
                         fsgsbase tsc_adjust sgx bmi1 avx2 smep bmi2 erms invpcid fpcsds mpx rdseed
                         adx smap clflushopt intel_pt syscall nx pdpe1gb rdtscp lm lahf_lm lzcnt

Below you can see how ThinkPad T14 (GEN1) looks like.

thinkpad-t14

To be honest I would even prefer to use ThinkPad SK-8855 USB keyboard as showed here below.

T14s-keyboard-upgraded

Specifications

Below You will find specs of this machine.

CPU: Intel Core i5-10210U (4C/8T) 14nm
RAM: 16 GB (2 * 8GB DDR4)
HDD0: 256GB WD Black SN750 M.2 [nvd(4)]
GFX0: Intel UHD Graphics (integrated) [graphics/drm-kmod]
SCR: 14.1 1920x1080 Touch Screen
USB: 2 x USB-A 3.0 + 1 x USB-C 3.0 [ehci(4) + xhci(4)]
AUDIO: Realtek ALC257 [snd_hda(4)]
PORTS: 1 x HDMI
SD: microSD Card Reader [sdhci(4)]
LAN: 10/100/1000 Intel I219-V Gigabit [em(4)]
WIFI: Intel Comet Lake PCH-LP CNVi WiFi 802.11ax [iwlwifi(4)]
CAM: Webcam 720p [multimedia/webcamd]

I have uploaded the https://bsd-hardware.info/ probe of that ThinkPad T14 to their database and its available – https://bsd-hardware.info/?probe=8aede62ca8 – here.

After messing with this laptop for a while I can tell you that in most areas its on par with mine ThinkPad W520 laptop. The battery time is similar (about 5 hours). The suspend/resume works when you use X11 with graphics/drm-kmod package. Even the touch screen works like a charm – the same as my other ThinkPad X220t (tablet) … and even no additional configuration was needed – I just used the configuration that I use daily on my ThinkPad W520 laptop. But … the WiFi does not work πŸ™‚ While iwlwifi(4) properly attaches to this card the wpa_supplicant(8) is just not able to connect to the Access Point. There are at least several ways on how to Cope with WiFi Fuckup on FreeBSD – feel free to check them out. I used my favorite fallback solution – Realtek RTL8188CUS USB dongle and that one worked really well with rtwn(4) driver.

FreeBSD System Configuration

From many things that I really like about FreeBSD (more here – Quare FreeBSD? – in separate article) is that it can be entirely configured using just 3 files. This configuration already features all power management settings that I described in the The Power to Serve – FreeBSD Power Management article.

I installed FreeBSD in a pretty standard way with GELI encryption enabled and with ZFS as the filesystem. When in doubt the installation procedure is described in the FreeBSD Desktop – Part 2.1 – Install FreeBSD 12 article.

Main FreeBSD configuration files.

  • /etc/rc.conf – to system services
  • /etc/sysctl.conf – for runtime parameters
  • /boot/loader.conf – for parameters configurable at boot

I will also include these as their are also crucial for the configuration:

  • /etc/devfs.rules – devices configuration/li>
  • /etc/fstab – filesystems configuration
  • /etc/ttys – terminal initialization configuration
  • /etc/wpa_supplicant.conf – WiFi configuration
  • /usr/local/etc/automount.confautomount(8) configuration
  • /usr/local/etc/doas.confdoas(1) configuration
  • Groups membership.

First the main /etc/rc.conf configuration file.

% cat /etc/rc.conf
# SILENCE # ------------------------------------------------------------------
  rc_startmsgs=NO

# NETWORK # ------------------------------------------------------------------
  hostname=t14.local
  background_dhclient=YES
  extra_netfs_types=NFS
  wlans_rtwn0=wlan0
  create_args_wlan0="country PL regdomain FCC4"
  ifconfig_wlan0="WPA SYNCDHCP"
  defaultroute_delay=3
  defaultroute_carrier_delay=3
  gateway_enable=YES
  harvest_mask=351
  rtsol_flags="-i"
  rtsold_flags="-a -i"

# MODULES/COMMON/BASE # ------------------------------------------------------
  kld_list="${kld_list} /boot/modules/i915kms.ko"
  kld_list="${kld_list} fusefs coretemp sem cpuctl ichsmb cuse"
  kld_list="${kld_list} libiconv cd9660_iconv msdosfs_iconv udf_iconv"

# MODULES/VIRTUALBOX # -------------------------------------------------------
  vboxnet_enable=YES
  kld_list="${kld_list} vboxdrv vboxnetadp vboxnetflt"

# POWER
  performance_cx_lowest=C1
  economy_cx_lowest=Cmax
  powerd_enable=YES
  powerd_flags="-n adaptive -a hiadaptive -b adaptive -m 800 -M 2000"

# DAEMONS | yes # ------------------------------------------------------------
  zfs_enable=YES
  xdm_enable=YES
  xdm_tty=ttyv4
  nfs_client_enable=YES
  ubuntu_enable=YES
  moused_enable=YES
  syslogd_flags='-s -s'
  sshd_enable=YES
  local_unbound_enable=YES
  webcamd_enable=YES
  rctl_enable=YES

# DAEMONS | no # -------------------------------------------------------------
  linux_enable=NO
  sendmail_enable=NONE
  sendmail_submit_enable=NO
  sendmail_outbound_enable=NO
  sendmail_msp_queue_enable=NO

# FS # -----------------------------------------------------------------------
  fsck_y_enable=YES
  clear_tmp_enable=YES
  clear_tmp_X=YES
  growfs_enable=YES

# OTHER # --------------------------------------------------------------------
  keyrate=fast
  keymap=pl.kbd
  virecover_enable=NO
  update_motd=NO
  devfs_system_ruleset=desktop
  hostid_enable=NO
  savecore_enable=NO

Now the runtime parameters /etc/sysctl.conf file.

% cat /etc/sysctl.conf
# SECURITY
  security.bsd.see_jail_proc=0
  security.bsd.unprivileged_proc_debug=0

# SECURITY/RANDOM PID
  kern.randompid=1

# ANNOYING THINGS
  vfs.usermount=1
  kern.coredump=0
  hw.syscons.bell=0
  kern.vt.enable_bell=0

# ZFS DELETE FUCKUP TRIM (DEFAULT: 64)
  vfs.zfs.vdev.trim_max_active=1

# ZFS ARC TUNING
  vfs.zfs.arc.min=134217728
  vfs.zfs.arc.max=536870912

# ZFS ARC FREE ENFORCE @ 1024 \* 1024 \* 3
  vfs.zfs.arc_free_target=3145728

# JAILS/ALLOW UPGRADES IN JAILS
  security.jail.chflags_allowed=1

# JAILS/ALLOW RAW SOCKETS
  security.jail.allow_raw_sockets=1

# DESKTOP/INTERACTIVITY
  kern.sched.preempt_thresh=224

# DESKTOP QUANTUM FOR TIMESHARE THREADS IN stathz TICKS (12) NomadBSD
  kern.sched.slice=3

# DESKTOP/IRIDIUM/CHROMIUM
  kern.ipc.shm_allow_removed=1

# SAMPLE RATE CONVERTER QUALITY (0=low .. 4=high) (1) NomadBSD
  hw.snd.feeder_rate_quality=3

# PERFORMANCE/ALL SHARED MEMORY SEGMENTS WILL BE MAPPED TO UNPAGEABLE RAM
  kern.ipc.shm_use_phys=1

# VIRTUALBOX aio(4) SETTINGS
  vfs.aio.max_buf_aio=8192
  vfs.aio.max_aio_queue_per_proc=65536
  vfs.aio.max_aio_per_proc=8192
  vfs.aio.max_aio_queue=65536

# POWER CONSUMPTION / SILENT FANS Intel 6th GEN+ / ONE LINE FOR EACH TH
# DETAILS IN THE hwpstate_intel(4) MAN PAGE
  dev.hwpstate_intel.0.epp=100
  dev.hwpstate_intel.1.epp=100
  dev.hwpstate_intel.2.epp=100
  dev.hwpstate_intel.3.epp=100
  dev.hwpstate_intel.4.epp=100
  dev.hwpstate_intel.5.epp=100
  dev.hwpstate_intel.6.epp=100
  dev.hwpstate_intel.7.epp=100

# NETWORK/DO NOT SEND RST ON SEGMENTS TO CLOSED PORTS
  net.inet.tcp.blackhole=2

# NETWORK/DO NOT SEND PORT UNREACHABLES FOR REFUSED CONNECTS
  net.inet.udp.blackhole=1

# NETWORK/LIMIT ON SYN/ACK RETRANSMISSIONS (3)
  net.inet.tcp.syncache.rexmtlimit=0

# NETWORK/USE TCP SYN COOKIES IF THE SYNCACHE OVERFLOWS (1)
  net.inet.tcp.syncookies=0

# NETWORK/ASSIGN RANDOM ip_id VALUES (0)
  net.inet.ip.random_id=1

# NETWORK/ENABLE SENDING IP REDIRECTS (1)
  net.inet.ip.redirect=0

# NETWORK/IGNORE ICMP REDIRECTS (0)
  net.inet.icmp.drop_redirect=1

# NETWORK/DROP TCP PACKETS WITH SYN+FIN SET (0)
  net.inet.tcp.drop_synfin=1

# NETWORK/RECYCLE CLOSED FIN_WAIT_2 CONNECTIONS FASTER (0)
  net.inet.tcp.fast_finwait2_recycle=1

# NETWORK/CERTAIN ICMP UNREACHABLE MESSAGES MAY ABORT CONNECTIONS IN SYN_SENT (1)
  net.inet.tcp.icmp_may_rst=0

The biggest difference for ThinkPad T14 against the ThinkPad W520 is this part below.

# POWER CONSUMPTION / SILENT FANS Intel 6th GEN+ / ONE LINE FOR EACH TH
# DETAILS IN THE hwpstate_intel(4) MAN PAGE
  dev.hwpstate_intel.0.epp=100
  dev.hwpstate_intel.1.epp=100
  dev.hwpstate_intel.2.epp=100
  dev.hwpstate_intel.3.epp=100
  dev.hwpstate_intel.4.epp=100
  dev.hwpstate_intel.5.epp=100
  dev.hwpstate_intel.6.epp=100
  dev.hwpstate_intel.7.epp=100

It was not needed/non existent on the ThinkPad W520 hardware.

Now the boot parameters /boot/loader.conf file.

% cat /boot/loader.conf
# CONSOLE COMMON
  autoboot_delay=2       # OPT. '-1' => NO WAIT | OPT. 'NO' => INFINITE WAIT
  hw.usb.no_boot_wait=1  # DO NOT WAIT FOR USB DEVICES FOR ROOT (/) FILESYSTEM
  boot_mute=YES          # LIKE '-m' IN LOADER - MUTE CONSOLE WITH FreeBSD LOGO
  loader_logo=none       # DESIRED LOGO OPTIONS: fbsdbw beastiebw beastie none
  loader_menu_frame="none"
  screen.font="6x12"

# CONSOLE RESOLUTION
  kern.vt.fb.default.mode="1920x1080"
  efi_max_resolution="1920x1080"

# WINE FIX
  machdep.max_ldt_segment=2048

# MODULES - BOOT
  aesni_load=YES
  geom_eli_load=YES
  cryptodev_load=YES
  zfs_load=YES

# drm-kmod PACKAGE - USE SEMAPHORES FOR INTER-RING SYNC
  compat.linuxkpi.semaphores=1

# drm-kmod PACKAGE - ENABLE POWER-SAVING RENDER C-STATE 6
  compat.linuxkpi.enable_rc6=7

# drm-kmod PACKAGE - ENABLE POWER-SAVING DISPLAY C-STATES
  compat.linuxkpi.enable_dc=2

# drm-kmod PACKAGE - ENABLE FRAME BUFFER COMPRESSION FOR POWER SAVINGS
  compat.linuxkpi.enable_fbc=1

# ENABLE SYNAPTICS
  hw.psm.synaptics_support=1

# DISABLE /dev/diskid/* ENTRIES FOR DISKS
  kern.geom.label.disk_ident.enable=0

# DISABLE /dev/gptid/* ENTRIES FOR DISKS
  kern.geom.label.gptid.enable=0

# TERMINAL vt(4) COLORS
  kern.vt.color.0.rgb="#000000"
  kern.vt.color.1.rgb="#dc322f"
  kern.vt.color.2.rgb="#859900"
  kern.vt.color.3.rgb="#b58900"
  kern.vt.color.4.rgb="#268bd2"
  kern.vt.color.5.rgb="#ec0048"
  kern.vt.color.6.rgb="#2aa198"
  kern.vt.color.7.rgb="#94a3a5"
  kern.vt.color.8.rgb="#586e75"
  kern.vt.color.9.rgb="#cb4b16"
  kern.vt.color.10.rgb="#859900"
  kern.vt.color.11.rgb="#b58900"
  kern.vt.color.12.rgb="#268bd2"
  kern.vt.color.13.rgb="#d33682"
  kern.vt.color.14.rgb="#2aa198"
  kern.vt.color.15.rgb="#6c71c4"

# RACCT/RCTL RESOURCE LIMITS
  kern.racct.enable=1

# DISABLE ZFS PREFETCH
  vfs.zfs.prefetch_disable=1

# POWER MGMT / POWER OFF DEVICES WITHOUT ATTACHED DRIVER
  hw.pci.do_power_nodriver=3

# POWER MANAGEMENT FOR EVERY USED AHCI CHANNEL (ahcich 0-7)
  hint.ahcich.0.pm_level=5
  hint.ahcich.1.pm_level=5
  hint.ahcich.2.pm_level=5
  hint.ahcich.3.pm_level=5
  hint.ahcich.4.pm_level=5
  hint.ahcich.5.pm_level=5
  hint.ahcich.6.pm_level=5
  hint.ahcich.7.pm_level=5

# GELI THREADS
  kern.geom.eli.threads=4

Now the mentioned /etc/devfs.rules file.

% cat /etc/devfs.rules
[desktop=10]
add path 'acd*'      mode 0660 group operator
add path 'cd*'       mode 0660 group operator
add path 'da*'       mode 0660 group operator
add path 'pass*'     mode 0660 group operator
add path 'xpt*'      mode 0660 group operator
add path 'fd*'       mode 0660 group operator
add path 'md*'       mode 0660 group operator
add path 'uscanner*' mode 0660 group operator
add path 'lpt*'      mode 0660 group cups
add path 'ulpt*'     mode 0660 group cups
add path 'unlpt*'    mode 0660 group cups
add path 'ugen*'     mode 0660 group operator
add path 'usb/*'     mode 0660 group operator
add path 'video*'    mode 0660 group operator
add path 'cuse*'     mode 0660 group operator

Filesystems and SWAP configuration.

% cat /etc/fstab
# SWAP
  /dev/gpt/swap0  none  swap  sw  0 0

# FreeBSD PSEUDO - NEEDED BY wine(1)
  procfs  /proc  procfs  rw  0 0

# Ubuntu Linux PSEUDO
  linprocfs  /compat/ubuntu/proc     linprocfs  rw,late                    0 0
  linsysfs   /compat/ubuntu/sys      linsysfs   rw,late                    0 0
  devfs      /compat/ubuntu/dev      devfs      rw,late                    0 0
  fdescfs    /compat/ubuntu/dev/fd   fdescfs    rw,late,linrdlnk           0 0
  tmpfs      /compat/ubuntu/dev/shm  tmpfs      rw,late,size=1g,mode=1777  0 0
  /home      /compat/ubuntu/home     nullfs     rw,late                    0 0
  /tmp       /compat/ubuntu/tmp      nullfs     rw,late                    0 0

Terminals configuration under /etc/ttys file. Important part is the ttyv4 entry to match the xdm_tty=ttyv4 value from /etc/rc.conf file.

% grep '^[^#]' /etc/ttys | cat
console none                            unknown off insecure
ttyv0   "/usr/libexec/getty Pc"         xterm   onifexists secure
ttyv1   "/usr/libexec/getty Pc"         xterm   onifexists secure
ttyv2   "/usr/libexec/getty Pc"         xterm   onifexists secure
ttyv3   "/usr/libexec/getty Pc"         xterm   onifexists secure
ttyv4   "/usr/libexec/getty Pc"         xterm   off secure
ttyv5   "/usr/libexec/getty Pc"         xterm   off secure
ttyv6   "/usr/libexec/getty Pc"         xterm   off secure
ttyv7   "/usr/libexec/getty Pc"         xterm   off secure
ttyv4   "/usr/local/bin/xdm -nodaemon"  xterm   off secure
ttyu0   "/usr/libexec/getty 3wire"      vt100   onifconsole secure
ttyu1   "/usr/libexec/getty 3wire"      vt100   onifconsole secure
ttyu2   "/usr/libexec/getty 3wire"      vt100   onifconsole secure
ttyu3   "/usr/libexec/getty 3wire"      vt100   onifconsole secure
dcons   "/usr/libexec/getty std.9600"   vt100   off secure
xc0     "/usr/libexec/getty Pc"         xterm   onifconsole secure
rcons   "/usr/libexec/getty std.9600"   vt100   onifconsole secure

I kept wireless config in /etc/rc.conf file this time – it does conflicts with my own network.sh solution to connect to various both wire and wireless networks – FreeBSD Network Management with network.sh Script – described in details here.

# cat /etc/wpa_supplicant.conf
# GENERAL
eapol_version=2
ap_scan=1
fast_reauth=1

# OPEN NETWORKS
network={
  key_mgmt=NONE
  priority=0
}

# NETWORK WITH HIDDEN SSID
network={
  scan_ssid=1
  ssid="hidden-network"
  psk="12341234"
  priority=0
}

# NAMED OPEN NETWORK
network={
  ssid="Free_Internet"
  key_mgmt=NONE
  priority=0
}

# NORMAL WPA/WPA2 SECURED NETWORK
network={
  ssid="SECURED"
  psk="12345678"
}

The automount(8) config.

% cat /usr/local/etc/automount.conf
  USERUMOUNT=YES
  USER=vermaden
  FM='caja --no-desktop'
  NICENAMES=YES

The doas(1) configuration.

# cat /usr/local/etc/doas.conf
# CORE
  permit nopass keepenv root     as root
  permit nopass keepenv vermaden as root

# THE network.sh SCRIPT
  # pw groupmod network -m YOURUSERNAME
  # cat /usr/local/etc/doas.conf
  permit nopass :network as root cmd /etc/rc.d/netif args onerestart
  permit nopass :network as root cmd /usr/sbin/service args squid onerestart
  permit nopass :network as root cmd dhclient
  permit nopass :network as root cmd ifconfig
  permit nopass :network as root cmd killall args -9 dhclient
  permit nopass :network as root cmd killall args -9 ppp
  permit nopass :network as root cmd killall args -9 wpa_supplicant
  permit nopass :network as root cmd ppp
  permit nopass :network as root cmd route
  permit nopass :network as root cmd tee args -a /etc/resolv.conf
  permit nopass :network as root cmd tee args /etc/resolv.conf
  permit nopass :network as root cmd umount
  permit nopass :network as root cmd wpa_supplicant

Groups I am member of.

% id vermaden | tr ' ' '\n' | tr ',' '\n'
uid=1000(vermaden)
gid=1000(vermaden)
groups=1000(vermaden)
0(wheel)
5(operator)
44(video)
69(network)
145(webcamd)
920(vboxusers)

I also do not rely on ‘stock’ fan speeds and set my own speeds according to CPU temperature with acpi-thinkpad-fan.sh script.

X11

While X11 did not need any custom configuration and it worked out of the box – I have done two things to make it work slightly differently.

First one is to allow CTRL+ALT+BACKSPACE fast way to restart X11.

t14 % cat /usr/local/etc/X11/xorg.conf.d/flags.conf
Section "ServerFlags"
  Option "DontZap" "off"
EndSection

The other one is to enable Tap to Click and Natural Scrolling on a Synaptics touchpad.

t14 % cat /usr/local/etc/X11/xorg.conf.d/touchpad.conf
Section "InputClass"
  Identifier "touchpad"
  MatchIsTouchpad "on"
  Driver "libinput"
  Option "Tapping" "on"
  Option "NaturalScrolling" "on"
EndSection

Comparison to ThinkPad W520

I compared the two laptops. While ThinkPad W520 is heavy and bulky the ThinkPad T14 (GEN1) is light and slim. They both have similar 5 hours battery time on FreeBSD.

You can see the screen brightness comparison between these two below.

LARGE-compare-screen-brightness

The ThinkPad T14 (GEN1) has several flavors of the FullHD screen – check reviews and specs for details. For the record – ThinkPad W520 is on the left.

Below you will find size comparisons.

The view from the top.

LARGE-compare-top

View from the side.

LARGE-compare-side

… and from the side one over another.

LARGE-compare-over

Desktop Environment

Openbox

As for the ‘desktop environment’ that I use – its my custom setup with Openbox along with tools like Tint2 and Dzen2 – for the most basic setup. The screenshot is from FreeBSD 11.1 but it looks exactly the same today.

freebsd-desktop-2019-04

I described this setup in details in the entire FreeBSD Desktop series.

XFCE

I have also tried XFCE – I liked it especially with the Global Menu appmenu plugin. You go this way with this XFCE Cupertino Way handy guide.

xfce-ghostbsd

GNOME

I also tried GNOME for a test – it did not suit me well so I went back to my Openbox setup – but You may find it more comfortable to use. Here is the FreeBSD GNOME 3 Fast Track article that will help you with that.

gnome-8-fixed

Temperatures

I used mine sensors.sh script for that – results below.

t14 # sensors.sh

            BATTERY/AC/TIME/FAN/SPEED
 ------------------------------------
             dev.acpi_ibm.0.fan_level: 1
             dev.acpi_ibm.0.fan_speed: 65535
                   dev.acpi_ibm.0.fan: 0
               dev.cpu.0.cx_supported: C1/1/1 C2/2/151 C3/3/1034
                   dev.cpu.0.cx_usage: 9.02% 35.95% 55.02% last 35us
                       dev.cpu.0.freq: 802
                       hw.acpi.acline: 0
                 hw.acpi.battery.life: 99
                 hw.acpi.battery.time: 275
                hw.acpi.cpu.cx_lowest: C8
                            powerd(8): running

                  SYSTEM/TEMPERATURES
 ------------------------------------
                dev.cpu.0.temperature: 38.0C (max: 100.0C)
                dev.cpu.1.temperature: 39.0C (max: 100.0C)
                dev.cpu.2.temperature: 39.0C (max: 100.0C)
                dev.cpu.3.temperature: 39.0C (max: 100.0C)
                dev.cpu.4.temperature: 40.0C (max: 100.0C)
                dev.cpu.5.temperature: 41.0C (max: 100.0C)
                dev.cpu.6.temperature: 38.0C (max: 100.0C)
                dev.cpu.7.temperature: 38.0C (max: 100.0C)
           dev.pchtherm.0.temperature: 46.0C
      hw.acpi.thermal.tz0.temperature: 46.1C (max: 128.1C)

                   DISKS/TEMPERATURES
 ------------------------------------
             smart.nvme0.temperature:: 44.0C

Accessories

There are some accessories that are very handy with the ThinkPad T14 laptop – I will describe them below.

Power Supply

You can use the default ThinkPad T14 power supply and you can also use any USB-C power delivery charger – that is nice addition.

Mouse Companion

After checking many mouse models – as described in the UNIX Mouse Shootout article – I finally settled with Logitech Triathlon M720 mouse. I have plugged the Lenovo USB Receiver into the back ‘powered’ USB port. While I use that mouse over the USB receiver you can also connect it using Bluetooth – also to other computers. This mouse has a special dedicated button to switch between 3 different computers. Unfortunately the copy-paste between them does not work πŸ™‚

mouse-M720

Battery

Some battery details below.

t14 % acpiconf -i 0
Design capacity:        50450 mWh
Last full capacity:     45760 mWh
Technology:             secondary (rechargeable)
Battery Swappable Capability:   Non-swappable
Design voltage:         11520 mV
Capacity (warn):        2288 mWh
Capacity (low):         200 mWh
Cycle Count:            204
Mesurement Accuracy:    95 %
Max Average Interval:   1000 ms
Min Average Interval:   500 ms
Low/warn granularity:   -1 mWh
Warn/full granularity:  -1 mWh
Model number:           5B10W13906
Serial number:           1071
Type:                   LiP
OEM info:               SMP
State:                  discharging
Remaining capacity:     99%
Remaining time:         4:31
Present rate:           10094 mW
Present voltage:        12681 mV

Experience

Today I ‘recognize’ three laptop keyboard layouts.

  • Best in class 7-row keyboards with INS/DEL and HOME/END and PGUP/PGDN keys block on the right top side.
  • Least PITA ThinkPad T14 like keyboards where PGUP/PGDN keys are in the ARROWS area and HOME/END/INS/DEL block is provided on the top right part.
  • Everything else that I treat like shit.

My fingers do not remember this HOME/END/INS/DEL block that much well – but at its still several ways of magnitude better then any Macbook keyboard layout.

Summary

I will still use mine ThinkPad W520 daily – I still do not need to move to other/less old laptop.

As you can see FreeBSD works quite well with modern laptops – hope someone can find that article useful.

EOF

Valuable News – 2023/05/09

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX or BSD systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here.

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).

UNIX

FreeBSD TCP Performance System Controls.
https://klarasystems.com/articles/freebsd-tcp-performance-system-controls/

Ouch – FreeBSD Compression Helper.
https://www.youtube.com/watch?v=_hHCZAOcHk8

FreeBSD List and Find Out All Installed Hard Disk Size Information.
https://www.cyberciti.biz/faq/freebsd-hard-disk-information/

Exploring CBSD Virtual Environment Management Framework – Part 4 – Jails.
https://eerielinux.wordpress.com/2023/04/30/exploring-the-cbsd-virtual-environment-management-framework-part-4-jails-ii/

HardenedBSD 2023/04 Status Report.
https://hardenedbsd.org/article/shawn-webb/2023-05-01/hardenedbsd-april-2023-status-report

Install OpenBSD as VM.
https://byte-sized.de/linux-unix/openbsd-als-vm-installieren/#english

OPNsense 23.1.7 Released.
https://forum.opnsense.org/index.php?topic=33836.0

User Management in FreeBSD.
https://www.youtube.com/watch?v=C0_1B4Wm1dE

UEFI Secure Boot on Raspberry Pi.
https://www.linux.it/~ema/posts/secure-boot-rpi/

French Accents on FreeBSD Lenovo Laptop.
https://www.ncartron.org/french-accents-on-a-freebsd-lenovo-laptop.html

How to Install Bareos.
https://www.youtube.com/watch?v=f-2dlqfLFRc

Detailed Comparison Between OPNsense 23.1 and pfSense CE 2.6.
https://homenetworkguy.com/review/detailed-comparison-between-opnsense-and-pfsense/

BSD Now 505 – BSD Desktop Setup.
https://www.bsdnow.tv/505

Accelerating Datacenter Energy Efficiency by Leveraging FreeBSD as Your Server OS.
https://klarasystems.com/articles/accelerating-datacenter-energy-efficiency-by-leveraging-freebsd-as-your-server-os/

FreeBSD Foundation – AsiaBSDCon 2023 – Trip Report.
https://freebsdfoundation.org/blog/asiabsdcon-2023-trip-report/

FreeBSD Foundation Welcomes New Team Members.
https://freebsdfoundation.org/blog/freebsd-foundation-welcomes-new-team-members/

Use burgr to Read Books in Your Terminal.
https://blubsblog.bearblog.dev/burgr-books-in-your-terminal/

FreeBSD Foundation 2023 Q1 Software Development Projects Update.
https://freebsdfoundation.org/blog/spring-2023-foundation-software-development-projects-update/

Hardware

Converting ThinkPad X201 Into Slabtop.
https://bt.ht/slabtop/

Sun Ray History.
https://marcschneider.weebly.com/sun-ray.html

Forgotten Workstation: Sun JavaStation.
https://hackaday.com/2018/04/10/the-forgotten-workstation-sun-javastation/

Compromising Garmin Sport Watches – Deep Dive into GarminOS and its MonkeyC Virtual Machine.
https://www.anvilsecure.com/blog/compromising-garmins-sport-watches-a-deep-dive-into-garminos-and-its-monkeyc-virtual-machine.html

Ports Test Builder for arm64/aarch64 in Oracle Cloud.
https://sekrit.de/webdocs/freebsd/oracle-aarch64-testbuilder.html

Return Oriented Programming on RISC-V – Part 1.
https://www.bogdandeac.com/return-oriented-programming-on-risc-v/

27L V12 Spitfire Engine Car on Street.
https://www.youtube.com/watch?app=desktop&v=QFdhCZ517gU

PSU Tier List Revision 17.0g.
https://cultists.network/140/psu-tier-list/

Shuttle XPC Slim V.
https://www.fanlesstech.com/2023/05/shuttle-xpc-slim-v2.html

Life

Amnesty International Criticized for Using AI Generated Images.
https://www.theguardian.com/world/2023/may/02/amnesty-international-ai-generated-images-criticism

Had Suit Made – They Asked If I Wanted Anything Embroidered…
https://www.reddit.com/r/bash/comments/138wgld/had_a_suit_made_they_asked_if_i_wanted_anything/

Novak Djokovic Talks About NATO Bombing His Childhood Home in 1999.
https://twitter.com/KanekoaTheGreat/status/1654671932338630657

Other

Dutch Police Arrest Boris Johnson After DUI Incident.
https://insiderpaper.com/dutch-police-arrest-boris-johnson-after-dui-incident/

Artist Agnieszka Pilat – I Did Not Realize People Still Think Socialism is Good Idea.
https://reason.com/video/2022/05/11/artist-agnieszka-pilat-i-didnt-realize-people-still-think-socialism-is-a-good-idea/

How Wolfenstein 3D Shocked World – 30 Years Later.
https://www.howtogeek.com/802248/how-wolfenstein-3d-shocked-the-world-30-years-later/

The SUPER Drug.
https://scientificprogress.substack.com/p/the-super-drug

How Unity Builds Lurked into Firefox Build System.
https://serge-sans-paille.github.io/pythran-stories/how-unity-builds-lurked-into-the-firefox-build-system.html

3D Pinball Space Cadet Pinball Recreated in Blender.
https://twitter.com/beastochahin/status/1654825491054968834

Stop Using Hamburger Menus.
https://bt.ht/hamburgers/

Amazon Prime Video Team Ditches AWS Serverless – Saves 90% by Ditching Lambda and Microservices.
https://thestack.technology/amazon-prime-video-microservices-monolith/

EOF

Valuable News – 2023/05/01

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX or BSD systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here.

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).

UNIX

OPNsense Business Edition 23.4 Released.
https://forum.opnsense.org/index.php?topic=33714.0

MidnightBSD 3.0 Overview/Download/Install.
https://www.youtube.com/watch?v=i06VJw7OoQ8

FreeBSD Foundation – FreeBSD Workshop at SCaLE20X Conference Report.
https://freebsdfoundation.org/blog/scale20x-conference-report/

Fun with Kermit and ZMODEM over SSH.
https://www.cambus.net/fun-with-kermit-and-zmodem-over-ssh/

Elkowars Wacky Widgets Allows Creation of Custom Widgets and is Made in Rust.
https://github.com/elkowar/eww

Real Terminal Screensaver and Locker.
https://mezzantrop.wordpress.com/2023/04/25/the-real-terminal-screen-saver-and-locker/

Managing Inverter/Converter with NUT on OpenBSD.
https://doc.huc.fr.eu.org/en/sys/openbsd/nut/

Install syslog-ng 4.x Development Snapshot on FreeBSD.
https://www.syslog-ng.com/community/b/blog/posts/installing-a-syslog-ng-4-development-snapshot-on-freebsd

One Decade Later GNOME Still Sucks.
https://felipec.wordpress.com/2023/03/04/one-decade-later-gnome-still-sucks/

PostgreSQL Full Text Search is Better Than … – Part 1.
https://admcpr.com/postgres-full-text-search-is-better-than-part1/

Find Out FreeBSD Version and Patch Level Number.
https://www.cyberciti.biz/faq/how-to-find-out-freebsd-version-and-patch-level-number/

Backup and Restore List of Installed FreeBSD Packages.
https://www.cyberciti.biz/faq/how-to-backup-restore-a-list-of-installed-freebsd-packages/

FreeBSD Jails and Networking. [2011]
https://etherealwake.com/2021/08/freebsd-jail-networking/

The sudo-rs(8) is Safety Oriented and Memory Safe Implementation of sudo(8)/su(8) Written in Rust.
https://github.com/memorysafety/sudo-rs

OpenBSD vmd(8) Will Now Allow VM Owners to Override Boot Kernel.
https://marc.info/?l=openbsd-tech&m=168269278100347&w=2

Both sudo(8) and su(8) Rewritten in Rust for Memory Safety.
https://www.phoronix.com/news/sudo-su-rewrite-rust

Migrating Multiple BastilleBSD Jails from One FreeBSD Host to Another.
https://hackacad.net/post/2023-04-28-migrating-multiple-bastille-jails-new-host/

WINE 8.7 Released with Another 17 Bugs Fixed.
https://www.phoronix.com/news/Wine-8.7-Released

OpenBSD vmd(8) Moves to Multi Process Model.
https://undeadly.org/cgi?action=article;sid=20230430051250

BSD Now 504 – Release BSD.
https://www.bsdnow.tv/504

Simple FreeBSD Poudriere Harvester Guide.
https://vermaden.wordpress.com/2023/04/30/simple-freebsd-poudriere-harvester-guide/

Hardware

Old Sun Ray MIPS Laptops.
https://oldvcr.blogspot.com/2023/04/of-sun-ray-laptops-mips-and-getting.html

At CES 1987 Atari Unveiled 8088 Powered Turbo XT PC Range.
https://www.youtube.com/watch?v=rJ_xxvUW77Y

Matrox LUMA Intel Arc Based Graphics Cards with Passive Cooling.
https://videocardz.com/press-release/matrox-introduces-intel-arc-based-luma-gpu-series-first-fanless-a310-launched

Old Smartphones Should Be Usable as SBCs.
https://arstechnica.com/gadgets/2023/04/old-phones-can-be-single-board-computers-as-this-mini-music-server-proves/

ASUS PN42 with Intel N100/N200.
https://www.fanlesstech.com/2023/05/the-asus-pn42-is-official.html

Advanced AMIGA Architecture – AAA – 1992.
https://archive.org/details/advanced-amiga-architecture/Advanced%20AMIGA%20Architecture%20%28June%2018%2C%201992%29%20OCR/page/n5/mode/2up
https://news.ycombinator.com/item?id=35766747

Life

Visionary Nikola Tesla and His Dream of Free Wireless Electricity.
https://twitter.com/doollynoted/status/1650753819888996353

Gamers 50+ are Growing Force in Tech Market.
https://www.aarp.org/research/topics/technology/info-2023/2023-gamers-50-plus.html

Poland vs EU – Poles Reject Cashless Society/Combustion Engines Ban/Meat Restrictions.
https://www.zerohedge.com/geopolitical/poland-vs-eu-new-survey-shows-poles-reject-cashless-society-ban-combustion-engines

How to Spend Money on Friends without It Looking Like Bribery.
https://billmei.net/blog/bribe-friends

Gen X Facts.
https://www.youtube.com/watch?v=rqiLKbS4low

Gen X Speaker Honors Gen X.
https://www.youtube.com/watch?v=7KVm2f3qBhw

Edward Reid – Poland is Extraordinary … I Challenge You to Start Your Journey.
https://streamable.com/oi9q3y

Iceberg Lovers Go Wild Over Photos of Dickie Berg off Newfoundland Coast.
https://www.cbc.ca/news/canada/newfoundland-labrador/oddly-shaped-iceberg-nl-1.6825578

Meat is Crucial for Human Health Scientists Say – Stop Pushing Vegetarian/Vegan Diets.
https://www.dailymail.co.uk/news/article-12030833/Scientists-say-meat-crucial-human-health-call-end-pushing-zealotry-veganism.html

Other

Netflix Loses 1 Million Spanish Users over Password Policy.
https://www.bloomberg.com/news/articles/2023-04-25/netflix-loses-1-million-users-in-spain-over-password-policing

Red Hat Cuts 5000 Jobs – CEO Says in Letter to Employees.
https://wraltechwire.com/2023/04/24/red-hat-cutting-hundreds-of-jobs-ceo-says-in-letter-to-employees/

EOF

Simple FreeBSD Poudriere Harvester Guide

The Poudriere is one of the topics I kinda omitted. I thought that official pkg(8) packages are more then enough and that occasional needed package recompilations are not the reasons to use a harvester such as Poudriere for that task. What was my needed recompilations? Usually the audio/lame because FreeBSD did not provided package for it for more then a decade while OpenBSD did … and multimedia/ffmpeg just to include that lame(1) support. Also at the beginning of exFAT format the sysutils/exfat-utils and sysutils/fusefs-exfat needed to be built by hand because of additional license agreement.

logo-freebsd

The Table of Contents for this article:

  • Poudriere Name
  • Poudriere Features
  • FreeBSD Host Setup
  • Poudriere Setup
  • Poudriere Jails
  • Poudriere Ports Tree
  • Poudriere Packages to Build List
  • Poudriere Options
  • Nginx
  • Memcached
  • Ccache
  • Poudriere Packages Build Process
  • Our Repository Client Setup
  • Next Builds
  • Summary

There was as time when I had a dedicated script that would do just that – rebuild several ports as packages after the pkg upgrade cycle.

% cat pkg-recompile.sh
#! /bin/sh

# OPTIONS
  PORTS='audio/lame multimedia/ffmpeg sysutils/exfat-utils sysutils/fusefs-exfat'

# ONLY root CAN BUILD PACKAGES/PORTS
if [ "$( whoami )" != "root" ]
then
  echo "ER: only 'root' may use this script"
  exit 1
fi

# BUILD PACKAGES
case ${1} in
  # REBUILD PACKAGES
  (b|build)
    for PORT in ${PORTS}
    do
      pkg unlock -y ${PORT} 1> /dev/null 2> /dev/null
      env BATCH=yes DISABLE_VULNERABILITIES=yes \
        make -C /usr/ports/${PORT} build deinstall install clean &
      MAKE=${!}
      rctl -a process:${MAKE}:pcpu:deny=40
      wait ${MAKE}
      pkg lock -y ${PORT}
    done
    ;;

  # CLEAN
  (c|clean)
    for PORT in ${PORTS}
    do
      make -C /usr/ports/${PORT} clean
    done
    ;;

  # USAGE
  (*)
    echo "usage: ${0##*/} b|c|build|clean"
    exit 1
    ;;

esac

Now none of that is needed anymore … unless you want to Connect FreeBSD to FreeIPA/IDM server … this is the case where Poudriere comes pretty handy. You may configure/rebuild needed packages by hand or use a tool that will do that for you and you will then just use its custom build packages repository to install them on multiple systems. Scale often changes many things and this is not different with Poudriere tool.

Poudriere Name

… its quite unfortunate to say the least. I needed some time to actually learn to remember that name properly. Not sure I have any useful tips here – I just split it in half to make it easier to remember – as poud and riere parts. In the beginning I interpreted the pond part as British Pound … uncorrected of course. I really wish the author would name it simpler – like Rebuild or Bob the Builder for example πŸ™‚

So what does Poudriere really means? Its a French translation of Powder Keg – which means a place where gunpowder was stored. There is some logic in that … as all the power (gun power) is in the packages … and Poudriere creates that place.

UPDATE: Dan Langille just reminded me that Poudriere replaced Powder Keg which was a similar tool – that explains the French translation for the name πŸ™‚

Poudriere Features

The Poudriere is a bulk package builder and port tester. It uses a ‘clean’ FreeBSD Jails containers to build packages for defined FreeBSD version (supported or not) and a ‘snapshot’ of a FreeBSD Ports tree. Most of the time it will be the latest FreeBSD Ports tree ‘snapshot’ but nothing prevents you from using older ‘snapshots’ with older packages versions when needed.

Then the results (and logs) of these builds are available as HTML pages and you can (and probably should) host them as some WWW server.

All of this seems scary, complicated and pointless bloat to some … but it gets simple and obvious once you try it. You know me – I have an allergy for bullshit and bloat and Poudriere is really far from both of them.

Its kinda like with the famous UNIX co-creator Dennis Ritchie quote – “UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity.” – just kidding – Poudriere actually is quite simple once you start using it – and that is probably the biggest obstacle to knowing it better. Just start using it (in a VM or in a Jail) to get to know it better and once you know it better – setup it properly and just use. Its far from over-complicated solutions such as SELinux, systemd(1) or Kubernetes.

FreeBSD Host Setup

First things first. The ‘three kings’ of and FreeBSD system configuration:

  • /boot/loader.conf
  • /etc/rc.conf
  • /etc/sysctl.conf

Here they are:

The /boot/loader.conf file.

# cat /boot/loader.conf
security.bsd.allow_destructive_dtrace=0
kern.geom.label.disk_ident.enable=0
kern.geom.label.gptid.enable=0
cryptodev_load=YES
zfs_load=YES

The /etc/rc.conf file.

# cat /etc/rc.conf
  clear_tmp_enable=YES
  syslogd_flags="-ss"
  sendmail_enable=NONE
  hostname=fbsdpr
  ifconfig_em0="inet 10.0.10.123/24"
  defaultrouter="10.0.10.1"
  sshd_enable=YES
  dumpdev=AUTO
  zfs_enable=YES
  nginx_enable=YES
  memcached_enable=YES
  memcached_flags="-l localhost -m 8192"

The /etc/sysctl.conf file.

# cat /etc/sysctl.conf
vfs.zfs.min_auto_ashift=12

From the three above only the /etc/rc.conf is important as the other two only have settings from the bsdinstall(8) installer – as used with the Auto ZFS option.

We will also need to populate /etc/resolv.conf file to have DNS configured.

# echo nameserver 1.1.1.1 > /etc/resolv.conf

Pick your personal DNS server favorite here if the Cloudflare one does not suit your needs.

Poudriere Setup

First we need to install some packages – especially the Poudriere package – to make them more up-to-date we would prefer the latest branch of pkg(8) packages.

# sed -i '' -e 's|quarterly|latest|g' /etc/pkg/FreeBSD.conf

# grep latest /etc/pkg/FreeBSD.conf
  url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",

Now we can add needed packages.

# env ASSUME_ALWAYS_YES=yes \
    pkg install -y \
      poudriere \
      portmaster \
      screen \
      tmux \
      zsh \
      beadm \
      lsblk \
      nginx \
      git-lite \
      htop \
      tree \
      ccache-memcached \
      memcached \
      groff

Some of them are less needed but they definitely does not hurt for workflow. Absolute minimum are:

  • poudriere
  • nginx
  • git-lite
  • ccache-memcached
  • groff

Now … lets prepare some dirs and certs to make our packages signed.

# SSL=/usr/local/etc/ssl
# mkdir -p   ${SSL}/{keys,certs} /usr/ports/distfiles
# chmod 0600 ${SSL}/keys
# openssl genrsa -out ${SSL}/keys/poudriere.key 4096
# openssl rsa -in ${SSL}/keys/poudriere.key -pubout -out ${SSL}/certs/poudriere.cert

As we will be using ZFS for Poudriere we will now create dedicated dataset for it.

# zfs create -o mountpoint=/usr/local/poudriere zroot/poudriere

Now we will create the Poudriere config file.

# cat << EOF > /usr/local/etc/poudriere.conf
ZPOOL=zroot
BASEFS=/usr/local/poudriere
ZROOTFS=/usr/local/poudriere
FREEBSD_HOST=ftp://ftp.freebsd.org
POUDRIERE_DATA=/usr/local/poudriere/data
CHECK_CHANGED_OPTIONS=verbose
CHECK_CHANGED_DEPS=yes
PKG_REPO_SIGNING_KEY=/usr/local/etc/ssl/keys/poudriere.key
URL_BASE=http://10.0.10.123/
USE_TMPFS=yes
TMPFS_LIMIT=8
MAX_MEMORY=8
MAX_FILES=2048
DISTFILES_CACHE=/usr/ports/distfiles
KEEP_OLD_PACKAGES=yes
KEEP_OLD_PACKAGES_COUNT=3
CHECK_CHANGED_OPTIONS=verbose
CHECK_CHANGED_DEPS=yes
CCACHE_DIR=/var/ccache
RESTRICT_NETWORKING=no
EOF

Its quite basic – yet it will do the job.

Poudriere Jails

Next we will create Poudriere Jails for each FreeBSD version we want to create pkg(8) repositories with packages.

I will create Jails for all FreeBSD 13.x versions – supported or not.

# poudriere jail -c -j 13-2-R-amd64 -v 13.2-RELEASE
# poudriere jail -c -j 13-1-R-amd64 -v 13.1-RELEASE
# poudriere jail -c -j 13-0-R-amd64 -v 13.0-RELEASE -m ftp-archive

Keep in mind that you need to specify additional -m ftp-archive argument for unsupported FreeBSD versions.

After some time you will end up with ready to use Poudriere FreeBSD Jails containers as shown below.

# poudriere jail -l
13-0-R-amd64 13.0-RELEASE-p13 amd64 ftp-archive 2023-04-28 03:22:05 /usr/local/poudriere/jails/13-0-R-amd64
13-1-R-amd64 13.1-RELEASE-p7  amd64 http        2023-04-27 23:17:13 /usr/local/poudriere/jails/13-1-R-amd64
13-2-R-amd64 13.2-RELEASE     amd64 http        2023-04-27 23:15:30 /usr/local/poudriere/jails/13-2-R-amd64

Poudriere Ports Tree

You may already have an up-to-date FreeBSD Ports tree on your disk at usual /usr/ports location – but we need Poudriere to get its own one too.

# poudriere ports -c

After fetching one you can list it like that.

# poudriere ports -l
default   git+https 2023-04-27 06:16:42 /usr/local/poudriere/ports/default

Poudriere Packages to Build List

Here is the best part – you do not need to build all 33000+ ports – you may specify just several of them. This is what we would do now.

# cat << EOF > /usr/local/etc/poudriere.d/list
sysutils/beadm
sysutils/lsblk
devel/m4
EOF

Accepting all possible licenses is also a good idea.

# echo DISABLE_LICENSES=yes >> /usr/local/etc/poudriere.d/make.conf

We will also specify which options should (and should not) be included in our built packages.

# cat << EOF > /usr/local/etc/poudriere.d/13-0-R-amd64-make.conf
OPTIONS_UNSET+= DOCS NLS X11 EXAMPLES
ALLOW_UNSUPPORTED_SYSTEM=yes
DISABLE_LICENSES=yes
EOF

# cat << EOF > /usr/local/etc/poudriere.d/13-1-R-amd64-make.conf
OPTIONS_UNSET+= DOCS NLS X11 EXAMPLES
ALLOW_UNSUPPORTED_SYSTEM=yes
DISABLE_LICENSES=yes
EOF

# cat << EOF > /usr/local/etc/poudriere.d/13-2-R-amd64-make.conf
OPTIONS_UNSET+= DOCS NLS X11 EXAMPLES
ALLOW_UNSUPPORTED_SYSTEM=yes
DISABLE_LICENSES=yes
EOF

Poudriere Options

You may choose the Poudriere packages options the same interactive way you do when you use the FreeBSD Ports tree.

To do that – here are the needed spells.

# poudriere options -c -j 13-0-R-amd64 -f /usr/local/etc/poudriere.d/list
# poudriere options -c -j 13-1-R-amd64 -f /usr/local/etc/poudriere.d/list
# poudriere options -c -j 13-2-R-amd64 -f /usr/local/etc/poudriere.d/list

Nginx

To make most of the Poudriere you will also need some web server. I have chosen Nginx for that task as its currently ‘the’ standard for the Internet.

Its setup is not complicated – just repeat steps below and you are done.

# service nginx enable

# sed -i '' -E 's|text/plain[\t\ ]*txt|text/plain txt log|g' /usr/local/etc/nginx/mime.types

# cat << EOF > /usr/local/etc/nginx/nginx.conf
events {
  worker_connections 1024;
}

http {
  include      mime.types;
  default_type application/octet-stream;

  server {
    listen 80 default;
    server_name ${IP};
    root /usr/local/share/poudriere/html;

    location /data {
      alias /usr/local/poudriere/data/logs/bulk;
      autoindex on;
    }

    location /packages {
      root /usr/local/poudriere/data;
      autoindex on;
    }
  }
}
EOF

# service nginx restart

The /usr/local/etc/nginx/mime.types part will allow you to display the *.log files in the browser instead of ‘forcing’ the browser to pointlessly download them.

Our web server seems to work properly.

# sockstat -l4
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
www      nginx      95263 7  tcp4   *:80                  *:*
root     nginx      95262 7  tcp4   *:80                  *:*
root     sshd       706   5  tcp4   *:22                  *:*

Memcached

As we will be using devel/ccache-memcached package to speed up builds – we would also need memcached to be running.

We already have needed configuration in /etc/rc.conf file so we only need to start it.

# grep memcached /etc/rc.conf
  memcached_enable="YES"
  memcached_flags="-l localhost -m 8192"

# service memcached restart

# sockstat -l4
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
nobody   memcached  37844 13 tcp4   127.0.0.1:11211       *:*
www      nginx      69727 7  tcp4   *:80                  *:*
root     nginx      69726 7  tcp4   *:80                  *:*
root     sshd       706   5  tcp4   *:22                  *:*

Ccache

We will now configure ccache(1) service.

Like success have many father the same ccache(1) have many configs – to be sure – we will propagate all of them.

We will use /var/ccache dir for the ccache(1) cache dir = but feel free to put it somewhere else or even with a dedicated ZFS dataset.

# mkdir -p /var/ccache

# cat << EOF > /usr/local/etc/ccache.conf
max_size = 0
cache_dir = /var/ccache
base_dir = /var/ccache
memcached_conf = --SERVER=localhost:11211
memcached_only = true
EOF

# cat << EOF > /root/.ccache/ccache.conf
max_size = 0
cache_dir = /var/ccache
base_dir = /var/ccache
memcached_conf = --SERVER=localhost:11211
memcached_only = true
EOF

# cat << EOF > /var/ccache/ccache.conf
max_size = 0
cache_dir = /var/ccache
base_dir = /var/ccache
memcached_conf = --SERVER=localhost:11211
memcached_only = true
EOF

The ccache(1) stats output after several builds below.

# ccache -s
cache directory                     /var/ccache
primary config                      /var/ccache/ccache.conf
secondary config      (readonly)    /usr/local/etc/ccache.conf
stats updated                       Fri Apr 28 04:10:17 2023
cache hit (direct)                  4510
cache hit (preprocessed)             713
cache miss                          2481
cache hit rate                     67.80 %
called for link                     5616
called for preprocessing            1476
multiple source files                 18
compile failed                      1143
preprocessor error                   351
bad compiler arguments                72
unsupported source language            9
autoconf compile/link               3147
no input file                        441
cleanups performed                     0
files in cache                      6303
cache size                          26.6 MB

Poudriere Packages Build Process

Now as you have everything configured and ready – you may build your custom packages.

These next commands will build repositories with your configured packages.

# poudriere bulk -j 13-0-R-amd64 -f /usr/local/etc/poudriere.d/list
# poudriere bulk -j 13-1-R-amd64 -f /usr/local/etc/poudriere.d/list
# poudriere bulk -j 13-2-R-amd64 -f /usr/local/etc/poudriere.d/list

The Poudriere console output is pretty colorful and nice – here is how it looks.

poudriere-build

Lets check how it look on the browser side.

poudriere-www-01

Lets ‘click’ the 13-2-R-amd64-default name for some details.

poudriere-www-02

It shows that 14 packages has been built in the process and all of them succeed.

Lets now click the date_time build name.

poudriere-www-03

You will now see the details about that build run – with logs and time needed for each package build.

You can ‘click’ on the package name to get the build log details.

poudriere-www-04

Here is how our three repositories look after the build process.

# ls -l /usr/local/poudriere/data/packages
total 26K
drwxr-xr-x 4 root wheel 14 2023-04-28 04:10 13-0-R-amd64-default/
drwxr-xr-x 4 root wheel 14 2023-04-28 04:06 13-1-R-amd64-default/
drwxr-xr-x 4 root wheel 14 2023-04-28 04:07 13-2-R-amd64-default/

# tree /usr/local/poudriere/data/packages
/usr/local/poudriere/data/packages
β”œβ”€β”€ 13-0-R-amd64-default
β”‚Β Β  β”œβ”€β”€ All -> .latest/All
β”‚Β Β  β”œβ”€β”€ Latest -> .latest/Latest
β”‚Β Β  β”œβ”€β”€ meta.conf -> .latest/meta.conf
β”‚Β Β  β”œβ”€β”€ meta.pkg -> .latest/meta.pkg
β”‚Β Β  β”œβ”€β”€ meta.txz -> .latest/meta.txz
β”‚Β Β  β”œβ”€β”€ packagesite.pkg -> .latest/packagesite.pkg
β”‚Β Β  └── packagesite.txz -> .latest/packagesite.txz
β”œβ”€β”€ 13-1-R-amd64-default
β”‚Β Β  β”œβ”€β”€ All -> .latest/All
β”‚Β Β  β”œβ”€β”€ Latest -> .latest/Latest
β”‚Β Β  β”œβ”€β”€ meta.conf -> .latest/meta.conf
β”‚Β Β  β”œβ”€β”€ meta.pkg -> .latest/meta.pkg
β”‚Β Β  β”œβ”€β”€ meta.txz -> .latest/meta.txz
β”‚Β Β  β”œβ”€β”€ packagesite.pkg -> .latest/packagesite.pkg
β”‚Β Β  └── packagesite.txz -> .latest/packagesite.txz
└── 13-2-R-amd64-default
    β”œβ”€β”€ All -> .latest/All
    β”œβ”€β”€ Latest -> .latest/Latest
    β”œβ”€β”€ meta.conf -> .latest/meta.conf
    β”œβ”€β”€ meta.pkg -> .latest/meta.pkg
    β”œβ”€β”€ meta.txz -> .latest/meta.txz
    β”œβ”€β”€ packagesite.pkg -> .latest/packagesite.pkg
    └── packagesite.txz -> .latest/packagesite.txz

10 directories, 15 files

Our Repository Client Setup

Now we need to configure our FreeBSD clients to start using our Poudriere created repositories.

Here is what we need to do on such client.

# mkdir -p /usr/local/etc/pkg/repos

# cat << EOF > /usr/local/etc/pkg/repos/13-2-R-amd64.conf
13-2-R-amd64: {
    url: "http:/10.0.10.123/packages/13-2-R-amd64-default/",
    mirror_type: "http",
    signature_type: "pubkey",
    pubkey: "/usr/local/etc/ssl/certs/poudriere.cert",
    enabled: yes,
    priority: 100
}
EOF

# pkg update -f
Updating FreeBSD repository catalogue...
Fetching meta.conf: 100%    163 B   0.2kB/s    00:01
Fetching packagesite.pkg: 100%    7 MiB 626.5kB/s    00:11
Processing entries: 100%
FreeBSD repository update completed. 32980 packages processed.
Updating 13-2-R-amd64-HEAD repository catalogue...
Fetching meta.conf: 100%    163 B   0.2kB/s    00:01
Fetching packagesite.pkg: 100%    6 KiB   5.7kB/s    00:01
Processing entries: 100%
13-2-R-amd64-HEAD repository update completed. 14 packages processed.
All repositories are up to date.

We now have our first FreeBSD client system configured against our Poudriere created repository.

Lets install/update the m4 package for a test.

# pkg install m4
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
Updating 13-2-R-amd64-HEAD repository catalogue...
13-2-R-amd64-HEAD repository is up to date.
All repositories are up to date.
The following 2 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        m4: 1.4.19,1 [13-2-R-amd64-HEAD]

Installed packages to be REINSTALLED:
        pkg-1.19.1_1 [13-2-R-amd64-HEAD] (options changed)

Number of packages to be installed: 1
Number of packages to be reinstalled: 1

The process will require 2 MiB more space.
9 MiB to be downloaded.

Proceed with this action? [y/N]: y
[1/2] Fetching pkg-1.19.1_1.pkg: 100%    8 MiB   8.7MB/s    00:01
[2/2] Fetching m4-1.4.19,1.pkg: 100%  214 KiB 218.7kB/s    00:01
Checking integrity... done (0 conflicting)
[1/2] Reinstalling pkg-1.19.1_1...
[1/2] Extracting pkg-1.19.1_1: 100%
[2/2] Installing m4-1.4.19,1...
[2/2] Extracting m4-1.4.19,1: 100%

Now some FreeBSD client notes … if you are a Linux fan you probably know that – for example on Red Hat Linux (and its clones) – its relatively easy to just list the configured repositories with yum repolist command.

# yum repolist
repo id         repo name
appstream       CentOS Linux 8 - AppStream
baseos          CentOS Linux 8 - BaseOS
epel            Extra Packages for Enterprise Linux 8 - x86_64
epel-modular    Extra Packages for Enterprise Linux Modular 8 - x86_64
extras          CentOS Linux 8 - Extras

… unfortunately there is not 1:1 equivalent on FreeBSD side for pkg(8) repositories.

The closest one that is available out of the box are:

# pkg -vv | grep -A 999 '^Repositories:'
Repositories:
  FreeBSD: {
    url             : "pkg+http://pkg.FreeBSD.org/FreeBSD:13:amd64/latest",
    enabled         : yes,
    priority        : 0,
    mirror_type     : "SRV",
    signature_type  : "FINGERPRINTS",
    fingerprints    : "/usr/share/keys/pkg"
  }
  13-2-R-amd64: {
    url             : "http://10.0.10.123/packages/13-2-R-amd64-default/",
    enabled         : yes,
    priority        : 100,
    mirror_type     : "HTTP",
    signature_type  : "PUBKEY",
    pubkey          : "/usr/local/etc/ssl/certs/poudriere.cert"
  }

# grep -h '^[^#]' /etc/pkg/* /usr/local/etc/pkg/repos/*
FreeBSD: {
  url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
  mirror_type: "srv",
  signature_type: "fingerprints",
  fingerprints: "/usr/share/keys/pkg",
  enabled: yes
}
13-2-R-amd64: {
    url: "http://10.0.10.123/packages/13-2-R-amd64-default/",
    mirror_type: "http",
    signature_type: "pubkey",
    pubkey: "/usr/local/etc/ssl/certs/poudriere.cert",
    enabled: yes,
    priority: 100
}

Not very pretty.

After asking at GitHub for potential solution or pkg(8)man page overlook I was informed that there is no such option … so I came with my own POSIX /bin/sh shell scripts/functions for the rescue πŸ™‚

For example pkg-repo-var-en.sh that will list all pkg(8) repositories with their enabled/disabled status.

# ./pkg-repo-var-en.sh
REPO          ENABLED  PRIO  URL
FreeBSD       yes      0     pkg+http://pkg.FreeBSD.org/${ABI}/latest
13-2-R-amd64  yes      100   http://10.0.10.123/packages/13-2-R-amd64

# cat pkg-repo-var-en.sh
#! /bin/sh

( # HEADER
  echo -e "\nREPO ENABLED PRIO URL"
  for REPO in /etc/pkg/* /usr/local/etc/pkg/repos/*
  do
    REPOCUR=$( grep '^[^#]' "${REPO}" )

    # REPO
    echo "${REPOCUR}" | awk -F ':' '/\{[\ \t]*$/ {printf(" %s ",$1)}'

    # ENABLED
    echo "${REPOCUR}" | awk '/enabled:/ {printf(" %s ",$NF)}' | tr -cd '[a-zA-Z ]'

    # PRIO
    if echo "${REPOCUR}" | grep -q priority
    then
      echo "${REPOCUR}" | awk '/priority:/ {printf(" %s ",$NF)}' | tr -cd '[0-9 ]'
    else
      echo -n " 0 "
    fi

    # URL
    echo "${REPOCUR}" | grep '^[^#]' | awk -F'"' '/url:/ {print $2}' | tr -d ','

  done 2> /dev/null
) | column -t 2> /dev/null

Next Builds

So … you have successfully build your custom repository once … these are the steps to create new up-to-date package every next time.

// UPDATE JAILS
# poudriere jail -u -j 13-0-R-amd64
# poudriere jail -u -j 13-1-R-amd64
# poudriere jail -u -j 13-2-R-amd64

// UPDATE PORTS
# poudriere ports -u

// BUILD REPOSITORIES
# poudriere bulk -j 13-0-R-amd64 -f /usr/local/etc/poudriere.d/list
# poudriere bulk -j 13-1-R-amd64 -f /usr/local/etc/poudriere.d/list
# poudriere bulk -j 13-2-R-amd64 -f /usr/local/etc/poudriere.d/list

For example – if there are not new packages/changes – this is how the Poudriere output would look like.

poudriere-build-not-needed

Summary

Not sure what should I add here more … I definitely need to compare Poudriere against ports-mgmt/synth alternative one day … but it is not this day – as Aragorn once said πŸ™‚

Pick your packages to customize and have fun.

Take care.

Valuable News – 2023/04/24

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX or BSD systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here.

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).

UNIX

FreeBSD 2023 Q1 Status Report.
https://www.freebsd.org/status/report-2023-01-2023-03/

Three FreeBSD 13.2 Overviews on amd64/aarch64 Architectures and Upgrade.
https://www.youtube.com/watch?v=l_rPjsauSsc

Leveraging OpenZFS to Build Your Own Storage Appliance.
https://klarasystems.com/articles/openzfs-leveraging-openzfs-to-build-your-own-storage-appliance/

How to Start Standalone Daemon on FreeBSD.
https://www.youtube.com/watch?v=1KD4G7mVBYU

FreeBSD TeX and TeX Live Packages are Updated from 20210325 to 20230313.
https://twitter.com/vmisev/status/1648634735726346248

GIMP GTK3 Port is Officially Finished.
https://www.phoronix.com/news/GIMP-GTK3-Finished

Love Letter to make(1).
https://kmaasrud.com/blog/make

Year of Linux/FreeBSD/OpenBSD/NetBSD on Desktops May Never Come – But We Have Done Even Better.
https://my-notes.dragas.net/posts/2023/the-year-of-linux-freebsd-on-desktops-may-never-come/

Security Beyond Software – Open Source Hardware Security Evolution.
https://www.helpnetsecurity.com/2023/04/19/open-source-hardware-security/

OpenVMS 9.2 for x86 – Getting Started – Part 1 – VirtualBox Install.
https://raymii.org/s/blog/OpenVMS_9.2_for_x86_Getting_Started.html

FreeBSD/pfSense/OPNsense on HP t740 Thin Client.
https://www.neelc.org/posts/hp-t740-freebsd/

Collaborating on Open Source Projects – Example with FreeBSD and OpenZFS.
https://blog.ovhcloud.com/collaborating-on-open-source-projects-an-example-with-freebsd-and-openzfs/

VirtIO Shows as 10 Gbit but Its Not Limit – iperf3(1) Between FreeBSD VMs is 22 Gbit/s or More.
https://twitter.com/subnetspider/status/1648934774919012354

Colorful Charm of Amiga Utility Disks.
https://www.datagubbe.se/utildisks/

Wine 8.0.1 Released with Lots of Bugs Fixed.
https://www.phoronix.com/news/Wine-8.0.1-Released

Timeshift is Similar to System Restore in Windows and Time Machine in Mac OS.
https://github.com/linuxmint/timeshift

FreeBSD 13.2 arm64 on Hetzner CAX11 Cloud.
https://gist.github.com/pandrewhk/2d62664bfb74a504b7f4a894fc85eb97

OPNsense 23.1.6 Released.
https://forum.opnsense.org/index.php?topic=33643.0

Lenovo T14 G2 AMD – Fine Laptop for FreeBSD (with WiFi Caveat).
https://patmaddox.com/doc/trunk/www/2023-04-lenovo-t14-gen2-amd-a-fine-laptop-for-freebsd.md

OpenBSD Adds VirtIO GPU Driver viogpu(4) to Create wscons(4) Console.
https://www.undeadly.org/cgi?action=article;sid=20230421124221

FreeBSD Has Great Start to 2023 with Numerous Accomplishments.
https://www.phoronix.com/news/FreeBSD-Q1-2023-Status

Who Reads Your Email?
https://blog.apnic.net/2023/04/05/who-reads-your-email/

FreeBSD Preview for Ten64.
https://forum.traverse.com.au/t/freebsd-preview-for-ten64/173

OpenBSD Adds malloc(3) Leak Detection.
https://www.undeadly.org/cgi?action=article;sid=20230417074903

FreeBSD Foundation – Celebrating Earth Day – Tips for Running Greener FreeBSD.
https://freebsdfoundation.org/blog/celebrating-earth-day-tips-for-running-a-greener-freebsd/

Why Perl?
https://two-wrongs.com/why-perl

FreeBSD Removes portsnap(8) Tool – use git(1) Instead.
https://twitter.com/FreeBSD_src_git/status/1649944527824728065

Hardware

PC Engines APU Platform EOL.
https://www.pcengines.ch/eol.htm

Toyota CEO – This New Engine Will Destroy Entire EV Industry.
https://www.youtube.com/watch?v=rTawvzH0MQ4

Libreboot Adds Support for Dell Latitute E6400.
https://www.phoronix.com/news/Libreboot-Dell-Latitute-E6400

Little Things That Made AMIGA Great.
https://www.datagubbe.se/ltmag/

When Computers Were Cool.
https://www.datagubbe.se/coolcomp.html

AMD Ryzen Embedded 5000 Processors Launched.
https://www.cnx-software.com/2023/04/21/amd-ryzen-embedded-5000-processors-networking-applications/

AMD Ryzen Embedded 5000 Series Released.
https://www.anandtech.com/show/18824/amd-unveils-ryzen-embedded-5000-for-embedded-networking-products

World Largest Battery Maker Announces Major Breakthrough in Energy Density.
https://thedriven.io/2023/04/21/worlds-largest-battery-maker-announces-major-breakthrough-in-battery-density/

Finally Another Phone – Xiaomi 13 Ultra – with 1-inch Sensor – Same as Panasonic CM1.
https://www.tomsguide.com/news/xiaomi-13-ultra

Life

No More Cheap Flights is the New Reality for Air Travel.
https://www.bloomberg.com/opinion/articles/2023-04-17/no-more-cheap-flights-is-the-new-reality-for-air-travel

How Corruption Scandal Has Left Dozens of Polish Startups Facing Bankruptcy.
https://sifted.eu/articles/corruption-scandal-polish-startups-bankruptcy-eu

Career Advice No One Gave Me – Give a Lot of Notice When You Quit.
https://davidlaprade.github.io/give-a-lot-of-notice

Pete Parada on Punk Rock and Being Fired from Offspring Band.
https://jermwarfare.com/conversations/pete-parada-the-offspring

Twitter Free Education List of 13 Must Follow Accounts.
https://twitter.com/Renaissance_365/status/1648309912500404229

HPV Vaccine Mandate to Attend College.
https://www.theepochtimes.com/health/hpv-vaccine-mandate-to-attend-college_5211778.html

Other

Firefox May Soon Reject Cookie Prompts Automatically.
https://www.ghacks.net/2023/04/17/firefox-may-interact-with-cookie-prompts-automatically-soon/

Why do Ships use Port and Starboard Instead of Left and Right.
https://oceanservice.noaa.gov/facts/port-starboard.html

That Awkward Moment When You Tealise It Will Not Work for You!
https://www.youtube.com/watch?v=QdUbiZTDCV0

Open Source Heroes of Might and Magic III VCMI Engine 1.2.0 is Released.
https://vcmi.eu/news/vcmi-1.2.0-release/

AMIGA – Directory Opus – King of Dual Panes.
https://www.datagubbe.se/dopus/

Atari Space Invaders Tournament 1980.
http://www.megalextoria.com/wordpress/index.php/2017/04/18/atari-space-invaders-tournament-1980/

EOF

Valuable News – 2023/04/18

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX or BSD systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here.

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).

UNIX

Getting the ^D – [CTRL]+[D] Sequence.
https://owengage.com/writing/2023-04-08-getting-the-ctrl-d/

OpenBSD 7.3 Released.
https://www.openbsd.org/73.html

Advanced Programming in UNIX Environment with NetBSD – CS631 – APUE.
https://stevens.netmeister.org/631/netbsd.html

FreeBSD 13.2 Released with WireGuard Driver and ASLR Enabled by Default.
https://www.phoronix.com/news/FreeBSD-13.2-RELEASE

Free Software Foundation is Dying.
https://drewdevault.com/2023/04/11/2023-04-11-The-FSF-is-dying.html

FreeBSD 13.2 Released – Unix Operating System.
https://meterpreter.org/freebsd/

CentOS Reminds Everyone EoL is Coming for CentOS Linux 7 and CentOS Stream 8.
https://www.phoronix.com/news/CentOS-EOL-2023-7-Stream-8

FreeBSD 13.2 is Now Available for Download.
https://cloud7.news/linux/freebsd-13-2/

News About FreeBSD Migrating to LLVM binutils Tools.
https://lists.freebsd.org/archives/freebsd-toolchain/2023-April/001062.html

FreeBSD 13.2 – If There is a Shell There is a Way.
https://www.youtube.com/watch?v=ZkWUYwDKda0

How to Upgrade FreeBSD 13.1 to 13.2 Release.
https://www.cyberciti.biz/open-source/how-to-upgrade-freebsd-13-1-to-13-2-release/

FreeBSD 13.2-RELEASE Graphical Advisor.
https://twitter.com/padukajorat/status/1646112267052945409/photo/1

Experience Improved Performance/Reliability/Security with FreeBSD 13.2.
https://alternativeto.net/news/2023/4/experience-improved-performance-reliability-and-security-with-freebsd-13-2/

What is Going On with Linux – Rant Incoming!
https://www.youtube.com/watch?v=aepW9o9p7eE

Perfect pfSense Home Lab Firewall – Lenovo M720q Tiny.
https://www.youtube.com/watch?v=Xjn2-8bkUUQ

How Much Memory Does ZFS Need and Does It Have to Be ECC.
https://www.youtube.com/watch?v=xp6g-8VS06M

Running SunOS 4 in QEMU (SPARC).
https://john-millikin.com/running-sunos-4-in-qemu-sparc

FreeBSD 13.2 Review.
https://cloud7.news/article/freebsd-13-2-review/

Double BSD Birthday Bash Beckons.
https://www.theregister.com/2023/04/13/freebsd_132_openbsd_73/

How to Upgrade from FreeBSD 13.1 to FreeBSD 13.2.
https://ostechnix.com/freebsd-upgrade/

Massif Visualizer is Now Available on FreeBSD.
https://twitter.com/fosdembsd/status/1646803086164238337

FreeBSD Commits that Allow FreeBSD/ARM Architecture to Run on Xen.
https://twitter.com/FreeBSD_src_git/status/1646876312387166210

Network Speed Test with iperf3(1) Inside FreeBSD Bhyve VM with SR-IOV Hits 22.7 Gbits/s Speed.
https://twitter.com/benoitc/status/1646912830195597312

Take Screenshots or Videos of macOS Windows with macosrec(1) from Command Line.
https://github.com/xenodium/macosrec

OpenZFS 2.1.10 Released.
https://github.com/openzfs/zfs/releases/tag/zfs-2.1.10

OpenZFS 2.1.10 Released – Adds Linux 6.2 Support and Some FreeBSD Fixes.
https://www.phoronix.com/news/OpenZFS-2.1.10-Released

BSD Now 502 – Ping from Hell.
https://www.bsdnow.tv/502

Install FreeBSD 13.2 – Installation Guide for Beginners.
https://ostechnix.com/install-freebsd/

Updated FreeBSD WiFi Suggested Adapters.
https://gist.github.com/grahamperrin/0d6cca0e463c5fdc089e84ed442e214c

LXQt 1.3 Released While Qt6 Porting Remains Work in Progress.
https://www.phoronix.com/news/LXQt-1.3-Released

GitHub Actions for NetBSD/FreeBSD/OpenBSD.
https://github.com/mario-campos/emulate

Wayback is Tool to Snapshot Webpage to Time Capsules.
https://github.com/wabarc/wayback

OpenZFS Will Introduce More Adaptive ARC Eviction.
https://github.com/openzfs/zfs/commit/a8d83e2a24de6419dc58d2a7b8f38904985726cb

Various Sizes of ZFS ARC in OpenZFS 2.1.
https://utcc.utoronto.ca/~cks/space/blog/solaris/ZFSARCItsVariousSizes

Ubuntu 23.04 Desktop New Installer Set to Ship without OpenZFS Install Support.
https://www.phoronix.com/news/Ubuntu-23.04-No-OpenZFS

Linux Kernel Logic Allowed Spectre Attack on Major Cloud Provider.
https://www.theregister.com/2023/04/14/linux_kernel_spectre_flaw_fixed/

File and Directory Icons for vifm(1) File Manager.
https://github.com/thimc/vifm_devicons

Ads Fuck Off – Curated List of Hosts that Will Track You/Show Ads/Spy and Some Other Things.
https://github.com/gonzalo-/ads-fuck-off

Hardware

Ampere New 128 Core ARM Workstation.
https://www.tomshardware.com/news/ampere-64-core-arm-workstation-runs-windows

Chinese Loongson 3D5000 with 32 Cores is 4x Faster than Average ARM Chip.
https://www.techpowerup.com/307046/chinese-loongson-3d5000-features-32-cores-and-is-4x-faster-than-the-average-arm-chip

InWin Origami Like Case that DIYers Get to Assemble from Scratch.
https://www.anandtech.com/show/18808/inwin-launches-95-origami-like-case-that-diyers-get-to-assemble-from-scratch

Electric Car Can Cost 50% More to Insure than Petrol Equivalent.
https://www.thisismoney.co.uk/money/markets/article-11954681/Electric-car-insurance-blow-going-green.html

Heavy EVs Could Collapse Old Parking Garages – Report.
https://www.thedrive.com/news/heavy-evs-could-collapse-old-parking-garages-report

HDD Sales Drop 35% Year over Year.
https://www.tomshardware.com/news/sales-of-hdds-drop-35-percent-year-over-year

Booting Modern x86 CPUs.
https://mjg59.dreamwidth.org/66109.html

Life

Short Form Videos Degrade Our Capacity to Retain Intentions.
https://arxiv.org/pdf/2302.03714.pdf

No Evidence that N95 Masks Can Protect People Against COVID-19 – UK Agency.
https://www.theepochtimes.com/no-evidence-on-whether-n95-masks-can-protect-peo

Best Predictor of Professional Success is Not Cognitive Performance – It is Whether Your Parents Have Money.
https://english.elpais.com/science-tech/2023-04-13/daniel-sanabria-psychologist-the-best-predictor-of-professional-success-isnt-cognitive-performance-its-whether-your-parents-have-money.html

Dreams are Default for Intelligence.
https://kk.org/thetechnium/dreams-are-the-default-for-intelligence/

Proof of COVID-19 Vaccines Lethality – 1011 Scientific Studies.
https://www.globalresearch.ca/covid-19-vaccines-scientific-proof-lethality/5767711

Other

OpenGL is Not Dead – Long Live Vulkan.
https://accidentalastro.com/2023/04/opengl-is-not-dead-long-live-vulkan/

Microsoft Fixed Its 5 Year Old Defender Bug – Makes Firefox Use 75% Less CPU.
https://bugzilla.mozilla.org/show_bug.cgi?id=1441918

Firefox 112 Available with Support for Importing Chromium Snap Browser Data.
https://www.phoronix.com/news/Mozilla-Firefox-112

Firefox 113 Beta Adds Animated AV1 Image Support.
https://www.phoronix.com/news/Firefox-113-Beta

DPReview is Being Shut Down by Amazon.
https://www.digitalcameraworld.com/news/dpreview-is-being-shut-down-by-amazon-today-what-a-waste-says-founder

Why We Ditched RabbitMQ and Replaced It with Postgres Queue.
https://www.prequel.co/blog/sql-maxis-why-we-ditched-rabbitmq-and-replaced-it-with-a-postgres-queue

Kingdom Come Deliverance with RTX 4090 Raytracing – Nearly Reallife Forests.
https://www.youtube.com/watch?v=T2HtjrBiPA0

GAME_L1NE – 4 – Internet Cafe.
https://www.youtube.com/watch?v=Hg1-RN8fUpI&list=PLdXmLzLue3G4CdVJLT9ij3mh8ewdOyybn&index=6

KeePassXC Audit Report.
https://keepassxc.org/blog/2023-04-15-audit-report/

Reinventing Lodz – Polish City with Big Story to Tell.
https://www.jpost.com/podcast/travel-edition/article-738873

Massa Looks to Strip Hamilton of 2008 F1 Title but Kubica Was Best that Year.
https://www.motorsportmagazine.com/articles/single-seaters/f1/massa-looks-to-strip-hamilton-of-2008-f1-title-but-kubica-was-best-that-year-mph/

EOF

Valuable News – 2023/04/10

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX or BSD systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here.

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).

UNIX

MidnightBSD 3.0.0 Released.
https://debugpointnews.com/midnightbsd-3-0-0/

BastilleBSD versus Docker.
https://forestwiki.com/bastillebsd-vs-docker

BastilleBSD Jail Manager Notes.
https://kulmosen.dk/bastille-jail-manager-notes/

MIT Licensed Rust Implementation of GNU Coreutils Becoming Remarkably Robust.
https://www.phoronix.com/news/Rust-Coreutils-uutils-2023

How SerenityOS Declares ssize_t Type.
https://awesomekling.github.io/How-SerenityOS-declares-ssize_t/

Managing Disk Arrays on FreeBSD/TrueNAS Core.
https://klarasystems.com/articles/managing-disk-arrays-on-freebsd-truenas-core/

Important Comments on Desktop FreeBSD Will Not Improve Unless People Are Using It Article.
https://d-s.sh/2023/comments-on-desktop-freebsd-wont-improve-unless-people-are-using-it/

Proof of Concept – Adding ZFS Boot Environments to Proxmox.
https://oblivious.observer/posts/poc-boot-environments-proxmoxve6/

DragonflyBSD dfbeadm(8) HAMMER2 Boot Environment Manager.
https://github.com/newnix/dfbeadm

How to Manage Your Installed FreeBSD Ports.
https://www.youtube.com/watch?v=p8afvf77WTQ

Adding Swapfile to FreeBSD.
https://www.youtube.com/watch?v=sv3weKUPulI

OmniOSce v11 r151044 Release Notes.
https://github.com/omniosorg/omnios-build/blob/r151044/doc/ReleaseNotes.md

Debugging DVDStyler on FreeBSD – Maintainer Point of View.
https://p-o.co.uk/tech-articles/debugging-dvdstyler-a-maintainers-point-of-view/

FreeBSD Handbook Multimedia Chapter Updated with New Conferencing/Meetings Section.
https://cgit.freebsd.org/doc/commit/?id=fcbb060fe7fd8a200fe71639d348e11dd08434f3

Silent Fanless Dell Wyse 3030 LT FreeBSD Server.
https://vermaden.wordpress.com/2023/04/10/silent-fanless-dell-wyse-3030-lt-freebsd-server/

AWS Marketplace is 1st Place for FreeBSD 13.2-RELEASE to Show Up.
https://twitter.com/cperciva/status/1644549227991932930

MLNX_OFED for FreeBSD from Nvidia.
https://network.nvidia.com/products/drivers/freebsd/

OpenVMS 9.2 for x86 is Finally Available for Hobbyists.
https://raymii.org/s/blog/OpenVMS_9.2_for_x86_is_finally_available_for_hobbyists.html

FreeBSD RDP Server Tutorial for Beginners.
https://www.youtube.com/watch?v=hkVxKVaBnT4

Hardware

Bypassing WiFi Hardware Switch on Lenovo ThinkPad X201.
https://bt.ht/x201/

Teensy Liberates ThinkPad Keyboard.
https://hackaday.com/2018/12/04/teensy-liberates-the-thinkpad-keyboard/

Byte – First of Its Generation Mini PC Powered by AMD with Coreboot.
https://starlabs.systems/pages/byte?shpxid=355683bb-b308-4f30-af86-ec48a22766ad

Star64 Now Available to Order as PINE64 First RISC-V SBC.
https://9to5linux.com/star64-is-now-available-to-order-as-pine64s-first-risc-v-sbc

Intel i5-12500 Turemetal Build.
https://www.fanlesstech.com/2023/04/i5-12500-turemetal-build.html

ASRock Industrial 4X4 BOX-7735U UCFF PC Review with AMD ZEN3+ and RDNA2.
https://www.anandtech.com/show/18794/asrock-industrial-4×4-box7735ud5-review

Beelink EQ12 Mini PC with Intel N100 and Up to 16GB RAM.
https://www.cnx-software.com/2023/04/07/beelink-eq12-mini-pc-processor-n100-alder-lake-n-cpu-16gb-ram/

Dodge Charger Daytona SRT EV Concept Reimagined as Modern Day Dodge Magnum.
https://chronicleslive.com/dodge-charger-daytona-srt-ev-concept-reimagined-as-modern-day-magnum/

Dodge Charger Daytona STR Station Wagon Could Be Ultimate Muscle EV.
https://www.hotcars.com/dodge-charger-daytona-str-station-wagon-ultimate-muscle-ev/

Adding Capacity to Electricity Grid is Not Simple Task.
https://www.economist.com/technology-quarterly/2023/04/05/adding-capacity-to-the-electricity-grid-is-not-a-simple-task

Life

Court Orders Merck to Turn Over Gardasil Adverse Event Databases About HPV Vaccine.
https://childrenshealthdefense.org/defender/merck-hpv-gardasil-vaccine-adverse-event-database-court/

How Exercise Leads to Sharper Thinking and Healthier Brain.
https://www.washingtonpost.com/wellness/2023/04/05/exercise-brain-thinking-bdnf/

Decreases in Psychological Well Being Among Adolescents After 2012 and Links to Smartphone Screen Time.
https://psycnet.apa.org/doiLanding?doi=10.1037/emo0000403/

Other

Commodore Amiga – Settlers (1993).
https://www.youtube.com/watch?v=yh7Fhzn5L44

Tennis Balls Serve as Decent Bicycle Tires That Do Not Easily Puncture.
https://hackaday.com/2023/04/03/tennis-balls-serve-as-decent-bicycle-tires-that-dont-easily-puncture/

DPReview Closure – Content Will Remain Available as Archive.
https://www.dpreview.com/news/0507902613/dpreview-closure-an-update

EOF