linux/arch/ppc64/boot/install.sh
Olaf Hering 18c5332bc1 [PATCH] ppc64: change name of target file during make install
'make install' creates a /boot/zImage[.vmode] file when the defconfig is used.

It uses the second arg as file content, which is the vmlinux, and the 5th
arg as file name, which is the BOOTIMAGE name.

A comment in an earlier patch to install.sh states that yaboot can not load
a zImage+initrd combo.  This was true in kernel 2.6.5 because it did use
bi_recs to pass the initrd info.  But this concept was always broken.
Register r3 holds the initrd address and r4 holds the initrd size.  This
works with all kernel versions.  The current code in main.c leaves r3 and
r4 alone, so the kernel should be able to see and use the memory range with
the initrd content.

If one wants to rerun mkinitrd, it is currently hard to get the uname -r
value for the installed zImage.  Without this info, mkinitrd can not know
what modules to use.  This would be fixable by including the /proc/version
output of the new kernel.  But it is simpler to just use the plain vmlinux.

So all this patch does is to write to /boot/vmlinux instead to /boot/zImage

Signed-off-by: Olaf Hering <olh@suse.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-10-29 15:20:27 +10:00

43 lines
1.1 KiB
Bash

#!/bin/sh
#
# arch/ppc64/boot/install.sh
#
# This file is subject to the terms and conditions of the GNU General Public
# License. See the file "COPYING" in the main directory of this archive
# for more details.
#
# Copyright (C) 1995 by Linus Torvalds
#
# Blatantly stolen from in arch/i386/boot/install.sh by Dave Hansen
#
# "make install" script for ppc64 architecture
#
# Arguments:
# $1 - kernel version
# $2 - kernel image file
# $3 - kernel map file
# $4 - default install path (blank if root directory)
# $5 - kernel boot file, the zImage
#
# User may have a custom install script
if [ -x ~/bin/${CROSS_COMPILE}installkernel ]; then exec ~/bin/${CROSS_COMPILE}installkernel "$@"; fi
if [ -x /sbin/${CROSS_COMPILE}installkernel ]; then exec /sbin/${CROSS_COMPILE}installkernel "$@"; fi
# Default install
# this should work for both the pSeries zImage and the iSeries vmlinux.sm
image_name=`basename $2`
if [ -f $4/$image_name ]; then
mv $4/$image_name $4/$image_name.old
fi
if [ -f $4/System.map ]; then
mv $4/System.map $4/System.old
fi
cat $2 > $4/$image_name
cp $3 $4/System.map