[RFC,4/5] rootfs Add dracut to initramfs generator

Message ID 20250905113014.2765493-5-Quirin.Gylstorff@siemens.com
State New
Headers show
Series Add support for dracut | expand

Commit Message

Quirin Gylstorff Sept. 5, 2025, 11:27 a.m. UTC
From: Quirin Gylstorff <quirin.gylstorff@siemens.com>

Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com>
---
 meta/classes/rootfs.bbclass | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Jan Kiszka Sept. 5, 2025, 12:30 p.m. UTC | #1
On 05.09.25 13:27, Quirin Gylstorff wrote:
> From: Quirin Gylstorff <quirin.gylstorff@siemens.com>
> 
> Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com>
> ---
>  meta/classes/rootfs.bbclass | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass
> index d3fb44c9..9e02dbd1 100644
> --- a/meta/classes/rootfs.bbclass
> +++ b/meta/classes/rootfs.bbclass
> @@ -7,9 +7,15 @@ ROOTFS_ARCH ?= "${DISTRO_ARCH}"
>  ROOTFS_DISTRO ?= "${DISTRO}"
>  
>  def initramfs_generator_cmd(d):
> +    rootfs_packages =  d.getVar('ROOTFS_PACKAGES') or ''
> +    if 'dracut' in rootfs_packages:
> +        return 'rootfs'
>      return 'update-initramfs'
>  
>  def initramfs_generator_cmdline(d):
> +    initramfs_generator_cmd =  d.getVar('ROOTFS_INITRAMFS_GENERATOR_CMD')
> +    if 'dracut' in initramfs_generator_cmd:
> +        return "dracut --force /initrd.img \"$kernel_version\""
>      return "update-initramfs -u -v -k \"$kernel_version\""
>  
>  ROOTFS_PACKAGES ?= ""

OK, now I see why you defined functions. But initramfs_generator_cmd can
still be simplified by taking the first word of initramfs_generator_cmdline.

Jan
Quirin Gylstorff Sept. 5, 2025, 12:42 p.m. UTC | #2
On 9/5/25 14:30, Jan Kiszka wrote:
> On 05.09.25 13:27, Quirin Gylstorff wrote:
>> From: Quirin Gylstorff <quirin.gylstorff@siemens.com>
>>
>> Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com>
>> ---
>>   meta/classes/rootfs.bbclass | 6 ++++++
>>   1 file changed, 6 insertions(+)
>>
>> diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass
>> index d3fb44c9..9e02dbd1 100644
>> --- a/meta/classes/rootfs.bbclass
>> +++ b/meta/classes/rootfs.bbclass
>> @@ -7,9 +7,15 @@ ROOTFS_ARCH ?= "${DISTRO_ARCH}"
>>   ROOTFS_DISTRO ?= "${DISTRO}"
>>   
>>   def initramfs_generator_cmd(d):
>> +    rootfs_packages =  d.getVar('ROOTFS_PACKAGES') or ''
>> +    if 'dracut' in rootfs_packages:
>> +        return 'rootfs'
>>       return 'update-initramfs'
>>   
>>   def initramfs_generator_cmdline(d):
>> +    initramfs_generator_cmd =  d.getVar('ROOTFS_INITRAMFS_GENERATOR_CMD')
>> +    if 'dracut' in initramfs_generator_cmd:
>> +        return "dracut --force /initrd.img \"$kernel_version\""
>>       return "update-initramfs -u -v -k \"$kernel_version\""
>>   
>>   ROOTFS_PACKAGES ?= ""
> 
> OK, now I see why you defined functions. But initramfs_generator_cmd can
> still be simplified by taking the first word of initramfs_generator_cmdline.
ok i will change it in a v2.

Quirin
> 
> Jan
>
Quirin Gylstorff Sept. 5, 2025, 12:44 p.m. UTC | #3
On 9/5/25 13:27, 'Quirin Gylstorff' via isar-users wrote:
> From: Quirin Gylstorff <quirin.gylstorff@siemens.com>
> 
> Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com>
> ---
>   meta/classes/rootfs.bbclass | 6 ++++++
>   1 file changed, 6 insertions(+)
> 
> diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass
> index d3fb44c9..9e02dbd1 100644
> --- a/meta/classes/rootfs.bbclass
> +++ b/meta/classes/rootfs.bbclass
> @@ -7,9 +7,15 @@ ROOTFS_ARCH ?= "${DISTRO_ARCH}"
>   ROOTFS_DISTRO ?= "${DISTRO}"
>   
>   def initramfs_generator_cmd(d):
> +    rootfs_packages =  d.getVar('ROOTFS_PACKAGES') or ''
> +    if 'dracut' in rootfs_packages:
> +        return 'rootfs'
This should be `dracut`. I will fix it in v2.

Quirin
>       return 'update-initramfs'
>   
>   def initramfs_generator_cmdline(d):
> +    initramfs_generator_cmd =  d.getVar('ROOTFS_INITRAMFS_GENERATOR_CMD')
> +    if 'dracut' in initramfs_generator_cmd:
> +        return "dracut --force /initrd.img \"$kernel_version\""
>       return "update-initramfs -u -v -k \"$kernel_version\""
>   
>   ROOTFS_PACKAGES ?= ""

Patch

diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass
index d3fb44c9..9e02dbd1 100644
--- a/meta/classes/rootfs.bbclass
+++ b/meta/classes/rootfs.bbclass
@@ -7,9 +7,15 @@  ROOTFS_ARCH ?= "${DISTRO_ARCH}"
 ROOTFS_DISTRO ?= "${DISTRO}"
 
 def initramfs_generator_cmd(d):
+    rootfs_packages =  d.getVar('ROOTFS_PACKAGES') or ''
+    if 'dracut' in rootfs_packages:
+        return 'rootfs'
     return 'update-initramfs'
 
 def initramfs_generator_cmdline(d):
+    initramfs_generator_cmd =  d.getVar('ROOTFS_INITRAMFS_GENERATOR_CMD')
+    if 'dracut' in initramfs_generator_cmd:
+        return "dracut --force /initrd.img \"$kernel_version\""
     return "update-initramfs -u -v -k \"$kernel_version\""
 
 ROOTFS_PACKAGES ?= ""