[Guide] 🖥️ Arch Linux Installer on Edge 2 ✨


image Arch Linux Installers for Khadas Edge 2

image BredOS by @Rippanda12
image Arch Linux Installer by @kwankiu


d7og0t1swue81 EndeavourOS ARM (Maybe) by @Pudge
1us 1usOS (soon) by @kwankiu
image Manjaro (soon) by @Spikerguy
image Kruescue Arch Linux by Khadas image

  • Move it to your usb drive plug it into edge 2 boot 8wow via (function key + rest) + function key > Install your file on ‘write to emmc’ inside 8wow.


🖱️Basic terminal troubleshoot:▼

Check your baseline repos: sudo nano /etc/pacman.conf

sudo pacman-key --refresh-keys
sudo pacman -S archlinux-keyring
sudo rm /var/lib/pacman/db.lck

pacman -Q | grep linux-firmware


:point_right:t3: Run Arch Configuraton Utility

Type - ‘acu’ - acu install app -y # -y will work as expected.


🎚️Manually install ACU on other Arch Linux Distros▼

Install it: bash <(curl -fsSL https://raw.githubusercontent.com/kwankiu/acu/main/acu) -u
Update It: acu update
Install Chromium from acu apps: acu -y install chromium


🌐 Browser Shenenigans▼

acu install chromium -y # Latest stable version with HW acceleration.

acu -y install extra/chromium # Latest default version. No HW acceleration.

acu install flatpak -y ; sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo ; sudo flatpak install flathub org.chromium.Chromium -y ; sudo flatpak update -y

#Flatpak version of Chromium which comes with no HW acceleration works well for cloud gaming and can coexist with other Chromium browsers you have previously installed.


🔌Things to consider

Arch Linux doesn’t supports ARM officially.

Sometimes reboot will not work and if in due update it will brick… I suggest that you opt by doing shutdown and then start the system again for safety.

  • RK3588 Type C DP requires hot-unplug/hot-plug.
  • The system runs better on Wayland.
  • Cloud Gaming is amazing on these boards.
  • Steam is working on archlinux arm64 thanks to @Rippanda12 for converting lib32 from @ptitseb
  • Talented Arch Linux users are keeping the support for Arch:
    – Kernel updates / GPU and HW Acceleration / Chromium Browser integrations at bay.

🪁 Fan options

:point_right: the actual kernel already has this shorted ages ago but I will leave it here for further notice.

Non-GPIO Fan Fix (Archlinux) (Not sure if it works on Khadas).

git clone https://github.com/XZhouQD/Rock5B_Naive_Pwm_Fan
cd Rock5B_Naive_Pwm_Fan/
cp fan_pwm /usr/local/bin/.
chmod +x /usr/local/bin/fan_pwm
cp fan_pwm.service /etc/systemd/system/.
systemctl daemon-reload
systemctl start fan_pwm
systemctl enable fan_pwm

Manage the fan manually :wind_face:

Prevent the system to take over fan control - Automatically.

acu install i2c-tools -y
echo user_space | sudo tee /sys/class/thermal/thermal_zone0/policy
sudo i2cset -y -f 2 0x18 0x8A 0x20

(Fan speed 0x41 = 50%, 0x64 = 100%)


📱Bluetooth options

:point_right:t3: Some Wifi BT modules require an blacklist in order to work so here is the basics.

A8 Module Bluetooth:
sudo nano /etc/modprobe.d/blacklist.conf
then add these lines somewhere (at the bottom of the file is fine):

blacklist pgdrv
blacklist btusb
blacklist btrtl
blacklist btbcm
#blacklist btintel

Then press Ctrl+X, then Y.
acu install bluez -y or bluetooth – not needed to install since latest armbian version
systemctl status bluetooth CTRL+ C
systemctl start bluetooth
Then reboot .


🌐 Wifi options

:point_right: this is an example on how to install wifi bt modules firmware.

For AX210 Wifi and BT to Work - Not sure if we can activate this without internet at all.

#wifi
sudo wget -P /lib/firmware https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/iwlwifi-ty-a0-gf-a0-59.ucode
sudo mv /lib/firmware/iwlwifi-ty-a0-gf-a0.pnvm /lib/firmware/iwlwifi-ty-a0-gf-a0.pnvm.bak

#bt
sudo wget -P /lib/firmware/intel https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/intel/ibt-0041-0041.sfi
sudo wget -P /lib/firmware/intel https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/intel/ibt-0041-0041.ddc

📢 Audio options

Audio Tutorial for Bluetooth devices: – (not required since armbian latest versions)

:point_right: Some valid information on how to fix issues with audio be free to explore.

acu install pulseaudio pulseaudio-alsa  pavucontrol pulseaudio-bluetooth pulseaudio-equalizer paprefs

pulseaudio --start

systemctl --user daemon-reload
systemctl --user --now disable pulseaudio.service pulseaudio.socket
systemctl --user --now enable pipewire pipewire-pulse
pactl info
reboot

💽 Flashing Software

Flashing Images via Rockchip Dev Tools App:

Image Preparation

  • :point_right: Decompress Images: Use WinRAR to decompress .img.xz files to .img, not the Windows ‘Extract All’ option.

  • Tick ‘Write by Address

Rockchip Boot Loader SPL File

:point_right:t3: Follow Khadas Utils


Flash oowow back into the khadas

curl -LO https://dl.khadas.com/products/edge2/firmware/oowow/edge2-oowow-latest-spi.img.gz
gzip -d edge2-oowow-latest-spi.img.gz
sudo dd if=/dev/zero of=/dev/mtdblock0
sudo dd if=edge2-oowow-latest-spi.img of=/dev/mtdblock0

For more info on khadas

More info (Spi to NVME boot from SD Card)

Android Build on Khadas


🥛 App Manager Hubs 🧩

FlatHub - Hundreds of apps and games for Linux.

acu -y install flatpak ; sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo ; sudo flatpak update -y
More flathub apps

Chromium Browser & Extension Manager
sudo flatpak install flathub org.chromium.Chromium -y
sudo flatpak install flathub com.mattjakeman.ExtensionManager -y

Some random apps
sudo flatpak install flathub org.gnome.Boxes -y
acu -y install libvirt
sudo flatpak install flathub io.github.ungoogled_software.ungoogled_chromium -y
sudo flatpak install flathub io.github.realmazharhussain.GdmSettings -y
sudo flatpak install flathub tv.kodi.Kodi -y
sudo flatpak install flathub io.github.dosbox-staging -y
sudo flatpak install flathub com.dosbox_x.DOSBox-X -y

Emulation stuff for old school games
sudo flatpak install flathub org.ryujinx.Ryujinx -y
sudo flatpak install flathub org.libretro.RetroArch -y
sudo flatpak install flathub net.kuribo64.melonDS -y
sudo flatpak install flathub org.ppsspp.PPSSPP -y
sudo flatpak install flathub org.duckstation.DuckStation -y
sudo flatpak install flathub org.DolphinEmu.dolphin-emu -y
sudo flatpak install flathub com.github.Rosalie241.RMG -y
sudo flatpak install flathub io.mgba.mGBA -y
sudo flatpak install flathub io.github.simple64.simple64 -y
sudo flatpak install flathub com.vba_m.visualboyadvance-m -y

Bauh – a Manager for Your Multi-Package Needs

acu -y install bauh

panel-themes


🎢 Package Managers Builders ⌨️
🏔️ Arch Configuration Utility by @Kwankiu:▼

Arch (ARM) Configuration Utility - (ACU Still in development)

ACU is not just a basic configuration tool app it also manages packages and allow the user to have a much more easier approach to linux commands.
One big feature is the typing for ‘acu -y install package’ where -y works just like as in any debian distribution on arch making installations more straight foward and easy for non arch users.

Arch Configuration Utility by @Kwankiu

bash <(curl -fsSL https://raw.githubusercontent.com/kwankiu/acu/dev/acu) --update=dev

acu --update=dev ; acu -u


🐧 Universal Package Management:▼

Try Universal Package Management Tool - UPT

“One command to manage all the packages on all the distributions.”

sudo pacman -S gcc make rustup
#-- Install UPT
rustup default stable
cargo install upt
nano ~/.bash_profile #add:
export PATH="$PATH:$HOME/.cargo/bin"
sudo reboot
#It can also do sudo upt update / sudo upt upgrade etc etc etc

🥤YaY - Yet another Yogurt:▼

Yet another Yogurt - An AUR Helper written in Go
Pacman installs packages from only the repos. Yay installs packages from both the repos and the AUR

sudo pacman -Syu
sudo pacman -S --needed base-devel git
git clone https://aur.archlinux.org/yay.git
cd yay ; makepkg -si ; yay --version

🏝️ Paru:▼

Paru is your standard pacman wrapping AUR helper with lots of features and minimal interaction.

sudo pacman -S --needed base-devel
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si

👊🏼 AGR - boogie & hbiyik:▼

🧠 ARB - Package/Repo Builder - 7Ji:▼

ARB is a package builder - repo builder


🧙🏼‍♂️ Mesa / Panthor Desired Performance 🏄🏼‍♂️

BredOS - How to setup Panthor on Mali GPUs with RK3588


sudo nano /sys/class/devfreq/dmc/governor
#CPU/GPU/NPU/DDR - Manually
echo performance > /sys/devices/system/cpu/cpufreq/policy6/scaling_governor
echo performance > /sys/class/devfreq/fb000000.gpu/governor
echo performance > /sys/class/devfreq/dmc/governor
echo performance > /sys/class/devfreq/fdab0000.npu/governor

acu soc set performance


Panthor 6.1-rkr3 (Mesa 24.1.4) - Score beats 3000 - Panthor is now faster than Panfork.


Terrain - 110 & Refract - 273


Panfork on 6.1-rkr3 - Scored 2274


Terrain - 104 & Refract - 231


Panfork with gofaster on 6.1-rkr3 - Score 4324


Terrain - 157 & Refract - 329


Mali Blob G13P0 - Khadas Ubuntu Fenix Finest - Score 3866 :heart_on_fire:

Terrain - 341 :ice_cube: & Refract - 583 :fire:


🚧 OpenCL libmali 'Hack'

OpenCL runtime (libmali) For Mali to Work on Arch Linux Panfrost
Do a performance boost on apps with libmali as trigger !

libmali chromium

sudo nano /usr/bin/libmali 
#replace x11-gbm with x11-wayland-gbm on every appearance of that file

🤾🏽‍♂️ Tips and Tricks▼

Set SoC to Performance: acu soc performance
Desktop Environments without Icons fix: sudo pacman -S librsvg
Fix your system completly: sudo pacman -S --overwrite "*" $(pacman -Qqn)


Chromium Browser stuff
sudo nano /etc/chromium.d/default-flags
export CHROMIUM_FLAGS="$CHROMIUM_FLAGS --gtk-version=4"


🕹️ Install Waydroid

You will need BredOS repo if you haven’t added it already:

acu rem set BredOS https://repo.bredos.org/repo/\$repo/\$arch pacman
acu update
acu install waydroid waydroid-image-panthor -y
sudo waydroid init -f -i /usr/share/waydroid-extra/images
sudo systemctl enable --now waydroid-container

Apps will be re-sizable but never the show-full-gui

sudo waydroid container stop ; waydroid session stop ; sudo waydroid prop set persist.waydroid.multi_windows true ; sudo waydroid session start ; waydroid show-full-ui

Supposedly resizes the full-gui

sudo waydroid container stop ; waydroid session stop ; sudo waydroid prop set persist.waydroid.multi_windows true ; sudo waydroid prop set persist.waydroid.width 720 ; sudo waydroid prop set persist.waydroid.height 1280 ; systemctl restart waydroid-container ;  waydroid session start

Install Google Store

image

Select gapps and microG from Android 13 off the Script - For your Waydroid Android 11

acu install lzip -y
git clone https://github.com/casualsnek/waydroid_script
cd waydroid_script
python3 -m venv venv
venv/bin/pip install -r requirements.txt
sudo venv/bin/python3 main.py

Screenshot from 2024-09-18 13-09-58

Just enable google registration on microG

Screenshot from 2024-09-18 13-18-55

Other commands

waydroid app install com.app.apk
waydroid app launch com.app
waydroid app list

🤖 Redroid for Rockchip ARM64

Only works on Panfrost

asdasada

Android Emulator to your ARM system (ReDroid with Scrcpy and Docker):

sudo apt install docker.io scrcpy android-tools-adb -y
sudo docker run -d -p 5555:5555 -v ~/redroid-data:/data --restart unless-stopped --name redroid --privileged cnflysky/redroid-rk3588:13.0.0-latest androidboot.redroid_height=1920 androidboot.redroid_width=1080

adb disconnect localhost:5555 ; adb connect localhost:5555 ; scrcpy -s localhost:5555

Just add this alias in nano .bash_aliases and run it as malior each time:

alias malior="malior-droid stop ; adb disconnect localhost:5555 ; malior-droid start ; adb connect localhost:5555 ; scrcpy -s localhost:5555 ; malior-droid resize 720x1280"

Change it to english this way. Just drag and drop your .apk file into the android window it will auto install it .

🧑🏻‍🔧 Fix the google play store by doing this:▼

To become certified with access to the play store you have to:
1 - Install a device ID apk to get this Device ID and register it on your google account.
2 - Register it here: https://www.google.com/android/uncertified/
3 - Restart Malior-Droid again and add your google account manually on settings.
4 - Send apkpure the emulator window and start installing apps like a boss !


🧑🏻‍🔬 Kernel modules required▼
CONFIG_STAGING=y
CONFIG_ASHMEM=y
CONFIG_ANDROID_BINDER_IPC=y
# CONFIG_ANDROID_BINDERFS is not set
CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder"
# CONFIG_ANDROID_BINDER_IPC_SELFTEST is not set
CONFIG_ESD_FS=y

🎮 Steam Installation Tutorial

Steam Installation Tutorial

For updated segment follow BredOS wiki. You will need BredOS-multilib repo if you haven’t added it already:

acu rem set BredOS-multilib https://repo.bredos.org/repo/\$repo/\$arch pacman
acu update
acu install wine BredOS-multilib/steam
# Select lib32-vulkan-swrast 
# If on Panthor > select steam-libs-any.
# If on Panfork > select steam-libs-rk3588.

Run games with the latest non experimental proton available and -force-opengl on startup command steam settings.


:desktop_computer: Desktop Ricing #Unixporn


🎛️ Tweaks and Shell Extensions🎚️

Getting the Gnome Shell Extensions

acu install gnome-tweaks gnome-shell-extensions fakeroot git dpkg --noconfirm
git clone https://aur.archlinux.org/gnome-browser-connector.git
cd gnome-browser-connector ; makepkg -si ; cd

Open Tweaks and enable the dam Titlebar buttons (Why is this even disabled -.-’ )
Sem título


You can now install ‘el’ gnome extensions:


  1. Enable User Themes
  2. Dash to Panel or Dash to Dock
  3. Freon or Vitals
  4. Compiz for an wobble effect.
  5. Burn my Windows to keep your system lit. :fire:
  6. Screenshot Tool

Rice your Desktop

Themes / Icons - Shell - The Rice

Download these .themes
Download these .icons
Download this Wallpaper

sudo tar -xf Graphite-teal-nord-rimless.tar.xz -C /usr/share/themes
sudo tar -xf Zafiro-Nord-Black.tar.xz -C /usr/share/icons

/home/$USER/.themes & /home/$USER/.icons (if they dont exist just mkdir them).
Giving /home/.themes & .icons writting permissions can work.

You can also use /usr/share/themes by sudo tar -xf Cold-Metal-No-Logo-GTK.tar.xz -C /usr/share/themes

Then user themes extension from gnome shell extensions has to be enabled then we can then apply shell themes on Tweaks.

Open Tweaks application and select these themes.

image


☄️ Rice your Login Manger 🌍

For SDDM Stuff

acu -y install sddm qt6-5compat qt6-declarative qt6-svg
systemctl disable gdm
systemctl disable lightdm
systemctl enable sddm

For theme setting:

sudo nano /etc/sddm.conf.d/theme.conf.user
or
sudo nano /etc/sddm.conf

Theme folders for installing and ls:

cd /usr/share/sddm/themes/

Test your themes before applying:

sddm-greeter --test-mode --theme /usr/share/sddm/themes/maya
sddm-greeter-qt6 --test-mode --theme /usr/share/sddm/themes/sddm-astronaut-theme

sudo git clone https://github.com/Keyitdev/sddm-astronaut-theme.git /usr/share/sddm/themes/sddm-astronaut-theme
sudo cp /usr/share/sddm/themes/sddm-astronaut-theme/Fonts/* /usr/share/fonts/
echo "[Theme]
Current=sddm-astronaut-theme" | sudo tee /etc/sddm.conf
sddm-greeter-qt6 --test-mode --theme /usr/share/sddm/themes/sddm-astronaut-theme

sudo git clone https://github.com/JaKooLit/simple-sddm-2.git /usr/share/sddm/themes/simple-sddm-2
echo "[Theme]
Current=simple-sddm-2" | sudo tee /etc/sddm.conf
sddm-greeter --test-mode --theme /usr/share/sddm/themes/simple-sddm-2

sudo git clone https://github.com/RadRussianRus/sddm-slice.git /usr/share/sddm/themes/sddm-slice
echo "[Theme]
Current=sddm-slice" | sudo tee /etc/sddm.conf
sddm-greeter --test-mode --theme /usr/share/sddm/themes/sddm-slice

SteamOS Theme

sudo git clone https://github.com/JiayuanWen/sddm-sugar-steamOS.git /usr/share/sddm/themes/sddm-sugar-steamOS
echo "[Theme]
Current=sddm-sugar-steamOS" | sudo tee /etc/sddm.conf
sddm-greeter --test-mode --theme /usr/share/sddm/themes/sddm-sugar-steamOS

sudo git clone https://github.com/Match-Yang/sddm-deepin.git
cd sddm-deepin
bash ./install.sh
sddm-greeter --test-mode --theme /usr/share/sddm/themes/deepin

sudo git clone https://github.com/Michal-Szczepaniak/sddm-theme-amadeus.git /usr/share/sddm/themes/sddm-theme-amadeus
echo "[Theme]
Current=sddm-theme-amadeus" | sudo tee /etc/sddm.conf
sddm-greeter --test-mode --theme /usr/share/sddm/themes/sddm-theme-amadeus

sudo git clone https://github.com/m-wynn/sddm_wynn-theme.git /usr/share/sddm/themes/sddm_wynn-theme
echo "[Theme]
Current=sddm_wynn-theme" | sudo tee /etc/sddm.conf
sddm-greeter --test-mode --theme /usr/share/sddm/themes/sddm_wynn-theme

sudo git clone https://github.com/3ximus/abstractdark-sddm-theme.git /usr/share/sddm/themes/abstractdark-sddm-theme
echo "[Theme]
Current=abstractdark-sddm-theme" | sudo tee /etc/sddm.conf
sddm-greeter --test-mode --theme /usr/share/sddm/themes/abstractdark-sddm-theme

sudo git clone https://github.com/AlfredoRamos/urbanlifestyle-sddm-theme.git /usr/share/sddm/themes/urbanlifestyle-sddm-theme
echo "[Theme]
Current=urbanlifestyle-sddm-theme" | sudo tee /etc/sddm.conf
sddm-greeter --test-mode --theme /usr/share/sddm/themes/urbanlifestyle-sddm-theme

Source KDE themes
Source KDE themes
Github for SDDM themes


🏝️ Try Other Desktop Environments for ARM 🦅

Wiki page: Archcraft ARM | Archcraft

main

acu -y install yay
curl -LO https://github.com/archcraft-os/archcraft-arm/releases/download/1.0/archcraft-arm.tar.gz
tar -xzvf archcraft-arm.tar.gz
cd archcraft-arm
# nano customize.sh
# user/pass archcraft
sudo ./install.sh

Extra openbox themes:

git clone https://github.com/addy-dclxvi/openbox-theme-collections 
sudo cp -r $HOME/openbox-theme-collections/* $HOME/.config/openbox/themes

Fix the top bar modules for each theme being on this example the “default” one:

1 - nano ~/.config/openbox/themes/default/polybar/config.ini
2 - Find the line modules-right =. This should be line 147.
3 - Remove the “battery” module, replacing it with “temperature”

Paste this instead:
modules-right = temperature dot volume dot network dot LD sysmenu RD


Other Desktop Environments

Pixarch

acu -y install yay
git clone https://github.com/heisenburgh/pixarch.git
cd pixarch/installation_scripts
./install.sh
# Still in development and contains bugs. Run at your own risk.

JaKooLit - Arch-Hyprland

acu -y install yay
git clone --depth=1 https://github.com/JaKooLit/Arch-Hyprland.git ~/Arch-Hyprland
cd ~/Arch-Hyprland
chmod +x install.sh
./install.sh

SUPER Environments often needs changed from SUPER to FN+SUPER

# Look for $mainMod = SUPER
nano ~/.config/hypr/hyprland.conf
nano ~/.config/hypr/configs/Keybinds.conf
# Change it to $mainMod = FN+SUPER


:video_game: Cloud Gaming is Beautiful for this System :computer_mouse:


Kwankiu / Arch Linux Installer / Rippanda12 / BredOS / 7Ji / Joshuas-Riek / boogiepop


3 Likes