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/dirfor 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