amd64, alpha, i386 and macppc strip all symbols off the ramdisk bsd.rd (before gzipping it) and thus break config(8)'s modification feature:
$ gzcat bsd.rd > bsd.rd.raw $ config -e bsd.rd.raw WARNING no output file specified WARNING this kernel doesn't contain all information needed! WARNING the commands add and change might not work. WARNING this kernel doesn't support pseudo devices. WARNING this kernel doesn't support modification of NKMEMPAGES. config: failed to get first cfdata Needing 'disable xhci' on arm64/Pinebook Pro right now, I looked into all of bsd.re-config(5), UKC and how we build bsd.rd for all platforms. That's how I noticed modifying a ramdisk kernel on these for platforms wouldn't work in the first place. Needing it to fix or upgrade systems can be crucial, so I figured it's worth addressing. While `boot /bsd.rd -c' does work on amd64 and macppc regardless of symbols, its changes do not persist and `config -e' is more convenient. So I propose to strip less symbols such to make this work. On amd64, this accounts for 200K growth in bsd.gz according to `du -k': -9144 obj/bsd.strip +9840 obj/bsd.strip -4264 obj/bsd.gz +4464 obj/bsd.gz I cranked FSSIZE to the smallest possible volume that would build. The resulting miniroot70.img boots fine in vmm(4) and on a X250. macppc is still building; I have no alpha or i386. Feedback? Objections? OK? Index: Makefile =================================================================== RCS file: /cvs/src/distrib/amd64/ramdisk_cd/Makefile,v retrieving revision 1.31 diff -u -p -r1.31 Makefile --- Makefile 26 Jul 2021 12:47:45 -0000 1.31 +++ Makefile 4 Nov 2021 18:42:51 -0000 @@ -1,7 +1,7 @@ # $OpenBSD: Makefile,v 1.31 2021/07/26 12:47:45 kn Exp $ FS= miniroot${OSrev}.img -FSSIZE= 9920 +FSSIZE= 10368 FSDISKTYPE= mini34 CDROM= cd${OSrev}.iso MOUNT_POINT= /mnt @@ -56,7 +56,7 @@ MRDISKTYPE= rdrootb MRMAKEFSARGS= -o disklabel=${MRDISKTYPE},minfree=0,density=4096 bsd.gz: bsd.rd - objcopy -S -R .comment -R .SUNW_ctf \ + objcopy -g -x -R .comment -R .SUNW_ctf \ -K rd_root_size -K rd_root_image \ bsd.rd bsd.strip gzip -9cn bsd.strip > bsd.gz