feat: working sd card automounting with via udev

This commit is contained in:
Lance Vick 2024-06-27 00:14:34 -07:00
parent f735b7e3af
commit 51ec4ca719
Signed by: lrvick
GPG Key ID: 8E47A1EC35A1551D
3 changed files with 17 additions and 11 deletions

View File

@ -169,7 +169,7 @@ COPY sdcard sdcard
RUN <<-EOF RUN <<-EOF
set -eux set -eux
dd if=/dev/zero of=sdcard.img bs=1M count=32 dd if=/dev/zero of=sdcard.img bs=1M count=32
mformat -i sdcard.img :: mformat -v external -i sdcard.img ::
mcopy -i sdcard.img -s sdcard/* :: mcopy -i sdcard.img -s sdcard/* ::
EOF EOF

View File

@ -21,7 +21,9 @@ vm-bios: out/airgap.iso
-usb \ -usb \
-device sdhci-pci \ -device sdhci-pci \
-device sd-card,drive=external \ -device sd-card,drive=external \
-usbdevice tablet \
-drive id=external,if=none,format=raw,file=out/sdcard.img \ -drive id=external,if=none,format=raw,file=out/sdcard.img \
-display gtk,show-menubar=off,zoom-to-fit=on \
-cdrom "out/airgap.iso" -cdrom "out/airgap.iso"
.PHONY: vm-efi .PHONY: vm-efi
@ -34,7 +36,9 @@ vm-efi: out/airgap.iso
-usb \ -usb \
-device sdhci-pci \ -device sdhci-pci \
-device sd-card,drive=external \ -device sd-card,drive=external \
-usbdevice tablet \
-drive id=external,if=none,format=raw,file=out/sdcard.img \ -drive id=external,if=none,format=raw,file=out/sdcard.img \
-display gtk,show-menubar=off,zoom-to-fit=on \
-cdrom "out/airgap.iso" -cdrom "out/airgap.iso"
out/airgap.iso: Containerfile $(shell git ls-files rootfs) out/airgap.iso: Containerfile $(shell git ls-files rootfs)

View File

@ -1,13 +1,15 @@
#KERNEL!="sd[a-z][0-9]", GOTO="sd_cards_auto_mount_end" KERNEL!="mmcblk[0-9]p[0-9]|sd[a-z][0-9]", GOTO="automount_end"
KERNEL!="mmcblk[0-9]p[0-9]|sd[a-z][0-9]", GOTO="sd_cards_auto_mount_end" ACTION=="add", PROGRAM!="/sbin/blkid %N", GOTO="automount_end"
IMPORT{program}="/sbin/blkid -o udev -p %N"
# Global mount options ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ACTION=="add", ENV{mount_options}="relatime" ENV{ID_FS_LABEL}=="", ENV{dir_name}="%k"
# Filesystem specific options
ACTION=="add", IMPORT{program}="/sbin/blkid -o udev -p %N" ACTION=="add", IMPORT{program}="/sbin/blkid -o udev -p %N"
ACTION=="add", ENV{ID_FS_TYPE}=="vfat", ENV{mount_options}="$env{mount_options},utf8,flush,user,umask=0000" ACTION=="add", ENV{ID_FS_TYPE}=="vfat", ENV{mount_options}="relatime,utf8,flush,user,umask=0000"
ACTION=="add", RUN+="/bin/mkdir -p /media/sd-%k", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/sd-%k" ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}"
ACTION=="add", RUN+="/usr/local/bin/autorun /media/sd-%k" ACTION=="add", RUN+="/usr/local/bin/autorun /media/%E{dir_name}"
ACTION=="remove", RUN+="/bin/umount -l /media/sd-%k", RUN+="/bin/rmdir /media/sd-%k"
LABEL="sd_cards_auto_mount_end" ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}"
LABEL="automount_end"