Do you have any message for us?

To avoid posts by spam, a message body without the word #FuguIta is rejected. Please include the word in your message text.
URLs in the body of the message will also be judged as spam. If you wish to express a URL, please omit the scheme (http://, https://, etc.).

Non-Free Firmware

Prasad (2022-08-25 (Thu) 08:43:39)

Hi - I am trying out #FuguIta for the first time (coming from OpenBSD).
How do i install drivers for wireless -- i am using a Thinkpad which needs intel drivers.
apologies if i missed this in the start-guide -- please point me to the section.
Thank you

Wired and Wireless LAN Failover Connection

kaw (2022-08-24 (Wed) 21:27:07)

In OpenBSD, trunk(4) can be used to establish a connection using either a wired or wireless network device, as long as it is alive.
If the live device changes, the path switches seamlessly.

In #FuguIta, the trunk(4) connection is set up as follows.

The following example assumes that bge0 is used for wired devices and urtwn0 for wireless devices.

First, use the gennetconfs utility to generate the configuration for bge0.

fugu-demo# gennetconfs failover
= gennetconfs: generate network configuration files

Hostname with domain part (FQDN):
only host name without domain part is also OK.
-> fugu-demo.local

IP protocol version(s) to be enabled: 4, 6, 46, 64 or "none"
  4: enable only IPv4
  6: enable only IPv6
  46: give priority to IPv4 name resolution
  64: give priority to IPv6 name resolution
  none: operate as standalone
[64] ->

Network Interfaces: Choose one

  NIC	 type	   Name
-------- ----- ------------
    bge0 ether Broadcom BCM57765
  urtwn0 wifi  GW-USValue-EZ GW-USValue-EZ
[bge0] -> bge0

IPv6 - address and routing:
  Enter "auto" or "IPv6_address[/prefixlen] [default_gateway]"
  "auto" is an automatic setting by SLAAC.
  The "/prefixlen" part can be an integer between 0 and 128.
  If there is no default gateway,
  set the second field to "none" or leave it blank.
[auto] ->

IPv4 - address and routing:
  Enter "auto" or "IPv4_address[/mask] [default_gateway]"
  "auto" is an automatic setting by DHCP.
  The "/mask" part can be specified in either format,
  such as "/" or "/24".
  If there is no default gateway,
  set the second field to "none" or leave it blank.
[auto] ->

writing configured values to:

= end of gennetconfs:
= Use chnetconf utility to activate this configuration

Next, we generate the configuration for urtwn0. At this time, we will use the same settings as we did for bge0, except for the settings related to urtwn0.

fugu-demo# gennetconfs failover
-------------------------<< snip >>-------------------------
Network Interfaces: Choose one

  NIC	 type	   Name
-------- ----- ------------
    bge0 ether Broadcom BCM57765
  urtwn0 wifi  GW-USValue-EZ GW-USValue-EZ
[bge0] -> urtwn0

Wi-Fi settings:
  SSID -> fugunet-ap
-------------------------<< snip >>-------------------------
writing configured values to:

= end of gennetconfs:
= Use chnetconf utility to activate this configuration
fugu-demo #

Manually generate the settings for trunk0.

fugu-demo# cp -p hostname.bge0 hostname.trunk0
fugu-demo# vi hostname.trunk0
trunkproto failover
trunkport bge0
trunkport urtwn0

Specify the device to join the trunk by trunkport. The first trunkport device specified will be the master, and if multiple physical devices are available, the master device will be preferred.

Delete the IP address settings from the bge0 and urtwn0 settings.

fugu-demo# vi hostname.bge0
fugu-demo# vi hostname.urtwn0
nwid fugunet-ap wpakey FUGUNET-SECRET

The configuration is now complete; use the chnetconf command to activate the settings you have just created.

fugu-demo# chnetconf failover

If the settings are correctly reflected, the output of ifconfig will be as follows.

fugu-demo # ifconfig
        lladdr 10:9a:dd:6c:11:0c
        index 1 priority 0 llprio 3
        trunk: trunkdev trunk0
        media: Ethernet autoselect (none)
        status: no carrier
        lladdr 10:9a:dd:6c:11:0c
        index 4 priority 4 llprio 3
        trunk: trunkdev trunk0
        groups: wlan
        media: IEEE802.11 autoselect (OFDM54 mode 11g)
        status: active
        ieee80211: nwid aterm-963fef-g chan 1 bssid 10:66:82:59:b9:3c -58dBm
        wpakey wpaprotos wpa2 wpaakms psk wpaciphers ccmp wpagroupcipher tkip
        AUTOCONF6,AUTOCONF4> mtu 1500
        lladdr 10:9a:dd:6c:11:0c
        index 5 priority 0 llprio 3
        trunk: trunkproto failover
                urtwn0 port active
                bge0 port master
        groups: trunk egress
        media: Ethernet autoselect
        status: active
        inet6 fe80::129a:ddff:fe6c:110c%trunk0 prefixlen 64 scopeid 0x5
        inet netmask 0xffffff00 broadcast

obsd (2022-08-13 (Sat) 19:32:49)


Stay compatible with obsd, the concept of server is to be in the air, with the least possible maintenance, for the longest period of time. Years! Hardware and software should be a closed loop. Mentioning some hardware choices would be an addition to your effort.

Change of the server (2)

kaw (2022-08-04 (Thu) 23:46:28)


After the server failure, I started up the machine in the photo above (IBM Aptiva, 486DX4 100MHz, mem 24MB) and used it as a web server to inform people that was down. This machine was already configured for PPPoE.

The machine in the photo below has an IDE HDD removable bay, so I used it to salvage the data on the HDD of the failed machine.


New server (MacMini 4,1, Mem 8GB, FuguIta-7.1-amd64).
IPv6 and TLS are supported. Tentatively scheduled to operate until the end of ADSL on January 31, 2023.
Relay HTTP via to hosts in inner network was using DeleGate proxy software, but it was replaced by OpenBSD native relayd with TLS termination.

A rack to house network-related equipment and the old server. Unnecessary equipment and wiring were removed and rewired.


Change of the server

kaw (2022-07-22 (Fri) 13:35:12)


On the evening of July 19, 2022, the power supply unit of the server hosting died and could not be started again.

This PC was initially used as my main desktop machine and was also the development machine for FuguIta-i386 LiveCD. It was then converted to a machine for hosting along the way.

Spec: CPU:Celeron(R) ("GenuineIntel" 686-class) 1.72 GHz, Mem:1GB: HDD:IDE 320GB*2


Its lifespan was about 18 years.

It has been running OpenBSD for almost all of this time, and has been almost trouble-free.
Once again, I would like to express my gratitude for this outstanding operating system.

We are currently copying the data from the hard disk of this machine and working on recovery on a new server running FuguIta-7.1-amd64.

FuguIta-7.1-amd64-202205241.img was broken.

kaw (2022-05-25 (Wed) 23:45:41)

LiveUSB version of #FuguIta-7.1-amd64-202205241 didn't boot because of its content was corrupted.
I generated again FuguIta-7.1-amd64-202205241 from FuguIta-7.1-amd64-202205241.iso using the usbfadm utility and confirmed that it works correctly.
The mirror site update has also been completed.

Thanks MisticDoor@github for the problem report.

fix: fiupdate doesn't reboot sometimes

kaw (2022-05-15 (Sun) 11:30:06)

Since TMPFS has been changed to MFS, when fiupdate runs, reboot may stop midway and not complete.
The following diff is a fix for this problem and will be adopted in the next release.

--- fiupdate	Sun May 15 11:23:35 2022
+++	Sun May 15 11:23:29 2022
@@ -296,11 +296,16 @@
 setup_rampath () {
     mkdir -p /ram/fiupdate.bin
     cp -p /bin/{cat,echo,mv,rm,rmdir,sync} \
-          /sbin/{reboot,shutdown} \
           /usr/local/bin/pv \
-    ln /ram/fiupdate.bin/reboot /ram/fiupdate.bin/halt
-    PATH=/ram/fiupdate.bin:/boottmp:$PATH
+    # copy only reboot to /boottmp on rd(4) fs
+    # not to corrupt the executable at reboot time
+    #
+    cp -p /sbin/reboot /boottmp/.
+    ln /boottmp/reboot /boottmp/halt
+    PATH=/boottmp:/ram/fiupdate.bin:$PATH
     export PATH
@@ -721,4 +726,4 @@
 sync; sync; sync; sleep 5
 echo2 "now rebooting..."
  • My laptop is not rebooted by #FuguIta-7.1-amd64-202205161.iso.gz -- [[m3th ]] 2022-05-18 (Wed) 07:15:10
  • This fix will be valid for next #FuguIta release using this patched fiupdate. Or try "fiupdate 202205161" by 202205161 itself. -- kaw 2022-05-18 (Wed) 13:35:19

FuguIta 7.1: IceWMで日本語が表示されない

kaw (2022-05-08 (Sun) 23:53:30)

#FuguIta 7.1を使い出して気がついたのですが、IceWMを使うとウィンドウタイトルやメニューなどで日本語の文字列が表示されません。

$ grep -i -B1 'dejavu' /usr/local/share/icewm/preferences | \
sed 's/^--$//; s/^# *\(.*\)[Dd]eja[Vv]u *\(.*\)/\1\2/' > ~/.icewm/preferences

"expand" vs. "encrypted partition"

liar666 (2022-05-04 (Wed) 17:02:59)

Thanks for the great tool, with so much options. I love it!
I've dd'ed the (2.1GB) img on a 4GB USB stick, now I would like to configure an encrypted space to store my data/pkg.
I read pages about "expand" (StartGuide) and "encrypted partition" (BB/9), but I'm not sure if:

  • they are exclusive and I should do *either* one *or* the other, or
  • I should expand first, then setup an encrypted partition


How to use new build tool of FuguIta

kaw (2022-05-02 (Mon) 00:01:06)

FuguIta 7.1 has made significant changes in the way the build tool is used. Much simplified compared to the previous method, A live ISO image can be created by deploying the build tool, placing the set of file, and running make.

In following explanation, FIBLD represents the working directory for building FuguIta.
Please replace it with your actual working directory when building.

  1. The build environment is OpenBSD 7.1 or later, or FuguIta 7.1 or later, with root privileges.
  2. Put OpenBSD kernel source code under /usr/src/sys.
    # tar -xz -C /usr/src -f sys.tar.gz
  3. Extract new FuguIta build tool under FIBLD.
    # mkdir FIBLD
    # cd FIBLD
    # tar -xz -f tools-7.1-amd64.tar.gz && mv tools-7.1-amd64/* .; rmdir tools-7.1-amd64
    For the other platform, replace "amd64" with its name.

  4. Copy or symlink OpenBSD install sets (e.g. *71.tgz) under FIBLD/install_sets.
    # cp SOMEWHERE/*71.tgz FIBLD/install_sets/.
    # ln -sf SOMEWHERE/*71.tgz FIBLD/install_sets/.
  5. Copy or symlink rsync, rlwrap, pv package files in FIBLD/install_pkgs.
    # cp SOMEWHERE/{rsync,rlwrap,pv}-*.tgz FIBLD/install_pkgs/.
    # ln -sf SOMEWHERE/{rsync,rlwrap,pv}-*.tgz FIBLD/install_pkgs/.
  6. Compile the kernels for FuguIta. In FIBLD, do the following:
    # make kernconfig && make kern
  7. Extract the OpenBSD file tree and modify it for FuguIta.
    # make stage
    If you want to customize FuguIta, modify the file tree under the directory staging after this.

  8. Make the contents of image file identical to this file tree
    # make sync
  9. Combine the kernels, boot loaders, and an image file to create a versioned ISO file.
    # make iso
  10. Compress the ISO file with a filename containing the release string
    # make gz

Audio volume control

kaw (2022-04-30 (Sat) 10:36:55)


Here's a simple audio volume control, which is a GUI wrapper for sndioctl.
Install tk-8.6. Next, chmod +x this script. Then run this.


catch {
    destroy .input
    destroy .output

wm title . "TinyMixer"

frame .input
scale .input.volume -label "MIC IN" -orient horizontal -command {setvol input}
.input.volume set 0
button .input.mute -text "MUTE" -command {togglemute .input.mute input}

frame .output
scale .output.volume -label "PHONE OUT" -orient horizontal -command {setvol ou$
.output.volume set 50
button .output.mute -text "MUTE" -command {togglemute .output.mute output}

pack .input.volume -side left -fill both -expand yes
pack .input.mute -side left -expand no -fill both

pack .output.volume -side left -fill both -expand yes
pack .output.mute -side left -expand no -fill both

pack .input .output -side top -fill both -expand yes

proc setvol {inout val} {
    exec sndioctl "${inout}.level=[expr ${val} / 100.0]"

proc mute_on {w inout} {
    fade_out $inout [".${inout}.volume" get]

proc fade_out {inout vol} {
    if {6 <= $vol} {
        set vol [expr 6 * $vol / 7]
        setvol $inout $vol
        after 20 fade_out $inout $vol
    } else {
        setvol $inout 0
        exec sndioctl "${inout}.mute=1"

proc mute_off {w inout} {
    exec sndioctl "${inout}.mute=0"
    exec sndioctl "${inout}.level=0"
    fade_in $inout  [".${inout}.volume" get] [".${inout}.volume" get]

proc fade_in {inout vol limit} {
    if {6 <= $vol} {
        set vol [expr 6 * $vol / 7]
        setvol $inout [expr $limit - $vol]
        after 20 fade_in $inout $vol $limit
    } else {
        setvol $inout $limit

proc togglemute {w inout} {
    set bg [$w cget -background]
    if {$bg == "#d9d9d9"} {
        $w configure -background "#ff8080"
        $w configure -activebackground "#ffa0a0"
        mute_on $w $inout
    } else {
        $w configure -background "#d9d9d9"
        $w configure -activebackground "#ececec"
        mute_off $w $inout


m3th (2022-04-30 (Sat) 04:52:08)

Is it possible to install Fuguita 7.1 over an already existing Fuguita 7.0 without losing my data on fat partition? When are you going to end support for Fuguita 7.0? Should I upgrade it asap?


Change on FuguIta 7.1

kaw (2022-04-26 (Tue) 01:02:40)

I'm working on FuguIta 7.1 with plans to release it soon.

#FuguIta 7.1 changes from TMPFS to MFS as a memory-based file system. Please see the ML archive for the details of the change.

This will result in the following changes

  • The automatic specification of file capacity that existed in TMPFS does not exist in MFS. You will have to specify it explicitly.
  • The maximum amount of files that can be held in memory will be a little over 1GB on the i386 platform and a little over 30GB on amd64. This is a limit of MFS itself, and the value is independent of the page-out to the swap partition.

How to port PFFW to FuguIta

kaw (2022-03-04 (Fri) 18:27:07)

PFFW is a firewall management software running on OpenBSD that continues to be developed by Soner Tari.
PFFW uses OpenBSD's packet filter PF and provides a web user interface for configuring PF and monitoring PF and OS behavior.

I have ported this PFFW to FuguIta LiveUSB and would like to introduce the procedure.

PFFW is available as an ISO image for installation, including OpenBSD itself and related packages, and porting to FuguIta LiveUSB is generally done as follows

  • Install PFFW in the usual way.
  • After installation, take out the PFFW-specific parts.
  • Run FuguIta LiveUSB and extract the files from PFFW onto FuguIta.
  • Modify some files so that PFFW and FuguIta work together.
  • Save the modified contents to FuguIta LiveUSB.

Install PFFW in the usual way.
Refer to the PFFW GitHub Page and download the installation image.
Refer to the How to Install section of the PFFW GitHub Page for instructions on how to install from the downloaded image.
Installation can be done either on the actual device or on a VM, but it is easier to do it on the actual device because of the network interface settings.

During the initial setup of PFFW, answer no to the question if you want to use MFS.

If the system has enough memory, you can mount /var/log as MFS
Enable MFS? [yes] no

MFS /var/log disabled.

FuguIta uses TMPFS, so the same effect can be achieved without MFS.

After installation, take out the PFFW-specific parts.
Next, launch the installed PFFW and archive the PFFW-specific portions.

pffw# cd /
pffw# tar czf /root/pffw.tar.gz etc usr/local var

Please copy this pffw.tar.gz to another media, another host, etc. so that it can be read from the FuguIta environment you will create later.

Run FuguIta LiveUSB and extract the files extracted from PFFW onto FuguIta.
Run FuguIta LiveUSB, which is the destination of PFFW, in mode 0.

Boot modes:
   0: fresh boot - standard mode as a live system
   1: fresh boot - less memory, faster boot
                  (/usr is non-writable, can't pkg_add)
   2: fresh boot - works using only RAM
                  (about 1GB or more of RAM required)
   3: boot with retrieving saved files from storage device
      or enter passphrase for an encrypted volume
   4: boot with retrieving saved files from floppy disk
   5: interactive shell for maintenance
-> 0

After booting is complete, extract the files you have just archived.

pffw-fuguita# cd /ram
pffw-fuguita# tar xvzpf pffw.tar.gz

Modify /etc/rc.

pffw-fuguita# cd /etc
pffw-fuguita# patch < /boottmp/etc.rc.diff
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
|--- rc Tue Oct 19 00:11:59 2021
|+++     Tue Oct 19 00:12:08 2021
Patching file rc using Plan A...
Hunk #1 succeeded at 177.
Hunk #2 succeeded at 377.
Hunk #3 succeeded at 684 (offset 58 lines).

Modify /etc/doas.conf as follows

permit nopass www as root cmd /ram/var/www/htdocs/pffw/Controller/ctlr.php
permit nopass admin as root cmd /ram/var/www/htdocs/pffw/Controller/ctlr.php
permit nopass user as root cmd /ram/var/www/htdocs/pffw/Controller/ctlr.php
permit nopass keepenv root as root

In FuguIta, /var is a symbolic link to /ram/var, and doas will not allow execution with the original contents.
/var must be changed to /ram/var, which is a realpath.

Merge /etc/rc.shutdown for PFFW and FuguIta.

pffw-fuguita# cd /etc
pffw-fuguita# mv rc.shutdown rc.shutdown.pffw
pffw-fuguita# cat rc.shutdown.pffw /fuguita/etc/rc.shutdown > rc.shutdown

Uncomment the last line of the merged rc.shutdown.

          echo will retry after $waitsec seconds...
          sleep $waitsec
      done )

# To re-sync on shutdown. uncomment the following line.
usbfadm_r    <== Uncomment this line.

This will cause the file to be saved to the USB flash drive and then shut down after the PFFW exit process is complete.

Save the modifications to the FuguIta LiveUSB.

pffw-fuguita# usbfadm

Welcome to usbfadm.
USB flash drive administration tool for FuguIta

 Version/Arch: 7.0/amd64  (FuguIta-7.0-amd64-202202241)
    Boot mode: usbflash
Target device: not set
Data saved as: not set

readline capability available
TAB to complete the reserved words

Type ? for help.

? : ? ->target

Searching storage device
Please make sure the device inserted.
Then press ENTER ->
sd0a +sd0d
target device->sd0d

sd0d : ? ->saveas
Name of saved data->pffw

Your data will be saved as ``pffw''.

sd0d : pffw ->sync

Sync current tmpfs as ``pffw'' , OK? [y/N] -> y

copying /ram to /mnt/livecd-config/7.0/amd64/pffw (515360KB approx.):
 467MiB 0:00:30 [15.2MiB/s] [==============================>   ] 92% ETA 0:00:02
waiting for pax to finish ... syncing ... done.

sd0d : pffw ->quit

Bye bye...

This completes the porting of PFFW to FuguIta.

pffw-fuguita# shutdown -hp now

When starting up, choose mode 3 and specify the device and save name where the data was saved, and PFFW will start up.


To automatically specify the device name and save name and start up, please refer to the FuguIta's Start Guide.

Desktop environment demo of FuguIta

kaw (2022-01-13 (Thu) 23:30:46)

I have created a desktop environment demo of FuguIta on a trial basis and uploaded it to the "old" directory of mirror servers.

How to use
Download the file FuguIta-7.0-amd64-202201101-desktop_demo.img.xz and write it to a USB flash drive with a size of 8GB or more.

xz -dc FuguIta-7.0-amd64-202201101-desktop_demo.img.xz | dd of=/dev/rsdXc bs=1m

When you boot from this USB stick, you will get a desktop environment without authentication.

You will need a minimum of 2GB of memory on your PC.
Installed applications are as follows

audacious-4.1p0 emacs-27.2p3-gtk3 evince-40.4-light firefox-95.0.1
libreoffice- noto-cjk-2.001 noto-emoji-20200408
noto-fonts-20171024 pv-1.6.6 rlwrap-0.43p0 rsync-3.2.3p0
vim-8.2.3456-gtk3 vlc-3.0.14p1 xfce-extras-4.16

Technical topics

  • non interactive boot with noasks file in d partition
  • automatic login with xenodm
  • additional mounting of a partition with /usr/fuguita/etc/fstab.tail file
  • automatic network configuration with gennetconfs utility and chnetconf utility (in /etc/rc.local)

Former articles are at FuguIta/BBS/11.

2022-09-24 2022-08-28 2022-08-25
  • FuguIta/BBS
2022-08-08 2022-08-07 2022-08-03 2022-04-11 2022-03-10 2022-02-16 2022-01-19 2021-12-11 2021-10-02 2021-08-28 2021-05-31 2021-05-21 2021-05-14 2021-04-16 2020-10-07 2020-09-08 2020-07-22 2020-06-20 2020-06-14 2020-05-15 2020-02-28 2020-02-07 2019-12-11 2019-10-09 2019-05-25 2019-04-04 2019-02-21 2019-02-15 2019-02-02 2018-11-16 2018-11-12 2018-11-07 2018-11-01 2018-09-21 2018-08-26

Attach file: filepowerline.jpg 80 download [Information] filerack.jpg 82 download [Information] filenewserver.jpg 79 download [Information] filetwoservers.jpg 75 download [Information] filenimbus6b.jpg 100 download [Information] filenimbus6f.jpg 112 download [Information] fileTinyMixer.png 158 download [Information] filePFFW-FuguIta.jpg 267 download [Information]

Front page   Edit Freeze Diff History Attach Copy Rename Reload   New Page list Search Recent changes   Help   RSS of recent changes
Last-modified: 2022-08-25 (Thu) 10:34:55