2023-06-10 00:46:49

by Josh Triplett

[permalink] [raw]
Subject: [PATCH] kbuild: deb-pkg: Include modules.builtin* even if non-modular

Even for a non-modular kernel, the kernel builds modules.builtin and
modules.builtin.modinfo, with information about the built-in modules.
Tools such as initramfs-tools need these files to build a working
initramfs on some systems, such as those requiring firmware.

Install modules.builtin and modules.builtin.modinfo into the linux-image
package even for a non-modular kernel.

Signed-off-by: Josh Triplett <[email protected]>
---
scripts/package/builddeb | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index 252faaa5561c..91261529f2c7 100755
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -70,6 +70,12 @@ install_linux_image () {
mkdir -p "${pdir}/usr/lib/uml/modules"
mv "${pdir}/lib/modules/${KERNELRELEASE}" "${pdir}/usr/lib/uml/modules/${KERNELRELEASE}"
fi
+ elif [ -f modules.builtin ]; then
+ mkdir -p "${pdir}/lib/modules/${KERNELRELEASE}"
+ cp modules.builtin "${pdir}/lib/modules/${KERNELRELEASE}/modules.builtin"
+ if [ -f modules.builtin.modinfo ]; then
+ cp modules.builtin.modinfo "${pdir}/lib/modules/${KERNELRELEASE}/modules.builtin.modinfo"
+ fi
fi

# Install the kernel
--
2.40.1



2023-06-14 19:35:57

by Nicolas Schier

[permalink] [raw]
Subject: Re: [PATCH] kbuild: deb-pkg: Include modules.builtin* even if non-modular

On Fri 09 Jun 2023 17:28:09 GMT, Josh Triplett wrote:
> Even for a non-modular kernel, the kernel builds modules.builtin and
> modules.builtin.modinfo, with information about the built-in modules.
> Tools such as initramfs-tools need these files to build a working
> initramfs on some systems, such as those requiring firmware.

Searching via source.debian.org, I was suprised that there are really
numerous other tools as well, that attempt to read modules.builtin.

>
> Install modules.builtin and modules.builtin.modinfo into the linux-image
> package even for a non-modular kernel.
>
> Signed-off-by: Josh Triplett <[email protected]>
> ---

Thanks!

Reviewed-by: Nicolas Schier <[email protected]>
Tested-by: Nicolas Schier <[email protected]>

> scripts/package/builddeb | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/scripts/package/builddeb b/scripts/package/builddeb
> index 252faaa5561c..91261529f2c7 100755
> --- a/scripts/package/builddeb
> +++ b/scripts/package/builddeb
> @@ -70,6 +70,12 @@ install_linux_image () {
> mkdir -p "${pdir}/usr/lib/uml/modules"
> mv "${pdir}/lib/modules/${KERNELRELEASE}" "${pdir}/usr/lib/uml/modules/${KERNELRELEASE}"
> fi
> + elif [ -f modules.builtin ]; then
> + mkdir -p "${pdir}/lib/modules/${KERNELRELEASE}"
> + cp modules.builtin "${pdir}/lib/modules/${KERNELRELEASE}/modules.builtin"
> + if [ -f modules.builtin.modinfo ]; then
> + cp modules.builtin.modinfo "${pdir}/lib/modules/${KERNELRELEASE}/modules.builtin.modinfo"
> + fi
> fi
>
> # Install the kernel
> --
> 2.40.1

--
Nicolas Schier


Attachments:
(No filename) (1.60 kB)
signature.asc (849.00 B)
Download all attachments

2023-06-15 11:56:29

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] kbuild: deb-pkg: Include modules.builtin* even if non-modular

On Sat, Jun 10, 2023 at 9:28 AM Josh Triplett <[email protected]> wrote:
>
> Even for a non-modular kernel, the kernel builds modules.builtin and
> modules.builtin.modinfo, with information about the built-in modules.
> Tools such as initramfs-tools need these files to build a working
> initramfs on some systems, such as those requiring firmware.
>
> Install modules.builtin and modules.builtin.modinfo into the linux-image
> package even for a non-modular kernel.
>
> Signed-off-by: Josh Triplett <[email protected]>



OK, I understood.
But, this patch only aids Debian in an ad-hoc file copy.

I think chaning modules_install would be a more
general solution.

Can you use this patch as a prerequisite?
https://patchwork.kernel.org/project/linux-kbuild/patch/[email protected]/

Then, you can simply remove
"if is_enabled CONFIG_MODULES; then"
so you can install the files unconditionally.



> ---
> scripts/package/builddeb | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/scripts/package/builddeb b/scripts/package/builddeb
> index 252faaa5561c..91261529f2c7 100755
> --- a/scripts/package/builddeb
> +++ b/scripts/package/builddeb
> @@ -70,6 +70,12 @@ install_linux_image () {
> mkdir -p "${pdir}/usr/lib/uml/modules"
> mv "${pdir}/lib/modules/${KERNELRELEASE}" "${pdir}/usr/lib/uml/modules/${KERNELRELEASE}"
> fi
> + elif [ -f modules.builtin ]; then
> + mkdir -p "${pdir}/lib/modules/${KERNELRELEASE}"
> + cp modules.builtin "${pdir}/lib/modules/${KERNELRELEASE}/modules.builtin"
> + if [ -f modules.builtin.modinfo ]; then
> + cp modules.builtin.modinfo "${pdir}/lib/modules/${KERNELRELEASE}/modules.builtin.modinfo"
> + fi
> fi
>
> # Install the kernel
> --
> 2.40.1
>


--
Best Regards
Masahiro Yamada