[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [RFC] Adding a 686-bigmem netboot image for PAE/Xen (was: Structural changes needed for switch to 2.6.25 kernels)



On Thu, 2008-05-29 at 01:04 +0200, Frans Pop wrote:
> On Wednesday 28 May 2008, Ian Campbell wrote:
> > On Wed, 2008-05-28 at 02:14 +0200, Frans Pop wrote:
> > Now seems like a good time to remind you that I would like to add
> > -686-bigmem kernel udebs to the mix to support running D-I under PAE
> > Xen.
> 
> I don't see any real objection to adding only a netboot image, except
> maybe that it may proof too hard to find for users. So at the very least
> a very good wiki page should be written that includes a link.

Yes, my plan was to update the wiki page on installing Xen once daily
builds started appearing. Perhaps a paragraph in the release notes might
be appropriate as well?

> If anybody else has fundamental objections, I guess this would be a good
> time to voice them!
> 
> 
> The fairly trivial patch below is required to add 686-bigmem udebs.
> Not sure why generic_serial is missing in 686-bigmem. Could be a minor
> config "error" in linux-2.6.

It's because CONFIG_SX and CONFIG_RIO are not set in the 686-bigmem
config to pull it in. I don't know why that is but I'll take a look. I
don't think these drivers are particularly critical at install time...

> It would be nice if you could build those, dump them in localudebs, and
> see if you can figure out what changes are needed in the config dir to
> add only netboot images for that kernel (if you've never really looked
> at that it can be a nice challenge; AFAICT changes should only be needed
> below the installer/build/config dir).
> Feel free to ask for help if needed.

Thanks, I've actually had the config dir changes ready for a while, was
just waiting for the beta before submitting them.

I've attached the patches which I've been using, updated and freshly
tested this morning (make all_build to check nothing else broke and then
booted the bigmem one).

kernel-wedge.patch: generic_serial is optional and add Xen block and net
devices. The block device isn't strictly a SCSI device but it seemed
like the best place for it since it isn't worthy of its own udeb, any of
sata, pata, ata, ide would be as good...

kernel.patch: the entirely trivial linux-kernel-di-i686 patch you have
below.

base-installer.patch: the selection of a 686-bigmem kernel for install
if the installer itself is running 686-bigmem. Has been discussed on
list already.

hw-detect.patch: a probably useless patch to hw-detect but seems right
for completeness.

installer.patch: adds the netboot-bigmem flavour to the build. watch out
since this also includes the 2.6.24->2.6.25 jump.

I still have one or two outstanding patches relating to Xen
specifically (mainly hvc0 handling) which I will post separately when
I'm happy with them.

Cheers,
Ian.

> 
> Cheers,
> FJP
> 
> diff --git a/packages/kernel/kernel-wedge/modules/serial-modules b/packages/kernel/kernel-wedge/modules/serial-modules
> index 44de44e..5b2036c 100644
> --- a/packages/kernel/kernel-wedge/modules/serial-modules
> +++ b/packages/kernel/kernel-wedge/modules/serial-modules
> @@ -1,2 +1,2 @@
> -generic_serial
> +generic_serial ?
>  serial_cs ?
> diff --git a/packages/kernel/linux-kernel-di-i386-2.6/kernel-versions b/packages/kernel/linux-kernel-di-i386-2.6/kernel-versions
> index 808bf40..5b415dd 100644
> --- a/packages/kernel/linux-kernel-di-i386-2.6/kernel-versions
> +++ b/packages/kernel/linux-kernel-di-i386-2.6/kernel-versions
> @@ -1,2 +1,3 @@
>  # arch   version  flavour       installedname        suffix build-depends
>  i386     2.6.25-2 486           2.6.25-2-486         -      linux-image-2.6.25-2-486
> +i386     2.6.25-2 686-bigmem    2.6.25-2-686-bigmem  -      linux-image-2.6.25-2-686-bigmem
-- 
Ian Campbell

May not be reproduced, in whole or in part, by any means, mechanical or
electronic, except for brief excerpts for the purpose of inclusion in reviews.
Index: kernel/kernel-wedge/debian/changelog
===================================================================
--- kernel/kernel-wedge/debian/changelog	(revision 53508)
+++ kernel/kernel-wedge/debian/changelog	(working copy)
@@ -1,5 +1,6 @@
 kernel-wedge (2.45) UNRELEASED; urgency=low
 
+  [ Frans Pop ]
   * Updates for 2.6.25.
   * scsi-modules: atp870u is no longer available.
   * crypto-core-modules: blkcipher has been renamed to crypto_blkcipher.
@@ -12,6 +13,10 @@
   * Add an nls-core-modules udeb for the nls_base module. All nls_* modules
     and several filesystem modules depend on it.
 
+  [ Ian Campbell ]
+  * Include Xen net and block drivers.
+  * generic_serial is optional (for 686-bigmem support).
+
  -- Frans Pop <fjp@debian.org>  Tue, 27 May 2008 16:31:38 +0200
 
 kernel-wedge (2.44) unstable; urgency=low
Index: kernel/kernel-wedge/modules/nic-modules
===================================================================
--- kernel/kernel-wedge/modules/nic-modules	(revision 53508)
+++ kernel/kernel-wedge/modules/nic-modules	(working copy)
@@ -8,3 +8,4 @@
 tulip
 winbond-840
 eth1394 ?
+xen-netfront ?
Index: kernel/kernel-wedge/modules/scsi-modules
===================================================================
--- kernel/kernel-wedge/modules/scsi-modules	(revision 53508)
+++ kernel/kernel-wedge/modules/scsi-modules	(working copy)
@@ -36,3 +36,4 @@
 dc395x ?
 aic94xx ?
 stex ?
+xen-blkfront ?
Index: kernel/kernel-wedge/modules/serial-modules
===================================================================
--- kernel/kernel-wedge/modules/serial-modules	(revision 53508)
+++ kernel/kernel-wedge/modules/serial-modules	(working copy)
@@ -1,2 +1,2 @@
-generic_serial
+generic_serial ?
 serial_cs ?
Index: kernel/linux-kernel-di-i386-2.6/kernel-versions
===================================================================
--- kernel/linux-kernel-di-i386-2.6/kernel-versions	(revision 53508)
+++ kernel/linux-kernel-di-i386-2.6/kernel-versions	(working copy)
@@ -1,2 +1,3 @@
 # arch   version  flavour       installedname        suffix build-depends
 i386     2.6.25-2 486           2.6.25-2-486         -      linux-image-2.6.25-2-486
+i386     2.6.25-2 686-bigmem    2.6.25-2-686-bigmem  -      linux-image-2.6.25-2-686-bigmem
Index: base-installer/kernel/README
===================================================================
--- base-installer/kernel/README	(revision 53508)
+++ base-installer/kernel/README	(working copy)
@@ -61,6 +61,8 @@
     The major version of the running kernel, e.g. 2.6.
   KERNEL_VERSION
     The full version of the running kernel, e.g. 2.6.8.
+  KERNEL_FLAVOUR
+    The flavour of the running kernel, e.g. 486, 686-bigmem or ixp4xx.
   MACHINE
     The machine hardware name (as returned by uname -m).
   NUMCPUS
Index: base-installer/kernel/tests/i386/cittagazze-bigmem.test
===================================================================
--- base-installer/kernel/tests/i386/cittagazze-bigmem.test	(revision 0)
+++ base-installer/kernel/tests/i386/cittagazze-bigmem.test	(revision 0)
@@ -0,0 +1,17 @@
+cpuinfo cittagazze.cpuinfo
+majors 2.6
+flavour k7-bigmem
+kernel-2.6 \
+  linux-image-2.6-686-bigmem \
+  linux-image-2.6-k7 \
+  linux-image-2.6-486
+usable \
+  linux-image-2.6-486 \
+  linux-image-2.6-686 \
+  linux-image-2.6-686-bigmem \
+  linux-image-2.6-k7 \
+  linux-image-2.6.18-1-486 \
+  linux-image-2.6.18-1-686 \
+  linux-image-2.6.18-1-686-bigmem \
+  linux-image-2.6.18-1-k7
+env KERNEL_FLAVOUR 686-bigmem
Index: base-installer/kernel/tests/i386/cittagazze.test
===================================================================
--- base-installer/kernel/tests/i386/cittagazze.test	(revision 53508)
+++ base-installer/kernel/tests/i386/cittagazze.test	(working copy)
@@ -13,3 +13,4 @@
   linux-image-2.6.18-1-686 \
   linux-image-2.6.18-1-686-bigmem \
   linux-image-2.6.18-1-k7
+env KERNEL_FLAVOUR 486
Index: base-installer/kernel/tests/i386/via-c7-Samuel.test
===================================================================
--- base-installer/kernel/tests/i386/via-c7-Samuel.test	(revision 53508)
+++ base-installer/kernel/tests/i386/via-c7-Samuel.test	(working copy)
@@ -15,3 +15,4 @@
   linux-image-2.6.18-1-686-bigmem \
   linux-image-2.6.18-1-686 \
   linux-image-2.6.18-1-k7
+env KERNEL_FLAVOUR 486
Index: base-installer/kernel/tests/i386/via-c7-Esther.test
===================================================================
--- base-installer/kernel/tests/i386/via-c7-Esther.test	(revision 53508)
+++ base-installer/kernel/tests/i386/via-c7-Esther.test	(working copy)
@@ -16,3 +16,4 @@
 unusable \
   linux-image-2.6-k7 \
   linux-image-2.6.18-1-k7
+env KERNEL_FLAVOUR 486
Index: base-installer/kernel/tests/i386/oqo1.test
===================================================================
--- base-installer/kernel/tests/i386/oqo1.test	(revision 53508)
+++ base-installer/kernel/tests/i386/oqo1.test	(working copy)
@@ -14,3 +14,4 @@
   linux-image-2.6.18-1-686-bigmem \
   linux-image-2.6.18-1-686 \
   linux-image-2.6.18-1-k7
+env KERNEL_FLAVOUR 486
Index: base-installer/kernel/tests/i386/pentium-3.test
===================================================================
--- base-installer/kernel/tests/i386/pentium-3.test	(revision 53508)
+++ base-installer/kernel/tests/i386/pentium-3.test	(working copy)
@@ -15,3 +15,4 @@
 unusable \
   linux-image-2.6-k7 \
   linux-image-2.6.18-1-k7
+env KERNEL_FLAVOUR 486
Index: base-installer/kernel/tests/i386/pentium-d-2p.test
===================================================================
--- base-installer/kernel/tests/i386/pentium-d-2p.test	(revision 53508)
+++ base-installer/kernel/tests/i386/pentium-d-2p.test	(working copy)
@@ -15,3 +15,4 @@
 unusable \
   linux-image-2.6-k7 \
   linux-image-2.6.18-1-k7
+env KERNEL_FLAVOUR 486
Index: base-installer/kernel/tests/i386/pentium.test
===================================================================
--- base-installer/kernel/tests/i386/pentium.test	(revision 53508)
+++ base-installer/kernel/tests/i386/pentium.test	(working copy)
@@ -15,3 +15,4 @@
   linux-image-2.6.18-1-686-bigmem \
   linux-image-2.6.18-1-686 \
   linux-image-2.6.18-1-k7
+env KERNEL_FLAVOUR 486
Index: base-installer/kernel/tests/i386/pentium-4M-bigmem.test
===================================================================
--- base-installer/kernel/tests/i386/pentium-4M-bigmem.test	(revision 0)
+++ base-installer/kernel/tests/i386/pentium-4M-bigmem.test	(revision 0)
@@ -0,0 +1,20 @@
+cpuinfo pentium-4M.cpuinfo
+machine i686
+majors 2.6
+flavour 686-bigmem
+env SPEAKUP /nonexistent
+kernel-2.6 \
+  linux-image-2.6-686-bigmem \
+  linux-image-2.6-686 \
+  linux-image-2.6-486
+usable \
+  linux-image-2.6-486 \
+  linux-image-2.6-686 \
+  linux-image-2.6-686-bigmem \
+  linux-image-2.6.18-1-486 \
+  linux-image-2.6.18-1-686 \
+  linux-image-2.6.18-1-686-bigmem
+unusable \
+  linux-image-2.6-k7 \
+  linux-image-2.6.18-1-k7
+env KERNEL_FLAVOUR 686-bigmem
Index: base-installer/kernel/tests/i386/pentium-4M.test
===================================================================
--- base-installer/kernel/tests/i386/pentium-4M.test	(revision 53508)
+++ base-installer/kernel/tests/i386/pentium-4M.test	(working copy)
@@ -16,3 +16,4 @@
 unusable \
   linux-image-2.6-k7 \
   linux-image-2.6.18-1-k7
+env KERNEL_FLAVOUR 486
Index: base-installer/kernel/i386.sh
===================================================================
--- base-installer/kernel/i386.sh	(revision 53508)
+++ base-installer/kernel/i386.sh	(working copy)
@@ -2,16 +2,26 @@
 	VENDOR=`grep '^vendor_id' "$CPUINFO" | head -n1 | cut -d: -f2`
 	FAMILY=`grep '^cpu family' "$CPUINFO" | head -n1 | cut -d: -f2`
 	MODEL=`grep '^model[[:space:]]*:' "$CPUINFO" | head -n1 | cut -d: -f2`
+
+	# Only offer bigmem is the system supports pae and the
+	# installer itself is already using a bigmem kernel.
+	if grep '^flags' "$CPUINFO" | grep -q pae ; then
+	    case "$KERNEL_FLAVOUR" in
+		686-bigmem*) BIGMEM="-bigmem" ;;
+		*) ;;
+	    esac
+        fi
+
 	case "$VENDOR" in
 	    " AuthenticAMD"*)
 		case "$FAMILY" in
-		    " 6"|" 15")	echo k7 ;;
+		    " 6"|" 15") echo k7$BIGMEM ;;
 		    *)		echo 486 ;;
 		esac
 		;;
 	    " GenuineIntel")
 		case "$FAMILY" in
-		    " 6"|" 15")	echo 686 ;;
+		    " 6"|" 15")	echo 686$BIGMEM ;;
 		    *)		echo 486 ;;
 		esac
 		;;
@@ -19,7 +29,7 @@
 		case "$FAMILY" in
 		    " 6")
 			case "$MODEL" in
-			    " 9"|" 10")	echo 686 ;;
+			    " 9"|" 10")	echo 686$BIGMEM ;;
 			    *)		echo 486 ;;
 			esac
 			;;
@@ -39,8 +49,8 @@
 	if echo "$1" | grep -Eq -- "-486(-.*)?$"; then return 0; fi
 	if [ "$2" = 486 ]; then return 1; fi
 	if echo "$1" | grep -Eq -- "-686(-.*)?$"; then return 0; fi
-	if [ "$2" = 686 ]; then return 1; fi
-	if [ "$2" = k7 ]; then
+	if [ "$2" = 686 ] || [ "$2" = 686-bigmem ]; then return 1; fi
+	if [ "$2" = k7 ] || [ "$2" = k7-bigmem ] ; then
 		if echo "$1" | grep -Eq -- "-k7(-.*)?$"; then return 0; fi
 		return 1
 	fi
@@ -53,11 +63,21 @@
 arch_get_kernel () {
 	imgbase=linux-image
 
+	if [ "$1" = k7-bigmem ]; then
+		echo "$imgbase-$KERNEL_MAJOR-686-bigmem"
+		set k7
+	fi
+
 	if [ "$1" = k7 ]; then
 		echo "$imgbase-$KERNEL_MAJOR-k7"
 		set 486
 	fi
 
+	if [ "$1" = 686-bigmem ]; then
+		echo "$imgbase-$KERNEL_MAJOR-686-bigmem"
+		set 686
+	fi
+
 	if [ "$1" = 686 ]; then
 		echo "$imgbase-$KERNEL_MAJOR-686"
 		set 486
Index: base-installer/debian/changelog
===================================================================
--- base-installer/debian/changelog	(revision 53508)
+++ base-installer/debian/changelog	(working copy)
@@ -1,5 +1,10 @@
 base-installer (1.91) unstable; urgency=low
 
+  [ Ian Campbell ]
+  * i386: If the installer is running a -bigmem kernel and the processors
+    support PAE then select a -bigmem kernel for installation. For
+    compatibility with running under Xen.
+
   [ Updated translations ]
   * Dzongkha (dz.po) by Jurmey Rabgay(Bongop) (DIT,BHUTAN)
   * Basque (eu.po) by Iñaki Larrañaga Murgoitio
Index: base-installer/library.sh
===================================================================
--- base-installer/library.sh	(revision 53508)
+++ base-installer/library.sh	(working copy)
@@ -17,6 +17,7 @@
 KERNEL_MAJOR="$(uname -r | cut -d . -f 1,2)"
 KERNEL_VERSION="$(uname -r | cut -d - -f 1)"
 KERNEL_ABI="$(uname -r | cut -d - -f 1,2)"
+KERNEL_FLAVOUR=$(uname -r | cut -d - -f 3-)
 MACHINE="$(uname -m)"
 NUMCPUS=$(cat /var/numcpus 2>/dev/null) || true
 CPUINFO=/proc/cpuinfo
Index: hw-detect/devnames-static.txt
===================================================================
--- hw-detect/devnames-static.txt	(revision 53508)
+++ hw-detect/devnames-static.txt	(working copy)
@@ -133,6 +133,7 @@
 wavelan_cs:Lucent WaveLAN/IEEE + compatibles 802.11
 wd:ISA WD 8003/8013 or SMC Elite/16 Ethernet
 winbond-840:Winbond W89c840 Ethernet
+xen-netfront:Xen Virtual Ethernet
 xirc2ps_cs:Xircom PCMCIA Ethernet
 xircom_cb:Xircom Cardbus Ethernet
 xircom_tulip_cb:Xircom CBE-100 Ethernet
Index: installer/build/config/i386.cfg
===================================================================
--- installer/build/config/i386.cfg	(revision 53508)
+++ installer/build/config/i386.cfg	(working copy)
@@ -1,7 +1,8 @@
-MEDIUM_SUPPORTED = cdrom netboot netboot-gtk hd-media #floppy #monolithic
+MEDIUM_SUPPORTED = cdrom netboot netboot-bigmem netboot-gtk hd-media #floppy #monolithic
 
 # The version of the kernel to use.
-KERNELVERSION = 2.6.24-1-486
+BASEVERSION = 2.6.25-2
+KERNELVERSION = $(BASEVERSION)-486
 KERNELMAJOR = 2.6
 KERNEL_FLAVOUR = di
 KERNELNAME = vmlinuz
Index: installer/build/config/i386/netboot-bigmem.cfg
===================================================================
--- installer/build/config/i386/netboot-bigmem.cfg	(revision 0)
+++ installer/build/config/i386/netboot-bigmem.cfg	(revision 0)
@@ -0,0 +1,6 @@
+KERNELVERSION = $(BASEVERSION)-686-bigmem
+TYPE=netboot
+include config/i386/netboot.cfg
+MANIFEST-NETBOOT_DIR = "PXE boot directory for tftp server (bigmem)"
+MANIFEST-NETBOOT_TAR = "tarball of PXE boot directory (bigmem)"
+MANIFEST-MINIISO = "tiny CD image that boots the netboot installer (bigmem)"

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: