はこさき処

ただのブログです~

PowerBook G4(12)はまだ現役でいける

みょんな事からPowerBook G4 12インチモデル(867 MHz)を(ソフト的に)復活させることになったので色々メモがてら書き残しておこうと思います.

はじめに言いたいこと

PowerBook G4って様々なモデルがあるんで,フォーラムとかで「オレのG4で動作したよ!」といった記述があっても割と信用できません!
だいたい1.67 GHzとかのってるモデル使ってる人ばかりですぜ…
ということなんで,何が言いたいかというとこの記事に記載されていることがあなたの環境でも再現出来るとは限らない,ということです.

復活の基準と目的

PowerBook G4を復活ってなんだよ」って感じだと思うのでここでの復活を定義しておきます.
まず,入手したPowerBook G4(以下,G4)を起動してみるとMac OSが普通に走ったんで「動くことは動く」状態だったんですが,OSのサポートが切れてるんでセキュリティ的に一応ネットワークに繋ぐのは憚られるし,いまいち使いどころがわからん,という状態でした.このG4を日常生活で使えるようにしたい,と思い「G4上でサポートが継続されているOSを走らせる」ことを目標にしました.
要するに,G4でナウいOSが走れば復活です.

OS(もしくはディストリビューション)の選択

まず最初にある壁がOSの選択です.
そもそもG4はPowerPCなんでそこでOSが結構限られます.
PPC(PowerPC)で動作しそうなOSをひととおり試した結果を表にしてみました.

*ディストリ *結果
Debian 7.8.0 インストールは成功するものの,X11が起動せず(グラフィックドライバが原因?)
FreeBSD 10-RELEASE インストール,起動は成功するものの,pkgがない.X11をmakeするも失敗.CUIでの運用であれば可能か
Ubuntu MATE 14.04 live起動せず.(たぶんグラフィック)
Lubuntu 14.04 live起動せず.公式には起動確認があるのだが…
Lubuntu 12.04 live起動確認.インストール後無事起動

個人的にはDebianが動けばいいなーと思っていたので残念な結果ですが,Lubuntuが動いたのでまあいいでしょう.
注意としてはLubuntu 12.04インストール後に14.04にアップグレードしたら起動しなくなりました.うっかりアップグレードすると再インストールなんで気をつけよう!

BSD系はFreeBSDしか触ったことないのでそれしか試してませんが,海外のフォーラムとかみてたらOpenBSDが一番起動率高そうな感じだったのでBSDがいい人はOpenがいいかも.
あとはFreeBSDの注意点としてはportsツリーの展開に3時間くらいかかったのとpkgがなくて全部ローカルビルドなのでx11とかうまいことビルドできても実時間で半日かかると推測されます.時間に余裕のあるときにやりましょう.

で,結局Lubuntu 12.04を選択しました.
12.04を選択した時点でサポート云々の目標がだいぶぼやけてしまったんですが,既にこの時点でそんなことどうでもよくなるくらい疲れていた,とだけ言わせてください.
まあ現状まだaptが通るんでいいよね…

OSのインストール

インストールに関しては特に変わったことしてないんですが,手順だけ

  1. Lubuntu 12.04のppc用のisoをDLしてDVDに焼く(今回はWindows 8.1の標準機能で焼きました)
  2. G4にDVDをいれて,cを押しながら電源を投入する
  3. あとはインストーラに従うだけ

bootに関してもオプションなしのbootで大丈夫でした.

インストールが終了すると,普通に起動するんですが,自分の環境では起動に10分くらいかかりますし,起動するまで画面まっくらなんで辛抱強くないと使えませんね :>

Wi-Fiの設定をしよう

インストールが成功すればあとはまあもっさりするけど使える,ってな感じになるんですが,ひとつだけ問題がありまして.
G4は12才ということもあってWi-FiWEPしか使えないんですよ.流石にそれは…ってことで最初はLANケーブルひっぱって有線接続とかしてたんですがこれじゃ外出時にネットできないんでなんとかWPAが使えるようにしました.
最初は「USBにさすやつ使えばいいでしょ」くらいに考えていたんですが,「USBにさすやつ使う」ことがどれだけ大変かこのときはまだ知る由もなかったのだ.

USBにさすやつのドライバ使えるようにするやつ

USB接続のWi-Fiアダプタが使えるようになるにはドライバが必要なんですが,このドライバが厄介でした.
最初は最新のUbuntuとかでドライバを導入する方法などを参考に頑張っていたのですが,それがむしろ逆効果で結果的に最初用意していたアダプタと別のアダプタを使うはめになってしまいました.
どういうことかというと,「最新のカーネル用のドライバを導入したけど古いカーネルだと動かなくて削除しようにも削除する方法が分からない」という状況です.
調べれば削除できそうなんですが,別のアダプタで動いちゃったんでもういいです.

以下,たぶん自分がうまくいった方法

ドライバはback-portsに頼る

sourceforge.jp
バックポートって今回色々調べるまで知らなかったんですが,古いカーネル向けのサポートをしてくれている有り難い存在みたいです.めっちゃ助かりました.
で,ドライバのバックポートは以下のWikiを参照すると色々のってたりのってなかったりします.
Driver Backports Wiki

インストール手順としては以下に示すとおりでよくある'make'の手順だし簡単そうなんですが,つまづくとこ多かったんで順に解説していきます.

  1. backports: Linux kernel backportsよりバックポート群をダウンロードする
  2. 'tar Jxvf (filename).tar.xz'で解凍
  3. 解凍したディレクトリに入る
  4. 'make menuconfig'でコンフィグ設定
  5. 'make'
  6. 'sudo make install'
'make'する前準備

必要なパッケージがあるんで'make'の前にインストールしておくと便利です.

sudo apt-get install build-essential libncurses5-dev libncursesw5-dev

自分の場合build-essentialはいれてたんですが,「ncurses.hがないよ」って怒られました.
ncurses.hがないとき

'make config'/'make'が通らない場合

'make config'や'make'で出るエラーを適当にあしらう方法です.
何が正しいかは自分で判断するんだ!

「*.sh 権限がありません」というエラーがでる

同梱されているシェルスクリプトに実行権限が付いてないので権限をつけてあげればOKです.

chmod u+x (filename).sh

エラーが出たスクリプトだけ権限つけてあげれば大丈夫です.

「memcpyの暗黙的な宣言です(エラー)」みたいなエラー

backports-(version)-1/backport-include/linux/device.hで「memcpyないよー」ってエラーが出ることがあります.
そんなときはdevice.hを書きかえちゃえばおkです(*-v・)

自分の環境で試したバックポートはbackports-3.19-rc1-1でしたが,device.hを以下のように書きかえました.

#ifndef __BACKPORT_DEVICE_H
#define __BACKPORT_DEVICE_H
#include <linux/export.h>
#include_next <linux/device.h>

#include <linux/version.h>
#include <linux/string.h> /* これを加える */

要するにmemcpyが宣言されているstring.hの#includeが足りてないだけっぽいのでかきかえたらうまくいきました.本当にこれでいいのかは疑問ですが…

以上で'make'がとおればあとはインストールするだけです.
煽ったわりには文字で書いてみると案外あっさりしてますね….というかbackportsの存在を知るまでが長かったんや…

以上で安心して(?)Wi-Fiが使えるようになったのでセットアップとしては一通り完了としました.

ちなみに使ったアダプタはLogitecの1000円くらいのやつでした(型番忘れました…)

おわり

Linuxが走ってWPAでWi-Fiにも接続できるPowerBook G4はまだまだ現役ですね!