Apple Powerbook G4 - FreeBSD
For machine info, see the main page.
This machine is tested with FreeBSD / ppc on an external drive. A Maxtor 250 GB firewire (and usb) 3.5 inch, with external power supply.
Work log
2021-04-23: booted FreeBSD 13.0-release powerpc (usb memstick in frontmost port, 2.5 inch usb hard drive in the othe usb port). dmesg output: normal. Unfortunately, the usb hard drive isn't recognized. Powered down, switched ports - nope, usb hard drive not showing up. Tried a different usb hard drive - no dice.
2021-04-22: with a FreeBSD 13.0-release powerpc memstick in the frontmost usb port, from power off, hold down Option (alt) then the usb stick shows up (eventually) and I can boot from it. Unfortunately, it ends with a loop of
"Root mount waiting for: CAM"
power off, the try from Open Firmware:
boot ud:,\\:tbxi
doesn't work - devalias 'ud' doesn't exist
boot usb1/disk@1:,\\:tbxi
doesn't work
boot usb0/disk@1:,\\:tbxi
starts executing boot script, then nothing more happens. Tried once more from the Option boot menu - this time it boots completely.
2011-01-21: I tried the new bsdinstaller, (using the bsdinstall-powerpc-20110116 snapshot). since this machine has a non-working optical drive, and because it won't recognize my external usb cd drive, I copied the image to a usb memory stick using dd. after that, boot into OpenFirmware (Command-Option-O-F) and do (usb stick in frontmost usb port):
devalias ud /pci1/usb@1b,1/disk@1 boot ud:,\BOOT\LOADER.;1 ud:0
It didn't work. The image tries to mount root from cd9660:/dev/acd0, and fails. And the keyboard wasn't working, so I couldn't do anything there.
2011-01-16: while I'm at it, try the FreeBSD 9.0-20101118-SNAP image as well, from another usb memory stick. Again, in the frontmost usb port. But this memory stick isn't recognized in open firmware, neither in the frontmost or the backmost usb port. Strange.
2011-01-16: Trying to boot FreeBSD 8.2-RC1 from a usb memory stick in the frontmost usb port. I'm trying with a simplified devalias this time:
devalias ud /pci1/usb@1b,1/disk@1 boot ud:,\boot\loader ud:0
but it doesn't work. I also tried
devalias ud pci1/usb@1b,1/disk@1 but it didn't work either. So it is back to this: devalias ud /pci@f2000000/usb@1b,1/disk@1 and then
boot ud:,\boot\loader ud:0
works. The image boots to the main screen (via the country selection dialog), I select Fixit, and "use the live filesystem from
a USB drive", and the installer says "No USB devices found!".
Note: if the usb memory stick is connected to the backmost usb port (closest to the power connector) it shows up as /pci@f2000000/usb@1b/disk@1 in open
firmware.
2011-01-16: It looks like the if_bwn module doesn't load from /boot/loader.conf. in /boot/loader.conf I have if_bwn_load="YES", and I can see it loading when the machine starts, but there is no trace of it in dmesg output, and when I do kldstat after booting it only shows kernel and sbp.ko (needed for the external firewire drive). I then do kldload if_bwn, and kldstat shows that the following additional modules are loaded: if_bwn, wlan, siba_bwn. After testing, I figured out that I need this in /boot/loader.conf to get the wireless to work:
wlan_load="YES" siba_bwn_load="YES" if_bwn_load="YES"
Nice. But when I do ifconfig wlan0 up, I get this on the console and in /var/log/messages:
Jan 16 19:42:45 powerbook-g4 kernel: bwn_v4_ucode5: could not load firmware image, error 2 Jan 16 19:42:45 powerbook-g4 kernel: bwn0: the fw file(bwn_v4_ucode5) not found Jan 16 19:42:45 powerbook-g4 kernel: bwn-open_v4_ucode5: could not load firmware image, error 2 Jan 16 19:42:45 powerbook-g4 kernel: bwn0: the fw file(bwn-open_v4_ucode5) not found
So it doesn't work after all.
2010-10-14: So, finally, FreeBSD 8.1-release installed and working. dmesg output: normal, verbose (use set boot_verbose=yes in the boot loader to get a verbose boot). pciconf -lvc output:
root@powerbook-g4# pciconf -lvc hostb0@pci0:0:11:0: class=0x060000 card=0x00000000 chip=0x0034106b rev=0x00 hdr=0x00 vendor = 'Apple Computer Inc' device = 'UniNorth 2 AGP' class = bridge subclass = HOST-PCI cap 02[80] = AGP 4x 2x 1x SBA disabled vgapci0@pci0:0:16:0: class=0x030000 card=0x001010de chip=0x032910de rev=0xa1 hdr=0x00 vendor = 'NVIDIA Corporation' device = 'GeForce FX Go 5200 [NV34M]' class = display subclass = VGA cap 01[60] = powerspec 2 supports D0 D3 current D0 cap 02[44] = AGP 4x 2x 1x SBA disabled macio0@pci1:0:23:0: class=0xff0000 card=0x00000000 chip=0x003e106b rev=0x00 hdr=0x00 vendor = 'Apple Computer Inc' device = 'KeyLargo/Intrepid Mac I/O' siba_bwn0@pci1:0:18:0: class=0x028000 card=0x004e106b chip=0x432014e4 rev=0x03 hdr=0x00 vendor = 'Broadcom Corporation' device = '802.11b/g Wireless LAN Controller (BCM4309)' class = network cap 01[40] = powerspec 2 supports D0 D1 D2 D3 current D0 ohci0@pci1:0:26:0: class=0x0c0310 card=0x00000000 chip=0x003f106b rev=0x00 hdr=0x00 vendor = 'Apple Computer Inc' device = 'KeyLargo/Intrepid USB' class = serial bus subclass = USB ohci1@pci1:0:27:0: class=0x0c0310 card=0x00351033 chip=0x00351033 rev=0x43 hdr=0x00 vendor = 'NEC Electronics Hong Kong' device = 'Dual OHCI controllers plus Single EHCI controller (udp9210)' class = serial bus subclass = USB cap 01[40] = powerspec 2 supports D0 D1 D2 D3 current D0 ohci2@pci1:0:27:1: class=0x0c0310 card=0x00351033 chip=0x00351033 rev=0x43 hdr=0x00 vendor = 'NEC Electronics Hong Kong' device = 'Dual OHCI controllers plus Single EHCI controller (udp9210)' class = serial bus subclass = USB cap 01[40] = powerspec 2 supports D0 D1 D2 D3 current D0 ehci0@pci1:0:27:2: class=0x0c0320 card=0x00e01033 chip=0x00e01033 rev=0x04 hdr=0x00 vendor = 'NEC Electronics Hong Kong' device = 'uPD720100A/101 USB 2.0 Enhanced Host Controller' class = serial bus subclass = USB cap 01[40] = powerspec 2 supports D0 D1 D2 D3 current D0 hostb1@pci1:0:11:0: class=0x060000 card=0x00000000 chip=0x0035106b rev=0x00 hdr=0x00 vendor = 'Apple Computer Inc' device = 'UniNorth 2 PCI' class = bridge subclass = HOST-PCI ohci3@pci1:0:24:0: class=0x0c0310 card=0x00000000 chip=0x003f106b rev=0x00 hdr=0x00 vendor = 'Apple Computer Inc' device = 'KeyLargo/Intrepid USB' class = serial bus subclass = USB ohci4@pci1:0:25:0: class=0x0c0310 card=0x00000000 chip=0x003f106b rev=0x00 hdr=0x00 vendor = 'Apple Computer Inc' device = 'KeyLargo/Intrepid USB' class = serial bus subclass = USB ata1@pci2:0:13:0: class=0xff0000 card=0x00000000 chip=0x003b106b rev=0x00 hdr=0x00 vendor = 'Apple Computer Inc' device = 'Integrated ATA Controller (Intrepid)' fwohci0@pci2:0:14:0: class=0x0c0010 card=0x5811106b chip=0x0031106b rev=0x81 hdr=0x00 vendor = 'Apple Computer Inc' device = 'UniNorth 2 FireWire' class = serial bus subclass = FireWire cap 01[44] = powerspec 2 supports D0 D1 D2 D3 current D0 gem0@pci2:0:15:0: class=0x020000 card=0x00000000 chip=0x0032106b rev=0x80 hdr=0x00 vendor = 'Apple Computer Inc' device = 'UniNorth 2 GMAC (Sun GEM)' class = network subclass = ethernet hostb2@pci2:0:11:0: class=0x060000 card=0x00000000 chip=0x0036106b rev=0x00 hdr=0x00 vendor = 'Apple Computer Inc' device = 'UniNorth 2 Internal PCI' class = bridge subclass = HOST-PCI
usbconfig output:
root@powerbook-g4# usbconfig ugen0.1: <OHCI root HUB Apple> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON ugen1.1: <OHCI root HUB NEC> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON ugen2.1: <OHCI root HUB NEC> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON ugen3.1: <EHCI root HUB NEC> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON ugen4.1: <OHCI root HUB Apple> at usbus4, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON ugen5.1: <OHCI root HUB Apple> at usbus5, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON ugen0.2: <product 0x8203 vendor 0x05ac> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
2010-10-14: Hmm, today I retried my installation, since I learned that I need to load the sbp module (wait until the kernel has loaded, press space to abort
booting, then load sbp, then boot) to have the firewire drive recognized. That works like a charm. What also worked today was the CD-ROM drive; I could boot
from it via the ud alias, if it is connected to the frontmost usb port. Strange. For some reason, sysinstall didn't work,
I had to extract the base, GENERIC and manpages distributions manually. I hope that's enough. We'll see. Ok - it was enough to boot it at least.
Note: in /boot/loader.conf: sbp_load="YES" - needed for getting the firewire drive recognized.
To get the wireless working: in /boot/loader.conf: if_bwn_load="YES", in /etc/rc.conf: wlans_bwn0="wlan0", ifconfig_wlan0="WPA DHCP".
It also needs the port net/bwn-firmware-kmod for the firmware. I used portsnap fetch
to get a ports tree, and portsnap extract
to unpack it.
2010-10-10: Ok, I connected the external drive via usb instead. That works. (Note: the drive was connected to the back usb port - the one closest to the
power connector, which made the drive show up as da0 in FreeBSD). I used gpart show da0
to list all partitions on the drive,
and gpart delete -i <index> da0
to delete them, one by one. gpart destroy da0
just said "busy". Creating partitions:
gpart add -s 800K -t apple-boot ad0 (da0s2) gpart add -s 1G -t freebsd-ufs da0 (da0s3 - / root) gpart add -s 2G -t freebsd-swap da0 (da0s4, swap) gpart add -s 4G -t freebsd-ufs da0 (da0s5, /var) gpart add -s 512m -t freebsd-ufs da0 (da0s6, /tmp) gpart add -t freebsd-ufs da0 (da0s7, /usr - the rest)
then it was reboot time, since the new partitions wasn't working correctly in Label in sysinstall (for some reason, when trying Create on them, it just complained that they were not free). Oh well. After the reboot, I hit more trouble: when I should select installation source, I selected usb, and got "no USB devices found!". Not nice.
2010-10-09: unfortunately, it doesn't look like my firewire drive works under FreeBSD, even if it shows up in open firmware.
camcontrol devlist -v
and camcontrol rescan all
doesn't help, the drive does not show up, nothing is created in /dev. there is no dmesg command, so I
can't see if the dmesg output provides any hints either. In Open Firmware, the firewire drive shows up
as /pci@f4000000/firewire@e/node@0010b9f700f55f27/sbp-2@c000/disk@0, if it matters.
2010-10-09: I finally could boot the FreeBSD installer. I copied the install CD to a memory stick using dd:
dd if=/home/tingo/dl/bsd/fbsd/8.1/FreeBSD-8.1-RELEASE-powerpc-disc1.iso of=/dev/da4 bs=10240 conv=sync
. The memory stick showed up in the
boot menu (opt / alt), but the machine refused to boot from it. However, it did boot from Open Firmware, even if it was convoluted. In Open firmware,
I had to do this: first a dev / ls
to figure out where the usb stick was in the tree (hint look for disk@ under the usb nodes), then I did
devalias ud /pci@f2000000/usb@1b,1/disk@1 boot ud:,\boot\loader ud:0
and the machine booted into FreeBSD. Yay! I struggled a bit after that, because I could not find out how to switch between consoles; it is fn-alt-Fx, for example fn-alt-f4. To make the ud device alias permanent, I did like this:
nvedit devalias ud /pci@f2000000/usb@1b,1/disk@1 ctrl-c nvstore setenv use-nvramrc? true
that's it. Except for the fact that it doesn't work. After a reset everything is gone. Oh well.
2010-10-08: Trying to boot the FreeBSD 8.1-release install CD (disc1) from my usb-connected dvd-burner (Plextor) was unsuccessful.
Pressing Opt (alt) during boot only brought up the internal drive.
And from Open Firmware (cmd-opt-O-F) the device would not show at all when I did dev / ls
. Strange.