Re: Support for sunxi-based ARM systems in d-i
On Mon, 2014-05-05 at 21:45 +0200, Karsten Merker wrote:
> On Mon, May 05, 2014 at 08:17:06PM +0100, Ian Campbell wrote:
>
> > This does make me wonder if f-k with your patch needs to be more careful
> > about overwriting /boot/vmlinuz in case it is a symlink.
>
> Indeed. Does anything speak against explicitly calling "rm -f" on the
> file defined by Boot-{Kernel,Initrd}-Path before writing to it? If
> it is a symlink, only the symlink gets removed and the file it points
> to stays untouched, and if it is a file, removing it does no harm.
I'm not sure. How about just avoiding the issue altogether with
something like this (untested):
--- a/functions
+++ b/functions
@@ -282,9 +282,13 @@ mkimage_script() {
local sdata="$3"
local script="$4"
+ local tdata="$tmpdir/boot.scr.subst"
+
printf "Generating boot script u-boot image... " >&2
+ sed -e 's/@@KERNEL_VERSION@@/$kvers/g' \
+ < $sdata > $tdata
mkimage -A arm -O linux -T script -C none -a "$saddr" -e "$saddr" \
- -n "$sdesc" -d "$sdata" "$script" >&2 1>/dev/null
+ -n "$sdesc" -d "$tdata" "$script" >&2 1>/dev/null
echo "done." >&2
}
With this there is no need to copy or link anything since you can use
"setenv kvers @@KERNEL_VERSION@@" in the boot.scr and then use
vmlinuz-${kvers} etc (or use @@KERNEL_VERSION@@ throughout).
This shouldn't have any impact on any existing boot script which doesn't
use the @@KERNEL_VERSION@@ pattern.
A less appealing alternative would be for flash-kernel to always prepend
a setenv to the script itself, or perhaps to generate a second script
which could be optionally sourced from this one a la uEnv.txt. I think
the patch above is the simplest alternative though.
Ian.
Reply to: