在庫あり:
-スピーカー付きの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
サウンド
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