15 lines
922 B
Text
15 lines
922 B
Text
#!/sbin/openrc-run
|
|
# B12Q: B1 from the LFS init - /dev/disk/by-partlabel links, modem FAT RO at /firmware, firmware_class path. Unchanged logic.
|
|
description="Aurora modem firmware FAT (RO)"
|
|
depend() { need aurora-ro; }
|
|
start() {
|
|
ebegin "Mounting modem FAT RO at /firmware"
|
|
mkdir -p /dev/disk/by-partlabel /firmware
|
|
for p in /sys/class/block/mmcblk0p*; do n=$(sed -n 's/^PARTNAME=//p' $p/uevent); [ -n "$n" ] && ln -sf /dev/$(basename $p) /dev/disk/by-partlabel/$n; done
|
|
M=$(readlink /dev/disk/by-partlabel/modem)
|
|
[ "$(blockdev --getro $M)" = 1 ] || { eend 1 "modem partition not RO"; return 1; }
|
|
grep -q " /firmware " /proc/mounts || mount -t vfat -o ro,nosuid,nodev,noexec,shortname=lower $M /firmware || { eend 1 mount; return 1; }
|
|
grep " /firmware " /proc/mounts | grep -q " ro," || { umount /firmware; eend 1 "not ro"; return 1; }
|
|
echo -n /firmware/image > /sys/module/firmware_class/parameters/path
|
|
eend 0
|
|
}
|