Module Name:    src
Committed By:   martin
Date:           Sat Nov 16 21:25:15 UTC 2019

Modified Files:
        src/usr.sbin/sysinst: util.c
        src/usr.sbin/sysinst/arch/amd64: md.c md.h
        src/usr.sbin/sysinst/arch/i386: md.c msg.md.de msg.md.en msg.md.es
            msg.md.fr msg.md.pl

Log Message:
On amd64 support installation with a KASLR kernel, via "custom install"
and selecting the GENERIC_KASLR kernel set.
Setup /prekern and boot.cfg accordingly.


To generate a diff of this commit:
cvs rdiff -u -r1.39 -r1.40 src/usr.sbin/sysinst/util.c
cvs rdiff -u -r1.1 -r1.2 src/usr.sbin/sysinst/arch/amd64/md.c
cvs rdiff -u -r1.7 -r1.8 src/usr.sbin/sysinst/arch/amd64/md.h
cvs rdiff -u -r1.23 -r1.24 src/usr.sbin/sysinst/arch/i386/md.c
cvs rdiff -u -r1.3 -r1.4 src/usr.sbin/sysinst/arch/i386/msg.md.de \
    src/usr.sbin/sysinst/arch/i386/msg.md.en \
    src/usr.sbin/sysinst/arch/i386/msg.md.es \
    src/usr.sbin/sysinst/arch/i386/msg.md.fr \
    src/usr.sbin/sysinst/arch/i386/msg.md.pl

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.sbin/sysinst/util.c
diff -u src/usr.sbin/sysinst/util.c:1.39 src/usr.sbin/sysinst/util.c:1.40
--- src/usr.sbin/sysinst/util.c:1.39	Sat Nov 16 20:26:59 2019
+++ src/usr.sbin/sysinst/util.c	Sat Nov 16 21:25:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: util.c,v 1.39 2019/11/16 20:26:59 martin Exp $	*/
+/*	$NetBSD: util.c,v 1.40 2019/11/16 21:25:14 martin Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -1151,9 +1151,16 @@ get_and_unpack_sets(int update, msg setu
 					    "> /tmp/boot.cfg.tmp'");
 				mv_within_target_or_die("/tmp/boot.cfg.tmp",
 							"/boot.cfg");
+
 			}
 		}
 
+#ifdef MD_BOOT_CFG_FINALIZE
+		if (target_file_exists_p("/boot.cfg")) {
+			MD_BOOT_CFG_FINALIZE("/boot.cfg");
+		}
+#endif
+
 		/* Save keyboard type */
 		save_kb_encoding();
 

Index: src/usr.sbin/sysinst/arch/amd64/md.c
diff -u src/usr.sbin/sysinst/arch/amd64/md.c:1.1 src/usr.sbin/sysinst/arch/amd64/md.c:1.2
--- src/usr.sbin/sysinst/arch/amd64/md.c:1.1	Sat Jul 26 19:30:44 2014
+++ src/usr.sbin/sysinst/arch/amd64/md.c	Sat Nov 16 21:25:14 2019
@@ -1,5 +1,22 @@
-/*	$NetBSD: md.c,v 1.1 2014/07/26 19:30:44 dholland Exp $ */
+/*	$NetBSD: md.c,v 1.2 2019/11/16 21:25:14 martin Exp $ */
 
 /* md.c -- Machine specific code for amd64 */
 
 #include "../i386/md.c"
+
+void	amd64_md_boot_cfg_finalize(const char *path);
+
+void
+amd64_md_boot_cfg_finalize(const char *path)
+{
+	char buf[MAXPATHLEN];
+
+	if (get_kernel_set() != SET_KERNEL_2)
+		return;
+
+	run_program(RUN_CHROOT|RUN_FATAL,
+	    "sh -c 'sed -e \"s:;boot:;pkboot:\" "
+	    "< %s > %s.1", path, path);
+	snprintf(buf, sizeof buf, "%s.1", path);
+	mv_within_target_or_die(buf, path);
+}

Index: src/usr.sbin/sysinst/arch/amd64/md.h
diff -u src/usr.sbin/sysinst/arch/amd64/md.h:1.7 src/usr.sbin/sysinst/arch/amd64/md.h:1.8
--- src/usr.sbin/sysinst/arch/amd64/md.h:1.7	Wed Oct  2 11:16:01 2019
+++ src/usr.sbin/sysinst/arch/amd64/md.h	Sat Nov 16 21:25:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: md.h,v 1.7 2019/10/02 11:16:01 maya Exp $	*/
+/*	$NetBSD: md.h,v 1.8 2019/11/16 21:25:14 martin Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -85,6 +85,7 @@
  * from floppy.
  */
 #define SET_KERNEL_1_NAME	"kern-GENERIC"
+#define	SET_KERNEL_2_NAME	"kern-GENERIC_KASLR"
 
 #define SET_KERNEL_GENERIC	SET_KERNEL_1
 
@@ -117,9 +118,13 @@ extern struct mbr_bootsel *mbs;
  */
 void x86_md_part_defaults(struct pm_devs*, struct part_usage_info**,
             size_t *num_usage_infos);
+
 #define MD_PART_DEFAULTS(A,B,C)	x86_md_part_defaults(A,&(B),&(C))
 
 /* no need to install bootblock if installing for UEFI */
 bool x86_md_need_bootblock(struct install_partition_desc *install);
 #define	MD_NEED_BOOTBLOCK(A)	x86_md_need_bootblock(A)
 
+/* post-process boot.cfg for KASLR if that kernel has been selected */
+void amd64_md_boot_cfg_finalize(const char*);
+#define	MD_BOOT_CFG_FINALIZE(P)	amd64_md_boot_cfg_finalize(P)

Index: src/usr.sbin/sysinst/arch/i386/md.c
diff -u src/usr.sbin/sysinst/arch/i386/md.c:1.23 src/usr.sbin/sysinst/arch/i386/md.c:1.24
--- src/usr.sbin/sysinst/arch/i386/md.c:1.23	Sat Nov 16 18:08:36 2019
+++ src/usr.sbin/sysinst/arch/i386/md.c	Sat Nov 16 21:25:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: md.c,v 1.23 2019/11/16 18:08:36 martin Exp $ */
+/*	$NetBSD: md.c,v 1.24 2019/11/16 21:25:14 martin Exp $ */
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -376,6 +376,13 @@ md_post_newfs_uefi(struct install_partit
 int
 md_post_newfs(struct install_partition_desc *install)
 {
+#if defined(__amd64__)
+	int ret;
+
+	ret = cp_to_target("/usr/mdec/prekern", "/prekern");
+	if (ret)
+		return ret;
+#endif
 
 	return uefi_boot ? md_post_newfs_uefi(install)
 	    : md_post_newfs_bios(install);
@@ -911,5 +918,3 @@ x86_md_need_bootblock(struct install_par
 
 	return !uefi_boot;
 }
-
-

Index: src/usr.sbin/sysinst/arch/i386/msg.md.de
diff -u src/usr.sbin/sysinst/arch/i386/msg.md.de:1.3 src/usr.sbin/sysinst/arch/i386/msg.md.de:1.4
--- src/usr.sbin/sysinst/arch/i386/msg.md.de:1.3	Sat Nov 16 17:53:02 2019
+++ src/usr.sbin/sysinst/arch/i386/msg.md.de	Sat Nov 16 21:25:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg.md.de,v 1.3 2019/11/16 17:53:02 martin Exp $	*/
+/*	$NetBSD: msg.md.de,v 1.4 2019/11/16 21:25:14 martin Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -165,3 +165,4 @@ message updatembr
 NetBSD Bootcodes updaten?}
 
 message set_kernel_1	{Kernel (GENERIC)}
+message set_kernel_2	{Kernel (GENERIC_KASLR)}
Index: src/usr.sbin/sysinst/arch/i386/msg.md.en
diff -u src/usr.sbin/sysinst/arch/i386/msg.md.en:1.3 src/usr.sbin/sysinst/arch/i386/msg.md.en:1.4
--- src/usr.sbin/sysinst/arch/i386/msg.md.en:1.3	Sat Nov 16 17:53:02 2019
+++ src/usr.sbin/sysinst/arch/i386/msg.md.en	Sat Nov 16 21:25:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg.md.en,v 1.3 2019/11/16 17:53:02 martin Exp $	*/
+/*	$NetBSD: msg.md.en,v 1.4 2019/11/16 21:25:14 martin Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -161,3 +161,4 @@ message updatembr
 the latest version of the NetBSD bootcode?}
 
 message set_kernel_1	{Kernel (GENERIC)}
+message set_kernel_2	{Kernel (GENERIC_KASLR)}
Index: src/usr.sbin/sysinst/arch/i386/msg.md.es
diff -u src/usr.sbin/sysinst/arch/i386/msg.md.es:1.3 src/usr.sbin/sysinst/arch/i386/msg.md.es:1.4
--- src/usr.sbin/sysinst/arch/i386/msg.md.es:1.3	Sat Nov 16 17:53:02 2019
+++ src/usr.sbin/sysinst/arch/i386/msg.md.es	Sat Nov 16 21:25:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg.md.es,v 1.3 2019/11/16 17:53:02 martin Exp $	*/
+/*	$NetBSD: msg.md.es,v 1.4 2019/11/16 21:25:14 martin Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -162,3 +162,4 @@ message updatembr
 Record a la ultima versión del código de arranque de NetBSD?}
 
 message set_kernel_1  {Núcleo (GENERIC)}
+message set_kernel_2	{Kernel (GENERIC_KASLR)}
Index: src/usr.sbin/sysinst/arch/i386/msg.md.fr
diff -u src/usr.sbin/sysinst/arch/i386/msg.md.fr:1.3 src/usr.sbin/sysinst/arch/i386/msg.md.fr:1.4
--- src/usr.sbin/sysinst/arch/i386/msg.md.fr:1.3	Sat Nov 16 17:53:02 2019
+++ src/usr.sbin/sysinst/arch/i386/msg.md.fr	Sat Nov 16 21:25:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg.md.fr,v 1.3 2019/11/16 17:53:02 martin Exp $	*/
+/*	$NetBSD: msg.md.fr,v 1.4 2019/11/16 21:25:14 martin Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -157,3 +157,4 @@ message updatembr
 avec la dernière version du code d'amorçage de NetBSD ?}
 
 message set_kernel_1	{Kernel (GENERIC)}
+message set_kernel_2	{Kernel (GENERIC_KASLR)}
Index: src/usr.sbin/sysinst/arch/i386/msg.md.pl
diff -u src/usr.sbin/sysinst/arch/i386/msg.md.pl:1.3 src/usr.sbin/sysinst/arch/i386/msg.md.pl:1.4
--- src/usr.sbin/sysinst/arch/i386/msg.md.pl:1.3	Sat Nov 16 17:53:02 2019
+++ src/usr.sbin/sysinst/arch/i386/msg.md.pl	Sat Nov 16 21:25:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg.md.pl,v 1.3 2019/11/16 17:53:02 martin Exp $	*/
+/*	$NetBSD: msg.md.pl,v 1.4 2019/11/16 21:25:14 martin Exp $	*/
 /*	Based on english version: */
 /*	NetBSD: msg.md.en,v 1.24 2001/01/27 07:34:39 jmc Exp 	*/
 
@@ -156,3 +156,4 @@ message updatembr
 kodu rozruchowego NetBSD?}
 
 message set_kernel_1	{Kernel (GENERIC)}
+message set_kernel_2	{Kernel (GENERIC_KASLR)}

Reply via email to