Merge ~dannf/+git/maas-preseeds:workaround-lp2037682 into ~ce-hyperscale/+git/maas-preseeds:main

Proposed by dann frazier
Status: Merged
Merged at revision: d301fff426567ae45512bcac05e990050bc6b73e
Proposed branch: ~dannf/+git/maas-preseeds:workaround-lp2037682
Merge into: ~ce-hyperscale/+git/maas-preseeds:main
Diff against target: 18 lines (+6/-1)
1 file modified
late.sh (+6/-1)
Reviewer Review Type Date Requested Status
CE Hyperscale Pending
Review via email: mp+460530@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Mitchell Augustin (mitchellaugustin) wrote :

I don't think this will solve the issue on its own without my proposed changes to Curtin (WIP as of typing this) or DKMS also getting pulled in. While this would resolve any issues at this stage currently caused by spurious ischroot exit codes, we don't actually reach any of those in the DKMS issue since the isolated /proc is not mounted, meaning we get the hang because of the wrong PID being checked. Right now, if it makes it past that, ischroot still returns true as expected because our /procs don't match up.

Once our Curtin changes get pulled in that add --mount-proc, this would work, but it will be redundant since I am also including the same change for all in-target commands.

Revision history for this message
dann frazier (dannf) wrote :

That makes sense. How about this one, which side steps the problem by fixing an actual bug?

Revision history for this message
Mitchell Augustin (mitchellaugustin) wrote :

> That makes sense. How about this one, which side steps the problem by fixing
> an actual bug?

If these patterns will entirely prevent the DKMS packages from being installed, this seems to me like it should work.

Revision history for this message
dann frazier (dannf) wrote :

I tested at a shell on a failed hinyari install:

root@hinyari:/# for possible_flavor_pattern in linux-generic \
                                   linux-nvidia \
                                   "linux-generic-*-hwe-[0-9][0-9]\.[0-9][0-9]" \
                                   "linux-nvidia-*-hwe-[0-9][0-9]\.[0-9][0-9]"; do
        for metapkg in $(dpkg-query -W -f '${Package}\n' "${possible_flavor_pattern}"); do
            flavor=${metapkg#linux-}
            pkgs="$pkgs linux-modules-nvidia-${NVIDIA_DRIVER_VERSION}-${flavor}"
            echo $pkgs
        done
    done
dpkg-query: no packages found matching linux-generic
dpkg-query: no packages found matching linux-nvidia
dpkg-query: no packages found matching linux-generic-*-hwe-[0-9][0-9]\.[0-9][0-9]
linux-modules-nvidia-535-server-open-nvidia-64k-hwe-22.04

And indeed, we should be installing linux-modules-nvidia-535-server-open-nvidia-64k-hwe-22.04 and not the dkms version.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/late.sh b/late.sh
2index 2d4b27e..607a722 100755
3--- a/late.sh
4+++ b/late.sh
5@@ -46,7 +46,12 @@ install_gpu_drivers() {
6 # so we do not use something like:
7 # linux-{generic,nvidia}
8 # and let us use the other approaches like a for-loop instead.
9- for possible_flavor_pattern in linux-generic* linux-nvidia; do
10+ for possible_flavor_pattern in \
11+ linux-generic \
12+ linux-generic-64k \
13+ linux-nvidia \
14+ "linux-generic-*-hwe-[0-9][0-9]\.[0-9][0-9]" \
15+ "linux-nvidia-*-hwe-[0-9][0-9]\.[0-9][0-9]"; do
16 for metapkg in $(dpkg-query -W -f '${Package}\n' "${possible_flavor_pattern}"); do
17 flavor=${metapkg#linux-}
18 pkgs="$pkgs linux-modules-nvidia-${NVIDIA_DRIVER_VERSION}-${flavor}"

Subscribers

People subscribed via source and target branches

to all changes: