Files
Arch-R/scripts/archr-memory-manager
Douglas Teles 06dc2d16f3 Add system scripts, services, and boot splash
System daemons: hotkeys (volume/brightness), automount, bluetooth agent,
memory manager, sleep/suspend, USB gadget mode, save-config persistence.

Boot splash: initramfs SVG renderer (fbsplash + svg_parser) for 0.7s splash.

Panel tools: generate-panel-dtbos.sh rewrite, convert-panel.py for ROCKNIX
panel data extraction, archr-dtbo.py for runtime overlay management.

Input: archr-gptokeyb.c gamepad-to-keyboard mapper via uinput.

Launch wrappers: emulationstation.sh and retroarch-launch.sh updated for
KMS/DRM + Mesa 26 Panfrost environment.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 17:22:30 -03:00

75 lines
1.9 KiB
Bash

#!/bin/bash
# Arch R — Memory Manager
# Configures ZRAM swap and manages memory for optimal gaming performance.
#
# Usage:
# archr-memory-manager setup — Configure and enable ZRAM swap
# archr-memory-manager stop — Disable ZRAM swap
# archr-memory-manager status — Show memory/swap status
ZRAM_SIZE_MB=128
ZRAM_ALGO="lzo"
log() { logger -t archr-mem "$1"; }
setup_swap() {
# Skip if already active
if swapon --show=NAME --noheadings | grep -q zram; then
log "ZRAM swap already active"
return 0
fi
# Load zram module
modprobe zram num_devices=1 2>/dev/null
# Wait for device
for i in $(seq 1 10); do
[ -e /sys/block/zram0 ] && break
sleep 0.1
done
if [ ! -e /sys/block/zram0 ]; then
log "ERROR: zram0 device not found"
return 1
fi
# Configure
echo "$ZRAM_ALGO" > /sys/block/zram0/comp_algorithm
echo "$((ZRAM_SIZE_MB * 1024 * 1024))" > /sys/block/zram0/disksize
# Format and enable
mkswap /dev/zram0 >/dev/null 2>&1
swapon -p 100 /dev/zram0
log "ZRAM swap enabled: ${ZRAM_SIZE_MB}MB ($ZRAM_ALGO)"
}
stop_swap() {
swapoff /dev/zram0 2>/dev/null
echo 1 > /sys/block/zram0/reset 2>/dev/null
log "ZRAM swap disabled"
}
show_status() {
echo "=== Memory Status ==="
free -h
echo ""
echo "=== Swap Devices ==="
swapon --show 2>/dev/null || echo "No swap active"
echo ""
if [ -e /sys/block/zram0 ]; then
echo "=== ZRAM ==="
echo "Algorithm: $(cat /sys/block/zram0/comp_algorithm 2>/dev/null)"
echo "Disk size: $(cat /sys/block/zram0/disksize 2>/dev/null) bytes"
echo "Compressed: $(cat /sys/block/zram0/mm_stat 2>/dev/null | awk '{print $2}') bytes"
fi
}
case "${1:-setup}" in
setup) setup_swap ;;
stop) stop_swap ;;
reload) stop_swap; setup_swap ;;
status) show_status ;;
*) echo "Usage: archr-memory-manager {setup|stop|reload|status}" ;;
esac