Re: SATA install - AMD64 - success story
On Thu, Jul 28, 2005 at 10:22:41AM -0400, Joey Hess wrote:
> Would you like to contribute that patch back to the list? After all,
> we're in exactly the same spot you were in, the linux-2.6 kernel is in the
> archive and we need to get d-i to use it.
Here is a different take on solving the base-installer problem with
linux-image. I think this might even support both linux-image and
kernel-image kernels at the same time, assuming 2.6.12 means linux-image
and anything less than that is kernel-image.
diff -ruN base-installer-1.13.4/debian/postinst base-installer-1.13.4.linux-image/debian/postinst
--- base-installer-1.13.4/debian/postinst 2005-03-01 15:20:32.000000000 +0000
+++ base-installer-1.13.4.linux-image/debian/postinst 2005-07-28 15:48:42.000000000 +0000
@@ -297,7 +297,7 @@
kernel_update_list () {
# Using 'uniq' to avoid listing the same kernel more then once.
- chroot /target apt-cache search kernel-image | grep ^kernel-image | \
+ chroot /target apt-cache search image | grep '^linux-image\|^kernel-image' | \
cut -d" " -f1 | uniq > $KERNEL_LIST
}
@@ -307,6 +307,13 @@
# Returns a kernel that seems appropriate for the machine.
get_arch_kernel () {
+ version=$(uname -r | cut -d . -f 1,2) # 2.4 or 2.6
+ revision=$(uname -r | cut -d . -f 3) # revision of kernel
+ if [ "$version" == "2.4" -o ( "$version" == "2.6" -a $revision -lt 12 ) ]; then
+ prefix=kernel-image
+ else
+ prefix=linux-image
+ fi
trykernel=
case "$ARCH" in
i386*)
@@ -324,20 +331,20 @@
case "$FAMILY" in
" 6")
if test $SMP = no; then
- trykernel=kernel-image-$version-k7
+ trykernel=$prefix-$version-k7
else
- trykernel=kernel-image-$version-k7-smp
+ trykernel=$prefix-$version-k7-smp
fi
;;
" 5")
if test $version = "2.4"; then
- trykernel=kernel-image-$version-k6
+ trykernel=$prefix-$version-k6
else
- trykernel=kernel-image-$version-386
+ trykernel=$prefix-$version-386
fi
;;
*)
- trykernel=kernel-image-$version-386
+ trykernel=$prefix-$version-386
;;
esac
;;
@@ -345,32 +352,32 @@
case "$FAMILY" in
" 6"|" 15")
if test $SMP = no; then
- trykernel=kernel-image-$version-686
+ trykernel=$prefix-$version-686
else
- trykernel=kernel-image-$version-686-smp
+ trykernel=$prefix-$version-686-smp
fi
;;
" 5")
if test $version = "2.4"; then
- trykernel=kernel-image-$version-586tsc
+ trykernel=$prefix-$version-586tsc
else
- trykernel=kernel-image-$version-386
+ trykernel=$prefix-$version-386
fi
;;
*)
- trykernel=kernel-image-$version-386
+ trykernel=$prefix-$version-386
;;
esac
;;
*)
- trykernel=kernel-image-$version-386
+ trykernel=$prefix-$version-386
;;
esac
if [ -e /proc/speakup ]; then
# Override and use speakup kernel. There's only one.
# Note: 'uname -r' already contains the -speakup extension.
- trykernel=kernel-image-$(uname -r)
+ trykernel=$prefix-$(uname -r)
fi
;;
amd64)
@@ -384,20 +391,20 @@
case "$VENDOR" in
" AuthenticAMD"*)
if test "$SMP" = no; then
- trykernel=kernel-image-$version-amd64-k8
+ trykernel=$prefix-$version-amd64-k8
else
- trykernel=kernel-image-$version-amd64-k8-smp
+ trykernel=$prefix-$version-amd64-k8-smp
fi
;;
" GenuineIntel"*)
if test "$SMP" = no; then
- trykernel=kernel-image-$version-em64t-p4
+ trykernel=$prefix-$version-em64t-p4
else
- trykernel=kernel-image-$version-em64t-p4-smp
+ trykernel=$prefix-$version-em64t-p4-smp
fi
;;
*)
- trykernel=kernel-image-$version-amd64-generic
+ trykernel=$prefix-$version-amd64-generic
;;
esac
;;
@@ -408,21 +415,21 @@
case "$MODEL" in
sparc)
if [ "$CPUS" -eq 1 ]; then
- trykernel=kernel-image-$version-sparc32
+ trykernel=$prefix-$version-sparc32
else
# No working SMP yet
if [ "$version" = "2.6" ]; then
- trykernel=kernel-image-$version-sparc32
+ trykernel=$prefix-$version-sparc32
else
- trykernel=kernel-image-$version-sparc32-smp
+ trykernel=$prefix-$version-sparc32-smp
fi
fi
;;
sparc64)
if [ "$CPUS" -eq 1 ]; then
- trykernel=kernel-image-$version-sparc64
+ trykernel=$prefix-$version-sparc64
else
- trykernel=kernel-image-$version-sparc64-smp
+ trykernel=$prefix-$version-sparc64-smp
fi
;;
esac
@@ -454,8 +461,8 @@
;;
esac
case "$SUBARCH" in
- amiga) trykernel=kernel-image-$apusversion-apus ;;
- *) trykernel=kernel-image-$version-$family ;;
+ amiga) trykernel=$prefix-$apusversion-apus ;;
+ *) trykernel=$prefix-$version-$family ;;
esac
;;
mips)
@@ -467,14 +474,14 @@
*) version=$kernel_major ;;
esac
case "$SUBARCH" in
- r4k-ip22) trykernel=kernel-image-$version-r4k-ip22 ;;
- r5k-ip22) trykernel=kernel-image-$version-r5k-ip22 ;;
- sb1-swarm-bn) trykernel=kernel-image-$version-sb1-swarm-bn ;;
+ r4k-ip22) trykernel=$prefix-$version-r4k-ip22 ;;
+ r5k-ip22) trykernel=$prefix-$version-r5k-ip22 ;;
+ sb1-swarm-bn) trykernel=$prefix-$version-sb1-swarm-bn ;;
# NOTE: the following kernel is not in Debian (sarge), but
# make it easier to offer unofficial support from a private
# apt-archive.
- r5k-ip32) trykernel=kernel-image-$version-r5k-ip32 ;;
+ r5k-ip32) trykernel=$prefix-$version-r5k-ip32 ;;
*) warning "Unknown $ARCH subarchitecture '$SUBARCH'." ;;
esac
@@ -488,11 +495,11 @@
*) version=$kernel_major ;;
esac
case "$SUBARCH" in
- r3k-kn02) trykernel=kernel-image-$version-r3k-kn02 ;;
- r4k-kn04) trykernel=kernel-image-$version-r4k-kn04 ;;
- cobalt) trykernel=kernel-image-$version-r5k-cobalt ;;
- lasat) trykernel=kernel-image-$version-r5k-lasat ;;
- sb1-swarm-bn) trykernel=kernel-image-$version-sb1-swarm-bn ;;
+ r3k-kn02) trykernel=$prefix-$version-r3k-kn02 ;;
+ r4k-kn04) trykernel=$prefix-$version-r4k-kn04 ;;
+ cobalt) trykernel=$prefix-$version-r5k-cobalt ;;
+ lasat) trykernel=$prefix-$version-r5k-lasat ;;
+ sb1-swarm-bn) trykernel=$prefix-$version-sb1-swarm-bn ;;
*) warning "Unknown $ARCH subarchitecture '$SUBARCH'." ;;
esac
@@ -510,7 +517,7 @@
else
flavor=$family
fi
- trykernel=kernel-image-$version-$flavor
+ trykernel=$prefix-$version-$flavor
;;
alpha)
version=2.4.27-2
@@ -520,9 +527,9 @@
CPUS=1
fi
if test $CPUS -eq 1; then
- trykernel=kernel-image-$version-generic
+ trykernel=$prefix-$version-generic
else
- trykernel=kernel-image-$version-smp
+ trykernel=$prefix-$version-smp
fi
;;
m68k)
@@ -537,7 +544,7 @@
version=$(uname -r | cut -d - -f 1)
case "$SUBARCH" in
netwinder|bast|riscpc|riscstation|lart)
- trykernel=kernel-image-$version-$SUBARCH ;;
+ trykernel=$prefix-$version-$SUBARCH ;;
*) warning "Unknown $ARCH subarchitecture '$SUBARCH'." ;;
esac
;;
@@ -552,16 +559,16 @@
# apparently it's OK to assume SMP.
case "$MODEL" in
parisc)
- trykernel=kernel-image-$version-32-smp
+ trykernel=$prefix-$version-32-smp
;;
parisc64)
- trykernel=kernel-image-$version-64-smp
+ trykernel=$prefix-$version-64-smp
;;
esac
;;
s390)
version=$(uname -r)
- trykernel=kernel-image-$version
+ trykernel=$prefix-$version
;;
*)
warning "Unknown architecture '$ARCH'."
@@ -624,7 +631,7 @@
if [ "$KVERS" != "" ]; then
kernellist=`grep $arch_kernel $KERNEL_LIST | sort -r | tr '\n' ' '`
for akernel in $kernellist; do
- if [ "" != "`echo $akernel | grep '^kernel-image-'$KVERS`" ]; then
+ if [ "" != "`echo $akernel | grep '^linux-image-'$KVERS'\|^kernel-image-'$KVERS`" ]; then
KERNEL=$akernel
break
fi
@@ -653,7 +660,7 @@
}
install_kernel () {
- kernel_major="$(echo "$KERNEL" | sed 's/^kernel-image-//; s/-.*//' | cut -d . -f 1,2)"
+ kernel_major="$(echo "$KERNEL" | sed 's/^linux-image-//; s/^kernel-image-//; s/-.*//' | cut -d . -f 1,2)"
case $kernel_major in
2.?) ;;
*)
@@ -707,6 +714,10 @@
link_in_boot = $link_in_boot
EOF
+ # Hack to make sure module-init-tools are installed since linux-image-2.6.* doesn't depend on it.
+ # It doesn't hurt 2.4 kernels as far as I am aware so it shouldn't cause problems
+ apt-install module-init-tools
+
if [ yes = "$do_initrd" ] ; then
info "Installing initrd-tools."
@@ -767,7 +778,7 @@
}
install_pcmcia_modules () {
- pcmcia_package=$(echo "$KERNEL" | sed 's/^kernel-image/kernel-pcmcia-modules/')
+ pcmcia_package=$(echo "$KERNEL" | sed 's/^linux-image/kernel-pcmcia-modules/; s/^kernel-image/kernel-pcmcia-modules/')
info "Installing pcmcia modules package '$pcmcia_package'."
apt-install "$pcmcia_package" 2>> $LOGFILE || true
}
I have unfortunately not tested it yet so it may be broken. The
previous patch does work on amd64 while this one hopefully works on
multiple architectures (Some seem to have a lot of hardcoded versions
for some reason I can't quite figure out).
Len Sorensen
Reply to: