Мне нужно создать рецепт Yocto для perl модуля Device::SerialPort
. Я пришел с файлом рецепта libdevice-serialport-perl_1.04.bb
(по аналогии с другими рецептами модуля perl в meta-openembedded):
SUMMARY = "Device::SerialPort - Linux/POSIX emulation of Win32::SerialPort functions."
DESCRIPTION = "Device::SerialPort - module provides an object-based user interface \
essentially identical to the one provided by the Win32::SerialPort module."
HOMEPAGE = "https://metacpan.org/pod/Device::SerialPort"
SECTION = "libs"
LICENSE = "Artistic-1.0|GPLv1+"
LIC_FILES_CHKSUM = "file://README;md5=34e53f81e654ff1fb3e5f6c5735bd1f9"
S = "${WORKDIR}/Device-SerialPort-${PV}"
SRC_URI = "https://cpan.metacpan.org/authors/id/C/CO/COOK/Device-SerialPort-${PV}.tar.gz"
SRC_URI[md5sum] = "82c698151f934eb28c65d1838cee7d9e"
SRC_URI[sha256sum] = "d392567cb39b4ea606c0e0acafd8ed72320311b995336ece5fcefcf9b150e9d7"
inherit cpan
Подобный рецепт хорошо работал для другого модуля (Device::Modem
) но для этого я получаю ошибку при запуске bitbake libdevice-serialport-perl
. Вот фрагмент кода с ошибкой:
| *** Module name OUT: /path/to/build/tmp/work/aarch64-rk-linux/libdevice-serialport-perl/1.04-r0/recipe-sysroot-native/usr/lib/perl-native/perl/5.24.1/I18N/Langinfo.pm
| To enable serial port tests, use:
| perl Makefile.PL TESTPORT=<DEVICE>
| where <DEVICE> is a specific port or 'auto' to autodetect.
| Running ./configure ...
| checking for gcc... aarch64-rk-linux-gcc --sysroot=/path/to/build/tmp/work/aarch64-rk-linux/libdevice-serialport-perl/1.04-r0/recipe-sysroot
| checking for C compiler default output file name... a.out
| checking whether the C compiler works... configure: error: cannot run C compiled programs.
| If you meant to cross compile, use `--host'.
| See `config.log' for more details.
| The 'configure' script didn't like something. It should have told you
| what went wrong, but you can check 'config.log' for more details.
Похоже, что bitbake пытается запустить тесты и нуждается в порте. Просто для проверки я попытался добавить функцию TESTPORT=auto
к cpan_do_configure
в файле cpan.bbclass
, но получил еще одну ошибку, сообщающую, что этот порт используется:
| Trying to find a serial port for testing...
| (use 'perl Makefile.PL TESTPORT=<DEVICE>' to override this search)
| checking '/dev/ttyS1' ... character device
|
| PLEASE NOTE:
| If you run 'make test', you must make sure that nothing is plugged into '/dev/ttyS1'!
Почему он должен запускать эти тесты совсем? Может быть, можно отключить тесты, так как мне нужно только встроить модуль в образ yocto?
Там также написано:
Если вы хотели кросс-компилировать, используйте `--host '
Куда следует добавить опцию --host
?