Port-vax archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

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



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



Home | Main Index | Thread Index | Old Index