use NetBSD-1.3.3/sparc's newfs, installboot, mdec/boot, mdec/bootxx from miniroot-133.fs
I can't use it on TME. Single-user works, but lock up before multi-user login prompt.
GXemul http://gavare.se/gxemul/
1st time, boot single-user to set time. add option "-o '-s'".
% gxemul -e 3max -j vmunix -o '-s' -d bsd44f-pmax-self-xxxxxxxx.dkimg
set date, yymmddHHMM (%y%m%d%H%M)
# TZ=Japan date 2106011210
# fsck -p
# ^D
GXemul supports NAPT like network, by default.
# ifconfig le0 10.0.0.2
# route add default 10.0.0.254
GXemul 0.7 or later supports tap device, add "-L /dev/tap0". example:
% sudo ifconfig tap0 create up
% sudo brcofnig bridge0 add tap0
add read+write permission /dev/tap0 for your account.
% gxemul -e 3max -j vmunix -L /dev/tap0 -d bsd44f-pmax-self-xxxxxxxx.dkimg
% dd if=/dev/zero of=b44-pmax.img bs=1m seek=511 count=1
% gxemul -e 3max -j netbsd \
-d r:nb133-pmax-inst-diskimage \
-d b44-pmax.img \
-d r:nb11-pmax-miniroot \
-d r:bsd44f-installed-self-pmax-xxxxxxxx.tar.gz
# date 21mmddHHMM # GMT
# disklabel -i rz1
root a 4.2BSD start 0c size 400c
swap b swap start 400c size 128c
/var g 4.2BSD start 528c size 128c
/vol1 h 4.2BSD start 656c size 385c
# mount_mfs -s 256 /dev/rz0b /tmp
# disklabel rz1 > /tmp/l
# disklabel -r -R rz1 /tmp/l
# mount -o ro /dev/rz2a /mnt
# cd /mnt/usr/mdec
# disklabel -B -b rzboot -s bootrz rz1
# /mnt/sbin/newfs /dev/rrz1a
# /mnt/sbin/newfs /dev/rrz1g
# /mnt/sbin/newfs /dev/rrz1h
# mount /dev/rz1a /mnt2
# mkdir /mnt2/var
# mount /dev/rz1g /mnt2/var
# dd if=/dev/rrz3c | gunzip | (cd /mnt2 && tar xpvf -)
# (cd /mnt2/dev && sh ./MAKEDEV rz0 rz1) # no awk, so pty0 later.
# cat /mnt2/etc/fstab.rz | sed 's/usr/var/' > /mnt2/etc/fstab
# echo "/dev/rz0b none swap sw 0 0" >> /mnt2/etc/fstab
# echo "/dev/rz0b /tmp mfs rw,-s=12000,-T=rz58 0 0" >> /mnt2/etc/fstab
# umount /mnt2/var
# umount /mnt2
# shutdown -h now
^C
GXemul> quit
% gxemul -e 3max -j vmunix -o '-s' -d b44-pmax.img
set date, go multi-user, sh MAKEDEV pty0 in /dev.
Install nono on host OS. use 0.2.6 or later.
% ./configure --prefix=/usr/local/nono-0.2.6
% make -DNOTEST depend
% make -DNOTEST
% sudo make install
prepare 4 files, nono.cfg (assign disk image to spc0-id6-image), NVRAM.DAT-aboot as NVRAM.DAT, nono-ifup, nono-ifdown.
% ln -sf NVRAM.DAT-aboot NVRAM.DAT
% /usr/local/nono-0.2.6/bin/nono-cli
:
Phase-31> boot
% shutdown -h now
kill nono.
% dd if=/dev/zero of=b44-luna68k.img bs=1m seek=511 count=1
4.4BSD binary tree (tar.gz) as disk image.
% dd if=bsd44f-installed-self-luna68k-xxxxxxxx.tar.gz of=tree.img conv=sync
spc0-id6 sd3 liveimage-luna68k-raw-20200518.img boot dev, NetBSD 9
spc0-id5 sd2 b44-luna68k.img install target
spc0-id4 sd1 miniroot-nb11-sun3 NetBSD 1.1 miniroot
spc0-id3 sd0 tree.img 4.4BSD binary tree
% ln -sf NVRAM.DAT-dboot NVRAM.DAT
% /usr/local/nono-0.2.6/bin/nono-cli -f nono-nb.cfg
:
boot> boot -s
# disklabel -i -I sd2
root a 4.2bsd start 0c size 200c
swap b swap start 200c size 64c
/var g 4.2bsd start 264c size 64c
/vol1 h 4.2bsd start 328c size $(remain)
# mount -o ro /dev/sd1c /mnt
# /mnt/sbin/newfs /dev/rsd2a
# /mnt/sbin/newfs /dev/rsd2g
# mount /dev/sd2a /altroot
# mkdir /altroot/var
# mount /dev/sd2g /altroot/var
# dd if=/dev/rsd0c | gunzip | (cd /altroot && pax -rvp e)
# (cd /altroot/dev && sh ./MAKEDEV sd0 sd1 pty0)
# (cd /altroot/etc && cat fstab.sd | sed '/sd0f/d;s/sd0e/sd0g/' > fstab)
# echo '/dev/sd0b none swap sw 0 0' >> /altroot/etc/fstab
# halt -p
These pages are very helpful for me about using x86 emulator.
disk image settings:
use as Xen guest DomU HVM
% sudo xl create chest.xencf -c ## to detach xen console, type 'Ctrl-]'.
% sudo xl console b44a-chest ## attach console again
% sudo xl destroy b44a-chest ## stop DomU
use emulator "bochs"
% bochs -q -f chest.bochscf
% cu -s 9600 -P none -l ttypa
use emulator "qemu"
% qemu-system-i386 -m 16m -rtc base=localtime -nographic \
-net none \
-device ne2k_isa,netdev=nic0,iobase=0x300,irq=9 \
-netdev tap,id=nic0,ifname=tap0,script=no,downscript=no \
-device ide-hd,drive=hd0,bus=ide.0,cyls=400,heads=16,secs=63 \
-drive id=hd0,if=none,format=raw,file=bsd44alpha-i386-self-202xxxxx.dkimg
Type "C-a x" to exit qemu.
% dd if=/dev/zero of=b44alpha-i386.img bs=4032b count=100 progress=1
% sudo vndconfig -cv vnd3 b44alpha-i386.img
% sudo disklabel -i -I vnd3
## CHS 400/16/63 a:160c b:64c d:400c g:64c h:111c (total 399c)
% sudo /emul/aout/usr/sbin/bad144 vnd3 -f # ignore errors..
## % dd if=/dev/rvnd3d bs=1008b skip=399 | hexdump -C
% sudo /emul/aout/sbin/newfs /dev/rvnd3a
% sudo /emul/aout/sbin/newfs /dev/rvnd3g
% sudo /emul/aout/sbin/newfs /dev/rvnd3h
% sudo mount /dev/vnd3a /mnt
% sudo mkdir /mnt/var /mnt/vol1
% sudo mount /dev/vnd3g /mnt/var
## % df -t ffs
% gunzip < bsd44alpha-installed-self-i386-202xxxxx.tar.gz | \
(cd /mnt && sudo pax -rvp e)
% (cd /mnt/dev && sudo sh ./MAKEDEV wd0 pty0)
% sudo cp /mnt/etc/fstab{.wd,}
% sudo chmod +w /mnt/etc/fstab # and edit fstab
% (cd /mnt/usr/local/tools/mdec && \
sudo /emul/aout/sbin/disklabel -B -b biosboot-nb08 -s bootbios-nb08 vnd3)
% sudo umount /mnt/var
% sudo umount /mnt
% vndconfig -uv vnd3
self compile 4.4BSD (sparc, pmax, luna68k), 4.4BSD-Alpha (i386)
BSDSRCDIR = /source/dir/of/4.4bsd-src
MODSRCDIR = /path/to/bsd4.4-extra-tree
INSTALLDIR = /dest/dir
% echo "ln -sf /usr/local/tools/bin/make /usr/local/bin" | su root
% make -f build.mk install-sudo
% (cd 40ex/zsh-2.5.03 && make depened && make && sudo -E make install &&
sudo -E ln -sf /usr/local/zsh-2.5.03/bin/zsh /usr/local/bin/)
% make -f build.mk install-bin
% make -f build.mk install-kern
(semi-)cross compile 4.4BSD on NetBSD 1.0/sparc, on NetBSD 1.1/pmax, and NetBSD 1.1/sun3 for luna68k.
BSDSRCDIR = /source/dir/of/csrg-cd4
MODSRCDIR = /path/to/bsd4.4-extra-tree
INSTALLDIR = /dest/dir
for luna68k, add one more line below.
MACHINE = luna68k
% make -f build.mk install-sudo
% make -f build.mk install-make
% (cd 40ex/zsh-2.5.03 && make depened && make && sudo -E make install &&
sudo -E ln -sf /usr/local/zsh-2.5.03/bin/zsh /usr/local/bin/)
% make -f build.mk install-hostbin
% make -f build.mk install-bin
% make -f build.mk install-kern
(semi-)cross compile 4.4BSD-Alpha on NetBSD-9/i386 and NetBSD 1.0 build tools
BSDSRCDIR = /source/dir/of/bsd44alpha-src
MODSRCDIR = /path/to/bsd4.4alpha-extra-tree
INSTALLDIR = /dest/dir
% make -f build.mk install-sudo
% make -f build.mk install-make
% (cd 40ex/zsh-2.5.03 && make depened && make && sudo -E make install &&
sudo -E ln -sf /usr/local/zsh-2.5.03/bin/zsh /usr/local/bin/)
% make -f build.mk install-hostbin
% make -f build.mk install-bin
% make -f build.mk install-kern
% obind=/_somewhere1_/bintree-nb1.0-i386
% cat base10.?? | gunzip | (cd $obind && sudo pax -rvp e)
% cat comp10.?? | gunzip | (cd $obind && sudo pax -rvp e)
% sudo ln -s $obind /emul/aout
% upperd=/_somewhere2_/upperd-oldaout-usr
% [ -d $upperd ] || sudo mkdir $upperd
% sudo ln -s /emul/aout/usr/include $upperd/
% (cd $upperd && sudo mkdir bin lib libexec sbin)
% dlist="ar as c++ cc cpp g++ gcc ld lex mkdep nm ranlib size strip yacc"
% for d in $dlist; do sudo ln -s /emul/aout/usr/bin/$d $upperd/usr/bin/; done
% dlist=`(cd /emul/aout/usr/lib/ && ls *.[oa]) | egrep -v '_p.*\.a$'`
% for d in $dlist; do sudo ln -s /emul/aout/usr/lib/$d $upperd/usr/lib/; done
% dlist="cc1 cc1obj cc1plus cpp"
% for d in $dlist; do sudo ln -s /emul/aout/usr/libexec/$d $upperd/usr/libexec/; done
% dlist="mtree"
% for d in $dlist; do sudo ln -s /emul/aout/usr/sbin/$d $upperd/usr/sbin/; done
% sudo mount -t union $upperd /usr
% sudo du /usr > /dev/null ## mumbo jumbo
% gcc -v
gcc version 2.4.5
you might be able to exec old 4.4BSD binay. confirm your NetBSD kernel configured with options:
then, let loose security setting.
% sudo sysctl -w vm.user_va0_disable=0
% sudo ifconfig tap0 create up
% sudo ifconfig bridge0 create up
% sudo brconfig bridge0 add re0 ## re0 -- your physical NIC
% sudo brconfig bridge0 add tap0