[Bug 269405] Problems in PXE booting for laptops with usb ethernet adapter

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 08 Feb 2023 11:13:54 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269405

            Bug ID: 269405
           Summary: Problems in PXE booting for laptops with usb ethernet
                    adapter
           Product: Base System
           Version: 13.1-RELEASE
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: usb
          Assignee: usb@FreeBSD.org
          Reporter: maggiebol89@gmail.com

Created attachment 239990
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=239990&action=edit
booting screen photo

Hi

  We need to automate network installation on some laptops. 
  For laptops with  Ethernet cards pxe booting works fine in our configuration
environment. But for laptops with ethernet Type-C connector (USB), we met some
problems. 
   After loading kernel from server, OS starts initializing all devices, but
the process of booting stops when system try to mount nfs root file system (see
attached image).
  It stops with error:

nfs_diskless: no interface

   In nfs_diskless.c we just insert a printf() line to display interface, to
make sure about device initialization works properly.

retry:
        CURVNET_SET(TD_TO_VNET(curthread));
        IFNET_RLOCK();
        CK_STAILQ_FOREACH(ifp, &V_ifnet, if_link) {
                printf("name=%s\n", ifp->if_xname); /* smalll debug */
                CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) {
                        if (ifa->ifa_addr->sa_family == AF_LINK) {
                                sdl = (struct sockaddr_dl *)ifa->ifa_addr;
                                if ((sdl->sdl_type == ourdl.sdl_type) &&
                                    (sdl->sdl_alen == ourdl.sdl_alen) &&
                                    !bcmp(LLADDR(sdl),
                                          LLADDR(&ourdl),
                                          sdl->sdl_alen)) {
                                    IFNET_RUNLOCK();
                                    CURVNET_RESTORE();
                                    goto match_done;
                                }
                        }
                }
        }


The result of booting process in attached image.

  Looks like initialization of usb (also network) happens after system try to
mount root, so we cannot boot system properly. Is that so?
   Is there any opportunity to boot laptops with USB ethernet adapter via
network? May be some workaround.

-- 
You are receiving this mail because:
You are the assignee for the bug.