From 605c37cb989a95c02633fcb93efb45102781b4bb Mon Sep 17 00:00:00 2001 From: Andrew Jeffery Date: Wed, 15 Sep 2021 09:12:36 +0930 Subject: bitbake: Use IPK packaging for rootfs assembly bitbake offers a choice of DEB, RPM or IPK packaging. To a degree the choice is functionally arbitrary for image generation but control over the package format becomes important if we want to: 1. Include runtime package management functionality in the firmware image 2. Mess about with the packages on the build system With respect to 1 the IPK format and opkg (an ipk package manager) are designed for embedded systems[1] - by contrast to RPMs have heavier dependencies and a greater impact on the size and complexity of the firmware image. Regarding 2, the embedded nature and the need for opkg to work without much fuss leads to a lower configuration barrier by comparison to RPMs. With ipk it becomes possible to reuse the packages built during image preparation for core analysis without needing to generate an SDK: ``` $ export LD_LIBRARY_PATH=./tmp/work/x86_64-linux/opkg-native/*/recipe-sysroot-native/usr/lib $ MY_DEBUG_ROOT=tmp/rootfs-debug $ ./tmp/sysroots-components/x86_64/opkg-native/usr/bin/opkg \ -f ./tmp/work/p10bmc-openbmc-linux-gnueabi/obmc-phosphor-image/*/opkg.conf \ -o $MY_DEBUG_ROOT \ update $ fakeroot ./tmp/sysroots-components/x86_64/opkg-native/usr/bin/opkg \ -f ./tmp/work/p10bmc-openbmc-linux-gnueabi/obmc-phosphor-image/1.0-r0/opkg.conf \ -o $MY_DEBUG_ROOT \ install dbus-sensors dbus-sensors-dbg $ gdb-multiarch (gdb) set solib-absolute-prefix .../tmp/rootfs-debug (gdb) add-auto-load-safe-path .../tmp/rootfs-debug (gdb) file tmp/rootfs-debug/usr/bin/nvmesensor (gdb) core-file obmcdump_17_9597/core.nvmesensor.0.aae91b519d0e4e0e8bbe746e3f6cd25f.2779.9594000000 Core was generated by `/usr/bin/nvmesensor'. Program terminated with signal SIGABRT, Aborted. pthread_kill.c:45 45 pthread_kill.c: No such file or directory. (gdb) bt pthread_kill.c:45 ../sysdeps/posix/raise.c:26 /home/andrew/src/openbmc/openbmc/build/p10bmc/tmp/rootfs-debug/usr/lib/libstdc++.so.6 /home/andrew/src/openbmc/openbmc/build/p10bmc/tmp/rootfs-debug/usr/lib/libstdc++.so.6 /home/andrew/src/openbmc/openbmc/build/p10bmc/tmp/rootfs-debug/usr/lib/libstdc++.so.6 /home/andrew/src/openbmc/openbmc/build/p10bmc/tmp/rootfs-debug/usr/lib/libstdc++.so.6 "xyz.openbmc_project.NVMeSensor", this=0x488f04) at /usr/include/sdbusplus/bus.hpp:234 ../../../../../../workspace/sources/dbus-sensors/src/NVMeSensorMain.cpp:159 (gdb) ``` This approach documented in the Poky Reference Manual: https://www.yoctoproject.org/docs/1.0/poky-ref-manual/poky-ref-manual.html#platdev-gdb-remotedebug-launch-gdb-inferiorbins Switch all machines to IPK to align the debugging experience with upstream's documentation and to facilitate efficient use of packaged software at runtime. [1] https://openwrt.org/docs/guide-user/additional-software/opkg Change-Id: I8ef526add2d7a6790de1b3eb3fb85cd39b864f23 Signed-off-by: Andrew Jeffery Signed-off-by: Patrick Williams --- meta-yadro/meta-nicole/conf/local.conf.sample | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'meta-yadro/meta-nicole/conf/local.conf.sample') diff --git a/meta-yadro/meta-nicole/conf/local.conf.sample b/meta-yadro/meta-nicole/conf/local.conf.sample index 041114d79..3a76adeac 100644 --- a/meta-yadro/meta-nicole/conf/local.conf.sample +++ b/meta-yadro/meta-nicole/conf/local.conf.sample @@ -84,7 +84,7 @@ DISTRO ?= "openbmc-openpower" # - 'package_rpm' for rpm style packages # E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" # We default to rpm: -PACKAGE_CLASSES ?= "package_rpm" +PACKAGE_CLASSES ?= "package_ipk" # # SDK target architecture -- cgit v1.2.3 From b3b2aee683e98b7ac06dfa9807b37d5ae11bb9f6 Mon Sep 17 00:00:00 2001 From: Patrick Williams Date: Thu, 16 Sep 2021 14:23:05 -0500 Subject: treewide: fix comments for rpm/ipk Signed-off-by: Patrick Williams Change-Id: Ia05891430c6c97a89b7bc8ba4558ae496866bf7d --- meta-alibaba/meta-thor/conf/local.conf.sample | 2 +- meta-amd/meta-ethanolx/conf/local.conf.sample | 2 +- meta-ampere/meta-jade/conf/local.conf.sample | 2 +- meta-facebook/meta-bletchley/conf/local.conf.sample | 2 +- meta-facebook/meta-tiogapass/conf/local.conf.sample | 2 +- meta-facebook/meta-yosemitev2/conf/local.conf.sample | 2 +- meta-hpe/meta-dl360poc/conf/local.conf.sample | 2 +- meta-ibm/meta-palmetto/conf/local.conf.sample | 2 +- meta-ibm/meta-romulus/conf/local.conf.sample | 2 +- meta-inspur/meta-on5263m5/conf/local.conf.sample | 2 +- meta-intel-openbmc/meta-s2600wf/conf/local.conf.sample | 2 +- meta-microsoft/meta-olympus/conf/local.conf.sample | 2 +- meta-portwell/meta-neptune/conf/local.conf.sample | 2 +- meta-supermicro/meta-x11spi/conf/local.conf.sample | 2 +- meta-xilinx/meta-xilinx-bsp/conf/local.conf.sample | 2 +- meta-yadro/meta-nicole/conf/local.conf.sample | 2 +- 16 files changed, 16 insertions(+), 16 deletions(-) (limited to 'meta-yadro/meta-nicole/conf/local.conf.sample') diff --git a/meta-alibaba/meta-thor/conf/local.conf.sample b/meta-alibaba/meta-thor/conf/local.conf.sample index 1f6270704..0f82735a1 100644 --- a/meta-alibaba/meta-thor/conf/local.conf.sample +++ b/meta-alibaba/meta-thor/conf/local.conf.sample @@ -75,7 +75,7 @@ DISTRO ?= "openbmc-phosphor" # - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) # - 'package_rpm' for rpm style packages # E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" -# We default to rpm: +# We default to ipk: PACKAGE_CLASSES ?= "package_ipk" # # SDK/ADT target architecture diff --git a/meta-amd/meta-ethanolx/conf/local.conf.sample b/meta-amd/meta-ethanolx/conf/local.conf.sample index 893efed79..d09cabf3e 100644 --- a/meta-amd/meta-ethanolx/conf/local.conf.sample +++ b/meta-amd/meta-ethanolx/conf/local.conf.sample @@ -103,7 +103,7 @@ DISTRO ?= "openbmc-phosphor" # - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) # - 'package_rpm' for rpm style packages # E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" -# We default to rpm: +# We default to ipk: PACKAGE_CLASSES ?= "package_ipk" # diff --git a/meta-ampere/meta-jade/conf/local.conf.sample b/meta-ampere/meta-jade/conf/local.conf.sample index 413eefcf9..f393fceb2 100644 --- a/meta-ampere/meta-jade/conf/local.conf.sample +++ b/meta-ampere/meta-jade/conf/local.conf.sample @@ -81,7 +81,7 @@ DISTRO ?= "openbmc-phosphor" # - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) # - 'package_rpm' for rpm style packages # E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" -# We default to rpm: +# We default to ipk: PACKAGE_CLASSES ?= "package_ipk" # diff --git a/meta-facebook/meta-bletchley/conf/local.conf.sample b/meta-facebook/meta-bletchley/conf/local.conf.sample index 4c120461b..82d463234 100644 --- a/meta-facebook/meta-bletchley/conf/local.conf.sample +++ b/meta-facebook/meta-bletchley/conf/local.conf.sample @@ -83,7 +83,7 @@ DISTRO ?= "openbmc-phosphor" # - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) # - 'package_rpm' for rpm style packages # E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" -# We default to rpm: +# We default to ipk: PACKAGE_CLASSES ?= "package_ipk" # diff --git a/meta-facebook/meta-tiogapass/conf/local.conf.sample b/meta-facebook/meta-tiogapass/conf/local.conf.sample index abe1d925b..51b08d01c 100644 --- a/meta-facebook/meta-tiogapass/conf/local.conf.sample +++ b/meta-facebook/meta-tiogapass/conf/local.conf.sample @@ -83,7 +83,7 @@ DISTRO ?= "openbmc-phosphor" # - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) # - 'package_rpm' for rpm style packages # E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" -# We default to rpm: +# We default to ipk: PACKAGE_CLASSES ?= "package_ipk" # diff --git a/meta-facebook/meta-yosemitev2/conf/local.conf.sample b/meta-facebook/meta-yosemitev2/conf/local.conf.sample index d281ef36a..7c3836037 100644 --- a/meta-facebook/meta-yosemitev2/conf/local.conf.sample +++ b/meta-facebook/meta-yosemitev2/conf/local.conf.sample @@ -83,7 +83,7 @@ DISTRO ?= "openbmc-phosphor" # - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) # - 'package_rpm' for rpm style packages # E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" -# We default to rpm: +# We default to ipk: PACKAGE_CLASSES ?= "package_ipk" # diff --git a/meta-hpe/meta-dl360poc/conf/local.conf.sample b/meta-hpe/meta-dl360poc/conf/local.conf.sample index f8cce0589..805c5bfbf 100644 --- a/meta-hpe/meta-dl360poc/conf/local.conf.sample +++ b/meta-hpe/meta-dl360poc/conf/local.conf.sample @@ -83,7 +83,7 @@ DISTRO ?= "openbmc-phosphor" # - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) # - 'package_rpm' for rpm style packages # E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" -# We default to rpm: +# We default to ipk: PACKAGE_CLASSES ?= "package_ipk" # diff --git a/meta-ibm/meta-palmetto/conf/local.conf.sample b/meta-ibm/meta-palmetto/conf/local.conf.sample index 583ff0584..d2f4b8618 100644 --- a/meta-ibm/meta-palmetto/conf/local.conf.sample +++ b/meta-ibm/meta-palmetto/conf/local.conf.sample @@ -103,7 +103,7 @@ DISTRO ?= "openbmc-openpower" # - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) # - 'package_rpm' for rpm style packages # E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" -# We default to rpm: +# We default to ipk: PACKAGE_CLASSES ?= "package_ipk" # diff --git a/meta-ibm/meta-romulus/conf/local.conf.sample b/meta-ibm/meta-romulus/conf/local.conf.sample index 135305745..cc900bf6e 100644 --- a/meta-ibm/meta-romulus/conf/local.conf.sample +++ b/meta-ibm/meta-romulus/conf/local.conf.sample @@ -83,7 +83,7 @@ DISTRO ?= "openbmc-openpower" # - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) # - 'package_rpm' for rpm style packages # E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" -# We default to rpm: +# We default to ipk: PACKAGE_CLASSES ?= "package_ipk" # diff --git a/meta-inspur/meta-on5263m5/conf/local.conf.sample b/meta-inspur/meta-on5263m5/conf/local.conf.sample index f829ce540..821133cf7 100644 --- a/meta-inspur/meta-on5263m5/conf/local.conf.sample +++ b/meta-inspur/meta-on5263m5/conf/local.conf.sample @@ -103,7 +103,7 @@ DISTRO ?= "openbmc-phosphor" # - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) # - 'package_rpm' for rpm style packages # E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" -# We default to rpm: +# We default to ipk: PACKAGE_CLASSES ?= "package_ipk" # diff --git a/meta-intel-openbmc/meta-s2600wf/conf/local.conf.sample b/meta-intel-openbmc/meta-s2600wf/conf/local.conf.sample index 05cc9890e..94e161238 100644 --- a/meta-intel-openbmc/meta-s2600wf/conf/local.conf.sample +++ b/meta-intel-openbmc/meta-s2600wf/conf/local.conf.sample @@ -83,7 +83,7 @@ DISTRO ?= "openbmc-phosphor" # - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) # - 'package_rpm' for rpm style packages # E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" -# We default to rpm: +# We default to ipk: PACKAGE_CLASSES ?= "package_ipk" # diff --git a/meta-microsoft/meta-olympus/conf/local.conf.sample b/meta-microsoft/meta-olympus/conf/local.conf.sample index 14bc4c3e3..176b78b4e 100755 --- a/meta-microsoft/meta-olympus/conf/local.conf.sample +++ b/meta-microsoft/meta-olympus/conf/local.conf.sample @@ -103,7 +103,7 @@ DISTRO ?= "openbmc-phosphor" # - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) # - 'package_rpm' for rpm style packages # E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" -# We default to rpm: +# We default to ipk: PACKAGE_CLASSES ?= "package_ipk" # diff --git a/meta-portwell/meta-neptune/conf/local.conf.sample b/meta-portwell/meta-neptune/conf/local.conf.sample index 24d92e141..504241448 100644 --- a/meta-portwell/meta-neptune/conf/local.conf.sample +++ b/meta-portwell/meta-neptune/conf/local.conf.sample @@ -81,7 +81,7 @@ DISTRO ?= "openbmc-phosphor" # - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) # - 'package_rpm' for rpm style packages # E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" -# We default to rpm: +# We default to ipk: PACKAGE_CLASSES ?= "package_ipk" # diff --git a/meta-supermicro/meta-x11spi/conf/local.conf.sample b/meta-supermicro/meta-x11spi/conf/local.conf.sample index 263a720b7..2e57e4795 100644 --- a/meta-supermicro/meta-x11spi/conf/local.conf.sample +++ b/meta-supermicro/meta-x11spi/conf/local.conf.sample @@ -81,7 +81,7 @@ DISTRO ?= "openbmc-phosphor" # - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) # - 'package_rpm' for rpm style packages # E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" -# We default to rpm: +# We default to ipk: PACKAGE_CLASSES ?= "package_ipk" # diff --git a/meta-xilinx/meta-xilinx-bsp/conf/local.conf.sample b/meta-xilinx/meta-xilinx-bsp/conf/local.conf.sample index 9e7870c23..505ba0d60 100644 --- a/meta-xilinx/meta-xilinx-bsp/conf/local.conf.sample +++ b/meta-xilinx/meta-xilinx-bsp/conf/local.conf.sample @@ -86,7 +86,7 @@ DISTRO ?= "petalinux" # - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) # - 'package_rpm' for rpm style packages # E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" -# We default to rpm: +# We default to ipk: PACKAGE_CLASSES ?= "package_rpm" # diff --git a/meta-yadro/meta-nicole/conf/local.conf.sample b/meta-yadro/meta-nicole/conf/local.conf.sample index 3a76adeac..8e426c7ae 100644 --- a/meta-yadro/meta-nicole/conf/local.conf.sample +++ b/meta-yadro/meta-nicole/conf/local.conf.sample @@ -83,7 +83,7 @@ DISTRO ?= "openbmc-openpower" # - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) # - 'package_rpm' for rpm style packages # E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" -# We default to rpm: +# We default to ipk: PACKAGE_CLASSES ?= "package_ipk" # -- cgit v1.2.3