Compare commits

..

9 Commits

Author SHA1 Message Date
9ab95e37d2 network: Use MAC address as DHCP client ID
All checks were successful
dustin/photoframe2/pipeline/pr-main This commit looks good
_systemd-networkd_ uses a randomly-generated ID as the DHCP client
identifier by default.  On Aimee OS, it is not able to persist this ID
between boots; I think it may derive the value from the machine ID.  To
avoid getting a new IP address every boot, we can configure it to use
the MAC address of the device as the DHCP client ID.
2025-01-02 17:53:40 -06:00
948a14d615 Update Aimee OS 2025-01-02 17:53:40 -06:00
3b68e24c61 prepare: Never sync Portage repos
To minimize unexpected changes between builds, I'm going to schedule a
separate task to sync the Portage repositories.  This way, we know that
two runs in a row from the same source will have the same packages,
unless we have specifically updated Portage.
2025-01-02 17:53:40 -06:00
5e0eb02894 overlay: Add authorized SSH keys for root
Adding my personal keys so I can manage the system remotely.
2025-01-02 17:53:40 -06:00
e753c12de6 kernel: Enable user namespaces for Firefox
Firefox complains about "security features" not working if this is not
enabled.
2025-01-02 17:53:40 -06:00
cdb643729d exclude: Omit systemd-ssh-generator
This thing is pointless.

Unfortunately, we cannot use Portage's `INSTALL_MASK` feature as it
doesn't work for symbolic links. Since _systemd_ installs symlinks in
`/etc/ssh` that point to files we would mask, those symlinks would point
to nothing, which would cause `sshd` to fail to start as it is unable to
open those files.  Thus, we have to omit these files by excluding them
from the squashfs image.
2025-01-02 17:53:40 -06:00
ca60b45927 kernel: Enable BPF firewall for systemd
_systemd_ complains if this is not enabled, as it prevents certain
sandbox features from working.
2025-01-02 17:53:40 -06:00
a3f5605ed4 kernel/firmware: Support RPi GPU, touchscreen
Getting the Raspberry Pi 4 GPU and 7-inch Touch Display 2 working was
quite challenging.  Several kernel drivers are needed, beyond the
obvious VC4 and V3D, like voltage regulators and backlight controls.
Even with all the drivers enabled, I still had trouble getting
`/dev/dri/card1` (the display device, as opposed to `/dev/dri/card0`,
the 3D rendering device) to appear until I explicitly enabled the
`vc4-kms-dsi-ili9881-7inch` device tree overlay.  I am not entirely sure
why this is necessary, since `display_auto_detect` supposedly should
have added this overlay automatically.  I am also not sure how it would
work if I wanted to use an HDMI monitor instead of the DSI panel, but
fortunately, for this project, that's not necessary.
2025-01-02 17:53:40 -06:00
efa5b68b25 Begin implementing kiosk browser
This commit introduces the _kiosk.service_ unit, which launches `sway`
to start a Wayland session, which in turn launches Firefox.  The
`policies.json` file configures Firefox in a sort of kiosk mode,
disabling most features and blocking all but the desginated sites.
Unfortunately, running `firefox --kiosk` doesn't actually work: Firefox
apparently runs, but doesn't draw anything on the screen.

Note that we have to launch Firefox by its "real" path, since
`/usr/bin/firefox` is a Bash script, and Bash is not installed.
Fortunately, the wrapper script doesn't do anything we really care
about, so bypassing it is fine.
2025-01-02 17:53:40 -06:00
2 changed files with 4 additions and 0 deletions

View File

@@ -37,6 +37,9 @@
"browser.sessionstore.resume_from_crash": {
"Value": false
},
"browser.startup.couldRestoreSession.cound": {
"Value": -1
},
"datareporting.policy.dataSubmissionPolicyBypassNotification": {
"Value": true
},

View File

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