« NIC交換とネットワークのベンチマーク | メイン | freebsd-updateでセキュリティアップデート »

PowerPC版mac miniにFreeBSDをインストールする

何故か早起きした土曜日。ふと思いついて余っているmacminiをサーバにしてみることにしました。Yellow Dog Linuxを入れるつもりだったのですが、PowerPC対応の日本語版は現在販売していないので別のOSに。

何を入れようか探していたところ、慣れているFreeBSDがあったのでこれを入れてみることにしました。FreeBSDは6.0からPowerPCに対応したようです。Tier 2なのでβ版という感じですが、遊ぶ目的なのでこれを選びました。バージョンはFreeBSD 6.2-RELEASE。

OSXのパーティションを削除

手順はAppleに書いてあるとおりです。
  • Mac OS X CDをセットした後、「C」キーを押しながらブート(CD-ROMブート)
  • 起動したら「続ける」を押さずに、メニューから「Installer」→「ディスクユーティリティを開く」
  • HDDを選択
  • 「消去」タブ→「ボリュームフォーマット」で「UNIX ファイルシステム」を選択
  • 「オプション」クリック→「全データを0にする」をチェック
  • 「OK」→「消去」とクリック

これでディスクをフォーマットできました。

FreeBSD/PPCのインストール

あらかじめ、http://www.jp.freebsd.org/www.FreeBSD.org/where.htmlからISOイメージをダウンロードしてCD-Rに焼いておきます。

macminiのちょっとした問題点はCDの取り出し機構がないこと。上記作業後はMac OS X CDが入ったままなので、Command + Option + O + F を押しながらブートしてOpenFirmwareプロンプトに入り

0 > eject cd
とタイプしてCDを取り出しました。

http://www.jp.freebsd.org/www.FreeBSD.org/where.htmlからISOイメージをダウンロードしてCD-Rに焼き、「C」キーを押しながらブート。後は通常のFreeBSDと同じようにインストールするだけでした。

バーティションは/のみ。swapなし。それ以外ではインストールに失敗します。 当初、これでもエラーが出ていたのですが、再起動して同じ事を試したところ、何故かうまくいきました。

起動

ここまではすんなりと進むのですが、なかなか起動せず四苦八苦。http://people.freebsd.org/~grehan/install.htmlを参考にして以下のようにしたところうまくいきました。

  1. http://www.freebsd.org/~grehan/ppc-root-latest.tbz2をダウンロードしてブートCDを作成
  2. ブートCDをドライブにセット
  3. 起動時にOpenFirmwareプロンプトに入り、下記を入力
    0 > dir cd:,\
    0 > boot cd:,\boot\loader
    0 > set currdev=hd:3 ※ディスクユーティリティで確認できるパーティション番号
    0 > boot -s

起動時には毎回このプロセスを辿らなければならないので、リモートでのリブートができない状況です。これでは公開用サーバには使えません。解決する方法はありそうですが、起動したところで満足してしまったので今回は追いませんでした。

ということで、取りあえずpowerpc版mac miniをFreeBSDサーバとして使うことができるようになりました。mac mini、まだまだ活躍してくれそうです♪

参考

dmesgはこんな感じでした。NICはgem0。

> dmesg
Copyright (c) 1992-2007 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 6.2-RELEASE #0: Sat Jan 13 14:51:58 UTC 2007
    root@xserve.pn.xcllnt.net:/usr/obj/usr/src/sys/GENERIC
WARNING: WITNESS option enabled, expect reduced performance.
Timecounter "decrementer" frequency 41621087 Hz quality 0
cpu0: Motorola PowerPC 7447A revision 1.2, 1416.67 MHz
cpu0: HID0 8450c0bc<EMCP,TBEN,NAP,DPM,ICE,DCE,SGE,BTIC,LRSTK,FOLD,BHT>
real memory  = 523272192 (499 MB)
avail memory = 505860096 (482 MB)
nexus0: <Open Firmware Nexus device>
openpic0: <OpenPIC Interrupt Controller> on nexus0
unin0: <Apple UniNorth System Controller> on nexus0
unin0: Version 210
pcib0: <Apple UniNorth Host-PCI bridge> on nexus0
pci0: <PCI bus> on pcib0
pci0: <display, VGA> at device 16.0 (no driver attached)
pcib1: <Apple UniNorth Host-PCI bridge> on nexus0
pci1: <PCI bus> on pcib1
pci1: <network> at device 18.0 (no driver attached)
macio0: <Intrepid I/O Controller> mem 0x80000000-0x8007ffff at device 23.0 on pci1
ata0 mem 0x20000-0x20fff,0x8800-0x88ff irq 24 on macio0
ohci0: <OHCI (generic) USB controller> irq 0 at device 24.0 on pci1
ohci0: [GIANT-LOCKED]
usb0: OHCI version 1.0, legacy support
usb0: <OHCI (generic) USB controller> on ohci0
usb0: USB revision 1.0
uhub0: Apple OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
ohci1: <OHCI (generic) USB controller> irq 0 at device 25.0 on pci1
ohci1: [GIANT-LOCKED]
usb1: OHCI version 1.0, legacy support
usb1: <OHCI (generic) USB controller> on ohci1
usb1: USB revision 1.0
uhub1: Apple OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
ohci2: <OHCI (generic) USB controller> mem 0x80083000-0x80083fff irq 29 at device 26.0 on pci1
ohci2: [GIANT-LOCKED]
usb2: OHCI version 1.0, legacy support
usb2: <OHCI (generic) USB controller> on ohci2
usb2: USB revision 1.0
uhub2: Apple OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
ohci3: <NEC uPD 9210 USB controller> mem 0x80082000-0x80082fff irq 63 at device 27.0 on pci1
ohci3: [GIANT-LOCKED]
usb3: OHCI version 1.0
usb3: <NEC uPD 9210 USB controller> on ohci3
usb3: USB revision 1.0
uhub3: NEC OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub3: 3 ports with 3 removable, self powered
ohci4: <NEC uPD 9210 USB controller> mem 0x80081000-0x80081fff irq 63 at device 27.1 on pci1
ohci4: [GIANT-LOCKED]
usb4: OHCI version 1.0
usb4: <NEC uPD 9210 USB controller> on ohci4
usb4: USB revision 1.0
uhub4: NEC OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub4: 2 ports with 2 removable, self powered
ehci0: <NEC uPD 720100 USB 2.0 controller> mem 0x80080000-0x800800ff irq 63 at device 27.2 on pci1
ehci0: [GIANT-LOCKED]
usb5: EHCI version 1.0
usb5: companion controllers, 3 ports each: usb3 usb4
usb5: <NEC uPD 720100 USB 2.0 controller> on ehci0
usb5: USB revision 2.0
uhub5: NEC EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub5: 5 ports with 5 removable, self powered
pcib2: <Apple UniNorth Host-PCI bridge> on nexus0
pci2: <PCI bus> on pcib2
ata1: <Intrepid Kauai ATA Controller> mem 0xf5004000-0xf5007fff irq 39 at device 13.0 on pci2
fwohci0: <Apple UniNorth> mem 0xf5000000-0xf5000fff irq 40 at device 14.0 on pci2
fwohci0: OHCI version 1.10 (ROM=0)
fwohci0: No. of Isochronous channels is 8.
fwohci0: EUI64 00:11:24:ff:fe:**:**:**
fwohci0: Phy 1394a available S400, 2 ports.
fwohci0: Link S400, max_rec 2048 bytes.
firewire0: <IEEE1394(FireWire) bus> on fwohci0
fwe0: <Ethernet over FireWire> on firewire0
if_fwe0: Fake Ethernet address: 02:11:24:**:**:**
fwe0: Ethernet address: 02:11:24:**:**:**
fwe0: if_start running deferred for Giant
sbp0: <SBP-2/SCSI over FireWire> on firewire0
fwohci0: Initiate bus reset
fwohci0: node_id=0xc800ffc0, gen=2, CYCLEMASTER mode
firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
firewire0: bus manager 0 (me)
gem0: <Apple GMAC3 Ethernet Adaptor> mem 0xf5200000-0xf53fffff irq 41 at device 15.0 on pci2
miibus0: <MII bus> on gem0
bmtphy0: <BCM5221 10/100baseTX PHY> on miibus0
bmtphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
gem0: 10kB RX FIFO, 4kB TX FIFO
gem0: Ethernet address: 00:11:24:**:**:**
sc0: <System console> on nexus0
sc0: Unknown <16 virtual consoles, flags=0x300>
ukbd0: vendor 0x05ac product 0x1000, rev 2.00/15.86, addr 2, iclass 3/1
ums0: vendor 0x05ac product 0x1000, rev 2.00/15.86, addr 2, iclass 3/1
ums0: 5 buttons.
ums1: Microsoft Microsoft 3-Button Mouse with IntelliEye(TM), rev 1.10/3.00, addr 2, iclass 3/1
ums1: 3 buttons and Z dir.
Timecounters tick every 10.000 msec
md0: Preloaded image </boot/mfsroot> 4194304 bytes at 0x59c450
ad0: 76319MB <HTS721080G9AT00 MC4OA51A> at ata1-master BIOSPIO
acd0: DVDR <MATSHITACD-RW CW-8123/CAD4> at ata1-slave BIOSPIO
Trying to mount root from ufs:/dev/md0
Waiting (max 60 seconds) for system process `vnlru' to stop...done
Waiting (max 60 seconds) for system process `bufdaemon' to stop...done
Waiting (max 60 seconds) for system process `syncer' to stop...
Syncing disks, vnodes remaining...1 0 0 done
All buffers synced.
Uptime: 4m46s
Copyright (c) 1992-2007 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 6.2-RELEASE #0: Sat Jan 13 14:51:58 UTC 2007
    root@xserve.pn.xcllnt.net:/usr/obj/usr/src/sys/GENERIC
WARNING: WITNESS option enabled, expect reduced performance.
Timecounter "decrementer" frequency 41620997 Hz quality 0
cpu0: Motorola PowerPC 7447A revision 1.2, 1416.67 MHz
cpu0: HID0 8450c0bc<EMCP,TBEN,NAP,DPM,ICE,DCE,SGE,BTIC,LRSTK,FOLD,BHT>
real memory  = 527724544 (503 MB)
avail memory = 510291968 (486 MB)
nexus0: <Open Firmware Nexus device>
openpic0: <OpenPIC Interrupt Controller> on nexus0
unin0: <Apple UniNorth System Controller> on nexus0
unin0: Version 210
pcib0: <Apple UniNorth Host-PCI bridge> on nexus0
pci0: <PCI bus> on pcib0
pci0: <display, VGA> at device 16.0 (no driver attached)
pcib1: <Apple UniNorth Host-PCI bridge> on nexus0
pci1: <PCI bus> on pcib1
pci1: <network> at device 18.0 (no driver attached)
macio0: <Intrepid I/O Controller> mem 0x80000000-0x8007ffff at device 23.0 on pci1
ata0 mem 0x20000-0x20fff,0x8800-0x88ff irq 24 on macio0
ohci0: <OHCI (generic) USB controller> irq 0 at device 24.0 on pci1
ohci0: [GIANT-LOCKED]
usb0: OHCI version 1.0, legacy support
usb0: <OHCI (generic) USB controller> on ohci0
usb0: USB revision 1.0
uhub0: Apple OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
ohci1: <OHCI (generic) USB controller> irq 0 at device 25.0 on pci1
ohci1: [GIANT-LOCKED]
usb1: OHCI version 1.0, legacy support
usb1: <OHCI (generic) USB controller> on ohci1
usb1: USB revision 1.0
uhub1: Apple OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
ohci2: <OHCI (generic) USB controller> mem 0x80083000-0x80083fff irq 29 at device 26.0 on pci1
ohci2: [GIANT-LOCKED]
usb2: OHCI version 1.0, legacy support
usb2: <OHCI (generic) USB controller> on ohci2
usb2: USB revision 1.0
uhub2: Apple OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
ohci3: <NEC uPD 9210 USB controller> mem 0x80082000-0x80082fff irq 63 at device 27.0 on pci1
ohci3: [GIANT-LOCKED]
usb3: OHCI version 1.0
usb3: <NEC uPD 9210 USB controller> on ohci3
usb3: USB revision 1.0
uhub3: NEC OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub3: 3 ports with 3 removable, self powered
ohci4: <NEC uPD 9210 USB controller> mem 0x80081000-0x80081fff irq 63 at device 27.1 on pci1
ohci4: [GIANT-LOCKED]
usb4: OHCI version 1.0
usb4: <NEC uPD 9210 USB controller> on ohci4
usb4: USB revision 1.0
uhub4: NEC OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub4: 2 ports with 2 removable, self powered
ehci0: <NEC uPD 720100 USB 2.0 controller> mem 0x80080000-0x800800ff irq 63 at device 27.2 on pci1
ehci0: [GIANT-LOCKED]
usb5: EHCI version 1.0
usb5: companion controllers, 3 ports each: usb3 usb4
usb5: <NEC uPD 720100 USB 2.0 controller> on ehci0
usb5: USB revision 2.0
uhub5: NEC EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub5: 5 ports with 5 removable, self powered
pcib2: <Apple UniNorth Host-PCI bridge> on nexus0
pci2: <PCI bus> on pcib2
ata1: <Intrepid Kauai ATA Controller> mem 0xf5004000-0xf5007fff irq 39 at device 13.0 on pci2
fwohci0: <Apple UniNorth> mem 0xf5000000-0xf5000fff irq 40 at device 14.0 on pci2
fwohci0: OHCI version 1.10 (ROM=0)
fwohci0: No. of Isochronous channels is 8.
fwohci0: EUI64 00:11:24:ff:fe:**:**:**
fwohci0: Phy 1394a available S400, 2 ports.
fwohci0: Link S400, max_rec 2048 bytes.
firewire0: <IEEE1394(FireWire) bus> on fwohci0
fwe0: <Ethernet over FireWire> on firewire0
if_fwe0: Fake Ethernet address: 02:11:24:74:89:16
fwe0: Ethernet address: 02:11:24:74:89:16
fwe0: if_start running deferred for Giant
sbp0: <SBP-2/SCSI over FireWire> on firewire0
fwohci0: Initiate bus reset
fwohci0: node_id=0xc800ffc0, gen=2, CYCLEMASTER mode
firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
firewire0: bus manager 0 (me)
gem0: <Apple GMAC3 Ethernet Adaptor> mem 0xf5200000-0xf53fffff irq 41 at device 15.0 on pci2
miibus0: <MII bus> on gem0
bmtphy0: <BCM5221 10/100baseTX PHY> on miibus0
bmtphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
gem0: 10kB RX FIFO, 4kB TX FIFO
gem0: Ethernet address: 00:11:24:**:**:**
sc0: <System console> on nexus0
sc0: Unknown <16 virtual consoles, flags=0x300>
ukbd0: vendor 0x05ac product 0x1000, rev 2.00/15.86, addr 2, iclass 3/1
ums0: vendor 0x05ac product 0x1000, rev 2.00/15.86, addr 2, iclass 3/1
ums0: 5 buttons.
ums1: Microsoft Microsoft 3-Button Mouse with IntelliEye(TM), rev 1.10/3.00, addr 2, iclass 3/1
ums1: 3 buttons and Z dir.
Timecounters tick every 10.000 msec
ad0: 76319MB <HTS721080G9AT00 MC4OA51A> at ata1-master BIOSPIO
acd0: DVDR <MATSHITACD-RW CW-8123/CAD4> at ata1-slave BIOSPIO
Trying to mount root from ufs:/dev/ad0s3

コメント (5)

elim:

Mac は伝統的にマウスのボタンを押しながら起動する事によってメディアが排出されます。
また、option を押しなが起動するとブートデバイスを選択する画面が出るので、そこでキーボードの eject キーを押すという手もあります。
eject キーが必要なので、キーボードを選ぶのが難点ですが。

elim:

Mac は伝統的にマウスのボタンを押しながら起動する事によってメディアが排出されます。
また、option を押しなが起動するとブートデバイスを選択する画面が出るので、そこでキーボードの eject キーを押すという手もあります。
eject キーが必要なので、キーボードを選ぶのが難点ですが。

elim:

Mac は伝統的にマウスのボタンを押しながら起動する事によってメディアが排出されます。
また、option を押しなが起動するとブートデバイスを選択する画面が出るので、そこでキーボードの eject キーを押すという手もあります。
eject キーが必要なので、キーボードを選ぶのが難点ですが。

elim:

あらま。
コメント時にエラーが出たので再投稿、を繰り返してしまったのですが、全て反映されていたようですね……お目汚し失礼しました。
お手数ですが重複分の削除の程、お願い申し上げます。(削除後はこのコメントも不要でしょうから削除下さって結構です

gari:

初めまして
私もインストールの参考にさせていただきました…(といってももう随分前の話になるのですが…)

もう随分前のことなので解決されているかもしれませんが…

bootの方法ですが、
boot cd:,\boot\loader hd:3
のようにすればお馴染みの起動になるかと思います。

そこでspace押下後にboot -sとすればシングルユーザモードでも起動できるかと思います。

で、ここまでは随分前に私も分かっていました。
今回敢えてこの場に書き込ませていただいているのは、デフォルトでFreeBSD/ppcを立ち上げる方法です。

まず、パーティションですが1つだけMacOSフォーマットのパーティションを作ります。
なので、全体としては、
・MacOSパーティション
・Unixパーティション
となります。(Unixパーティションは複数切っていても構いませんし、パーティションの順番に関してはどのようにしていても構いませんが、pdiskでMacOSパーティションとFreeBSD/ppcのルートパーティションの番号が分かればよいです)

そして、UnixパーティションにFreeBSD/ppcをインストールします。

次に、FreeBSD/ppcのCD(DVD)-ROM内のboot.tbxiとloaderをMacOSパーティションにコピーします。そしてMacOSの起動CDなりで起動してboot.tbxi内の
boot cd:,\boot\loader cd:0
の部分をMacOSパーティションのloader、FreeBSD/ppcのルートパーティションを踏まえて書き換えます。

例えばMacOSパーティションがhd:3、FreeBSD/ppcのルートパーティションがhd:4で、hd:3の直下にboot.tbxiとbootというフォルダがあってbootフォルダの中にloaderがあると仮定するなら、
boot hd:3,\boot\loader hd:4
と書き換えて保存します。

次にOpenFirmwareを起動して、
setenv boot-device hd:3,\boot.tbxi
setenv auto-boot? true
reset-all
とすればFreeBSD/ppcがデフォルトで起動するかと思います。

もし、mixiをされていらっしゃるなら
http://mixi.jp/view_diary.pl?id=1300508519&owner_id=4174557
にも同じようなことをまとめてありますので、よろしければ参考にしてください…

年の瀬になんともお粗末で長々だらだらの文失礼いたしました…

コメントを投稿

About

2007年05月21日 03:40に投稿されたエントリーのページです。

ひとつ前の投稿は「NIC交換とネットワークのベンチマーク」です。

次の投稿は「freebsd-updateでセキュリティアップデート」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。