[DOC] Building the VAX Install ISO locally after installing from a Linux cross-built Install ISO

Jan-Benedict Glaw <[email protected]>
Newsgroups gmane.os.netbsd.ports.vax
Message-ID <[email protected]>
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 <[email protected]>
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="[email protected]:/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,
----------------------------------------------------------------------

--
signature.asc (application/pgp-signature, 195 B)
-----BEGIN PGP SIGNATURE-----

iF0EABECAB0WIQQlDTvPcScNjKREqWEdvV51g5nhuwUCZZiB9AAKCRAdvV51g5nh
uynJAJ41EwPr/j1XR6FFCd9gVPKdASfUOwCeJF05WvYLEZxaXaNrf6ClKU2oWEI=
=PMDx
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.