Hi!
As I noted earlier, I'd like to do more writeups of what I'm
attempting, to finally create some documentation.
Right now, a 4000/60 with 80 MB RAM and a 2 GB system disk
emulated on a PiSCSI is running with an installation cross-compiled
from Linux based on this commit:
# echo $NETBSD_SHELL
20220122 BUILD:20231222175549Z
(Notice the BUILD timestamp, as I do reproducible builds on the Linux
host, is the commit timestamp. This resolves to:
---------------------------------------------------------------------
commit 33d45195d8dbc05843af2d76d66a83970b802c30
Author: thorpej <thorpej%NetBSD.org@localhost>
Date: Fri Dec 22 17:55:49 2023 +0000
rmspace(): when a PT page is put back onto the free list, invalidate
it's VA in the TB.
rmptep(): Add a comment that the no TIBS is needed for newly-freed PT
pages here because all of the callers perform a TBIA.
---------------------------------------------------------------------
)
On that Linux box, the Install ISO is cross-build in a Docker
container based on Debian "sid", using basically this recipe:
---------------------------------------------------------------------
# Prepare destdir.
declare -a extra_args
destdir="${PWD}/dest-${build_machine}-${build_arch}"
relsdir="${PWD}/release-${build_machine}-${build_arch}"
tooldir="${PWD}/tools-${build_machine}-${build_arch}"
extra_args+=(-N 3)
#extra_args+=(-j8)
#extra_args+=(-V HAVE_GCC=12)
[ "${build_machine}" = zaurus -a "${build_arch}" = earm ] && extra_args+=(-x -X "${full_xsrc_repo_dir}")
# Build.
pushd "${full_src_repo_dir}"
export
log_execute "bld tls" ./build.sh "${extra_args[@]}" -P -U -u -m "${build_machine}" -a "${build_arch}" -E -D "${destdir}" -R "${relsdir}" -T "${tooldir}" tools
log_execute "bld lib" ./build.sh "${extra_args[@]}" -P -U -u -m "${build_machine}" -a "${build_arch}" -E -D "${destdir}" -R "${relsdir}" -T "${tooldir}" libs
log_execute "bld rel" ./build.sh "${extra_args[@]}" -P -U -u -m "${build_machine}" -a "${build_arch}" -E -D "${destdir}" -R "${relsdir}" -T "${tooldir}" release
log_execute "bld iso" ./build.sh "${extra_args[@]}" -P -U -u -m "${build_machine}" -a "${build_arch}" -E -D "${destdir}" -R "${relsdir}" -T "${tooldir}" iso-image
log_execute "bld ins" ./build.sh "${extra_args[@]}" -P -U -u -m "${build_machine}" -a "${build_arch}" -E -D "${destdir}" -R "${relsdir}" -T "${tooldir}" install-image
log_execute "bld liv" ./build.sh "${extra_args[@]}" -P -U -u -m "${build_machine}" -a "${build_arch}" -E -D "${destdir}" -R "${relsdir}" -T "${tooldir}" live-image
popd
---------------------------------------------------------------------
The 4000/60 was installed using the generated Install ISO image,
which was supplied as an emulated CD-ROM device via PiSCSI, using
suggested default partitioning, enabling ntpdate, ntpd and ssh.
Relevant `dmesg` parts:
----------------------------------------------------------------------
Jan 1 20:45:42 /netbsd: [ 1.0000000] VAXstation 4000/60
Jan 1 20:45:42 /netbsd: [ 1.0000000] total memory = 81500 KB
Jan 1 20:45:42 /netbsd: [ 1.0000000] avail memory = 74216 KB
Jan 1 20:45:42 /netbsd: [ 1.0000000] cpu0 at mainbus0: KA46, Mariah, 2KB L1 cache, 256KB L2 cache
Jan 1 20:45:42 /netbsd: [ 1.0000000] le0: address 08:00:2b:2e:8a:fe
Jan 1 20:45:42 /netbsd: [ 1.0000000] tc0 at vsbus0 csr 0x36800000 vec 764 ipl 17 maskbit -1: 12.5 MHz clock
Jan 1 20:45:42 /netbsd: [ 1.0000000] asc1 at tc0 slot 0 offset 0x0: NCR53C94, 12MHz, SCSI ID 7
Jan 1 20:45:42 /netbsd: [ 1.0000000] scsibus0 at asc1: 8 targets, 8 luns per target
Jan 1 20:45:42 /netbsd: [ 1.0000000] asc0: NCR53C94, 25MHz, SCSI ID 6
Jan 1 20:45:42 /netbsd: [ 1.0000000] scsibus1 at asc0: 8 targets, 8 luns per target
----------------------------------------------------------------------
(That box has the TurboChannel adapter installed, along with another
NCR5394 SCSI controller, which is unused here.)
As the system disk was just 2 GB, I added another 15 GB disk (also
PiSCSI) and mounted it to /usr/src . There (in another subdirectory called
`src`) I did a `cvs checkout`:
----------------------------------------------------------------------
export CVSROOT="anoncvs%anoncvs.NetBSD.org@localhost:/cvsroot"
export CVS_RSH="ssh"
cd /usr/src
cvs checkout -A -P src
# That `cvs checkout` may fail due to loss of Internet connectivity,
# timeouts, you-name-it. Restart it as often as needed:
cvs update -A -dP
----------------------------------------------------------------------
In retrospect, I probably should have fetched an initial tarball of
that CVS repo via FTP and just do an update afterwards...
To help with having "just" 80 MB RAM, I added file-based swapspace
with a file on the root filesystem:
----------------------------------------------------------------------
# swapctl -l
Device 1K-blocks Used Avail Capacity Priority
/dev/sd0b 16384 12148 4236 74% 0
_swapfile_ 716800 0 716800 0% 1
Total 733184 12148 721036 2%
----------------------------------------------------------------------
Now it was finally time to start the build. I prepared another
wrapper script to hopefully not forget some settings:
----------------------------------------------------------------------
# cat call_build_sh.sh
#!/usr/bin/env sh
for hard_soft in -H -S; do
for lim in -v -m -d -s; do
echo ulimit $hard_soft $lim unlimited
ulimit $hard_soft $lim unlimited
done
done
machine=vax
arch=vax
destdir=$(pwd)/_destdir_
releasedir=$(pwd)/_releasedir_
tooldir=$(pwd)/_tooldir_
objdir=$(pwd)/_objdir_
mkdir -p "${destdir}"
mkdir -p "${releasedir}"
mkdir -p "${tooldir}"
mkdir -p "${objdir}"
./build.sh -P -U -u -m "${machine}" -a "${arch}" -E -D "${destdir}" -R "${releasedir}" -T "${tooldir}" -O "${objdir}" tools 2>&1 | tee 1-tools.log
./build.sh -P -U -u -m "${machine}" -a "${arch}" -E -D "${destdir}" -R "${releasedir}" -T "${tooldir}" -O "${objdir}" libs 2>&1 | tee 2-libs.log
./build.sh -P -U -u -m "${machine}" -a "${arch}" -E -D "${destdir}" -R "${releasedir}" -T "${tooldir}" -O "${objdir}" release 2>&1 | tee 3-release.log
./build.sh -P -U -u -m "${machine}" -a "${arch}" -E -D "${destdir}" -R "${releasedir}" -T "${tooldir}" -O "${objdir}" iso-image 2>&1 | tee 4-iso-image.log
./build.sh -P -U -u -m "${machine}" -a "${arch}" -E -D "${destdir}" -R "${releasedir}" -T "${tooldir}" -O "${objdir}" install-image 2>&1 | tee 5-install-image.log
./build.sh -P -U -u -m "${machine}" -a "${arch}" -E -D "${destdir}" -R "${releasedir}" -T "${tooldir}" -O "${objdir}" live-image 2>&1 | tee 6-live-image.log
----------------------------------------------------------------------
This is slowly progressing; I'd have taken the /90 or /96 instead.
MfG, JBG
PS: No timekeeping problem here:
----------------------------------------------------------------------
# ntpq -n -p
remote refid st t when poll reach delay offset jitter
==============================================================================
2.netbsd.pool.n .POOL. 16 p - 64 0 0.000 +0.000 0.122
-176.9.42.91 131.188.3.220 2 u 470 1024 377 20.475 -0.653 0.895
-194.36.144.87 205.46.178.169 2 u 279 1024 377 28.295 +0.908 0.220
+157.90.24.29 193.79.237.14 2 u 555 1024 377 18.985 +0.132 0.622
+129.70.132.33 129.70.137.82 2 u 612 1024 377 22.744 -0.700 0.696
*64.225.95.100 131.188.3.222 2 u 462 1024 377 15.661 +0.357 0.378
# ntptime -r
ntp_gettime() returns code 0 (OK)
time e942ff9b.fc6a2b18 Fri, Jan 5 2024 23:22:19.985, (.985995097),
maximum error 269888 us, estimated error 262 us ntptime=e942ff9b.fc6a2b18 unixtime=6598811b.985995097 Fri Jan 5 23:22:19 2024
, TAI offset 0
ntp_adjtime() returns code 0 (OK)
modes 0x0 (),
offset -41.347 us, frequency 32.684 ppm, interval 1 s,
maximum error 270388 us, estimated error 262 us,
status 0x6001 (PLL,NANO,MODE),
time constant 10, precision 0.001 us, tolerance 496 ppm,
----------------------------------------------------------------------
--
Attachment:
signature.asc
Description: PGP signature