This commit is contained in:
2026-08-28 10:04:04 +02:00
parent c9117d9014
commit d83d84a674
6 changed files with 133 additions and 8 deletions
+34 -6
View File
@@ -2,7 +2,7 @@
BUILD_DIR ?= build
TARGET ?= forge
RUN_ARGS ?= -tf --project=project -is=480 --demo
RUN_ARGS ?= --project=$(PWD)/project -is=576
VERSION ?= invar-$(shell grep -Eo '[0-9]+\.[0-9]+\.[0-9]+' forge-steel/configure.ac)
# FILES
@@ -40,11 +40,35 @@ $(BUILD_DIR)/$(TARGET): forge-steel/src/main.c forge-steel/hashmap.c/hashmap.c f
# ACTIONS
.PHONY: install
install:
.PHONY: remove-passwd
remove-passwd:
sudo passwd -d forge
.PHONY: apt-install
apt-install:
sudo apt update
sudo apt install -y weston libglfw3-dev libgl-dev libasound2-dev libv4l-dev
sudo usermod -a -G render $(shell whoami)
sudo apt install -y weston kitty libglfw3-dev libgl-dev libasound2-dev libv4l-dev
.PHONY: setup-weston:
setup-weston:
ln -s $(PWD)/system/weston.ini $(XDG_CONFIG_HOME)/weston.ini
.PHONY: setup-system-services:
setup-system-services:
sudo ln -s $(PWD)/system/getty@tty1.service /etc/systemd/system/getty@tty1.service
sudo systemctl daemon-reload
sudo systemctl enable getty@tty1.service
.PHONY: setup-user-services:
setup-user-services:
sudo ln -s $(PWD)/system/weston.service /etc/systemd/user/weston.service
sudo ln -s $(PWD)/system/weston.socket /etc/systemd/user/weston.socket
systemctl --user daemon-reload
systemctl --user enable weston seatd
.PHONY: install
install: remove-passwd apt-install setup-weston setup-system-services setup-user-services
.PHONY: clean
clean:
@@ -61,6 +85,10 @@ run: $(BUILD_DIR)/$(TARGET)
submodule-init:
git submodule update --init --recursive
.PHONY: start-weston
start-weston:
weston --shell=kiosk-shell.so --xwayland -- kitty --hold $(BUILD_DIR)/$(TARGET) $(RUN_ARGS)
.PHONY: start
start:
weston --shell=kiosk-shell.so --xwayland -- $(BUILD_DIR)/$(TARGET) $(RUN_ARGS)
$(BUILD_DIR)/$(TARGET) $(RUN_ARGS)
+14 -2
View File
@@ -43,12 +43,24 @@ sudo apt install mesa-utils libglfw3-dev libgl-dev libasound2-dev libv4l-dev lib
* https://raspberry.tips/en/raspberrypi-tutorials/raspberry-pi-overclocking-3-4-5
* https://www.baeldung.com/linux/opengl-check-working
* https://ttt.io/glsl-raspberry-pi
* https://drgeoffathome.wordpress.com/2020/02/03/opengl-without-x-on-raspberry-pi-4-part-1/
* https://manpages.org/weston
* wayland.pages.freedesktop.org/weston/toc/kiosk-shell.html
* https://wayland.pages.freedesktop.org/weston/toc/kiosk-shell.html
* https://man.archlinux.org/man/weston.ini.5.html
* https://pimylifeup.com/raspberry-pi-screen-resolution/
* https://renesas-rz.github.io/rzg_hmi_sdk/v2.3.0.0/wiki/common_change-display-resolution/
* https://developer.technexion.com/docs/embedded-software/linux/usage-guides/display/setting-hdmi-resolution-in-weston
* https://linuxvox.com/blog/linux-autologin/
## TODO
Logical
* Play on start
* Save while running
*
Physical
* PAL/NTSC switch
* Sync in -> fake midi ?
* rasp compute
+49
View File
@@ -0,0 +1,49 @@
[Unit]
Description=Getty on %I
After=systemd-user-sessions.service plymouth-quit-wait.service getty-pre.target
# If additional gettys are spawned during boot then we should make
# sure that this is synchronized before getty.target, even though
# getty.target didn't actually pull it in.
Before=getty.target
IgnoreOnIsolate=yes
# IgnoreOnIsolate causes issues with sulogin, if someone isolates
# rescue.target or starts rescue.service from multi-user.target or
# graphical.target.
Conflicts=rescue.service
Before=rescue.service
# On systems without virtual consoles, don't start any getty. Note
# that serial gettys are covered by serial-getty@.service, not this
# unit.
ConditionPathExists=/dev/tty0
[Service]
ExecStart=-/usr/bin/agetty --autologin forge --noreset --noclear %I ${TERM}
Type=idle
Restart=always
RestartSec=0
UtmpIdentifier=%I
StandardInput=tty
StandardOutput=tty
TTYPath=/dev/%I
TTYReset=yes
TTYVHangup=yes
TTYVTDisallocate=yes
IgnoreSIGPIPE=no
SendSIGHUP=yes
ImportCredential=tty.virtual.%I.agetty.*:agetty.
ImportCredential=tty.virtual.%I.login.*:login.
ImportCredential=agetty.*
ImportCredential=login.*
ImportCredential=shell.*
# Unset locale for the console getty since the console has problems
# displaying some internationalized messages.
UnsetEnvironment=LANG LANGUAGE LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT LC_IDENTIFICATION
[Install]
WantedBy=getty.target
DefaultInstance=tty1
+6
View File
@@ -0,0 +1,6 @@
[core]
idle-time=0
[output]
name=Composite-1
mode=720x576i
+23
View File
@@ -0,0 +1,23 @@
[Unit]
Description=Weston, a Wayland compositor, as a user service
# Activate using a systemd socket
Requires=weston.socket
After=weston.socket
# Since we are part of the graphical session, make sure we are started before
Before=graphical-session.target
[Service]
Type=notify
TimeoutStartSec=60
WatchdogSec=20
# Defaults to journal
#StandardOutput=journal
StandardError=journal
# add a ~/.config/weston.ini and weston will pick-it up
ExecStart=/usr/bin/weston --modules=systemd-notify.so --shell=kiosk-shell.so --xwayland -- kitty --hold make -C /opt/forge-invar start
[Install]
WantedBy=graphical-session.target
+7
View File
@@ -0,0 +1,7 @@
[Unit]
Description=Weston, a Wayland compositor
Documentation=man:weston(1) man:weston.ini(5)
Documentation=https://wayland.freedesktop.org/
[Socket]
ListenStream=%t/wayland-0