iOS

提供: ArchWiki
2017年2月11日 (土) 21:41時点におけるKusakata (トーク | 投稿記録)による版 (同期)
ナビゲーションに移動 検索に移動

関連記事

この記事では Arch Linux で iPad, iPod, iPhone を使用する方法を説明します。

デバイスに接続する

GVFS を使用するアプリケーション、ファイルマネージャ (GNOME FilesThunar) あるいはメディアプレイヤー (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-clihandbrake パッケージでインストールできます。

CLI で使うときは、http://trac.handbrake.fr/wiki/CLIGuide にガイドがあります。

Avidemux

avidemux-qt パッケージをインストールしてください。

Avidemux は mp4 ファイルに変換することができます。最大ビットレート @ 700 で動画サイズを 720x480 または 320x240 にすることで上手く動画ファイルを抽出できます。

Mencoder

mplayer パッケージをインストールしてください。

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 でデバイスをマウントすることができるようになります。

ノート: 最新リリースの libgpodgtkpod は iPod Touch や iPhone OS 3.1.x から iOS 4.3.x までサポートしています。制限なく画像や音楽を転送することが可能です。

次のページを参照: [1]

iFuse

ノート: 画面にパスワードをかけている場合、USB インターフェイスからアクセスするにはロックを解除する必要があります。

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 などお好きなアプリを起動してください。

ノート: gtkpod は root あるいは sudo でのみ動作します。起動画面で止まってしまう場合、~/.gtkpod フォルダを削除してみてください。ただしフォルダを削除すると 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
    • コマンドラインのみ。
  • jakpod
    • JakPod は Java で書かれており、音楽や動画ファイルを iPod にコピーすることができます。
    • 第6世代 iPod Nano サポート。
    • jakpodAUR

参照