【コラム】

OS X ハッキング!

145 第4世代iPodにLinuxをインストールしてみました(1)

    海上忍  [2005/08/08]

    4日のApple Event、行って参りました。運良く前から3列目に着席できたので、Jobs御大はまさに目と鼻の先。日本の蒸し暑さに閉口しているのではと気掛かりでしたが、颯爽とした印象でしたよ。

    さて、今回はiPodで動作するLinux「iPodLinux」について。リリースされてから久しいが、長らく第4世代iPodは非サポート機種とされていたため、関心はあるがどうにもならない、という読者諸兄も多かったことと思う。それが最近、公式には非サポート扱いであり不安定さは残るものの、動作するようになったのだ。その報告方々、iPodLinuxのレポートを数回に分けてお送りしたいと思う。なお、第4世代iPodの定義はこちらの「Fourth Generation / U2」に従うので、念のため。

    インストールの前に

    第4世代iPodにiPodLinuxをインストールする手順は、基本的には第1~3世代と同じだが、いくつかの相違点がある。すなわち、カーネルイメージとpodzilla(iPod向けのユーザインタフェイス)、ipodloader(ファームウェア再構成ツール)には最新のものを利用し、起動スクリプトに多少の変更を加えなければならない。

    なお、前述したとおり第4世代iPodは公式にはサポートされていない。ファームウェアの更新という"禁じ手"も伴うことから、筆者およびMYCOM PC WEB編集部はデータの消失やiPodの動作不良には一切責任を持たないため、at your own riskで臨んでほしい。

    ファイルの入手

    まずは、iPodLinuxのWebサイトにアクセスし、「File」リンクからMac OS X Arm-elf cross compiler(arm_elf_stl.pkg.tar)とiPod Linux Kernel(uclinux-2.4.24-ipod2.tar.gz)、iPod Linux Userland(ipod_fs_040403.tar.gz)の3つをダウンロード、さらに最新の日付のカーネルイメージとpodzillaの最新版をこちらからダウンロードし、すべてのファイルを適当なディレクトリ(以下、iPodLinux作業領域)に展開してほしい。そのうちMac OS X Arm-elf cross compilerについては、Installer.appを利用してインストールを済ませておくこと。

    ファームウェアを再構成するための「ipodloader」も必要だ。iPodLinuxのWebサイトに掲載されているものはバージョンが古く、第4世代iPodには利用できないため、以下のとおりコマンドを実行してCVS版のソースからバイナリを生成してほしい。なお、コマンドの実行後、iPodLinux作業領域に「make_fw」と「loader.bin」が作成されていれば、とりあえず準備OKだ。

    $ cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipodlinux login
    $ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ipodlinux co -P tools
    $ cd tools/ipodloader
    $ make ; cd ../..
    $ cp tools/ipodloader/make_fw .
    $ cp tools/ipodloader/loader.bin .

    ファームウェアのバックアップ

    HFS+でフォーマットされた第4世代iPodの場合、約32MB確保された第3パーティションがiPodLinuxの領域として使用される。Terminalからdiskutilコマンドを実行し、自分のiPodのデバイス名を確認したあと(以下のコマンド実行例では「disk2s2」)、ddコマンドを利用してバックアップ(以下のコマンド実行例では「ipod_original_firmware」)を作成、いつでもオリジナルの状態に復元できるようにしておこう。

    $ diskutil list

    /dev/disk2
       #:                   type name       size      identifier
       0: Apple_partition_scheme           *18.6 GB  disk2
       1:    Apple_partition_map            31.0 KB   disk2s1
       2:             Apple_MDFW            32.0 MB   disk2s2
       3:              Apple_HFS  iPod      18.6 GB   disk2s3

    $ dd if=/dev/disk2s2 of=ipod_original_firmware

    注:オリジナルのファームウェアを復元する場合は、「dd if=ipod_original_firmware of=/dev/disk2s2」を実行すること。

    いざインストール

    上記の作業を終えたら、iPodLinux作業領域をカレントディレクトリとした状態から次のとおりコマンドを実行する。ここでは、オリジナルのファームウェアから起動に必要なバイナリ(apple.bin)を取り出し、それをiPodLinuxのカーネル(日付-kernel.bin)とブートローダ(loader.bin)で再構成した「newloader.bin」を生成、ddコマンドでiPodに書き戻したあと、最新版のpodzillaをiPodのsbinディレクトリへコピー、パーミッションの設定を変更してからiPodLinuxのユーザ環境(ipod_fs_040403.tar.gz)とカーネルモジュール(uclinux-2.4.24-ipod2.tar.gz)をiPodに展開する、といった作業を行っている。なお、iPodのパスの「YourPod」部分は各自異なるため、dfコマンドなどで確認しておくこと。

    iPodの起動時に参照される設定ファイル「/etc/rc」と「/etc/inittab」も編集が必要だ。ここにファイルを用意したので、そのままコピーすれば確実だろう。

    $ ./make_fw -3 -o apple.bin -e 0 ipod_original_firmware
    $ ./make_fw -3 -o newloader.bin -i apple.bin -l 2005-08-07-kernel.bin loader.bin
    $ dd if=newloader.bin of=/dev/disk2s2
    $ cp 2005-08-07-podzilla /Volumes/YourPod/sbin/podzilla
    $ chmod +x /Volumes/YourPod/sbin/podzilla
    $ tar zxf ipod_fs_040403.tar.gz -C /Volumes/YourPod
    $ tar xzf uclinux-2.4.24-ipod2.tar.gz -C /Volumes/YourPod

    これで、iPodを取り外したあとに再起動を実行(MENUと中央ボタンを4秒以上押下)、Appleロゴが表示されている間に巻き戻しボタンを押し続けると、ペンギンのロゴが現れ、iPodLinuxの起動が始まるはず。紙幅が尽きたので、カスタマイズなど具体的な活用方法については次回お届けする予定だ。

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン