Skip to content
/dev/zeyu
Go back

Install Manjaro and set up xrdp on Raspberry Pi 4B

Installation

Preparation

Download OS and imager. Flash the image to the SD card, then add a blank file named ssh to /root/ to enable installation over ssh.

System Information after installation:

OS: Manjaro ARM Linux aarch64
Host: Raspberry Pi 4 Model B Rev 1.2
Kernel: 5.4.83-1-MANJARO-ARM

Mirrors

Replace mirrors with the ones in China:

# Search pacman mirrors
sudo pacman-mirrors -i -c China -m rank

# Add AUR mirror
yay --aururl "https://aur.tuna.tsinghua.edu.cn" --save

# Set up pip mirror
sudo python -m pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

Configuration

Install raspi-config, the package in pip and AUR seems broken. Clone the source directly and build it locally.

git clone https://git.drogon.net/wiringPi

Run sudo raspi-config to configure the machine, here enable i2c access.

Xrdp

In addition to xrdp, running a terminal server needs xorgxrdp.

# xrdp-git seems to be the latest and compatible with xorgxrdp
yay -S xrdp-git
yay -S xorgxrdp

According to xrdp wiki:

  1. Add allowed_users=anybody to /etc/X11/Xwrapper.config to allow anybody to start X.
  2. Edit ~/.xinitrc or /etc/X11/xinit/xinitrc to launch your xfce4. In step 2, I first tried:
session=${1:-xfce}

case $session in
        i3|i3wm           ) exec i3;;
        kde               ) exec startplasma-x11;;
        xfce|xfce4        ) exec dbus-launch startxfce4;;
        # No known session, try to run it as command
        *                 ) exec $1;;
esac

but xfce complains Unable to contact settings server. And when I changed to an older expression, it works.

session=${1:-xfce}
case $session in
        i3|i3wm           ) exec i3;;
        kde               ) exec startplasma-x11;;
        xfce|xfce4        ) exec dbus-launch startxfce4;;;
        # No known session, try to run it as command
        *                 ) exec $1;;
esac

It is possible some patches are not committed in aarch64, needs future attention on this when upgrading.


Share this post on:

Previous Post
Quick Note: Docker