apu1用のlightMPD-v1.0.2(64bit版)を公開しました
投稿日: 2016/05/20 3:03:55
[更新履歴]
- 2016/05/20 公開
apu1用のlightMPD-v1.0.2(64bit版)を公開しました。
バグフィックスとチューニング方法を変更しました。
主な変更点
- バグフィックス
- 64bit版ではsoxrがopenmpに未対応でした。openmpに対応しました。
- kernelのバージョン
- linux-4.4.6rt14
- mpdのバージョン
- mpd-0.19.14rt-native-dsd
- cpuaffinityの変更と強化
- microSDメモリ,USBメモリからのブートを識別するために、ブートパラメータでブートデバイスの指定を行えるようにしました。
linux-4.4.6rt14について
native-dsdに対応するDAC(DDC)
- Wyred 4 Sound DAC-2 DSD
- iFi Audio micro/nano iDSD
- Matrix Audio X-Sabre
- Matrix Audio Mini-i Pro
- OPPO HA-1
- Mytek Brooklyn DAC
- Gustard DAC-X20U
- DIYINHK DSD DXD 384kHz USB to I2S/DSD
- JLsounds I2SoverUSB
- Aune X1S 32BIT/384 DSD DAC
- Unison Research Unico CD Due
- OPPO HA-2
- PS Audio NuWave DAC
- Amanero Combo384
- ElectrArt USDA2, USDA_MINI
このうち実際に動作確認したのは
- ElectrArt USDA2, USDA_MINI
- DIYINHK DSD DXD 384kHz USB to I2S/DSD
- JLsounds I2SoverUSB
です。
mpd-0.19.14rt-native-dsdはAmanero combo384をサポートしています。
combd384 でnative dsdを使う場合は audio_output を以下のようにして下さい。
(combo384ではdsd128->dsd64の切換が旨く出来ません)。
native_dsd "yes"
native_dsd_type "3"
cpuaffinityについて
cpuaffinityを以下のようにしました。
- type=0
- cpuaffinity を使用しない
- type=1
- core1: irqhandlerで指定した割込ハンドラーが動作する
- core0,2,3: 上記のハンドラー以外が動作する
- type=2
- 指定は出来ますが、動作はtype=1と同じになります。
cpuaffinityの設定はlightmpd.confの[cpuaffinity]とブートパラメータ(/boot/grub/menu.lst)で行います。
例
[cpuaffinity]
type=1
cpuaffinityに1を指定した場合はブートパラメータに以下を追加して下さい。
isolcpus=1 nohz_full=1 rcu_nocbs=1
デフォルトはtype=1です。
irqhandlerについて
lightmpd.confの[irqpriority]でDACを接続したUSBのirqhandlerのプライオリティの指定が行えます。
apu1では無指定の場合以下の用に設定されます。
ehci_hcd:usb1=FIFO:99
ohci_hcd:usb1=FIFO:99
デフォルト値を変更する場合は以下のようにして下さい。
[irqpriority]
setdefault=no <-- デフォルトの設定を無効にする
ehci_hcd:usb2=FIFO:99
ブートデバイスについて
lightMPDではkernelのブート完了後ブートデバイスからlightmpd.confを参照して初期化を行います。
apu2等のようにブートするデバイスによってデバイス名が変わる機種の為に
lightmpd.bootdev
というパラメータを追加しました。
apu1ではmicroSDメモリとUSBメモリからブートできますが、いずれのデバイス名も/dev/sda1になります。
apu1ではブートデバイス毎に下記の様に指定します。この指定を行わないとブートに失敗します。
lightmpd.bootdev=/dev/sda1
USBメモリとmicroSDメモリの共存
microSDメモリが装着されたシステムでUSBメモリからブートするとブート失敗する場合があります。
USBメモリの機種やDACの接続状況によってブートが出来たり失敗したりします。
これはブートしたUSBメモリのデバイス名が/dev/sda1ではなく/dev/sdb1になってしまうためです。
microSDメモリを装着したapu1でUSBメモリからブートする場合は、USBメモリをUSBポートの上段に装着すると
このような事はなくなります。
不要なトラブルを防ぐためにもUSBメモリからブートする場合はUSBメモリをUSBポートの上段に装着して下さい。
クロックソース
apu2,apu1ではclocksourceにhpetとtscを指定できます。
以前はhpetをデフォルトにしてましたが、このバージョンからtscをデフォルトにしました。
clocksourceの指定を行う場合は /boot/grub/menu.lstのkernelに下記を追加します。
- hpet
- clocksource=hpet
- tsc
- clocksource=tsc idel=poll processor.max_cstate=1
ブートパラメータ
ブートパラメータは/boot/grub/menu.lstで指定します。従来のパラメータから下記の物を追加しました。
- lightMPDで追加したブートパラメータ
- lightmpd.bootdevlightmpd.systype
- システムのタイプを指定します。apu2の場合は
lightmpd.systype=apu2
- とします。
- cpuaffinity関連のパラメータ
- クロックソース
/boot/grub/menu.lstにはいくつかのパターンが用意されてます。
デフォルトは
- クロックソースはtsc
- cpuaffinityを使用する
になってます。
インストール
- イメージファイルのダウンロード
- インストールするSDメモリに合わせたイメージをダウンロードします。SDメモリより大きなイメージを選択するとインストールできません。
- イメージファイルの解凍
- イメージファイルは圧縮されてますので、それを解凍します。
- xzという属性のファイルは7zip等のプログラムを使って解凍します。
- xzが解凍できない場合は、256MbyteのイメージはWindows付属のプログラムで解凍できますので、SDメモリの容量によらず256Mbyteのイメージを使って下さい。
- 解凍したイメージをSDメモリに書き込みます。
- 書き込みにはDDwin for Windowsを使って下さい。
- 一度SDメモリを取り出して下さい。
- 配布パッケージのダウンロード
- 配布パッケージの解凍
- 配布パッケージはzipで圧縮されています。配布パッケージをイメージファイルをインストールしたSDメモリに解凍します。
- /lightMPD/lightmpd.confの編集
- 必要があれば/boot/grub/menu.lstの編集
linux-4.6rt1
パッケージ作成中に4.6の正式版が公開されました。パッケージとは別に4.6rt1を用意しました。
- インストール方法
- apu1-linux-4.6rt1-201605120zipを解凍すると bzImage-4.6rt1-64が作成されます。
- このファイルを/boot/bzImage-64にオーバーライトして下さい。
- 注意
- 4.6rt1でnohz_full=1を指定するとhtop(CPUの利用状況を表示するプログラムでCPUの使用率が50%近くの値を表示しますが、
- これはhtopが対応出来ていない為で問題はありません。
ダウンロード
- イメージファイル
- apuboot256m.img.zip (256Mbyte用のイメージ 解凍後のサイズ: 256376832 byte)
- apuboot2g.img.xz (2Gbyte用のイメージ、解凍後のサイズ: 1,926.0Bbyte)
- apuboot4g.img.xz, (4Gbyte用のイメージ、解凍後のサイズ: 849.0Bbyte)
- 配布パッケージ