gui running in qemu

This commit is contained in:
2025-07-05 13:05:02 +02:00
parent 06f26bf00b
commit da596241b9
19 changed files with 161 additions and 5820 deletions

View File

@@ -9,7 +9,7 @@ BBFILE_PATTERN_meta-fcb-looper = "^${LAYERDIR}/"
BBFILE_PRIORITY_meta-fcb-looper = "10"
LAYERVERSION_meta-fcb-looper = "1"
LAYERSERIES_COMPAT_meta-fcb-looper = "whinlatter"
LAYERSERIES_COMPAT_meta-fcb-looper = "scarthgap"
# Dependencies
LAYERDEPENDS_meta-fcb-looper = "core"
LAYERDEPENDS_meta-fcb-looper = "core openembedded-layer rust-bin-layer"

View File

@@ -0,0 +1,24 @@
[Unit]
Description=FCB Looper GUI Application
After=weston.service
Wants=weston.service
Requires=graphical.target
[Service]
Type=simple
User=root
Environment="WAYLAND_DISPLAY=wayland-0"
Environment="XDG_RUNTIME_DIR=/run/user/0"
Environment="RUST_LOG=info"
ExecStartPre=/bin/sleep 3
ExecStart=/usr/bin/gui
Restart=always
RestartSec=5
WatchdogSec=30
# Resource limits
MemoryMax=256M
CPUQuota=80%
[Install]
WantedBy=graphical.target

View File

@@ -0,0 +1,36 @@
SUMMARY = "FCB Looper GUI Application"
DESCRIPTION = "Rust egui GUI for FCB1010 looper pedal"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
inherit cargo_bin systemd externalsrc
# Network access required for cargo dependencies (Yocto 4.0+)
do_compile[network] = "1"
# Remove debug function - clean recipe
#CARGO_BUILD_FLAGS = "--target x86_64-poky-linux-gnu --release"
# Use external source directory
EXTERNALSRC = "/repo/gui"
EXTERNALSRC_BUILD = "${WORKDIR}/build"
# Disable externalsrc debug symlinks
EXTERNALSRC_SYMLINKS = ""
# Dependencies for GUI
DEPENDS += "wayland wayland-protocols libxkbcommon fontconfig"
RDEPENDS:${PN} += "weston liberation-fonts systemd"
# Systemd service
SRC_URI += "file://gui-app.service"
do_install:append() {
install -d ${D}${systemd_system_unitdir}
install -m 0644 ${WORKDIR}/gui-app.service ${D}${systemd_system_unitdir}/
}
SYSTEMD_SERVICE:${PN} = "gui-app.service"
SYSTEMD_AUTO_ENABLE:${PN} = "enable"
FILES:${PN} += "${systemd_system_unitdir}/gui-app.service"

View File

@@ -0,0 +1,29 @@
SUMMARY = "FCB1010 Looper System Image"
DESCRIPTION = "Minimal embedded Linux system with GUI for audio looper"
require recipes-core/images/core-image-base.bb
IMAGE_INSTALL += "\
packagegroup-core-boot \
gui-app \
weston \
weston-init \
liberation-fonts \
systemd \
openssh \
ssh-keys \
${CORE_IMAGE_EXTRA_INSTALL} \
"
# Optimize for embedded use
IMAGE_FEATURES += "read-only-rootfs ssh-server-openssh"
SYSTEMD_DEFAULT_TARGET = "graphical.target"
# Size optimization
IMAGE_ROOTFS_SIZE ?= "1048576"
IMAGE_OVERHEAD_FACTOR = "1.1"
# Image formats
IMAGE_FSTYPES += "ext4 tar.bz2"
LICENSE = "MIT"

View File

@@ -13,7 +13,7 @@ do_compile[noexec] = "1"
do_install() {
install -d ${D}${ROOT_HOME}/.ssh
install -m 0600 ${UNPACKDIR}/authorized_keys ${D}${ROOT_HOME}/.ssh/authorized_keys
install -m 0600 ${WORKDIR}/authorized_keys ${D}${ROOT_HOME}/.ssh/authorized_keys
}
FILES:${PN} = "${ROOT_HOME}/.ssh/authorized_keys"

View File

@@ -0,0 +1,2 @@
# Disable xwayland for embedded system
PACKAGECONFIG:remove = "xwayland"

View File

@@ -0,0 +1,2 @@
# Enable DRM backend for VirtIO GPU
PACKAGECONFIG:append = " drm"