summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNaoto Yamaguchi <naoto.yamaguchi@aisin.co.jp>2021-11-13 19:20:31 +0900
committerNaoto Yamaguchi <naoto.yamaguchi@aisin.co.jp>2021-11-22 12:08:27 +0900
commit2cf44a2f03eab777fbf2ac2dfde47229eecfd2e1 (patch)
treeee7d0075bc2697e5e7386d2bf881a77b16292704
parentd8ab3ff4c17bc7638f366822ca7907fd58edff42 (diff)
Improvement flexibility for lxc-config
Existing lxc config creation recipe is supporting two type string replacing. The network interface setting has required to multi line replacing at aec683913cd645fcf18d7633a12a7b4b42215f69. These flexibility will support by container manager that is under developing. But we need quick solution for that now. This patch provide quick solution. This patch support any network interface usage in guest. Bug-AGL: SPEC-4132 Signed-off-by: Naoto Yamaguchi <naoto.yamaguchi@aisin.co.jp> Change-Id: I5da97492610124ddfe050660e0cc2c2c5559d5b9
-rw-r--r--meta-agl-lxc/classes/lxc-config.bbclass14
-rw-r--r--meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in (renamed from meta-agl-lxc/recipes-container/lxc-config/files/config.cluster-demo.in)20
-rw-r--r--meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bbappend1
-rw-r--r--meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo/mount.in (renamed from meta-agl-lxc/recipes-container/lxc-config/files/config.ivi-demo.in)21
-rw-r--r--meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo/network.in4
-rw-r--r--meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bbappend1
-rw-r--r--meta-agl-lxc/recipes-container/lxc-config/files/config.dummy.in22
-rw-r--r--meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/basic.in9
-rw-r--r--meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/environment.in7
-rw-r--r--meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/misc.in3
-rw-r--r--meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in14
-rw-r--r--meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/network.in3
-rw-r--r--meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/system.conf.cluster-demo.in (renamed from meta-agl-lxc/recipes-container/lxc-config/files/system.conf.cluster-demo.in)0
-rw-r--r--meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/basic.in9
-rw-r--r--meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/environment.in2
-rw-r--r--meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/misc.in3
-rw-r--r--meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/mount.in7
-rw-r--r--meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/network.in3
-rw-r--r--meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/system.conf.dummy.in (renamed from meta-agl-lxc/recipes-container/lxc-config/files/system.conf.dummy.in)0
-rw-r--r--meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/basic.in9
-rw-r--r--meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/environment.in7
-rw-r--r--meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/misc.in3
-rw-r--r--meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/mount.in12
-rw-r--r--meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/network.in3
-rw-r--r--meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/system.conf.ivi-demo.in (renamed from meta-agl-lxc/recipes-container/lxc-config/files/system.conf.ivi-demo.in)0
25 files changed, 114 insertions, 63 deletions
diff --git a/meta-agl-lxc/classes/lxc-config.bbclass b/meta-agl-lxc/classes/lxc-config.bbclass
index a3bdf802..921aaf92 100644
--- a/meta-agl-lxc/classes/lxc-config.bbclass
+++ b/meta-agl-lxc/classes/lxc-config.bbclass
@@ -18,8 +18,12 @@ python __anonymous() {
bb.error('Recipe name does not start with \'lxc-config-\'')
config = bpn[11:]
d.setVar('LXC_CONFIG_NAME', config)
- src_uri = 'file://config.' + config + \
- '.in file://system.conf.' + config + '.in'
+ src_uri = 'file://basic.in' \
+ + ' file://mount.in' \
+ + ' file://network.in' \
+ + ' file://environment.in' \
+ + ' file://misc.in' \
+ + ' file://system.conf.' + config + '.in'
d.setVar('SRC_URI', src_uri)
}
@@ -37,6 +41,12 @@ do_configure[noexec] = "1"
do_compile[noexec] = "1"
do_install () {
+ rm -f ${WORKDIR}/config.${LXC_CONFIG_NAME}.in
+ files="basic.in mount.in network.in environment.in misc.in"
+ for f in ${files}; do
+ cat ${WORKDIR}/$f >> ${WORKDIR}/config.${LXC_CONFIG_NAME}.in
+ done
+
install -m 0755 -d ${D}/var/lib/lxc/${LXC_CONFIG_NAME}
for f in config.${LXC_CONFIG_NAME}.in system.conf.${LXC_CONFIG_NAME}.in; do
sed -e 's|@DRM_LEASE_DEVICE@|${DRM_LEASE_DEVICE}|g' \
diff --git a/meta-agl-lxc/recipes-container/lxc-config/files/config.cluster-demo.in b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in
index acfff2cd..1a5b78e6 100644
--- a/meta-agl-lxc/recipes-container/lxc-config/files/config.cluster-demo.in
+++ b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in
@@ -1,11 +1,4 @@
-lxc.rootfs.path = dir:/var/lib/machines/cluster-demo
-lxc.signal.halt = SIGRTMIN+3
-lxc.signal.reboot = SIGTERM
-lxc.uts.name = "cluster"
-lxc.tty.max = 1
-lxc.pty.max = 1
-lxc.cap.drop = sys_module mac_admin mac_override sys_time
-
+# lxc mount setting
lxc.mount.entry = /var/lib/lxc/cluster-demo/system.conf etc/systemd/system.conf.d/10-environment.conf none bind,optional,create=file
lxc.mount.auto = cgroup:mixed proc:mixed sys:mixed
@@ -15,7 +8,6 @@ lxc.mount.entry = /sys/kernel/security sys/kernel/security none ro,bind,optional
lxc.cgroup.devices.allow = c 226:* rwm
lxc.mount.entry = /dev/dri dev/dri none bind,optional,create=dir
-#lxc.mount.entry = /lxc/share lxc/share none bind,optional,create=dir
lxc.mount.entry = /run/drm-lease-manager/@DRM_LEASE_DEVICE@ var/display/drm-lease-manager/@DRM_LEASE_DEVICE@ none bind,create=file
lxc.cgroup.devices.allow = c 10:* rwm
@@ -23,13 +15,3 @@ lxc.mount.entry = /dev/pvr_sync dev/pvr_sync none bind,optional,create=file
lxc.mount.entry = /run/pipewire/icipc-0 var/icipc-0 none bind,optional,create=file
-lxc.net.0.type = empty
-
-lxc.environment = QT_QPA_PLATFORM=wayland
-lxc.environment = QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/plugins/
-#lxc.environment = QT_DEBUG_PLUGINS=1
-lxc.environment = QML_IMPORT_PATH=/usr/lib/qml/
-lxc.environment = QML2_IMPORT_PATH=/usr/lib/qml/
-lxc.environment = QT_WAYLAND_SHELL_INTEGRATION=xdg-shell
-
-lxc.start.auto = @LXC_AUTO_START@
diff --git a/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bbappend b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bbappend
index 127d09db..1f6ef541 100644
--- a/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bbappend
+++ b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bbappend
@@ -1,3 +1,4 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:"
# If you want to change display assign in your board, please change this line in your recipe.
DRM_LEASE_DEVICE ?= "${@bb.utils.contains("AGL_FEATURES", "kingfisher", "card0-HDMI-A-2", "card0-HDMI-A-1" ,d)}"
diff --git a/meta-agl-lxc/recipes-container/lxc-config/files/config.ivi-demo.in b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo/mount.in
index 9b0d52fc..1bd40a3f 100644
--- a/meta-agl-lxc/recipes-container/lxc-config/files/config.ivi-demo.in
+++ b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo/mount.in
@@ -1,11 +1,4 @@
-lxc.rootfs.path = dir:/var/lib/machines/ivi-demo
-lxc.signal.halt = SIGRTMIN+3
-lxc.signal.reboot = SIGTERM
-lxc.uts.name = "ivi"
-lxc.tty.max = 1
-lxc.pty.max = 1
-lxc.cap.drop = sys_module mac_admin mac_override sys_time
-
+# lxc mount setting
lxc.mount.entry = /var/lib/lxc/ivi-demo/system.conf etc/systemd/system.conf.d/10-environment.conf none bind,optional,create=file
lxc.mount.auto = cgroup:mixed proc:mixed sys:mixed
@@ -15,20 +8,8 @@ lxc.mount.entry = /sys/kernel/security sys/kernel/security none ro,bind,optional
lxc.cgroup.devices.allow = c 226:* rwm
lxc.mount.entry = /dev/dri dev/dri none bind,optional,create=dir
-#lxc.mount.entry = /lxc/share lxc/share none bind,optional,create=dir
lxc.mount.entry = /run/drm-lease-manager/@DRM_LEASE_DEVICE@ var/display/drm-lease-manager/@DRM_LEASE_DEVICE@ none bind,create=file
lxc.cgroup.devices.allow = c 10:* rwm
lxc.mount.entry = /dev/pvr_sync dev/pvr_sync none bind,optional,create=file
-lxc.net.0.type = phys
-lxc.net.0.link = eth0
-
-lxc.environment = QT_QPA_PLATFORM=wayland
-lxc.environment = QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/plugins/
-#lxc.environment = QT_DEBUG_PLUGINS=1
-lxc.environment = QML_IMPORT_PATH=/usr/lib/qml/
-lxc.environment = QML2_IMPORT_PATH=/usr/lib/qml/
-lxc.environment = QT_WAYLAND_SHELL_INTEGRATION=xdg-shell
-
-lxc.start.auto = @LXC_AUTO_START@
diff --git a/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo/network.in b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo/network.in
new file mode 100644
index 00000000..5af82a2b
--- /dev/null
+++ b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo/network.in
@@ -0,0 +1,4 @@
+# lxc network setting
+lxc.net.0.type = phys
+lxc.net.0.link = eth0
+
diff --git a/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bbappend b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bbappend
index 5a504ff1..013bdfb0 100644
--- a/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bbappend
+++ b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bbappend
@@ -1,3 +1,4 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:"
# If you want to change display assign in your board, please change this line in your recipe.
DRM_LEASE_DEVICE ?= "${@bb.utils.contains("AGL_FEATURES", "kingfisher", "card0-HDMI-A-1", "card0-HDMI-A-1" ,d)}"
diff --git a/meta-agl-lxc/recipes-container/lxc-config/files/config.dummy.in b/meta-agl-lxc/recipes-container/lxc-config/files/config.dummy.in
deleted file mode 100644
index 8a1d6477..00000000
--- a/meta-agl-lxc/recipes-container/lxc-config/files/config.dummy.in
+++ /dev/null
@@ -1,22 +0,0 @@
-lxc.rootfs.path = dir:/var/lib/machines/dummy
-lxc.signal.halt = SIGRTMIN+3
-lxc.signal.reboot = SIGTERM
-lxc.uts.name = "guest-dummy"
-lxc.tty.max = 1
-lxc.pty.max = 1
-lxc.cap.drop = sys_module mac_admin mac_override sys_time
-
-lxc.mount.entry = /var/lib/lxc/dummy/system.conf etc/systemd/system.conf.d/10-environment.conf none bind,optional,create=file
-
-lxc.mount.auto = cgroup:mixed proc:mixed sys:mixed
-lxc.mount.entry = shm /dev/shm tmpfs defaults 0 0
-lxc.mount.entry = /sys/kernel/security sys/kernel/security none ro,bind,optional 0 0
-
-#lxc.cgroup.devices.allow = c 226:* rwm
-#lxc.mount.entry = /dev/dri dev/dri none bind,optional,create=dir
-
-#lxc.mount.entry = /lxc/share lxc/share none bind,optional,create=dir
-
-lxc.net.0.type = empty
-
-lxc.start.auto = @LXC_AUTO_START@
diff --git a/meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/basic.in b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/basic.in
new file mode 100644
index 00000000..22a8f8de
--- /dev/null
+++ b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/basic.in
@@ -0,0 +1,9 @@
+# lxc basic setting
+lxc.rootfs.path = dir:/var/lib/machines/cluster-demo
+lxc.signal.halt = SIGRTMIN+3
+lxc.signal.reboot = SIGTERM
+lxc.uts.name = "cluster"
+lxc.tty.max = 1
+lxc.pty.max = 1
+lxc.cap.drop = sys_module mac_admin mac_override sys_time
+
diff --git a/meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/environment.in b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/environment.in
new file mode 100644
index 00000000..374b9c03
--- /dev/null
+++ b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/environment.in
@@ -0,0 +1,7 @@
+# lxc environment variable setting
+lxc.environment = QT_QPA_PLATFORM=wayland
+lxc.environment = QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/plugins/
+lxc.environment = QML_IMPORT_PATH=/usr/lib/qml/
+lxc.environment = QML2_IMPORT_PATH=/usr/lib/qml/
+lxc.environment = QT_WAYLAND_SHELL_INTEGRATION=xdg-shell
+
diff --git a/meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/misc.in b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/misc.in
new file mode 100644
index 00000000..9b4f4883
--- /dev/null
+++ b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/misc.in
@@ -0,0 +1,3 @@
+# lxc misc setting
+lxc.start.auto = @LXC_AUTO_START@
+
diff --git a/meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in
new file mode 100644
index 00000000..c2bf91b4
--- /dev/null
+++ b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in
@@ -0,0 +1,14 @@
+# lxc mount setting
+lxc.mount.entry = /var/lib/lxc/cluster-demo/system.conf etc/systemd/system.conf.d/10-environment.conf none bind,optional,create=file
+
+lxc.mount.auto = cgroup:mixed proc:mixed sys:mixed
+lxc.mount.entry = shm /dev/shm tmpfs defaults 0 0
+lxc.mount.entry = /sys/kernel/security sys/kernel/security none ro,bind,optional 0 0
+
+lxc.cgroup.devices.allow = c 226:* rwm
+lxc.mount.entry = /dev/dri dev/dri none bind,optional,create=dir
+
+lxc.mount.entry = /run/drm-lease-manager/@DRM_LEASE_DEVICE@ var/display/drm-lease-manager/@DRM_LEASE_DEVICE@ none bind,create=file
+
+lxc.mount.entry = /run/pipewire/icipc-0 var/icipc-0 none bind,optional,create=file
+
diff --git a/meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/network.in b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/network.in
new file mode 100644
index 00000000..573f4796
--- /dev/null
+++ b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/network.in
@@ -0,0 +1,3 @@
+# lxc network setting
+lxc.net.0.type = empty
+
diff --git a/meta-agl-lxc/recipes-container/lxc-config/files/system.conf.cluster-demo.in b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/system.conf.cluster-demo.in
index 29a49b6c..29a49b6c 100644
--- a/meta-agl-lxc/recipes-container/lxc-config/files/system.conf.cluster-demo.in
+++ b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo/system.conf.cluster-demo.in
diff --git a/meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/basic.in b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/basic.in
new file mode 100644
index 00000000..603e902e
--- /dev/null
+++ b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/basic.in
@@ -0,0 +1,9 @@
+# lxc basic setting
+lxc.rootfs.path = dir:/var/lib/machines/dummy
+lxc.signal.halt = SIGRTMIN+3
+lxc.signal.reboot = SIGTERM
+lxc.uts.name = "guest-dummy"
+lxc.tty.max = 1
+lxc.pty.max = 1
+lxc.cap.drop = sys_module mac_admin mac_override sys_time
+
diff --git a/meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/environment.in b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/environment.in
new file mode 100644
index 00000000..b7cde1c8
--- /dev/null
+++ b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/environment.in
@@ -0,0 +1,2 @@
+# lxc environment variable setting
+
diff --git a/meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/misc.in b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/misc.in
new file mode 100644
index 00000000..9b4f4883
--- /dev/null
+++ b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/misc.in
@@ -0,0 +1,3 @@
+# lxc misc setting
+lxc.start.auto = @LXC_AUTO_START@
+
diff --git a/meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/mount.in b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/mount.in
new file mode 100644
index 00000000..686fdcb9
--- /dev/null
+++ b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/mount.in
@@ -0,0 +1,7 @@
+# lxc mount setting
+lxc.mount.entry = /var/lib/lxc/dummy/system.conf etc/systemd/system.conf.d/10-environment.conf none bind,optional,create=file
+
+lxc.mount.auto = cgroup:mixed proc:mixed sys:mixed
+lxc.mount.entry = shm /dev/shm tmpfs defaults 0 0
+lxc.mount.entry = /sys/kernel/security sys/kernel/security none ro,bind,optional 0 0
+
diff --git a/meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/network.in b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/network.in
new file mode 100644
index 00000000..573f4796
--- /dev/null
+++ b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/network.in
@@ -0,0 +1,3 @@
+# lxc network setting
+lxc.net.0.type = empty
+
diff --git a/meta-agl-lxc/recipes-container/lxc-config/files/system.conf.dummy.in b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/system.conf.dummy.in
index f496c589..f496c589 100644
--- a/meta-agl-lxc/recipes-container/lxc-config/files/system.conf.dummy.in
+++ b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-dummy/system.conf.dummy.in
diff --git a/meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/basic.in b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/basic.in
new file mode 100644
index 00000000..1fd9f347
--- /dev/null
+++ b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/basic.in
@@ -0,0 +1,9 @@
+# lxc basic setting
+lxc.rootfs.path = dir:/var/lib/machines/ivi-demo
+lxc.signal.halt = SIGRTMIN+3
+lxc.signal.reboot = SIGTERM
+lxc.uts.name = "ivi"
+lxc.tty.max = 1
+lxc.pty.max = 1
+lxc.cap.drop = sys_module mac_admin mac_override sys_time
+
diff --git a/meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/environment.in b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/environment.in
new file mode 100644
index 00000000..374b9c03
--- /dev/null
+++ b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/environment.in
@@ -0,0 +1,7 @@
+# lxc environment variable setting
+lxc.environment = QT_QPA_PLATFORM=wayland
+lxc.environment = QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/plugins/
+lxc.environment = QML_IMPORT_PATH=/usr/lib/qml/
+lxc.environment = QML2_IMPORT_PATH=/usr/lib/qml/
+lxc.environment = QT_WAYLAND_SHELL_INTEGRATION=xdg-shell
+
diff --git a/meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/misc.in b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/misc.in
new file mode 100644
index 00000000..9b4f4883
--- /dev/null
+++ b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/misc.in
@@ -0,0 +1,3 @@
+# lxc misc setting
+lxc.start.auto = @LXC_AUTO_START@
+
diff --git a/meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/mount.in b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/mount.in
new file mode 100644
index 00000000..781cdb7b
--- /dev/null
+++ b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/mount.in
@@ -0,0 +1,12 @@
+# lxc mount setting
+lxc.mount.entry = /var/lib/lxc/ivi-demo/system.conf etc/systemd/system.conf.d/10-environment.conf none bind,optional,create=file
+
+lxc.mount.auto = cgroup:mixed proc:mixed sys:mixed
+lxc.mount.entry = shm /dev/shm tmpfs defaults 0 0
+lxc.mount.entry = /sys/kernel/security sys/kernel/security none ro,bind,optional 0 0
+
+lxc.cgroup.devices.allow = c 226:* rwm
+lxc.mount.entry = /dev/dri dev/dri none bind,optional,create=dir
+
+lxc.mount.entry = /run/drm-lease-manager/@DRM_LEASE_DEVICE@ var/display/drm-lease-manager/@DRM_LEASE_DEVICE@ none bind,create=file
+
diff --git a/meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/network.in b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/network.in
new file mode 100644
index 00000000..573f4796
--- /dev/null
+++ b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/network.in
@@ -0,0 +1,3 @@
+# lxc network setting
+lxc.net.0.type = empty
+
diff --git a/meta-agl-lxc/recipes-container/lxc-config/files/system.conf.ivi-demo.in b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/system.conf.ivi-demo.in
index 29a49b6c..29a49b6c 100644
--- a/meta-agl-lxc/recipes-container/lxc-config/files/system.conf.ivi-demo.in
+++ b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/system.conf.ivi-demo.in