Dashboards: ODroid N2L & KDE Wayland

9 januari 2024

It's been a while since I last experimented with an ODroid SBC, so I thought it was time to write a small article about a relatively new updated ODroid; the N2L. This time, we're going to set up a Firefox browser in tab rotation mode, connected to a TV, to display various dashboards from Grafana, Sentry & Gitlab Boards. Dashboarding is a fairly common use case for an SBC. This dashboarding SBC runs on KDE Plasma and Wayland, using the latest open source Panfrost drivers for the Mali G52 GPU.

Here is the shopping list again. I ordered most of the parts from a Dutch supplier, except for the case, which had to be sent from Sweden:

  • N2L Board - Check it out; it is fast, small and cheap
  • Wifi module - Bluetooth and Wi-Fi
  • 64 GB eMMC - eMMC storage is faster than SD cards
  • 12V/2A Power - Perhaps you already have one; I did not
  • eMMC writer - Used to connect eMMC to a computer via USB for flashing purposes
  • ODroid casing - The KKSB Odroid N2L case boasts an excellent design

After receiving the ordered parts, it's time to install the software! As the AMLogic chipset has not been mainlined yet, a custom kernel is required to utilize the hardware acceleration with the Mali G52 & Panfrost Mesa drivers. Luckily, a recent test version of Ubuntu is available, which allows us to run KDE Plasma on Wayland.

wget https://www.odroid.in/ubuntu_22.04lts/testing/n2l/ubuntu-22.04-6.1-minimal-odroid-n2l-20230418.img.xz
unxz ubuntu-22.04-6.1-minimal-odroid-n2l-20230418.img.xz
sda           8:0    1     0B  0 disk  
sdb           8:16   1  58,2G  0 disk  
odroid 3
odroid 4
  • Connect the eMMC writer to the eMMC memory card and ensure that you are targeting the correct drive when using dd. It is important to note that dd can be destructive if used incorrectly.
sudo dd if=ubuntu-22.04-6.1-minimal-odroid-n2l-20230418.img of=/dev/sdb bs=1M conv=fsync

Without a properly functioning eMMC, the unit will not turn on. This will be indicated by the absence of LED lights and fan movement.

  • Insert the formatted eMMC card back into the N2L SBC
  • Reassemble the case back and connect the ODroid Wi-Fi dongle
  • To power up the ODroid, connect a USB keyboard.
  • Use the default credentials to log in: root/odroid
  • Connect to a Wi-Fi network:
nmcli d wifi list
nmcli d wifi connect  password 
systemctl enable ssh --now
ip a  # found out the SBC ip & continue on a more comfortable machine using ssh
ssh root@192.168.x.x
  • To ensure optimal performance, it is recommended to install and update both KDE Plasma and the Mesa video driver from a separate PPA. Please note that the latest versions of both are required.
add-apt-repository ppa:kubuntu-ppa/backports-extra  # kde 5.27
add-apt-repository ppa:kisak/kisak-mesa  # mesa 23.1.9
apt update
apt upgrade
apt install kde-standard plasma-workspace-wayland mesa-utils  # hit enter when asked about default.pa
systemctl set-default multi-user  # (!) disable auto graphics boot until we're sure everything works 
mali  # select <4> panfrost; this is the open-source graphics driver for Mali chipsets
useradd -m myuser  # add a desktop user with a home directory
usermod -a -G video myuser
passwd myuser
bluetoothctl  # connect a bluetooth mouse, so we can mouse
scan on  # set the mouse in scanning mode
connect AA:BB:CC:DD:EE::FF
reboot  # login as root again
systemctl enable sddm --now  # Select Plasma (Wayland) at the top and login with myuser
  • If KDE loads successfully, navigate to the Start menu, locate Display Configuration, and adjust the resolution to either 2560x1440 or 1080p. Ensure that the scale is set to 100%.
  • Perform additional checks and install necessary software by opening the console (Konsole).
# The graphical driver (Mesa) should be using hardware acceleration (Mali-G52 / Panfrost), instead of # llvmpipe (an advanced software renderer), otherwise the performance of the desktop won't be optimal: 
glxinfo|grep Device
su root  # yes, odroid is still the password :)
apt install zsh vim
# Konsole > Settings > Create New Profile /bin/zsh + Default profile
# Install oh-my-zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# Install Firefox, but we don't want the snap version
add-apt-repository ppa:mozillateam/ppa

echo '
Package: *
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 1001
' | sudo tee /etc/apt/preferences.d/mozilla-firefox

echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox

apt install firefox
  • Install the Tab Rotator extension on Firefox
    Ensure that the first pinned tab is removed as the extension cannot handle it properly.
  • Open the tabs you wish to rotate in Firefox and begin rotating the dashboards in full-screen mode.

The ODroid N2L is a powerful device capable of running a full hardware-accelerated Wayland desktop environment with ease. Although I have not yet tested hardware video encoding/decoding with VDPAU/VA, the CPU is already capable of playing small YouTube videos. Audio over HDMI functions well. For additional information and support, be sure to check out the ODroid forum.

Copyright © 2024 Bitstillery - All Rights Reserved