Odroid N2+, freezes after some time with VNC and Firefox

Platform: Odroid N2+ with 4GB ram

Short description:
I opted to install Dietpi with Mate desktop. I also installed TigerVNC Server. Computers on the local LAN can access this device via their VNC clients such as TIghtVNC etc. This device is left on and connected 24/7, without a video monitor connected. Dietpi comes with Firefox 78.15.0esr(64-bit). When Firefox is left running, at some point in time, the Odroid N2+ stops responding and without notice. The only way to recover is to do a cold boot.

Detail:
I have tested this multiple times, Firefox appears to be the point of failure. To be very clear, Firefox might be left running with a basic web page, no extra memory is being consumed that I can see. Leaving a terminal open running htop will never crash the device, but leaving Firefox running always does. Is there some way of determining in a log file why this happens? I do not want to destroy the sdcard by these sudden cold reboots required. Although I might try Chromium, I prefer FireFox as Noscript and uBlock are critical for me.

I have stress tested the device for over 12 hours and it does not fail! But Firefox does cause it to lock up and die when left running. To specify again, the device is being run as a VNC server on a LAN. I do not know if this problem is specific to this version of Firefox and I cannot see that there is any method in Dietpi to install a different/newer version of Firefox to see if this problem persists.

If somebody can give me some direction here that would be of great help.

Thanks!

There is no specific Firefox version on DietPi. It is the default version provided by Debian repository via apt packages. The version installed should be latest available.

Probably you can try starting Firefox from terminal emulator to track STDOUT/STDERR output, though when it crashes I guess you do not see the console on VNC client anymore? Probably it works to redirect output to a file instead:

firefox &> firefox.log

Also system logs may reveal the issue. They need to be made persistent, either by enabling full logging via dietpi-software (then checking /var/log/syslog and probably /var/log/kern.log) or uninstalling RAMlog and making system journal persistent:

dietpi-software uninstall 103
reboot
# after reboot
mkdir /var/log/journal
systemctl restart systemd-journald
# after crash
journalctl

Probably you can try starting Firefox from terminal emulator to track STDOUT/STDERR output, though when it crashes I guess you do not see the console on VNC client anymore? Probably it works to redirect output to a file instead:

firefox &> firefox.log

Also system logs may reveal the issue. They need to be made persistent, either by enabling full logging via dietpi-software (then checking /var/log/syslog and probably /var/log/kern.log) or uninstalling RAMlog and making system journal persistent:

dietpi-software uninstall 103
reboot
# after reboot
mkdir /var/log/journal
systemctl restart systemd-journald
# after crash
journalctl

Are you suggesting here that I uninstall Firefox from dietpi-software, and then re-install Firefox via apt-get install Firefox instead?

That I will therefore through this method install the latest version which is 95+(as of this writing)?

Thanks!

No I don’t suggest that. It’s exactly the opposite. The version installed by DietPi is the same as you would install via apt. Because this is what DietPi does. We install the version from apt repository already. It’s exactly the same.

So thus you are suggesting that uninstalling via dietpi-software and then re-install Firefox via dietpi-software will install the latest Firefox (ver 95+)? Sorry this is not clear to me. Could you please be explicit as to how you would upgrade Firefox via the cmdline?

Thanks!

Firefox is an apt package. If there would be an update, it would be installed via

apt update && apt upgrade

But I doubt that there would be any. Where do you believe that there is an update available?

Ahh…that makes more sense to me! I am writing this on another Odroid N2+ which is not based on Dietpi, it is Ubuntu 18.04.5 LTS aarch64, and yes, Firefox has been “automagically” updating itself as per Mozilla edict for some time now. I think what you are saying is that the Dietpi repositories are “stuck” at Firefox 78.15.0esr(64-bit), at least that was the version that was installed by the Dietpi package (7.8-7.9?) back in December 2021.

Unlike the x86 Linux setups, where I can download directly from Mozilla the latest version of Firefox and install it in a separate directory, I have not found that same facility with ARM distributions. Firefox 78.15.0esr(64-bit) is esr, meaning no more upgrades, at least as far as versions are concerned, right?

Thanks!

DietPi don’t have an own repository. We use the official Debian or Raspbian repository. We don’t have any influence on the version provided. Current version on Buster and Bullseye seems to be 78.15.0esr-1. The next version 91.5.0esr-1 is available on Debian Bookworm.

https://packages.debian.org/search?suite=all&arch=any&searchon=names&keywords=firefox-esr

But I have checked on my RPI4B 64bit and within bullseye-security repository, 91.5.0esr-1 is available already.

What OS version your a running on?

cat /etc/os-release
apt show firefox-esr

My suggestion was to enable persistent system logging by uninstalling DietPi-RAMlog (software ID 103) and making system/journal lops persistent (mkdir /var/log/journal). So you can check the system logs from before the crash.



cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"



apt show firefox-esr
Package: firefox-esr
Version: 78.15.0esr-1~deb10u1
Priority: optional
Section: web
Maintainer: Maintainers of Mozilla-related packages <team+pkg-mozilla@tracker.debian.org>
Installed-Size: 199 MB
Provides: gnome-www-browser, www-browser
Depends: libatk1.0-0 (>= 1.12.4), libc6 (>= 2.28), libcairo-gobject2 (>= 1.10.0), libcairo2 (>= 1.10.0), libdbus-1-3 (>= 1.9.14), libdbus-glib-1-2 (>= 0.78), libevent-2.1-6 (>= 2.1.8-stable), libffi6 (>= 3.2), libfontconfig1 (>= 2.12.6), libfreetype6 (>= 2.3.5), libgcc1 (>= 1:4.2), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.30.0), libgtk-3-0 (>= 3.0.0), libpango-1.0-0 (>= 1.14.0), libstdc++6 (>= 6), libx11-6, libx11-xcb1, libxcb-shm0, libxcb1, libxcomposite1 (>= 1:0.3-1), libxdamage1 (>= 1:1.1), libxext6, libxfixes3, libxrender1, zlib1g (>= 1:1.2.11.dfsg), fontconfig, procps, debianutils (>= 1.16)
Recommends: libavcodec58 | libavcodec-extra58 | libavcodec57 | libavcodec-extra57 | libavcodec56 | libavcodec-extra56 | libavcodec55 | libavcodec-extra55 | libavcodec54 | libavcodec-extra54 | libavcodec53 | libavcodec-extra53
Suggests: fonts-stix | otf-stix, fonts-lmodern, libgssapi-krb5-2 | libkrb53, libcanberra0, libgtk2.0-0, pulseaudio
Conflicts: iceweasel (<< 45)
Breaks: xul-ext-torbutton
Download-Size: 52.1 MB
APT-Manual-Installed: yes
APT-Sources: https://deb.debian.org/debian-security buster/updates/main arm64 Packages
Description: Mozilla Firefox web browser - Extended Support Release (ESR)

You are running Debian Buster still. There, no other version of Firefox is available.

You could try the Odroid N2 Bullseye image https://dietpi.com/downloads/images/DietPi_OdroidN2-ARMv8-Bullseye.7z
Or as an alternative, do an in-place upgrade to Bullseye https://dietpi.com/blog/?p=811

After a few weeks of 24/7 testing, it seems that the upgrade to v 8 of dietpi “Buster”, through the ssh console solved this problem!

I will consider “Bullseye” soon, when “forced” to. Rather conservative person here! I would hate to re-customize my whole setup again, which is just a few months old. Fingers crossed here, seems to be solid now.

Thanks for all your help.

Bullseye has been released summer 2021 and is used on 2/3 of all of our devices (statistics) https://dietpi.com/survey/#distro

As well our upgrade guide has been checked by a couple of thousand people.

Don’t get me wrong, you are fine to stay on Buster for the next 12 month before upcoming Debian version Bookworm will be released.

If applicable, we have a new Odroid N2 image ready for testing: https://dietpi.com/downloads/images/testing/

It is based on Linux 5.10 by Armbian with modern U-Boot etc, built competely from scratch via debootstrap.

So far I got only positive reports, though some special features like CEC may not work.

Sadly the kernel cannot be upgraded on the old image as the new bootloader expects a single ext4 partition image, different boot configuration files etc.

Apologies for may mix things but I can create new post. Feel free to edit move.
1)What VNC did you installed I have realVnc, but it look like it is not available in Diet-Pi for Odroid N2+ for Buster and I got an armV7 version.

2)I can not see the new image for testing for ODroid N2+ armv8 https://dietpi.com/downloads/images/testing/
So I undestand this is the new image. https://dietpi.com/downloads/images/DietPi_OdroidN2-ARMv8-Bullseye.7z.
Does this new version contains realVNC working over V8?

On DietPi, RealVNC is available on Raspberry Pi device only. On all other device we have it disabled because it require a license to be able to work. Means, you would need to install it manually on Non-RPi SBC yourself.

The new image has been moved to stable downloads already, so your second link is correct.

RealVPC is not free, also not free-in-beer. Only the RPi Foundation has a certain agreement to provide a pre-licensed package via their own APT repository. We hence cannot provide it on non-RPi systems, at least not functional OOTB with our VNC startup service and options.

For x86 systems you could download a package from RealVNC directly: https://www.realvnc.com/en/connect/download/vnc/linux/
But it won’t allow any remote connection until you add a subscription key and it is not available for non-RPi ARM SBCs.

I tested both intensively, RealVNC and the entirely FLOSS and free-in-beer TigerVNC, and I cannot see any benefit RealVNC offers, aside of when using the additional VNC® Connect subscription (as well required on RPi then) to enable ondemand virtual desktop spawning. Otherwise, just use TigerVNC.

Hi MichaIng
Thanks for your reply and explain about RealVnc agreement
$> dietpi-software list | grep vnc
ID 120 | =0 | RealVNC Server: desktop for remote connection | +desktop DISABLED for Odroid N2 (aarch64) | https://dietpi.com/docs/software/remote_desktop/#realv

I was testing VNC. But as far as I know and let me know if I am wrong.

  • TigerVNC has no user password encrypt. In theory, you can put it behind ssh port but I was not be able to do it.
  • TigertVNC needs an IP and port open. It means if your server is behind dynamic IP. you can have more problems to connect
  • Yes I have ducks to map my dynamic IP to a domain, but the dns propagation could take time. And it is another point of failure.