Hi,

On Wed, 02 Mar 2022 00:30:58 +0000 undef <[email protected]> wrote:
Package: u-boot-menu
Version: 4.0.3
Severity: normal
Tags: patch
X-Debbugs-Cc: undef <[email protected]>

Dear Maintainer,

Currently the initrd section of the generated extlinux.conf will only use discovered initrd.img-* files from /boot. However, some systems (discovered on the PinePhone Pro,
but other reclaimed Android devices are affected) require a custom "miniramfs" 
to be used.

Would it be possible to include the ability to manually set the initrd record in
/etc/default/u-boot? The attached patch allows a static configuration which will be used for all kernels. An alternative would be setting "/miniramfs-${_VERSION}".

As we discussed this on another channel, here are my comments on your patch. Also, would you please consider sending the patch as an attachment rather than inline in the email body? (or maybe provide both, as this one is quite small).


Thanks for considering,
Undef.


-- System Information:
Debian Release: 11.2
  APT prefers stable-security
  APT policy: (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 5.16.11-1.fc32.qubes.x86_64 (SMP w/16 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages u-boot-menu depends on:
ii  linux-base  4.6

u-boot-menu recommends no packages.

Versions of packages u-boot-menu suggests:
pn  flash-kernel  <none>

-- no debconf information

*** 0001-Allow-configuration-of-initrd-file.patch
From 14daba63b9c1036b7672f144d29a848e306992b0 Mon Sep 17 00:00:00 2001
From: Undef <[email protected]>
Date: Wed, 2 Mar 2022 00:02:12 +0000
Subject: [PATCH] Allow configuration of initrd file

Some devices have initrd requirements that cause the standard
initrd.img-${_VERSION} to fail to boot. For example, the PinePhone Pro
will fail to boot with large initrd files, solved by using a
miniramfs[0] to chainload the real initrd.

This allows specifying the INITRD manually in /etc/default/u-boot. If
the configuration is either not present or empty, the existing initrd
discovery functionality will continue to be used.

[0] https://gitlab.com/mobian1/miniramfs
---
 u-boot-update | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/u-boot-update b/u-boot-update
index da92918..4d3b395 100755
--- a/u-boot-update
+++ b/u-boot-update
@@ -92,6 +92,7 @@ U_BOOT_TIMEOUT="${U_BOOT_TIMEOUT:-50}"
 U_BOOT_MENU_LABEL="${U_BOOT_MENU_LABEL:-${PRETTY_NAME:-Debian GNU/Linux 
kernel}}"
 U_BOOT_PARAMETERS="${U_BOOT_PARAMETERS:-ro quiet}"
 U_BOOT_FDT_DIR="${U_BOOT_FDT_DIR:-/usr/lib/linux-image-}"
+U_BOOT_INITRD="${U_BOOT_INITRD:-}"

As other variables, this needs a sensible default. IMHO this would be better:

  +U_BOOT_INITRD="${U_BOOT_INITRD:-initrd.img-}"

This would even make the rest of your patch simpler by replacing every occurrence of "initrd.img-" with "${U_BOOT_INITRD}".

It would also be nice to add this variable to the default config.

Cheers,
Arnaud

# Find parameter for root from fstab
 if [ -z "${U_BOOT_ROOT}" ]
@@ -169,7 +170,10 @@ do
        _NUMBER="${_NUMBER:-0}"
        _ENTRY="${_ENTRY:-1}"
- if [ -e /boot/initrd.img-${_VERSION} ]
+       if [ -n "${U_BOOT_INITRD}" ]
+       then
+               _INITRD="initrd ${U_BOOT_INITRD}"
+       elif [ -e /boot/initrd.img-${_VERSION} >     then
                _INITRD="initrd ${_BOOT_DIRECTORY}/initrd.img-${_VERSION}"
        else
--
2.30.2

Reply via email to