site  contact  subhomenews

Redshift fixed in Easy Bookworm

May 16, 2022 — BarryK

An old problem has come back to haunt us. Debian Bookworm has redshift package version 1.12, which is broken. Or rather, the CLI utility is broken. Version 1.11 works.

The systray has a screen brightness and colour tinting applet, that is a GUI for the redshift CLI utility. This was fixed in Easy Dunfell, but the bug has come back with Easy Bookworm, see forum post, the problem reported by Philh:

https://forum.puppylinux.com/viewtopic.php?p=57499#p57499

I have changed the package-list for Easy Bookworm to used the redshift 1.11 PET.

Changing the subject, you might be interested to know that the packages compiled in OpenEmbedded for Easy Dunfell, are also used in Easy Bookworm. 115 of them, in fact.

There are so many special packages not available in the Debian repository, or not suitable (or, as in the case or redshift, broken). ROX-Filer, Gwhere... well, the list goes on.   

Tags: easy

easy.sfs recompress with LZ4_HC

May 15, 2022 — BarryK

Thanks to forum member rufwoof, who got me thinking about this. File 'easy.sfs' has the entire EasyOS filesystem -- we don't split up into smaller SFS files as is done in Puppy. Except, still have the separate 'devx' SFS.

To keep the download file small, easy.sfs is xz-compressed. This is the smallest file-size; however, decompression when in use is also slower than other compression methods. With a fast CPU, you probably won't notice it, but with a somewhat older CPU there may be noticeable sluggishness, perhaps in app startup.

The first time that you bootup Easy, the QuickSetup window appears. This can also be run at any time, via the "Setup" category in the menu. Here it is, and notice the arrow I have drawn:

img1

That checkbox gives you the opportunity to recompress easy.sfs with a faster compression method. Up until now it has been "gzip" compression. What I have done now is change that to "lz4", actually, "LZ4_HC", which has higher compression than plain lz4.

Let's see the effect on the filesize for each compression method. Taking 'easy'sfs' from the latest Easy Dunfell, 3.4.7, which is xz-compressed. The method to recompress is to first mount easy.sfs:

# mkdir mntpt
# mount -t squashfs easy.sfs mntpt
# mksquashfs mntpt easy-gz.sfs -comp gzip
# mksquashfs mntpt easy-lz4.sfs -comp lz4
# mksquashfs mntpt easy-lz4-hc.sfs -comp lz4 -Xhc
# sync
# umount mntpt

Look at the sizes:

xz
gzip -9
lz4
lz4 -9
602M
720M
1009M
850M

The last column is LZ4_HC. Tables of compression and decompression speed are here:

https://www.privex.io/articles/which-compression-algorithm-tool/

Fast compression is great of course, but my main interest is decompression speed. Table from that link, for maximum "-9" compression for all of them:

NAME        DECOMP TIME        MB DECOMP PER SEC
lbzip2:     2.776 seconds      222.62 MB/S
lz4:        1.484 seconds      416.44 MB/S
gzip:       7.666 seconds      80.61 MB/S
xz:         15.532 seconds     39.78 MB/S

...wow, look at LZ4_HC! This has convinced, me LZ4_HC is the best choice.

I posted about recompiling the kernel to support squashfs lz4:

https://bkhome.org/news/202205/kernel-51539-compiled-in-easy-bookworm.html

...next up, will do the same for Easy Dunfell series.

Then, updated 'mksquashfs' in the initrd to support lz4:

https://bkhome.org/news/202205/mksquashfs-in-initrd-updated-with-lz4-support.html

Finally, have edited the 'quicksetup' script, and 'init' script in the initrd, changed recompression from gzip to lz4 -9.

Technical details worth knowing:

easy.sfs in the boot-partition is not resized, as there isn't room for it. The boot partition was 639M, and I have increased it to 767M, so not big enough.

I recently explained that at first bootup, 'easy.sfs' is copied to the working-partition, to support rollback. This copy in the working-partition is what gets resized. At bootup, the copy is the one that gets loaded in the aufs layered filesystem.

Another useful point to know, is that if there is sufficient RAM that copy of 'easy.sfs' gets copied into RAM, then mounted in the aufs layered filesystem. The 'init' script considers various factors before deciding to do this, such as is there sufficient RAM. There is a tradeoff here, as 'easy.sfs' is going to sitting in RAM, reducing what is available. You would need at least 4GB RAM for 'easy.sfs' to be copied into RAM.   

Tags: easy

mksquashfs in initrd updated with lz4 support

May 15, 2022 — BarryK

I mentioned in a recent post, that QuickSetup has a checkbox to rebuild 'easy.sfs', changing from xz to gz compression. Would prefer that to change to lz4, for much faster decompression when in use.

I also mentioned that the kernel 5.15.39 has been compiled with lz4 support in the squashfs driver.

The actual reconstruction of easy.sfs occurs in the initrd, using the 'mksquashfs' utlity. This utility is statically-linked, and only supports gz and xz compression. So, I have recompiled it in my musl OE build, with lz4 compression enabled.

This has been done for x86_64, i686 and aarch64 targets, and I have put the new 'mksquashfs' utilities into woofQ.

Next step is to edit the 'quicksetup' script, and 'init' in the initrd, to convert 'easy.sfs' to lz4 instead of gz.  

Tags: easy

Celluloid deps missing in Easy Bookworm

May 15, 2022 — BarryK

Forum member Keef reported that Celluloid media player is missing some dependencies:

https://forum.puppylinux.com/viewtopic.php?p=57361#p57361

Thanks for reporting that, fixed.   

Tags: easy

Galculator missing dep in Easy Bookworm

May 15, 2022 — BarryK

Galculator is a calculator, found in the "Business" menu. It won't run, because 'libquadmath.so.0' is missing. I found that to be package 'libquadmath0' and installed it via the package manager.

However, as Debian Bookworm is a very long way from being released (mid-2023), the online repository is a moving target. Click on "pkgget" on the desktop, then go into configuration and click the "Update" button.

You only need to update the three Debian "main", "contrib" and "nonfree" repositories, and when it asks if you want to download the "updates", decline -- the updates URLs don't exist, they will only exist after Debian Bookworm is released.

Galculator now works.    

Tags: easy

f2fscrypt utility compiled statically in OE

May 13, 2022 — BarryK

I am planning to investigate f2fs instead of ext4 for the working partition. To support encrypted folders in ext4, there is the 'e4crypt' utility, which is in the initrd. To support encryption of folders in f2fs, the 'f2fscrypt' utility is needed.

OpenEmbedded has a recipe for 'f2fs-tools', which creates dynamically-linked executables. OE allows a choice of C library, and I have a build using musl. In that build, I created a new recipe, based on the one for f2fs-tools, except with LDFLAGS having "-static" appended.

So, created 'f2fscrypt' statically-linked for x86_64, aarch64 and i686, and put them into woofQ. It is small, just over 60KB.   

Tags: easy

Local availability of fast flash drives

May 13, 2022 — BarryK

I posted about SanDisk Extreme flash-sticks not being available in your local supermarket stores, such as Kmart, Target and BigW:

https://bkhome.org/news/202205/introducing-easy-bookworm.html

Just now did a browse around, the SanDisk Ultra is readily available, and reasonably priced, for example 32GB AU$13.95 at BigW:

https://www.bigw.com.au/product/sanddisk-ultra-usb-3-0-flash-drive-32gb/p/810611

Had to hunt a bit more, found the SanDisk Extreme at some local stores (Perth, Western Australia), 64GB $AU35.00:

https://www.ple.com.au/Products/650949/SanDisk-Extreme-GO-64GB-USB32-Flash-Drive

Actually, I bought one of my SanDisk Extreme sticks, 64GB, from BigW, but they don't stock it anymore.

Interesting note about Kmart...

I was reading recently about the demise of the Kmart chain in the USA, due to mismanagement. Kmart established in Australia, then sold their Australian stores to an Australian company in 1994 (Coles Myer, then to Wesfarmers in 2007). Kmart in Australia is flourishing.

There have been posts on the Puppy Forum, some people are buying external SSDs instead of flash sticks, for the reliability. Yes, worth considering. However, instead of buying an external SSD, those widely available in major supermarket stores, where you don't know what kind of SSD technology is inside, buy a separate SSD and a USB caddy.

There has been some discussion on the forum recommending to choose a more conservative SSD, not NVME. Also, not necessarily the cheapest SSD. For example, this is a good choice, Crucial model MX500, 250GB, AU$49:

https://www.austin.net.au/crucial-mx500-internal-solid-state-drive-2-5-250-gb-serial-ata-iii.html

Or, Western Digital Blue 250GB $64:

https://www.ple.com.au/Products/629009/WD-Blue-250GB-3D-NAND-25-SSD

Then a USB caddy, if the SSD is to be external, for example Simplecom SE221 AU$20:

https://www.austin.net.au/simplecom-se221-aluminium-2-5-sata-hdd-ssd-to-usb-c-enclosure-with-usb-a-adapter.html

$49 + $20, that is an investment of AU$69. Well worthwhile, considering that a SanDisk Extreme 250GB stick costs AU$145 (at JB HiFi), or AU$99 (at PLE).

An SSD, a proper one, has enhancements such as wear-leveling, to give a very long life. So not only is it cheaper per-GB, but also is going to last longer, probably for the lifetime that you will be using it. Furthermore, you can expect at least twice as fast as the SanDisk Extreme.

Another consideration. If you install EasyOS to the SSD, that's it, you won't have to do any more installs. Updates can be via the "update" icon on the desktop. Ahem, except that currently it only updates within the current series. For example, the Dunfell-series, you cannot jump over to the new Bookworm-series.

In theory though, it should be possible to jump series. There are some caveats, details to be worked out before doing this.

Anyway, worth considering. An external "proper" SSD, with Easy on it, portable, can boot it on any computer.

EDIT:
I'm thinking of buying one of these:

https://www.officeworks.com.au/shop/officeworks/p/wd-elements-se-ssd-hard-drive-480gb-wdbayn4800abk-wesn-wdbayn4800

...AU$59 for an external 480GB SSD

However, I cannot find any information on the internal technology. I can only assume that the controller chip has wear-leveling and error-correction. It is not really an SSD if it doesn't. Has WD cut some corners to achieve the low price? Undoubtedly, but is it still a good compromise?

I like that it is small:

img1

Yeah, OK, I will buy one, probably, tomorrow. That's what I do, test tech and post reports to my blog. So I will test this and report back.

Long term reliability though, is a difficult one. When you buy an SSD and a USB caddy, you know exactly what you are getting, and what technology is inside. I could test it to destruction, but don't want to do that, as want to use it. Well, I could use for compiling, for example compiling the kernel, OpenEmbedded, etc. That is pretty intense reads and writes. Or as a swap partition. OK, I might sacrifice it to heavy duty usage and see how it holds out.

EDIT 2022-05-14:
Bought the WD Elements SE SSD. First evaluation:

https://bkhome.org/news/202205/first-test-wd-elements-se-ssd-480gb-and-comparisons.html  

 

Tags: easy

Kernel 5.15.39 compiled in Easy Bookworm

May 13, 2022 — BarryK

Partly this was to test that the 'devx' SFS works, and it does.

But also, rufwoof recommended that lz4 be enabled for squashfs in the Linux kernel, as this compression format has very fast decompression. rufwoof's post:

https://forum.puppylinux.com/viewtopic.php?p=57205#p57205

The first time that you boot Easy, the QuickSetup window appears. You can also run it anytime via "Setup -> Quicksetup first-run settings" in the menu. In QuickSetup, there is a checkbox labeled "Recompress easy.sfs" -- tick that, and easy.sfs will be changed from xz-compression to gz-compression. This will give faster reading of files from easy.sfs, and you might notice slightly snappier performance on an older computer.

Having enabled lz4 for squashfs, I intend to change QuickSetup so that it changes xz to lz4, thus giving even more snappy performance.

While I was at it, also enabled lz4 compression for the f2fs filesystem. That's important, as planning to investigate moving the working-partition from ext4 to f2fs. The latter is named "Flash Friendly Filesystem" -- three "F" characters, which lead the creator to the "f2fs" acronym. Interesting that he/she didn't go for "fffs"!

There was another post in the forum, by peebee, informing that the developer of aufs has released a new version for the 5.15.36 kernel. As I have compiled the 5.15.39 kernel, I had to update the aufs patch. Forum post:

https://forum.puppylinux.com/viewtopic.php?p=57044#p57044

For the record, here is how I downloaded and created the source tarball of aufs:

# git clone https://github.com/sfjro/aufs5-standalone.git aufs-aufs5-standalone
# cd aufs-aufs5-standalone/
# git branch -a
# git checkout remotes/origin/aufs5.15.36
# cd ..
# mkdir aufs5-5.15.36-20220513
# cp -a aufs-aufs5-standalone/* aufs5-5.15.36-20220513/
# dir2tgz aufs5-5.15.36-20220513/

This tarball was then used in the kernel build source, patches and scripts, uploaded here:

https://distro.ibiblio.org/easyos/source/kernel/5.15.x/5.15.39-20220513/

The build script exposed a problem. After completing the compile, "make headers_install" failed. I was surprised that this runs 'rsync', which does not work as a library is missing, 'libxxhash.o.0'.

The way that you can confirm this, is to run this in a terminal:

# ldd /usr/bin/rsync

Then, to find the package that has this missing library file, go to packages.debian.org

I ran the package manager and installed the missing package, 'libxxhash0', and did the entire kernel compile again. This time. success.

This leads to an important point: if you have installed Easy Bookworm to a USB stick, and when a new release comes out, the "udpate" icon on the desktop won't work, as it uses rsync. So, install 'libxxhash0' and you will be ready to update.    

Tags: easy