Termuxというアプリを使って、余ったandroidスマホでrfriendsを動かしてラジオサーバにしようというものです。もちろん余ってないものでもいいのですが普段使いのものとは分けたほうがいいとおもいます。また、スマホのみで完結することを目標としています。
なお、これは以下の記事の改定版です。
[Termux] 余ったandroidスマホでラジオ録音サーバを作ろう (四版)
・rfriends2 -> rfriends3
・sambaの削除
初版:2021/01/19
改版:2023/08/01
1.準備
以下のものが必要になります。
スマホがスリープ状態になるとアクセスが遅くなります。スリープ時間を少し長めに設定してください。「開発者モード」を有効にしてスリープしない設定にするとより良いとおもいます。
androidOS7.0未満では動作しません。
1.2 Termux
1) F-droidのインストール
注意) F-Droidは、Android用のFOSS(フリーオープンソースソフトウェア)アプリケーションの ストアです。F-droidに不安を感じる方はインストールしないでください。 スマホで「設定」-「セキュリティ」-「提供元不明のアプリ」をONにし、 https://f-droid.org/ja/ よりF-droid.apkをダウンロードし、インストールする。
2) Termuxのインストール
f-droidを起動し、termuxを検索してインストールする。2023/07/18のバージョンは0.118(118)です。2022/01/11から改定されていません。
1.3 ファイルマネージャー
GooglePlayよりインストールしてください。 ファイルマネージャーはなんでもかまいませんが、 アイコンに「F」が入っているFile Manager Plusが提供元のものがお勧めです。
日本語入力が入っていない場合は、GooglePlayよりインストールしてください。 「設定」-「言語と入力」でインストールしたものを有効にする。
2.設定
これ以降は、Termux内での操作となります。
2.1 updateを実行
$ pkg update
$ pkg upgrade
2.2 termux-setup-storageを実行
termux-setup-storageを実行することにより、ホーム(/data/data/com.termux/files/home)直下にstoregeが作成され、downloadsやsharedといった場所にアクセスできるようになる。
Termux-setup-storage - Termux Wiki
$ termux-setup-storage
$ ls ~/storage
dcim downloads external-1 movies music pictures shared
うまくいかないときは、Termuxをいったん終了して再起動する。
2.3 各種ツールおよびrfriends3のインストール
termux用のrfriends3インストールスクリプトを実行する。
$ cd ~/
$ pkg install -y wget
$ rm rfriends3_termux.sh
$ wget http://rfriends.s1009.xrea.com/files3/rfriends3_termux.sh
$ sh rfriends3_termux.sh
$ exit
注)ここで一旦termuxからexitしてください。
このスクリプトは以下の 1)-3)を処理しています。実際の処理内容はスクリプト参照。
http://rfriends.s1009.xrea.com/files3/rfriends3_termux.sh
1) ツールのインストール(php,ffmpeg,termux-services等)
2) opensshのインストール
3) rfriendsのインストール
2.4 サービス(atd, crond, sshd)の有効化
termuxを再度実行後、termux-sevicesを使用してサービス(atd, crond, sshd)を有効化する。うまくいかない場合、一度スマホを再起動してみてください。
$ sv-enable atd
$ sv-enable crond
$ sv-enable sshd
・ termux-sevices
https://wiki.termux.com/wiki/Termux-services
sshdを実行しても以下のようなエラーメッセージが出るとき
sshd: no hostkeys available ? exiting.
$ ssh-keygen -A
を実行してから再度sshdを実行して下さい。
2.5 wake-lockの有効化
$ termux-wake-lock
termux-wake-lockを実行すると、予約録音はうまくいくようですが、sshはタイムアウトするようです。その場合は再起動が必要になります。
開発者オプションのスリープしないをONにするほうが確実です。
3.rfriendsの設定
3.1 rfrirnds server の実行
1)Wifi 接続の場合
termux上で、以下のコマンドを入力しrfriendsを実行する。
$ cd ~/rfriends
$ sh wlan0.sh
2)そのほかの場合
androidスマホがwifiに接続されていない場合は失敗するので、IPアドレスを確認後rfriends3_server.shを実行してください。
$ ip a | grep inet
inet 127.0.0.1 ?netmask 255.0.0.0
inet XXX.XXX.XXX.XXX ?netmask 255.255.255.0 ?broadcast XXX.XXX.XXX.255
スマホのIPアドレスはXXX.XXX.XXX.XXXです。
$ cd ~/rfriends
$ sh rfriends3_server.sh XXX.XXX.XXX.XXX:8000
3)自動(3.0.0-a36以降)今後はこれを推奨
termux上で、以下のコマンドを入力しrfriendsを実行する。
$ cd ~/rfriends
$ sh rf3server.sh
1)または2)または3)を実行後、androdiスマホ自身または同一LAN に接続されたPC等からWEBブラウザ(chrome,edge,firefox等)で
xxx.xxx.xxx.xxx:8000
と入力し、以下のような画面が出たら成功です。
3.2 rfrirndsをアップデート
[10-1]システム更新(SYS)により、rfriendsを開発版(0.9.0-b01以上)にupdateする。
以降、バージョン0.9.0-b01を例に説明します。バージョンによりメニュー番号が異なっている可能性があります。
[9-6]録音ディレクトリ設定を選択し、録音データの格納場所を指定します。
スクリプトでは内部ダウンロードディレクトリに設定されています。
・内部ダウンロードディレクトリの場合
usrdir=/data/data/com.termux/files/home/storage/downloads/usr2/
tmpdir = ""
・外部microSDの場合
$ df
/dev/fuse ***** ***** ***** **%? /storage/XXXX-XXXX
上記の? XXXX-XXXXの部分がmicroSDにより変化します。
usrdir=/storage/XXXX-XXXX/usr2/
tmpdir = ""
3.4 デイリー処理の設定
[9-3]デイリー処理設定を選択し、デイリー処理(crontab)の読込、編集、書込をします。これにより、指定した時刻に予約・録音ができるようになります。
4.テスト
・rfriendsの[3-1]タイムフリー録音で、1,2個試しに録音してみてください。 録音が終了したら、androidのファイルマネージャでダウンロードディレクトリを参照する。録音したファイルがtimefree以下に見つかるとおもいます。
・再生してみてください。
・[1-4]デイリー処理も行ってみてください。
以上で、インストールは終了です。
5.sshのアクセス方法
$ ip a | grep inet
inet 127.0.0.1 ?netmask 255.0.0.0
inet XXX.XXX.XXX.XXX ?netmask 255.255.255.0 ?broadcast XXX.XXX.XXX.255
スマホのIPアドレスはXXX.XXX.XXX.XXXです。
$ id
uid=xxx(hogehoge)
hogehogeがユーザです。
PC等から
ssh -p 8022 hogehoge@XXX.XXX.XXX.XXX
でアクセスできます。
PCがLinuxでWARNINGが出て接続できないときはPCのホームディレクトリの.ssh/known_hostsを削除してみてください。
6.最後に
termux版rfriendsの制限事項としては、
・timefree等で録音したデータのタイムスタンプが現在時刻になります。
sshアクセスを利用している方は、ファイルの転送にはsftpが便利です。Windows Clientでは、Winscp(またはFilezilla)がおすすめです。
このソフトはパケットを消費するため、Wifi環境下での使用をお勧めします。 2時間番組で約40MBになります。外出等で使用をいったん中止する場合は、Termuxをexitしてください。
なお、念のためのお約束ですが、 テスト中のため、電池を異常に消費するなどのバグがある可能性があります。 また、十分注意を払っていますが、重要なファイルを消すことがないとも限りません。
劣化したバッテリのスマホを使用すると火災の原因にもなります。
使用は自己責任にてお願いします。当方はいかなる責任も持ちません。 使用を中止したい場合はスマホを初期化してください。
より良いものにするために、バグ報告・改善提案等をお待ちしています。
では、素敵なラジオライフを!
以上