Missing all modules for usb nics in initrd which makes PXE boot impossible

Bug #1950996 reported by Tommy Nevtelen
32
This bug affects 6 people
Affects Status Importance Assigned to Milestone
initramfs-tools (Debian)
Fix Released
Unknown
initramfs-tools (Ubuntu)
Fix Released
Undecided
Dimitri John Ledkov
Focal
Triaged
Medium
Unassigned
Hirsute
Won't Fix
Undecided
Unassigned
Impish
Won't Fix
Undecided
Unassigned
Jammy
Fix Released
Undecided
Dimitri John Ledkov

Bug Description

initrd taken from the live iso for PXE boot does not contain USB NIC drivers which makes PXE installation/netboot impossible via usb.

This is the case on 20.04 server iso (both hwe and normal kernel/initrd) and desktop iso.

"kernel/drivers/net/usb" is empty and needs to be included in the initramfs build.

As most modern thin laptops lack physical rj45 ethernet this is a big issue.

ProblemType: Bug
DistroRelease: Ubuntu 20.04
Package: initramfs-tools 0.136ubuntu6.6
ProcVersionSignature: Ubuntu 5.8.0-64.72-generic 5.8.18
Uname: Linux 5.8.0-64-generic x86_64
ApportVersion: 2.20.11-0ubuntu27.21
Architecture: amd64
CasperMD5CheckResult: skip
CurrentDesktop: ubuntu:GNOME
Date: Mon Nov 15 16:47:45 2021
PackageArchitecture: all
SourcePackage: initramfs-tools
UpgradeStatus: Upgraded to focal on 2020-05-11 (552 days ago)

Revision history for this message
Tommy Nevtelen (dal) wrote :
Changed in initramfs-tools (Ubuntu):
status: New → Triaged
assignee: nobody → Dimitri John Ledkov (xnox)
Tommy Nevtelen (dal)
description: updated
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in initramfs-tools (Ubuntu Focal):
status: New → Confirmed
Changed in initramfs-tools (Ubuntu Hirsute):
status: New → Confirmed
Changed in initramfs-tools (Ubuntu Impish):
status: New → Confirmed
Changed in initramfs-tools (Ubuntu Jammy):
status: Triaged → In Progress
Changed in initramfs-tools (Ubuntu Jammy):
status: In Progress → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package initramfs-tools - 0.140ubuntu12

---------------
initramfs-tools (0.140ubuntu12) jammy; urgency=medium

  * Force copy pthread and libgcc_s libraries via a stub binary.

    To avoid circular shared library dependencies between compiler and
    libc, libpthreads chooses to dlopen libgcc_s, instead of linking
    against it. However, we have no way to parse/know what it
    needs. And even when we hardcode to include libgcc_s1, we don't
    have a way to know which libgcc_s1 is needed on a given system and
    from which path to include it. But there is a hook-function to
    copy a binary and all of its shared library dependencies. Thus
    create a stub empty executable, with shared linking against
    pthreads and gcc_s1 and always include it in the initrd. This way
    at initrd creation time, ldd is used to correctly resolve these
    shared library dependencies and correctly copy them into the
    initrd. This removes hardcoding paths as to where these libraries
    must be copied from on the host. LP: #1958594 LP: #1880853

  * For net boot include most of net/usb modules, except niche modems. LP:
    #1950996

  * Cherry-pick updated merge request !26 to support xz compressed
    firmware. Uncompressed firmware is preffered, with a fallback to use
    compressed firmware files. LP: #1942260

  * Cherry-pick updated merge request !51 to decompress compressed kernel
    modules for boot speed performance. LP: #1932329

 -- Dimitri John Ledkov <email address hidden> Tue, 08 Feb 2022 20:43:02 +0000

Changed in initramfs-tools (Ubuntu Jammy):
status: Fix Committed → Fix Released
Revision history for this message
Brian Murray (brian-murray) wrote :

Ubuntu 21.10 (Impish Indri) has reached end of life, so this bug will not be fixed for that specific release.

Changed in initramfs-tools (Ubuntu Impish):
status: Confirmed → Won't Fix
Revision history for this message
Frederick Knight (tofuschmo) wrote :

Does anyone have any workarounds for getting usb ethernet ipxe working on focal until this is patched?

Revision history for this message
Tommy Nevtelen (dal) wrote : Re: [Bug 1950996] Re: Missing all modules for usb nics in initrd which makes PXE boot impossible

I just took the kernel modules of the same version (available in apt) and added them to the initrd on the iso. That worked fine.

On July 22, 2022 9:51:42 PM GMT+02:00, Franklin Kramer <email address hidden> wrote:
>Does anyone have any workarounds for getting usb ethernet ipxe working
>on focal until this is patched?
>
>--
>You received this bug notification because you are subscribed to the bug
>report.
>https://bugs.launchpad.net/bugs/1950996
>
>Title:
> Missing all modules for usb nics in initrd which makes PXE boot
> impossible
>
>To manage notifications about this bug go to:
>https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/1950996/+subscriptions
>

--
Sent from my Android device with K-9 Mail. Please excuse my brevity.

Revision history for this message
Frederick Knight (tofuschmo) wrote :

Hey Tommy, would you mind sharing some tips or steps on how exactly you accomplished that? To be honest I've tried what feels like a million different ways to add the right modules to the initrd on the ISO and I could not get ipxe to load them.

Thanks!

Revision history for this message
Tommy Nevtelen (dal) wrote :

* Mount the iso, find the kernel modules alternatively install the kernel modules for the same kernel on your ws.
* Unpack the initrd
* Copy over kernel/drivers/net/usb
* Repack initrd

Revision history for this message
John Doe (kkasprzyk) wrote (last edit ):

Hey Tommy, I'm in a similar boat to Frederick.
Thanks for taking the time to list your steps.
What command did you use to unpack your initrd?
After copying over the drivers what command or tool did you use to repack it?
Was it dracut, initramfs-tools, or something else entirely?

Thanks again!

Revision history for this message
Tommy Nevtelen (dal) wrote :

I just used tar as I manually did it and not any tool such as dracut or initramfs-tools.

You can probably just use file-roller if you don't know how to unpack the file.

I'm on my phone on vacation so don't have it in front of me right now.

On August 2, 2022 5:51:09 PM GMT+02:00, John Doe <email address hidden> wrote:
>Hey Tommy, I'm in a similar boot to Frederick.
>Thanks for taking the time to list your steps.
>What command did you use to unpack your initrd?
>After copying over the drivers what command or tool did you use to repack it?
>Was it dracut, initramfs-tools, or something else entirely?
>
>Thanks again!
>
>--
>You received this bug notification because you are subscribed to the bug
>report.
>https://bugs.launchpad.net/bugs/1950996
>
>Title:
> Missing all modules for usb nics in initrd which makes PXE boot
> impossible
>
>To manage notifications about this bug go to:
>https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/1950996/+subscriptions
>

--
Sent from my Android device with K-9 Mail. Please excuse my brevity.

Changed in initramfs-tools (Debian):
status: Unknown → Fix Released
Revision history for this message
Tsun Justin Ko (jko-drw) wrote :

Hello, we are also experiencing this problem and would like to see it resolved.

Changed in initramfs-tools (Ubuntu Hirsute):
status: Confirmed → Won't Fix
Changed in initramfs-tools (Ubuntu Focal):
status: Confirmed → Triaged
importance: Undecided → Medium
Revision history for this message
Franklin Kramer (fkramer-drw) wrote :

Hi, just wanted to follow up here, any progress? This is still an issue holding up our 20.04 builds.

Revision history for this message
Dan Czuchra (dczuchra) wrote :

Hi all, are there any updates to this issue? This has broken our 20.04 builds over iPXE. We're trying to update the initrd and vmlinuz files, but there's not very good documentation on how to update these files.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.