ログイン
ユーザー名:

パスワード:


パスワード紛失

新規登録
メインメニュー
My Twitter
  • takahashiさんのエントリ配信
  • RSS
  • RDF
  • ATOM

ブログ - Linuxサーバ機で音楽を鳴らす!? [debian, wheezy, jessie, alsaplayer]

ヘッダーナビゲーション

Linuxサーバ機で音楽を鳴らす!? [debian, wheezy, jessie, alsaplayer]2015/01/06 4:30 pm

今回はLinuxサーバ機で音楽を鳴らすというお題目です。
実はLennyの時代に一度行っていたのですが、ハードウェア老朽化により機器交換となり、現バージョンのWheezyで動かす場合の備忘録です。
※某所で館内放送を使い、Linuxサーバ機で時報(業務開始、お昼休み、業務終了)を鳴らしたり、BGMを流したりしています。

目的:Linuxサーバ機でMP3やWAV音源の音楽を鳴らす。また、インターネットラジオの受信方法も合わせて記載します。

環境
1.ハードウェア shuttle製XS35 V2
http://www.shuttle-japan.jp/barebone/slim/xs35v2
※このマシンはファンレスでCPUがAtom D525(1.8GHz)ですので、そこそこ使えます。…というか、SSDを搭載すると可動部品が無くなるので、マイクロサーバとしては優秀ですが、以下の点に注意が必要です。

○NICがRealtekのr8168というギガNICを搭載しています。このNICはLinuxのインストーラーが誤認識するので、OSのインストール後に手動でドライバーの再インストールが必要です。
※誤認識していてもなんとなく動くのでやっかいです(苦笑)。

○ファンレスなので夏場に室温が35℃を超えるような場合にはちょっと辛くなります。この際には、USB扇風機等を使い強制空冷する事をお勧めします。

2.Linux : Debian 6.0 GNU Linux Wheezy  kernel 3.2.0-4-686-pae


導入
3.NICのドライバーをインストールする準備
aptitude install vim linux-headers-3.2.0-4-686-pae make

RealtekのWebサイトより最新のドライバーをダウンロードして、/usr/srcに置きます。
※2015/03/09現在は8.039.00が最新です。
tar xvfj r8168-8.039.00.tar.bz2
cd r8168-8.039.00
./autorun.sh

ドライバーのインストールが始まります。もし、SSHで接続していても大丈夫です。結構時間がかかりますが、気長に待って下さい。
Check old driver and unload it.
rmmod r8168
Build the module and install
Warning: you may need to install module-init-tools
See http://www.codemonkey.org.uk/docs/post-halloween-2.6.txt
DEPMOD 3.2.0-4-686-pae
load module r8168
Updating initramfs. Please wait.
update-initramfs: Generating /boot/initrd.img-3.2.0-4-686-pae
Completed.

プロンプトが戻ってきてインストール終了です。再起動しましょう。
注意:kernelのアップデート等でinitrdを再作成した際には、必ず上記NICのドライバーも再インストールして下さい(自動でできる方法もあるみたいですが…)。

再起動後、
# dmesg | grep r8
[    2.612289] r8168 Gigabit Ethernet driver 8.039.00-NAPI loaded
[    2.612418] r8168 0000:02:00.2: setting latency timer to 64
[    2.612565] r8168 0000:02:00.2: irq 43 for MSI/MSI-X
[    2.638595] r8168: This product is covered by one or more of the following patents: US6,570,884, US6,115,776, and US6,327,625.
[    2.638626] r8168  Copyright (C) 2014  Realtek NIC software team <nicfae@realtek.com>
[   10.707096] r8168: eth0: link up

と表示されれば正常に新しいドライバーがインストールされています。


4.音楽再生用のプレーヤーをインストールします。サーバ機の場合にはGUI環境は無い事の方が多いので、CUI環境で使うよう、テキストベースのプレーヤーをインストールします。
aptitude install alsaplayer-text alsa-base

インストール後、プレーヤーの初期化をします。
※これはインストール直後に1度行えば再起動しても有効です。
※Linuxカーネールでちゃんと認識しているのに音が出ない…という時は、この初期化を忘れている場合が多いです。Wheezyではalsaconfというコマンドはなくなりました。
# alsactl init
Found hardware: "HDA-Intel" "Intel CedarTrail HDMI" "HDA:111d76d1,12974012,00100107 HDA:80862880,80860101,00100000" "0x1297" "0x4012"
Hardware is initialized using a generic method


それでは音楽を再生してみましょう。
本体のスピーカージャックにイヤフォンかヘッドフォンを接続します。
何かmp3の音源ファイルを用意して下さい。
alsaplayer sample.mp3

で無事音楽が流れてくれば成功です。音量が大きい時には音量調整ができます。
※音量パラメータは0〜1.0で、私の場合は0.4位が丁度良かったです。詳しくはmanをご覧下さい。
alsaplayer sample.mp3 -l 0.4


最後にインターネットラジオを受信する方法です。
.plsというフォーマットのファイルを用意します。中身はこんな感じです。
[playlist]
numberofentries=3
File1=http://173.244.199.249:80
Title1=(#1 - 241/5000) SmoothJazz.com Global Radio - The World's First 24/7 Since 2000 - KJAZ.DB
Length1=-1
File2=http://50.115.122.54:80
Title2=(#2 - 579/5000) SmoothJazz.com Global Radio - The World's First 24/7 Since 2000 - KJAZ.DB
Length2=-1
File3=http://75.126.221.202:8000
Title3=(#3 - 6/6) SmoothJazz.com Global Radio - The World's First 24/7 Since 2000 - KJAZ.DB
Length3=-1
Version=2

Windowsのiniファイルみたいです。
このファイルは簡単に取得出来ます。
まずは、
http://www.shoutcast.com/
へ行き、画面左のメニューより気に入ったジャンルを選んで下さい。
画面の右側にインターネットラジオ局が表示されますので、右向き三角マークで視聴が出来ます。その右側にあるダウンロード・ボタンをclickすると、Winamp M3U XSPFと3択が出ますので、一番上のWinampを選ぶとplsフォーマットのファイルがダウンロードできます。
alsaplayer tunein-station.pls -l 0.4

このplsファイルをプレーヤーに指定するとインターネットラジオ局につながります。Bitrateが256な局を選んでみて下さい。音質も素晴らしくBGMとしては申し分有りません。

■以上、駆け足で書いてみましたが、Linuxサーバ機から、がんがん音楽が流れてくるのはなんだか変な感じがします。マシン負荷も0.1程度なので本業務にも問題にならないと思います。こういう事をする人は少ないと思いますが、誰かの参考になれば幸いです。


【追記】2016/01/06
新しいshuttleのベアボーン機(DS57U)にDebian 8.0 Jessieをインストールしました。
http://www.shuttle-japan.jp/barebone/slim/ds57u
上記の手順では音が出なかったので追記です。

インストールは、
aptitude install alsa-utils alsaplayer-text
で、最低限のモジュールはインストールされます。
# alsactl init
Found hardware: "HDA-Intel" "Intel Broadwell HDMI" "HDA:80862808,80860101,00100000" "0x1297" "0x4028"
Hardware is initialized using a generic method
初期化が正常に完了しているようですが、実はこの状態では音が出ません。MP3ファイル等を再生しようとすると、このようなメッセージが表示されます。
ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave
snd_pcm_open: No such file or directory (default)
Failed to initialize plugin!
Failed to register plugin: /usr/lib/alsaplayer/output/libalsa_out.so
Failed to load output plugin "alsa". Trying defaults.
ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave
snd_pcm_open: No such file or directory (default)
Failed to initialize plugin!
/usr/lib/alsaplayer/output/libalsa_out.so failed to load
NOTE: THIS IS THE NULL PLUGIN.      YOU WILL NOT HEAR SOUND!!
調べてみると、2つの音源デバイスがあってデフォルトはHDA Intel HDMIが使われているようです。しかし背面のコネクターはアナログ用なので、もう一つの音源デバイスであるALC662 rev3 Analogをデフォルトにしなくてはいけません。

/etc/modprobe.d/default.conf というファイルを新しく作成して、この一行だけ中に書いておきます。
※これはIndex=0が最優先(デフォルト)になるので、HDMIの優先度を下げる意味になります
options snd_hda_intel index=1
上記ファイルを作成したら、rebootします。

立ち上がってきたら、もう一度初期化をします。
# alsactl init
Found hardware: "HDA-Intel" "Realtek ALC662 rev3" "HDA:10ec0662,12972048,00100300" "0x1297" "0x4028"
Hardware is initialized using a generic method
このようにRealtek ALC662 rev3が見えたら初期化成功です。

これで正常に音楽が再生されました。

■参考にしたサイト
http://forums.debian.net/viewtopic.php?f=6&t=123902
http://docs.slackware.com/howtos:hardware:audio_and_snd-hda-intel

■おまけ
お気に入りのインターネットラジオ局
# cat jazz-florida.pls
[playlist]
numberofentries=1
File1=http://198.58.106.133:8094
Title1=(#1 - 24/1000) Smooth Jazz Florida Plus HQ
Length1=-1
Version=2


-- ◇

このエントリーの情報

トラックバックping送信用URLを取得する

このエントリーの記録

投稿された内容の著作権はコメントの投稿者に帰属します。

Calendar
ブログ カレンダー
« « 2016 7月 » »
26 27 28 29 30 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 1 2 3 4 5 6
TS3
TS3 Minolin server TeamSpeak Viewer