tag 767744 + patch quit Hello,
On 11/03/2014 07:10 PM, Cyril Brulebois wrote: > Ian Campbell <i...@hellion.org.uk> (2014-11-03): >> On Sun, 2014-11-02 at 12:08 +0100, Uwe Kleine-König wrote: >>> Package: flash-kernel >>> Version: 3.28 >>> Severity: wishlist >>> >>> Hello, >>> >>> I want to use flash-kernel on a machine that uses a device tree blob that >>> isn't >>> included in the kernel package. So flash-kernel's assumption to find >>> /usr/lib/linux-image-$kvers/$dtb_id is wrong. >>> >>> Maybe something like: >>> >>> # if dtb_name starts with / assume it's a stand alone file. Otherwise >>> # pick the one shipped by the linux image. >>> if expr "$dtb_name" : "/" >/dev/null; then >>> dtb="$dtb_name" >>> else >>> dtb="/usr/lib/linux-image-$kvers/$dtb_name" >>> fi >>> >>> would work? >> >> expr isn't a builtin, right? So we don't need to worry about dash vs >> bash for it and whether the ":" operator is implemented. > > Just use case and match on /*? Good idea. The attached patch (nearly[1]) works for me. Best regards Uwe [1] only nearly because the armmp kernel doesn't have mtdblock support which is needed for my machine as it uses "Mtd-Kernel:"
>From a7232e140d67a1416b162b720f2c68b7a0385ad5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u...@kleine-koenig.org> Date: Tue, 4 Nov 2014 10:45:19 +0100 Subject: [PATCH] Allow DTB-Id to be an absolute file name This makes it easier to support systems that don't have a corresponding device tree shipped with the kernel image package. --- README | 2 ++ debian/changelog | 7 +++++++ functions | 19 +++++++++++++++++-- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/README b/README index 0ddae85..d0adb13 100644 --- a/README +++ b/README @@ -107,6 +107,8 @@ The supported fields are: DTB-Append-From. * DTB-Id: (optional) specifies the name of the DTB file for this device + If this is a relative filename it is interpreted with + /usr/lib/linux-image-$kvers as base directory. * DTB-Append: (optional) when yes the DTB specified by DTB-Id will be appended to the kernel image. diff --git a/debian/changelog b/debian/changelog index 3a5b348..62d6643 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +flash-kernel (3.29) UNRELEASED; urgency=medium + + * Fix "There is no way to specify a custom dtb" by allowing DTB-Id to be an + absolute file name. (Closes: #767744) + + -- Uwe Kleine-Koenig <u...@kleine-koenig.org> Tue, 04 Nov 2014 10:16:12 +0100 + flash-kernel (3.28) unstable; urgency=medium [ Ian Campbell ] diff --git a/functions b/functions index d45a4e6..93e5977 100644 --- a/functions +++ b/functions @@ -414,7 +414,15 @@ handle_dtb() { return fi - local dtb="/usr/lib/linux-image-$kvers/$dtb_id" + local dtb + case "$dtb_id" in + /*) + dtb="$dtb_id" + ;; + *) + dtb="/usr/lib/linux-image-$kvers/$dtb_id" + ;; + esac if [ "x$FK_KERNEL_HOOK_SCRIPT" = "xpostrm.d" ] ; then rm -f "/boot/dtb-$kvers" else @@ -643,7 +651,14 @@ case "$method" in kernel="$kfile" initrd="$ifile" if [ "$dtb_append" = "yes" ]; then - dtb="/usr/lib/linux-image-$kvers/$dtb_name" + case "$dtb_name" in + /*) + dtb="$dtb_name" + ;; + *) + dtb="/usr/lib/linux-image-$kvers/$dtb_name" + ;; + esac if [ ! -f "$dtb" ]; then error "Couldn't find $dtb" fi -- 2.1.1