今QuestのBeatsaberの譜面をPCから弄るためのソフトを作っているが、そこでQuestのファイルシステムにアクセスする必要があったので色々と検討した。
1. USBで繋ぐ
- メリット
- 簡単
- デメリット
- MTPという規格でマウントされるためドライブを割り当てることができない
- 有線
最初はこれでいいかと思ったがMTPではプログラムからファイルにアクセスするようなことはできないためこれは没。
2. primitive-ftpd(+rclone)を使う
- メリット
- 無線
- アプリをインストールするだけで簡単
- デメリット
- 接続がすごく不安定
良い感じだったが設定がとにかく切れまくる。下でやったtermuxの電源管理設定をやればマシになるかもしれない。
また、FTPはファイアウォールの関係なのかうまく繋がらないのと、Android Storage Frameworkを使うと非常に遅くなる。使うときはSFTPでLegacy filesystemにしよう。
3. termux (+rclone)を使う (採用)
- メリット
- 色んなサーバーを起動できる(ftp, sftp, webdav, sambaなど)
- primitive-ftpdよりは安定している…気がする
- デメリット
- 多少設定がめんどい
- やっぱり接続が不安定(だが、prim-ftpdとは違い、スリープを解除させれば大体復帰できる)
設定方法
termux+rcloneでマウントする方法のメモ
1. スリープ防止設定
- アプリ設定からtermuxを選択し、電力の使用を制限しないにする。
- termuxに画面に重ねて表示するを許可(効果不明)
2. termuxのセットアップ
f-droidかなんかからtermuxをインストールして以下を実行。
3. sshセットアップ
PCから操作できると便利。また、sshをセットアップすれば自動でsftpが使えるようになる。
次に、sshクライアント側で以下を実行
パスワードは上で指定したもの。
4. rcloneでマウント
事前にrcloneとwinfspをインストールしておく。
このコマンドで先程のSSHと同様の接続情報でSFTPを設定する。
これでマウントできる。
ssh接続切れ/遅延対策
androidの電源管理以外にも対策がある
1. sshd_configの編集
上のコマンドでssh_configを編集し
を追加することで切断を防止できる。
2. termux-wake-lockの実行
最初にsshを繋ぐと明らかにラグい。どうやらwifiの電源管理のせいでこんなことになっているようだが
を実行することで、かなりラグを少なくできる。
必要なくなったら
必要なくなったら
を実行して元に戻すことができる。
pingを実行してみれば差は歴然。
WakeLock前↓
WakeLock後↓