Poudriere: Fails to detect that qemu-user-static is installed when trying to create a jail for building ARM stuff.

Created on 18 Dec 2020  ·  3Comments  ·  Source: freebsd/poudriere

Prerequisites

  • [X] Have you checked for an existing issue describing your problem?
  • [X] Are you running the latest version?
  • [X] Is your ports tree recent?
  • [X] Is your FreeBSD Host on a supported release?

Describe the bug

Fails to detect that qemu-user-static is installed when trying to create a jail for building ARM stuff.

How to reproduce

[root@nibbles1]130|/src/FreeBSD/base/stable/12/sys/arm64/conf>poudriere jail -c -j 12stableAARCH64 -m src=/src/FreeBSD/base/stable/12 -a aarch64     
[00:00:00] Cross-building ports for aarch64 on amd64 requires QEMU
[00:00:00] Error: You need to install the qemu-user-static package or setup an emulator with binmiscctl(8) for aarch64
[root@nibbles1]0|/src/FreeBSD/base/stable/12/sys/arm64/conf>poudriere jail -c -j 12stableAARCH64 -m src=/src/FreeBSD/base/stable/12 -a arm.aarch64 
[00:00:00] Cross-building ports for arm.aarch64 on amd64 requires QEMU
[00:00:00] Error: You need to install the qemu-user-static package or setup an emulator with binmiscctl(8) for aarch64
[root@nibbles1]1|/src/FreeBSD/base/stable/12/sys/arm64/conf>pkg info qemu-user-static
qemu-user-static-3.1.0_8
Name           : qemu-user-static
Version        : 3.1.0_8
Installed on   : Fri Dec 18 10:27:38 2020 CST
Origin         : emulators/qemu-user-static
Architecture   : FreeBSD:12:amd64
Prefix         : /usr/local
Categories     : emulators
Licenses       : GPLv2
Maintainer     : [email protected]
WWW            : http://wiki.qemu.org/Main_Page
Comment        : QEMU CPU Emulator (github bsd-user branch)
Annotations    :
        FreeBSD_version: 1202502
        repo_type      : binary
        repository     : n1
Flat size      : 71.2MiB
Description    :
QEMU is a FAST! processor emulator using dynamic translation to achieve
good emulation speed.
QEMU has two operating modes:

    * Full system emulation. In this mode, QEMU emulates a full system
(for example a PC), including a processor and various peripherials.
It can be used to launch different Operating Systems without rebooting
the PC or to debug system code.
    * User mode emulation (Linux host only). In this mode, QEMU can launch
Linux processes compiled for one CPU on another CPU. It can be used to
launch the Wine Windows API emulator or to ease cross-compilation and
cross-debugging.

As QEMU requires no host kernel patches to run, it is very safe and easy to use.

This port builds static bsd-user targets named like qemu-mips-static. While
still being experimental, people have already built many armv6/mips/mips64 ports
using these and, e.g., poudriere.  Some notes are also here:

        http://wiki.freebsd.org/QemuUserModeHowTo

WWW: http://wiki.qemu.org/Main_Page

Expected behavior

Screenshots

Environment

  • Host OS [e.g. 12.2 amd64]: FreeBSD nibbles1.vvelox.net 12.1-STABLE FreeBSD 12.1-STABLE r364334 vixen42 amd64
  • Jail OS [e.g. 12.0 powerpc]:
  • Browser: [e.g. chrome, safari]:
  • Poudriere Version [e.g. 3.3.1 or git hash or port version]: 3.3.6
  • Ports branch and revision [e.g. 2020Q3 r550754]: r558303

Additional context

Most helpful comment

I think error message is just incomplete. Simply installing qemu-user-static is not enough - you'd have to do service qemu-user-static onestart.

All 3 comments

Okay. Bad error message.

So binmiscctl was not configured and I did not think to originally at it as the error message said error, making it look like it was a alternative to having qemu installed.

Error: You need to install the qemu-user-static package or setup an emulator with binmiscctl(8) for aarch64

this really is hard to understand

to me it implies that qemu is auto configured, which, let's be honest, it probably should be

I think error message is just incomplete. Simply installing qemu-user-static is not enough - you'd have to do service qemu-user-static onestart.

Was this page helpful?
0 / 5 - 0 ratings