PowerMac 7100 and Linux

speakers

Tinkerer
Nov 5, 2021
130
91
28
San Jose, CA
peak-weber.net
I was wanting a BHA machine and I acquired, from craigslist, a PM7100 in excellent condition. There was absolutely no sign of capacitor aging - including the PSU. The original 700 MB Quantum SCSI harddrive was function although it didn’t sound perfectly happy. The floppy and cdrom drives were healthy, and the onboard ethernet good. ADB was great and power/interrupt key combos worked.

I bumped RAM from 24MB (8+16) to 136MB (8+128) with easily available and economical EDO SIMMS from memorymasters.

Before deciding how to replace the internal SCSI, I plugged in an external ZuluSCSI Mini with 64GB SD card.

I first installed MacOS9.1 (requiring greater than 32MB). OS9 is not the fastest OS for this machine but it provides the comforts HFS+, good networking and System Profiler, etc. OSX was never supported on this platform.

Linux

See https://nubus-pmac.sourceforge.net (*1) and linked pages for how to run assorted Linux releases on Nubus PowerMac. There a 3 ways to boot a kernel on Nubus machines .. yaboot, etc require OFW:
  1. The MkLinux Booter
  2. BootX1.2.1 (the latter 1.2.2 version crashes) - see https://web.archive.org/web/20050207105304/http://penguinppc.org/~benh/
  3. miboot (a packaged variant of BootX)
I found miboot to be unusable for my PM7100, BootX 1.2.1 usable but fussy with kernels, and the MkLinux Booter reliable.


MkLinux

MkLinux DR3 runs fine - see https://www.mklinux.org. The 6100 was the first PPC mac that MkLinux supported. I installed a disk image taken from a previous installation from my pm7600 .. although the install procedure from cdrom image is straightforward.


YellowDog Linux

i’ve had a lot of success over the years with YDL. YDL3.0 installed cleanly in a 4GB drive on the pm7100 from MkLinux Booter kernel plus installer:
  • see “Kernel with YellowDogLinux 3.0 installer [ http ] (updated June 23, 2003)” from (*1)
using NFS mounted install images (that I happened to have stashed on a G4 MDD machine). Install images available from Internet Archive:
A BootX1.2.1 bootable kernel is 2.4.27:
  • “Stable Kernel (2.4.27) with input driver enabled (Required for Debian Woody and YDL 2.x, 3.0) [ http ] (updated August 11, 2004) for use with BootX
but it may require the kernel argument nubus_simm= since BootX fails to report complete memory configs for some nubus-pmac configs. My machine required
nubus_simm=b0:8m,b1:32m,b2:32m,b3:32m,b4:32m
Sadly, I’ve been unable to locate source for this kernel with its nubus-pmac patches.

X11 failed to find a workable configuration automatically. X11 configuration is often a tease on vintage Macs but this works with the motherboard ariel2 framebuffer video (with no HPV/AV card):
Section "Device" # no known options Identifier "Generic OF compatible" Driver "fbdev" VendorName "Generic OF compatible" BoardName "Generic OF compatible" #BusID EndSection Section "Screen" Identifier "Screen0" Device "Generic OF compatible" Monitor "Monitor0" DefaultDepth 8 Subsection "Display" Depth 8 Modes "832x624" EndSubsection EndSection

Debian Linux

Installing Debian PPC on this Nubus machine is more problematic. Initially I didn’t think it would be feasible at all. Nubus-pmac was only briefly and partially supported back in the day and was dropped as soon as OpenFirmWare machines appeared. Very little remains available on the Internet. There’s a number of issues for the PM7100:
  1. Finding a pair of kernel and ramdisk with the Installer.
  2. Being able to boot and run the Installer.
  3. Finding a cd-rom/dvd-rom/network image compatible with the Installer.
1 and 2 are affected by the booting methods, MkLinux Booter and BootX.

After some trial and error, I found this combination:
  1. “Kernel with Debian Woody installer (outdated) [ http ] (updated October 29, 2002)”
  2. MkLinux Booter launched from MacOS9.
  3. A dvd-rom image of Woody 3.0r6 from debian-30r6-dvd-powerpc-binary-1.iso placed on a ZuluSCSI Mini.
The first stage of installation - involving initialization of swap and root partitions aan installation of the Base system - was performed on a 4GB ZuluSCSI drive set up by Drive Setup from MacOS9. Swap is 256MB and the remaining space is root.

The second stage of installation configures the Base and installs packages. I used BootX to load the same 2.4.27 kernel as YDL. But the addition boot argument of
keyboard_sends_linux_keycodes=1
is required to be able to type at the console - see https://www.debian.org/ports/powerpc/keycodes for details. I installed X11 and a handful of development and network services, but this required some fussing to cope with dselect/dpkg failures. But, a little surprising, X11 (Gnome and KDE) sprang to life using the same framebuffer configuration as YDL.

HPV PDS graphics card

The pm7100 had an empty PDS slot. This machine may originally have had a 2MB PDS Video Card in this slot. I found a super cheap, $22, 761-1748 card on the net. Too good to be true, it failed to show up under OS9. Running MacTest Pro, its 1MB of onboard VRAM failed after the 512KB mark - so it looks at least the 3rd (of 8) DRAM chip is bad. I ordered a couple of replacements, so we’ll see if this can be resuscitated.
 
  • Love
  • Like
Reactions: bakkus and phunguss

lauland

Tinkerer
Dec 12, 2023
39
28
18
I have MkLinux on my 6100, which is a similar machine and it runs fine, if not speedily. Other distros are possible, as you mentioned, but likely not out of the box, and you will need to deal with many hitches and hacks, and likely need a special kernel, or some even just use the MkLinux one (but not the rest of its files).

In some cases you can swap the MkLinux kernel with a standard one, using the same binaries and even partitions, if you're careful enough with libraries/modules/etc, which I do on my Performa 6360.

NOTE: MkLinux was the first Power Mac Linux, sponsored by Apple, so it is very old. It also is a hybrid kernel, with Linux running on top of a modified version of Mach (not the same version as in MacOS X, but related). Because of this, it will typically be slower than a standard Linux kernel.
 

speakers

Tinkerer
Nov 5, 2021
130
91
28
San Jose, CA
peak-weber.net
A BootX1.2.1 bootable kernel is 2.4.27:
  • “Stable Kernel (2.4.27) with input driver enabled (Required for Debian Woody and YDL 2.x, 3.0) [ http ] (updated August 11, 2004) for use with BootX
but it may require the kernel argument nubus_simm= since BootX fails to report complete memory configs for some nubus-pmac configs. My machine required
nubus_simm=b0:8m,b1:32m,b2:32m,b3:32m,b4:32m
Sadly, I’ve been unable to locate source for this kernel with its nubus-pmac patches.
Although the original source is nowhere to be found, I have discovered a nubus patch for Debian Sarge archived at debian-nubus.diff.gz and this applies OK to a 2.4.27 source archive from kernel.org at linux-2.4.27.tar.gz

I've managed to configure and build a kernel from these sources that seems close enough to the binary from sourceforge.et. This boots both Debian 3.0 and YDL 3.0 roots on my PM7100. But not everything compiles cleanly and a judicious selection of configuration options is needed.
 

speakers

Tinkerer
Nov 5, 2021
130
91
28
San Jose, CA
peak-weber.net
I've tracked down the ram mis-configuration issue to a problem with BootX's PDM video re-mapping. BootX modifies the memory map passed to the kernel in a way that prevents correct discovery of simm banks. Without the nubus_simm bootarg, the kernel finds only 1MB off ram and panics. A patched version of BootX 1.2b1 is attached that doesn't alter the map and allows the kernel to find all ram banks without the bootarg override.
 

Attachments

  • BootX App.zip
    28 KB · Views: 6

joevt

Tinkerer
Mar 5, 2023
124
45
28
Installing Debian PPC on this Nubus machine is more problematic. Initially I didn’t think it would be feasible at all. Nubus-pmac was only briefly and partially supported back in the day and was dropped as soon as OpenFirmWare machines appeared.

Apple did make a Open Firmware for NuBus Power Macs. It's part of the Copland boot process. It is loaded by System 7.5 and uses some info from System 7.5 (video framebuffer information, Open Firmware section of nvram from a binary file, etc.). It is being discussed on the DingusPPC discord.

I don't know how much work is required to get it to boot an OS that is not Copland. We have a dump of the Open Firmware code (Forth created from fcode) and the default nvram variables (I/O is set to printer port because modem port is used for debugging Copland) which can be changed.

DingusPPC can't boot Copland yet because its SCSI emulation doesn't work with the Open Firmware SCSI driver.
 

joevt

Tinkerer
Mar 5, 2023
124
45
28
Is that *actual* Open Firmware, or a stub designed to present a faked-up OF device tree? If the latter, this originally existed as part of Cyberpunk, which was written for Shiner (and has OF) but prototyped on the 6100/7100/8100 (which don't). https://oldvcr.blogspot.com/2023/12/when-power-macintosh-ran-netware.html
I believe it's an actual Apple Open Firmware implementation that uses some info from System 7.5 (search for >hwinit).

I don't know how it compares to the stub you mention. It's more than just a device tree. It has Open Firmware packages and drivers.

It has version 2.0 so it's newer than the version in PCI Macs.
I've only tested serial input/output in the NuBus Open Firmware using the DingusPPC emulator.
I need to add some code to DingusPPC to make it easier to get into Copland and Open Firmware.
I need to test keyboard input and display output in the NuBus Open Firmware.
The DingusPPC SCSI emulation isn't working correctly with the NuBus Open Firmware SCSI driver.
 

Attachments

  • Copland Open Firmware for NuBus Macs.zip
    299.5 KB · Views: 8
Last edited:

speakers

Tinkerer
Nov 5, 2021
130
91
28
San Jose, CA
peak-weber.net
This is all fascinating and covered nowhere on the web. In fact, if you now google about it, you'll be sent this this very thread!

I'm attaching a design doc from the Copland DDK v.0.4 about the I/O structure including Boot Services. Copland is indeed running OpenFirmware, but disk-based. Modified boot blocks called from the Mac ROM load and run OFW from disk. OFW then initializes the machine and boots the MacOS 8 (tertiary) loader.

Copland deesn't boot on my pm7100 - I get a Sad Mac - but I'm hoping this is due to it having 136MB of RAM which may not to be supported.
 

Attachments

  • Modular I:O.pdf
    2.1 MB · Views: 7

joevt

Tinkerer
Mar 5, 2023
124
45
28
Copland deesn't boot on my pm7100 - I get a Sad Mac - but I'm hoping this is due to it having 136MB of RAM which may not to be supported.
I can at least get into Open Firmware with DingusPPC emulating 136 MB of RAM. I probably won't be able to get to a sad Mac until SCSI emulation is working properly with the Open Firmware SCSI driver. Copland may require a second Mac connected to the modem port for debugging (but they do say it should be able to boot to the Finder without needing the debugger). I think two DingusPPC instances can be connected together with a socat command but I haven't tried that yet.

Open Firmware is loaded when there's a Happy Mac and Capslock is held down. Did you see that happy Mac and the Sad Mac happens later? If you don't have Capslock down, then it will boot to System 7.5. Does that work?

And poking around the Copland D11E4 install kit, the previously attached ofw and nvram images are resources in the Mac OS Loader "app". And the modified boot blocks are another resource there.
You can probably modify the nvram resource to change the nvram variables such as auto-boot? and input-device and output-device but you have to update the checksum as well. The nvram contains only the Open Firmware part of nvram. It uses the Old World Mac format. I am making a change to DingusPPC so that it can modify the nvram after it is loaded but before it starts parsing the nvram variables. If the checksum is wrong then it may break into Open Firmware automatically. The nvram resource has printer port as the input/output device (because modem port will be used for debugging), but a bad checksum will cause the nvram variables to be set to defaults which means the modem port is used for input/output.
 

speakers

Tinkerer
Nov 5, 2021
130
91
28
San Jose, CA
peak-weber.net
Open Firmware is loaded when there's a Happy Mac and Capslock is held down. Did you see that happy Mac and the Sad Mac happens later? If you don't have Capslock down, then it will boot to System 7.5. Does that work?
Yes and no.

On my first install, it booted back into 7.5 and I used System Picker to select the OS8 system folder. That seems to screw things and leads to the F/7FFFF SadMac. At this point I could see that the boot blocks weren't the special Copland intercepts that point to the Mac OS8 Loader.

After reinstalling Copland I confirmed that the special boot blocks were in place .. but the Capslock snag-key has no effect and I always get 7..5. But I don't see the SadMac now.

I need to do a clean install of 7.5.5 since I can't be sure the install is pristine. I also have another System Folders with early OS versions present and I should remove them to prevent possible confusion during the Copland install.
 

joevt

Tinkerer
Mar 5, 2023
124
45
28
Yes and no.

On my first install, it booted back into 7.5 and I used System Picker to select the OS8 system folder. That seems to screw things and leads to the F/7FFFF SadMac. At this point I could see that the boot blocks weren't the special Copland intercepts that point to the Mac OS8 Loader.

After reinstalling Copland I confirmed that the special boot blocks were in place .. but the Capslock snag-key has no effect and I always get 7..5. But I don't see the SadMac now.

I need to do a clean install of 7.5.5 since I can't be sure the install is pristine. I also have another System Folders with early OS versions present and I should remove them to prevent possible confusion during the Copland install.
I didn't touch System Picker.

I used System 7.5. Not 7.5.5. I don't know if that matters.

Capslock snag key might work if you press it as soon as you see the happy Mac. Or maybe before that when you see the gray screen.
 

speakers

Tinkerer
Nov 5, 2021
130
91
28
San Jose, CA
peak-weber.net
So I went back and installed a clean System 7.5. I had to grab a copy of the original 61/71/8100 installation CD from Macintosh Garden because none of the trusty Legacy Iso install images wanted to recognize my PM7100. Copland installed again but the capslock snag key again failed to give me Copland.

So I tried a different ADB keyboard and that worked. D'oh!

I see the Copland splash and the Microkernel staring message .. but it hangs at that point. This must be the 136MB RAM issue that's been reported. Anyhow, OFW must be loaded to get here. There looks be be a firmware variables resource in the Mac 8 Loader - I wonder whether I can set auto-boot? to false using ResEdit?
 

joevt

Tinkerer
Mar 5, 2023
124
45
28
OFW must be loaded to get here. There looks be be a firmware variables resource in the Mac 8 Loader - I wonder whether I can set auto-boot? to false using ResEdit?
You can but there's also a checksum to update. It's a simple algorithm so you could just make a perl or python or bash script. You can look at the DingusPPC source code for the format. Normal NVRAM has the Open Firmware variables at offset 0x1800 but the Copland NVRAM has Open Firmware variables at offset 0x0. I'll be committing some changes to my fork of DingusPPC tonight that lets you edit the NVRAM variables for Copland.

Maybe you can modify the nvramrc script so that it modifies the reg property of the memory node to indicate only 8 MB of RAM? You may need to check the translations in the mmu (cpu) node. I wonder if Copland uses the >hwinit stuff that came from System 7.5 or if it just uses the info from Open Firmware? Hopefully, the latter.