好みと詩人を含むネットワークサウンドカードを作成する

1回2回のトピックに触発されて、似たようなものを作成することにしました。

在庫あり:
-スピーカー付きの1つのアンプ
-1台のデスクトップコンピューター
-ラップトップ1台
-前の2つの段落とワイヤのジャビングに関係なく、インターネットラジオを聞きたいという願望

その結果、「イーサネット上のオーディオカード」を構築する計画ができました。 ハードウェアの互換性の問題を調べた後、TP-link MR3020ルーターとCreative SB Play USBオーディオカードを選択しました。

それの由来:


入手方法については、猫へようこそ。

価格からすぐに始めます。 ルーターは700ルーブル、サウンドカードは800ルーブル、USBハブは200ルーブルに対応しています。 1700ルーブルまたは55ドルの量で。 そして、なぜ誰もまだこれをストリームに載せていないのですか?

OpenWRTファームウェア(USBおよびパッケージアセンブリ)のすべての欠点は、以前のバージョン10.03のみに関係していました。 Last stable 12.09はほぼ完璧です。

/オーバーレイセクションをUSBフラッシュに転送します

ルーターの空き領域は約800 kbです。 これを防ぐために、USBフラッシュをルーターに接続します。 フラッシュカードのセクションは、ext4で事前にフォーマットされています。 命令はすでに短い:
opkgアップデート
opkg install block-mount block-hotplug block-extroot kmod-usb-core kmod-usb2 kmod-usb-ohci kmod-usb-storage kmod-fs-ext4
mkdir / mnt / sda1
マウント/ dev / sda1 / mnt / sda1
tar -C / overlay -cvf-。 | tar -C / mnt / sda1 -xf-


/ etc / config / fstabに書き込みます
構成マウント
オプションターゲット/オーバーレイ
オプションデバイス/ dev / sda1
オプションfstype ext4
オプションオプションrw、sync
オプションが有効1
オプションenabled_fsck 0

ルーターを再起動して確認します:
マウント| grep sda
/ dev / sda1 on /オーバーレイタイプext4(rw、sync、relatime、user_xattr、バリア= 1、データ=順序付け)


USBオーディオカードを接続します

必要なモジュールをインストールする
opkgインストールkmod-usb-audio kmod-sound-core


サウンドカードをUSBハブに接続します:
dmesg | grep -iオーディオ
[41.080000] usbcore:登録済みの新しいインターフェイスドライバーsnd-usb-audio


pulseaudioを構成する

opkg install pulseaudio-daemon

/etc/pulse/system.paを編集します。
load-module module-native-protocol-unix auth-anonymous = 1#ルーター自体から実行されるソフトウェアの場合
load-module module-alsa-sink device = hw:0,0 tsched = 0#tsched = 0-クラックルと喘鳴をなくすためのダーティハック
load-module module-simple-protocol-tcp port = 4712 rate = 44100 format = s16le channels = 2#Windowsからサウンドを再生するため
load-module module-rtp-recv#wifi経由でLinuxデバイスからサウンドを再生するため
load-module module-native-protocol-tcp auth-anonymous = 1#イーサネット経由でLinuxデバイスからサウンドを再生する


Pulseaudioはユーザーパルスから開始されるため、initスクリプトを編集して、オーディオデバイス/etc/init.d/pulseaudioに書き込み権限を付与します。
--- pulseaudio_old 2013-06-19 12:30:18.425539419 +0400 +++ pulseaudio 2013-06-19 12:30:04.077704388 +0400 @@ -19,6 +19,9 @@ chmod 0750 /var/lib/pulse chown pulse:pulse /var/lib/pulse } + [ -d /dev/snd ] && { + chown -R pulse:pulse /dev/snd + } service_start /usr/bin/pulseaudio --daemonize --system --disallow-exit --disallow-module-loading --disable-shm --exit-idle-time=-1 } 


pulseaudioを起動に追加して実行します:
/etc/init.d/pulseaudio enable
/etc/init.d/pulseaudio start

焼きたてのオーディオサーバーを音源に追加します。
pacmd load-module module-tunnel-sink server =%serverIP%
pacmd set-default-sink 1#番号は、pacmd list-sinkの出力によって異なる場合があります

サウンドを再生してみてください。
pulseaudioで動作するMPDを学ぶ

注意、ハードコア! MPDのコンパイルは簡単ですが、他の方法で行った。 OpenWRTソースをダウンロードします。
svn co svn://svn.openwrt.org/openwrt/tags/attitude_adjustment_12.09/

SDKを収集します(make menuconfigでルーターとプラットフォームを指定することを忘れないでください):
cdtitude_adjustment_12.09
ツールの作成/インストール
ツールチェーンの作成/インストール

アプリケーションを含むフィードを取得し、サンドボックスに「インストール」します。
./scripts/feeds update
./scripts/feeds install pulseaudio
./scripts/feeds install mpd

pulseaudio devパッケージはすべてのライブラリをインストールするわけではないので、package / feeds / packages / pulseaudio / Makefileを編集してください:
 --- Makefile_old 2013-06-19 12:12:00.458287669 +0400 +++ Makefile 2013-06-19 12:07:43.225298052 +0400 @@ -139,7 +139,8 @@ $(INSTALL_DIR) \ $(1)/usr/lib/pkgconfig \ $(1)/usr/include/pulse \ - $(1)/usr/lib + $(1)/usr/lib \ + $(1)/usr/lib/pulseaudio $(CP) \ $(PKG_INSTALL_DIR)/usr/include/pulse/* \ $(1)/usr/include/pulse @@ -149,6 +150,9 @@ $(CP) \ $(PKG_INSTALL_DIR)/usr/lib/*.so* \ $(1)/usr/lib/ + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/pulseaudio/*.so* \ + $(1)/usr/lib/pulseaudio/ endef define Package/pulseaudio-daemon/install 

mpdのMakefileを編集します(package / feeds / packages / mpd / Makefile):
 --- Makefile_old 2013-06-18 17:47:56.277865458 +0400 +++ Makefile 2013-06-18 17:37:35.037187159 +0400 @@ -49,7 +49,7 @@ DEPENDS+= \ +AUDIO_SUPPORT:alsa-lib \ +libaudiofile +BUILD_PATENTED:libfaad2 +libffmpeg +libid3tag \ - +libmms +libogg +libshout +libsndfile +libvorbis + +libmms +libogg +libshout +libsndfile +libvorbis +pulseaudio-daemon PROVIDES:=mpd VARIANT:=full endef @@ -137,7 +137,7 @@ $(if $(CONFIG_BUILD_PATENTED),MAD_LIBS="$(TARGET_LDFLAGS) -lmad") \ TARGET_CFLAGS += -std=gnu99 -TARGET_LDFLAGS += -Wl,-rpath-link=$(STAGING_DIR)/usr/lib +TARGET_LDFLAGS += -Wl,-rpath-link=$(STAGING_DIR)/usr/lib,-rpath-link=$(STAGING_DIR)/usr/lib/pulseaudio # use gcc instead of g++ to avoid unnecessary linking against libstdc++ TARGET_CXX:=$(TARGET_CC) @@ -160,6 +160,7 @@ --enable-sndfile \ --enable-vorbis \ --enable-vorbis-encoder \ + --enable-pulse \ --with-faad="$(STAGING_DIR)/usr" \ --with-tremor=no \ 

make menuconfigを実行し、Sound / pulseaudio-daemon、Libraries / libffmpeg-mini、Sound / mpd-fullの順に選択します

最終段階:
パッケージ化/ mpd /コンパイル
パッケージ/ mpd / installを作成します


すべてがエラーなく実行された場合、完成したパッケージbin / ar71xx / packages / mpd-full_0.16.5-2_ar71xx.ipkを取得する必要があります 。 コンパイラーが何かを誓う場合は、 make package / mpd / compile V = 99を実行し 、何が間違っていたかを確認します。

パッケージをscpルーターbin / ar71xx / packages / mpd-full_0.16.5-2_ar71xx.ipk tplink_ip:/ tmpにコピーし、mpdパッケージをインストールします。
opkgの更新
opkgインストールcurl
rm / tmp / opkg-lists / titude_adjustment
opkg install /tmp/mpd-full_0.16.5-2_ar71xx.ipk

MPD /etc/mpd.confの構成:
入力{
プラグイン「カール」
}
audio_output {
タイプ「パルス」
名前「マイデバイス」
}

起動時にオンにして、実行します:
/etc/init.d/mpd enable
/etc/init.d/mpd start

Linuxで確認します。
mpc add pub4.di.fm:80 / di_latinhouse
mpc play


または、WindowsでQMPDClientをインストールしてくださいIMHOは最高のマルチプラットフォームmpdクライアントです)。

AACの問題

標準のlibfaad2ライブラリは、100%のプロセッサ負荷でaacを失います。 ルーターでは、プロセッサの浮動小数点計算のパフォーマンスが低下します。 そのような場合、ライブラリ開発者はFIXED_POINTオプションを提供しましたが、OpenWRT開発者は、titude_adjustment_12.09のリリース前にそれを使用する時間がありませんでした。 faad2のMakefileの最新バージョンでは、FIXED_POINTでコンパイルする機能が追加されました。 最新のMakefileをダウンロードするだけです:
wget dev.openwrt.org/export/34527/packages/libs/faad2/Makefile

make menuconfigで詳細構成オプション->ターゲットオプション->デフォルトでソフトウェア浮動小数点を使用し、パッケージを再コンパイルします。
パッケージを作成/ faad2 /コンパイル
パッケージを作成/ faad2install

パッケージbin / ar71xx / packages / libfaad2_2.7-2_ar71xx.ipkを取得し、mpdと同じ方法でインストールします(この場合のみopkg upgradeコマンドを使用)。
暖かいAACチューブサウンドをお楽しみください。
音源として接続するWindows

ここで見つけ Windowsからpulseaudioにサウンドをストリーミングする唯一の実行可能なソリューション。 しかし、残念ながらこれには仮想オーディオケーブルソフトウェアを購入する必要があります。
これは私のbat'nikから始まります:
linco.exe -B 16 -C 2 -R 44100 | nc.exe tplink_IP 4712

はい、特にWiFiでは音の遅れがありますが、ビデオを見るときは、プレーヤーの設定で簡単に処理できます。

batファイルの代わりに、srvanyを介してlincoを実行してみてください。 誰が成功するか-コメントの購読を停止してください。

改造

はんだごてと手を持つ友人(これを読んでいるなら、おそらく手を持つ友人ですか?)、すべてを1つのケースに入れることができます。 中国のUSBハブを分解し、そこから余分なUSBコネクタを取り外し、残りの2つのUSBコネクタの金属ケースを取り外すことにしました。 したがって、コネクタ自体を90度展開することが判明しました。

ルーター自体では、USBコネクタの接点をボードからはんだ付け解除し、ボードからワイヤをUSBハブに引き出し、USBハブ自体からワイヤを外部USBコネクタに導いた。 ルーターの場合、ジャック用に2つの穴を開けて、すべてをコンパクトに収めることができました。 残念ながら、ルーターのふたをしっかりと閉じることはできませんが、これらのニーズのために、賢い人は青い電気テープを思いつきました。

それはどのように見えますか:


午前2時の職場:


農場にあるものはかけがえのないものです。 計画は、キッチンで別のそのようなものを作成し、 I2Cを介してOLEDディスプレイを接続し、UARTを介してIRレシーバーを接続することです。

PS PMでコメントとエラーメッセージを受け入れます。

コンパイルしたくないPPS、ここに収集されたmpdとlibfaad2パッケージがあります
rghost.ru/46934574
rghost.ru/46934558

UPD:
10/ 06 /2013-rghost.net/ 49184760 OpenWRT用のPulseaudio 4.0

Source: https://habr.com/ru/post/J184110/


All Articles