blob: 9d08d542152762357d9f40709fca0a778cdc26ad [file]
#!/bin/bash
dtbo_name="${1:?Missing DTBO name}"
dtbo=/usr/share/overlay-dts/"${dtbo_name}".dtbo
if [[ ! -e "$dtbo" ]]; then
echo "DTBO file missing: $dtbo" >&2
exit 1
fi
modprobe -v dtbocfg || exit
overlays=/sys/kernel/config/device-tree/overlays
if [[ ! -e "$overlays" ]]; then
END=$((SECONDS+10))
echo 'Waiting for dtbocfg to set up' >&2
while [[ ! -e "$overlays" ]]; do
if (( SECONDS >= END )); then
echo 'Timed out waiting for dtbocfg' >&2
exit 1
fi
sleep 0.1
done
fi
dtbodir="$overlays"/"$dtbo_name"
[[ -d "$dtbodir" ]] || mkdir -v "$dtbodir" || exit
if [[ "$(cat "$dtbodir"/status 2>/dev/null)" != "1" ]]; then
echo "Writing dtbo $dtbo_name" >&2
cat "$dtbo" >"$dtbodir"/dtbo
echo "Enabling dtbo $dtbo_name" >&2
echo 1 >"$dtbodir"/status
fi