Raspberry Pi

From KDE Community Wiki
 
Under Construction
This is a new page, currently under construction!


This page contains information on problems I had and have with setting up Plasma Mobile on my Raspberry Pi3b+, solutions to them and steps to get it running yourself.

Picture of my RasPad with Raspberry Pi 3b+ inside running Plasma Mobile

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.