Re: snapshot 1st aarcch64 boot got devd error message: "sh: /usr/libexec/hyperv/hyperv_vfattach: not found"

From: Mark Millard <marklmi_at_yahoo.com>
Date: Mon, 26 Dec 2022 01:23:22 UTC

On Dec 25, 2022, at 15:55, Warner Losh <imp@bsdimp.com> wrote:

> Most likely MK_HYPERV is defaulting to no for aarch64? Or there is a bogus if MACHINE_ARCH == "amd64" somewhere.

Well, seems more is missing for aarch64 if devd hyperv is to be enabled:

# grep -r MK_HYPERV /usr/main-src/ | more
/usr/main-src/sbin/devd/Makefile:.if ${MK_HYPERV} != "no"
/usr/main-src/libexec/Makefile.i386:.if ${MK_HYPERV} != "no"
/usr/main-src/libexec/Makefile.amd64:.if ${MK_HYPERV} != "no"
/usr/main-src/usr.sbin/Makefile.amd64:.if ${MK_HYPERV} != "no"
/usr/main-src/usr.sbin/Makefile.i386:.if ${MK_HYPERV} != "no"
/usr/main-src/lib/libc/x86/sys/Makefile.inc:.if ${MACHINE_CPUARCH} == "amd64" && ${MK_HYPERV} != "no"
/usr/main-src/tools/build/mk/OptionalObsoleteFiles.inc:.if ${MK_HYPERV} == no

(The below is based on cgit.freebsd.org <http://cgit.freebsd.org/> in case my source tree
vintage is problematical.)

There is no libexec/Makefile.aarch64 or libexec/Makefile.arm64 .

For reference, libexec/Makefile.amd64 example:

# $FreeBSD$

.if ${MK_HYPERV} != "no"
SUBDIR+= hyperv
.endif


There is a usr.sbin/Makefile.aarch64 but it makes no
mention of hyperv:

# $FreeBSD$

.if ${MK_ACPI} != "no"
SUBDIR+= acpi
.endif
SUBDIR+= ofwdump


By contrast usr.sbin/Makefile.amd64 (for example) contains:

. . .
.if ${MK_HYPERV} != "no"
SUBDIR+= hyperv
.endif
. . .

I do not find an aarch64 equivalent of
lib/libc/x86/sys/Makefile.inc 's:

. . .
.if ${MACHINE_CPUARCH} == "amd64" && ${MK_HYPERV} != "no"
CFLAGS+= -DWANT_HYPERV
.endif
. . .


> Warner
> 
> On Sun, Dec 25, 2022, 4:28 PM Mark Millard <marklmi@yahoo.com> wrote:
> From the Dec 24 main [so: 14] snaphot for an aarch64 RPi*
> system:
> 
> . . .
> Starting devd.
> genet0: link state changed to UP
> sh: /usr/libexec/hyperv/hyperv_vfattach: not found
> Starting dhclient.
> . . .
> 
> This seems to be from /etc/devd/hyperv.conf :
> 
> notify 10 {
>         match "system"          "ETHERNET";
>         match "type"            "IFATTACH";
>         action "/usr/libexec/hyperv/hyperv_vfattach $subsystem 0";
> };
> 
> For reference:
> 
> # ls -Tla /usr/libexec/hyperv/
> total 8
> drwxr-xr-x   2 root  wheel   512 Dec 24 06:30:06 2022 .
> drwxr-xr-x  10 root  wheel  1536 Dec 24 06:49:40 2022 ..
> 
> I do not know if the error might have lead to skipping some
> other activities or not.
> 
> Note:
> 
> This is from a test where I'd 1st side stepped a syntax problem
> in /etc/rc.d/growfs in the snapshot to try to see if the growfs
> otherwise worked.
> 
> # uname -apKU  # long output line split for reability
> FreeBSD generic 14.0-CURRENT FreeBSD 14.0-CURRENT #0
> main-n259842-c89209c674f2: Sat Dec 24 05:52:28 UTC 2022
> root@releng1.nyi.freebsd.org:/usr/obj/usr/src/arm64.aarch64/sys/GENERIC
> arm64 aarch64 1400076 1400076
> 


===
Mark Millard
marklmi at yahoo.com