This patch makes the install target work. After all, it is already
mentioned in the 'make help' output.
The only question is, should it install zImage by default? I always
install vmlinux, so I used that.
Martin
Signed-off-by: Martin Habets <redacted>
--- 2.6/arch/ppc/Makefile.orig 2004-06-16 18:29:54.318963064 +0100
+++ 2.6/arch/ppc/Makefile 2004-06-16 18:55:18.157304424 +0100
@@ -46,6 +46,7 @@
drivers-$(CONFIG_OCP) += arch/ppc/ocp/
BOOT_TARGETS = zImage zImage.initrd znetboot znetboot.initrd vmlinux.sm
+BOOT_TARGETS += install
.PHONY: $(BOOT_TARGETS)
@@ -70,7 +71,7 @@
@echo ' install - Install kernel using'
@echo ' (your) ~/bin/installkernel or'
@echo ' (distribution) /sbin/installkernel or'
- @echo ' install to $$(INSTALL_PATH) and run lilo'
+ @echo ' install to $$(INSTALL_PATH) and run ybin'
@echo ' *_defconfig - Select default config from arch/$(ARCH)/ppc/configs'
endef
--- 2.6/arch/ppc/boot/Makefile.orig 2004-06-16 18:33:06.614729664 +0100
+++ 2.6/arch/ppc/boot/Makefile 2004-06-16 18:36:43.275792176 +0100
@@ -32,3 +32,6 @@
$(bootdir-y): $(addprefix $(obj)/,$(subdir-y)) \
$(addprefix $(obj)/,$(host-progs))
$(Q)$(MAKE) $(build)=$(obj)/$@ $(MAKECMDGOALS)
+
+install: vmlinux
+ sh $(srctree)/$(src)/install.sh $(KERNELRELEASE) $< System.map "$(INSTALL_PATH)"
--- 2.6/arch/ppc/boot/install.sh.orig 2004-06-16 18:53:05.439480600 +0100
+++ 2.6/arch/ppc/boot/install.sh 2004-06-16 18:45:41.206014352 +0100
@@ -0,0 +1,50 @@
+#!/bin/sh
+#
+# arch/ppc/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 Martin Habets
+#
+# "make install" script for ppc architecture
+#
+# Arguments:
+# $1 - kernel version
+# $2 - kernel image file
+# $3 - kernel map file
+# $4 - default install path (blank if root directory)
+#
+
+# User may have a custom install script
+
+if [ -x ~/bin/installkernel ]; then exec ~/bin/installkernel "$@"; fi
+if [ -x /sbin/installkernel ]; then exec /sbin/installkernel "$@"; fi
+
+# Default install
+
+# Figure out if this is a compressed image or not.
+target=vmlinux
+if [ -n "`file $2 | grep -i compressed`" ];
+then
+ target=vmlinuz;
+fi
+
+if [ -f $4/$target ]; then
+ mv $4/$target $4/$target.old
+fi
+
+if [ -f $4/System.map ]; then
+ mv $4/System.map $4/System.old
+fi
+
+cat $2 > $4/$target
+cp $3 $4/System.map
+
+if [ -x /usr/sbin/ybin ];
+then
+ /usr/sbin/ybin -v;
+fi
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
On Wed, Jun 16, 2004 at 07:16:52PM +0100, Martin Habets wrote:
This patch makes the install target work. After all, it is already
mentioned in the 'make help' output.
The only question is, should it install zImage by default? I always
install vmlinux, so I used that.
Given the number of different ways we have to deal with (this really
only handles pmac) I'd much rather just have boot/install.sh run either
the distribution or user-provided script.
--
Tom Rini
http://gate.crashing.org/~trini/
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
On Wed, Jun 16, 2004 at 12:05:48PM -0700, Tom Rini wrote:
On Wed, Jun 16, 2004 at 07:16:52PM +0100, Martin Habets wrote:
quoted
This patch makes the install target work. After all, it is already
mentioned in the 'make help' output.
The only question is, should it install zImage by default? I always
install vmlinux, so I used that.
Given the number of different ways we have to deal with (this really
only handles pmac) I'd much rather just have boot/install.sh run either
the distribution or user-provided script.
Ehh.. that's exactly what install.sh tries to do! Only if both of these
do not exist will the bottom part of the code be executed.
The distribution provided scripts want an image to install. I agree
that it is impossible to supply the right image for all systems.
But maybe it is possible to echance this patch for some systems,
providing a different image based on config settings?
--
Martin
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
On Thu, Jun 17, 2004 at 12:38:22PM +0100, Martin Habets wrote:
On Wed, Jun 16, 2004 at 12:05:48PM -0700, Tom Rini wrote:
quoted
On Wed, Jun 16, 2004 at 07:16:52PM +0100, Martin Habets wrote:
quoted
This patch makes the install target work. After all, it is already
mentioned in the 'make help' output.
The only question is, should it install zImage by default? I always
install vmlinux, so I used that.
Given the number of different ways we have to deal with (this really
only handles pmac) I'd much rather just have boot/install.sh run either
the distribution or user-provided script.
Ehh.. that's exactly what install.sh tries to do! Only if both of these
do not exist will the bottom part of the code be executed.
Right. And it's the bits at the bottom that I don't like.
The distribution provided scripts want an image to install. I agree
that it is impossible to supply the right image for all systems.
But maybe it is possible to echance this patch for some systems,
providing a different image based on config settings?
Possibly. But I'm not convinced that the complexity will buy us
anything over the distribution script (which should cover all of the
pmac cases, if not, bug your distribution :)) and the user provided
hook.
--
Tom Rini
http://gate.crashing.org/~trini/
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
On Thu, Jun 17, 2004 at 08:03:58AM -0700, Tom Rini wrote:
On Thu, Jun 17, 2004 at 12:38:22PM +0100, Martin Habets wrote:
quoted
On Wed, Jun 16, 2004 at 12:05:48PM -0700, Tom Rini wrote:
quoted
On Wed, Jun 16, 2004 at 07:16:52PM +0100, Martin Habets wrote:
quoted
This patch makes the install target work. After all, it is already
mentioned in the 'make help' output.
The only question is, should it install zImage by default? I always
install vmlinux, so I used that.
Given the number of different ways we have to deal with (this really
only handles pmac) I'd much rather just have boot/install.sh run either
the distribution or user-provided script.
Ehh.. that's exactly what install.sh tries to do! Only if both of these
do not exist will the bottom part of the code be executed.
Right. And it's the bits at the bottom that I don't like.
Ok, so you'd like to fail if neither nethod is avaiable (right?). I have no
problem with that, but realize that it causes some inconsistent behaviour
compared to other architectures.
Can you explain why or what you don't like, please?
quoted
The distribution provided scripts want an image to install. I agree
that it is impossible to supply the right image for all systems.
But maybe it is possible to echance this patch for some systems,
providing a different image based on config settings?
Possibly. But I'm not convinced that the complexity will buy us
anything over the distribution script (which should cover all of the
pmac cases, if not, bug your distribution :)) and the user provided
hook.
Yes, covering all cases in the kernel would be overkill, but I did not
suggest that. Pushing all this to the distribution script is not right
either. That's not much more than a fancy copy script, and keeping it in
sync with kernel code (directory and filenames) would be impossible.
Besides, this kind of logic belongs in the kernel, if anywhere.
But there is an intermediate solution, which should satisfy all users:
a makefile variable can be overruled by users, e.g.
make BOOTIMAGE=arch/ppc/boot/images/zImage.prep install
This can be used with a distribution script or a user provided one.
If the distribution scripts ever become smart enough, which I seriously
doubt, the override is no longer needed.
What do you think of this approach?
--
Martin
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
On Fri, Jun 18, 2004 at 10:17:07AM +0100, Martin Habets wrote:
On Thu, Jun 17, 2004 at 08:03:58AM -0700, Tom Rini wrote:
quoted
On Thu, Jun 17, 2004 at 12:38:22PM +0100, Martin Habets wrote:
quoted
On Wed, Jun 16, 2004 at 12:05:48PM -0700, Tom Rini wrote:
quoted
On Wed, Jun 16, 2004 at 07:16:52PM +0100, Martin Habets wrote:
quoted
This patch makes the install target work. After all, it is already
mentioned in the 'make help' output.
The only question is, should it install zImage by default? I always
install vmlinux, so I used that.
Given the number of different ways we have to deal with (this really
only handles pmac) I'd much rather just have boot/install.sh run either
the distribution or user-provided script.
Ehh.. that's exactly what install.sh tries to do! Only if both of these
do not exist will the bottom part of the code be executed.
Right. And it's the bits at the bottom that I don't like.
Ok, so you'd like to fail if neither nethod is avaiable (right?). I have no
problem with that, but realize that it causes some inconsistent behaviour
compared to other architectures.
By fail just:
echo "No install method found, nothing installed"
is fine.
Can you explain why or what you don't like, please?
quoted
quoted
The distribution provided scripts want an image to install. I agree
that it is impossible to supply the right image for all systems.
But maybe it is possible to echance this patch for some systems,
providing a different image based on config settings?
Possibly. But I'm not convinced that the complexity will buy us
anything over the distribution script (which should cover all of the
pmac cases, if not, bug your distribution :)) and the user provided
hook.
Yes, covering all cases in the kernel would be overkill, but I did not
suggest that.
I'm talking about the complexity of covering most of the cases, for
non-pmac. But..
Pushing all this to the distribution script is not right
either.
I disagree. Given that the common case is using yaboot, that's not a
big burden on the distribution. But if one decides to support grub or
U-Boot (with the latter being a bit more likely, IMHO, since it's what
the Pegasos boards use, I believe), it does become a distribution
problem to know how it set things up so that the user can add new
kernels, not the kernels responsibility to know where it has to put
something for a given distribution.
That's not much more than a fancy copy script, and keeping it in
sync with kernel code (directory and filenames) would be impossible.
This is rather static information, and I've taken some pains to ensure
that image names / locations have stayed consistent in 2.$(stable).
Besides, this kind of logic belongs in the kernel, if anywhere.
But there is an intermediate solution, which should satisfy all users:
a makefile variable can be overruled by users, e.g.
make BOOTIMAGE=arch/ppc/boot/images/zImage.prep install
Actually, Sam Ravnborg introduced a patch, which I think will be
accepted soon, to add a BOOT_IMAGE variable to the Makefiles, so that
'make rpm/deb/tarball' will be cleaner. Once that happens, we can
revisit the idea of hooking an install script up, for all of the various
targets.
--
Tom Rini
http://gate.crashing.org/~trini/
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/