I'm writing this wall-of-text guide as I purchased the above desktop machine on a bit of a whim (accidental eBay purchase...) and it has sat gathering dust as when I got it I was unable to install any operating system on it that wasn't a deprecated edition of Mac OS, and I dislike waste or scrapping things.
I found this information in forum posts and comments on this site and others, so would like to thank the FreeBSD and extended community with their support as always.
Technological Hurdles
- The machine is EFI32 and does not support USB booting at all.
- The NVIDIA GeForce 7300 GT graphics card driver that came with the machine cannot support modern Xorg so needs replacing (Linux does have a driver for it that will run Xorg but it runs terribly, this is off-topic)
- For the Mac boot screen to load (so you can choose the DVD boot media) the graphics card needs to have special firmware on it, so keep that NVIDIA 7300 in the machine for the installation process.
- To open the Mac boot menu (holding down Alt/Option on start-up) this only worked for me using an Apple USB keyboard. My Logitech USB keyboard wouldn't work it
Let's get started with installation.
1. Download the DVD edition of FreeBSD 13.2 on AMD64. (The Intel Xeon's are 64-bit processors, this machine WILL run it)
2. Download 'isomacprog' from Github
3. Follow the isomacprog instructions to generate a new .iso file
4. Burn this new iso file to disk
5. Insert the disk into the Mac Pro's disk drive
Note: if you are struggling to get the disk drive open, open the Mac Pro side panel (with the machine powered off) and pull on the aluminium metal panel on the top left. The DVD drive will slide out with it. You can then see and press the hardware eject button using a pen. Other pointy objects may be available.
6. Hold down Alt on the Apple Keyboard and turn the Mac on.
7. After a minute (maximum), the Mac boot menu will appear. Click the CD disc icon. It will likely say "Windows" below it.
8. The FreeBSD boot menu should appear.
9. Go ahead with the installation. MBR file system is recommended, as the machine will be using Legacy BIOS mode to boot.
Note: that these machines are too old for variable CPU clock speed, so you don't need to enable powerd as it will error on boot anyway. If your Mac Pro has the Wifi option, then the card should be supported during installation and give you the option to configure your network and do a network install.
Note: when booting, this machine takes around 30 seconds to failback to booting systems in BIOS mode, so you'll either get a solid white screen for that time or a black screen, depending on your graphics card.
Specific configurations in the new system.
Graphics (Xorg)
So once you boot into the new installation, you're likely still in console mode and yet to install or configure the system as you see fit. The NVIDIA card mentioned earlier will work fine in console, but as mentioned earlier, to get Xorg running you will need to replace this card.
The Mac Pro uses PCIe slots (version 1 I believe) but PCIe is backwards and forwards compatible, so you can upgrade the graphics card relatively easily. Note that the rest of the machine isn't fast enough, nor is there enough space, for the extremely fast cards such as the Geforce RTX 4090, but you can upgrade to a modest, working, second hand card purchased from eBay or other supplier. The system has two 6-pin PCIe power cables, to help power the GPU, or you can buy a card that does not require extra power connectors.
I am using an ATI Radeon HD 5770 Mac Edition - this is already flashed so the boot menu still works, and is supported using the radeonkms kernel module (provided from the drm-kmod package), but if you don't go for the Mac Edition then FreeBSD will still support it fine, but you won't be able to access the Mac boot menu and you'll get a black screen at boot-up for a minute or two until FreeBSD boots and takes over control of the hardware.
Audio (Realtek ALC889)
The sound card in these machines are supported by FreeBSD but they need some specific configuration for the 3.5mm Jack ports on the back and the 3.5mm Headphones port to work.
First, you need to collect some information from your machine.
Run this command
Find the entry referring to "Realtek ALC889A (Rear Analog Line-out)"
Take note of the number after "pcm" on this line (we"ll refer to this number as X), and the number after "nid" (we'll refer to this number as Y) and the number after "hdaa" (we'll refer to this number as Z)
Modify /etc/sysctl.conf to add the following lines - substitude X, Y and Z with the values collected earlier
Save the changes to this file.
Modify /etc/rc.conf to add the line
Execute the following commands to action the change.
If audio doesn't work after that, then try rebooting.If issues persist, then you may need to double-check the earlier configuration file modifications and change the X, Y and Z values as necessary.
For example, my machine has a GPU Audio card as well, so the on-board sound card that I want to use is secondary, therefore my values are:-
If you don't have GPU Audio (i.e. an HDMI interface) then try these values as a default
I found this information in forum posts and comments on this site and others, so would like to thank the FreeBSD and extended community with their support as always.
Technological Hurdles
- The machine is EFI32 and does not support USB booting at all.
- The NVIDIA GeForce 7300 GT graphics card driver that came with the machine cannot support modern Xorg so needs replacing (Linux does have a driver for it that will run Xorg but it runs terribly, this is off-topic)
- For the Mac boot screen to load (so you can choose the DVD boot media) the graphics card needs to have special firmware on it, so keep that NVIDIA 7300 in the machine for the installation process.
- To open the Mac boot menu (holding down Alt/Option on start-up) this only worked for me using an Apple USB keyboard. My Logitech USB keyboard wouldn't work it
Let's get started with installation.
1. Download the DVD edition of FreeBSD 13.2 on AMD64. (The Intel Xeon's are 64-bit processors, this machine WILL run it)
2. Download 'isomacprog' from Github
3. Follow the isomacprog instructions to generate a new .iso file
4. Burn this new iso file to disk
5. Insert the disk into the Mac Pro's disk drive
Note: if you are struggling to get the disk drive open, open the Mac Pro side panel (with the machine powered off) and pull on the aluminium metal panel on the top left. The DVD drive will slide out with it. You can then see and press the hardware eject button using a pen. Other pointy objects may be available.
6. Hold down Alt on the Apple Keyboard and turn the Mac on.
7. After a minute (maximum), the Mac boot menu will appear. Click the CD disc icon. It will likely say "Windows" below it.
8. The FreeBSD boot menu should appear.
9. Go ahead with the installation. MBR file system is recommended, as the machine will be using Legacy BIOS mode to boot.
Note: that these machines are too old for variable CPU clock speed, so you don't need to enable powerd as it will error on boot anyway. If your Mac Pro has the Wifi option, then the card should be supported during installation and give you the option to configure your network and do a network install.
Note: when booting, this machine takes around 30 seconds to failback to booting systems in BIOS mode, so you'll either get a solid white screen for that time or a black screen, depending on your graphics card.
Specific configurations in the new system.
Graphics (Xorg)
So once you boot into the new installation, you're likely still in console mode and yet to install or configure the system as you see fit. The NVIDIA card mentioned earlier will work fine in console, but as mentioned earlier, to get Xorg running you will need to replace this card.
The Mac Pro uses PCIe slots (version 1 I believe) but PCIe is backwards and forwards compatible, so you can upgrade the graphics card relatively easily. Note that the rest of the machine isn't fast enough, nor is there enough space, for the extremely fast cards such as the Geforce RTX 4090, but you can upgrade to a modest, working, second hand card purchased from eBay or other supplier. The system has two 6-pin PCIe power cables, to help power the GPU, or you can buy a card that does not require extra power connectors.
I am using an ATI Radeon HD 5770 Mac Edition - this is already flashed so the boot menu still works, and is supported using the radeonkms kernel module (provided from the drm-kmod package), but if you don't go for the Mac Edition then FreeBSD will still support it fine, but you won't be able to access the Mac boot menu and you'll get a black screen at boot-up for a minute or two until FreeBSD boots and takes over control of the hardware.
Audio (Realtek ALC889)
The sound card in these machines are supported by FreeBSD but they need some specific configuration for the 3.5mm Jack ports on the back and the 3.5mm Headphones port to work.
First, you need to collect some information from your machine.
Run this command
dmesg | grep pcm
Find the entry referring to "Realtek ALC889A (Rear Analog Line-out)"
Take note of the number after "pcm" on this line (we"ll refer to this number as X), and the number after "nid" (we'll refer to this number as Y) and the number after "hdaa" (we'll refer to this number as Z)
Modify /etc/sysctl.conf to add the following lines - substitude X, Y and Z with the values collected earlier
Code:
dev.hdaa.Z.gpio_config="0=set 1=set"
hw.snd.default_unit=X
dev.hdaa.Z.nidY_config="as=4 seq=15"
Save the changes to this file.
Modify /etc/rc.conf to add the line
Code:
sndiod_enable="YES"
Execute the following commands to action the change.
service sysctl restart
service sndiod start
If audio doesn't work after that, then try rebooting.If issues persist, then you may need to double-check the earlier configuration file modifications and change the X, Y and Z values as necessary.
For example, my machine has a GPU Audio card as well, so the on-board sound card that I want to use is secondary, therefore my values are:-
Code:
dev.hdaa.1.nid21_config="as=4 seq=15"
If you don't have GPU Audio (i.e. an HDMI interface) then try these values as a default
Code:
dev.hdaa.0.nid21_config="as=4 seq=15"