wiki:mycroft-gui-mark-2_sys

Version 17 (modified by admin, 2 years ago) (diff)

--

Mycroft Mark2 GUI using system QT5 and KDE framework

This is based on the very helpful build log of user AIIX that he published on https://github.com/AIIX/Documentation/blob/master/Custom-RPI4-MycroftImage.md He is doing this on Rasbperry 4 while the target here is Raspberry 3B but also on 64-bit.

Install Linux

I tried to do this on Ubuntu 20.04 but failed to bring the SDDM up so I switched back to 18.04 https://github.com/TheRemote/Ubuntu-Server-raspi4-unofficial/releases/download/v28/ubuntu-18.04.4-preinstalled-server-arm64+raspi4.img.xz Flash it to sdcard and boot. After first boot login as ubuntu/ubuntu (takes a while until you can do this), change password

Wifi

  • ls /sys/class/net

on RP3 the wifi interface is the wlan0

  • sudo nano /etc/netplan/50-cloud-init.yaml
    # network: {config: disabled}
    network:
        ethernets:
            eth0:
                dhcp4: true
                optional: true
        version: 2
        wifis:
            wlan0:
                optional: true
                access-points:
                    "ESSID-of-the-Accesspoint":
                        password: "your-password"
                dhcp4: true
    

Remark: After SDDM is using NetworkManager I had to remove the wifis part otherwise wlan0 was unavailable

user

  • sudo useradd mycroft -g users -G sudo -m -s /bin/bash
  • sudo passwd mycroft
  • sudo nano /etc/group

(add mycroft to all groups like ubuntu)

From now on work as user mycroft

update / initial apt setup

  • sudo apt-get update && sudo apt-get dist-upgrade -y
  • sudo apt install git gnupg wget curl apt-transport-https software-properties-common

Do the next steps as root:

  • sudo su -

Add KDE Neon gpg key:

Add the repository

swap

  • sudo fallocate -l 2G /swapfile
  • sudo chmod 600 /swapfile
  • sudo mkswap /swapfile
  • sudo swapon /swapfile
  • sudo nano /etc/fstab

add

/swapfile               none            swap    sw                              0 0

ramdisk

  • sudo mkdir /ramdisk
  • sudo nano /etc/fstab

add

tmpfs                   /ramdisk        tmpfs   rw,nodev,nosuid,size=20M        0 0

mycroft core

  • sudo apt-get install git python3 python3-dev python3-setuptools libtool libffi-dev libssl-dev autoconf automake bison swig libglib2.0-dev portaudio19-dev mpg123 screen flac curl libicu-dev pkg-config libjpeg-dev libfann-dev build-essential jq
  • cd ~
  • git clone https://github.com/MycroftAI/mycroft-core
  • cd mycroft-core
  • ./dev_setup.sh -sm

mimic

skipped for now

Plasma Nano

Install the system Libraries

I will try to come up with a completer list later but I think most of it should be in the dependencies of the following

  • sudo apt install sddm kwin-wayland kwin-x11 openssh-server ftp i2c-tools konsole nano plasma-workspace-wayland plasma-workspace plasma-pa plasma-widgets-addons libkf5wallet-bin gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-fluendo-mp3 qml-module-qtmultimedia network-manager plasma-nm konsole plasma-workspace-dev

I was not asked for the login manager so I set it manually:

  • sudo dpkg-reconfigure sddm

build plasma-nano

  • sudo apt install cmake kwayland-dev
  • cd ~
  • git clone https://github.com/KDE/plasma-nano
  • cd plasma-nano
  • mkdir build
  • cd build
  • cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DKDE_INSTALL_LIBDIR=lib -DKDE_INSTALL_USE_QT_SYS_PATHS=ON
  • make -j 2
  • sudo make install

Mycroft GUI

  • sudo apt install -y git-core g++ cmake extra-cmake-modules kio-dev gettext pkg-config pkg-kde-tools qtbase5-dev qtdeclarative5-dev kio-dev libkf5notifications-data libkf5notifications-dev qml-module-qtquick2 qml-module-qtquick-controls2 qml-module-qtquick-controls qml-module-qtwebsockets qml-module-qt-websockets qtdeclarative5-qtquick2-plugin qtdeclarative5-models-plugin cmake cmake-extras cmake-data qml-module-qtquick-layouts libkf5plasma-dev extra-cmake-modules qtdeclarative5-dev build-essential g++ gettext libqt5webkit5 libqt5webkit5-dev libkf5i18n-data libkf5i18n-dev libkf5i18n5 qml-module-qtgraphicaleffects libqt5dbus5 libkf5dbusaddons-dev libdbus-1-dev libdbus-glib-1-dev kio-dev libkf5kio-dev libqt5websockets5-dev libqt5webview5-dev qml-module-qtquick-virtualkeyboard libqt5virtualkeyboard5-dev qtvirtualkeyboard-plugin
  • cd ~
  • git clone https://github.com/MycroftAI/mycroft-gui/
  • cd mycroft-gui && mkdir build && cd build
  • cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DKDE_INSTALL_LIBDIR=lib -DKDE_INSTALL_USE_QT_SYS_PATHS=ON
  • make -j2
  • sudo make install

Mycroft-GUI-Mark-2

  • cd ~
  • git clone https://github.com/MycroftAi/mycroft-gui-mark-2
  • cd mycroft-gui-mark-2 && mkdir build && cd build
  • cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DKDE_INSTALL_LIBDIR=lib -DKDE_INSTALL_USE_QT_SYS_PATHS=ON
  • make -j2
  • sudo make install

QML Lottie

  • cd ~
  • git clone https://github.com/kbroulik/lottie-qml
  • cd lottie-qml && mkdir build && cd build
  • cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DKDE_INSTALL_LIBDIR=lib -DKDE_INSTALL_USE_QT_SYS_PATHS=ON
  • make -j2
  • sudo make install

Scripts/Overlays

skipped 93-create_ramdisk.sh and 94-create_swap.sh (done manually above)

Overlays:

  • cd ..
  • sudo cp overlays/base-embedded/etc/xdg/* /etc/xdg/
  • sudo cp overlays/mark2/etc/xdg/* /etc/xdg/
  • sudo cp -r -v overlays/mycroft/etc/* /etc
  • sudo cp -r -v overlays/base-embedded/etc/skel/.local /etc/skel/
  • sudo cp -r -v overlays/mycroft/etc/sddm.conf.d /etc/
  • sudo cp -v overlays/base-embedded/etc/profile.d/renderloop.sh /etc/profile.d/
  • sudo cp -r -v overlays/mycroft/etc/polkit-1/localauthority/50-local.d /etc/polkit-1/localauthority/
  • sudo cp -v overlays/base-embedded/etc/netplan/config.yaml /etc/netplan/
  • sudo cp -r -v overlays/mycroft/etc/mycroft/* /etc/mycroft/

pi config.txt

# i2c on
dtparam=i2c_arm=on
# audio on
dtparam=audio=on

[all]
max_framebuffers=2
dtoverlay=vc4-kms-v3d
arm_64bit=1

enable i2c_dev

I did not have an /dev/i2c* device after booting only if I manually loaded i2c_dev so I did

  • sudo nano /etc/modules

add

i2c_dev

the i could use:

  • sudo i2cset -y 1 0x4b 30

to make the volume

network manager

I wanted the wifi connection to be established before SDDM comes up so I changed the settings in the connection file

  • /etc/NetworkManager/system-connections/<ESSID>

remove the psk-flags=1 line and add

psk=<passphrase|psk generated by wpa_passphrase>

open issues

screen rotation

autostart mycroft-gui

Attachments (1)

Download all attachments as: .zip