mostlacitka.png (6071 bytes) MorphOS MorphOS Docs MorphOS other MorphOS software Back to MorphOS home page

PowerMac G5 multiboot MorphOS, OSX, Linux...

Pokud chceš vedle MorphOS instalovat víc operačních systémů, bude potřeba vyřešit způsob jejich startu.

Moje G5 po zapnutí startuje přímo do MorphOS. Při startu s podržením klávesy "Option" (alt) se objeví "boot screen" Pic.1, kde ikona OSX spustí OSX Leopard a ikona s motýlkem spustí další boot menu Pic.6 s výběrem všech OS.


Mac boot screen
Pic.1 - Mac boot screen.

Badge icon - motýlek.
Pic.2 - Badge icon - motýlek.

g5dirhdmth.png (78711 bytes)
Pic.3 - Open Firmware dir hd:2,\ Soubor bootinfo.txt je "tbxi".

g5printenvth.png (49358 bytes)
Pic.4 - Open Firmware printenv.

g5dirhdth.png (80971 bytes)
Pic.5 - Open Firmware dir hd:2,\ Soubor ofboot.b je "tbxi".

g5ofbootbth.png (32932 bytes)
Pic.6 - Open Firmware boot menu.

g5yabootmth.png (42664 bytes)
Pic.7 - Yaboot nabídka.

bootinfo.txt

Soubor bootinfo.txt je přidán MorphOS instalátorem na tvůj boot partition a je označen programem HFSSetMacBoot Pic.3. Pokud máš jen jeden disk a na něm nainstalován jen MorphOS tak toto zajistí že počítač bude po zapnutí nebo resetu bootovat přímo do MorphOS.

Soubor bootinfo.txt spustí "bootovací příkaz" boot hd:2,\boot.img ramdebug

ofboot.b

Soubor ofboot.b je přidán Linuxovým instalátorem na tvůj boot partition.

Pozor pokud budeš instalovat Linux až po MorphOS a vybereš stejný boot partition, všechny soubory co obsahuje budou smazány! Raději si obsah svého boot partitionu zálohuj.

Původní soubor ofboot.b jsem upravil tak aby se pomocí něj daly vybrat všechny operační sytémy co jsou na discích. Změnil jsem klíčová slova (bootmate, bootleo, morphos), jejich popisy a také zkrátil příliš matoucí cesty.

Původní Linux soubor

: bootyaboot " Loading second stage bootstrap..." .printf 100 ms load-base release-load-area " /ht@0,f2000000/pci@7/k2-sata-root@c/@ffffffffffffffff/@0:2,\\yaboot" $boot ;
: bootmacos " Booting MacOS..." .printf 100 ms load-base release-load-area " /ht@0,f2000000/pci@7/k2-sata-root@c/@ffffffffffffffff/@0:7,\\:tbxi" $boot ;
: bootmacosx " Booting MacOSX..." .printf 100 ms load-base release-load-area " /ht@0,f2000000/pci@7/k2-sata-root@c/@ffffffffffffffff/@0:3,\\:tbxi" $boot ;
: bootcd " Booting CDROM..." .printf 100 ms load-base release-load-area " cd:,\\:tbxi" $boot ;
bootyaboot spustí yaboot. Yaboot je na prvním disku partition 2 (boot partition), yaboot.conf musí být také na boot partitionu.
bootmate spustí yaboot, ale s parametrem conf=ultra0:2,/yabootmate.conf, kde je plná cesta k jinému .conf souboru (pozor jiné lomítko).
bootleo je cesta ke spouštěči OSX, který je na druhém disku partition 3.
morphos spustí MorphOS "bootovací příkaz" - soubor boot.img i s parametrem (opět z boot partitionu).

Upravené pro MorphOS a další

: bootyaboot " Booting Ubuntu..." .printf 100 ms load-base release-load-area " ultra0:2,\yaboot" $boot ;
: bootmate " Booting Mate..." .printf 100 ms load-base release-load-area " ultra0:2,\yaboot conf=ultra0:2,/yabootmate.conf" $boot ;
: bootleo " Booting Leopard..." .printf 100 ms load-base release-load-area " ultra1:3,\\:tbxi" $boot ;
: morphos " Booting MorphOS..." .printf 100 ms load-base release-load-area " ultra0:2,\boot.img ramdebug" $boot ;

Původní Linux soubor

" First Stage Debian GNU/Linux Bootstrap"(0d 0a)" .printf
"  "(0d 0a)" .printf
" Press l for GNU/Linux,"(0d 0a)" .printf
"       m for MacOS,"(0d 0a)" .printf
"       x for MacOSX,"(0d 0a)" .printf
"       c for CDROM."(0d 0a)" .printf
"  "(0d 0a)" .printf
" Stage 1 Boot: " .printf

Toto je textové menu Pic.6, které se zobrazí jště před bootem. Svoje menu si uprav podle svého, samotná písmena pak spustí další "akci".

Upravené pro MorphOS a další

" Welcome to S.D.I HQ"(0d 0a)" .printf
"  "(0d 0a)" .printf
" Press l for LUbuntu LTS,"(0d 0a)" .printf
"       t for Ubuntu Mate LTS,"(0d 0a)" .printf
"       x for MacOSX Leopard,"(0d 0a)" .printf
"       m for MorphOS (default)."(0d 0a)" .printf
"  "(0d 0a)" .printf
" Stage 1 Boot: " .printf

Původní Linux soubor

begin
  key? if
    key case
      ascii l of " l "(0d 0a)" .printf bootyaboot 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
    endcase
  then
  dup get-msecs <
until
drop
"  "(0d 0a)" .printf bootyaboot

Tato část již spouští položky menu podle stisknuté klávesy. Uprav ji podle klíčových slov (bootmate, bootleo...) a jejich písmen.

Poslední řádek v této části " "(0d 0a)" .printf morphos spustí MorphOS pokud zmáčkneš enter, nebo uplyne čas pro výběr (default).

Upravené pro MorphOS a další

begin
  key? if
    key case
      ascii l of " l "(0d 0a)" .printf bootyaboot endof
      ascii t of " t "(0d 0a)" .printf bootmate endof
      ascii x of " x "(0d 0a)" .printf bootleo endof
      ascii m of " m "(0d 0a)" .printf morphos endof
    endcase
  then
  dup get-msecs <
until
drop
"  "(0d 0a)" .printf morphos

Jako poslední jsem vyměnil obsah tagu <OS-BADGE-ICONS> tučňáka za motýlka Pic.2 (je v souboru bootinfo.txt).

<CHRP-BOOT>
<COMPATIBLE>
MacRISC MacRISC3 MacRISC4
</COMPATIBLE>
<DESCRIPTION>
MorphOS, OSX, PowerPC GNU/Linux BootMenu
</DESCRIPTION>
<BOOT-SCRIPT>
: .printf fb8-write drop ;
: bootyaboot " Booting Ubuntu..." .printf 100 ms load-base release-load-area " ultra0:2,\yaboot" $boot ;
: bootmate " Booting Mate..." .printf 100 ms load-base release-load-area " ultra0:2,\yaboot conf=ultra0:2,/yabootmate.conf" $boot ;
: bootleo " Booting Leopard..." .printf 100 ms load-base release-load-area " ultra1:3,\\:tbxi" $boot ;
: morphos " Booting MorphOS..." .printf 100 ms load-base release-load-area " ultra0:2,\boot.img ramdebug" $boot ;
" 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

" Welcome to S.D.I HQ"(0d 0a)" .printf
"  "(0d 0a)" .printf
" Press l for LUbuntu LTS,"(0d 0a)" .printf
"       t for Ubuntu Mate LTS,"(0d 0a)" .printf
"       x for MacOSX Leopard,"(0d 0a)" .printf
"       m for MorphOS (default)."(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 t of " t "(0d 0a)" .printf bootmate endof
      ascii x of " x "(0d 0a)" .printf bootleo endof
      ascii m of " m "(0d 0a)" .printf morphos endof
    endcase
  then
  dup get-msecs &lt;
until
drop
"  "(0d 0a)" .printf morphos
</BOOT-SCRIPT>
<OS-BADGE-ICONS>
1010
FFFF000000000000000000000000FFFF
FF0000000000000000A5F1000000F8FF
000000000000000000C1C7F5000000F8
00000000000000002BC1C19D000000F8
0000000000000000F8C19DC12A0000F8
0000000000000000F8C19797F50000F8
0000000000000000F7C1974F977200F8
0000000000000000F7C19090BAC100F8
0000F52BF7F82BF7DFC8B4B4BAC800F8
00ABC8C1C7C8C8C8C25D569EC1C100F8
00CFC1BB9DBB9796B47A00F52B0000F8
0000F6A4C1974F9090C1F500000000F8
000000004FF597BABABAF700000000F8
00000000000079BBC1C1F500000000F8
FFF8000000000000000000000000F8FF
FFFFF8F8F8F8F8F8F8F8F8F8F8F8FFFF
FFFFF7F7F7F7F7F7F7F7F7F7F7F7FFFF
FFF7F7F7F7F7F7F7F7ABF2F7F7F781FF
F7F7F7F7F7F7F7F7F7C8C8F7F7F7F781
F7F7F7F7F7F7F7F756C8C2A4F7F7F781
F7F7F7F7F7F7F7F7F9C89EC856F7F781
F7F7F7F7F7F7F7F7F9C8C29EF8F7F781
F7F7F7F7F7F7F7F7F9C89E7A9E79F781
F7F7F7F7F7F7F7F7F9C89797C1C2F781
F7F7F856F9F956F9FEC9BBBBC1C8F781
F7ABC8C2C8CFCFC8C981FAA4C8C8F781
F7CFC8C19EC29E97BBFAF7F856F7F781
F7F7F8A4C89E7A9797C8F7F7F7F7F781
F7F7F7F756F89EC1C1C156F7F7F7F781
F7F7F7F7F7F77AC2C2C2F7F7F7F7F781
FF81F7F7F7F7F7F7F7F7F7F7F7F781FF
FFFF818181818181818181818181FFFF
0000FFFFFFFFFFFFFFFFFFFFFFFF0000
00FFFFFFFFFFFFFFFFFFFFFFFFFFFF00
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
00FFFFFFFFFFFFFFFFFFFFFFFFFFFF00
0000FFFFFFFFFFFFFFFFFFFFFFFF0000
</OS-BADGE-ICONS>
</CHRP-BOOT>

Aby bylo možné při startu spustit menu je potřeba soubor ofboot.b označit programem HFSSetMacBoot Pic.5. Při každé další změně je nutné opět použít program HFSSetMacBoot. Jednoduše v Shellu HFSSetMacBoot mujdisk:ofboot.b

Pokud chceš bootovat rovnou do MorphOS, změň v Open Firmware boot-command příkazem setenv boot-command boot hd:2,\bootinfo.txt
Výsledek zkontroluj příkazem printenv Pic.4, jestli je vše v pořádku napiš příkaz reset-all

Menu pak můžeš spustit při startu s podržením klávesy "Option" (alt).

yaboot.conf

Soubor yaboot.conf je přidán Linuxovým instalátorem na tvůj boot partition. V původním souboru yaboot.conf jsem opět upravil cesty.
boot=/dev/sda2 "Linuxová" cesta k boot partitionu (první disk druhý partition).
device=ultra0: "Open Firmware" cesta k disku kde je nainstalovaný Linux (první disk).
partition=11 Partition kde je nainstalovaný Linux.
root=/dev/sda11 Disk a partition kde je root (první disk jedenáctý partition).

Pokud je parametr root= nad prvním parametrem image=, bude brán jako defaultní a automaticky startuje po uplynutí času pro výběr nebo po stisku klávesy enter. Po stisku klávesy TAB se objeví nabídka Pic.7 kde si můžeš vybrat z dalších možností.

## yaboot.conf generated by debian-installer
##
## run: "man yaboot.conf" for details. Do not make changes until you have!!
## see also: /usr/share/doc/yaboot/examples for example configurations.
##
## For a dual-boot menu, add one or more of:
## bsd=/dev/hdaX, macos=/dev/hdaY, macosx=/dev/hdaZ

boot=/dev/sda2
device=ultra0:
partition=11
root=/dev/sda11
timeout=100
install=/usr/lib/yaboot/yaboot
magicboot=/usr/lib/yaboot/ofboot
enablecdboot
macosx=/dev/sdb3

image=/boot/vmlinux
    label=Linux
    read-only
    initrd=/boot/initrd.img
    append="nosplash"

image=/boot/vmlinux.old
    label=old
    read-only
    initrd=/boot/initrd.img.old
    append="nosplash"

image=ultra1:5,/boot/vmlinux
    root=/dev/sdb5
    label=LinuxMate
    read-only
    initrd=/boot/initrd.img
    append="nosplash"

image=ultra1:5,/boot/vmlinux.old
    root=/dev/sdb5
    label=LinuxMateOld
    read-only
    initrd=/boot/initrd.img.old
    append="nosplash"
Nakonec jsem přidal LinuxMate (pokud si chceš ještě rozmyslet co bootovat), který je na druhém disku. V tomto případě musí být v parametru image= plná cesta a parametr root= musí být zde (pod image=).

yabootmate.conf

Rovnou nabootuje do LinuxMate který je na druhém disku. Parametr boot= zůstává stejný, u ostatních je změna disku a partitionu. Ještě je snížen čas v parametru timeout= (bootuje téměř ihned).

## yabootmate.conf Linux MATE
##
## run: "man yaboot.conf" for details. Do not make changes until you have!!
## see also: /usr/share/doc/yaboot/examples for example configurations.
##
## For a dual-boot menu, add one or more of:
## bsd=/dev/hdaX, macos=/dev/hdaY, macosx=/dev/hdaZ

boot=/dev/sda2
device=ultra1:
partition=5
root=/dev/sdb5
timeout=5
install=/usr/lib/yaboot/yaboot
magicboot=/usr/lib/yaboot/ofboot
enablecdboot
macosx=/dev/sdb3

image=/boot/vmlinux
    label=Linux
    read-only
    initrd=/boot/initrd.img
    append="nosplash"

image=/boot/vmlinux.old
    label=old
    read-only
    initrd=/boot/initrd.img.old
    append="nosplash"

Dodatek

disky Open Firmware
hd:2 = první disk, druhý partition
ultra0:2 = první disk, druhý partition
ultra1:3 = druhý disk, třetí partition

disky Linux
sda2 = první disk, druhý partition
sdb3 = druhý disk, třetí partition

Linky

https://lists.ozlabs.org/pipermail/yaboot-users/2012-February/000238.html
https://manpages.debian.org/jessie/yaboot/yaboot.conf.5
ghh don'tpanic