diff options
author | Naoto Yamaguchi <naoto.yamaguchi@aisin.co.jp> | 2021-11-13 19:20:31 +0900 |
---|---|---|
committer | Naoto Yamaguchi <naoto.yamaguchi@aisin.co.jp> | 2021-11-22 15:46:27 +0900 |
commit | cd255477e0fca7834d348963c9c1430db3a011a9 (patch) | |
tree | d1719bdfcc179f47f89c77afc54d173e307a154a | |
parent | 035be1b50b5f7c3d9473d251dc1949c43edfeb00 (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
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 |