Comment 21 for bug 1947601

Revision history for this message
Dave Jones (waveform) wrote (last edit ):

> Why was a solution for running docker containers not mentioned in the Ubuntu 21.10 release notes?

My apologies -- that's my oversight, which I have now corrected, including a note about Docker. That said, had I remembered to include it last week I can't say I would've mentioned Docker. It's a package in universe and thus community supported. As far as I'm aware it's not something we directly test with the Pi images.

> Why have you, Dave, not immediately told me of the solution (install modules-extra!) as soon as you saw this bug report?

Because by the time I noticed this bug report (a few hours ago), I'd also read the comments and noted you'd already been provided with the solution (i.e. install linux-modules-extra-raspi). All I could reasonably add to that was a means to do so implicitly on the first boot (my cloud-init user-data suggestion).

> Why has the docker.io package not added a dependency on the modules-extra package? It clearly does not work without this package on raspi.

While it's possible to add per-architecture dependencies to debs (e.g. Depends: linux-modules-extra-raspi[armhf arm64]), that's not specific enough for this case. It'd be incorrect for Docker operating on an AWS arm64 instance, for example.

It *could* be added as Suggests: linux-modules-extra-raspi[armhf arm64] (I *think* per-architecture specs are valid in Suggests as well as the various Depends variations). Again, this wouldn't be strictly correct (it's evidently a hard dependency on the raspi platform), but it would at least hint to users when installing docker.io that something extra might be needed. It couldn't be added as Recommends: because, again, that would result in its implicit installation on other non-pi armhf/arm64 platforms.

> Why was the veth kernel module moved to modules-extra? You are talking about 19MB space savings of compressed initrd, but this module is only 25k, uncompressed! And on ubuntu servers, Docker certainly is one of the main use cases.

We only have sufficient resources for one -raspi kernel package, hence that package (and its corresponding modules package(s)) needs to cover both server and desktop use-cases. In this case, the "veth" module, while obviously vital for Docker, is clearly an optional component if seen from the perspective of covering both server and desktop cases; to most desktop users it's redundant.

> I feel that there needs to be a fix other than invalidating my >10 hours of my work by invalidating this bug report.

I'm sorry it's taken you >10 hours to discover the underlying cause, and a solution to it, and that's at least partly my fault for forgetting to include the existence of linux-modules-extra-raspi in the Impish release notes. However, I'm afraid in the case of the linux-raspi package, this certainly is invalid: it's operating as intended.

I could re-point this bug to the docker.io package, if you'd prefer, but (for reasons given above) I'm not sure there's a valid solution there either?

> Coming back to boot time savings: IMO that's a thing for desktops. But for servers? I mean, servers are meant to run uninterrupted until there is a kernel update. A few seconds more per reboot therefore does not eat away from the uptime. Your server images, therefore, should have modules-extra installed by default.

In *your* use-case, servers are evidently meant to be long running, but that's not universal. There are plenty of server use-cases (ephemeral ones where the Pis themselves act as containers, IoT/robotics cases, etc.) where boot-speed *does* matter. Also, as noted above, we've a single kernel package that has to do double service for both the server and desktop images.

> We use ubuntu instead of raspi-os on our ARM build servers only **because** we need to run Docker for ARM 32 and 64 bits. Please find another solution for this cannot-run-docker-out-of-the-box problem for your server image than letting all your users in the dark about why they cannot run docker anymore in 21.10.

You presumably need to do "sudo apt install docker.io" first? I'm not convinced changing that to "sudo apt install docker.io linux-modules-extra-raspi" is such a burden? There's not even a requirement to reboot; the module can (and should) be loaded dynamically once installed.