Как собрать статические исполняемые файлы libgpiod-tools для arm64?

Есть ли способ собрать статическую версию исполняемых файлов libgpiod-tools для arm64? Мне нужна статическая версия, потому что мне нужно упаковать их в виртуальный диск для встроенной системы (для целей отладки).

Я могу найти статическую версию инструментов из результатов сборки yocto/openbmc, но они для 32-битных машин, и кажется, что они не могут работать на arm64.

      [cmic@sr223 libgpio-tools.32bit]$ ls -la
total 84
drwxr-xr-x. 2 cmic cmic   101 Apr 21 22:12 .
drwxrwxr-x. 5 cmic cmic   106 Apr 21 22:13 ..
-rwxr-xr-x. 1 cmic cmic  9652 Apr 21 22:10 gpiodetect
-rwxr-xr-x. 1 cmic cmic  9652 Apr 21 22:10 gpiofind
-rwxr-xr-x. 1 cmic cmic  9648 Apr 21 22:10 gpioget
-rwxr-xr-x. 1 cmic cmic 13748 Apr 21 22:10 gpioinfo
-rwxr-xr-x. 1 cmic cmic 13744 Apr 21 22:10 gpiomon
-rwxr-xr-x. 1 cmic cmic 13744 Apr 21 22:10 gpioset
[cmic@sr223 libgpio-tools.32bit]$ file gpiodetect
gpiodetect: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, BuildID[sha1]=61afc5cfee96d4a155876775f148eb9009ada03b, for GNU/Linux 3.2.0, stripped
[cmic@sr223 libgpio-tools.32bit]$ ldd gpiodetect
        not a dynamic executable
[cmic@sr223 libgpio-tools.32bit]$ ./gpiodetect
-bash: ./gpiodetect: cannot execute binary file: Exec format error

Или я могу скачать такие исполняемые файлы откуда-то?

1 ответ

Я бы порекомендовал вам собрать этот пакет из исходного кода, используя систему сборки, которую использует openbmc. Это самый надежный и быстрый способ добавления программного обеспечения в образ.

Рецепт для libgpiod-tool уже есть. Поддерживается в мета-openbedded (на котором основан openbmc) . Вот рецепт в openbmc.

Вам нужно будет добавить рецепт на машину openbmc. Попробуйте добавить

      IMAGE_INSTALL:append = " libgpiod-tools"  

к conf/local.confдля машины, которую вы хотите построить, используйте это.

Затем вы можете либо собрать полный образ, либо только пакет libgpiod.

      $ bitbake  libgpiod

или же

      $ bitbake  obmc-phosphor-image

Затем исполняемый файл, соответствующий архитектуре машины, должен быть в build/tmp/work/armv7a-openbmc-linux-gnueabi/libgpiod/1.6.3-r0/packages-split/libgpiod-tools/usr/bin

Вы можете переместить новые двоичные файлы или установить новый образ, чтобы запустить инструмент libgpiod.

Также не стесняйтесь задавать любые вопросы, которые у вас есть, в дискорде openbmc, который можно найти здесь https://discord.gg/69Km47zH98, или в списке рассылки openbmc здесь https://lists.ozlabs.org/listinfo/openbmc .

Другие вопросы по тегам