Skip to content

MagedGDEV/LumOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

LumOS πŸ’‘

Qt6 Smart Home Light Controller Β· Yocto Kirkstone Β· Raspberry Pi Β· GPIO

A fullscreen Qt6 QML application cross-compiled with Yocto for Raspberry Pi 2, running on a Wayland/Weston compositor. Built and deployed inside a Docker container using kas for reproducible layer management.

Current Progress

Lumina.mp4
Milestone Status
Hello World Application βœ… Done
GPIO LED control button βœ… Done
App boots on Pi directly βœ… Done
Open lamp with voice βœ… Done
Better UI / Dashboard πŸ”œ Coming
Support multiple devices in a room πŸ”œ Coming

Stack

Layer Technology
UI Framework Qt-6.9.3 / QML
Voice Recognition Python / Vosk model
Display Server Wayland / Weston
Build System Yocto Project (Kirkstone)
Layer Management kas
Build Environment Docker (Ubuntu 22.04)
Target Hardware Raspberry Pi 2

Build Instructions

Prerequisites

  • Docker Desktop installed
  • At least 8GB RAM allocated to Docker
  • At least 300GB disk space
  • Install vosk model into voice/model to work on macos

Note

You dont need to download for a model for raspberrypi and if you need to run QtApp on macos you need to run voice.py on it own and install voice/requirement.txt


Step 1 β€” Build the Docker image

docker build -t yocto-builder ./docker

Step 2 β€” Create a persistent Linux volume (Optional)

docker volume create yocto-build

Step 3 β€” Start the container

On macOS:

docker run -it \
  -v yocto-build:/yocto \
  -v $(pwd):/source \
  yocto-builder

Step 4 β€” Copy project into the volume

cp -r /source/app /yocto/
cp -r /source/meta-app /yocto/
cp -r /source/kas.yml /yocto/

Step 5 β€” Build with kas

cd /yocto
kas build kas.yml

First build takes 2-4 hours. Subsequent builds use sstate cache and are much faster.

Step 6 β€” Copy the image to your machine

Open a new terminal on your host machine and run:

docker cp <container_id>:/yocto/build/tmp/deploy/images/raspberrypi2/core-image-weston-raspberrypi2-XXXXXX.rootfs.wic.bz2 ./

Find your container ID with:

docker ps

Replace XXXXXX with your timestamp generated

Step 7 β€” Flash to SD card

Decompress the image:

bzip2 -d core-image-weston-raspberrypi2.rootfs.wic.bz2

Find your SD card device:

# On macOS
diskutil list

Flash the image:

# On macOS (replace /dev/diskN with your SD card)
sudo dd if=core-image-weston-raspberrypi2-XXXXXX.rootfs.wic of=/dev/rdiskN bs=4m status=progress

Step 8 β€” Boot the Raspberry Pi

Insert the SD card into your Raspberry Pi 2, connect a display, and power on. The application launches automatically on boot via systemd.

Attach a Second Terminal to the Running Container

docker ps  # get container ID
docker exec -it <container_id> bash

About

A simple smart home light controller built to explore embedded Linux. Custom Yocto image, KAS, Docker, Qt/QML UI, Python Voice recognition and GPIO control on a Raspberry Pi. πŸ πŸ’‘

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors