[Guide] openFyde - Khadas Edge 2 - the best option

openFyde/FydeOS is the best operative system to have on a single board computer like this one so hail to Khadas for bringing Fyde to us.

Installation process:

Via :raised_hands: oooooooooooooooooooooooooooooooooooooooooooooooooooUAU! :tropical_drink::beer:

Installation process is quite basic since Khadas has its own fancy ‘bios’ ooWoW!
All you need is to select openFyde to write into your system as it got officially listed by Khadas ! :beers: EnJoy! :penguin:

Crosh Container - Gentoo Linux

Please follow the guide https://faq.fydeos.com/en/getting-started/shell-access/ to enter the shell and be root. (Open Chromium - Ctrl Alt T - Type Shell, type sudo su) Do line by line don’t copy paste it all.

# openFyde fan will start automatically. However you have extra options:
# Chromium browser - ctrl alt t, shell, sudo su

Turn off type: echo power_allocator > /sys/class/thermal/thermal_zone0/policy
Turn on type: echo step_wise > /sys/class/thermal/thermal_zone0/policy
Nonstop type: echo fair_share > /sys/class/thermal/thermal_zone0/policy

# Set which method to stays always ctrl alt t, shell, sudo su
mount -o remount,rw /
sudo nano /etc/init/rock5-fan-control.conf
  echo **fair_share** > /sys/class/thermal/thermal_zone0/policy
Then press Ctrl+X, then Y and enter then sudo reboot

Android Container - Arch Hero

:tropical_drink::beer: openFyde Has Project ArcHero activated which mean that we can Install .apks Hurray! :raised_hands:

Now the good stuff about openFyde/FydeOS is that with ArcHero Android container we can play big time games from the app store:

  • Install apkpure, aptoide, uptodown, aurora store any store you like.
  • Install some some apks, xapk, apkm intallers like App Mirror, XAPK Installer, APK Installer.
    For big titles these installers are required. For general purpose… apkpure is literally enough for most things.

The fun of being able to play this is amazing.

(dont mind the video stuttering its just that… the video recording doesn’t do its justice it runs smooth).

That’s it all android issues resolved. You can now enjoy your hearthstone, diablo immortal, call of duty mobile etc… etc.

There is however only one last thing missing for perfection but not even google ChromeOS made this work yet:

  • There is no gamepad support yet for Android and Linux container yet.
    #arc-input-overlay-beta - can be turned on chrome://flags but what games supports it?
  • We have now gamepad support for Chromium Browser! (Works great on geforce now!)

Linux Container - There’s a few perks I wanna share here too!


Give the Penguin Crostini a NALA boost! - Activate the Linux on the system and do the following:

#Lets start by giving our terminal a boost with nala the apt replacement!
sudo apt update && sudo apt install git make python3-pip python3-apt python3-debian pandoc -y 
git clone https://gitlab.com/volian/nala.git
cd nala
sudo make install
sudo nala update && sudo nala upgrade -y 
#It will take forever after you finish make a linux backup nala will make installations way better

After this dont do sudo apt install anymore do sudo nala install instead ex: sudo nala install neofetch. The terminal behaviour will not just be pretty but it will do more tasks and correct issues as well giving you better debug feedback.

Pretty much anything debian works on this terminal. So now I’m gonna leave here some of the classic basic apps that every linux usually comes with.

Debian / XFCE minimal desktop - Optional stuff

It takes long to install and you might not need them skip this step if you want:

# Basic linux apps libre office pulse audio etc etc. - Optional
sudo nala update && sudo nala install task-xfce-desktop network-manager-gnome gparted pulseaudio pavucontrol pulseaudio-module-bluetooth gvfs gvfs-backends policykit-1 udisks2 catfish mousepad xarchiver gdebi gigolo v4l2loopback-dkms gedit g++ qtbase5-dev qttools5-dev-tools libqt5svg5-dev qttools5-dev libqt5dbus5 libqt5network5 libqt5core5a libqt5widgets5 libqt5gui5 libqt5svg5 python-setuptools python3-distutils -y && sudo nala upgrade -y && sudo nala autoremove
# Utilities gits makes curls etc - Important
sudo nala update && sudo nala install xfce4-terminal lshw git openssl ca-certificates squashfs-tools gcc-arm-linux-gnueabihf libc6-dev-armhf-cross coreutils ninja-build make cmake build-essential autoconf automake autopoint gettext autotools-dev cmake curl default-jre gawk gcc g++ cpp libflatbuffers-dev  gdc gperf libasound2-dev libass-dev libavahi-client-dev libavahi-common-dev libbluetooth-dev libbluray-dev libbz2-dev libcdio-dev libcec-dev libp8-platform-dev libcrossguid-dev libcurl4-openssl-dev libcwiid-dev libdbus-1-dev libegl1-mesa-dev libenca-dev libflac-dev libfontconfig-dev libfmt-dev libfreetype6-dev libfribidi-dev libfstrcmp-dev libgcrypt20-dev libgif-dev libgles2-mesa-dev libglew-dev libglu1-mesa-dev libgnutls28-dev libgpg-error-dev libgtest-dev libiso9660-dev libjpeg-dev liblcms2-dev liblirc-dev libltdl-dev liblzo2-dev libmicrohttpd-dev libnfs-dev libogg-dev libomxil-bellagio-dev libpcre3-dev libplist-dev libpng-dev libpulse-dev libshairplay-dev libsmbclient-dev libspdlog-dev libsqlite3-dev libssl-dev libtag1-dev libtiff-dev libtinyxml-dev libtool libudev-dev libunistring-dev libva-dev libvdpau-dev libvorbis-dev libxkbcommon-dev libxmu-dev libxrandr-dev libxslt1-dev libxt-dev waylandpp-dev wayland-protocols wipe lsb-release meson nasm ninja-build python3-dev python3-pil python3-minimal rapidjson-dev swig unzip uuid-dev zip zlib1g-dev libdav1d-dev libdrm-dev ccache libclang-dev libiso9660++-dev libcap-dev clang-tools clang-tidy libpipewire-0.3-dev libsndio-dev libmariadb-dev cppcheck -y && sudo nala upgrade -y && sudo nala autoremove
# Yes it will take a while.
sudo reboot

Replacing the penguin terminal from Debian with ArchLinux:

Cloud Gaming via Chromium Browser user-Agents bypass on GFN!

The way to do it its to open developer tools mode but not to detach it from the browser window.
In short you will have reload the page with the network condition for ChromeOS and as soon it opens without unsupported alert you can detach it to hide it from blocking the browser screen. But to do it with it detached it wont work.

If without widevine activated do this and refresh 2 times if it doesnt trigger on openFyde.

#Custom parameters:
--user-agent="Mozilla/5.0 (X11; Linux aarch64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ Safari/537.36" --accept-lang=en-US

You can now enjoy playing games on Geforce now with an huge quality on this tiny single board computer like a champ! Finally.

Steam Installation Tutorial

Installing Dependencies

First we need to install some dependencies that are required by Steam. Use the following lines:

sudo dpkg --add-architecture armhf
sudo nala update && sudo nala install build-essential git cmake gcc-arm-linux-gnueabihf libc6-dev-armhf-cross libappindicator1 libnm0 libtcmalloc-minimal4 binfmt-support liblttng-ust-dev libcairo2:armhf libgmp10:armhf libvulkan1:armhf libudev-dev:armhf -y

Next we’re going to install Box64. Paste the following lines in your terminal:

git clone --depth 1 https://github.com/ptitSeb/box64
mkdir -p box64/build; cd box64/build
cmake .. -DRK3588=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo
make -j4
sudo make install

We also need Box86:

cd ~
git clone --depth 1 https://github.com/ptitSeb/box86
mkdir -p box86/build; cd box86/build
cmake .. -DRK3588=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo
make -j4
sudo make install

Fixing missing packages:

sudo nala install libsdl2-dev libpng-dev:armhf libncurses6:armhf libncurses6 libcups2:armhf libcups2 -y
cd /usr/lib/arm-linux-gnueabihf/
sudo ln -s  libpng16.so libpng12.so.0

That’s it for the dependencies! Before you continue you should reboot the device with:

sudo reboot

Starting Steam

First we need to configure the environment for Steam. Use the following lines to add two environment variables to your Linux environment:

echo 'export STEAMOS=1
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1' | sudo tee /etc/profile.d/steam.sh

#if you have a high resolution screen use this instead
#echo 'export GDK_SCALE=2' | sudo tee -a /etc/profile.d/steam.sh
source /etc/profile.d/steam.sh

Next we’re going to use Box86’s install_steam.sh script like this:

cd ~/box86
steam #just wait.

Installation is now finished!

Always make sure your terminal has internet by doing sudo ping google.com and Ctrl C to stop at each reboot before typing instructions.

More useful stuff on Linux:

sudo nala install xcb obs-studio obs-gstreamer obs-plugins xdg-desktop-portal pipewire qtwayland5 -y
#RESTART here and then run OBS with:
export QT_QPA_PLATFORM="xcb"
#--this is the way it works on armbian not sure if needs changed for FydeOS

sudo nala install htop -y
sudo nala install bpytop -y
sudo nala install neofetch -y
sudo nala install snapd -y
sudo nala install kodi -y
sudo nala install inkscape -y
sudo nala install flatpak gnome-software-plugin-flatpak squashfs-tools && sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
sudo nala install gnome-software gnome-packagekit -y

# or all at once and correctly
sudo nala update && sudo nala install htop neofetch bpytop snapd flatpak xcb obs-studio obs-plugins xdg-desktop-portal pipewire qtwayland5 gnome-software-plugin-flatpak squashfs-tools gnome-software gnome-packagekit kodi inkscape -y && sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo && sudo nala upgrade -y && sudo nala autoremove
sudo reboot

Terminal Troubleshoot

Sometimes when the linux terminal jams a sudo reboot or a father stop start termina fixes it.

  • sudo ping google.com doesn’t work or… wierd launch error messages… etc…
#Open Chromium Browser - Ctrl Alt T
vmc stop termina
vmc start termina or vmc launch termina #ChromeOS is start FydeOS is Launch


Installing the Google Store is easy! Edit: Not yet for openFyde just works on FydeOS

Run GApps installation stucks at 20% for a long while but you can see the log showing information rolling.

List of Debian Packages: https://debian.pkgs.org/10/debian-main-arm64/
Make pages into webapps: applicationize.me/now

Follow some of the community issues as well here

Have lots of fun enjoy! Discord here for a more direct approach: Khadas Discord

1 Like

Browsers for all tastes - A grasp of what I’ve tested.

Vivaldi Browser

Install Vivaldi for Geforce Now and (Widevine DRM for Netflix couldn’t make it work if someone can please let me know.).

Vivaldi browser installation

  1. Download Vivaldi .deb here Old Versions of Vivaldi | Vivaldi Browser
  2. Open GDebi and install your specific Vivaldi browser

Create a desktop launcher (‘Needed’ for GeForce Now and Widevine)

  • Info: This allows you to add browser start up lines to provide better performance. To let pages know you are at the latest version.
  • Command:
    /usr/bin/vivaldi-stable --disable-seccomp-filter-sandbox --user-agent="Mozilla/5.0 (X11; Linux aarch64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ Safari/537.36"

Same as openFyde Chromium for testing (Might improve performance- optional)

/usr/bin/vivaldi-stable --disable-seccomp-filter-sandbox --edge-touch-filtering --enable-native-gpu-memory-buffers --platform-disallows-chromeos-direct-video-decoder --enable-webgl-image-chromium --enable-features=Pepper3DImageChromium,UmaStorageDimensions,Crostini,CrostiniGpuSupport,SmartDim --num-raster-threads=2 --gpu-sandbox-failures-fatal=no --passive-listeners-default=true --enable-logging --log-level=1 --use-cras --enable-wayland-server --system-developer-mode --disable-mojo-broker --ash-use-cros-mojo-service-manager --cros-healthd-uses-service-manager --allow-os-install --login-profile=user --has-chromeos-keyboard --enable-touchview --disable-explicit-dma-fences --guest-wallpaper-large=/usr/share/chromeos-assets/wallpaper/guest_large.jpg --guest-wallpaper-small=/usr/share/chromeos-assets/wallpaper/guest_small.jpg --child-wallpaper-large=/usr/share/chromeos-assets/wallpaper/child_large.jpg --child-wallpaper-small=/usr/share/chromeos-assets/wallpaper/child_small.jpg --default-wallpaper-large=/usr/share/chromeos-assets/wallpaper/default_large.jpg --default-wallpaper-small=/usr/share/chromeos-assets/wallpaper/default_small.jpg --enable-consumer-kiosk --device-help-content-id=rock5b-openfyde --ozone-nnpalm-properties={} --arc-availability=installed --enterprise-enrollment-initial-modulus=15 --enterprise-enrollment-modulus-limit=19 --enable-crashpad --ml_service=enabled --ondevice_handwriting=use_rootfs --ondevice_document_scanner=use_rootfs --arc-start-mode=always-start-with-no-play-store --arc-availability=officially-supported --disable-features=ArcAndGuestOsFileTasksUseAppService,CrostiniUseDlc --disable-buffer-bw-compression --login-manager --feature-flags=["arc-game-mode@1","full-user-agent@1","ignore-gpu-blocklist","launcher-game-search@1","use-passthrough-command-decoder@1"] --first-exec-after-boot --enable-features=Pepper3DImageChromium,UmaStorageDimensions,Crostini,CrostiniGpuSupport,SmartDim --disable-features=ArcAndGuestOsFileTasksUseAppService,CrostiniUseDlc --flag-switches-begin --ignore-gpu-blocklist --enable-features=Pepper3DImageChromium,UmaStorageDimensions,Crostini,CrostiniGpuSupport,SmartDim,ArcGameModeFeature,DefaultPassthroughCommandDecoder,FullUserAgent,LauncherGameSearch --flag-switches-end --user-agent="Mozilla/5.0 (X11; Linux aarch64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ Safari/537.36"

Set the latest user agent or just your actual one: https://whatmyuseragent.com

Open Vivaldi with the DRM browser launcher and verify the parameters …

  • flags: vivaldi://flags Override software rendering list > Enable (Do it for performance!)
  • components: vivaldi://components (check if Widevine Content Decryption Module is loaded)
  • gpu: vivaldi://gpu

  • Just a side note about Mouse Cursor on Cloud Gaming on Vivaldi:
    All types of mouse issues will trigger you press Esc or Ctrl G the way to fix this is to keep pressing Esc a few seconds and going back into full screen mouse will go back into the game layout.

(Video recording over Linux apps really doesn’t do its justice this runs perfectly fine.)

Browser from a Docker Container with DRM

Found a solution for Widevine DRM to work which is a Chromium 32bits that also works for Cloud Gaming but via docker:

  • I personally don’t like this very much… but it’s somewhat a better alternative to DRM.
  • chrome://settings/ is bugged.
  • You can watch netflix with it and other pages/services that requires it.
# Requires docker and it works again thank you mOnkaBlyat.
# Build this first
sudo nala install docker docker.io pulseaudio-utils pulseaudio
git clone https://github.com/monkaBlyat/docker-chromium-armhf
cd docker-chromium-armhf
sudo docker build -t hthiemann/chromium-armhf .
# stop here Make a volume for settings to be saved
sudo docker volume create chromium_home
# Stop here Start image
sudo docker pull hthiemann/docker-chromium-armhf
sudo cp chromium-armhf /usr/local/bin
sudo usermod -aG docker $(whoami)
# Stop here - Bring it to life
sudo chromium-armhf

Brave Browser

Brave Browser Install # No DRM fun and neither is supported by GFN but for the fans its this:

sudo nala install curl build-essential python-setuptools python3-distutils
sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] https://brave-browser-apt-release.s3.brave.com/ stable main"|sudo tee /etc/apt/sources.list.d/brave-browser-release.list
sudo nala update
sudo nala install brave-browser
# in case to uninstall
sudo nala remove brave-browser brave-keyring
sudo rm /etc/apt/sources.list.d/brave-browser-*.list

Debian Browser - no netflix fun, geforce now is supported but doesn’t work / kinda broken.

sudo nala install chromium chromium-l10n # Debian Chromium
/usr/lib/chromium/chromium --edge-touch-filtering --enable-native-gpu-memory-buffers --platform-disallows-chromeos-direct-video-decoder --enable-webgl-image-chromium --enable-features=Pepper3DImageChromium,UmaStorageDimensions,Crostini,CrostiniGpuSupport,SmartDim --num-raster-threads=2 --gpu-sandbox-failures-fatal=no --passive-listeners-default=true --enable-logging --log-level=1 --use-cras --enable-wayland-server --system-developer-mode --disable-mojo-broker --ash-use-cros-mojo-service-manager --cros-healthd-uses-service-manager --allow-os-install --login-profile=user --has-chromeos-keyboard --enable-touchview --disable-explicit-dma-fences --guest-wallpaper-large=/usr/share/chromeos-assets/wallpaper/guest_large.jpg --guest-wallpaper-small=/usr/share/chromeos-assets/wallpaper/guest_small.jpg --child-wallpaper-large=/usr/share/chromeos-assets/wallpaper/child_large.jpg --child-wallpaper-small=/usr/share/chromeos-assets/wallpaper/child_small.jpg --default-wallpaper-large=/usr/share/chromeos-assets/wallpaper/default_large.jpg --default-wallpaper-small=/usr/share/chromeos-assets/wallpaper/default_small.jpg --enable-consumer-kiosk --device-help-content-id=rock5b-openfyde --ozone-nnpalm-properties={} --arc-availability=installed --enterprise-enrollment-initial-modulus=15 --enterprise-enrollment-modulus-limit=19 --enable-crashpad --ml_service=enabled --ondevice_handwriting=use_rootfs --ondevice_document_scanner=use_rootfs --arc-start-mode=always-start-with-no-play-store --arc-availability=officially-supported --disable-features=ArcAndGuestOsFileTasksUseAppService,CrostiniUseDlc --disable-buffer-bw-compression --login-manager --feature-flags=["arc-game-mode@1","full-user-agent@1","ignore-gpu-blocklist","launcher-game-search@1","use-passthrough-command-decoder@1"] --first-exec-after-boot --enable-features=Pepper3DImageChromium,UmaStorageDimensions,Crostini,CrostiniGpuSupport,SmartDim --disable-features=ArcAndGuestOsFileTasksUseAppService,CrostiniUseDlc --flag-switches-begin --ignore-gpu-blocklist --enable-features=Pepper3DImageChromium,UmaStorageDimensions,Crostini,CrostiniGpuSupport,SmartDim,ArcGameModeFeature,DefaultPassthroughCommandDecoder,FullUserAgent,LauncherGameSearch --flag-switches-end --user-agent="Mozilla/5.0 (X11; Linux aarch64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ Safari/537.36"

Firefox Browser

sudo nala install firefox-esr

Replace Debian Linux subsystem with Ubuntu:

Activate your terminal first and make sure you have access to internet by doing sudo ping google.com

if not then and repeat:

Then open Chromium Ctrl Alt T - and follow:

vsh termina # vmc stop termina / vmc launch termina
# Clone your ubuntu container 
lxc image copy ubuntu:22.04 local: --alias jammy
lxc launch jammy eskimo
lxc exec eskimo -- bash

Thats you on Ubuntu via Crosh. Now… the complicated part…

echo "deb https://deb-mirror.fydeos.com/cros-packages bullseye main" > /etc/apt/sources.list.d/cros.list
if [ -f /dev/.cros_milestone ]; then sudo sed -i "s?packages?packages/$(cat /dev/.cros_milestone)?" /etc/apt/sources.list.d/cros.list; fi
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 78BD65473CB3BD13
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B

sudo apt update && sudo apt install nala -y && sudo nala update && sudo nala upgrade -y && sudo nala autoremove- y

If this top line fails by any change from either google or anything else all you need to do to repeat these instructions is: sudo rm /etc/apt/sources.list.d/cros.list to clear anything not google/fydeos/etc.

sudo nala install cros-ui-config -y
sudo nala install cros-guest-tools -y
sudo dpkg --force-overwrite --install /var/cache/apt/archives/cros-ui-config_0.15_all.deb
sudo dpkg --configure -a
sudo nala update && sudo nala upgrade -y && sudo nala autoremove -y
#ignore warnings and such
# Set the hostname (1c'AnyUnrepeatedName'):
sed -i '1cFyde' /etc/hostname

# and set the user account ('fydeonubuntu' in this example):
killall -u ubuntu
groupmod -n fydeonubuntu ubuntu
usermod -md /home/fydeonubuntu -l fydeonubuntu ubuntu
usermod -aG users fydeonubuntu
loginctl enable-linger fydeonubuntu
sed -i 's/ubuntu/fydeonubuntu/' /etc/sudoers.d/90-cloud-init-users

sudo nala update && sudo nala install adwaita-icon-theme-full mesa-utils neofetch -y && sudo nala upgrade -y && sudo nala autoremove -y

shutdown -h now

lxc stop --force penguin
lxc rename penguin google
lxc rename eskimo penguin


Go into the penguin terminal you are now on Ubuntu.

  • The only issue… is that after a board restart… the terminal will brick and I think its because FydeOS has some script in place to re-do not only their repos as probably something else that will make it fail. (Not too sure how to bypass this probably better not at all).

You can switch it to ArchLinux Replace Debian Linux subsystem with ArchLinux - FydeOS


Hello @DarkevilPT

Thanks for your guides, have fun~

1 Like

oow yee its right !!! tnx for fun :sunglasses: guide

1 Like


Can’t use opengapps?

Not yet. openFyde does not support gApps just yet. For that you will have to wait for FydeOS.
But tbh you dont need the play store at all… just install apkpure and have fun.

1 Like

When I use, android full screen apps, contet not fit

Dav its an android emulator it shows as in your phone would show try hearthstone it will change. Most apps will show as in your phone apps same as some for Android TV so depends on which google apk versions you install them. If its a bug just report it to Fyde. On their github or check their discord. I dont know what is your second image to say it is a bug.

To understand openFyde you have to understand ChromeOS: