Re: I documented 10.1 installation onto a blue and white G3:

Chris Tucker <[email protected]> Sat, 22 Mar 2025 17:52:52 -0700
Newsgroups gmane.os.netbsd.ports.macppc
Message-ID <CAPsZW0hVdGtaVnXvDf4CfkSjPJ2SGjN0LuGaQ7cSF2TjmaAwNw@mail.gmail.com>
I just picked 256M coz that's what I have on my real machine :)
haven't tried other settings. I'm not sure what the RAM max is on this
sort of older Mac hardware is ... I suspect Qemu may fail if you set
the RAM higher than what these old Macs actually support ... not sure.

Yes Mac99 machine in the drop-down menu is what I have.

I just tested the mouse on MacOS 9 and with USB set to "disabled" it
captured the mouse OK after I pressed the "capture input devices" icon
in UTM. (icon depicts a mouse cursor with rays emanating from it in a
circle.)

I've not tried mouse use on NetBSD/X11 in Qemu on PowerPC emulation. I
imagine it works since it works on MacOS 9.1.

Yes sungem iirc didn't work for me, which is why I tried tulip which did wo=
rk.

Speed of the system seems to be quite reasonable, considering it's
emulating PPC on an M1 with a "single core." With this sort of
emulation, I'm more impressed it works at all, much less that it runs
speedily or not. haha.

On Sat, Mar 22, 2025 at 5:35=E2=80=AFPM Andrew Randrianasulu
<[email protected]> wrote:
>
>
>
> =D0=B2=D1=81, 23 =D0=BC=D0=B0=D1=80. 2025 =D0=B3., 03:24 Chris Tucker <ca=
[email protected]>:
>>
>> Hello, I am not familiar with netbsd-current and I've never installed it=
.
>
>
>
> I suspect there might be regression, but not sure if it surfaces always, =
or only on my machine. I see qemu was used for development recently, but al=
l my (netbsd/macppc cdrom/iso) builds fail in same way very early.
>
>
>>
>> I was able to install 10.1 on Qemu (UTM) using one of the config files h=
ere:
>> https://github.com/adespoton/utmconfigs
>>
>> If I recall correctly, I used one of the Classic MacOS 9.1 UTM config
>> files there. This link:
>> https://github.com/adespoton/utmconfigs/blob/main/Mac%20OS%209.1%20(conf=
ig%20only).utm.zip
>>
>> But I had to play around to actually get that to work: Try opening
>> that config file, then additionally make the following changes to it.
>> I got the following to work on my Macbook Air M1 running UTM:
>>
>> (Make sure have the netbsd 10.1 (or your netbsd-current) ISO "loaded"
>> in the UTM drive)
>>
>> System menu in UTM prefs for the macos 9.1 config file:
>> cpu: default
>> cpu cores: 1
>> RAM: 256megs
>
>
> It dails for me at 270 mb of ram and up on any supported qemu machine ...=
. :( 256, 257, 258 and below works ...not sure why.
>
>
>>
>> Qemu menu:
>> QEMU Machine Properties: via=3Dcuda
>
>
>
> I guess this mean -M mac99 machine ....
>
> Does mouse cursor works ok for you in this (no usb) configuration? In Net=
BSD or MacOS? It does not for me until I add -icount shift=3D1 but then eve=
rything becomes perceptibly slower ....
>>
>>
>> Input menu:
>> USB support: Disabled
>>
>> Network menu: Emulated Network Card: tulip
>
>
>
> sungem (default) does not work for you too?
>
>
>>
>> Then try booting it with something like boot cd:,\ofwboot.xcf netbsd
>>
>> On Fri, Mar 14, 2025 at 9:18=E2=80=AFPM Andrew Randrianasulu
>> <[email protected]> wrote:
>> >
>> >
>> >
>> > =D1=81=D0=B1, 1 =D0=BC=D0=B0=D1=80. 2025 =D0=B3., 05:31 Chris Tucker <=
[email protected]>:
>> >>
>> >> Hope you don't mind that I post it here, in case someone else finds i=
t
>> >> to be helpful.
>> >>
>> >> https://github.com/capagh/NetBSD10.1-B-W-Mac
>> >>
>> >> How to install NetBSD 10.1 on a Blue-and-White Macintosh PowerPC G3
>> >
>> >
>> > Thanks for this writeup, I tried to build iso-image out of NetBSD -Cur=
rent for mappc using slightly modified instructions, but sadly it does not =
boot on qemu? Dies early .....
>> >
>> > If you have time can you check if -current kernel bootable on real G3?
>> >
>> >
>> >>
>> >> Direct questions or comments to capa150 at gmail.com
>> >>
>> >> Contents:
>> >>
>> >> Background story
>> >> Performing a dual-boot MacOS/NetBSD install:
>> >> How to build an install kernel and a regular kernel for NetBSD 10.1/m=
acppc.
>> >> Preventing caps-lock from freezing a blue-and-white G3
>> >> X11 with the blue-and-white
>> >>
>> >> There are several ways to install NetBSD 10.1 on a Mac. This text
>> >> describes two of the ways -- one is a dual-boot Classic MacOS/NetBSD
>> >> 10.1 system, and the second is a NetBSD 10.1-only system. There are
>> >> other methods described in the NetBSD install document.
>> >>
>> >> What I used for this install:
>> >> A Blue-and-White Macintosh G3 with a CD/DVD drive.
>> >> An IDE hard disk attached to a PCI IDE card such as a Sonnet Tempo or
>> >> Acard/Ahard M6280, M6880, M6860 or M6260 (the =E2=80=98M=E2=80=99 mea=
ns it is bootable
>> >> by a Mac. Otherwise it=E2=80=99s for PCs.) I=E2=80=99ve found the mot=
herboard IDE to
>> >> be buggy.
>> >> A copy of MacOS 9 on CD/DVD (to partition the drive using MacOS 9=E2=
=80=99s
>> >> Drive Setup utility.)
>> >> A copy of MacOS 8.6 (I like 8.6 more than 9. I used Drive Setup on 9
>> >> to partition the disk. Then I installed 8.6.)
>> >> A copy of NetBSD 10.1 on CD/DVD.
>> >> (https://cdn.netbsd.org/pub/NetBSD/images/10.1/ titled
>> >> =E2=80=9CNetBSD-10.1-macppc.iso.=E2=80=9D) (Alternately, skip the ISO=
 and just install
>> >> via FTP.)
>> >> The macOS X application =E2=80=9CQuickFTP,=E2=80=9D available free fr=
om the macOS app store.
>> >>
>> >> Note: I=E2=80=99ve not tried a SCSI disk on my Blue-and White. I susp=
ect SCSI
>> >> would wholly avoid the problems I encountered. Consider using blueSCS=
I
>> >> or ZuluSCSI as finding a good SCSI drive is difficult these days.
>> >>
>> >> This install assumes the Mac has one hard disk. Be sure to back-up an=
y
>> >> important data before proceeding.
>> >>
>> >> It=E2=80=99s important to note the Blue-and-White G3 Macs use Open Fi=
rmware version 3.x.
>> >> The install process for Macs that use Open Firmware 1.x or 2.x is
>> >> different and not covered in this document. Refer to the official
>> >> NetBSD install notes for more.
>> >>
>> >> The backstory:
>> >>
>> >> Problem No. 1:
>> >> My Blue-and-White G3 came with an IDE hard drive attached to the
>> >> motherboard=E2=80=99s IDE slot. I installed NetBSD 10.1 and it seemed=
 to work.
>> >> But eventually I noticed a quirk: When issued a "shutdown -r now"
>> >> command, the system will often state:
>> >>
>> >> "...
>> >> About to run shutdown hooks ...
>> >> Stopping cron.
>> >> Stopping inetd."
>> >>
>> >>
>> >> And then it hangs. This is an incomplete shut-down, as there are
>> >> supposed to be more lines after =E2=80=9CStopping inetd.=E2=80=9D But=
 at other times
>> >> it would complete the shutdown process. I eventually found the proces=
s
>> >> rndctl -- which is called during shutdown -- would cause the computer
>> >> to sometimes hang. Rndctl is used for entropy-related work.
>> >>
>> >> (See NetBSD Problem Report #59014
>> >> https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=3D59014 fo=
r
>> >> more on this problem.)
>> >>
>> >> I determined the problem is caused by the CMD IDE controller chip the
>> >> blue-and-white uses. This controller is known to be buggy, according
>> >> to the Wikipedia entry on it. https://en.wikipedia.org/wiki/CMD640
>> >>
>> >> I resolved the rndctl problem by using a Sonnet Tempo IDE PCI
>> >> controller card instead of the motherboard controller. Which led to
>> >> ...
>> >>
>> >> Problem No. 2:
>> >>
>> >> Although I resolved the rndctrl problem, I gained a new problem.
>> >>
>> >> When booting off the Tempo, the Mac would report hundreds of errors
>> >> when running NetBSD, such as: "wd0: aborted command, interface CRC
>> >> error" and =E2=80=9Cwd0c: error reading fsbn.=E2=80=9D
>> >>
>> >> I believe the problem is due to the netbsd kernel accessing my UDMA
>> >> IDE hard disk in UDMA mode 6 (ATA/133), but the Blue and White G3
>> >> specifications indicate the Mac is designed for UDMA mode 2 (ATA/33).
>> >>
>> >> The Mac can't handle the higher speed and thus complains profusely.
>> >>
>> >> I resolved this problem by compiling two custom kernels -- one for
>> >> installation, and one for regular use. Both are the same as the
>> >> default kernels except they limit the IDE drive mode to UDMA mode 2.
>> >> (I also changed the console text color to green text on a black
>> >> background, with white text for kernel messages -- default is black
>> >> text on white background. Nothing else has been changed.)
>> >>
>> >> (See NetBSD Problem Report #59078
>> >> https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=3D59078 fo=
r
>> >> more.)
>> >>
>> >> Performing a dual-boot MacOS/NetBSD install:
>> >>
>> >> 1. Insert the OS 9 install disc into the Mac. Hold down the =E2=80=98=
C=E2=80=99 key to
>> >> boot from the CD.
>> >>
>> >> 2. Open the =E2=80=9CUtilities=E2=80=9D folder on the disc. Launch =
=E2=80=9CDrive Setup.=E2=80=9D (The
>> >> version of Drive Setup that comes with OS 9 is required. Older
>> >> versions will not work, according to the NetBSD install document.)
>> >>
>> >> 3. For this example install, three partitions will be used. One for
>> >> MacOS, one for NetBSD root and usr, and one for NetBSD swap. Select
>> >> the drive to be initialized then click =E2=80=9CCustom Setup.=E2=80=
=9D  Set
>> >> =E2=80=9CPartitioning Scheme=E2=80=9D to three partitions. The top pa=
rtition will be
>> >> for MacOS. It should be at least 400 megabytes in size but you can
>> >> make it larger if you like. Set the =E2=80=9CType=E2=80=9D to either =
=E2=80=9CMacOS Standard=E2=80=9D
>> >> (HFS) or =E2=80=9CMacOS Extended=E2=80=9D (HFS+).
>> >>
>> >> 4. Select the second-from-top partition. This will be your NetBSD roo=
t
>> >> and usr partition. Make this partition as large as possible, while
>> >> keeping some space free for swap. Set the =E2=80=9CType=E2=80=9D to =
=E2=80=9CA/UX Root.=E2=80=9D
>> >>
>> >> 5. Select the third-from-top partition. This will be your swap drive.
>> >> It should be the same size as the amount of RAM available. =E2=80=9CT=
ype=E2=80=9D
>> >> should be set to =E2=80=9CA/UX Swap.=E2=80=9D
>> >>
>> >> 6. There may be a small amount of space at the bottom of the partitio=
n
>> >> map labeled =E2=80=9CExtra.=E2=80=9D This is OK.
>> >>
>> >> 7. Click =E2=80=9COK=E2=80=9D followed by =E2=80=9CInitialize.=E2=80=
=9D Quit Drive Setup.
>> >>
>> >> 8. Rename your new Mac drive if you like. Run the MacOS installer (I
>> >> have also installed MacOS 8.5/8.6 for a dual-boot system. However you
>> >> must use the newer MacOS 9 Drive Setup application to initially
>> >> partition the drive, not the version of Drive Setup that comes with
>> >> 8.5/8.6.)
>> >>
>> >> 9. Reboot into the new MacOS. Quit the MacOS Setup Assistant. Insert
>> >> the NetBSD 10.1 disc. Drag =E2=80=9Cofwboot.xcf=E2=80=9D to the Mac=
=E2=80=99s hard drive.
>> >>
>> >> Here are the two kernels limited to UDMA mode 2:
>> >>
>> >> netbsd-INSTALL
>> >> netbsd
>> >>
>> >> Download netbsd-INSTALL and move it to the MacOS drive.
>> >>
>> >> QuickFTP Server, running on my MacBook Air, was a helpful tool for
>> >> this installation. I connected my blue-and-white G3 to the local area
>> >> network and set the TCP/IP control panel to DHCP. I then used Interne=
t
>> >> Explorer on the G3 to access the files from QuickFTP, using the IP
>> >> address displayed on QuickFTP. (example =E2=80=9Cftp://10.0.0.55=E2=
=80=9D into the
>> >> Internet Explorer address bar.) I right-clicked (or control-click)
>> >> each file and saved it to the base level of the Mac=E2=80=99s drive.
>> >>
>> >> QuickFTP uses this default path to host files, but it can be changed:
>> >> /Users/chris/Library/Containers/QuickFTP/Data/
>> >> For this document, I changed this to /Users/chris instead, as it=E2=
=80=99s
>> >> easier to access.
>> >> Set a username, password, and read and write access on QuickFTP.
>> >>
>> >> Both ofwboot.xcf and the modified installer netbsd-INSTALL files must
>> >> be in the base level of the Mac=E2=80=99s drive, not in any subfolder=
.
>> >>
>> >> 10. Reboot the Mac and hold down command-option-O-F to boot into Open
>> >> Firmware. The NetBSD install  document describes how the Open Firmwar=
e
>> >> bootloader works. It can be tricky to figure out, and the exact
>> >> command varies depending on the hardware available. Experimentation i=
s
>> >> pretty much mandatory. Here=E2=80=99s the command my G3 uses:
>> >>
>> >> 0 > boot /pci@80000000/pci-bridge@d/Ultra-Tek100P@3/sd:,\ofwboot.xcf
>> >> netbsd-INSTALL
>> >>
>> >> The boot process should begin. You should see a line about the hard
>> >> disk on the screen, so make note of the drive name. In my case the
>> >> drive is =E2=80=9Cwd0.=E2=80=9D
>> >>
>> >> When asked, accept =E2=80=9Cvt100=E2=80=9D as terminal type.
>> >>
>> >> 12. Select =E2=80=9C(S)hell=E2=80=9D when asked.
>> >>
>> >> 11. Optional: type:
>> >>
>> >> # disklabel /dev/wd0
>> >>
>> >> to see some cool partition information. Make note of the letter
>> >> assigned the partitions. On my install, =E2=80=9Ca=E2=80=9D is assign=
ed to 4.2BSD
>> >> (root/usr) and =E2=80=9Cb=E2=80=9D is assigned to swap. (Do not use d=
isklabel for any
>> >> other purpose as it will wreck your partitions.)
>> >>
>> >> 12. Type:
>> >>
>> >> Create a NetBSD filesystem on partition =E2=80=9Ca,=E2=80=9D mount it=
, and create an etc folder:
>> >> # newfs /dev/wd0a
>> >> # mount /dev/wd0a /targetroot
>> >> # mkdir /targetroot/etc
>> >>
>> >> (The official NetBSD install notes say to mount this partition as /mn=
t
>> >> but this will cause an error later during the install, so use
>> >> /targetroot.)
>> >>
>> >>
>> >> 13. Create an fstab file: Type the following (I used tabs to keep
>> >> everything tidy, but you can also use spaces.):
>> >>
>> >> # cat > /targetroot/etc/fstab
>> >> /dev/wd0a / ffs rw 1 1
>> >> /dev/wd0b none swap sw 0 0
>> >> ptyfs /dev/pts ptyfs rw
>> >>
>> >> Press the return key at the end of the ptyfs line, followed by ctrl-d
>> >> to save the file.
>> >>
>> >> Unmount the filesystem:
>> >>
>> >> # umount /targetroot
>> >>
>> >> 14.(optional) Type =E2=80=9Cpdisk /dev/wd0c=E2=80=9D (=E2=80=9Cc=E2=
=80=9D here represents the entire
>> >> drive) to learn more about partitions.
>> >> Type =E2=80=9Cp=E2=80=9D to print the partition table. Do not run any=
 other command.
>> >> Make note of the leftmost numbers associated with the partitions as
>> >> you=E2=80=99ll need this to boot from Open Firmware later on. In part=
icular,
>> >> note the number associated with the HFS/HFS+ partition and also with
>> >> the AU/X Root partition. Type =E2=80=9Cq=E2=80=9D to quit.
>> >>
>> >> 15. Actually install NetBSD! Type =E2=80=9Csysinst=E2=80=9D to run th=
e installer. Do
>> >> NOT select option =E2=80=9Ca=E2=80=9D as this will demolish the parti=
tions. Instead
>> >> select option =E2=80=9Cc: Re-install sets or install additional set.=
=E2=80=9D then
>> >> =E2=80=9Cyes=E2=80=9D then =E2=80=9Cb: wd0 ...=E2=80=9D then =E2=80=
=9Ca: Full installation=E2=80=9D (or as desired)
>> >> then =E2=80=9Ca: CD-ROM / DVD=E2=80=9D (or as desired.)
>> >>
>> >> Note: If you use networking, be sure to specify =E2=80=9C100baseTX=E2=
=80=9D instead of
>> >> the default =E2=80=9Cautoselect=E2=80=9D so ethernet functions correc=
tly.
>> >>
>> >> 16. You=E2=80=99ll  now be asked to set up entropy. The way I did it =
is with
>> >> option =E2=80=9Cc: Load raw binary random data.=E2=80=9D
>> >>
>> >> In Terminal.app on my M1:
>> >> % dd if=3D/dev/random bs=3D32 count=3D1 of=3D/Users/chris/random.tmp
>> >>
>> >> Select =E2=80=9Cb: Download via ftp=E2=80=9D
>> >> Select =E2=80=9Ca: bm0=E2=80=9D (onboard ethernet)
>> >>
>> >> When you see Sysinst show this message:
>> >> =E2=80=9CNetwork media type (empty to autoconfigure) [autoselect]:=E2=
=80=9D
>> >> Do not hit return to accept =E2=80=9Cautoselect=E2=80=9D, as this doe=
s not work.
>> >> Instead type in:
>> >> 100baseTX
>> >>
>> >> Then =E2=80=9CYes=E2=80=9D to perform autoconfiguration.
>> >> Type in a hostname as desired.
>> >> Feel free to leave domain blank.
>> >>
>> >> To configure FTP, enter fields for Host, User and Password (same as
>> >> what QuickFTP uses) as necessary and start download.
>> >>
>> >> Now you=E2=80=99ll be back at the sysinst main menu.
>> >>
>> >> Do not reboot yet. Sysinst installed the regular default kernel and
>> >> that needs to be replaced with the kernel modified for UDMA mode 2.
>> >>
>> >> Select =E2=80=9CExit Install System=E2=80=9D
>> >>
>> >> Mount our new system and rename the default kernel:
>> >> # mount /dev/wd0a /mnt
>> >> # cd /mnt
>> >> # mv netbsd netbsd.original
>> >>
>> >> Download the modified kernel:
>> >> # ftp 10.0.0.220
>> >> ftp> get netbsd
>> >> ftp> quit
>> >>
>> >> Modify permissions to match original:
>> >> # chmod 755 netbsd
>> >> # cd /
>> >> # umount /mnt
>> >> # reboot
>> >>
>> >> When you hear the chime, hold down command-option-O-F again to get
>> >> into Open Firmware. Boot off the modified regular kernel:
>> >>
>> >> 0 > boot /pci@80000000/pci-bridge@d/Ultra-Tek100P@3/sd:,\ofwboot.xcf =
netbsd
>> >>
>> >> 16. NetBSD will state /etc/rc.conf isn=E2=80=99t configured. Hit retu=
rn to
>> >> accept /bin/sh. Type:
>> >>
>> >> # export TERM=3Dvt100
>> >> # mount -uw /
>> >>
>> >> Now edit the rc.conf file:
>> >>
>> >> # vi /etc/rc.conf
>> >>
>> >> A short lesson in how to use the vi text editor:
>> >> Vi has two modes: command mode and edit mode.
>> >> In command mode, use the arrow keys (or the HJKL keys) to move the
>> >> cursor around.
>> >> In command mode, use =E2=80=9Cx=E2=80=9D key to delete text.
>> >> Press =E2=80=9Ci=E2=80=9D key to enter insert mode. Now you can edit =
text.
>> >> Press =E2=80=9CESC=E2=80=9D to exit insert mode and return to command=
 mode.
>> >> Press =E2=80=9CESC=E2=80=9D followed by =E2=80=9C:wq=E2=80=9D to writ=
e the file to disk and quit.
>> >>
>> >> Edit rc.conf to make these changes and additions:
>> >>
>> >> rc_configured=3DYES
>> >> dhcpcd=3DYES
>> >> wscons=3DYES
>> >> hostname=3Dnetbsd (or whatever name you prefer)
>> >> ifconfig_bm0=3D=E2=80=9Cmedia 100baseTX mediaopt full-duplex=E2=80=9D
>> >>
>> >> Esc :wq to write the file to disk and quit vi.
>> >>
>> >> Set filesystem to read-only (so fsck doesn=E2=80=99t complain), and e=
xit to
>> >> resume booting:
>> >>
>> >> # mount -ur /
>> >> # exit
>> >>
>> >> The boot process will continue.
>> >>
>> >> Login as root (no password yet.)
>> >>
>> >> Add a password for root:
>> >> # passwd root
>> >>
>> >> 19. Create a normal user (e.g. johndoe) and a home directory for that
>> >> user, and add that user to the superuser group:
>> >> # useradd -m -G wheel johndoe
>> >>
>> >> Give the user a password:
>> >> # passwd johndoe
>> >>
>> >> All done.
>> >>
>> >> To reboot:
>> >> # shutdown -r now
>> >> To shut-down and power-off:
>> >> # shutdown -p now
>> >>
>> >> If you wish to boot into MacOS, boot without holding command-option-O=
-F.
>> >>
>> >> ------
>> >>
>> >> How to build an install kernel and a regular kernel for NetBSD 10.1/m=
acppc.
>> >>
>> >> This section is optional, as I=E2=80=99ve already made the two kernel=
s
>> >> available for download. However, if you=E2=80=99d like to build those=
 kernels
>> >> yourself, the steps are listed here:
>> >>
>> >> For this example, two computers are used: a blue-and-white G3, and a
>> >> Macbook Air M1.
>> >>
>> >> Install UTM (Qemu) on the M1. Create an emulated amd64 machine and
>> >> install NetBSD 10.1. (Running NetBSD for Arm would be more sensible
>> >> for M1, but I couldn=E2=80=99t get it to install, hence the choice to=
 emulate
>> >> amd64 instead.)
>> >>
>> >> In UTM preferences, set the number of cores to 8 (for M1).
>> >> Create a regular user in group wheel.
>> >> Enable dhcpcd with (as root):
>> >>
>> >> # /etc/rc.d/dhcpcd onestart
>> >>
>> >> OBTAINING SOURCES
>> >>
>> >> Build sources as described here:
>> >> https://www.netbsd.org/docs/guide/en/chap-fetch.html
>> >>
>> >> (as root):
>> >> # mkdir /usr/src
>> >> # chown chris /usr/src
>> >>
>> >> exit to return to regular user.
>> >>
>> >> Grab the source files (no need for xsrc.tgz, as I=E2=80=99ll be using=
 this
>> >> emulated machine for compiling only.):
>> >>
>> >> $ ftp -i ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-10.1/source/sets/
>> >> ftp> get gnusrc.tgz
>> >> ftp> get sharesrc.tgz
>> >> ftp> get src.tgz
>> >> ftp> get syssrc.tgz
>> >> ftp> quit
>> >>
>> >> You should now have four *.tgz files in your home directory.
>> >>
>> >> Extract all them all:
>> >>
>> >> $ for file in *.tgz
>> >> > do
>> >> > tar -xzf $file -C /
>> >> > done
>> >>
>> >> This will take a while.
>> >>
>> >> CROSS-COMPILING
>> >>
>> >> Since I=E2=80=99m using amd64 to create macppc/powerpc kernels,
>> >> cross-compilation is required.
>> >>
>> >> https://www.netbsd.org/docs/guide/en/chap-build.html#chap-boot-cross-=
build-kernel
>> >>
>> >> Although the instructions call for placing sources in ~/cvs/src, I
>> >> chose to keep them in /usr/src instead.
>> >>
>> >> $ mkdir ~/obj
>> >> $ cd /usr/src
>> >>
>> >> Build the tools:
>> >>
>> >> $ ./build.sh -U -O ~/obj -j8 -m macppc -a powerpc tools
>> >>
>> >> where  the 8 in -j8 is the number of cores on your system.
>> >>
>> >> After a while, this process will print a summary of results.
>> >>
>> >> Configure the kernel:
>> >>
>> >> $ cd /usr/src/sys/arch/macppc/conf
>> >>
>> >> The configuration file titled INSTALL is the one with the RAM disk fo=
r
>> >> installation. Copy the original and work on the copy:
>> >>
>> >> cp INSTALL INSTALL2
>> >>
>> >> Use your preferred editor with INSTALL2.
>> >> Change the line:
>> >> wd*  at atabus? drive ? flags 0x0000
>> >> to
>> >> wd* at atabus? drive? flags 0x0aac
>> >> and save the change.
>> >>
>> >> This will limit the drive to UDMA mode 2 (ATA/33) which is the drive
>> >> specification for the blue-and-white G3. See the man page for wd for
>> >> more information.
>> >>
>> >> Build the install kernel as a =E2=80=9Crelease.=E2=80=9D This, appare=
ntly, also builds
>> >> the Unix utilities required on the installer.
>> >>
>> >> $ cd /usr/src
>> >> $ ./build.sh -U -j8 -O ~/obj -m macppc -a powerpc kernel=3DINSTALL2 r=
elease
>> >>
>> >> (Running on an Apple M1 cpu, this task will take around 12 hours to c=
omplete.)
>> >>
>> >> https://www.netbsd.org/docs/guide/en/chap-inst-media.html
>> >>
>> >> There will be a newly-created install kernel with the changes for UDM=
A
>> >> mode 2 in the directory ~/obj/distrib/macppc/floppies/md-kernel/.
>> >>
>> >> However, this new file isn=E2=80=99t titled =E2=80=9CINSTALL2,=E2=80=
=9D but simply =E2=80=9Cnetbsd-INSTALL.=E2=80=9D
>> >>
>> >> Transfer this file to the base level of the hard drive of the Classic
>> >> MacOS machine.
>> >>
>> >> In my case, how I did this was to sftp the file from my UTM machine t=
o
>> >> the M1 host OS. From the ~/obj/distrib/macppc/floppies/md-kernel/
>> >> directory:
>> >>
>> >> Transfer files from the emulated amd64 machine to my M1 Mac=E2=80=99s=
 OS:
>> >> $ sftp [email protected]  (change the address as necessary)
>> >> sftp> put netbsd-INSTALL
>> >> sftp> quit
>> >>
>> >> netbsd-INSTALL is now in the M1=E2=80=99s home directory (which is,
>> >> co-incidentally, also QuickFTP=E2=80=99s working directory.)
>> >>
>> >> On the blue-and-white, running Classic MacOS, point Internet Explorer
>> >> or Netscape to ftp://10.0.0.220 and right-click netbsd-INSTALL to sav=
e
>> >> the file to the base level of the hard disk.
>> >>
>> >> COMPILE THE REGULAR KERNEL
>> >>
>> >> The installation kernel is ready, but we need a regular kernel as wel=
l.
>> >>
>> >> https://www.netbsd.org/docs/guide/en/chap-kernel.html
>> >>
>> >> On the emulated amd64:
>> >>
>> >> $ cd /usr/src/sys/arch/macppc/conf
>> >>
>> >> $ cp GENERIC GENERIC2
>> >>
>> >> Use your preferred editor with GENERIC2.
>> >> Change the line:
>> >> wd*  at atabus? drive ? flags 0x0000
>> >> to
>> >> wd* at atabus? drive? flags 0x0aac
>> >> and save the change.
>> >>
>> >> $ cd /usr/src
>> >> $ ./build.sh -U -j8 -O ~/obj -m macppc -a powerpc kernel=3DGENERIC2
>> >>
>> >> A summery will tell you where the new kernel (called =E2=80=9Cnetbsd=
=E2=80=9D) is located.
>> >>
>> >> Copy this from the UTM machine to the home directory on my M1:
>> >>
>> >> $ cd /home/chris/obj/sys/arch/macppc/compile/GENERIC2/
>> >> $ sftp [email protected]
>> >> sftp> put netbsd
>> >> sftp> quit
>> >>
>> >> It=E2=80=99s now ready to be copied to the blue-and-white G3 (see els=
ewhere).
>> >>
>> >> ----
>> >>
>> >> Preventing caps-lock from freezing a blue-and-white G3
>> >>
>> >> On my B&W G3 I noticed the caps-lock key would sometimes -- but not
>> >> always -- cause the computer to freeze. Unplugging the USB cable woul=
d
>> >> un-freeze the machine, but also cause strange behavior on the console=
.
>> >> As such, I found it useful to simultaneously ssh into the B&W from my
>> >> M1 Air while messing around with caps-lock so I could more easily
>> >> reboot the machine.
>> >>
>> >> The keyboard in question is a late-1990s Apple M2452.
>> >>
>> >> My =E2=80=9Csolution=E2=80=9D was to map the caps-lock key to the lef=
t shift key.
>> >> Therefore I have two left shift keys, and no caps-lock. But at least =
I
>> >> don=E2=80=99t accidentally freeze my Mac any more.
>> >>
>> >> Edit /etc/wscons.conf.
>> >> Underneath the line that begins: =E2=80=9C#mapfile
>> >> /usr/share/wscons/keymaps/pckbd.sv.svascii=E2=80=9D
>> >> add a new, uncommented line:
>> >> mapfile /usr/share/wscons/keymaps/pckbd.caps.shift
>> >> and save the change.
>> >>
>> >> Then:
>> >> # cd /usr/share/wscons/keymaps/
>> >> # vi pckbd.caps.shift
>> >>
>> >> and add one line to this file:
>> >> keysym Caps_Lock =3D Shift_L
>> >>
>> >> Save and reboot. Caps will now map to shift.
>> >>
>> >> X11 with the blue-and-white
>> >>
>> >> Here=E2=80=99s a functional xorg.conf file for the Mac with a ATI Rag=
e 128 PCI card.
>> >> It=E2=80=99s probably nowhere near optimal. 3D acceleration is not en=
abled.
>> >> Let me know if you know how to enable acceleration.
>> >>
>> >> Place this text as /etc/X11/xorg.conf
>> >>
>> >> Section "ServerLayout"
>> >> Identifier     "X.org Configured"
>> >> Screen      0  "Screen0" 0 0
>> >> InputDevice    "Mouse0" "CorePointer"
>> >> InputDevice    "Keyboard0" "CoreKeyboard"
>> >> EndSection
>> >>
>> >> Section "Files"
>> >> ModulePath   "/usr/X11R7/lib/modules"
>> >> FontPath     "/usr/X11R7/lib/X11/fonts/misc/"
>> >> FontPath     "/usr/X11R7/lib/X11/fonts/TTF/"
>> >> FontPath     "/usr/X11R7/lib/X11/fonts/Type1/"
>> >> FontPath     "/usr/X11R7/lib/X11/fonts/75dpi/"
>> >> FontPath     "/usr/X11R7/lib/X11/fonts/100dpi/"
>> >> EndSection
>> >>
>> >> Section "Module"
>> >> #Load  "dbe"  #action
>> >> #Load  "extmod"  #action
>> >> Load  "dri"
>> >> Load  "dri2"
>> >> Load  "glx"
>> >> Load  "shadow"
>> >> EndSection
>> >>
>> >> Section "InputDevice"
>> >> Identifier  "Keyboard0"
>> >> Driver      "kbd"
>> >> Option    "Protocol" "wskbd"
>> >> Option    "Device" "/dev/wskbd"
>> >> EndSection
>> >>
>> >> Section "InputDevice"
>> >> Identifier  "Mouse0"
>> >> Driver      "mouse"
>> >> Option    "Protocol" "wsmouse"
>> >> Option    "Device" "/dev/wsmouse"
>> >> Option    "ZAxisMapping" "4 5 6 7"
>> >> EndSection
>> >>
>> >> Section "Monitor"
>> >> Identifier   "Monitor0"
>> >> VendorName   "Monitor Vendor"
>> >> ModelName    "Monitor Model"
>> >> #HorizSync     58-62 #action
>> >> #VertRefresh   75-117 #action
>> >> #Option "VGA-0" "VGA monitor"  #action
>> >> Modeline "1024x768" 78.75  1024 1040 1136 1312  768 769 772 800 -hsyn=
c -vsync
>> >> Modeline "1024x768" 78.75  1024 1040 1136 1312  768 769 772 800 +hsyn=
c +vsync
>> >> EndSection
>> >>
>> >> Section "Monitor"
>> >>     Identifier    "LVDS monitor"
>> >>     Option "LVDS" "LVDS note"
>> >> EndSection
>> >>
>> >> Section "Device"
>> >>         ### Available Driver options are:-
>> >>         ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
>> >>         ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
>> >>         ### <percent>: "<f>%"
>> >>         ### [arg]: arg optional
>> >>         #Option     "NoAccel"             # [<bool>]
>> >>         #Option     "Dac6Bit"             # [<bool>]
>> >>         #Option     "VGAAccess"           # [<bool>]
>> >>         #Option     "ShowCache"           # [<bool>]
>> >>         #Option     "SWcursor"           # [<bool>]
>> >>         #Option     "VideoKey"           # <i>
>> >>         #Option     "PanelWidth"         # <i>
>> >>         #Option     "PanelHeight"         # <i>
>> >>         #Option     "ProgramFPRegs"       # [<bool>]
>> >>         #Option     "DMAForXv"           # [<bool>]
>> >>         #Option     "ForcePCIMode"       # [<bool>]
>> >>         #Option     "CCEPIOMode"         # [<bool>]
>> >>         #Option     "CCENoSecurity"       # [<bool>]
>> >>         #Option     "CCEusecTimeout"     # <i>
>> >>         #Option     "AGPMode"             # <i>
>> >>         #Option     "AGPSize"             # <i>
>> >>         #Option     "RingSize"           # <i>
>> >>         #Option     "BufferSize"         # <i>
>> >>         #Option     "EnablePageFlip"     # [<bool>]
>> >>         #Option     "AccelMethod"         # <str>
>> >>         #Option     "RenderAccel"         # [<bool>]
>> >> #Option "NoAccel" "off"  #action
>> >> #Option "UseFBDev" "on"  #action
>> >> #Screen 0 #action
>> >> #Option "ForcePCIMode"    "True"  #not used re manpage but in autogen
>> >> #Option "Display" "CRT"  #not used re r128 manpage but x.org disagree
>> >> Identifier  "Card0"
>> >> Driver      "r128"
>> >> BusID       "PCI:0:16:0"
>> >> EndSection
>> >>
>> >>
>> >> Section "Screen"
>> >> Identifier "Screen0"
>> >> Device     "Card0"
>> >> Monitor    "Monitor0"
>> >> Option  "DPMS"
>> >>
>> >> DefaultDepth  24
>> >>
>> >> SubSection "Display"
>> >> Viewport   0 0
>> >> Depth     1
>> >> EndSubSection
>> >> SubSection "Display"
>> >> Viewport   0 0
>> >> Depth     4
>> >> EndSubSection
>> >> SubSection "Display"
>> >> Viewport   0 0
>> >> Depth     8
>> >> EndSubSection
>> >> SubSection "Display"
>> >> Viewport   0 0
>> >> Depth     15
>> >> EndSubSection
>> >> SubSection "Display"
>> >> Viewport   0 0
>> >> Depth     16
>> >> EndSubSection
>> >> SubSection "Display"
>> >> Viewport   0 0
>> >> Depth     24
>> >> EndSubSection
>> >> EndSection
>> >>
>> >> Section "DRI"
>> >>     Mode 0666
>> >> EndSection