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