Compare commits

..

12 Commits

Author SHA1 Message Date
8918fd4a3e wip: aarch64-unknown-linux-gnu-clang-19
Some checks failed
dustin/photoframe2/pipeline/pr-dev/ci There was a failure building this commit
2024-12-23 17:40:36 -06:00
339324362f fixup! wip: Install Firefox
Some checks failed
dustin/photoframe2/pipeline/pr-dev/ci There was a failure building this commit
2024-12-22 22:39:32 -06:00
047b8e4914 wip: use persistent volumes for portage, binpkgs 2024-12-22 22:04:00 -06:00
b86d347683 wip: Install Firefox 2024-12-22 20:29:29 -06:00
fd925c3da0 Update Aimee OS
All checks were successful
dustin/photoframe2/pipeline/head This commit looks good
2024-12-22 17:57:46 -06:00
428e30c01d ci: Clear env to run build
Some checks failed
dustin/photoframe2/pipeline/head There was a failure building this commit
We don't need any of the environment variables Jenkins sets, and some of
them (like `GIT_COMMIT`) interfere with building packages.
2024-12-22 14:34:48 -06:00
f560d965cf Update aimee-os
Some checks failed
dustin/photoframe2/pipeline/head There was a failure building this commit
2024-12-13 19:46:09 -06:00
4161d20de2 portage: Install-mask systemd-nsresourced
I don't know what this is for; I think it has something to do with
containers, possibly for `systemd-npsawn`?  It spawns a bunch of
processes and wastes several megabytes of RAM.
2024-12-13 19:44:30 -06:00
5871260128 customize: Add script
Deleting the initial password for `root` so we can log in to the serial
console for debugging.

Enabling _wpa_supplicant_ to connect to WiFi automatically.
2024-12-13 19:43:33 -06:00
a9e01d36e8 Add Rasperry Pi WiFi support
We need the Broadcom firmware from the _linux-firmware_ package (and
nothing else).  We also need _wpa_supplicant_, to configure the WiFi
connection.  Finally, we need to configure _systemd-networkd_ to manage
the network device.
2024-12-13 19:41:03 -06:00
26d83bd68b config: Set rootflags
Need to add `rootwait` because the Raspberry Pi SD card reader is really
slow and does not initialize in time for the kernel to load the root
filesystem from it.
2024-12-13 19:37:21 -06:00
3de06660b0 wip: Enable BCM2835_MMC
All checks were successful
dustin/photoframe2/pipeline/head This commit looks good
Trying to get the kernel to find the root filesystem on the SD card...
2024-12-10 14:43:10 -06:00
24 changed files with 27 additions and 299 deletions

View File

@@ -1,5 +1,2 @@
sys-boot/raspberrypi-firmware
sys-boot/u-boot
x11-libs/gtk+
media-libs/mesa
media-video/ffmpeg

10
ci/Jenkinsfile vendored
View File

@@ -8,11 +8,6 @@ pipeline {
}
}
options {
disableConcurrentBuilds()
lock 'aimee-os'
}
stages {
stage('Prepare') {
steps {
@@ -34,10 +29,5 @@ pipeline {
archiveArtifacts '*'
}
}
failure {
dir('/var/tmp/portage') {
archiveArtifacts '*/*/temp/*.log'
}
}
}
}

View File

@@ -13,7 +13,6 @@ spec:
capabilities:
add:
- CAP_SETFCAP
- CAP_SYS_CHROOT
volumeMounts:
- mountPath: /build
name: workspace-volume
@@ -32,9 +31,6 @@ spec:
subPath: distfiles
- mountPath: /var/db/repos/gentoo
name: portage
- mountPath: /var/tmp
name: workspace-volume
subPath: tmp
hostUsers: false
volumes:
- name: binpkgs

View File

@@ -1,8 +1,12 @@
arm_64bit=1
arm_boost=1
start_x=1
bootcode_delay=0
boot_delay=0
gpu_mem=32
kernel=u-boot.bin
enable_uart=1
@@ -10,10 +14,4 @@ dtoverlay=miniuart-bt
dtparam i2c_arm=on
display_auto_detect=1
dtoverlay=vc4-kms-v3d
dtoverlay=vc4-kms-dsi-ili9881-7inch
max_framebuffers=2
disable_fw_kms_setup=1
disable_overscan=1
dtparam=audio=on
device_tree=bcm2711-rpi-4-b.dtb

View File

@@ -1,18 +1,6 @@
#!/bin/sh
# vim: set sw=4 ts=4 sts=4 et :
. "${CONFIGDIR:=${PWD}}"/config
O=$1
export PORTAGE_CONFIGROOT="$O"/portage
if [ ! -f /mnt/gentoo/usr/lib64/firefox/firefox ]; then
${target}-emerge -vbknuUDj --onlydeps --with-bdeps=n www-client/firefox:esr
PORTAGE_BINHOST=https://distfiles.gentoo.org/releases/arm64/binpackages/23.0/arm64 \
${target}-emerge -vgKnj --root=/mnt/gentoo www-client/firefox:esr
fi
passwd -R /mnt/gentoo -d root
systemctl --root=/mnt/gentoo set-default graphical.target
systemctl --root=/mnt/gentoo enable wpa_supplicant@wlan0

View File

@@ -1,6 +1,2 @@
gui-apps/swayidle
gui-wm/sway
media-gfx/feh
media-video/pipewire
net-misc/curl
net-wireless/wpa_supplicant
www-client/firefox

View File

@@ -14,6 +14,9 @@ CONFIG_PCI=y
CONFIG_PCIE_BRCMSTB=y
CONFIG_BLK_DEV_NVME=y
CONFIG_MMC_BCM2835_SDHOST=y
CONFIG_MMC_BCM2835_MMC=y
CONFIG_FW_LOADER_COMPRESS=y
CONFIG_I2C=y
@@ -45,65 +48,12 @@ CONFIG_IPV6=y
CONFIG_IPV6_SIT=m
CONFIG_IPV6_SIT_6RD=m
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_GOODIX=m
CONFIG_TOUCHSCREEN_EDT_FT5X06=m
CONFIG_TOUCHSCREEN_RASPBERRYPI_FW=m
CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=m
CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_V2=m
# CONFIG_MEDIA_CEC_SUPPORT is not set
# CONFIG_MEDIA_SUPPORT is not set
CONFIG_DRM=m
CONFIG_DRM_KMS_HELPER=m
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_DISPLAY_HELPER=m
CONFIG_DRM_GEM_SHMEM_HELPER=m
CONFIG_DRM_SCHED=m
CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_DRM_PANEL_ILITEK_ILI9806E=m
CONFIG_DRM_PANEL_ILITEK_ILI9881C=m
CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=y
CONFIG_DRM_DISPLAY_CONNECTOR=m
CONFIG_DRM_TOSHIBA_TC358762=m
CONFIG_DRM_SIMPLE_BRIDGE=m
CONFIG_DRM_V3D=m
CONFIG_VC4=m
CONFIG_DRM_VC4_HDMI_CEC=y
CONFIG_DRM_RP1_DSI=m
CONFIG_DRM_RP1_DPI=m
CONFIG_DRM_RP1_VEC=m
CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=m
CONFIG_FB_BCM2708=y
CONFIG_FB_SIMPLE=y
CONFIG_FB_SSD1307=m
CONFIG_FB_RPISENSE=m
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
CONFIG_FB_IOMEM_HELPERS=y
CONFIG_FB_BACKLIGHT=m
CONFIG_BACKLIGHT_CLASS_DEVICE=m
CONFIG_BACKLIGHT_PWM=m
CONFIG_BACKLIGHT_RPI=m
CONFIG_BACKLIGHT_LM3630A=m
CONFIG_BACKLIGHT_GPIO=m
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_BCM_VC_SM_CMA=m
CONFIG_SOUND=y
CONFIG_SND=m
# CONFIG_SND_PCM_TIMER is not set
# CONFIG_SND_SUPPORT_OLD_API is not set
# CONFIG_SND_PROC_FS is not set
# CONFIG_SND_CTL_FAST_LOOKUP is not set
# CONFIG_SND_DRIVERS is not set
# CONFIG_SND_PCI is not set
# CONFIG_SND_SPI is not set
# CONFIG_SND_USB is not set
CONFIG_SND_SOC=m
CONFIG_SND_BCM2835_SOC_I2S=m
# CONFIG_SOUND is not set
# CONFIG_SND is not set
# CONFIG_SND_SOC is not set
CONFIG_AUDIT=y
CONFIG_SECURITY=y
@@ -112,15 +62,11 @@ CONFIG_SECURITY_SELINUX=y
CONFIG_DEFAULT_SECURITY_SELINUX=y
# DEFAULT_SECURITY_DAC is not set
CONFIG_BPF_SYSCALL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_MEMCG=y
CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_BPF=y
CONFIG_BLK_CGROUP=y
CONFIG_USER_NS=y
CONFIG_I2C_HID_OF_GOODIX=m
CONFIG_USB_DWC2=m
CONFIG_USB_DWC2_PCI=m
CONFIG_USB_ACM=m

View File

@@ -1,57 +0,0 @@
{
"policies": {
"BlockAboutAddons": true,
"BlockAboutConfig": true,
"BlockAboutProfiles": true,
"CaptivePortal": false,
"DisableDeveloperTools": true,
"DisableFeedbackCommands": true,
"DisableFirefoxScreenshots": true,
"DisableFirefoxSutudies": true,
"DisableFormHistory": true,
"DisableMasterPasswordCreation": true,
"DisablePasswordReveal": true,
"DisablePocket": true,
"DisablePrivateBrowsing": true,
"DisableProfileImport": true,
"DisableProfileRefresh": true,
"DisableSecurityBypass": true,
"DisableSetDesktopBackground": true,
"DNSOverHTTPS": {
"Enabled": false,
"Locked": true
},
"DontCheckDefaultBrowser": true,
"Homepage": {
"URL": "https://homeassistant.pyrocufflink.blue/",
"Locked": true,
"StartPage": "homepage-locked"
},
"NewTabPage": false,
"NoDefaultBookmarks": true,
"OfferToSaveLogins": false,
"OverrideFirstRunPage": "",
"OverridePostUpdatePage": "",
"PasswordManagerEnabled": false,
"Preferences": {
"browser.sessionstore.resume_from_crash": {
"Value": false
},
"browser.startup.couldRestoreSession.count": {
"Value": -1
},
"datareporting.policy.dataSubmissionPolicyBypassNotification": {
"Value": true
},
"extensions.activeThemeID": {
"Value": "firefox-compact-dark@mozilla.org"
}
},
"WebsiteFilter": {
"Block": ["<all_urls>"],
"Exceptions": [
"https://*.pyrocufflink.blue/*"
]
}
}
}

View File

@@ -1,7 +0,0 @@
account required pam_localuser.so
session optional pam_loginuid.so
session required pam_env.so envfile=/etc/profile.env
session required pam_limits.so
session required pam_env.so
session required pam_systemd.so

View File

@@ -1,19 +0,0 @@
# vim: set ft=swayconfig :
output DSI-1 resolution 720x1280 transform 90
input * {
map_to_output DSI-1
}
exec /usr/lib64/firefox/firefox
exec /usr/bin/photoframe stream
exec swayidle -w \
timeout 120 'photoframe show' resume 'photoframe hide'
for_window [title="Mozilla Firefox"] fullscreen
for_window [class="photoframe"] fullscreen
assign [title="Mozilla Firefox"] 1
assign [class="photoframe"] 2

View File

@@ -5,7 +5,6 @@ Type=ether wlan
DHCP=yes
[DHCPv4]
ClientIdentifier=mac
UseDomains=yes
[DHCPv6]

View File

@@ -1,4 +0,0 @@
sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAINZCN2cxMDwedJ1Ke23Z3CZRcOYjqW8fFqsooRus7RK0AAAABHNzaDo= dustin@rosalina.p
yrocufflink.blue
sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIAB6xTCSNz+AcQCWcyVKs84tThXN4wpLgCo2Lc48L6EsAAAABHNzaDo= dustin@luma.pyroc
ufflink.blue

View File

@@ -1,46 +0,0 @@
#!/bin/sh
photoframe_hide() {
swaymsg 'workspace 1'
}
photoframe_show() {
# Run on a separate workspace so Firefox can stay fullscreen, too
swaymsg 'workspace 2'
if [ -f /tmp/photoframe.pid ]; then
# feh is already running
return 0
fi
if [ ! -f /tmp/photoframe-current ]; then
cp /usr/share/feh/images/feh.png /tmp/photoframe-current
fi
feh -FZ --draw-exif --class photoframe /tmp/photoframe-current &
# Wait for the feh window to actually appear ...
swaymsg -t subscribe '["window"]'
# Sometimes, Sway's `for_window ... fullscreen` doesn't work?
swaymsg fullscreen
echo $! > /tmp/photoframe.pid
}
photoframe_stream() {
while :; do
curl -NsS https://photos.pyrocufflink.blue/stream |
while read url; do
curl -fsL -o /tmp/photoframe-next "${url}" || continue
mv /tmp/photoframe-next /tmp/photoframe-current
done
sleep 30
done
}
case $1 in
show)
photoframe_show
;;
hide)
photoframe_hide
;;
stream)
photoframe_stream
;;
esac

View File

@@ -1,3 +0,0 @@
enable wpa_supplicant@.service wlan0
enable kiosk.service

View File

@@ -1,31 +0,0 @@
[Unit]
After=systemd-user-sessions.service plymouth-quit-wait.service
Before=graphical.target
ConditionPathExists=/dev/tty1
Wants=dbus.socket systemd-logind.service
After=dbus.socket systemd-logind.service
Conflicts=getty@tty1.service
After=getty@tty1.service
Wants=time-sync.target
After=time-sync.target
[Service]
StateDirectory=%N
CacheDirectory=%N
Environment=XDG_CACHE_HOME=%C/%N
ExecStart=/usr/bin/sway -c /etc/sway/kiosk.conf
User=kiosk
StandardInput=tty
StandardOutput=tty
StandardError=journal
TTYPath=/dev/tty1
TTYReset=yes
TTYVHangup=yes
TTYVTDisallocate=yes
PAMName=kiosk
UtmpMode=user
UtmpIdentifier=tty1
[Install]
WantedBy=graphical.target
Alias=display-manager.service

View File

@@ -1,2 +0,0 @@
g kiosk -
u kiosk - "Kiosk User" /var/lib/kiosk /bin/sh

View File

@@ -1 +1 @@
USE="${USE} wayland"
USE="${USE} -X wayland"

View File

@@ -0,0 +1 @@
dev-libs/nss ~amd64

View File

@@ -0,0 +1,3 @@
llvm-core/clang-toolchain-symlinks multilib-symlinks
llvm-core/lld-toolchain-symlinks multilib-symlinks
llvm-core/llvm-toolchain-symlinks multilib-symlinks

View File

@@ -2,14 +2,5 @@ media-libs/harfbuzz -cairo
media-libs/libvpx postproc
media-libs/mesa -llvm wayland
media-video/ffmpeg openssl -gnutls
# Must match USE flags of the www-client/firefox package on the
# offical Gentoo binhost
www-client/firefox X clang dbus gmp-autoupdate gnome-shell jumbo-build pulseaudio system-av1 system-harfbuzz system-icu system-jpeg system-libevent system-libvpx system-webp telemetry wayland LLVM_SLOT: 19 -17 -18
x11-libs/cairo X
www-client/firefox -telemetry dbus wayland
x11-libs/gtk+ wayland
media-libs/libglvnd X
# Firefox requires a PulseAudio-compatible sound server; we use Pipewire
media-video/pipewire sound-server
media-libs/libcanberra udev alsa

View File

@@ -1,5 +0,0 @@
gui-apps/swayidle -systemd
gui-libs/wlroots X
gui-wm/sway X
media-gfx/feh exif inotify
net-misc/curl -alt-svc -ftp -hsts -http3 -imap -pop3 -progress-meter -psl -quic -smtp -tftp -websockets -adns -http2 CURL_QUIC: -*

View File

@@ -1,10 +1,14 @@
#!/bin/sh
. "${CONFIGDIR:=${PWD}}"/config
if [ ! -f /var/db/repos/gentoo/metadata/timestamp ]; then
emerge-webrsync
else
emaint sync
fi
mkdir -p /etc/portage/package.use
mkdir -p /etc/portage/make.conf
echo 'virtual/libudev systemd' >> /etc/portage/package.use/systemd
cp portage/package.use/clang /etc/portage/package.use/
cp portage/package.use/firefox /etc/portage/package.use/
cp portage/make.conf/introspection.conf /etc/portage/make.conf/
cp portage/make.conf/wayland.conf /etc/portage/make.conf/
@@ -13,5 +17,3 @@ echo 'VIDEO_CARDS=""' > /etc/portage/make.conf/videocards.conf
xargs -r emerge -vbknuUj --rebuilt-binaries=y --color=y <<EOF
dev-libs/nss
EOF
[ -d /etc/portage/gnupg ] || getuto -v

View File

@@ -1,5 +0,0 @@
etc/ssh/ssh_config.d/20-systemd-ssh-proxy.conf
etc/ssh/sshd_config.d/20-systemd-userdb.conf
usr/lib/systemd/ssh_config.d
usr/lib/systemd/sshd_config.d
usr/lib/systemd/system-generators/systemd-ssh-generator