combo384の新しいファームウェア(DSD512対応)

3,385 views
Skip to first unread message

maple

unread,
Jul 11, 2017, 9:26:13 PM7/11/17
to lightMPD
combo384のファームウエアが新しくなりDSD512に対応しているようですが、これは今までのLEではなくBEのようです。(今後はBEにシフトしていくのかな?)
ということで、早速ファームを最新の2001にしてLightMPDをtype2で動かしてみたのですが雑音だけでダメでした。(このときのdacの入力表示はPCMになっていました!..???)
LEベースのファームではtype3で動作します。
combo384はLE,BEの違いのほかにxmosとは異なる対応が必要なのでしょうか?
DSD512などサンプルしか持っていないので、いまのところ不都合はありませんが将来的にはBEベースのファームにも対応していただければとおもいます。

digi...@gmail.com

unread,
Jul 12, 2017, 11:55:11 AM7/12/17
to lightMPD
mapleさん

> combo384はLE,BEの違いのほかにxmosとは異なる対応が必要なのでしょうか?
> DSD512などサンプルしか持っていないので、いまのところ不都合はありませんが将来的にはBEベースのファームにも対応していただければとおもいます。

最近のkernelではcombo384のLE,BEの両方ともサポートされています。
また、mpd-0.20.xからDAC(DDC)のサポートする出力形式から自動的に設定するようになっているのでtypeの指定はなくなりました。
LE,BEに対応したkernel 上で mpd-0.20.xを使うとcombo384のLE,BEを意識しなくてもnative dsdが使えるようになります。

lightMPDでは今準備中のv1.0.4のkernelは対応済みです。
apu1,apu2は近々公開します。
cuboxi4,raspberry pi2,3,bbbはその後になります。
raspberry pi, cubox,alixは果たして利用者がいるのでしょうか? 利用状況によっては出さないかもしれません。

ueda...@gmail.com

unread,
Jul 12, 2017, 11:04:51 PM7/12/17
to lightMPD
digifiさん
lightMPDには、いつもお世話になっています。
BEにも対応したバージョンがでるとのこと、嬉しいです。
私はapu2c4なので楽しみです。

jplayj...@gmail.com

unread,
Jul 13, 2017, 8:17:48 AM7/13/17
to lightMPD
lightMPD/upnpgw+upnpplayer (apu2c4 x2)では、2001ファームウェアだとDSD native再生は正しくされますが背後にノイズが常時載ります。これは近々公開していただけるもので解消するのでしょうか。

kku...@gmail.com

unread,
Jul 13, 2017, 8:56:42 AM7/13/17
to lightMPD
2001ファームウェアを試して見たいと思うのですが
download先が見つけられません。
申し訳ないのですがURLを教えていただけないでしょうか?

maple

unread,
Jul 13, 2017, 10:16:06 AM7/13/17
to lightMPD
kkumaxさん
amanero か、テクソルのHPからファームウェアアップデート用のツール(oemtool117)をダウンロードしてアップデートします。
ファームウェアは当初1096c3w2が表示されると思いますが、プルダウンメニューで選択できますので2001を選びます。
ファームのアップデート手順はoemtool117に含まれるreadmeファイルや、マルツセレクトのCombo384のファームウエアアップグレード方法うぃ参考にしてください。

kku...@gmail.com

unread,
Jul 13, 2017, 12:06:58 PM7/13/17
to lightMPD
mapleさん 
ありがとうございます。さっそく(^_^)

minor...@gmail.com

unread,
Jul 31, 2017, 2:01:24 AM7/31/17
to lightMPD
Amaneroのフォーラムで、
big endianの2002bがstream0でLEになるのはkernelがLEのみにしか対応していないから、
と書かれています。upnpplayerは自動判定と理解していましたが、そうではないのでしょうか。

digi...@gmail.com

unread,
Jul 31, 2017, 5:29:29 AM7/31/17
to lightMPD
eeyoreさn

upnpplayerのkernelはamaneroのBE,LEに対応しています。
また、mpd-0.20.xからデバイスの状態を調べてBE,LEを判別するので、0.19.x-native-dsdのように
明示的に指定する必要はありません。そもそも指定できません。

従って、upnpplayerでは自動判別です。

jplayj...@gmail.com

unread,
Jul 31, 2017, 7:22:01 AM7/31/17
to lightMPD
解説ありがとうございます。ということは、Amanero側の問題のようですね。
作者は2002bはBEと言っているのにLEと判定されていることになります。
ネット検索したら以下がヒットしました。私は残念ながらスキルが無くパッチ当てができません。
https://patchwork.kernel.org/patch/9723885/

kku...@gmail.com

unread,
Aug 1, 2017, 1:24:45 AM8/1/17
to lightMPD
$ vi combo384-lebe.patch

diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index 01eff6ce6401..d7b0b0a3a2db 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -1364,7 +1364,7 @@ u64 snd_usb_interface_dsd_format_quirks(struct snd_usb_audio *chip,
/* Amanero Combo384 USB interface with native DSD support */
case USB_ID(0x16d0, 0x071a):
if (fp->altsetting == 2) {
- switch (chip->dev->descriptor.bcdDevice) {
+ switch (le16_to_cpu(chip->dev->descriptor.bcdDevice)) {
case 0x199:
return SNDRV_PCM_FMTBIT_DSD_U32_LE;
case 0x19b:

パッチファイルをエディターで作成して(linux-4.11.5に当ててみました)

$ patch -p1 < combo384-lebe.patch
patching file sound/usb/quirks.c

問題なく当たる様です。



jplayj...@gmail.com

unread,
Aug 1, 2017, 3:52:16 AM8/1/17
to lightMPD
upnpplayerで使うには、デジファイの音さんにコンパイルしていただくしか方法が無いのですよね。Amaneroフォーラムの新たな書込みでは、デバイスが自動判定するのでは無く、カーネルのドライバーが正しい値を返していないと書かれています。このパッチを当てればよさそうなことまではわかりました。

digi...@gmail.com

unread,
Aug 1, 2017, 4:48:30 AM8/1/17
to lightMPD
eeyoreさん

事情は分かりました。しかし、現在combo384が稼働状態に無いためテストできません。
eeyoreさんにテストをお願い出来るのであれば、こちらで修正版をbuildします。
テストをお願いできる場合は、eeyoreさんがお使いのシステムを教えて下さい。

minor...@gmail.com

unread,
Aug 2, 2017, 3:20:40 PM8/2/17
to lightMPD
apu2c4です。

digi...@gmail.com

unread,
Aug 2, 2017, 7:54:29 PM8/2/17
to lightMPD
eeyoreさん

> apu2c4です。
了解しました。

最新版(4.11.12)ではすでに対応されているので、これを公開します。
また、xenomaiについては対応箇所を修正した物を公開します。
すでに、buildはできていますので、今日中に公開します。
よろしくお願いします。

digi...@gmail.com

unread,
Aug 3, 2017, 10:39:52 AM8/3/17
to lightMPD

amaneroのcombo384のendianが正しくハンドリングできない問題に対応したカーネルを公開しました。

prempt-rt版は linux-4.11.12rt7 でこれはすでに対応がなされてました。
xenomi版は 元と同じバージョンの 4.9.24 に対する修正です。

現在、combo384が動作する環境がありませんので、修正が正しく行われているかはテストできていません。


ダウンロードおよびインストール

  • preempt-rt版のkernel: apu2-64-bzImage-4.11.12rt7-20170803.zip
    解凍するとbzImage-4.11.12rt-64 が作成されます。それをインストールしたメディアの/boot にコピーして下さい。
    /boot/grub/menu.lstのkernelの行をbzImage-4.11.12rt-64 に変更して下さい。
  • xenomai版  apu2-64-bzImage-4.9.24-xenomai-20170803.zip
    解凍するとbzImage-4.9.24-xenomai が作成されます。それをインストールしたメディアの/boot にコピーして下さい。(元のファイルにオーバーライトします)
    /boot/grub/menu.lstのkernelの行を bzImage-4.9.24-xenomai に変更して下さい。

jplayj...@gmail.com

unread,
Aug 3, 2017, 11:28:36 AM8/3/17
to lightMPD
公開ありがとうございます。結論から言うと、状況は改善していません。両方のkernelを試しました。DSD native再生時にサーという背景ノイズが常に乗ります。DSD64/128/256/512全てです。
/proc/asound/Amanero/strem0は相変らずLEしか表示されません。2002bは作者いわくBEです。

Playback:
Status: Stop
Interface 2
Altset 1
Format: S32_LE
Channels: 2
Endpoint: 5 OUT (ASYNC)
Rates: 32000, 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
Data packet interval: 125 us
Interface 2
Altset 2
Format: S32_LE DSD_U32_LE
Channels: 2
Endpoint: 5 OUT (ASYNC)
Rates: 32000, 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
Data packet interval: 125 us

jplayj...@gmail.com

unread,
Aug 3, 2017, 11:37:31 AM8/3/17
to lightMPD
ちなみに、2002bの公開は7月17日です。kernel側で対応済みというのが、これより以前のfirmwareということはありませんか。1999cはLEです。その後2000、2001というのがありましたが、今は削除されていてダウンロードできません。

digi...@gmail.com

unread,
Aug 4, 2017, 2:50:27 AM8/4/17
to lightMPD
eeyoreさん

combo384のfirmware を2002bにして新カーネルでテストしました。
再生は出来ないので各種ステータスでの確認になります。
eeyoreさんの場合、kernelの入れ替えが旨くいってないように思われます。
kernelのバージョンは uname -a コマンドで確認できます。

combo384はあまり使っていないので気づきませんでしたが、いつのまにか768000まで対応してたんですね。



4.11.12-rt7

# uname -a
Linux lightmpd 4.11.12-rt7-lightMPD #1 SMP PREEMPT RT Wed Aug 2 11:04:19 JST 2017 x86_64 GNU/Linux

#  cat /proc/asound/card0/stream0
Amanero Technologies Combo384 Amanero at usb-0000:00:10.0-1, high speed : USB Audio

Playback:
  Status: Stop
  Interface 2
    Altset 1
    Format: S32_LE
    Channels: 2
    Endpoint: 5 OUT (ASYNC)
    Rates: 32000, 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
    Data packet interval: 125 us
  Interface 2
    Altset 2
    Format: S32_LE DSD_U32_BE         <---- BEになっています
    Channels: 2
    Endpoint: 5 OUT (ASYNC)
    Rates: 32000, 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
    Data packet interval: 125 us

DSD64のファイルを再生

#  cat /proc/asound/card0/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: DSD_U32_BE                    <---- BEになっています
subformat: STD
channels: 2
rate: 88200 (88200/1)
period_size: 3308
buffer_size: 13230



xenomai も下記のようになり正しく動作しているように思われます。
xenomaiの場合バージョンが同じなので uname -a の

    Wed Aug 2 11:35:42 JST 2017 x86_64 GNU/Linux

の部分で判断して下さい。

# uname -a
Linux lightmpd 4.9.24-lightMPD #7 SMP PREEMPT Wed Aug 2 11:35:42 JST 2017 x86_64 GNU/Linux

# cat /proc/asound/card0/stream0
Amanero Technologies Combo384 Amanero at usb-0000:00:10.0-1, high speed : USB Audio

Playback:
  Status: Stop
  Interface 2
    Altset 1
    Format: S32_LE
    Channels: 2
    Endpoint: 5 OUT (ASYNC)
    Rates: 32000, 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
    Data packet interval: 125 us
  Interface 2
    Altset 2
    Format: S32_LE DSD_U32_BE
    Channels: 2
    Endpoint: 5 OUT (ASYNC)
    Rates: 32000, 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
    Data packet interval: 125 us

# cat /proc/asound/card0/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: DSD_U32_BE
subformat: STD
channels: 2
rate: 88200 (88200/1)
period_size: 3308
buffer_size: 13230

jplayj...@gmail.com

unread,
Aug 4, 2017, 3:25:14 AM8/4/17
to lightMPD
大変失礼しました。SDカードをmountしてmenu.lstを編集したまではよかったのですが、umountせずにrebootをかけていました。
正常に動作しています。ありがとうございました。

jplayj...@gmail.com

unread,
Aug 18, 2017, 12:30:20 PM8/18/17
to lightMPD
本日新ファームウェア2003が公開され、さっそく入れました。
先日2002bで動くように対応していただいたばかりですが、また使えなくなりました。DSDは再生できず、PCMも一時停止するとノイズが出続けています。
2003が当面の最終版のように読めるのですが、2002bからの変更点がよくわからずお手上げ状態です。

# uname -a
Linux lightmpd 4.11.12-rt7-lightMPD #1 SMP PREEMPT RT Wed Aug 2 11:04:19 JST 2017 x86_64 GNU/Linux

# cat /proc/asound/Amanero/stream0

jplayj...@gmail.com

unread,
Aug 18, 2017, 1:17:36 PM8/18/17
to lightMPD
PID 0x0071a
に変更という記述がAmaneroフォーラムにありました。

digi...@gmail.com

unread,
Aug 19, 2017, 11:38:45 AM8/19/17
to lightMPD
eeyoreさん

cat /proc/asound/card0/usbid

とするとusbのidが表示されます。

2002bでは

# cat /proc/asound/card0/usbid
16d0:071a

になります。

2003ではどうなりますか?
この値が違っていればkernelでそれに対応する必要があります。
しかし、この値がころころ変わるとは思えないのでもし2002bと値が違うのであれば2003のバグの可能性もあります。



jplayj...@gmail.com

unread,
Aug 19, 2017, 11:49:22 AM8/19/17
to lightMPD
同じく
16d0:071a
でした。

jplayj...@gmail.com

unread,
Aug 20, 2017, 3:19:40 AM8/20/17
to lightMPD
Amaneroのフォーラムにいくつか投稿があり、まだ誰も2003でDSD native再生に成功していないようです。直前に出た2003_71Aではできたという報告があります。

jplayj...@gmail.com

unread,
Aug 23, 2017, 10:48:13 AM8/23/17
to lightMPD
本日2003be_71Aがリリースされ、再び正常再生できるようになりました。完全にAmanero側の問題だったようです。お騒がせしました。
Mac Audirvana+ 3.1の新機能DLNA機器への出力にUpLightMpdを指定すると、MinimServerからの音よりはるかに心地よく再生されます。

asa100da

unread,
Aug 31, 2017, 2:13:11 AM8/31/17
to lightMPD
digifi様
apu2c4、combo384でnative DSD伝送を試しましたが、再生終了時にバチッというノイズがでます。DSD128では再生時も時々ノイズが出ることがあります。それでcombo384のFirmwareをアップデートして試したいのですが、apu2c4用のlightMPD(comno384のBE対応)を出していただけないでしょうか。(upnpplayerでない通常のものです。)
お忙しいところ恐縮ですが宜しくお願いいたします。

digi...@gmail.com

unread,
Sep 1, 2017, 11:05:11 AM9/1/17
to lightMPD
asa100daさん

> apu2c4用のlightMPD(comno384のBE対応)を出していただけないでしょうか。(upnpplayerでない通常のものです。)
用意しますのでちょっとお待ち下さい。

asa100da

unread,
Sep 2, 2017, 11:20:09 AM9/2/17
to lightMPD
digifi様
有難うございます。宜しくお願いいたします。

digi...@gmail.com

unread,
Sep 5, 2017, 10:22:15 AM9/5/17
to lightMPD
asa100daさん

lightMPDapu2-v1.0.5-64.zip を公開しました。

combo384では音出しはできていないのですが、

# cat /proc/asound/card0/stream0 
Amanero Technologies Combo384 Amanero at usb-0000:00:10.0-2, high speed : USB Audio

Playback:
  Status: Stop
  Interface 2
    Altset 1
    Format: S32_LE
    Channels: 2
    Endpoint: 5 OUT (ASYNC)
    Rates: 32000, 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
    Data packet interval: 125 us
  Interface 2
    Altset 2
    Format: S32_LE DSD_U32_BE
    Channels: 2
    Endpoint: 5 OUT (ASYNC)
    Rates: 32000, 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
    Data packet interval: 125 us

となってますので問題ないと思います。

ダウンロード


asa100da

unread,
Sep 5, 2017, 11:06:38 PM9/5/17
to lightMPD
digifi様
DSD512対応版のリリース有難うございます。
しかし、V.1.02のブートイメージの上に解凍して試しましたが、残念ながら起動しません。
menu.1stはUSB起動なのでlightmpd.bootdev=LABEL=LIGHTMPDに変更しています。
その他はv.1.02に準じて修正しています。
手順はこれで正しいのでしょうか?確認いただければ幸いです。

digi...@gmail.com

unread,
Sep 6, 2017, 11:54:56 AM9/6/17
to ligh...@googlegroups.com
asa100daさん

> menu.1stはUSB起動なのでlightmpd.bootdev=LABEL=LIGHTMPDに変更しています。
USBメモリにLIGHTMPDというラベルはついてますか?
ラベルはWindowsのエクスプローラーなどで確認できます。
エクスプローラーのドライブ名にLIGHTMPDと表示されていればOKです。
LIGHTMPD以外のドライブ名が表示される場合は、名前の変更でドライブ名をLIGHTMPDに変更して下さい。

SDメモリが刺さっている場合はラベルはSDメモリのラベルと重複しないで下さい。
SDメモリのラベルもLIGHTMPDだとSDメモリのlightmpd.confを読む場合があり不可解な動作になります。

USBメモリにLIGHTMPDというラベルがついており、SDメモリのラベルがLIGHTMP以外またはSDメモリが刺さっていないのに
起動しない場合は、lightmpd.confに記述ミスがあると思います。その場合は、lightmpd.confを貼り付けて下さい。


as100da

unread,
Sep 7, 2017, 5:24:34 AM9/7/17
to lightMPD
digifi様
早速のご回答ありがとうございます。ご指摘の点、確認しましたが間違ってはいません。
UDBメモリのLEDやLAN端子のLEDを見ると起動しているように見えるのですが、Status.txtは出力されない状態です。V1.02では(ノイズ問題を除いて)問題なく動作するので本当に不思議です。シリアルケーブルやUSB変換機を持っていないので今のところシリアルコンソールは確認できていません。

digi...@gmail.com

unread,
Sep 8, 2017, 9:58:55 PM9/8/17
to lightMPD
as100daさん

> UDBメモリのLEDやLAN端子のLEDを見ると起動しているように見えるのですが、Status.txtは出力されない状態です。V1.02では(ノイズ問題を除いて)問題なく動作する

1.0.2のmpdは0.19.xで1.0.5のmpdは0.20.xです。0.19.xと0.20.xでtag_cacheの互換製がありません。
多分0.19.xで作成したtag_cacheを使っている為mpdがエラーになっていると思われます。

tag_cacheをリネームするか、lightmpd.confの[mpd]で

db_file=XX/tag_cache-0.20.x     (XXはnasのマウントポイント、環境に合わせて下さい)

するなどして、0.20.xのmpdでtag_cacheを作成して下さい。

0.19.xと0.20.xを併用するならtag_cache-0.20.xを新たに作成したほうがいいです。
 

ken

unread,
Sep 9, 2017, 1:43:55 AM9/9/17
to lightMPD
digifi 様

lightMPDapu2-v1.0.5-64.zipのアップありがとうございます。

1.0.2からのアップをしましたが,ログインパスワードが root ではログインできません。
解決方法をご教示下さい。
お忙しいところすみませんがよろしくお願いします。

digi...@gmail.com

unread,
Sep 9, 2017, 2:02:50 AM9/9/17
to lightMPD
kenさん

> 1.0.2からのアップをしましたが,ログインパスワードが root ではログインできません。
passwd: lightmpd

です。

ken

unread,
Sep 9, 2017, 2:14:23 AM9/9/17
to lightMPD
digifi 様

何度もすみません。パスワード lightmpd  でトライしてみましたが,ログインできません。
何が原因かわからず困っています。よろしくお願いします。

digi...@gmail.com

unread,
Sep 9, 2017, 10:05:31 AM9/9/17
to lightMPD
ken さん

lightmpd login: root
Password: lightmpd

でloginできませんか?

telnetで接続して
lightmpd login: 

が表示されればネットワーク関係の設定はうまくいってます。

端末ソフトの行終端コードがCRLFになっているとloginに失敗するかもしれません。
端末ソフトの行終端コードはLFにして下さい。

今のところこれくらいしか思いつきません。


nagano...@gmail.com

unread,
Sep 9, 2017, 9:17:21 PM9/9/17
to lightMPD
digifi 様

ご回答ありがとうございました。
root その後に passwdの lightmpd を入力することによって解決しました。
スタンドアローンとして使用することが可能となりました。
ありがとうございました。

まだ,10分くらいしか楽しんでいませんが,音が良くなったような気がします。
passband_end "0.95" の指定の影響でしょうか。

nagano...@gmail.com

unread,
Sep 22, 2017, 11:21:38 PM9/22/17
to lightMPD
digifi 様

数日間 lightMPDapu2-v1.0.5-64 を聴かせて頂きました。
1.02に比較して音が良くなっていることを確認できました。
apu2のusb2.0を使用しています。

clocksource=hpet
[cpuaffinity]
type=2
[irqpriority]
ehci_hcd:usb1=FIFO:99
passband_end "0.95"

という設定で私の環境においてこれまでで WAV,flac は最高の音を出しています。

ところが,私の環境ではDSFファイルとDFFファイル共に再生できていません。
ボリュームを上げても無音の状態です。

DACは Ayre QB-9 DSD を使用しています。1.02においては再生できていました。
何か,対処方法等がありましたら,よろしくご教示下さい。
よろしくお願いします。

digi...@gmail.com

unread,
Sep 23, 2017, 2:27:31 AM9/23/17
to lightMPD
naganomakenjiさん

> DACは Ayre QB-9 DSD を使用しています。1.02においては再生できていました。
> 何か,対処方法等がありましたら,よろしくご教示下さい。
Ayra QQ-9 DSDはnative dsd対応ではないのでDSDの再生はDOPを使うようです。
1.0.5のmpd-0.20.xはnative-dsdの扱いがv1.0.2でつかっていたmpd-0.19.x-nativedsd
からだいぶ変更がされています。

1.0.5でdopによるDSD再生を行う場合は、

audio_output に dsd_usb という項目を設定して下さい。


audio_output {
        type                    "alsa"
        name                    "usb"
        device                  "hw:0,0"
        dsd_usb                 "yes"                   <-----  追加
        priority                "FIFO:54"
        ....
        ....

参考までに

native_dsd非対応のデバイスでdsd_usbが未指定または"no"を指定するとpcmに変換されます。

dsd->pcm変換は大変CPU負荷がかかる処理で、mpdではoutputスレッドで行われます。
outputスレッドはlightMPDでは優先度が高く設定されておりここで負荷の大きな処理をおこなうと
他のスレッドが動作できなくなり音飛びを起こしたり最悪音がでなくなります。
また,dsd->pcm変換にはsoxrが使われておりsoxrのパラメータでpassbband_end "0.95" を設定したために
通常の設定よりsoxrの負荷も高くなっています。
さらに、affinityを2にしたことによりmpdのoutputスレッドはcpu1に固定されます。
このような条件が重なった為にdsd->pcm変換が処理しきれなくなり音がでないと考えられます。

cpuaffinityを0にすると多分dsd->pcmで音がでるようになると思います。

しかし、これではおもしろくないのでlightMPDではdsd->pcm変換を拡張してあります。

decoder {
       plugin                  "dsf"
       enabled                 "yes"
       output                  "PCM:X1:32"
}

decoder {
       plugin                  "dsdiff"
       enabled                 "yes"
       output                  "PCM:X1:32"
}

mpdに上記の行を加えると、dsd->pcm変換をdecoderスレッドで行います。
decoderスレッドはプライオリティを低く設定してあるのと、cpuaffinity 2で2つのcpu を使って動作しているので
他のスレッドに影響を与えません。
しかし、変換に際してはfirフィルターによるローパスフィルター一段で処理し、soxrは使っていないため、
firフィルターの係数が大きくなりsoxrを使った時よりは負荷は高くなります。

そのうち、soxrの拡張パラメータとdsd->pcm変換については詳しく説明しますが、もし興味がおありでしたら
拡張dsd->pcm変換も試してみて下さい。

output "PCM:X1:32" で変換するPCMのフォーマットを指定します。
X1はサンプリング周波数を基準周波数(44.1KHz,48KHz)の倍数で指定します。88.2kにしたい場合はX2にします。
X1の変換が負荷としては最も高くなります。
32の部分はbit数を指定します。16,24,32 が指定できます。

サンプリング周波数の設定はXnの他に分周比で指定できるように検討しています。

asa100da

unread,
Sep 28, 2017, 10:24:19 PM9/28/17
to lightMPD
digifi様
いろいろアドバイスいただきながら、未だv1.05が動作せず苦戦しています。ようやくUSBシリアル変換ケーブルを入手できたので調べたところv1.05のカーネル自体は起動していることを確認しました。しかしgmpcはapuに接続できません。
シリアルコンソールの起動メッセージは(最後の部分だけですが)以下の通りです。
V.1.05
lightMPD initializer start SYSTYPE=apu2 BOOTDEV=/dev/mmcblk0p1
setup /var OK
copy script file OK
copy conf file lightmpd.conf mpd.conf sysctl.conf OK
OK
config OK
sysctl vm.swappiness = 0
kernel.sched_rt_runtime_us = -1
kernel.sched_rt_period_us = 10000
kernel.printk = 4 4 1 4
OK
Starting logging: OK
read-only file system detected...done
Starting rpcbind: OK
Starting network...
Getting initial time via ntp.
Starting telnetd: OK
Starting upmpdcli: OK

Welcome to lightMPD
lightmpd login:

ちなみに正常に起動しているv1.02は
lightMPD initializer start SYSTYPE=apu2 BOOTDEV=/dev/sda1
setup /var OK
copy script file OK
copy conf file lightmpd.conf mpd.conf sysctl.conf OK
OK
config [ 10.669542] random: fast init done
pid 111's current scheduling policy: SCHED_FIFO
pid 111's current scheduling priority: 50
pid 111's new scheduling policy: SCHED_FIFO
pid 111's new scheduling priority: 99
OK
sysctl vm.swappiness = 0
kernel.sched_rt_runtime_us = -1
kernel.sched_rt_period_us = 10000
kernel.printk = 4 4 1 4
OK
Starting logging: OK
Initializing random number generator... read-only file system detected...done
Starting rpcbind: OK
Starting network...
waiting eth0 link up ...linked up
Getting initial time via ntp.
Starting network time protocol daemon: ntpd.
NAS mount OK
set affinity 2 1 2 ((xhci_hcd#0 FIFO:99))OK
telnetd started
Starting mpd affinity mask 12: OK

Welcome to lightMPD
lightmpd login:
です。

v1.05のconfファイルのネット関係の記述はv1.02をコピーしています。

なお、どちらも便宜上DDCは未接続、v1.02はtelnetdだけv.1.05はtelnetd、ympd、webconsoleをyesにしています。

私のネット環境は二つのルーターを使ってイーサネットの分離をしていますが、もしかしてこれが関係しているのでしょうか?

digi...@gmail.com

unread,
Sep 30, 2017, 2:13:05 AM9/30/17
to lightMPD
asa100daさん


> 私のネット環境は二つのルーターを使ってイーサネットの分離をしていますが、もしかしてこれが関係しているのでしょうか? 
1さらにtelnetが接続できるのですからネットワーク的には問題ないと思います。

> v1.05のconfファイルのネット関係の記述はv1.02をコピーしています。 
lightmpdは立ち上がってもgmpcで接続できないということですのでmpdが起動していないと思われます。

lightmpd.confを貼り付けて下さい。

asa100da

unread,
Sep 30, 2017, 10:14:34 AM9/30/17
to lightMPD
digifi様
お世話になります。v1.05のlightmpd.cpnfは以下の通りです。

#
# lightmpd.conf
#
[network]
interface=eth0
address=192.168.1.20
netmask=255.255.255.0
gateway=192.168.1.1
nameserver=192.168.1.1
domain=mydomain.jp

[ntp]
server=clock.isc.org
ntpd=yes
timezone=Asia/Tokyo

[nas:music]
type=nfs
host=192.168.1.10
remotedir=data/Data
proto=tcp
rsize=65536
wsize=65536

[nas:t_data]
type=nfs
host=192.168.1.10
remotedir=data/lightMPD
proto=tcp
rsize=65536
wsize=65536

[mpd]
load_module=mpd-0.20.9rt
music_directory=music/Cue_file,music/OrgData,music/HQData,music/UpConvert
playlist_directory=t_data/mpd/playlists
db_file=t_data/mpd/tag_cache
sticker_file=t_data/mpd/sticker.sql
# log_file=data/mpd/mpd.log
log_file=/dev/null

[httpd]
# yes | no
enable=no
port=80

[telnetd]
# yes | no
enable=yes
port=23

[ympd]
# yes | no
enable=no
host=localhost
webport=8080
mpdport=6600

[webconsole]
# yes | no
# start page: http://thishost:${port}/index.html
enable=no
port=9000

[cpuaffinity]
# 0 normal
# 1 cpu1: usb irq handler
# 2 cpu1: usb irq handler,mpd
type=2

[irqpriority]
setdefault=no
xhci_hcd#0=FIFO:99

[debug]
# interfaces=yes
# resolvconf=yes
# ntpd=yes
# ntpconf=yes
# ifconfig=yes
# cards=yes
# mounts=yes
# ps=yes
# mpdversion=yes
# date=yes
# ntpq=yes
# music=yes
# messages=yes
# save=no

よろしくお願いいたします。

digi...@gmail.com

unread,
Oct 1, 2017, 2:05:35 AM10/1/17
to lightMPD
asa100daさん

lightmpd.confには誤りはないと思います。

以前にも書いたのですがtag_cacheは作り直しましたか?
同じtag_cacheで1.0.2が動作するなら作り直さなければなりません。

現在のtag_cacheをtag_cache-0.19にリネーム下上で、

db_file=t_data/mpd/tag_cache-0.20

にするとt_data/mpd/tag_cache-0.20が作成されます。

v1.0.2のlightmpd.confには

db_file=t_data/mpd/tag_cache-0.19

としとけばv1.0.2,v1.0.5が共存できます。

もし、tag_cacheを作成しなおしてあるなら下記のことを実行してmpdのメッセージを貼り付けて下さい。

telnetでloginする

lightmpd login: root
Password: lightmpd

# /etc/init.d/S95mpd stop      <--  取りあえずmpdをストップする
# mpd --no-daemon --stder --verbose /etc/mpd.conf      <--  mpdをデバッグモードで起動

この後メッセージが出た後でmpdが終了するはずです。
そのメッセージの最後から20行程度を貼り付けて下さい。

asa100da

unread,
Oct 2, 2017, 1:32:49 AM10/2/17
to lightMPD
dijifi様
mpdのデバッグ結果ですが以下の通り(rt_optは省略)です。

config: buffer_before_play is too large (100.000000%), capping at 80%; please fix your configuration
path: SetFSCharset: fs charset is:
exception: Failed to access /var/lib/mpd/playlists: No such file or directory
dsdlib: coeff files (null)
soxr: soxr converter 'very high'
soxr: precision 28.000000
soxr: phase_response 50.000000
soxr: passband_end 0.950000
soxr: stopband_begin 1.000000
soxr: flags 80000000
vorbis: Xiph.Org libVorbis 1.3.5
sndfile: libsndfile-1.0.28
decoder: dsdiff_init err 1 pcm_output 0 output_rate 1 bitdepth 16
decoder: dsf_init err 1 pcm_output 0 output_rate 1 bitdepth 16
rt_opt: realtime_option(rtopt_memlock): stack_reserve 2097152
rt_opt: realtime_option(rtopt_memlock): heap_reserve 10485760
curl: version 7.49.1
curl: with OpenSSL/1.0.2k
state_file: Loading state file /var/lib/mpd/state
rt_opt: realtime_option(rtopt_change_priority): name player_priority policy 1 priority 53
rt_opt: realtime_option(change_priority): name player_priority policy 1 priority 53
exception: Failed to open /var/lib/mpd/state: No such file or directory
rt_opt: realtime_option(rtopt_change_priority): name decoder_priority policy 0 priority 0
rt_opt: realtime_option(change_priority): name decoder_priority policy 0 priority 0
rt_opt: realtime_option(rtopt_change_output_priority): name uda policy 1 priority 54
rt_opt: realtime_option(change_priority): name uda policy 1 priority 54
rt_opt: realtime_option(rtopt_get_output_timerslack): name uda policy 1 timerslack 100
rt_opt: output:uda timerslack 100

/var/lib/mpd/フォルダーにファイルが無いとのエラーが出ています。(実際にlsコマンドで/var/lib/mpd/フォルダーを見ても何もありません。

これらの情報はapuをシリアル接続して得られたものです。
telnetは接続出来ませんでした。もしかしたらイーサネット関係の設定が間違っているのでしょうか?

digi...@gmail.com

unread,
Oct 3, 2017, 10:22:30 AM10/3/17
to lightMPD
asa100daさん

9/29の起動メッセージを見直しました。

> V.1.05 
> lightMPD initializer start SYSTYPE=apu2 BOOTDEV=/dev/mmcblk0p1 


> ちなみに正常に起動しているv1.02は 
> lightMPD initializer start SYSTYPE=apu2 BOOTDEV=/dev/sda1 

v1.0.5とv1.0.2でBOOTDEVが違ってます。

v1.0.5の場合はSDメモリからbootした事になってます。
SDメモリが挿入されている場合はSDメモリの/boot/lightmpd.conf,/boot/mpd.confを読んで
システムの初期化を行います。

以前のメッセージで

> menu.1stはUSB起動なのでlightmpd.bootdev=LABEL=LIGHTMPDに変更しています。

となってますが、SDメモリのディスクラベルもLIGHTMPDになっているのではないでしょうか?

SDメモリが挿入されていない場合は、v1.0.5ではlightmpd.bootdev=/dev/mmcblk0p1 になっていると思います。
この場合はlightmpd.confが読み込めないでのどのように初期化されるかは不定です。

このあたりの解説は9/7の私のレスをみて下さい。

asa100da

unread,
Oct 3, 2017, 11:43:05 AM10/3/17
to lightMPD
digifi様
誤解を生じるようなことをして申し訳ありません。当初はv1.05がすんなり動くと思いUSB起動としていました。しかし、上手く行かなかったことで当面音楽を聴くためにUSBメモリにはv1.02を戻し(空いたUSBメモリがなかったので)以降、v1.05はSDカードでトライしてきました。menu.1stもmmcblk0p1に変更してあります。

シリアルコンソールからfstabを見るとnas関係の記述が見当たらずmpd.confの読み込みに問題がある気もしますが、門外漢なのでよく分かりません。
原因究明のためには何をしたら良いでしょうか?

digi...@gmail.com

unread,
Oct 4, 2017, 3:34:54 AM10/4/17
to lightMPD
asa100daさん

こちらでもapu2でSDメモリからbootしてみましたが、rt,xenomaiいずれのカーネルも起動します。
いろいろと試していたら、
[debug]
  ...
  ...
  save=yes

としてもboot deviceにstatus.txtがのこらないバグを見つけました。
但し、status.txtはのこっているのでそれを貼り付けて下さい。
ついでですので、他の情報も収集して下さい。ちょっと長くなりますがお願いします。

コンソールから下記のコマンドを実行して下さい。

# ifconfig -a
このコマンドの出力を貼り付けて下さい。

# cat /tmp/status.txt
このコマンドの出力を貼り付けて下さい。

# cat /var/lightMPD/bin/setup.sh
このコマンドの出力を貼り付けて下さい。

# cat /var/lightMPD/bin/syssetup.log
このコマンドの出力を貼り付けて下さい

# cat /var/lightMPD/etc/nasmount.sh
このコマンドの出力を貼り付けて下さい

# cat /var/lightMPD/etc/nasmount.log
このコマンドの出力を貼り付けて下さい

asa100da

unread,
Oct 4, 2017, 7:07:18 AM10/4/17
to lightMPD
digifi様
お手数をお掛けします。
ご指示のあったコマンドの結果は次の通りです。やはりエラーが出ています。

# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:0D:B9:46:2C:E8
inet addr:192.168.1.20 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:17 errors:0 dropped:0 overruns:0 frame:0
TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1375 (1.3 KiB) TX bytes:1343 (1.3 KiB)
Memory:fe600000-fe61ffff

eth1 Link encap:Ethernet HWaddr 00:0D:B9:46:2C:E9
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Memory:fe700000-fe71ffff

eth2 Link encap:Ethernet HWaddr 00:0D:B9:46:2C:EA
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Memory:fe800000-fe81ffff

lo if Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:1 errors:0 dropped:0 overruns:0 frame:0
TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:87 (87.0 B) TX bytes:87 (87.0 B)

------------------------------------------------------------------------

# cat /tmp/status.txt
cat: can't open '/tmp/status.txt': No such file or directory

------------------------------------------------------------------------

# cat /var/lightMPD/bin/setup.sh
#!/bin/sh

### output-network
cat <<EOF > /var/lightMPD/etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
netmask 255.255.255.0
address 192.168.1.20
broadcast 192.168.1.255
network 192.168.1.0
gateway 192.168.1.1

EOF


cat <<EOF > /var/lightMPD/etc/resolv.conf
nameserver 192.168.1.1
search mydomain.jp
EOF


cat <<EOF > /var/lightMPD/etc/default/ifplugd
IFPLUGD_ENABLE=no
EOF


#### output-setup-timezone
cat <<EOF > /var/lightMPD/etc/default/ntpd
NTPSERVERS=clock.isc.org
NTPDATE=yes
NTPD=yes
EOF

cat <<EOF > /var/lightMPD/etc/ntp.conf

driftfile /var/lib/ntp/ntp.drift
statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

server clock.isc.org
restrict clock.isc.org
restrict 127.0.0.1
EOF

cat <<EOF > /var/lightMPD/etc/timezone
Asia/Tokyo
EOF

ln -s ../../../usr/share/zoneinfo/posix/Asia/Tokyo /var/lightMPD/etc/localtime

#### output-setup-mpd-script

--------------------------------------------------------------------------------

# cat /var/lightMPD/bin/syssetup.log
*** ERROR: Invalid format parameter syntax in "ln -s ~a/~a ~a/md~2'0d\n"
Stack Trace:
_______________________________________
0 (format port "ln -s ~a/~a ~a/md~2'0d\n" MOUNT-POINT (car dlist) MU
At line 485 of "/var/lightMPD/bin/syssetup.scm"
1 (call-with-output-string (lambda (port) (let ((dirs (string-split
At line 473 of "/var/lightMPD/bin/syssetup.scm"
2 (format port "# output-buildmusic-script\n~a" (output-buildmusic-s
At line 567 of "/var/lightMPD/bin/syssetup.scm"
3 (output-setup-mpd-script root-param)
At line 643 of "/var/lightMPD/bin/syssetup.scm"
4 (format port "~a\n" (output-setup-mpd-script root-param))
At line 643 of "/var/lightMPD/bin/syssetup.scm"
5 (output-setup-script root-param setup-script)
At line 978 of "/var/lightMPD/bin/syssetup.scm"

-----------------------------------------------------------------------------------

# cat /var/lightMPD/etc/nasmount.sh
cat: can't open '/var/lightMPD/etc/nasmount.sh': No such file or directory

-----------------------------------------------------------------------------------

# cat /var/lightMPD/etc/nasmount.log
cat: can't open '/var/lightMPD/etc/nasmount.log': No such file or directory

宜しくお願い致します。

digi...@gmail.com

unread,
Oct 4, 2017, 11:52:58 AM10/4/17
to lightMPD
asa100daさん

エラー情報の収集ありがとうございました。

原因が分かりました。
[mpd]
   music_directory 

で複数のディレクトリを指定された場合の処理に誤りがありました。

1.0.2時代からあったバグですが、lightMPDで使っているgaucheというプログラムが1.0.5でバージョンが
上がった為、顕在化しました。
同一プログラムで1.0.2で動作するが1.0.5で動作しない事を確認しました。

initrd(initrd-lightmpd-64-20171005)を修正しましたのでこれを/boot/initrd-lightmpd-64に置き換えて下さい。(上書きコピーして下さい)

他のCPU版も同様のバグをかかえてますので、正式版はちょっと先になります。

このたびは大変なご迷惑をおかけして申し訳ありませんでした。また、バグの調査にご協力を頂き大変感謝しております。

asa100da

unread,
Oct 5, 2017, 6:34:58 AM10/5/17
to lightMPD
digifi様
修正プログラムののアップ、ありがとうございました。
早速、ファイルを置き換えて試したところ正常に動作しました。
それどころか、あれほど私を悩ませていたDSD Nativeでのノイズが(combo384のファームはまだ更新していないのですが)きれいに無くなっています。
CDトランスポートを押しのけてlightMPDが私のメインのオーデオシステムになりそうです。
Reply all
Reply to author
Forward
0 new messages