iOS
この記事では Arch Linux で iPad, iPod, iPhone を使用する方法を説明します。
目次
デバイスに接続する
GVFS を使用するアプリケーション、ファイルマネージャ (GNOME Files や Thunar) あるいはメディアプレイヤー (Rhythmbox) は gvfs-afc パッケージをインストールすることで iOS デバイスを扱えるようになります。パッケージをインストールしたらファイルマネージャやアプリケーションを再起動する必要があります。
iPod のマウントポイントの変更
伝統的に iPod は vfat ファイルシステム (稀に hfsplus
) が入っている普通の USB ストレージデバイスと同じようにアクセスすることができます。詳しい説明はUSB ストレージデバイスの記事を見て下さい。
udisks2 が動作している場合、接続された iPod は /run/media/$USER/iPod name
にマウントされます。
iPod のボリュームラベルが長くて、空白や大文字・小文字が混じっていると、不便なことがあります。dosfstools パッケージの dosfslabel
を使うことでボリュームを簡単に好都合なように変更することが可能です:
- 現在のボリュームラベルを取得・確認:
# dosfslabel /dev/sdXY
- 新しいボリュームラベルを設定:
# dosfslabel /dev/sdXY ArchPod
- デバイスをアンマウント:
$ udisksctl unmount -b /dev/sdXY
- もう一度マウントしなおす:
$ udisksctl mount -b /dev/sdXY
/dev/sdxx
は iPod の現在のデバイスノードに置き換えてください。
動画や写真のインポート
通常は <mountpoint>/DCIM/100APPLE
で動画と写真の両方が見つかります。
HTML5 動画
ffmpeg2theora を使って MOV ファイルを OGV などの HTML5 動画フォーマットに変換したいということもあるでしょう。作成日のメタデータは変換された動画に含まれないので、以下のようなスクリプトを使う必要があります:
#!/usr/bin/sh find -name "*.MOV" | while read mov do d=$(gst-discoverer-1.0 -v $mov | awk '/datetime:/{print $2}' | tr -d \") base=${mov%.*} if test -f $base.ogv then touch -d${d} $base.ogv ls -l $base.ogv else echo $base.ogv missing fi done
ファイルの日付と時刻が変わらないように cp -a
あるいは rsync -t
を使ってください。
写真をインポートして削除する
<mountpoint>/DCIM/100APPLE
から写真や動画を移動することはできますが、古いデータベースを削除して "Camera Roll" データベースを再作成させる必要があります。
# rm Photos* com.apple.photos.caches_metadata.plist
iOS 用に動画を変換
Handbrake
Handbrake は様々なバージョンの iPod 用のプリセットが入っている気の利いたツールです。CLI と GTK 版がそれぞれ handbrake-cli と handbrake パッケージでインストールできます。
CLI で使うときは、http://trac.handbrake.fr/wiki/CLIGuide にガイドがあります。
Avidemux
avidemux-qt パッケージをインストールしてください。
Avidemux は mp4 ファイルに変換することができます。最大ビットレート @ 700 で動画サイズを 720x480 または 320x240 にすることで上手く動画ファイルを抽出できます。
Mencoder
Mencoder の設定は色々あり、iPod で再生できる動画ファイルを作り上げることができます。man mencoder
を参照してください。MPlayer のオプションがエンコーディングにも影響します。
基本的なガイドは MEncoder を見てください。
iPhone/iPod Touch に対応する動画をエンコードするコマンドの例:
$ mencoder INPUT -o output.mp4 \ -vf scale=480:-10,harddup \ -oac faac -faacopts mpeg=4:object=2:raw:br=128 \ -of lavf -lavfopts format=mp4 \ -ovc x264 -x264encopts nocabac:level_idc=30:bframes=0
FFMpeg
公式リポジトリから ffmpeg パッケージをインストールしてください。
様々な設定をサポートしているエンコーダーです。第5世代 iPod 用にエンコードするコマンドの例:
$ ffmpeg -vcodec xvid -b 300 -qmin 3 -qmax 5 -bufsize 4096 \ -g 300 -acodec aac -ab 96 -i INPUT -s 320x240 \ -aspect 4:3 output.mp4
iPod Touch/iPhone 対応の動画を出力する例:
$ ffmpeg -f mp4 -vcodec mpeg4 -maxrate 1000 -b 700 -qmin 3 -qmax 5\ -bufsize 4096 -g 300 -acodec aac -ab 192 -s 480×320 -aspect 4:3 -i INPUT output.mp4
iPhone/iPod Touch
デフォルトでは、iPhone も iPod Touch も USB によるマスストレージ機能が存在しませんが、ifuse という名前の FUSE ファイルシステムを使うことで、通常どおりに、USB でデバイスをマウントすることができるようになります。
次のページを参照: [1]
iFuse
ifuse, usbmuxd, libplist パッケージをインストールしてください。
その後 modprobe fuse
を実行して fuse モジュールをロードしてください。/etc/modules-load.d/
から既にロードしている場合はロードは不要です。
以下のコマンドでデバイスがマウントできます (<mountpoint> はマウントしたいディレクトリに置き換えてください)。接続する前にロックを解除するようにしてください。ロックがかかっていると認識されません。
# ifuse <mountpoint>
マウントしたら、適当な同期ソフトウェアを使ってマウントポイントを指定することでファイルを転送できるはずです。
デバイスをアンマウントするには:
# umount <mountpoint>
iPhone OS 3.x と 4.x
libplist, libimobiledevice, libgpod, usbmuxd, ifuse パッケージをインストールしてください。
modprobe fuse
を実行して fuse モジュールがロードされていることを確認してください。そして、ユーザーを usbmux グループに追加してください。
root で以下のコマンドを実行:
# usbmuxd
以下のようなコマンドでデバイスをマウントできるはずです:
$ ifuse ~/ipod
ディレクトリはあらかじめ作成してユーザーからアクセスできるようにしてください。
デバイスをマウントしたら iTunes_Control/Device
ディレクトリを作成してください。そして、UUID を取得してください。usbmuxd の syslog から確認するか、以下のコマンドで確認できます:
$ lsusb -v | egrep "iSerial.*[a-f0-9]{40}"
40文字の UUID が表示されます。確認できたら、以下のコマンドを実行してください:
$ ipod-read-sysinfo-extended <uuid> <mountpoint>.
上記のコマンドで iTunes_Control/Device/SysInfoExtended
という名前のファイルが作成されます。
設定できたら、gtkpod などお好きなアプリを起動してください。
HashInfo ファイルの生成
iTunes を使ってデバイスを同期したことがある場合、HashInfo ファイルが存在しないというエラーメッセージが表示されます。MacOS か Windows の iTunes から HashInfo ファイルを作成 (iPod を接続) することで問題は解決できます。もしくは、自分でファイルを作成する方法もあります。手順は こちらのウェブサイト に記載があります。
データベースの難読化解除
ファームウェアバージョン 2.0 から、Apple は音楽データベースを難読化しています。最近のファームウェアを使っている場合、/System/Library/Lockdown/Checkpoint.xml
ファイルを修正することで、昔の、簡単に読むことができるデータベースを有効にできます。以下の行を:
<key>DBVersion</key> <integer>4</integer>
次のように置き換えてください:
<key>DBVersion</key> <integer>2</integer>
その後、デバイスを再起動してください。
"ERROR: Unsupported checksum type '0' in cbk file generation!" と表示されて同期が失敗する場合、上記の値を4にしておく必要があります。libgpod は ハッシュ化されたデータベースを使うようです 。
同期
iPod に対応しているお好きなプログラムを使って下さい。アプリケーションの設定はそれぞれ別ですが、大抵は、マウントポイントをプログラムに指定することで上手く動作するはずです。
同期後は、ipod-touch-umount
(または iphone-umount
) を実行して SSHFS ファイルシステムをアンマウントしてからデバイス上の MobileMusicPlayer
プロセスを再起動させることで、新しい音楽データベースが読み込まれます。
iFuse を使用している場合は、次を入力するだけです:
# umount <mountpoint>
MobileMusicPlayer プロセスをリロードする必要があります。デバイスが jailbreak されていない場合、再起動でスタックします。
iPod Classic/Nano3g
iPod を設定して FireWire ID を libgpod から探知できるようにする必要があります。手動で FireWire ID を取得してください。
- 読み書き可能なマウントポイントとして iPod をマウントしてください。以下の例では
/mnt/ipod
を使います。
- 以下のコマンドを実行してシリアル番号を確認してください:
# lsusb -v | grep -i Serial
上記のコマンドで 00A1234567891231
のような16文字の文字列が出力されます (コロンやハイフンは含まれません)。
- 番号をメモしたら
/mnt/ipod/iPod_Control/Device/SysInfo
を作成・編集してください。ファイルに以下の行を追加します (ffffffffffffffff はメモした16桁の文字列に置き換えてください、最初の 0x は消してはいけません):
FirewireGuid: 0xffffffffffffffff
これで Amarok や gtkpod で iPod が管理できるようになります。
第1・2世代 iPod Shuffle
("巨大な" iPod に比べて) Shuffle の構造は単純なため、他の USB フラッシュ MP3 プレイヤーと同じように扱うことができます。iPod のルートディレクトリには rebuild_db.py ファイルを保存する必要があります。MP3 ファイルを iPod Shuffle にコピーしたら (サブフォルダも使えます)、以下のコマンドを実行してください [2]:
$ python2 /path/to/rebuild_db.py
第4世代 iPod Shuffle
Linux で iPod Shuffle の第4世代を使うには Python ベースのコマンドラインツールである ipod-shuffle-4gAUR を使用します。高度なボイスオーバーやプレイリストの(自動)作成なども対応しています。
iPod 管理アプリ
- Rhythmbox
- GTK インターフェイス (GNOME)。
- 公式の GNOME プロジェクトに入っています。
- 高速で軽量なインターフェイス。
- コンピュータと iPod の音楽を管理。
- ポッドキャストやビデオキャプチャのダウンロードやストリーミング。
- 曲やポッドキャストの再生待ち。
- Last.fm の統合。
- インターネットラジオの視聴。
- Jamendo と Magnatune のサポート。
- 音楽 CD の書き込み。
- アルバムカバーの表示。
- 歌詞の表示。
- DAAP 共有。
- Banshee
- GTK インターフェイス (GNOME)。
- Mono を使っているため、やや重く、rhythmbox よりもリソースを消費します。
- デバイスの同期: 音楽や動画を Android, iPod などに同期、あるいはメディアをインポート。
- ポッドキャスト: ポッドキャストやビデオキャストをダウンロード・ストリーミング。
- プレイキュー: 曲や動画、ポッドキャストを再生待ちに追加して自動で DJ。
- シャッフルモード: アーティストやアルバム、レーティング、あるいは曲の雰囲気などでシャッフル (あるいは Auto DJ)。
- アルバムアート: 自動的にアートワークを取得。
- 強力な検索機能、スマートプレイリスト: 聞きたい曲をすぐに・正確に検索。
- 動画のサポート: Banshee の機能は全て動画でも活用できる。
- Yamipod
- GTK インターフェイス (GNOME)。
- iPod の音楽を管理するだけの超軽量なアプリケーション (コンピュータの音楽は管理できない)。
- 簡単なレーティングの編集。
- PC から iPod に同期。
- ニュース RSS やポッドキャストを iPod にアップロード。
- Last.fm サポート。
- playlist サポート。
- gtkpod
- GTK インターフェイス (GNOME)
- 既存の iTunesDB を読み込む (iPod の再生回数や評価、On-The-Go プレイリストなどをインポート)。
- MP3, WAV, M4A (保護されてない AAC), M4B (オーディオブック), ポッドキャスト, 動画ファイル (単体ファイル, ディレクトリ, プレイリスト) を iPod に追加。'bashpodder' や 'gpodder' などのポッドキャストをダウンロードするにはサードパーティの製品が必要です。
- カバーアートの表示・追加・修正。
- ローカルデータベースに曲を全て追加して、アルバムやアーティスト、あるいはジャンルでハードディスクの中身を閲覧。トラックは iPod/Shuffle に簡単にドラッグできます。
- プレイリストの作成・修正、スマートプレイリスト。
- ID3 タグのエンコーディング文字セットを選択できます。デフォルトではロケールの設定が使われます。
- テンプレートを指定することでファイル名からタグ情報を取得 (アーティスト, アルバム, 曲名...)。
- 曲を追加する際に重複を検出 (任意)。
- iPod からトラックを削除・エクスポート。
- ID3 タグの修正 -- 元のファイルでも変更されます (任意)。
- ファイルの ID3 タグを戻す (元のファイルのタグを変更した場合)。
- ディレクトリの同期。
- トラックの音量のノーマライゼーション (mp3gain や replay-gain タグを使用)。
- iTunesDB を更新して iPod に追加した曲を書き出す。
- オフラインでも動作し後から iPod とプレイリストや曲を同期できます。
- korganizer/kaddressbook/Thunderbird/evocalendar/evolution/webcalendar... などのデータを iPod にエクスポート (他のプログラムのスクリプトを追加できます)。
- Floola
- GTK インターフェイス (GNOME)。
- Amarok
- KDE/qt インターフェイス。
- qPod
- KDE/qt インターフェイス。
- GNUpod のフロントエンド。
- GNUpod
- コマンドラインのみ。