初始化奇妙小屏幕控制器项目

This commit is contained in:
2026-09-08 22:56:52 +08:00
commit 8d368de3b5
491 changed files with 67678 additions and 0 deletions
@@ -0,0 +1,4 @@
PermitRootLogin no
PasswordAuthentication yes
KbdInteractiveAuthentication no
PermitEmptyPasswords no
@@ -0,0 +1,14 @@
[Unit]
Description=Confirm one-shot Matrix AXP313A kernel health
After=matrix-screen-controller.service
Wants=matrix-screen-controller.service
OnFailure=matrix-axp313a-rollback.service
ConditionKernelCommandLine=matrix_kernel_candidate=1
[Service]
Type=oneshot
ExecStart=/usr/bin/python3 /opt/matrix-screen-controller-system/axp313a_kernel_health.py
TimeoutStartSec=90
[Install]
WantedBy=multi-user.target
@@ -0,0 +1,9 @@
[Unit]
Description=Return to original WalnutPi kernel after candidate failure
DefaultDependencies=no
After=matrix-axp313a-health.service
[Service]
Type=oneshot
ExecStart=-/opt/matrix-screen-controller/app/display/native/hub75_safeoff
ExecStart=/bin/systemctl --no-block reboot
@@ -0,0 +1,15 @@
[Unit]
Description=Matrix Screen Controller one-time offline image provisioning
RequiresMountsFor=/boot
Wants=NetworkManager.service
After=local-fs.target NetworkManager.service resize_part.service
Before=ssh.service boot_script.service matrix-screen-controller.service
ConditionPathExists=/boot/MSCINIT
[Service]
Type=oneshot
ExecStart=/boot/MSCINIT
TimeoutStartSec=infinity
[Install]
WantedBy=multi-user.target
@@ -0,0 +1,15 @@
[Unit]
Description=WalnutPi Matrix Screen Controller OTA Worker
After=matrix-screen-controller.service
ConditionPathExists=/run/matrix-screen-controller/ota-request.json
[Service]
Type=oneshot
WorkingDirectory=/opt/matrix-screen-controller
Environment=PYTHONDONTWRITEBYTECODE=1
ExecStart=/opt/matrix-screen-controller/.venv/bin/python -m scripts.ota_worker
TimeoutStartSec=infinity
Nice=5
[Install]
WantedBy=multi-user.target
@@ -0,0 +1,31 @@
[Unit]
Description=Temporary isolated animation thumbnail GPIO performance test
After=NetworkManager.service
Wants=NetworkManager.service
Conflicts=matrix-screen-controller.service
[Service]
Type=simple
WorkingDirectory=/var/tmp/matrix-screen-controller-preview-candidate-20260824/source
Environment=MATRIX_DRIVER=auto
Environment=MATRIX_DATA_DIR=/var/tmp/matrix-screen-controller-preview-perf-20260824
Environment=MATRIX_RUNTIME_DIR=/run/matrix-screen-controller-preview-perf-20260824
Environment=PYTHONDONTWRITEBYTECODE=1
Environment=MATRIX_MEDIA_WORKER_MODE=inline
RuntimeDirectory=matrix-screen-controller-preview-perf-20260824
RuntimeDirectoryMode=0750
RuntimeDirectoryPreserve=restart
CPUAffinity=0 1 2
LimitRTPRIO=50
LimitMEMLOCK=infinity
LimitRTTIME=infinity
ExecStartPre=/bin/sh -c 'cat /proc/sys/kernel/sched_rt_runtime_us > /run/matrix-screen-controller-preview-perf-20260824/sched_rt_runtime_us.original && printf "%%s\n" -1 > /proc/sys/kernel/sched_rt_runtime_us'
ExecStartPre=/var/tmp/matrix-screen-controller-preview-candidate-20260824/source/.venv/bin/python /var/tmp/matrix-screen-controller-preview-candidate-20260824/source/scripts/dedicated_host.py check --service
ExecStartPre=/var/tmp/matrix-screen-controller-preview-candidate-20260824/source/app/display/native/hub75_safeoff
ExecStart=/var/tmp/matrix-screen-controller-preview-candidate-20260824/source/.venv/bin/python -m uvicorn app.main:app --host 0.0.0.0 --port 18081
ExecStopPost=/var/tmp/matrix-screen-controller-preview-candidate-20260824/source/app/display/native/hub75_safeoff
ExecStopPost=/var/tmp/matrix-screen-controller-preview-candidate-20260824/source/.venv/bin/python -m app.system.performance restore --runtime-root /run/matrix-screen-controller-preview-perf-20260824
ExecStopPost=/bin/sh -c 'if test -f /run/matrix-screen-controller-preview-perf-20260824/sched_rt_runtime_us.original; then cat /run/matrix-screen-controller-preview-perf-20260824/sched_rt_runtime_us.original > /proc/sys/kernel/sched_rt_runtime_us; rm -f /run/matrix-screen-controller-preview-perf-20260824/sched_rt_runtime_us.original; fi'
Restart=no
TimeoutStopSec=30
@@ -0,0 +1,34 @@
[Unit]
Description=WalnutPi H618 Matrix Screen Controller
After=NetworkManager.service
Wants=NetworkManager.service
[Service]
Type=simple
WorkingDirectory=/opt/matrix-screen-controller
Environment=MATRIX_DRIVER=auto
Environment=MATRIX_DATA_DIR=/var/lib/matrix-screen-controller
Environment=MATRIX_RUNTIME_DIR=/run/matrix-screen-controller
Environment=PYTHONDONTWRITEBYTECODE=1
Environment=MATRIX_MEDIA_WORKER_MODE=systemd
StateDirectory=matrix-screen-controller
StateDirectoryMode=0711
RuntimeDirectory=matrix-screen-controller
RuntimeDirectoryMode=0750
RuntimeDirectoryPreserve=yes
CPUAffinity=0 1 2
LimitRTPRIO=50
LimitMEMLOCK=infinity
LimitRTTIME=infinity
ExecStartPre=/bin/sh -c 'cat /proc/sys/kernel/sched_rt_runtime_us > /run/matrix-screen-controller/sched_rt_runtime_us.original && printf "%%s\n" -1 > /proc/sys/kernel/sched_rt_runtime_us'
ExecStartPre=/opt/matrix-screen-controller/.venv/bin/python /opt/matrix-screen-controller/scripts/dedicated_host.py check --service
ExecStartPre=/opt/matrix-screen-controller/app/display/native/hub75_safeoff
ExecStart=/opt/matrix-screen-controller/.venv/bin/python -m uvicorn app.main:app --host 0.0.0.0 --port 8080
ExecStopPost=/opt/matrix-screen-controller/app/display/native/hub75_safeoff
ExecStopPost=/opt/matrix-screen-controller/.venv/bin/python -m app.system.performance restore --runtime-root /run/matrix-screen-controller
ExecStopPost=/bin/sh -c 'if test -f /run/matrix-screen-controller/sched_rt_runtime_us.original; then cat /run/matrix-screen-controller/sched_rt_runtime_us.original > /proc/sys/kernel/sched_rt_runtime_us; rm -f /run/matrix-screen-controller/sched_rt_runtime_us.original; fi'
Restart=on-failure
RestartSec=3
[Install]
WantedBy=multi-user.target
@@ -0,0 +1,24 @@
[Unit]
Description=Matrix Screen isolated media converter %i
After=matrix-screen-controller.service
[Service]
Type=oneshot
WorkingDirectory=/opt/matrix-screen-controller
Environment=MATRIX_DATA_DIR=/var/lib/matrix-screen-controller
Environment=MATRIX_RUNTIME_DIR=/run/matrix-screen-controller
Environment=PYTHONDONTWRITEBYTECODE=1
ExecStart=/usr/bin/flock --exclusive /run/matrix-screen-controller/converter.lock /opt/matrix-screen-controller/.venv/bin/python -m app.media.worker %i
AllowedCPUs=0 1
CPUAffinity=0 1
CPUQuota=150%
MemoryMax=384M
MemorySwapMax=0
IOWeight=10
Nice=10
PrivateNetwork=yes
NoNewPrivileges=yes
ProtectSystem=strict
ProtectHome=yes
ReadWritePaths=/var/lib/matrix-screen-controller /run/matrix-screen-controller
TimeoutStartSec=4h
@@ -0,0 +1,19 @@
[Unit]
Description=Matrix Screen Controller FRP Client
After=network-online.target
Wants=network-online.target
ConditionPathExists=/var/lib/matrix-screen-controller/frp/active.env
[Service]
Type=simple
EnvironmentFile=/var/lib/matrix-screen-controller/frp/active.env
WorkingDirectory=/var/lib/matrix-screen-controller/frp
UMask=0027
ExecStart=/usr/local/bin/frpc -c ${FRPC_CONFIG} --allow-unsafe=TokenSourceExec
Restart=on-failure
RestartSec=5
TimeoutStopSec=15
KillSignal=SIGTERM
[Install]
WantedBy=multi-user.target