Qsync fixed on the Pi4 and FF compiled
The Raspberry Pi4 does not have a hardware battery-backed clock,
so relies on getting the date and time from an Internet time server. In
EasyOS, Qsync is the utility that does that.
At first bootup, QuickSetup has a checkbox to enable getting time
from the Internet, which will launch Qsync. At first bootup on the Pi4,
if you are going to connect to Internet via wifi, not ethernet, then
there won't be an immediate Internet access. No problem, Qsync will run
once the Internet connection is established.
Qsync will run just once at bootup and after Internet connection.
That's fine, but I couldn't understand why it would suddenly stop
working. Then discovered that /etc/init.d/qsync was getting its
executable-flag cleared.
Ah ha, then I knew where things were going wrong. I was adding the
'devx' SFS layer, and /sbin/fixlayers in the initrd does a lot of sanity
checking whenever layers change. What it does, amongst other things, is
check that the scripts in /etc/init.d are the same as those in easy.sfs
(the bottom layer).
Anyway, to cut the story short, /etc/init.d/qsync in the top
read-write layer was getting deleted, allowing the one in easy.sfs to
appear on top, and that one does not have the executable-flag set.
Fixed it. Won't try to explain the logic, an interested developer can
open up the initrd and examine the code in /sbin/fixlayers. That will
be the next release of Easy of course, expected to be version 2.6.1. Not
just for the Pi4, have to bring out a Dunfell-series 2.6.x for the
x86_64 PC also.
Very pleased how Easy is performing on the Pi4, now a very snappy
performer. Still can only play 1080p videos, but that is OK for now.
Today had a go at compiling SeaMonkey 2.53.6 on the Pi4. It objected to these lines in file 'mozconfig':
mk_add_options MOZ_CO_PROJECT=suite
ac_add_options --enable-application=suite
So took them out. And hey, guess what, it created Firefox. Yep, real
Firefox. Well it is the same Mozilla code-base. Firefox latest version
is, I think, 86. However, Wikipedia explains that SM is currently built
from the Firefox version 60 ESR (Extended Support Release):
https://en.wikipedia.org/wiki/SeaMonkey
Tags: easy
Easy Version Control rollback device-tree files
EasyOS on the PC has not been concerned with device-tree files,
but they are a big thing on the ARM boards. They are in the boot
partition, and are read at bootup. Information:
https://www.kernel.org/doc/html/latest/devicetree/usage-model.html
It is still a mystery to me how they work, but they are needed by the
Raspberry Pi, and, as I discovered, getting the latest is important.
However, with Easy Version Control, if we roll back to an older
version of Easy, we should really roll back the device-tree also. Ditto
when roll forward.
The current device-tree files are in /boot/device-tree, which you can
view in a running Easy. These are actually located inside easy.sfs. So,
if roll back or forward to a different easy.sfs, then extract the
device-tree files out of easy.sfs and copy them to the boot partition.
That is what Easy Version Control now does. The modified scripts are
/usr/local/easy_version/easy-update and easy-version-control.
If you are running Easy 2.6, the "update" icon on the desktop will
run /usr/local/easy_version/easy-update, which does not have this
device-tree awareness, so will not copy the latest device-tree files to
the boot-partition.
In that case, after upgrading to version 2.6.1, manually copy the files
from /boot/device-tree to the boot-partition, replacing the old ones.
This manual step is only for 2.6. After that, every time you click
"update", the device-tree files will update in the boot-partition
automatically.
Tags: easy
SeaMonkey on Pi4 no longer freezes
In the release notes for EasyOS version 2.6 on the Raspberry Pi4, I reported that SeaMonkey would often freeze, temporarily:
http://distro.ibiblio.org/easyos/aarch64/releases/dunfell/rpi4/2.6/release-notes-2.6.htm
The kernel offers "mq-deadline", "kyber" or "none" IO schedulers, and the default is "mq-deadline". I changed to "kyber":
echo kyber > /sys/block/${WKG_DRV}/queue/scheduler
Ans now SM is behaving nicely, no appreciable freezing. I am testing
version 2.6.1, and playing around on youtube.com do get a segmentation
fault sometimes. I can live with that, better than freezing. Running SM
2.53.5.1.
One other thing: The SM cache is in /root/.mozilla, not happy with
this, as always trying to reduce writes to the drive. So have changed it
to /tmp. SM creates a folder named /tmp/Cache2. In EasyOS, /tmp is a
tmpfs, in RAM. The downside of this is the cache will be lost at
shutdown. Probably an upside is a possible security benefit.
Tags: easy
Kernel 5.10.9 compiled for Pi4
EasyOS for the Raspberry Pi4, version 2.6, has the 5.10.4 Linux
kernel. I have now compiled the 5.10.9 kernel, that will be used in the
next release of Easy.
Kernel source, patches and build script are here:
http://distro.ibiblio.org/easyos/source/kernel/5.10.9-rpi4/
Overnight also did a complete recompile in OpenEmbedded, with changes as reported yesterday:
https://bkhome.org/news/202101/fixed-compile-of-samba-without-krb5-in-oe.html
Also bumped ffmpeg to 4.3.1.
Tags: easy
Tweaks for OpenEmbedded Dunfell
I am currently working on changes to my fork of OE, Dunfell release. Working through a to-do list, here is progress so far...
When I compiled LibreOffice recently on the Pi4, was unable to use
the 'boost', 'harfbuzz' and 'neon' system packages, had to use internal
versions. This is duplication, means that the final LibreOffice binary
package will be bigger that is could be.
- Boost was missing headers for the locale library. Fixed.
- Neon version was too old. Have bumped 0.30.2 to 0.31.2.
- Harfbuzz was missing graphite support. Fixed.
After working through the to-do list, I will do a complete recompile
in OE, and want to bump the "revision number" of all packages by one.
For example, a package is currently 'harfbuzz-2.6.4-r0-aarch64.tar.xz',
and for the upcoming rebuild, want it to become
'harfbuzz-2.6.4-r1-aarch64.tar.xz'.
The basic reason for wanting this, is it makes rsync with the package
repository at ibiblio.org simpler. Plus, the distinction is helpful
locally.
I couldn't find anything suitable in the official OE/Yocto docs, nor
in forum discussion, so implemented my own simple method. In the
'local.conf' file, I have added these two lines:
#20210121 radical, this globally changes the base revision from r0...
PR = "r1"
#.bbappend recipes can use this to bump PR. ex: PR = "r${@int(PR_NUM) + 1}"
PR_NUM = "1"
In a .bbappend file, where I had previously hard-coded a revision number, have changed to a dynamic calculation. For example:
#PR = "r1"
PR = "r${@int(PR_NUM) + 1}"
...it was previously "r1", now it will be "1 + 1", that is, "r2", so will get a package name bumped one-up from before.
Have added 'tigervnc' to the package list -- that one is for rufwoof.
Lot more on the to-do list, will get onto it soon. Right now, going for a walk then lunch.
EDIT:
'disktype' is a great little utility, but the official release is stuck
at version 9 for many years. Consequently, it does not support some
filesystems. However, over the years people have added patches. In OE I
had just one patch, for ext4, that I got from Pardus Linux, and it was
good at the time, however no longer works.
Have updated OE with a collection of patches from here:
https://packages.debian.org/sid/disktype
ext4 detection now works, and now have f2fs, exfat and btrfs detection.
Tags: easy
Fix for 2createpackages in woofQ
WoofQ is the build system for EasyOS. It has scripts '0setup',
'1download', '2createpackages' and '3buildeasydistro', that are run in
that order. The script '2createpackages' splits each input package into
_EXE, _DEV, _DOC and _NLS components.
Recently, when compiling LibreOffice in EasyOS on the Pi4, the
configure step reported that the system boost libraries cannot be used,
as some header files were missing. So, I had to use the internal boost,
which does make the final LibreOffice PET bigger than it could have
been.
Today, found the culprit. '2createpackages' places files with path
"*/locale/*", with some conditions, into _NLS. However, boost has
header files in usr/include/boost/locale, and '2createpackages' was
placing these into _NLS, whereas they should go into _EXE. Fixed.
Tags: easy
Updates for Easy Frugal Installation web page
I received an email from Ben, that there is a broken link on this page:
https://easyos.org/install/easy-frugal-installation.html
The page is now fixed, and I went through it, inserting lots of
updates. That page was originally written in March, 2019, lots of "water
under the bridge" since then!
Tags: easy