はるかぜ

気ままてきとう雑記。 本HPは左のHP紹介欄バナーから。

メモ:PowerBook G4にGentoo Linuxを導入する

※完全に個人的なメモですので、
記事の余談部分以外は記事っぽく書けません(汗)
Windowsユーザなので、用語間違っている可能性大です、すみません。
早速メモから…

■ Minimal Installation CDのダウンロード

■ CDブート
電源を投入し、Cキーを押しっぱなしにしてCDからブートする。
GRUBメニューで、PPC32を選択して[E]キーを押下する。
linux…の最後に、

nouveaufb:off nouveau.modeset=0


を追記して、[Control]+[X]で実行する。
ブート出来たら、net-setupを使ってネットワークに接続する。
pingで接続確認。
loadkeys jp106で、日本語キーボードレイアウトを読み込む。

■ 区画作成
mac-fdiskで区画を作成する

livecd ~ # mac-fdisk /dev/sda
Command (? for help): b
First block: 2p

Command (? for help): c
First block: 3p
Length in blocks: 262144 <- 128MB確保
Name of partition: boot

Command (? for help): c
First block: 4p
Length in blocks: 8388608 <- 4096MB確保
Name of partition: swap

Command (? for help): c
First block: 5p
Length in blocks: 5p <-残りの区画全て確保
Name of partition: root

Command (? for help): w
Writing the map destroys what was there before. Is that okay? [n/y]: y
The partition table has been altered!

Command (? for help): q


▼ できた区画をフォーマットする。 ついでにスワップを有効に

livecd ~ # mkfs.ext2 /dev/sda3
livecd ~ # mkfs.ext4 /dev/sda5
livecd ~ # mkswap /dev/sda4
livecd ~ # swapon /dev/sda4



■ stage tarballのダウンロードと展開

livecd ~ # mount /dev/sda5 /mnt/gentoo
livecd ~ # cd /mnt/gentoo

livecd /mnt/gentoo # links https://www.gentoo.org/downloads/mirrors/
livecd /mnt/gentoo # tar xpvf stage3-*.tar.bz2 --xattrs-include='*.*' --numeric-owner



コンパイルオプションの設定、ほか
/mnt/gentoo/etc/portage/make.confを、
/usr/share/portage/config/make.conf.exampleを参考に編集する。
うちのPowerBook G4だと(USEフラグは勉強中…):

CFLAGS="-O2 -pipe -mcpu=G4 -maltivec -mabi=altivec -fno-strict-aliasing"
MAKEOPTS="-j1"
NINJAOPTS="-j1"
L10N="ja"
CPU_FLAGS_PPC="altivec"
ACCEPT_KEYWORDS="ppc"
VIDEO_CARDS="nv"

 

livecd /mnt/gentoo # mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
livecd /mnt/gentoo # mkdir --parents /mnt/gentoo/etc/portage/repos.conf
livecd /mnt/gentoo # cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
livecd /mnt/gentoo # cp --dereference /etc/resolv.conf /mnt/gentoo/etc/



■ 「change root」する

livecd /mnt/gentoo # mount --types proc /proc /mnt/gentoo/proc
livecd /mnt/gentoo # mount --rbind /sys /mnt/gentoo/sys
livecd /mnt/gentoo # mount --make-rslave /mnt/gentoo/sys
livecd /mnt/gentoo # mount --rbind /dev /mnt/gentoo/dev
livecd /mnt/gentoo # mount --make-rslave /mnt/gentoo/dev

livecd /mnt/gentoo # chroot /mnt/gentoo /bin/bash
livecd / # source /etc/profile
livecd / # export PS1="(chroot) ${PS1}"

(chroot) livecd / # mount /dev/sda3 /boot



■ 粛々とハンドブックのとおりに進めていく

(chroot) livecd / # emerge-webrsync
(chroot) livecd / # eselect profile list
(chroot) livecd / # eselect profile set *

(chroot) livecd / # emerge -avuDN @world

(chroot) livecd / # echo "Asia/Tokyo" > /etc/timezone
(chroot) livecd / # emerge --config sys-libs/timezone-data



■ /etc/locale.genの編集

en_US ISO-8859-1
en_US.UTF-8 UTF-8
ja_JP.EUC-JP EUC-JP
ja_JP.UTF-8 UTF-8
ja_JP EUC-JP

 

(chroot) livecd / # locale-gen

(chrootlivecd / # env-update && source /etc/profile && export PS1="(chroot) ${PS1}"



Gentoo-soucesの導入

(chroot) livecd / # emerge -a sys-kernel/gentoo-sources



■ fstabの編集
▼ /etc/fstab(UUIDで指定するほうが良いと思います)

/dev/sda3   /boot   ext2   defaults,noatime   0   2
/dev/sda4   none    swap   sw                 0   0
/dev/sda5   /       ext4   noatime            0   1



カーネル設定
(どうもgenkernelでは「Invalid memory access」になってブートできない…)

(chroot) livecd / # cd /usr/src/linux
(chroot) livecd /usr/src/linux # make pmac32_defconfig
(chroot) livecd /usr/src/linux # make menuconfig
(chroot) livecd /usr/src/linux # make && make modules_install
(chroot) livecd /usr/src/linux # make install

(chroot) livecd /usr/src/linux # cd



■ ネットワーク関連の編集
▼ /etc/conf.d/hostname

hostname="PC名"


▼ /etc/conf.d/net

dns_domain_lo="ドメイン名"


▼ /etc/hosts



■ rootパスワードの設定

(chroot) livecd / # passwd



■ キーボードレイアウト設定

(chroot) livecd / # nano -w /etc/conf.d/keymaps



■ 追加で導入するもの

(chrootlivecd / # emerge -a app-admin/sysklogd sys-process/cronie sys-apps/mlocate
(chroot) livecd / # rc-update add sysklogd default
(chroot) livecd / # rc-update add cronie default
(chroot) livecd / # emerge -a sys-fs/dosfstools sys-fs/ntfs3g networkmanager
(chroot) livecd / # rc-update add NetworkManager default
(chroot) livecd / # rc-update add elogind boot



ブートローダ関係の作業

(chrootlivecd / # emerge -a sys-boot/grub sys-fs/hfsutils sys-apps/ibm-powerpc-utils
(chroot) livecd / # mkdir /boot/NWBB


▼ /boot/NWBB/grub-initial.cfg の作成

search --no-floppy --fs-uuid --set=root UUID(←/bootのUUID)
set prefix=($root)/grub
configfile /grub/grub.cfg


grubを/bootに導入する

(chroot) livecd / # grub-install --target=powerpc-ieee1275 --no-nvram
(chroot) livecd / # grub-mkconfig -o /boot/grub/grub.cfg


▼ /boot/NWBB/grub_mod-minimal.list の作成

search_fs_uuid.mod search_fs_file.mod search_label.mod search.mod
part_apple.mod
fshelp.mod ext2.mod
halt.mod reboot.mod echo.mod


grubのブートイメージを作る

(chrootlivecd / # grub-mkimage --prefix=/boot/grub --format=powerpc-ieee1275 --config=/boot/NWBB/grub-initial.cfg --output=/boot/NWBB/grub.img `cat /boot/NWBB/grub_mod-minimal.list`


▼ /boot/NWBB/ofboot.b の作成

<CHRP-BOOT>
<COMPATIBLE>
MacRISC MacRISC3 MacRISC4
</COMPATIBLE>
<DESCRIPTION>
GRand Unified Bootloader
</DESCRIPTION>
<OS-NAME>
Linux
</OS-NAME>
<BOOT-SCRIPT>
boot hd:2,\grub\grub.img
</BOOT-SCRIPT>
</CHRP-BOOT>


▼ 作ったファイルをApple bootstrapに入れ込む

(chroot) livecd / # hformat -l "NewWorld Bootblock" /dev/sda2
(chroot) livecd / # hmount /dev/sda2
(chroot) livecd / # hmkdir :grub
(chroot) livecd / # hcopy -r /boot/NWBB/grub-initial.cfg :grub:grub.cfg
(chroot) livecd / # hcopy -r /boot/NWBB/grub.img :grub:grub.img
(chroot) livecd / # hcopy -r /boot/NWBB/ofboot.b :grub:ofboot.b
(chroot) livecd / # hattrib -c UNIX -t tbxi :grub:ofboot.b
(chroot) livecd / # hattrib -b :grub
(chroot) livecd / # humount



■ 再起動

(chroot) livecd / # exit
livecd /mnt/gentoo # cd
livecd ~ # umount -l /mnt/gentoo/dev/{shm,pts,}
livecd ~ # umount -R /mnt/gentoo
livecd ~ # reboot


メモここまで。
------------
 以下余談:

 こんな出来損ないのエントリを書いてから早や1年2ヶ月…
月日が経つのは早いものです。
そもそも最初はPowerBook G4に導入しようとしていたのですが、
結局つぶやき通り現行のMinimal Installation CDからはブートできず
(ブートメディアを見失って止まる)、
amd64版の導入でウォーミングアップをしてから、
ずっと更新の止まっていた20140713版を使って導入を試みたのでした。
ただいろいろ難点が…
・HDDが/dev/sdaではなく/dev/hdaだったりしてややこしい
・ワイヤレスネットワークがWEP鍵にしか対応していない
・版数が古すぎてEmergeするときにエラー吐きまくる
・そもそもハンドブックもx86版の横流しが多くて区画が合っていない
極めつけはYabootの設定がどうしてもうまくいかずに
PowerBook G4への導入は頓挫したのでした。
打ちのめされたのなんのってんの。

 先月終りごろに、ようやくやる気が起きてきたので、
もう一度手を付けてみることにしました。
最新版のISOをダウンロードしてブート…お、
ちゃんと進むやん!
…って思ったのも束の間、
途中で画面が乱れて真っ暗になり、そこから進まない。
ブート時に新たに「scandelay=10」というのが追加されていたので、
去年の版でこれを追加すればブートするのでは…と思ったら、
したけど上に同じ。 なんでやねん。
画面が乱れるということで試した「video=ofonly」もだめだし、
もうデバイスを読み込ませるのはやめよう…
ということで、udevを開始させないようブートして、
ネットワークドライバは手動で読み込ませました。

 区画切るという早い段階で、ブートローダのことを考えにゃならんっていう。
…そーいえば、CDはGRUBやん。
ハンドブックはYabootなんですけど…
GRUBのほうがやりやすかったりせんのだろか。
調べたら一応出てきたものの、
区画の切方がさっぱり見えてこない。 読解力のなさよ…
あれや…MacOSとのデュアルブート想定してるだろこれ。
現行マシンじゃないし、Linuxだけでいいんだ儂は…
結局記事に穴が開くんじゃないかってくらいゆっくり読んで、
なんとかブートも成功したのでした。

 今はデスクトップ環境に頭を悩ませています…
PPC向けの環境がXfceくらいしかない…しかもなんかCPU100%で張り付くし。
ビデオドライバもよくわからんし、
この辺りは要勉強ですが…資料なさすぎ…。


※追記(R4.4.13)
genkernelだと、ブート時にエラーが出て起動できませんでした。
PowerBook G4だと、make ppc32_defconfigしないと駄目なようです。
そのあとにgenkernelしても意味がないので、
すなおに手動で設定せねばならんようです。
めっちゃ素敵なファイルを公開しているところを見つけたので、
ありがたーく拝借したのですが、
ATIのグラフィックが搭載されているモデルは分かりませんが、
NVIDIAのモデルは、Minimal CDブートと同じ症状が発生しました。
グラフィクスドライバのNouveauを外すと使えるので、
とりあえずそれで進めてから、あとで考えることに…。

※追記(R4.4.23)
CDブート時に、オプションでnouveauを無効にすることで、
そのまま起動できるようになるようです。
てっきりRadeonだけなのかと思っていました…。
あと、Xorgのビデオドライバごちゃごちゃやっていたら、
Xfceも上がらなくなりました。
設定ファイルやログを見て調べてもさっぱり。
旧いハード、しかも少数派と来れば、ほんっと資料がないですね…。