Your message?

Notice: 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.).






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
+++ fiupdate.new	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 \
        /ram/fiupdate.bin/.
-    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..."
-reboot
+/boottmp/reboot
  • 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を使うとウィンドウタイトルやメニューなどで日本語の文字列が表示されません。
これは、IceWMのデフォルトのフォント設定が変更されたためのようです。
解決方法としては、フォント設定の"DejaVu"、あるいは"dejavu"となっている部分を削除すると日本語部分が表示されるようになります。
具体的には以下のコマンドを実行することで解決されます。

$ 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)

#FuguIta
Hi,
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

    #FuguIta


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/.
    or
    # 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/.
    or
    # 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)

TinyMixer.png

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.

#img(): File not found:
#!/usr/local/bin/wish8.6

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
    }
}

MSDOS FAT : 3GB

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?

#FuguIta


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.

Overview
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
|+++ rc.new     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.

...snip...
          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...
pffw-fuguita#

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.

PFFW-FuguIta.jpg

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-7.2.1.2v0 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.


Return to Top


Front page   New Page list Search Recent changes   Help   RSS of recent changes