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

[PATCHES] 686-bigmem/Xen enabled netboot images



Hi,

Now that beta2 is out the door I'd like to revisit the possibility of
having an additional 686-bigmem netboot image suitable for use with Xen.
Some previous threads on the subject are:
http://lists.debian.org/debian-boot/2008/05/msg01021.html
http://lists.debian.org/debian-boot/2008/04/msg01016.html
(I'm sure there a few others hidden away in sub-threads...)

First patch is to kernel wedge and adds the Xen block and net devices
(optional since they won't appear in the 486 images) as well as making
generic_serial optional in order to allow 686-bigmem kernel udebs to be
built. [kernel-wedge.patch]

Second patch is to linux-kernel-di-i386-2.6 and simply adds the
686-bigmem flavour kernels. [linux-kernel-di-i386-2.6.patch]

Third patch is to base-installer and causes the 686-bigmem kernel to be
installed into the new system iff the installer is also running a bigmem
kernel. This has been filed as #480054 and I'll send an update there
too. [base-installer.patch]

Final patch is the the installer itself to cause a 686-bigmem netboot
image to be built. [installer.patch]

I have one additional patch to finish-install/finish-install.d/90console
which enables getty on hvc0 under Xen. Although it works I think can be
done better. I'll send that one later.

The kernel and base-installer patches are safe to apply right away and
I'd really appreciate the kernel one especially being included in the
next upload of those udebs. The installer.patch needs to wait until you
are ready to switch to 2.6.25 for the installer generally.

Cheers,
Ian.
-- 
Ian Campbell

Don't try to outweird me, three-eyes.  I get stranger things than you free
with my breakfast cereal.
		-- Zaphod Beeblebrox
Index: packages/kernel/kernel-wedge/debian/changelog
===================================================================
--- packages/kernel/kernel-wedge/debian/changelog	(revision 53759)
+++ packages/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: packages/kernel/kernel-wedge/modules/nic-modules
===================================================================
--- packages/kernel/kernel-wedge/modules/nic-modules	(revision 53759)
+++ packages/kernel/kernel-wedge/modules/nic-modules	(working copy)
@@ -8,3 +8,4 @@
 tulip
 winbond-840
 eth1394 ?
+xen-netfront ?
Index: packages/kernel/kernel-wedge/modules/scsi-modules
===================================================================
--- packages/kernel/kernel-wedge/modules/scsi-modules	(revision 53759)
+++ packages/kernel/kernel-wedge/modules/scsi-modules	(working copy)
@@ -36,3 +36,4 @@
 dc395x ?
 aic94xx ?
 stex ?
+xen-blkfront ?
Index: packages/kernel/kernel-wedge/modules/serial-modules
===================================================================
--- packages/kernel/kernel-wedge/modules/serial-modules	(revision 53759)
+++ packages/kernel/kernel-wedge/modules/serial-modules	(working copy)
@@ -1,2 +1,2 @@
-generic_serial
+generic_serial ?
 serial_cs ?
Index: packages/kernel/linux-kernel-di-i386-2.6/debian/changelog
===================================================================
--- packages/kernel/linux-kernel-di-i386-2.6/debian/changelog	(revision 53759)
+++ packages/kernel/linux-kernel-di-i386-2.6/debian/changelog	(working copy)
@@ -1,11 +1,15 @@
 linux-kernel-di-i386-2.6 (1.62) UNRELEASED; urgency=low
 
+  [ Frans Pop ]
   * Update to 2.6.25-2.
   * irda-modules: irport is no longer available.
   * Add crypto-dm-modules; dependencies on crypto-core-modules are now defined
     in kernel-wedge.
   * Add isofs-modules and nls-core-modules.
 
+  [ Ian Campbell ]
+  * Build -686-bigmem udebs.
+
  -- Frans Pop <fjp@debian.org>  Tue, 27 May 2008 16:40:12 +0200
 
 linux-kernel-di-i386-2.6 (1.61) unstable; urgency=low
Index: packages/kernel/linux-kernel-di-i386-2.6/kernel-versions
===================================================================
--- packages/kernel/linux-kernel-di-i386-2.6/kernel-versions	(revision 53759)
+++ packages/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: packages/base-installer/kernel/README
===================================================================
--- packages/base-installer/kernel/README	(revision 53759)
+++ packages/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: packages/base-installer/kernel/i386.sh
===================================================================
--- packages/base-installer/kernel/i386.sh	(revision 53759)
+++ packages/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: packages/base-installer/kernel/tests/i386/cittagazze-bigmem.test
===================================================================
--- packages/base-installer/kernel/tests/i386/cittagazze-bigmem.test	(revision 0)
+++ packages/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: packages/base-installer/kernel/tests/i386/cittagazze.test
===================================================================
--- packages/base-installer/kernel/tests/i386/cittagazze.test	(revision 53759)
+++ packages/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: packages/base-installer/kernel/tests/i386/via-c7-Samuel.test
===================================================================
--- packages/base-installer/kernel/tests/i386/via-c7-Samuel.test	(revision 53759)
+++ packages/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: packages/base-installer/kernel/tests/i386/via-c7-Esther.test
===================================================================
--- packages/base-installer/kernel/tests/i386/via-c7-Esther.test	(revision 53759)
+++ packages/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: packages/base-installer/kernel/tests/i386/oqo1.test
===================================================================
--- packages/base-installer/kernel/tests/i386/oqo1.test	(revision 53759)
+++ packages/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: packages/base-installer/kernel/tests/i386/pentium.test
===================================================================
--- packages/base-installer/kernel/tests/i386/pentium.test	(revision 53759)
+++ packages/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: packages/base-installer/kernel/tests/i386/pentium-d-2p.test
===================================================================
--- packages/base-installer/kernel/tests/i386/pentium-d-2p.test	(revision 53759)
+++ packages/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: packages/base-installer/kernel/tests/i386/pentium-3.test
===================================================================
--- packages/base-installer/kernel/tests/i386/pentium-3.test	(revision 53759)
+++ packages/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: packages/base-installer/kernel/tests/i386/pentium-4M-bigmem.test
===================================================================
--- packages/base-installer/kernel/tests/i386/pentium-4M-bigmem.test	(revision 0)
+++ packages/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: packages/base-installer/kernel/tests/i386/pentium-4M.test
===================================================================
--- packages/base-installer/kernel/tests/i386/pentium-4M.test	(revision 53759)
+++ packages/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: packages/base-installer/debian/changelog
===================================================================
--- packages/base-installer/debian/changelog	(revision 53759)
+++ packages/base-installer/debian/changelog	(working copy)
@@ -1,10 +1,16 @@
 base-installer (1.92) UNRELEASED; urgency=low
 
+  [ Joey Hess ]
   * Call base-installer.d hooks after running debootstrap, for consistency
     with live-installer. (So, pre_install_hooks is run after bootstrap, but
     before anything is installed with apt. So the name still makes a kind
     of sense, if you squint..)
 
+  [ 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.
+
  -- Joey Hess <joeyh@debian.org>  Wed, 18 Jun 2008 21:20:28 -0400
 
 base-installer (1.91) unstable; urgency=low
Index: packages/base-installer/library.sh
===================================================================
--- packages/base-installer/library.sh	(revision 53759)
+++ packages/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: installer/build/config/i386.cfg
===================================================================
--- installer/build/config/i386.cfg	(revision 53759)
+++ 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: