Install instructions
Install Raspbian on the Raspberry Pi
Update your firmware with
sudo rpi-update
Activate your GL driver in
sudo raspi-config
or by adding
dtoverlay=vc4-kms-v3d
to /boot/config.txt
Open /etc/apt/sources.list and change
deb
http://raspbian.raspberrypi.org/raspbian/ stetch main contrib non-free rpi
to
deb
http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
;
Add the official Debian repository by adding
deb
http://ftp.debian.org/debian/ buster main contrib non-free
and getting its key
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7638D0442B90D010
and
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC
And the Plasma Mobile repository by adding
deb
https://debian-pm-tools.github.io/apt-repo buster main
and getting its key
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A81E075ABEC80A7E
Now upgrade your system by running
sudo apt-get update
and
sudo apt-get upgrade
.
To an important step: You can now either change your user to "phablet" or set up ssh by adding an empty ssh.txt to /boot/.
Install plasma-phone-components, plasma-phone-settings, plasma-settings, kwin-wayland, simplelogin and dbus-x11 by running
sudo apt-get install plasma-phone-components plasma-phone-settings plasma-settings kwin-wayland simplelogin dbus-x11
Also install qtvirtualkeyboard if you want an on-screen keyboard.
If you didn't change your user to "phablet" your screen will be frozen now. You can fix that by changing /lib/systemd/system/simplelogin.service; just change "phablet" to the user you want to run Plasma Mobile as; After a reboot your system should boot into Plasma Mobile.
Problems with solutions
Plasma Mobile does not launch without adding
dtoverlay=vc4-kms-v3d
to /boot/config.txt to activate the accelerated graphics driver.
The Raspbian repo was unreachable over Wifi so I needed to use Ethernet.
Simplelogin is installed with user "phablet" as running argument, is immediately run after installation and freezes the screen when run without a proper user; To counter this you can either create user "phablet" before installing or change the /lib/systemd/system/simplelogin.service to account for your current user.
Problems
Sometimes the screen freezes. Crop from syslog:
kernel: [ 4903.278101] vc4-drm soc:gpu: failed to allocate buffer with size 16777216
kernel: [ 4903.278609] vc4-drm soc:gpu: failed to allocate buffer with size 16777216
kernel: [ 4903.279615] vc4-drm soc:gpu: failed to allocate buffer with size 16777216
kernel: [ 4903.279670] [drm:vc4_bo_create [vc4]] *ERROR* Failed to allocate from CMA:
kernel: [ 4903.279675] [drm] kernel: 4000kb BOs (1)
kernel: [ 4903.279679] [drm] V3D: 225972kb BOs (472)
kernel: [ 4903.279682] [drm] V3D shader: 864kb BOs (216)
kernel: [ 4903.279686] [drm] dumb: 32kb BOs (2)
kernel: [ 4903.279691] [drm] total purged BO: 18148kb BOs (167)
kernel: [ 4903.279699] vc4_v3d 3fc00000.v3d: Failed to allocate memory for tile binning: -12. You may need to enable CMA or give it more memory.
This happens regardless of how much memory your give the GPU and if you enable CMA.
Angelfish never finishes loading webpages.
Firefox ESR cannot play youtube videos as it is unable to install openh264.
Tips
As Plasma Mobile is running on an SD-Card; The speed of the SD-Card is pretty important for its performance. I used a Class 10 card which to me seems to be pretty much the minimum of what you would want to use.
You can add more verbosity to your Plasma Mobile logging by creating /home/$USER/.config/QtProject/qtlogging.ini and adding
[Rules]
org.kde.kwindowsystem.info=true
org.kde.kwindowsystem.warning=true
org.kde.kwindowsystem.critical=true
org.kde.kwindowsystem.debug=true
kwin_core.info=true
kwin_core.warning=true
kwin_core.critical=true
kwin_core.debug=true
kwineffects.info=true
kwineffects.warning=true
kwineffects.critical=true
kwineffects.debug=true
libkwineffects.info=true
libkwineffects.warning=true
libkwineffects.critical=true
libkwineffects.debug=true
libkwinglutils.info=true
libkwinglutils.warning=true
libkwinglutils.critical=true
libkwinglutils.debug=true
libkwinxrenderutils.info=true
libkwinxrenderutils.warning=true
libkwinxrenderutils.critical=true
libkwinxrenderutils.debug=true
kwin_wayland_drm.info=true
kwin_wayland_drm.warning=true
kwin_wayland_drm.critical=true
kwin_wayland_drm.debug=true
kwin_wayland_framebuffer.info=true
kwin_wayland_framebuffer.warning=true
kwin_wayland_framebuffer.critical=true
kwin_wayland_framebuffer.debug=true
kwin_wayland_hwcomposer.debug=true
kwin_wayland_backend.info=true
kwin_wayland_backend.warning=true
kwin_wayland_backend.critical=true
kwin_wayland_backend.debug=true
kwin_wayland_x11windowed.info=true
kwin_wayland_x11windowed.warning=true
kwin_wayland_x11windowed.critical=true
kwin_wayland_x11windowed.debug=true
kwin_platform_x11_standalone.info=true
kwin_platform_x11_standalone.warning=true
kwin_platform_x11_standalone.critical=true
kwin_platform_x11_standalone.debug=true
kwin_libinput.info=true
kwin_libinput.warning=true
kwin_libinput.critical=true
kwin_libinput.debug=true
kwin_tabbox.info=true
kwin_tabbox.warning=true
kwin_tabbox.critical=true
kwin_tabbox.debug=true
kwin_decorations.info=true
kwin_decorations.warning=true
kwin_decorations.critical=true
kwin_decorations.debug=true
kwin_scripting.info=true
kwin_scripting.warning=true
kwin_scripting.critical=true
kwin_scripting.debug=true
kwin_xkbcommon.info=true
kwin_xkbcommon.warning=true
kwin_xkbcommon.critical=true
kwin_xkbcommon.debug=true
kwin_qpa_plugin.info=true
kwin_qpa_plugin.warning=true
kwin_qpa_plugin.critical=true
kwin_qpa_plugin.debug=true
to it.
Follow these codes it will help you!
Regards,
Lewis