site  contact  subhomenews

EasyOS Dunfell 2.6 released for the Raspberry Pi4

January 19, 2021 — BarryK

EasyOS, compiled for an aarch64 (64-bit ARM) CPU, with 5.10.4 Linux kernel, compiled entirely from source in a port of the Dunfell release of OpenEmbedded, is available for the Raspberry Pi4. Version number is 2.6, but this is the first release for the Pi.

EasyOS for the Pi4 might be a bit beta-quality in places, but overall quite a nice experience. The "beta bits" I will of course keep working on -- as there is an "update" icon on the desktop, it will be easy-peasy to update.

Write the image to a good-quality and fast microSD-card (Class 10) or USB-stick (example: SanDisk Ultra), at least 8GB so that you have plenty of space for anything in the future. Though, a minimum of 2GB will work. As to the host board, even a Pi3B with 1GB RAM will work, or rather "just work" -- I recommend at least a Pi4 with 2GB RAM -- I have the 8GB RAM board.

Get it from here, in English, French (fr), German (de) and two Norwegian builds (nb and nn):

http://distro.ibiblio.org/easyos/aarch64/releases/dunfell/rpi4/2.6/

If you don't know how to write an image file to a Flash drive, see here:

https://easyos.org/install/how-to-write-easyos-to-a-flash-drive.html

Here are the release notes:

http://distro.ibiblio.org/easyos/aarch64/releases/dunfell/rpi4/2.6/release-notes-2.6.htm

Extra points to add to those release notes:

  1. EasyOS Dunfell-series was compiled entirely from source packages, in a port of OpenEmbedded. Hence, the online package repository is small. If you want access to a bigger package repository, click on "sfsget" and install RasPup.
  2. If you want to compile source code, click on "sfsget" and install the 'devx'.

RasPup is a Linux distribution, in the Puppy Linux family, for the Pi, from Pi0 to Pi4. It is 'armhf', meaning 32-bit, and will run in a container in EasyOS, giving access to the Debian DEB repository. Note though, some packages might not work in the very secure restricted container environment.

I have created a somewhat developer-oriented page to show how I converted RasPup to run in a container:

https://easyos.org/dev/how-to-run-a-linux-distribution-in-a-container.html

In fact, you will find it very interesting to browse through recent blog posts that show how EasyOS on the Pi has evolved:

Feedback welcome at the forum:

https://easyos.org/forum/

Have fun!

EDIT:
First bug report! See forum thread:

https://easyos.org/forum/showthread.php?tid=321

It is a minor bug, the handling of key combinations inside a container. You can fix it manually, before running a container. Open this file, /usr/local/easy_containers/ec-chroot, in the Geany text editor, and cut out the bold red highlighted text, line 196:

   #20210116 rufwoof: add -no-host-grab  ref: https://easyos.org/forum/showthread.php?tid=321 ref2: https://xorg-devel.x.narkive.com/ixVv99dS/patch-xephyr-option-to-disable-grabbing-the-host
#Xephyr :${CNTxephyr} -fullscreen -title "${EXE}" -name "Xephyr${CNTxephyr}" -dpi "$DPI" -nolisten tcp &
Xephyr :${CNTxephyr} -fullscreen -no-host-grab -title "${EXE}" -name "Xephyr${CNTxephyr}" -dpi "$DPI" -nolisten tcp &

Save the file, and you have restored key behaviour to how it was before.   

Tags: easy

EasyOS works on Raspberry Pi 3B with 1GB RAM

January 17, 2021 — BarryK

Well I'll be a monkey's uncle, I have created a better product than I realised. I plugged the EasyOS microSD card into my old Pi model 3B, with only 1GB RAM, and it booted, and everything works.

Well, everything after only a brief test. Connected to Internet automatically, because wifi was already setup when running on the Pi4. Was able to surf the Internet. I see the bluetooth applet in the tray, excellent, audio applet indicates working audio.

The only noticeable downside is very slow. Still quite usable though. SM started surprisingly fast.

At bootup, the 'init' script in the initrd sees that there isn't much RAM, so doesn't copy 'easy.sfs' to RAM, just mounts it where it is, on the SD-card. So that would be a major reason for slowness.

But, enough RAM is available for the desktop to load and SM to run -- though haven't tried to stress-rest with multiple tabs.

This is good news, so I can now specify this as the minimum Pi on which the new 64-bit Dunfell-series EasyOS will work.

Before I post this blog report, gotta try SM on YouTube... not surprisingly, 1080p is pretty broken up, but 720p seems OK, both video and sound.   

Tags: easy

Norwegian language PETs for EasyOS

January 17, 2021 — BarryK

Jostein Skjelstad has created two "langpack" PETs for EasyOS, 'langpack_nb-20210108.pet' and 'langpack_nn-20210108.pet'.

Jostein is to be congratulated for this, as it is a huge amount of work creating a langpack from scratch, as Lutz (de langpack) and esmourguit (fr langpack) will attest. Though, once created, keeping it updated is easier.

At first I was confused, why not just create one "no" langpack? But a bit of online reading showed why not:

There are actually two official Norwegian written languages: Norwegian bokmål (nb, used by ~85%) and Norwegian nynorsk (nn, 15%). They're mutually intelligible.

If the variant isn't specified (just Norwegian, "no"), it's going to be bokmål since it's the dominant variant. So really, nb and no are identical languages.

https://dev.ckeditor.com/ticket/10135

More information here:

https://en.wikipedia.org/wiki/Norwegian_language

...seems confusing! But they seem to be getting along OK with the multitude of languages and dialects. I think that I read somewhere that most Norwegians can speak and read English.

So, I will build two separate EasyOS image files, for 'nb' and for 'nn'.

Note that the '3buildeasydistro' script in woofQ casts a wide net looking for translations other than those in the langpack, so what we end up with in the final build will have more translations in it. An example, the script looks online for a SeaMonkey translation for the required language, and downloads it.   

Tags: easy

How to run any Linux distribution in a container

January 17, 2021 — BarryK

I have written a new tutorial:

https://easyos.org/dev/how-to-run-a-linux-distribution-in-a-container.html

It is a case-study, running EasyOS on the Raspberry Pi4, and I converted RasPup to run in a container. Works great, snappy performance.

I have developed EasyOS for the Pi4, but probably will also run on the Pi3, though will need 4GB of RAM, 2GB might work but there will be issues. 64-bit and 5.10.4 kernel.

There are a few things to fix, but expect to release it soon, then you can click on "sfsget" and install RasPup! 

Tags: easy

Current status of EasyOS on the Pi4

January 15, 2021 — BarryK

EasyOS 64-bit with 5.10.4+ kernel is running nicely on my Raspberry Pi4. There are, however, some issues that are stopping me from releasing it:

  1. Bluetooth not working
  2. Qsync (time from Internet) not working properly
  3. Sometimes plug in USB-stick, kernel does not recognize it
  4. SeaMonkey sometimes hangs at youtube.com

Regarding playing YouTube videos, 1080p plays nicely, no stuttering and sound is in-sync. Full-screen works. Also tested inside the Dunfell desktop in a container, 1080p still plays nicely.

Running 'seamonkey' from a terminal, there is an error message when play a video:

[vp9] The deprecated avcodec_decode_* API cannot return all the frames for this decoder. Some frames will be dropped. Update your code to the new decoding API to fix this.

The videos seem to play OK though.

Regarding the hanging, SM seems to be waiting on a response from youtube.com, so I don't know if that is a problem with youtube.com or the network interface.

Regarding point-3, sometimes just replugging the USB-stick is sufficient to get it recognized. But sometimes replugging multiple times still does not work.

Point-1, I need to do more research. Took a punt on this:

https://gist.github.com/shenghaoyang/92e6dd65b9f0cc736a419f3e640663c2

...supposed to make the kernel recognize the bluetooth interface, but it made no difference for me.

Here is the status of the official Raspbian (now Raspberry Pi OS) 64-bit:

https://www.raspberrypi.org/forums/viewtopic.php?t=275370

EDIT:
Interesting, I removed "elevator=deadline" from 'cmdline.txt', and now SM is working smoothly, no hanging or pausing at youtube.com. Coincidence?

EDIT:
Got it! Reading online about bluetooth support in the Pi is misleading, as it has recently changed. See this commit to the kernel:

https://github.com/raspberrypi/linux/commit/666ffde59c1dd47f2fe30b7ee39b31cec2bbd57d

So, I added these lines to 'config.txt':

#bluetooth
dtparam=krnbt=on
dtparam=krnbt_baudrate=921600

Yes, now have the bluetooth tray applet, and /sys/class/bluetooth/hci0 exists. Haven't tried it yet. 

Tags: easy

SeaMonkey 2.53.5.1 compiled on Raspberry Pi4

January 13, 2021 — BarryK

EasyOS is running so nicely on the Pi4. There were issues, some resolved, some still to tackle. The speed problems have been fixed, and we are now "cooking with gas". Last couple of posts:

https://bkhome.org/news/202101/easyos-using-vc4-graphics-acceleration-on-pi4.html

https://bkhome.org/news/202101/pi4-slow-usb-drive-fixed.html

Compiling SeaMonkey, now that is a challenge. I tried yesterday, and the 'nss' module failed. It was configured to use the internal 'nss' and 'nspr' and not the system libraries, as the latter were too old. So last night I did a complete recompile in OE, with later versions of 'nspr' and 'nss', and today compiled SM to use these system libraries ...and success.

I do come across posts on forums, people asking how to compile SM on an ARM board, so will post some notes here...

I have compiled with EasyOS 64-bit (armv8-a+crc) running on a Raspberry Pi 4, with 8GB RAM. The source is on a 500GB SSD, plugged in via USB3, and using the standard official Raspberry Pi 3A power supply. The SSD has a 32GB swap partition.

EasyOS for the Pi4 is currently under development and not yet released, but expected to be very soon.

EasyOS, like Puppy Linux, has SFS "mega packages", one of which is the "devx" SFS, named something like "devx-<version>-<architecture>.sfs". These are very easy to download and install -- in the case of EasyOS, there is an icon on the desktop labelled "sfsget". What the 'devx' SFS does is provide everything needed for compiling and code development.

So, install 'devx' and you are ready to compile. SeaMonkey, though, needs a couple more items -- python v2.7.x and rust v1.47.0.

EasyOS only has python3, but python 2.7.18 is available as a PET package -- click on "petget" on the desktop to install it.

Install rust like this:

# curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

It will ask if you want a default install or custom, choose custom. Then when it asks for version, type in "1.47.0". At the time of writing, the latest is 1.49.0, but SM will choke on that, it must have 1.47.0.

Expand the SM source, and copy this 'mozconfig' file into it:

#mk_add_options MOZ_MAKE_FLAGS='-j3'
mk_add_options MOZ_CO_PROJECT=suite
ac_add_options --enable-application=suite
ac_add_options --enable-system-hunspell
ac_add_options --prefix=/usr
ac_add_options --host=aarch64-unknown-linux-gnu
ac_add_options --disable-dbus
ac_add_options --disable-accessibility
ac_add_options --with-system-bz2
ac_add_options --disable-updater
ac_add_options --disable-parental-controls
ac_add_options --enable-system-cairo
ac_add_options --enable-strip
ac_add_options --with-system-jpeg
ac_add_options --with-system-zlib
ac_add_options --disable-tests
ac_add_options --disable-crashreporter
ac_add_options --with-system-libvpx
ac_add_options --disable-necko-wifi
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-icu
ac_add_options --disable-pulseaudio
ac_add_options --enable-alsa
ac_add_options --enable-system-ffi
ac_add_options --with-pthreads
ac_add_options --enable-system-pixman
ac_add_options --disable-debug
ac_add_options --with-system-libevent
ac_add_options --enable-optimize='-O2'
ac_add_options --enable-ffmpeg
ac_add_options --disable-stylo
ac_add_options --disable-webrtc
ac_add_options --enable-printing
ac_add_options --disable-jack

Then off you go:

# export PATH="/root/.cargo/bin:${PATH}"
# export SHELL=/bin/sh
# export CC=gcc
# export CXX=g++
# make -f client.mk

I didn't time it, after a few hours I think, it completed. Install:

make -f client.mk install

You will find everything at /usr/lib/seamonkey, and symlink /usr/bin/seamonkey. Works great, except one very odd thing -- the IRC chat module isn't built. Have no idea why.  

Tags: easy

EasyOS using VC4 graphics acceleration on Pi4

January 13, 2021 — BarryK

I posted about very sluggish video rendering, that was fixed by commenting out a line in 'config.txt':

https://bkhome.org/news/202101/easyos-64-bit-running-faster-in-pi4.html

That line "dtoverlay=vc4-fkms-v3d" was the culprit. Xorg used the 'modesetting' driver, which in turn causes Xorg to render via mesa DRI software renderer, /usr/lob/dri/swrast_dri.so. Which accounts for the slowness.

Commenting-out that line in 'config.txt' causes Xorg to load the 'fbdev' (frame buffer) driver. This gave quite snappy desktop rendering, however it will fall down when rendering games and video.

The solution was to recompile 'mesa' with the 'vc4_dri.so' driver, which sits at /usr/lib/dri. I mentioned in a previous post that I had recompiled everything in OE for a generic aarch64 target CPU, armv8-a+crc. This compiled mesa without VC4 driver.

However, I had previously compiled in OE for a rpi4 target, and that has the driver. So, have created a PET just with that driver.

All that is required is to include /usr/lib/dri/vc4_dri.so in the build, and enable that line "dtoverlay=vc4-fkms-v3d" in 'config.txt', and hey presto, fast screen rendering. Tried glxgears, looks good. 

Tags: easy

Pi4 slow USB drive fixed

January 13, 2021 — BarryK

I have posted about extreme sluggishness of EasyOS on the Raspberry Pi4, and fixes:

https://bkhome.org/news/202101/easyos-64-bit-running-faster-in-pi4.html

Unfortunately, that is not the end of the story. Bootup is slow, the desktop drive icons are very slow to load, and other drive-related operations are very slow. A bit of online research on Pi forums revealed the cause -- "USB attached SCSI" (CONFIG_UAS) is enabled in the kernel.

UAS makes UAS-enabled SSDs go faster, however, it seems to be broken, even on some supposedly UAS-enabled SSDs. I do recall this issue, and EasyOS kernels for x86_64 PCs have CONFIG_UAS disabled.

I have recompiled the 5.10.4+ kernel for the Pi4, with these changes:

Device Drivers --> USB support
< > USB attached SCSI
General setup --> Preemption model
"Voluntary kernel preemption"
CPU power management --> CPU frequency scaling --> Default CPUFreq governor
"performance"

Yay, fast bootup, desktop drive icons appear immediately.

My SSD is a 500GB WD Blue SATA, which is pretty mainstream, the kind that many people would buy, so it is the best move to disable UAS. 

Here is the previous post about compiling the 5.10.4+ kernel for the Pi4. That time, I compiled on my Rock64 board, this latest compile was on the Pi4. Previous post:

https://bkhome.org/news/202101/kernel-5104-compiled-for-the-raspberry-pi4.html 

Tags: easy