From: Naoto Yamaguchi Date: Sat, 13 Nov 2021 10:20:31 +0000 (+0900) Subject: Improvement flexibility for lxc-config X-Git-Tag: 12.1.0~1 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=commitdiff_plain;h=cd255477e0fca7834d348963c9c1430db3a011a9;p=AGL%2Fmeta-agl-devel.git 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 Change-Id: I5da97492610124ddfe050660e0cc2c2c5559d5b9 --- 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 similarity index 50% rename from meta-agl-lxc/recipes-container/lxc-config/files/config.cluster-demo.in rename to 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 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 similarity index 50% rename from meta-agl-lxc/recipes-container/lxc-config/files/config.ivi-demo.in rename to 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 similarity index 100% rename from meta-agl-lxc/recipes-container/lxc-config/files/system.conf.cluster-demo.in rename to 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 similarity index 100% rename from meta-agl-lxc/recipes-container/lxc-config/files/system.conf.dummy.in rename to 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 similarity index 100% rename from meta-agl-lxc/recipes-container/lxc-config/files/system.conf.ivi-demo.in rename to meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo/system.conf.ivi-demo.in