ALT Linux Distributions development
 help / color / mirror / Atom feed
* [devel-distro] Несколько ядер в stage1 и stage2
@ 2019-10-13 16:44 Антон Мидюков
  0 siblings, 0 replies; only message in thread
From: Антон Мидюков @ 2019-10-13 16:44 UTC (permalink / raw)
  To: devel-distro

[-- Attachment #1: Type: text/plain, Size: 691 bytes --]

Всем привет

Сделал первый шажочек в сторону того, чтобы начать собирать iso с 
несколькими ядрами.

0001-stage1-stage2-allow-multiple-kernels.patch для mkimage-profiles, 
разрешает несколько ядер в stage1 и stage2

Другие два патча для mkimage.

На данный момент это позволило собрать образ с несколькими ядрами для 
isolinux. Но меню syslinux требует доработки, нужна опция выбора ядра.

-- 
С уважением, Антон Мидюков <antohami@altlinux.org>


[-- Attachment #2: 0001-mki-build-propagator-allow-multiple-kernels.patch --]
[-- Type: text/x-patch, Size: 2054 bytes --]

>From 09846301adef606f42ef37d531667c38c3843f17 Mon Sep 17 00:00:00 2001
From: Anton Midyukov <antohami@altlinux.org>
Date: Sun, 13 Oct 2019 23:35:03 +0700
Subject: [PATCH 1/2] mki-build-propagator: allow multiple kernels

---
 tools/mki-build-propagator | 47 +++++++++++++++++++-------------------
 1 file changed, 24 insertions(+), 23 deletions(-)

diff --git a/tools/mki-build-propagator b/tools/mki-build-propagator
index 365d359..691f231 100755
--- a/tools/mki-build-propagator
+++ b/tools/mki-build-propagator
@@ -30,34 +30,35 @@ make_exec "$chroot/.host/packimage.sh" <<EOF
 
 libdir="\$(getconf LIBDIR)"
 
-if [ -L /boot/vmlinuz ]; then
-	kimage="\$(readlink -ev /boot/vmlinuz)"
-else
-	kimage="\$(find /boot -type f -name 'vmlinuz-*' -print -quit)"
-fi
-kver="\${kimage#/boot/vmlinuz-}"
-
-if type mkmodpack >/dev/null 2>&1; then
-	mkmodpack -p '/.in/${mar_modules##*/}' -o /tmp/modules -k "\$kver"
-else
-	mkmar -r / -p '/.in/${mar_modules##*/}' -o /tmp/modules -k "\$kver"
-fi
-
+kimage="\$(find /boot -type f -name 'vmlinuz-*')"
 printf '%s\n' "${PROPAGATOR_VERSION:-}" > /tmp/.VERSION
 
-rm -f /boot/full.cz
+rm -f /boot/full*.cz
+
+for kver in \$kimage; do
+	kver="\${kver#/boot/vmlinuz-}"
+	if type mkmodpack >/dev/null 2>&1; then
+		mkmodpack -p '/.in/${mar_modules##*/}' -o /tmp/modules-"\$kver" -k "\$kver"
+	else
+		mkmar -r / -p '/.in/${mar_modules##*/}' -o /tmp/modules-"\$kver" -k "\$kver"
+	fi
+	[ ! -f /tmp/modules-"\$kver" ] ||
+		cat "\$libdir/propagator/initfs" /tmp/modules-"\$kver" > /boot/full-"\$kver".cz
+	
+	sed \
+		-e "s,@LIBDIR@,\$libdir," \
+		-e "s,@TMPDIR@,/tmp,g" \
+		< '/.in/${initfs##*/}' |
+		gencpio - |
+		gzip -c >> /boot/full-"\$kver".cz
+
+done
 
-[ ! -f /tmp/modules ] ||
-	cat "\$libdir/propagator/initfs" /tmp/modules > /boot/full.cz
+rm -rf -- /tmp/.VERSION
 
-sed \
-	-e "s,@LIBDIR@,\$libdir," \
-	-e "s,@TMPDIR@,/tmp,g" \
-	< '/.in/${initfs##*/}' |
-	gencpio - |
-	gzip -c >> /boot/full.cz
+[ -L /boot/vmlinuz ] ||
+	ln -s vmlinuz-"\$kver" vmlinuz
 
-rm -rf -- /tmp/.VERSION
 EOF
 
 rc=0
-- 
2.21.0


[-- Attachment #3: 0002-mki-copy-isolinux-allow-multiple-kernels.patch --]
[-- Type: text/x-patch, Size: 1392 bytes --]

>From 2b76b1f683f05b7205b30175ac98cd16ba5b5e7e Mon Sep 17 00:00:00 2001
From: Anton Midyukov <antohami@altlinux.org>
Date: Sun, 13 Oct 2019 23:35:37 +0700
Subject: [PATCH 2/2] mki-copy-isolinux: allow multiple kernels

---
 tools/mki-copy-isolinux | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/tools/mki-copy-isolinux b/tools/mki-copy-isolinux
index e9ae6fd..a6dae36 100755
--- a/tools/mki-copy-isolinux
+++ b/tools/mki-copy-isolinux
@@ -32,10 +32,12 @@ run_chrooted "$chroot" <<EOF
 
 if [ -L /boot/vmlinuz ]; then
 	kimage="\$(readlink -ev /boot/vmlinuz)"
-else
-	kimage="\$(find /boot -type f -name 'vmlinuz-*' -print -quit)"
+	kverdef="\${kimage#/boot/vmlinuz-}"
 fi
 
+kimage="\$(find /boot -type f -name 'vmlinuz-*')"
+propagator="\$(find /boot -type f -name 'full-*.cz')"
+
 mkdir $verbose -p -- /.image/$imgsubdir/syslinux
 cd /.image/$imgsubdir/syslinux
 
@@ -43,9 +45,12 @@ if [ -n "\$kimage" ]; then
 	mkdir $verbose alt0
 	cd /.image/$imgsubdir/syslinux
 
-	cp $verbose -af \$kimage alt0/vmlinuz
-	[ ! -f /boot/full.cz ] ||
-		cp $verbose -af /boot/full.cz alt0/full.cz
+	cp $verbose -af \$kimage alt0/
+	[ -n "\$kverdef" ] &&
+		mv alt0/vmlinuz-\$kverdef alt0/vmlinuz
+	cp $verbose -af \$propagator alt0/
+		[ -n "\$kverdef" ] &&
+			mv alt0/full-\$kverdef.cz alt0/full.cz
 fi
 
 cp $verbose -f /usr/lib/syslinux/isolinux.bin .
-- 
2.21.0


[-- Attachment #4: 0001-stage1-stage2-allow-multiple-kernels.patch --]
[-- Type: text/x-patch, Size: 1437 bytes --]

>From 6ffe72bb7eb8c4bc34255bfdd8b7db29158e2f75 Mon Sep 17 00:00:00 2001
From: Anton Midyukov <antohami@altlinux.org>
Date: Sun, 13 Oct 2019 23:30:25 +0700
Subject: [PATCH] stage1, stage2: allow multiple kernels

---
 sub.in/stage1/Makefile | 2 +-
 sub.in/stage2/Makefile | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/sub.in/stage1/Makefile b/sub.in/stage1/Makefile
index 112c95336..d06fd43e8 100644
--- a/sub.in/stage1/Makefile
+++ b/sub.in/stage1/Makefile
@@ -22,7 +22,7 @@ include $(MKIMAGE_PREFIX)/targets.mk
 # only a single kernel might be needed (STAGE1_KFLAVOUR sets explicitly);
 # kernel image copied from instrumental chroot into .work/syslinux/alt0/
 
-STAGE1_KFLAVOUR ?= $(lastword $(KFLAVOURS))
+STAGE1_KFLAVOUR ?= $(KFLAVOURS)
 
 # propagator needed iff stage1 kernel installed (not for e.g. syslinux.iso)
 ifneq "$(STAGE1_KFLAVOUR)" ""
diff --git a/sub.in/stage2/Makefile b/sub.in/stage2/Makefile
index f124dfc66..e07d434b5 100644
--- a/sub.in/stage2/Makefile
+++ b/sub.in/stage2/Makefile
@@ -29,7 +29,7 @@ IMAGE_PACKAGES += $(SYSTEM_PACKAGES) $(STAGE2_PACKAGES)
 
 # here we also try and come up with the stage1 kernel/modules, if any;
 # no kernel flavour specified will result in no modules for stage1 vmlinuz
-STAGE1_KFLAVOUR ?= $(lastword $(KFLAVOURS))
+STAGE1_KFLAVOUR ?= $(KFLAVOURS)
 
 ifeq (,$(STAGE1_KFLAVOUR))
 $(error STAGE1_KFLAVOUR is utterly empty; cannot guess either)
-- 
2.21.0


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-10-13 16:44 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-13 16:44 [devel-distro] Несколько ядер в stage1 и stage2 Антон Мидюков

ALT Linux Distributions development

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel-distro/0 devel-distro/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel-distro devel-distro/ http://lore.altlinux.org/devel-distro \
		devel-distro@lists.altlinux.org devel-distro@lists.altlinux.ru devel-distro@lists.altlinux.com
	public-inbox-index devel-distro

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel-distro


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git