diff options
-rw-r--r-- | meta/classes-recipe/overlayfs-etc.bbclass | 5 | ||||
-rw-r--r-- | meta/files/overlayfs-etc-preinit.sh.in | 16 |
2 files changed, 13 insertions, 8 deletions
diff --git a/meta/classes-recipe/overlayfs-etc.bbclass b/meta/classes-recipe/overlayfs-etc.bbclass index 0c7834d01f..d339fbbeee 100644 --- a/meta/classes-recipe/overlayfs-etc.bbclass +++ b/meta/classes-recipe/overlayfs-etc.bbclass | |||
@@ -41,6 +41,7 @@ OVERLAYFS_ETC_USE_ORIG_INIT_NAME ??= "1" | |||
41 | OVERLAYFS_ETC_MOUNT_OPTIONS ??= "defaults" | 41 | OVERLAYFS_ETC_MOUNT_OPTIONS ??= "defaults" |
42 | OVERLAYFS_ETC_INIT_TEMPLATE ??= "${COREBASE}/meta/files/overlayfs-etc-preinit.sh.in" | 42 | OVERLAYFS_ETC_INIT_TEMPLATE ??= "${COREBASE}/meta/files/overlayfs-etc-preinit.sh.in" |
43 | OVERLAYFS_ETC_EXPOSE_LOWER ??= "0" | 43 | OVERLAYFS_ETC_EXPOSE_LOWER ??= "0" |
44 | OVERLAYFS_ETC_CREATE_MOUNT_DIRS ??= "1" | ||
44 | 45 | ||
45 | python create_overlayfs_etc_preinit() { | 46 | python create_overlayfs_etc_preinit() { |
46 | overlayEtcMountPoint = d.getVar("OVERLAYFS_ETC_MOUNT_POINT") | 47 | overlayEtcMountPoint = d.getVar("OVERLAYFS_ETC_MOUNT_POINT") |
@@ -62,6 +63,7 @@ python create_overlayfs_etc_preinit() { | |||
62 | initBaseName = oe.path.join(d.getVar("base_sbindir"), "init") | 63 | initBaseName = oe.path.join(d.getVar("base_sbindir"), "init") |
63 | origInitNameSuffix = ".orig" | 64 | origInitNameSuffix = ".orig" |
64 | exposeLower = oe.types.boolean(d.getVar('OVERLAYFS_ETC_EXPOSE_LOWER')) | 65 | exposeLower = oe.types.boolean(d.getVar('OVERLAYFS_ETC_EXPOSE_LOWER')) |
66 | createMoundDirs = oe.types.boolean(d.getVar('OVERLAYFS_ETC_CREATE_MOUNT_DIRS')) | ||
65 | 67 | ||
66 | args = { | 68 | args = { |
67 | 'OVERLAYFS_ETC_MOUNT_POINT': overlayEtcMountPoint, | 69 | 'OVERLAYFS_ETC_MOUNT_POINT': overlayEtcMountPoint, |
@@ -69,7 +71,8 @@ python create_overlayfs_etc_preinit() { | |||
69 | 'OVERLAYFS_ETC_FSTYPE': overlayEtcFsType, | 71 | 'OVERLAYFS_ETC_FSTYPE': overlayEtcFsType, |
70 | 'OVERLAYFS_ETC_DEVICE': overlayEtcDevice, | 72 | 'OVERLAYFS_ETC_DEVICE': overlayEtcDevice, |
71 | 'SBIN_INIT_NAME': initBaseName + origInitNameSuffix if useOrigInit else initBaseName, | 73 | 'SBIN_INIT_NAME': initBaseName + origInitNameSuffix if useOrigInit else initBaseName, |
72 | 'OVERLAYFS_ETC_EXPOSE_LOWER': "true" if exposeLower else "false" | 74 | 'OVERLAYFS_ETC_EXPOSE_LOWER': "true" if exposeLower else "false", |
75 | 'CREATE_MOUNT_DIRS': "true" if createMoundDirs else "false" | ||
73 | } | 76 | } |
74 | 77 | ||
75 | if useOrigInit: | 78 | if useOrigInit: |
diff --git a/meta/files/overlayfs-etc-preinit.sh.in b/meta/files/overlayfs-etc-preinit.sh.in index 8db076f4ba..b05e3957a3 100644 --- a/meta/files/overlayfs-etc-preinit.sh.in +++ b/meta/files/overlayfs-etc-preinit.sh.in | |||
@@ -3,12 +3,15 @@ | |||
3 | echo "PREINIT: Start" | 3 | echo "PREINIT: Start" |
4 | 4 | ||
5 | PATH=/sbin:/bin:/usr/sbin:/usr/bin | 5 | PATH=/sbin:/bin:/usr/sbin:/usr/bin |
6 | mount -o remount,rw / | 6 | if {CREATE_MOUNT_DIRS}; then |
7 | 7 | mount -o remount,rw / | |
8 | mkdir -p /proc | 8 | |
9 | mkdir -p /sys | 9 | mkdir -p /proc |
10 | mkdir -p /run | 10 | mkdir -p /sys |
11 | mkdir -p /var/run | 11 | mkdir -p /run |
12 | mkdir -p /var/run | ||
13 | mkdir -p {OVERLAYFS_ETC_MOUNT_POINT} | ||
14 | fi | ||
12 | 15 | ||
13 | mount -t proc proc /proc | 16 | mount -t proc proc /proc |
14 | mount -t sysfs sysfs /sys | 17 | mount -t sysfs sysfs /sys |
@@ -20,7 +23,6 @@ UPPER_DIR=$BASE_OVERLAY_ETC_DIR/upper | |||
20 | WORK_DIR=$BASE_OVERLAY_ETC_DIR/work | 23 | WORK_DIR=$BASE_OVERLAY_ETC_DIR/work |
21 | LOWER_DIR=$BASE_OVERLAY_ETC_DIR/lower | 24 | LOWER_DIR=$BASE_OVERLAY_ETC_DIR/lower |
22 | 25 | ||
23 | mkdir -p {OVERLAYFS_ETC_MOUNT_POINT} | ||
24 | if mount -n -t {OVERLAYFS_ETC_FSTYPE} \ | 26 | if mount -n -t {OVERLAYFS_ETC_FSTYPE} \ |
25 | -o {OVERLAYFS_ETC_MOUNT_OPTIONS} \ | 27 | -o {OVERLAYFS_ETC_MOUNT_OPTIONS} \ |
26 | {OVERLAYFS_ETC_DEVICE} {OVERLAYFS_ETC_MOUNT_POINT} | 28 | {OVERLAYFS_ETC_DEVICE} {OVERLAYFS_ETC_MOUNT_POINT} |