Initial commit
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
|
||||
inherit obmc-phosphor-systemd
|
||||
|
||||
RDEPENDS:${PN}:append = " \
|
||||
bash \
|
||||
btrfs-tools \
|
||||
"
|
||||
|
||||
SRC_URI += " \
|
||||
file://emmc-init \
|
||||
file://emmc-init.service \
|
||||
"
|
||||
|
||||
do_install:append() {
|
||||
install -d ${D}${libexecdir}/emmc-init
|
||||
install -m 0755 ${WORKDIR}/emmc-init ${D}${libexecdir}/emmc-init
|
||||
}
|
||||
|
||||
SYSTEMD_SERVICE:${PN} += "emmc-init.service"
|
||||
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
DEVICE_NODE="/dev/mmcblk0"
|
||||
DEFAULT_FS_TYPE="btrfs"
|
||||
|
||||
#
|
||||
# check device node exist
|
||||
#
|
||||
if [[ ! -b "${DEVICE_NODE}" ]]; then
|
||||
echo "${DEVICE_NODE} is not available"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#
|
||||
# check if device mounted correctly
|
||||
#
|
||||
if ! (mount || true) | grep "${DEVICE_NODE}"> /dev/null; then
|
||||
echo "${DEVICE_NODE} is not mounted"
|
||||
else
|
||||
echo "${DEVICE_NODE} is mounted"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#
|
||||
# check filesystem
|
||||
#
|
||||
FS_TYPE_CHECK="$(blkid "${DEVICE_NODE}" | sed 's/.*TYPE="\([^"]*\).*/\1/' || true)"
|
||||
|
||||
if [[ "${FS_TYPE_CHECK}" = "" ]]; then
|
||||
FS_TYPE="unknown"
|
||||
else
|
||||
FS_TYPE="${FS_TYPE_CHECK}"
|
||||
fi
|
||||
|
||||
case "${FS_TYPE}" in
|
||||
"${DEFAULT_FS_TYPE}")
|
||||
echo "Filesystem (${FS_TYPE}) found on ${DEVICE_NODE}"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "No or unexpected filesystem (${FS_TYPE}) found on ${DEVICE_NODE}"
|
||||
if ! output=$(mkfs."${DEFAULT_FS_TYPE}" --force "${DEVICE_NODE}" 2>&1); then
|
||||
echo "failed to create ${DEFAULT_FS_TYPE} on ${DEVICE_NODE}:"
|
||||
echo "${output}"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
@@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=eMMC initialize check
|
||||
Before=mnt-data.mount
|
||||
Requires=dev-mmcblk0.device
|
||||
After=dev-mmcblk0.device
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/libexec/emmc-init/emmc-init
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Reference in New Issue
Block a user