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 will run on KDE Plasma and Wayland, using the latest open source Panfrost drivers for the Mali G52 GPU.
First of all, 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 - The chipset included Bluetooth, but no Wifi. This module has been verified
- 64 GB eMMC - eMMC storage is faster than SD-cards
- 12V/2A Power - Maybe you already have one; I didn't
- eMMC writer - Used to connect eMMC through USB to a computer, in order to flash the drive
- ODroid casing - The Odroid N2L case from KKSB has a great design
After ordering and receiving the parts, it is time to get the software up and running! The AMLogic chipset hasn't been mainlined yet, so we need a custom kernel to take advantage of the hardware acceleration using the Mali G52 & Panfrost Mesa drivers. Fortunately, thanks to the hard work of many people, there is a relatively recent test version of Ubuntu available, that 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
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 1 0B 0 disk
sdb 8:16 1 58,2G 0 disk
- Plug in the eMMC writer with the eMMC memory card and make sure you targeting the correct drive when using dd. It is called "Disk Destroyer" for a reason...
sudo dd if=ubuntu-22.04-6.1-minimal-odroid-n2l-20230418.img of=/dev/sdb bs=1M conv=fsync
Please note that without an eMMC or with an incorrectly flashed eMMC, the unit will not switch on; no LEDS will flash and no fans will spin.
- Insert the formatted eMMC card back into the N2L SBC
- Reassemble the case back and connect the ODroid wifi dongle
- Connect a USB keyboard and power up the ODroid
- Login with the default credentials: root/odroid
- Connect to a wifi 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
- Install and update KDE Plasma and the video driver (Mesa) from a separate PPA; we need the latest and greatest of both:
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
pair AA:BB:CC:DD:EE:FF
connect AA:BB:CC:DD:EE::FF
quit
reboot # login as root again
systemctl enable sddm --now # Select Plasma (Wayland) at the top and login with myuser
- If KDE loads successfully, go to Start menu, find Display Configuration and set the resolution back to 2560x1440 or 1080p and make sure the scale is set to 100%
- Let's do some additional checks and add some additional software by opening a 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 for Firefox
Make sure you remove the first pinned tab; the extension can't handle it properly - Open the tabs you want to rotate in Firefox and start rotating the dashboards in full screen mode
The bottom line? The ODroid N2L is a nice, powerful device that can run a full hardware-accelerated Wayland desktop environment without too many problems. I haven't tried hardware video encoding/decoding with VDPAU/VA yet, but the CPU is already powerful enough to play small Youtube videos. Audio over HDMI works well. Be sure to check out the ODroid forum, which is a great source of information and support.