【失敗】Power Mac G4 (Graphite) に Gentoo Linux をインストールする

OpenBSDは問題無かったのですが、利用しようとしているプログラム(Softether)のクライアント版がBSDは対応していないようなので、Linuxで探すとたぶん唯一対応しているディストリビューションとしてGentooが見つかりました。

インストール後に起動できませんでしたが、インストール手順のメモ書きを残しておきます。
※参考サイト: https://wiki.gentoo.org/wiki/Handbook:PPC/Full/Installation/ja

1.CDをダウンロードする
 カレントバージョン:
  http://distfiles.gentoo.org/releases/ppc/current-iso/

 上記からダウンロード後にCDに焼き付けます。

2.CDから起動
 初回は下記動作をしましたが、おかしいので、後で記載の方法を実施。

 CDから起動(起動音直後 C キーを押下)すると grub が起動します。
 grub のプロンプトで Esc キーを押下。
 どのバージョン(CPU)で起動するか選択肢が表示されるので、ppc 32bit を選択する。

 こちらが正常?

 CDから起動(起動音直後 C キーを押下)すると grub が起動します。
 どのバージョン(CPU)で起動するか選択肢が表示されるので、*Boot LiveCD (kernel: ppc32) を選択する。

3.キーボード設定
 # ls /usr/share/keymaps/i386/qwerty
 # loadkeys jp106

4.ネットワークを確認する
 # ifconfig -a

5.ネットワークの設定をする
 GUIで設定。

 # net-setup enP2p32s15f0 ※以降は私の選択
 Is this the interface that you wish to configure? < Yes > [Enter]
 1 Mye network is wired < OK > [Enter]
 1 Use DHCP to auto-detect my network settings < OK > [Enter]

 CUI で設定
 # dhcpcd enP2p32s15f0

 確認。
 # ip addr

6.ディスクを設定する
 ディスクを確認する
 # ls /dev

 パーティションの設定を行う。
  # parted /dev/hdb
  i[Enter]

 単位を変更する
  unit mib[Enter]

 msdos 領域を作成する。
  mkpart primary 1 10[Enter]
  i[Enter]

 /boot 領域を作成する。
  mkpart primary 10 266[Enter]
  i[Enter]

swap領域を作成する。
  mkpart primary 266 65802[Enter]
  i[Enter]

/ 領域を作成する。(面倒なので全部ひとまとめにしておく)
  mkpart primary 65802 -1[Enter]
  i[Enter]

 boot フラグをつける。
  set 1 boot on

 確認する。
  print[Enter]

 設定したデータを書き込みし、parted を終了する。
  quit[Enter]

 パーティション・ファイルシステムを作成する。
  ※以下はデータ用。
  # mkfs.ext2 /dev/hdb2
  # mkfs.ext4 /dev/hdb4
  ※以下は swap 。swapon は有効化。
  # mkswap /dev/hdb3
  # swapon /dev/hdb3

 パーティションをマウントする。
  # mount /dev/hdb4 /mnt/gentoo
  # mount /dev/hdb2 /mnt/gentoo/boot

7.時刻を設定する
 時刻を確認する。
 # date

 時刻を ntp で合わせる。
 # ntpd -q -g

8.stage tarballをインストールする
 wget でダウンロードする。※参考リンク: https://www.gentoo.org/downloads/#other-arches
 # cd /mnt/gentoo
 # wget http://distfiles.gentoo.org/releases/ppc/autobuilds/current-stage3-ppc/stage3-ppc-20190725T101002Z.tar.xz

 解凍する。
 # tar xpvf stage3-ppc-20190725T101002Z.tar.xz --xattrs-include='*.*' --numeric-owner

9.コンパイルオプションを設定する
 gentoo は全てコンパイルしてインストールするディストリビューションなので、コンパイルオプションを設定します。
 -march= または -mtune= 、-O を設定します。
 ※今回は変更なし。

 #nano -w /mnt/gentoo/etc/portage/make.conf
 COMMON_FLAGS="-O2 -mcpu=powerpc -mtune=powerpc -pipe"
 MAKEOPTS="-j2"

10.インストール
 ミラーサーバを選択する。
 # mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
 ※近くのサーバを選択する。(複数選択可)

 リポジトリのディレクトリを作成する。
 # mkdir --parents /mnt/gentoo/etc/portage/repos.conf

 設定ファイルをコピーする。
 ※Portage
 # cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
 ※DNS(Resolv)
 # cp --dereference /etc/resolv.conf /mnt/gentoo/etc/

 必要なファイルシステムをマウントする。
 # mount --types proc proc /mnt/gentoo/proc
 # mount --rbind /sys /mnt/gentoo/sys
 # mount --make-rslave /mnt/gentoo/sys
 # mount --rbind /dev /mnt/gentoo/dev
 # mount --make-rslave /mnt/gentoo/dev

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

 Gentoo ebuildリポジトリを更新する。
 # emerge-webrsync
 # emerge --sync

 ニュースを確認する。
 # eselect news list
 ニュースを読む。
 # eselect news read
 読後のニュースを見れなくする。
 # eselect purge

 プロファイルを選択する。
 # eselect profile list
 # eselect profile set 1
※私は、default/linux/powerpc/ppc32/17.0 (stable) を選択しました。

 @worldを更新する。
 # emerge --ask --update --deep --newuse @world
 ※この後、自動的にビルドが走るため、もの凄く時間かかります。
 ※私は当初 desktop/systemd を選択していたときは3日かかりました。

 本来はこの後にUSEの設定、インストールしてもよいライセンスの設定などをする。
 また、OpenRCからSystemdを利用するように変更する場合もこのタイミングですが、私は実施していません。
 ぶっちゃけPowerPC向けのオプションがわからないので初期値を利用しています。

 タイムゾーンの一覧を表示する。
 # ls /usr/share/zoneinfo
 タイムゾーンを選択する。
 # echo "Asia/Tokyo" > /etc/timezone
 タイムゾーンを sys-libs/timezone-data パッケージに反映する。
 # emerge --config sys-libs/timezone-data

 ロケールを設定する。
 # nano -w /etc/locale.gen
 ※一覧(コメントアウトされている)の中から該当箇所を有効にする。
 ※Ctrl + O で書き込み、Ctrl + X で終了。
 # locale-gen
 ※コメントを外したロケールが生成される。
 # eselect locale list
 # eselect locale set 4
 ※ロケールを選択し、有効にする。

 ロケール設定などを反映するために設定をリロードする。
 # env-update && source /etc/profile && export PS1="(chroot) $PS1"

 カーネルソースをインストールする。
 # emerge --ask sys-kernel/gentoo-sources
 ※カーネルソースを選択してインストールする。
 # ls -l /usr/src/linux
 ※確認する。

 カーネルのビルドオプションを設定する。
 # emerge --ask sys-apps/pciutils
 ※ハードウェア情報を取得できるようにする
 # cd /usr/src/linux
 # make menuconfig
 ※メニューベースの設定画面が起動する。

 必須オプションを有効にする。
 ⇒必須となるデバイスファイルがブートプロセスの初期段階で使えるようにする。
  ヘルプに載ってるオプションがあるとは限らないので手探りで・・・
  ※参考:https://wiki.gentoo.org/wiki/Handbook:PPC/Installation/Kernel/ja
   ⇒devtmpfs サポートは初期状態で有効済みだった。
   ⇒SCSIディスクサポートを有効にした。
    Device Drivers --->
     SCSI device support  --->
      [*] SCSI device support
      [*] SCSI disk support
      [*] SCSI CDROM support
       [*] Enable vendor-specific extensions (for SCSI CDROM)
      [*] SCSI generic support
      [*] SCSI media changer support
      [*] Asynchronous SCSI scanning
   ⇒必要なファイルシステムを選択する。
    File systems --->
     ※ext2, ext3, ext4, Reiserfs, JFS, XFS, Btrfs の全てにチェック。
     DOS/FAT/NT Filesystems  --->
      ※全てにチェック。
     Pseudo filesystems  --->
      ※初期状態で有効済みだった。
   ⇒ SMPサポートを有効にする。
    最上位版以外はSMPは無関係だと思いますが…
    Processor type and features  --->
     [*] Altivec Support
[*] Symmetric multi-processing support
   ⇒USBサポートを有効にする。
    Device Drivers --->
     HID support  --->
      [*] Battery level reporting for HID devices
    USB support  --->
[*] Support for Host-side USB
       [*] xHCI HCD (USB 3.0) support
       [*] EHCI HCD (USB 2.0) support
       [*] OHCI HCD (USB 1.1) support
       [*] UHCI HCD (most Intel and VIA) support
       ※チェックして増える項目すべてにチェックを入れる。
 ※上記で一旦確定する

 環境に合わせた設定を追加。
 ※もしかすると先にしたほうが良いのかもしれませんが。。。
 # make pmac32_defconfig
 # make menuconfig
 ※案の定、設定が一部初期化されていましたが特に変更なしで良さそうでした。

 コンパイル&インストール。
# make && make modules_install
 # cp vmlinux /boot/kernel-4.19.57-gentoo

11.システムを設定する。
 initramfsの設定。
 # emerge --ask sys-kernel/genkernel
 ※genkernelをインストールしない?ため、initramfsは選択しない。

 fstab の設定。
 # nano -w /etc/fstab
 ※下記を追加
 /dev/hdb2    /boot    ext2    defaults    0    2
 /dev/hdb3    none    swap    sw    0    0
 /dev/hdb4    /    ext4    noatime    0    1

 ファームウェアのインストール。
 # emerge --ask sys-kernel/linux-firmware
 ※不要かも?

 ホスト名を設定する。
 今回はDHCPを利用するため未設定。

 ネットワークを設定する。
 # emerge --ask --noreplace net-misc/netifrc
 # nano -w /etc/conf.d/net
  config_enP2p32s15f0="dhcp"

 起動時に自動でネットワーク接続する。
 # cd /etc/init.d
 # ln -s net.lo net.eth0
 # rc-update add net.eth0 default

 hostsファイルを設定する。
 # nano -w /etc/hosts
 ※変更点なし。

 rootパスワードを設定する。
 # passwd

 initとbootを設定する。
 # nano -w /etc/rc.conf
 # nano -w /etc/conf.d/keymaps
 ⇒一覧は ls /usr/share/keymaps/ppc/all/ で取得可能。
  ※日本語は無かった。
 # nano -w /etc/conf.d/hwclock
  clock="local"
 ※ハードウェアクロックがUTCではない場合は上記を設定する

 リモートアクセスを有効にする。
 # rc-update add sshd default

 DHCPクライアントをインストールする。
 # emerge --ask net-misc/dhcpcd

12.boot設定をする。
 yabootを設定する。
 # emerge --ask sys-boot/yaboot
 # exit
 ⇒chrootを解除する。
 # yabootconfig --chroot /mnt/gentoo
 ※ここでyabootが存在しないことが発覚!
  ⇒chrootしてたところにもない!(笑)
 # chroot /mnt/gentoo /bin/bash
 # /usr/sbin/env-update && source /etc/profile
 ※環境を元に戻す

 grubを設定する。
 調べてみるとどうやらyabootがおかしいみたいな情報がありました。
 grubも決して良い状態ではないみたいですが、yabootよりもましかもしれないため導入してみます。
 # emerge --ask sys-boot/grub
 # eselect news read
 # grub-install /dev/hdb
 ※PRep パーティションがないと怒られた。
 # fdisk /dev/hdb
  p
  ※確認
  t
  1
  L
  41
  ※PPC PReP Boot に変更
  w
 # grub-install /dev/hdb
 ※まだ言うか~とみていましたが、もしかしてと思い。。。
 # grub-install /dev/hdb1
 ※初期化されていないというメッセージが出力されました。
  コマンドも記載されていたためその通り実施する。
 # dd if=/dev/zero of=/dev/hdb1
 # grub-install /dev/hdb1
 ※警告が表示されましたが、正常に終了しました!
 # grub-mkconfig -o /boot/grub/grub.cfg

13.再起動する。
 # exit
 # reboot

結局、上記で起動できなかったので Gentoo を利用するのは x86 環境で修行してからかな?(笑)
※結局パーティションが正常にできないのが問題のように見えます。
 何故かというと、他の環境も同じところで躓くから。
 Gentoo の場合はブートオプションが不明のため OpenFirmware と grub の両方のオプションを誰か調べておいてくらないかな(笑)

でゎ★ノシ

コメント

このブログの人気の投稿

【解決】YogaBook が再起動を繰り返す

XCP-ngを触ってみて

Hyper-V上にXCP-ng(xen環境)をインストール