Raspberry Pi
Appearance
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.
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 addingdtoverlay=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
todeb 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 8B48AD6246925553
And the Plasma Mobile repository by adding
deb https://debian-pm-tools.github.io/apt-repo buster main
.
- Now upgrade your system by running
sudo apt-get update
andsudo 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.