site  contact  subhomenews

Qsync fixed on the Pi4 and FF compiled

January 25, 2021 — BarryK

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

That's good, I will convert Firefox into an SFS and make it available for the next release of the Pi4.  But the question now, is how to get the source to compile as SeaMonkey?  

Tags: easy

Easy Version Control rollback device-tree files

January 25, 2021 — BarryK

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:

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

January 24, 2021 — BarryK

In the release notes for EasyOS version 2.6 on the Raspberry Pi4, I reported that SeaMonkey would often freeze, temporarily:

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 do get a segmentation fault sometimes. I can live with that, better than freezing. Running SM

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

January 23, 2021 — BarryK

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:

Overnight also did a complete recompile in OpenEmbedded, with changes as reported yesterday:

Also bumped ffmpeg to 4.3.1. 

Tags: easy

Tweaks for OpenEmbedded Dunfell

January 21, 2021 — BarryK

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.

  1. Boost was missing headers for the locale library. Fixed.
  2. Neon version was too old. Have bumped 0.30.2 to 0.31.2.
  3. 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 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}" 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.

'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:

ext4 detection now works, and now have f2fs, exfat and btrfs detection.   

Tags: easy

Fix for 2createpackages in woofQ

January 20, 2021 — BarryK

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. 

Every now and again, tweak something in woofQ and usually don't report it to the blog. '2createpackages' for example, previously had a small fix on 2020-04-02. 

Tags: easy

Updates for Easy Frugal Installation web page

January 19, 2021 — BarryK

I received an email from Ben, that there is a broken link on this page:

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