aboutsummaryrefslogtreecommitdiffstats
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 15:46:27 +0900
commitcd255477e0fca7834d348963c9c1430db3a011a9 (patch)
treed1719bdfcc179f47f89c77afc54d173e307a154a
parent035be1b50b5f7c3d9473d251dc1949c43edfeb00 (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/mount.in.orig0
-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
26 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 90c5a1e6..5c06b794 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,19 +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 = 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/mount.in.orig b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in.orig
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in.orig
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