site  contact  history  index

Easy Version Control fixes

July 03, 2022 — BarryK

Just a quick report. I have done some work on Easy Version Control (in the "Filesystem" menu category).

This includes snapshots, and container rollback and erase. This work has been required due to the new top-level-zram.   

Tags: easy

Pup-Advert-Blocker fixed now version 0.6

July 03, 2022 — BarryK

I posted about problems with Pup-Advert-Blocker:

https://bkhome.org/news/202206/blocking-web-page-adverts-in-a-container.html

It is not a PET, it is builtin to EasyOS, script /usr/sbin/pup-advert-blocker

I have overhauled it and bumped the version to 0.6

The creator, sc0ttman, hasn't posted to the forum for a long time, so I sent him an email a couple of days ago. I will send another one, letting him know that I have worked on the script.  

Tags: easy

Limine 3.10.1 compiled in OE

July 03, 2022 — BarryK

Limine has undergone a very rapid pace of development. Compiling yet again. The recipe has become simpler:

# Recipe created by recipetool
# recipetool create -o limine_3.10.1.bb https://github.com/limine-bootloader/limine/releases/download/v3.10.1/limine-3.10.1.tar.gz

SUMMARY = "x86/x86_64 BIOS/UEFI bootloader"
HOMEPAGE = "https://limine-bootloader.org/"

LICENSE = "UCB & GPLv3"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=566da3e4be60cd868e42cb88c9c0ddd3 \
file://stivale/LICENSE.md;md5=21e2e2557201f26b907e5694c9e179b9 \
file://libgcc-binaries/COPYING.RUNTIME;md5=fe60d87048567d4fe8c8a0ed2448bcc8 \
file://libgcc-binaries/COPYING;md5=64305ff51f34d0aca60d187e21a09d59 \
file://libgcc-binaries/COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
file://freestanding-headers/LICENSE.md;md5=9621911223dde43748ad798e3804a3ed \
file://limine-efi/COPYING;md5=c27a4b4a954b36c8afddf7587fd749be"

SRC_URI = "https://github.com/limine-bootloader/limine/releases/download/v${PV}/limine-${PV}.tar.gz \
file://remove-ext4-encrypt-warning.patch"

SRC_URI[md5sum] = "f4d5c4219e28b1ddfa7be86609090ae1"
SRC_URI[sha256sum] = "5a2e4cb2cca512b24d697d9714763f6e5ae5c04efbe386487cb4834a86351019"

inherit autotools

DEPENDS = "mtools-native nasm-native coreutils-native"

EXTRA_OECONF = "--enable-all"

Looking forward to releasing EasyOS 4.2.3 and explore more possibilities with Limine.    

Tags: easy

Fix for MoManager in Easy 4.2.2

July 03, 2022 — BarryK

Forum member DenVit reported that MoManager does not start:

https://forum.puppylinux.com/viewtopic.php?p=61038#p61038

Yes, running "momanager" in a terminal, it just hangs.

I found the reason. At line 369, it tries to perform an operation on script 'grub4dosconfig', to fix a syntax error in that script. However, Easy no longer has the 'grub4dos' package, and that causes the 'momanager' script to hang at line 375. This is the fix:

 #check syntax
#local T S E
T=grub4dosconfig
S="$(which ${T})"
if [ "$S" ];then #20220703 prevent hang if grub4dosconfig missing.
E="export TEXTDOMAIN=${T}" #nothing else valid at this line
grep "^${E}$" ${S} >/dev/null || sed -ie "s/${E}/${E}\n/" ${S} #200707
fi

Grub4dos is too old, cannot handle modern features of ext4. I intend to use Limine in the future, hopefully will develop a Limine installer.

Next up, plan to compile the latest Limine in OE.    

Tags: easy

How to add Windows to the Limine boot menu

July 02, 2022 — BarryK

EasyOS image file has the Limine bootloader, and I posted a few days ago how easy it is to write the image to any drive and bootup Easy:

https://easyos.org/install/how-to-install-easyos-on-a-new-ssd.html

I mentioned in that page, that more entries could be added to 'limine.cfg', including boot Windows.

The little Mele mini-PC has Windows 10 on a 32GB eMMC flash memory, and Easy is on a 240GB Kingston SATA SSD, that I added to the Mele. So, it should be easy enough to add an entry to boot Windows, but at first had problems, that I reported:

https://github.com/limine-bootloader/limine/issues/188

The developer was very helpful, and the issues were resolved. Here is 'limine.cfg':

QUIET=no
TIMEOUT=20
GRAPHICS=no
DEFAULT_ENTRY=1
EDITOR_ENABLED=yes
INTERFACE_BRANDING=EasyOS Limine Boot Manager

:EasyOS dunfell in sda2
COMMENT=EasyOS Dunfell bootup
PROTOCOL=linux
TEXTMODE=yes
KERNEL_PATH=boot://2/easyos/vmlinuz
MODULE_PATH=boot://2/easyos/initrd
KERNEL_CMDLINE=initrd=initrd rw wkg_uuid=41e4e492-f6a0-11ec-9a02-287fcfeb4376 wkg_dir=easyos/

:Windows 10 in mmcblk0
COMMENT=Windows 10 in mmcblk0
PROTOCOL=chainload
#IMAGE_PATH=hdd://2:1/EFI/Microsoft/Boot/bootmgfw.efi
IMAGE_PATH=guid://09ddd6ad-80b0-4265-8d7f-1621eb5a4d9f/EFI/Microsoft/Boot/bootmgfw.efi

...both of those "IMAGE_PATH" variables work.

The "hdd" option requires <drive number>:<partition number>, in my case "2:1"
The "guid" option requires the partuuid. Running 'blkid' on the Windows boot-partition gives this:

# blkid /dev/mmcblk0p1
/dev/mmcblk0p1: LABEL="SYSTEM" UUID="5A85-A404" TYPE="vfat"

However, that is a filesystem uuid and not what is needed. Easy has the blkid applet in busybox, but I think the blkid from util-linux package will display the partuuid.

Anyway, can find the partuuid like this:

# ls -l /dev/disk/by-partuuid
lrwxrwxrwx 1 root root 15 Jul 2 05:07 09ddd6ad-80b0-4265-8d7f-1621eb5a4d9f -> ../../mmcblk0p1
lrwxrwxrwx 1 root root 15 Jul 2 05:07 174c8de6-dc78-4207-9176-f04235684cdd -> ../../mmcblk0p2
lrwxrwxrwx 1 root root 15 Jul 2 05:07 34e2b902-6cf5-4350-b941-db0652c28dd4 -> ../../mmcblk0p3
lrwxrwxrwx 1 root root 15 Jul 2 05:07 f52e64e1-ab42-4918-aa6f-2c5df878cfe9 -> ../../mmcblk0p4

...the one I want is highlighted. So, bunged that into 'limine.cfg' and Windows bootup works.

Today, Limine develop mintsuki has added another option, that I have not yet tested:

    IMAGE_PATH=fslabel://SYSTEM/EFI/Microsoft/Boot/bootmgfw.efi

...that's fantastic. As long as there is only one partition with that label.

In case you are wondering how I arrived at that path "/EFI/Microsoft/Boot/bootmgfw.efi", I don't remember.
If you poke around in the Windows vfat boot-partition, it is very complicated and there are lots of ".efi" files.
Back in 2017 when I first added Windows booting to the rEFInd menu, I must have read about that path somewhere.
Anyway, it works.

We can merrily add more entries, if there are other installations of Linux. And note, another Linux could be in the same partition as EasyOS, as Easy is a "frugal" install, only requiring one folder in the partition. You can read about the configure options here:

https://github.com/limine-bootloader/limine/blob/v3.0-branch/CONFIG.md

I am seeing Limine as a better choice than GRUB2, that most distributions are using, due to its simplicity.

2017, that long ago! Yep, that was when I bought the little Mele:

https://bkhome.org/news/201709/mele-pcg35-apo-works-well.html

I see that Mele has a shop at mele.aliexpress.com, and their fanless mini-PCs now have higher specs.   

Tags: easy

Limine 3.9.2 compiled in OpenEmbedded

July 02, 2022 — BarryK

EasyOS 4.2.2 has Limine 3.7.3, as I was unable to compile 3.8+ in OE:

https://github.com/limine-bootloader/limine/issues/187

However, the latest, 3.9.2, has important fixes, so had another go at compiling. One of the main Limine developers, mintsuki, informed me that 3.9.2 has fixed the bug in the snapshot here:

https://forum.puppylinux.com/viewtopic.php?p=60977#p60977

Yes, mintsuki is reading the Puppy Forum!

Here is the working recipe for OE:

# Recipe created by recipetool
# recipetool create -o limine_3.9.2.bb https://github.com/limine-bootloader/limine/releases/download/v3.9.2/limine-3.9.2.tar.gz

SUMMARY = "x86/x86_64 BIOS/UEFI bootloader"
HOMEPAGE = "https://limine-bootloader.org/"

LICENSE = "UCB & GPLv3"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=566da3e4be60cd868e42cb88c9c0ddd3 \
file://stivale/LICENSE.md;md5=21e2e2557201f26b907e5694c9e179b9 \
file://libgcc-binaries/COPYING.RUNTIME;md5=fe60d87048567d4fe8c8a0ed2448bcc8 \
file://libgcc-binaries/COPYING;md5=64305ff51f34d0aca60d187e21a09d59 \
file://libgcc-binaries/COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
file://freestanding-headers/LICENSE.md;md5=9621911223dde43748ad798e3804a3ed \
file://limine-efi/COPYING;md5=c27a4b4a954b36c8afddf7587fd749be"

SRC_URI = "https://github.com/limine-bootloader/limine/releases/download/v${PV}/limine-${PV}.tar.gz \
file://remove-ext4-encrypt-warning.patch"

SRC_URI[md5sum] = "b1f6f2e46d5d1ec4476ae3ff9df33079"
SRC_URI[sha256sum] = "546cff6c94e40c7996581b60e350b286321463bc282dabf111e0ed6d796fa6e9"

inherit autotools

DEPENDS = "mtools-native nasm-native coreutils-native"

EXTRA_OECONF = "--enable-all"

#give up rebuilding with autotools, just run existing configure script...
do_configure() {
oe_runconf
}

Great!   

Tags: easy

HDMI audio fix

July 02, 2022 — BarryK

My little Mele mini-PC has been sitting on a shelf, not setup due to lack of monitor, etc. And a lack of bench space. It is good, though, to have all the computers setup ready to use, for convenience when testing a new iteration of EasyOS.

So, unfolded the camp table and found all the parts to get the Mele going. Using my little 24 inch TV, used for camping, as it runs on 12v. That's when I discovered audio output via HDMI to the TV doesn't work.

Looking at the Multiple Sound Card Wizard (usr/sbin/mscw), I see that I did implement a fix for this in December 2021, but it is broken again. Actually, this is a pulseaudio bug, that has been around for years, see discussion here, from mid-2019 to mid-2022:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1834771

I have fixed HDMI audio, with this new code in MSCW:

    #20220702 testing on mele mini-pc with tv, hdmi audio, no sound. fix...
# "pactl list sinks" doesn't show the hdmi, pa bug for 3 years...
# ref: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1834771
read newCard newDevice <<< "$(get_card_device "$SELECTED")"
pactl load-module module-alsa-sink device=hw:${newCard},${newDevice} #so don't have to restart server.
sed -i '/^load-module module-alsa-sink/d' /etc/pulse/default.pa
echo "load-module module-alsa-sink device=hw:${newCard},${newDevice}" >> /etc/pulse/default.pa
pactl set-default-sink alsa_output.hw_${newCard}_${newDevice} #so don't have to restart server.
sed -i '/^set-default-sink/d' /etc/pulse/default.pa
echo "set-default-sink alsa_output.hw_${newCard}_${newDevice}" >> /etc/pulse/default.pa

Rebooted, and yes, audio works.

I notice the posters in the above link are saying the bug affects AMD CPU/GPU PCs, but the Mele has an Apollo Lake J3455 CPU with Intel "HD Graphics 500" and "HDA-Intel" audio.   

Tags: easy

Blocking web-page adverts in a container

June 30, 2022 — BarryK

Forum member Tenoch reported that "Pup-Advert-Blocker" (in the "Internet" menu category) does not work when run Firefox in a container ("www" icon on desktop):

https://forum.puppylinux.com/viewtopic.php?p=60901#p60901

The "dunfell" icon runs a full isolated desktop, and Pup-Advert-Blocker should work there.

I have fixed so that /etc/hosts gets copied into every container at startup.That will be in the next release.

But, as I mentioned in the forum, replying to Tenoch's post, The "Mvps.org" choice in Pup-Advert-Blocker doesn't work.

Pup-Advert-Blocker is a very old application, created by sc0ttman, found it in the old forum:

https://oldforum.puppylinux.com/viewtopic.php?t=59290

I will need to fix the PET, either take out "Mvps.org" or find a replacement.   

Tags: easy