Subject: Re: Booter for Mac OS X 10.4 (Tiger) can boot NetBSD?
To: NetBSD macppc <port-macppc@NetBSD.org>
From: Chris Tribo <ctribo@dtcc.edu>
List: port-macppc
Date: 05/31/2005 12:01:08
OF 2.x predates CHRP, so no; you need OF 3 for this method.
I believe snag boot already works on OF 3 machines with an official
ISO, but I haven't tried it recently. There are instructions in the
bootable CD documentation on the NetBSD web site.
On May 28, 2005, at 8:28 PM, Donald Lee wrote:
> Slick.
>
> This should work on OF 2.x on up, right?
>
> Seems to me that if we made this a little more "user friendly", it
> could become the standard boot procedure. It could be made a little
> smarter, and could even search for bootable partitions, etc.
> Depends on
> how much work someone wanted to put into it.
>
> Our current MacPPC booting regimen is less than ideal.
> Would this allow some users to keep a little more hair.
>
> Could this technique be used to get "snag boot" working on the
> install CD?
>
> The slick thing here is that it allows us a technique to store a
> little more
> forth than will fit in NVRAM, and in a way that is much less opaque
> than
> nvedit.
>
> Am I missing something?
>
> (I'll try this....)
>
> -dgl-
>
>
>> On May 28, 2005, at 10:40 AM, Donald Lee wrote:
>>
>>
>>> I seem to recall that someone wrote a menu-like IFace that could be
>>> put in forth's NVRAM. What I would really like is a forth boot
>>> that could be set to default to one system, and boot it after a
>>> short timeout, but allow switching to an alternate on some
>>> keypress(es).
>>>
>>> I know that Mac OS 9 won't allow this, because it scribbles on the
>>> forth settings. ;-< In theory, it would be possible with Mac OS X,
>>> NetBSD, OpenBSD, etc.
>>>
>>
>> Don,
>>
>> If I understand you correctly I think I've done this on my B&W
>> G3. I used Yellow Dog Linux to get it working, but I think all
>> you need to do is:
>> 1) Create a small partition on the disk to hold the primary
>> bootstrap CHRP file and set the default boot to boot from this
>> partition. This doesn't have to be an HFS type partition, but it
>> is easier to set up with OS 9 or OS X utilities if it is. You can
>> change the partition type to something else after you get it
>> configured. This is done for you by the YDL utilities but you can
>> use pdisk to do it too.
>> 2) Place the attached CHRP file in the partition created in
>> step #1. The file Creator code should be "chrp" and the file Type
>> code should be "tbxi".
>>
>> You'll need to edit the CHRP file to adjust for the partitions on
>> your disk. In my system partition 6 contains the CHRP bootstrap
>> and the YDL Secondary Boot. Partition 7 contains OS 9, 8 contains
>> OS X, and 11 is my NetBSD Root.
>>
>> When I boot I get a small menu that allows me to select what
>> system I want to boot up. I can also select a NetBoot or CDROM or
>> even drop into Openfirmware. If I don't select anything it
>> defaults to OS X after about 10 seconds. Also, on newer systems
>> the multi-system boot prompt (the Opt key) should work.
>>
>> Obviously to boot both NetBSD and OpenBSD you'll need to assign
>> different keys to each.
>>
>> -bob
>>
>> <CHRP-BOOT>
>> <COMPATIBLE>
>> MacRISC MacRISC3
>> </COMPATIBLE>
>> <DESCRIPTION>
>> Yellow Dog Linux First Stage Bootstrap
>> </DESCRIPTION>
>> <BOOT-SCRIPT>
>> : .printf fb8-write drop ;
>> : bootyaboot " Loading second stage bootstrap..." .printf 100 ms
>> load-base release-load-area " /pci@80000000/pci-bridge@d/pci-ata@1/
>> @0/disk@0:6,\\yaboot" $boot ;
>> : bootybsd " Booting BSD..." .printf 100 ms " /pci@80000000/pci-
>> bridge@d/pci-ata@1/@0/disk@0:6,\\ofwboot netbsd" $boot ;
>> : bootmacos " Booting MacOS..." .printf 100 ms load-base release-
>> load-area " /pci@80000000/pci-bridge@d/pci-ata@1/@0/disk@0:8,\
>> \:tbxi" $boot ;
>> : bootmacosx " Booting MacOSX..." .printf 100 ms load-base release-
>> load-area " /pci@80000000/pci-bridge@d/pci-ata@1/@0/disk@0:7,\
>> \:tbxi" $boot ;
>> : bootcd " Booting CDROM..." .printf 100 ms load-base release-load-
>> area " cd:,\\:tbxi" $boot ;
>> : bootnet " Booting Network..." .printf 100 ms load-base release-
>> load-area " enet:0" $boot ;
>> : bootof " Booting OpenFirmware..." .printf 100 ms quit ;
>> " screen" output
>> variable interactive
>> 1 interactive !
>>
>> 0 interactive @ = if
>> bootyaboot
>> then
>>
>> dev screen
>> " "(0000000000aa00aa0000aaaaaa0000aa00aaaa5500aaaaaa)" drop 0 7
>> set-colors
>> " "(5555555555ff55ff5555ffffff5555ff55ffffff55ffffff)" drop 8 15
>> set-colors
>> device-end
>> f to foreground-color
>> 0 to background-color
>> " "(0C)" .printf
>>
>> " First Stage Yellow Dog Linux Bootstrap"(0d 0a)" .printf
>> " "(0d 0a)" .printf
>> " Press l for Yellow Dog Linux,"(0d 0a)" .printf
>> " b for BSD,"(0d 0a)" .printf
>> " m for MacOS,"(0d 0a)" .printf
>> " x for MacOSX,"(0d 0a)" .printf
>> " c for CDROM,"(0d 0a)" .printf
>> " n for Network,"(0d 0a)" .printf
>> " o for OpenFirmware."(0d 0a)" .printf
>> " "(0d 0a)" .printf
>> " Stage 1 Boot: " .printf
>> get-msecs d# 10 3E8 * +
>> begin
>> key? if
>> key case
>> ascii l of " l "(0d 0a)" .printf bootyaboot endof
>> ascii b of " b "(0d 0a)" .printf bootybsd endof
>> ascii m of " m "(0d 0a)" .printf bootmacos endof
>> ascii x of " x "(0d 0a)" .printf bootmacosx endof
>> ascii c of " c "(0d 0a)" .printf bootcd endof
>> ascii n of " n "(0d 0a)" .printf bootnet endof
>> ascii o of " o "(0d 0a)" .printf bootof endof
>> endcase
>> then
>> dup get-msecs <
>> until
>> drop
>> " "(0d 0a)" .printf bootmacosx
>> </BOOT-SCRIPT>
>> <OS-BADGE-ICONS>
>> 1010
>> 000000000000F8FEACF6000000000000
>> 0000000000F5FFFFFEFEF50000000000
>> 00000000002BFAFEFAFCF70000000000
>> 0000000000F65D5857812B0000000000
>> 0000000000F5350B2F88560000000000
>> 0000000000F6335708F8FE0000000000
>> 00000000005600F600F5FD8100000000
>> 00000000F9F8000000F5FAFFF8000000
>> 000000008100F5F50000F6FEFE000000
>> 000000F8F700F500F50000FCFFF70000
>> 00000088F70000F50000F5FCFF2B0000
>> 0000002F582A00F5000008ADE02C0000
>> 00090B0A35A62B0000002D3B350A0000
>> 000A0A0B0B3BF60000505E0B0A0B0A00
>> 002E350B0B2F87FAFCF45F0B2E090000
>> 00000007335FF82BF72B575907000000
>> 000000000000ACFFFF81000000000000
>> 000000000081FFFFFFFF810000000000
>> 0000000000FBFFFFFFFFAC0000000000
>> 000000000081DFDFDFFFFB0000000000
>> 000000000081DD5F83FFFD0000000000
>> 000000000081DDDF5EACFF0000000000
>> 0000000000FDF981F981FFFF00000000
>> 00000000FFACF9F9F981FFFFAC000000
>> 00000000FFF98181F9F981FFFF000000
>> 000000ACACF981F981F9F9FFFFAC0000
>> 000000FFACF9F981F9F981FFFFFB0000
>> 00000083DFFBF981F9F95EFFFFFC0000
>> 005F5F5FDDFFFBF9F9F983DDDD5F0000
>> 005F5F5F5FDD81F9F9E7DF5F5F5F5F00
>> 0083DD5F5F83FFFFFFFFDF5F835F0000
>> 000000FBDDDFACFBACFBDFDFFB000000
>> 000000000000FFFFFFFF000000000000
>> 0000000000FFFFFFFFFFFF0000000000
>> 0000000000FFFFFFFFFFFF0000000000
>> 0000000000FFFFFFFFFFFF0000000000
>> 0000000000FFFFFFFFFFFF0000000000
>> 0000000000FFFFFFFFFFFF0000000000
>> 0000000000FFFFFFFFFFFFFF00000000
>> 00000000FFFFFFFFFFFFFFFFFF000000
>> 00000000FFFFFFFFFFFFFFFFFF000000
>> 000000FFFFFFFFFFFFFFFFFFFFFF0000
>> 000000FFFFFFFFFFFFFFFFFFFFFF0000
>> 000000FFFFFFFFFFFFFFFFFFFFFF0000
>> 00FFFFFFFFFFFFFFFFFFFFFFFFFF0000
>> 00FFFFFFFFFFFFFFFFFFFFFFFFFFFF00
>> 00FFFFFFFFFFFFFFFFFFFFFFFFFF0000
>> 000000FFFFFFFFFFFFFFFFFFFF000000
>> </OS-BADGE-ICONS>
>> </CHRP-BOOT>
>>
>
>
> !DSPAM:42990ca7318561127419732!
>