Direttaの開発者が、Stay at Home支援の一環として、制限版(無料の期限付き試用版)のUSB Bridge x64の提供を開始しました。
Diretta Targetを試してみたい方には、ご自身のUSB-DACと2台のPCとで使用できるようになりますので、朗報だとおもいます(ただし、サポートはありません。サポートをご希望の方は、同等機能製品である、オリオスペックのDiretta Target PCをご使用ください)。
5月末までの期限付きですので、ご関心のある方は、お早めにどうぞ。
https://www.facebook.com/DirettaLinkAudio/posts/717984115609830" target="_blank">https://www.facebook.com/DirettaLinkAudio/posts/717984115609830
https://www.diretta.link/" target="_blank">https://www.diretta.link/
https://support.diretta.link/doku.php?id=diretta:asio" target="_blank">https://support.diretta.link/doku.php?id=diretta:asio
https://support.diretta.link/doku.php?id=diretta:asio:setting:doppio" target="_blank">https://support.diretta.link/doku.php?id=diretta:asio:setting:doppio
緊急事態宣言が延長されると予測されるため、制限版の使用期限を、6月末まで延長されるとのことです。
とても優れた音質だとおもいますので、まだ未体験の方は、この機会にぜひお試しになってみてください。
https://www.facebook.com/DirettaLinkAudio/posts/717984115609830" target="_blank">https://www.facebook.com/DirettaLinkAudio/posts/717984115609830
手順書の作成方針
手順書は、「ファイルサーバの構築」、「MPDサーバの構築1」、「MPDサーバの構築2」、「運用方法」の順に書いていきます。
yoさん、ゴンザエモンさん、他の方達の多くにおいてはおそらくご存じのことを書いていきますが、
初心者の方もおられると思いますので、ご寛容ください。
また、yoさんのブログから頂いた情報も書いていますが、手順を書くに代え難いものですのでご容赦の程、お願いします。
また、他のブログ等からの情報も参考にしています。
引用先を明示はしませんが、先達の方達には感謝しております。
前提条件および、私の環境について
私のシステム構成は、ファイルサーバ、MPDサーバ、クライアントの3台です。
システムディスク、音楽データにはSSDを使用しています。
SSDを選択した理由は、速いこともありますが電気代が安いからです。
サーバの運用形態が24時間365日稼働ですので。
OSはDebian、ネットワークはnfsを使用しています。
プログラムの開発は行っておらず(但し、MPD、alsa関係のプログラムのコンパイルはしています)、全て既存のものを使用しています。
パソコンはインテルNCUを使用しています。
サーバのスペックとしては、インテル Core i3、メモリ8Gあれば十分だと思います。
「ファイルサーバの構築」
1.Debian Busterのインストール
DebianのサイトからISOイメージをダウンロードし、USBメモリーに書き込み後、
パソコンからDebianをインストールして下さい。
導入機能はSSHサーバのみ、ファイルシステムはXFSがいいと思います。
インストール後、再起動して下さい
・パッケージアーカイブ先の設定
vi /etc/apt/sources.list
以下の行をコメントアウトして下さい。
#deb cdrom:[Debian GNU/Linux 9.5.0 _Stretch_ - Official amd64 DVD Binary-1 20180714-10:25]/ stretch contrib main
・PATHの設定
vi ~/.bashrc
PATH=$PATH:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ohsawa/bin:
export PATH
source ~/.bashrc
・パッケージの更新および関係パッケージのインストール
apt-get update
apt-get upgrade
apt-get install net-tools ※ifconfigを使用するため
apt-get install aptitude
apt-get install samba ※sambaを使用するのであれば(samba設定ファイルの例を最後に添付します)
apt-get install install nfs-kernel-server ※nfsを使用するのであれば必要
apt-get install irqbarance 割り込みのコア負荷分散
apt-get install rtirq-init オーディオ機器に関連するIRQストリームの優先度を上げるスクリプトが含まれています
インストール後、/ etc / default / rtirqファイル、つまり優先度を上げるIRQストリームの
リストを編集する必要がある場合があります。
RTIRQ_NAME_LIST="rtc snd usb i8042"
※不要なサービスを停止するためにsysv-rc-confをインストールされている方も多いと思いますが、停止設定をしてもサービスは停止しません。
サービス停止は、直接停止のためのコマンドを実行する必要があります。
(例) service cron stop
・リアルタイムカーネルのインストール
aptitude search linux-image によりカーネルイメージを探し、インストール
私は以下を選択しました。
aptitude install linux-image-4.19.0-8-rt-amd64
aptitude install linux-image-rt-amd64
・現在のIPアドレスの確認
ifconfig -a
IPアドレスを確認後は、Tera Term等を使用したSSHによるWindowsからの作業となります。
・ネットワークの設定
vi /etc/network/interfaces
※環境に応じて、ネットワーク名、IPアドレスを書き換えてください。
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
#allow-hotplug enp0s25
#iface enp0s25 inet dhcp
# This is an autoconfigured IPv6 interface
#iface enp0s25 inet6 auto
auto enp0s25
iface enp0s25 inet static
address 192.168.1.14
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1
・GRUBの更新
vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULの行を以下のように変更し保存
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash threadirqs nowatchdog mitigations=off"
nowatchdog:watchdogの停止
mitigations=off:CPU の脆弱性の緩和策をオフにする
update-grub2
・rootによるログインを可能とする(任意)
rootによるログインは好ましいものではありませんが、
自宅で本人しか使用しないのであればいいと思います。
vi /etc/ssh/sshd_config
PermitRootLoginの行を探し
PermitRootLogin yes とします。
再起動します。
再起動後uname -a にてカーネル名が「linux-image-4.19.0-8-rt-amd64」
になっているか確認して下さい。
再起動後の作業は、Tera Term等を使用したSSHによるWindowsからのものとなります。
・RAIDの構築
※RAIDを使用しないのであれば必要ありません。
[私の場合、SSD3台によるRAID0]
(1)パーティションの確認
fdisk -l
(2)パーティションの作成
fdisk /dev/sda
fdisk /dev/sdb
fdisk /dev/sdc
※全てデフォルトでかまいません。
(3)RAIDの作成
aptitude install mdadm
mdadm --create /dev/md0 --level=raid0 --raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
※注意点
実は、RTカーネルをインストールをしていないでRAID構築後、再起動すると、
/dev/md0が存在せず、/dev/md127と言う名称に変わっています。
この不具合は、RTカーネルをインストール後、/etc/mdadm/mdadm.confを削除し
もう一度、mdadm --detail --scan >> /etc/mdadm/mdadm.conf を実行すると直ります。
・xfsファイルシステムの作成
mkfs.xfs /dev/md0
・マウントの設定
[私の場合]
mkdir /music
vi /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/nvme0n1p1 during installation
UUID=8e8e3d95-f4f9-4c56-96b2-beb83f7a16a4 / xfs noatime 0 0
# swap was on /dev/nvme0n1p5 during installation
UUID=4d19de4f-bea0-4992-a220-ee876a439215 none swap sw 0 0
#
tmpfs /tmp tmpfs defaults,noatime 0 0
tmpfs /var/tmp tmpfs defaults,noatime 0 0
#tmpfs /var/log tmpfs defaults,noatime 0 0
#
/dev/md0 /music xfs rw,nosuid,dev,noexec,auto,nouser,async,nofail,noatime barrier=0 0 0
vi /etc/exports(NFSを使用するのであれば)
[私の場合]
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
/music 192.168.1.0/24(rw,async,no_subtree_check)
#
mount -a
chmod 777 /music
・細かい設定
vi /etc/sysctl.d/99-sysctl.conf
vm.swappiness = 10
net.ipv4.tcp_no_metrics_save=1
net.ipv6.conf.eno1.disable_ipv6 = 1
sysctl -えぃtぃtp
・sambaの設定ファイル
vi /etc/samba/smb.conf
#
# Sample configuration file for the Samba suite for Debian GNU/Linux.
#
#
# This is the main Samba configuration file. You should read the
# smb.conf(5) manual page in order to understand the options listed
# here. Samba has a huge number of configurable options most of which
# are not shown in this example
#
# Some options that are often worth tuning have been included as
# commented-out examples in this file.
# - When such options are commented with ";", the proposed setting
# differs from the default Samba behaviour
# - When commented with "#", the proposed setting is the default
# behaviour of Samba but the option is considered important
# enough to be mentioned here
#
# NOTE: Whenever you modify this file you should run the command
# "testparm" to check that you have not made any basic syntactic
# errors.
#======================= Global Settings =======================
[global]
unix charset = UTF-8
dos charset = CP932
hosts allow = 192.168.1. 127.
security = user
map to guest = bad user
load printers = no
disable spoolss = yes
printing = bsd
## Browsing/Identification ###
# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = WORKGROUP
# server string is the equivalent of the NT Description field
server string = %h server (Samba, Ubuntu)
# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable its WINS Server
# wins support = no
# WINS Server - Tells the NMBD components of Samba to be a WINS Client
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
; wins server = w.x.y.z
# This will prevent nmbd to search for NetBIOS names through DNS.
dns proxy = no
#### Networking ####
# The specific set of interfaces / networks to bind to
# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
; interfaces = 127.0.0.0/8 eth0
# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself. However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
; bind interfaces only = yes
#### Debugging/Accounting ####
# This tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/samba/log.%m
# Cap the size of the individual log files (in KiB).
max log size = 1000
# If you want Samba to only log through syslog then set the following
# parameter to 'yes'.
# syslog only = no
# We want Samba to log a minimum amount of information to syslog. Everything
# should go to /var/log/samba/log.{smbd,nmbd} instead. If you want to log
# through syslog you should set the following parameter to something higher.
syslog = 0
# Do something sensible when Samba crashes: mail the admin a backtrace
panic action = /usr/share/samba/panic-action %d
####### Authentication #######
# Server role. Defines in which mode Samba will operate. Possible
# values are "standalone server", "member server", "classic primary
# domain controller", "classic backup domain controller", "active
# directory domain controller".
#
# Most people will want "standalone sever" or "member server".
# Running as "active directory domain controller" will require first
# running "samba-tool domain provision" to wipe databases and create a
# new domain.
server role = standalone server
# If you are using encrypted passwords, Samba will need to know what
# password database type you are using.
passdb backend = tdbsam
obey pam restrictions = yes
# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
unix password sync = yes
# For Unix password sync to work on a Debian GNU/Linux system, the following
# parameters must be set (thanks to Ian Kahan <<kahan@informatik.tu-muenchen.de> for
# sending the correct chat script for the passwd program in Debian Sarge).
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
# This boolean controls whether PAM will be used for password changes
# when requested by an SMB client instead of the program listed in
# 'passwd program'. The default is 'no'.
pam password change = yes
# This option controls how unsuccessful authentication attempts are mapped
# to anonymous connections
map to guest = bad user
########## Domains ###########
#
# The following settings only takes effect if 'server role = primary
# classic domain controller', 'server role = backup domain controller'
# or 'domain logons' is set
#
# It specifies the location of the user's
# profile directory from the client point of view) The following
# required a [profiles] share to be setup on the samba server (see
# below)
; logon path = \\%N\profiles\%U
# Another common choice is storing the profile in the user's home directory
# (this is Samba's default)
# logon path = \\%N\%U\profile
# The following setting only takes effect if 'domain logons' is set
# It specifies the location of a user's home directory (from the client
# point of view)
; logon drive = H:
# logon home = \\%N\%U
# The following setting only takes effect if 'domain logons' is set
# It specifies the script to run during logon. The script must be stored
# in the [netlogon] share
# NOTE: Must be store in 'DOS' file format convention
; logon script = logon.cmd
# This allows Unix users to be created on the domain controller via the SAMR
# RPC pipe. The example command creates a user account with a disabled Unix
# password; please adapt to your needs
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
# This allows machine accounts to be created on the domain controller via the
# SAMR RPC pipe.
# The following assumes a "machines" group exists on the system
; add machine script = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u
# This allows Unix groups to be created on the domain controller via the SAMR
# RPC pipe.
; add group script = /usr/sbin/addgroup --force-badname %g
############ Misc ############
# Using the following line enables you to customise your configuration
# on a per machine basis. The %m gets replaced with the netbios name
# of the machine that is connecting
; include = /home/samba/etc/smb.conf.%m
# Some defaults for winbind (make sure you're not using the ranges
# for something else.)
; idmap uid = 10000-20000
; idmap gid = 10000-20000
; template shell = /bin/bash
# Setup usershare options to enable non-root users to share folders
# with the net usershare command.
# Maximum number of usershare. 0 (default) means that usershare is disabled.
; usershare max shares = 100
# Allow users who've been granted usershare privileges to create
# public shares, not just authenticated ones
usershare allow guests = yes
#======================= Share Definitions =======================
# Un-comment the following (and tweak the other settings below to suit)
# to enable the default home directory shares. This will share each
# user's home directory as \\server\username
;[homes]
; comment = Home Directories
; browseable = no
# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
; read only = yes
# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
; create mask = 0700
# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
; directory mask = 0700
# By default, \\server\username shares can be connected to by anyone
# with access to the samba server.
# Un-comment the following parameter to make sure that only "username"
# can connect to \\server\username
# This might need tweaking when using external authentication schemes
; valid users = %S
# Un-comment the following and create the netlogon directory for Domain Logons
# (you need to configure Samba to act as a domain controller too.)
;[netlogon]
; comment = Network Logon Service
; path = /home/samba/netlogon
; guest ok = yes
; read only = yes
# Un-comment the following and create the profiles directory to store
# users profiles (see the "logon path" option above)
# (you need to configure Samba to act as a domain controller too.)
# The path below should be writable by all users so that their
# profile directory may be created the first time they log on
;[profiles]
; comment = Users profiles
; path = /home/samba/profiles
; guest ok = no
; browseable = no
; create mask = 0600
; directory mask = 0700
[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700
# Windows clients look for this share name as a source of downloadable
# printer drivers
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
# Uncomment to allow remote administration of Windows print drivers.
# You may need to replace 'lpadmin' with the name of the group your
# admin users are members of.
# Please note that you also need to set appropriate Unix permissions
# to the drivers directory for these users to have write rights in it
; write list = root, @lpadmin
#
[music]
path = /music
writable = yes
guest ok = yes
guest only = yes
create mode = 0777
directory mode = 0777
音源SSDのストライピングをされている由。ふと、こんなことを思ったのですが、可能なのかな?
1.現状1台のSSDで運用しているが、容量が足りなくなりつつある。
2.容量を倍増させようと思うと高いし、今のSSDが余ってしまう。
3.(例えば)1TBくらいのSSDなら安いし当面の対応ともなるので、現状+追加の1台で全体容量を拡大して使う。
改めてシステム的にはRAID0を組んで、音源も流し込まねばいけないとは思いますが、、、
SSDの追加は可能です。
但し、現状と同じ容量のSSDを購入する必要があります。
RAIDは容量の少ない方に合わせて作成されるからです。
(これはRAID0だけではなく全てのRAIDに共通する仕様です。)
例えば、現状のSSDが2TBでも新たに購入したSSDが1TBだと
1TB+1TB=2TBとなってしまいます。
従って、RAID0を作成するのであれば現状と同じ容量のSSDを購入してください。
手順は以下のとおりです。
1.samba等を利用し現在の音楽データをハードディスク等にバックアップします。
2.2台のSSDでRAID0を構築します。
3.念の為、PCを再起動してRAIDが出来ているか確認してください。
4.バックアップから音楽データをRAID0のSSDにコピーします。
MPDサーバの構築について、以下に書かせて頂きます。
ただ、考えてみるとMPDサーバの構築はファイルサーバの構築と
ほとんど同じですので、追加、変更箇所のみ書きますね。
「MPDサーバの構築手順」
・NFSを使用している場合
apt-get install nfs-common
vi /etc/sysctl.d/nfs_tuning.conf ※ファイルサーバ側でも行ってください。書き忘れていました。
net.core.wmem_max = 50331648
net.core.rmem_max = 50331648
net.ipv4.tcp_mem = "50331648 50331648 50331648"
net.ipv4.udp_mem= "50331648 50331648 50331648"
net.core.netdev_max_backlog = 5000
・/etc/fstabの編集
mkdir /music
vi /etc/fstab(私の環境)
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/nvme0n1p1 during installation
UUID=ffc9e593-9387-42c5-8f96-8b0979282396 / xfs noatime 0 0
# swap was on /dev/nvme0n1p5 during installation
UUID=2109c492-4d39-4ce1-b477-b4acee059f22 none swap sw 0 0
#
192.168.1.14:/music /music nfs auto,rw,nosuid,dev,noexec,nouser,async,nofail,noatime,udp 0 0
#
tmpfs /dev/shm tmpfs defaults,noatime 0 0
tmpfs /tmp tmpfs defaults,noatime 0 0
・mpdとmpcのインストール
※参考までに、私の/etc/mpd.confの変更箇所を最後に付加しておきます。
aptitude install mpd
aptitude install mpc
・mpd、libmpdclient、alsa-lib、alsa-plugins、libsamplerate、libsndfile のコンパイル
apt-get install build-essential dpkg-dev autoconf automake libboost-dev libicu-dev
(1)mpd
cd /tmp
apt-get build-dep mpd
wget http://www.musicpd.org/download/mpd/0.21/mpd-0.21.23.tar.xz" target="_blank">http://www.musicpd.org/download/mpd/0.21/mpd-0.21.23.tar.xz
tar xvJf mpd-0.21.23.tar.xz
cd mpd-0.21.23
CFLAGS="-O2 -march=native" meson . output/release --buildtype=plain -Db_ndebug=true
meson configure output/release
ninja -C output/release
ninja -C output/release install
vi /etc/init.d/mpd 編集
daemon=/user/local/bin
vi /etc/default/mpd 編集
echo DAEMON=/usr/local/bin/mpd >>/etc/default/mpd
vi /usr/lib/systemd/user/mpd.service 編集
ExecStart=/usr/local/bin/mpd --no-daemon
ln -sf /etc/mpd.conf /usr/local/etc/mpd.conf
/etc/init.d/mpd/stop
/etc/init.d/mpd/start
mpd -V にて変更を確認
(2)libmpdclient
cd /tmp
apt-get build-dep libmpdclient
wget https://www.musicpd.org/download/libmpdclient/2/libmpdclient-2.18.tar.xz" target="_blank">https://www.musicpd.org/download/libmpdclient/2/libmpdclient-2.18.tar.xz
tar xvJf libmpdclient-2.18.tar.xz
cd libmpdclient-2.18
CFLAGS="-O2 -march=native" meson . output/release --buildtype=plain -Db_ndebug=true
meson configure output/release
ninja -C output/release
ninja -C output/release install
(3)alisa-lib
apt-get build-dep alsa-lib
wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.2.2.tar.bz2
bunzip2 -c alsa-lib-1.2.2.tar.bz2 | tar -xf -
cd alsa-lib-1.2.2
./configure CFLAGS="-O2 -march=native"
make
make install
(4)alsa-plugins
apt-get build-dep alsa-plugins
cd /tmp
wget ftp://ftp.alsa-project.org/pub/plugins/alsa-plugins-1.2.2.tar.bz2
bunzip2 -c alsa-plugins-1.2.2.tar.bz2 | tar -xf -
cd alsa-plugins-1.2.2
./configure CFLAGS="-O2 -march=native"
make
make install
(5)libsamplerate
cd /tmp
apt-get build-dep libsamplerate
wget http://www.mega-nerd.com/SRC/libsamplerate-0.1.9.tar.gz" target="_blank">http://www.mega-nerd.com/SRC/libsamplerate-0.1.9.tar.gz
tar -xvzf libsamplerate-0.1.9.tar.gz
cd libsamplerate-0.1.9
./configure CFLAGS="-O2 -march=native"
make
make install
(6)libsndfile
cd /tmp
apt-get build-dep libsndfile
wget http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28.tar.gz" target="_blank">http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28.tar.gz
tar -xvzf libsndfile-1.0.28.tar.gz
cd libsndfile-1.0.28
./configure CFLAGS="-O2 -march=native"
make
make install
・I/Oスケジューラの設定
SSDの場合 ※ファイルサーバでも必要なことなのですが、何故か最初からnone(デフォルトはmq-deadline)になっていました。
cat /sys/block/nvme0n1/queue/scheduler 使用できるI/Oスケジューラを確認
none [mq-deadline]
vi /etc/udev/rules.d/60-ioschedulers.rules noneに変更
ACTION=="add|change", KERNEL=="nvme0n1", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="none"
cat /sys/block/nvme0n1/queue/scheduler
[none] mq-deadline
・細かいこと
vi /etc/asound.conf
defaults.pcm.rate_converter "samplerate_best"
aplay -l
vi /etc/sysctl.d/99-sysctl.conf
options snd-usb-audio index=1
options snd-usb-audio nrpacks=1
vi /etc/security/limits.conf
@audio - rtprio 99
@audio - nice -19
@audio - memlock unlimited
vi /etc/sysctl.d/99-sysctl.conf
vm.swappiness = 1
fs.inotify.max_user_watches = 524288
net.ipv4.tcp_no_metrics_save=1
net.ipv6.conf.eno1.disable_ipv6 = 1
・ /etc/mpd.conf(私の環境での変更箇所のみ記述)
log_level "default"
audio_output {
type "alsa"
name "My ALSA Device"
device "hw:1,0" # optional
mixer_type "disabled" # optional
# mixer_device "default" # optional
# mixer_control "PCM" # optional
# mixer_index "0" # optional
dop "yes"
}
samplerate_converter "Best Sinc Interpolator"
以下に、運用について書かせて頂きます。
「運用手順」
前提として、運用は24時間365日稼働です。
まず、ファイルサーバ、MPDサーバともオーディオ機能はBIOSにてOFFにしてください。
・ファイルサーバ
(1)topコマンドにてusb、ネットワークのデーモンを確認。
私の環境ではUSBは「irq/124-xhci_hc」です。
しかし、何故か再起動すると、 irq/124-xhci_hcが irq/123-xhci_hcや irq/125-xhci_hcに
変わることがあるので/etc/rc.localに書くことが出来ません。
私の環境ではネットワークは「irq/122-eno1」です。
(2)USBコントローラPCIコードを確認
lspci -nn
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller [8086:9d2f] (rev 21)
(3)以下のコマンドを実行
chrt -f -p 99 `pgrep irq/124-xhci_hc`
setpci -v -d *:* latency_timer=b0
setpci -v -d 8086:9d2f latency_timer=ff
chrt -f -p 99 `pgrep irq/122-eno1`
service cron stop
service rsyslog stop
service dbus stop
service exim4 stop
echo 2048 > /sys/class/rtc/rtc0/max_user_freq
echo 2048 > /proc/sys/dev/hpet/max-user-freq
・mpdサーバ
(1)topコマンドにてusb、ネットワークのデーモンを確認。
私の環境ではUSBは「irq/124-xhci_hc」です。
しかし、何故か再起動すると、 irq/124-xhci_hcが irq/123-xhci_hcや irq/125-xhci_hcに
変わることがあるので/etc/rc.localに書くことが出来ません。
私の環境ではネットワークは「irq/122-eno1」です。
(2)USBコントローラPCIコードを確認
lspci -nn
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller [8086:9d2f] (rev 21)
(3)以下のコマンドを実行
chrt -f -p 99 `pgrep irq/124-xhci_hc`
setpci -v -d *:* latency_timer=b0
setpci -v -d 8086:9d2f latency_timer=ff
chrt -f -p 99 `pgrep irq/122-eno1`
chrt -f -p 99 `pgrep mpd`
service cron stop
service rsyslog stop
service dbus stop
service exim4 stop
echo 2048 > /sys/class/rtc/rtc0/max_user_freq
echo 2048 > /proc/sys/dev/hpet/max-user-freq
私の現時点におけるの手順書は以上ですが、
これからも皆さんのお役に立てることが有ればコメントさせて頂きますね。
MPDサーバ、ファイルサーバの設定を一部修正、追加しました。
・/etc/sysctl.d/nfs_tuning.confを削除し、/etc/sysctl.d/99-sysctl.confに統一
内容は以下の通り(MPDサーバ、ファイルサーバ共通です。そして、nfsのudpのみに
関係がある項目がありますが、TCPでは使われないだけで問題ありません)。
私の環境では、以下の設定が最も通信効率がいいようです。
vi /etc/sysctl.d/99-sysctl.conf
vm.swappiness = 10
fs.inotify.max_user_watches = 524288
net.ipv4.tcp_no_metrics_save=1
net.ipv6.conf.eno1.disable_ipv6 = 1
net.core.rmem_default=33554432
net.core.wmem_default=33554432
net.core.rmem_max=33554432
net.core.wmem_max=33554432
net.ipv4.tcp_rmem=33554432 33554432 33554432
net.ipv4.tcp_wmem=33554432 33554432 33554432
net.ipv4.udp_rmem_min=33554432
net.ipv4.udp_wmem_min=33554432
net.ipv4.udp_mem=33554432 33554432 33554432
net.core.netdev_max_backlog=5000
net.ipv4.conf.all.forwarding=1
sysctl -p にて反映
・/etc/mpd.confの一部変更
audio_output {
type "alsa"
name "My ALSA Device"
device "hw:1,0" # optional
mixer_type "disabled" # optional
auto_resample "no" # 追加部分です(関係ないと思いますが、念の為)
use_mmap "yes" #追加部分です
# mixer_device "default" # optional
# mixer_control "PCM" # optional
# mixer_index "0" # optional
dop "yes"
}
・prelinkの導入
mpdサーバ、ファイルサーバの両方にインストールします。
aptitude install prelink
prelink -amR #サーバ立ち上げに実行
※パッケージ更新時には、再度、実行してください。
私の環境ではprelinkの音質向上は大きいものでした。
・ファイルサーバの運用の変更
setpciをUSBからEthernetに変更
lspci -nn
00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (4) I219-V [8086:15d8] (rev 21)
setpci -v -d *:* latency_timer=b0
#setpci -v -d 8086:9d2f latency_timer=ff #USBをコメントアウト
setpci -v -d 8086:15d8 latency_timer=ff #Ethernetを追加
パソコン立ち上げ時のメッセージを確認したところ
intel関係のファームウェアロードエラーが出ていることがわかりました。
エラーが出ても動作に問題は無いようですが、
気持ちのいいものではないのでその解決法を書かせて頂きます。
vi /etc/apt/sources.list
以下を追加
# buster-updates, previously known as 'volatile'
deb http://ftp.jp.debian.org/debian/" target="_blank">http://ftp.jp.debian.org/debian/ buster-updates main contrib
deb-src http://ftp.jp.debian.org/debian/" target="_blank">http://ftp.jp.debian.org/debian/ buster-updates main contrib
deb http://ftp.jp.debian.org/debian" target="_blank">http://ftp.jp.debian.org/debian buster main non-free
deb-src http://ftp.jp.debian.org/debian" target="_blank">http://ftp.jp.debian.org/debian buster main non-free
aptitude update
aptitude upgrade
aptitude install firmware-linux-free
aptitude install firmware-linux-nonfree
上記作業において質問されますが、全てYesで大丈夫です。
作業終了後、再起動
dmesgにてエラーが無いことを確認。
以上です。
mpdサーバ側のfstabの変更
変更点は、rsizeとwsizeの追加ですが、この値については
これから最適値を探していきます。
vi /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/nvme0n1p1 during installation
UUID=ffc9e593-9387-42c5-8f96-8b0979282396 / xfs noatime 0 0
# swap was on /dev/nvme0n1p5 during installation
UUID=2109c492-4d39-4ce1-b477-b4acee059f22 none swap sw 0 0
#
#192.168.1.14:/music /music nfs auto,rw,nosuid,dev,noexec,nouser,async,nofail,noatime,udp,rsize=65536,wsize=65536 0 0
192.168.1.14:/music /music nfs auto,rw,nosuid,dev,noexec,nouser,async,nofail,noatime,udp,rsize=1048576,wsize=1048576 0 0
#
tmpfs /dev/shm tmpfs defaults,noatime 0 0
tmpfs /tmp tmpfs defaults,noatime 0 0
音が変わったかは、はっきりとはわかりませんでした。
まず、一部、コンパイルのところに間違いがありましたので
修正させて頂きます。
誤 apt-get install build-essential dpkg-dev autoconf automake libboost-dev libicu-dev
正 apt-get install build-essential dpkg-dev autoconf automake libboost-dev libicu-dev meson
・lsusb のコンパイル(mpdサーバ、ファイルサーバ両方に実行)
cd /tmp
apt-get build-dep libusb
wget https://github.com//libusb/libusb/releases/download/v1.0.23/libusb-1.0.23.tar.bz2" target="_blank">https://github.com//libusb/libusb/releases/download/v1.0.23/libusb-1.0.23.tar.bz2
bunzip2 -c libusb-1.0.23.tar.bz2 | tar -xf -
cd libusb-1.0.23
./configure CFLAGS="-O2 -march=native"
make
make install
再起動します。
gorokiです。
お久しぶりです。
私は、自身でファイルサーバを構築しているのですが、その設定により
かなり音質に影響が出るようです。
そこで、私の環境において、現時点では、まあ、いい感じではないかと思われる設定内容を公開させて頂きます。
内容の多くは、yoさん、はじめ、いろいろな方のサイトを参考にしています。
/etc/fstab
/etc/sysctl.conf
/etc/rc.local
OSはdebian bullseye リアルタイムカーネル、ファイルサーバはNFS、SSD,2TB 3枚によるRAID0を使用しています。
MPDサーバの設定もraid以外は同じですが、一応、書いておきます。
参考になりましたら幸いです。
■ファイルサーバー環境
※</etc/fstab>
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/nvme0n1p1 during installation
UUID=8e8e3d95-f4f9-4c56-96b2-beb83f7a16a4 / xfs noatime,discard 0 0
# swap was on /dev/nvme0n1p5 during installation
UUID=4d19de4f-bea0-4992-a220-ee876a439215 none swap sw 0 0
#
tmpfs /tmp tmpfs defaults,noatime 0 0
tmpfs /var/tmp tmpfs defaults,noatime 0 0
#tmpfs /var/log tmpfs defaults,noatime 0 0
#
/dev/md0 /music xfs rw,nosuid,dev,noexec,auto,nouser,async,nofail,noatime,discard 0 0
※</etc/sysctl.conf>
#
# /etc/sysctl.conf - Configuration file for setting system variables
# See /etc/sysctl.d/ for additional system variables.
# See sysctl.conf (5) for information.
#
#kernel.domainname = example.com
# Uncomment the following to stop low-level messages on console
#kernel.printk = 3 4 1 3
##############################################################3
# Functions previously found in netbase
#
# Uncomment the next two lines to enable Spoof protection (reverse-path filter)
# Turn on Source Address Verification in all interfaces to
# prevent some spoofing attacks
#net.ipv4.conf.default.rp_filter=1
#net.ipv4.conf.all.rp_filter=1
# Uncomment the next line to enable TCP/IP SYN cookies
# See http://lwn.net/Articles/277146/" target="_blank">http://lwn.net/Articles/277146/
# Note: This may impact IPv6 TCP sessions too
#net.ipv4.tcp_syncookies=1
# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
# Uncomment the next line to enable packet forwarding for IPv6
# Enabling this option disables Stateless Address Autoconfiguration
# based on Router Advertisements for this host
#net.ipv6.conf.all.forwarding=1
###################################################################
# Additional settings - these settings can improve the network
# security of the host and prevent against some network attacks
# including spoofing attacks and man in the middle attacks through
# redirection. Some network environments, however, require that these
# settings are disabled so review and enable them as needed.
#
# Do not accept ICMP redirects (prevent MITM attacks)
#net.ipv4.conf.all.accept_redirects = 0
#net.ipv6.conf.all.accept_redirects = 0
# _or_
# Accept ICMP redirects only for gateways listed in our default
# gateway list (enabled by default)
# net.ipv4.conf.all.secure_redirects = 1
#
# Do not send ICMP redirects (we are not a router)
#net.ipv4.conf.all.send_redirects = 0
#
# Do not accept IP source route packets (we are not a router)
#net.ipv4.conf.all.accept_source_route = 0
#net.ipv6.conf.all.accept_source_route = 0
#
# Log Martian Packets
#net.ipv4.conf.all.log_martians = 1
#
###################################################################
# Magic system request Key
# 0=disable, 1=enable all, >1 bitmask of sysrq functions
# See https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html" target="_blank">https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html
# for what other values do
#kernel.sysrq=438
vm.swappiness = 1
net.ipv4.tcp_no_metrics_save=1
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv4.tcp_tw_reuse = 1
net.core.somaxconn=2048
net.core.netdev_max_backlog=30000
net.core.rmem_default=253952
net.core.wmem_default=253952
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.ipv4.tcp_rmem=253952 253952 16777216
net.ipv4.tcp_wmem=253952 253952 16777216
net.ipv4.tcp_mem=253952 253952 16777216
net.ipv4.tcp_max_syn_backlog=1024
net.ipv4.tcp_congestion_control = bbr
net.core.default_qdisc = fq
net.ipv4.tcp_no_metrics_save=1
net.ipv4.tcp_moderate_rcvbuf=0
net.ipv4.tcp_fack=1
net.ipv4.tcp_sack=1
net.ipv4.tcp_timestamps=0
net.ipv4.tcp_ecn = 0
net.ipv4.route.flush = 1
net.ipv4.tcp_low_latency=1
kernel.sched_rt_runtime_us = -1
※</etc/rc.local>
#!/bin/sh -e
sleep 2
chrt -f -p 99 `pgrep eno1`
chrt -f -p 99 `pgrep xhci_hc`
setpci -v -d *:* latency_timer=b0
sleep 1
setpci -v -d 8086:15d8 latency_timer=ff
setpci -v -d 8086:9d2f latency_timer=ff
echo 2048 > /sys/class/rtc/rtc0/max_user_freq
echo 2048 > /proc/sys/dev/hpet/max-user-freq
echo none > /sys/block/sda/queue/scheduler
echo none > /sys/block/sdb/queue/scheduler
echo none > /sys/block/sdc/queue/scheduler
echo 0 > /sys/block/sda/queue/rotational
echo 0 > /sys/block/sdb/queue/rotational
echo 0 > /sys/block/sdc/queue/rotational
echo 0 > /sys/block/md0/queue/rotational
ip route change default via 192.168.1.1 dev eno1 proto static initcwnd 10
sleep 2
prelink -amR
#
blockdev --setra 16384 /dev/nvme0n1p1
blockdev --setra 16384 /dev/sda
blockdev --setra 16384 /dev/sdb
blockdev --setra 16384 /dev/sdc
blockdev --setra 16384 /dev/md0
echo 16384 /sys/block/md0/queue/read_ahead_kb
echo 16384 /sys/block/nvme0n1/queue/read_ahead_kb
#
renice -n -20 -p `pgrep xhci_hc`
renice -n -20 -p `pgrep eno1`
ionice -c 1 -n 0 -p `pgrep xhci_hc`
#
exit 0
■MPDサーバ環境
※</etc/fstab>
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/nvme0n1p1 during installation
UUID=ffc9e593-9387-42c5-8f96-8b0979282396 / xfs noatime,discard 0 0
# swap was on /dev/nvme0n1p5 during installation
UUID=2109c492-4d39-4ce1-b477-b4acee059f22 none swap sw 0 0
#
192.168.1.12:/music /music nfs auto,rw,nosuid,dev,noexec,nouser,async,nofail,noatime,tcp,nfsvers=4 0 0
#
tmpfs /dev/shm tmpfs defaults,noatime 0 0
tmpfs /tmp tmpfs defaults,noatime 0 0
※</etc/sysctl.conf>
#
# /etc/sysctl.conf - Configuration file for setting system variables
# See /etc/sysctl.d/ for additional system variables.
# See sysctl.conf (5) for information.
#
#kernel.domainname = example.com
# Uncomment the following to stop low-level messages on console
#kernel.printk = 3 4 1 3
##############################################################3
# Functions previously found in netbase
#
# Uncomment the next two lines to enable Spoof protection (reverse-path filter)
# Turn on Source Address Verification in all interfaces to
# prevent some spoofing attacks
#net.ipv4.conf.default.rp_filter=1
#net.ipv4.conf.all.rp_filter=1
# Uncomment the next line to enable TCP/IP SYN cookies
# See http://lwn.net/Articles/277146/" target="_blank">http://lwn.net/Articles/277146/
# Note: This may impact IPv6 TCP sessions too
#net.ipv4.tcp_syncookies=1
# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
# Uncomment the next line to enable packet forwarding for IPv6
# Enabling this option disables Stateless Address Autoconfiguration
# based on Router Advertisements for this host
#net.ipv6.conf.all.forwarding=1
###################################################################
# Additional settings - these settings can improve the network
# security of the host and prevent against some network attacks
# including spoofing attacks and man in the middle attacks through
# redirection. Some network environments, however, require that these
# settings are disabled so review and enable them as needed.
#
# Do not accept ICMP redirects (prevent MITM attacks)
#net.ipv4.conf.all.accept_redirects = 0
#net.ipv6.conf.all.accept_redirects = 0
# _or_
# Accept ICMP redirects only for gateways listed in our default
# gateway list (enabled by default)
# net.ipv4.conf.all.secure_redirects = 1
#
# Do not send ICMP redirects (we are not a router)
#net.ipv4.conf.all.send_redirects = 0
#
# Do not accept IP source route packets (we are not a router)
#net.ipv4.conf.all.accept_source_route = 0
#net.ipv6.conf.all.accept_source_route = 0
#
# Log Martian Packets
#net.ipv4.conf.all.log_martians = 1
#
###################################################################
# Magic system request Key
# 0=disable, 1=enable all, >1 bitmask of sysrq functions
# See https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html" target="_blank">https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html
# for what other values do
#kernel.sysrq=438
#
vm.swappiness = 1
fs.inotify.max_user_watches = 524288
net.ipv4.tcp_no_metrics_save=1
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv4.tcp_tw_reuse = 1
net.core.somaxconn=2048
net.core.netdev_max_backlog=30000
net.core.rmem_default=253952
net.core.wmem_default=253952
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.ipv4.tcp_rmem=253952 253952 16777216
net.ipv4.tcp_wmem=253952 253952 16777216
net.ipv4.tcp_mem=253952 253952 16777216
net.ipv4.tcp_max_syn_backlog=1024
net.ipv4.tcp_congestion_control = bbr
net.core.default_qdisc = fq
net.ipv4.tcp_no_metrics_save=1
net.ipv4.tcp_moderate_rcvbuf=0
net.ipv4.tcp_fack=1
net.ipv4.tcp_sack=1
net.ipv4.tcp_timestamps=0
net.ipv4.tcp_ecn = 0
net.ipv4.route.flush = 1
net.ipv4.tcp_low_latency=1
※</etc/rc.local>
#!/bin/sh -e
setpci -v -d *:* latency_timer=b0
sleep 1
setpci -v -d 8086:15d8 latency_timer=ff
setpci -v -d 8086:9d2f latency_timer=ff
chrt -f -p 99 `pgrep eno1`
chrt -f -p 99 `pgrep xhci_hc`
echo 2048 > /sys/class/rtc/rtc0/max_user_freq
echo 2048 > /proc/sys/dev/hpet/max-user-freq
ip route change default via 192.168.1.1 dev eno1 proto static initcwnd 10
sleep 2
chrt -f -p 99 `pgrep mpd`
sleep 2
prelink -amR
renice -n -20 -p `pgrep xhci_hc`
renice -n -20 -p `pgrep eno1`
renice -n -20 -p `pgrep mpd`
ionice -c 1 -n 0 -p `pgrep xhci_hc`
ionice -c 1 -n 0 -p `pgrep mpd`
blockdev --setra 16384 /dev/nvme0n1p1
echo 16384 /sys/block/nvme0n1/queue/read_ahead_kb
exit 0
I/O優先度変更は、スケジューラがcfq以外には効果が無いので削除しました。
また、MPDをリアルタイム化及び優先度を上げると高音がきつくなり
音が乱れたような感じになりますので止めました。
音楽再生サーバ
/etc/rc.local
#!/bin/sh -e
setpci -v -d *:* latency_timer=b0
sleep 1
setpci -v -d 8086:15d8 latency_timer=ff
setpci -v -d 8086:9d2f latency_timer=ff
chrt -f -p 99 `pgrep irq/124-eno1`
echo 2048 > /sys/class/rtc/rtc0/max_user_freq
echo 2048 > /proc/sys/dev/hpet/max-user-freq
ip route change default via 192.168.1.1 dev eno1 proto static initcwnd 10
sleep 2
prelink -amR
renice -n -20 -p `pgrep xhci_hc`
renice -n -20 -p `pgrep eno1`
exit 0
ファイルサーバ
/etc/rc.local
#!/bin/sh -e
sleep 2
chrt -f -p 99 `pgrep eno1`
chrt -f -p 99 `pgrep xhci_hc`
setpci -v -d *:* latency_timer=b0
sleep 1
setpci -v -d 8086:15d8 latency_timer=ff
setpci -v -d 8086:9d2f latency_timer=ff
echo 2048 > /sys/class/rtc/rtc0/max_user_freq
echo 2048 > /proc/sys/dev/hpet/max-user-freq
echo none > /sys/block/sda/queue/scheduler
echo none > /sys/block/sdb/queue/scheduler
echo none > /sys/block/sdc/queue/scheduler
echo 0 > /sys/block/sda/queue/rotational
echo 0 > /sys/block/sdb/queue/rotational
echo 0 > /sys/block/sdc/queue/rotational
echo 0 > /sys/block/md0/queue/rotational
ip route change default via 192.168.1.1 dev eno1 proto static initcwnd 10
sleep 2
prelink -amR
blockdev --setra 16384 /dev/sda
blockdev --setra 16384 /dev/sdb
blockdev --setra 16384 /dev/sdc
blockdev --setra 16384 /dev/md0
echo 16384 /sys/block/md0/queue/read_ahead_kb
renice -n -20 -p `pgrep xhci_hc`
renice -n -20 -p `pgrep eno1`
chrt -f -p 99 `pgrep nfsd`
renice -n -20 -p `pgrep nfsd`
exit 0
/etc/mpd.conf
# An example configuration file for MPD.
# Read the user manual for documentation: http://www.musicpd.org/doc/user/" target="_blank">http://www.musicpd.org/doc/user/
# or /usr/share/doc/mpd/html/user.html
# Files and directories #######################################################
#
# This setting controls the top directory which MPD will search to discover the
# available audio files and add them to the daemon's online database. This
# setting defaults to the XDG directory, otherwise the music directory will be
# be disabled and audio files will only be accepted over ipc socket (using
# file:// protocol) or streaming files over an accepted protocol.
#
music_directory "/var/lib/mpd/music"
#
# This setting sets the MPD internal playlist directory. The purpose of this
# directory is storage for playlists created by MPD. The server will use
# playlist files not created by the server but only if they are in the MPD
# format. This setting defaults to playlist saving being disabled.
#
playlist_directory "/var/lib/mpd/playlists"
#
# This setting sets the location of the MPD database. This file is used to
# load the database at server start up and store the database while the
# server is not up. This setting defaults to disabled which will allow
# MPD to accept files over ipc socket (using file:// protocol) or streaming
# files over an accepted protocol.
#
db_file "/var/lib/mpd/tag_cache"
#
# These settings are the locations for the daemon log files for the daemon.
# These logs are great for troubleshooting, depending on your log_level
# settings.
#
# The special value "syslog" makes MPD use the local syslog daemon. This
# setting defaults to logging to syslog, or to journal if mpd was started as
# a systemd service.
#
log_file "/var/log/mpd/mpd.log"
#
# This setting sets the location of the file which stores the process ID
# for use of mpd --kill and some init scripts. This setting is disabled by
# default and the pid file will not be stored.
#
pid_file "/run/mpd/pid"
#
# This setting sets the location of the file which contains information about
# most variables to get MPD back into the same general shape it was in before
# it was brought down. This setting is disabled by default and the server
# state will be reset on server start up.
#
state_file "/var/lib/mpd/state"
#
# The location of the sticker database. This is a database which
# manages dynamic information attached to songs.
#
sticker_file "/var/lib/mpd/sticker.sql"
#
###############################################################################
# General music daemon options ################################################
#
# This setting specifies the user that MPD will run as. MPD should never run as
# root and you may use this setting to make MPD change its user ID after
# initialization. This setting is disabled by default and MPD is run as the
# current user.
#
user "mpd"
#
# This setting specifies the group that MPD will run as. If not specified
# primary group of user specified with "user" setting will be used (if set).
# This is useful if MPD needs to be a member of group such as "audio" to
# have permission to use sound card.
#
#group "nogroup"
###############################################################################
#
decoder {
plugin "hybrid_dsd"
enabled "no"
# gapless "no"
}
#
###############################################################################
# Audio Output ################################################################
#
# MPD supports various audio output types, as well as playing through multiple
# audio outputs at the same time, through multiple audio_output settings
# blocks. Setting this block is optional, though the server will only attempt
# autodetection for one sound card.
#
# An example of an ALSA output:
#
audio_output {
type "alsa"
name "My ALSA Device"
device "hw:1,0" # optional
mixer_type "disabled" # optional
auto_resample "no"
use_mmap "yes"
#
buffer_time "500000"
period_time "37500"
#
# mixer_device "default" # optional
# mixer_control "PCM" # optional
# mixer_index "0" # optional
dop "yes"
#format "*:24:*"
}
#
# An example of an OSS output:
#
#audio_output {
# type "oss"
# name "My OSS Device"
# device "/dev/dsp" # optional
# mixer_type "hardware" # optional
# mixer_device "/dev/mixer" # optional
# mixer_control "PCM" # optional
#}
#
# An example of a shout output (for streaming to Icecast):
#
#audio_output {
# type "shout"
# encoder "vorbis" # optional
# name "My Shout Stream"
# host "localhost"
# port "8000"
# mount "/mpd.ogg"
# password "hackme"
# quality "5.0"
# bitrate "128"
# format "44100:16:1"
# protocol "icecast2" # optional
# user "source" # optional
# description "My Stream Description" # optional
# url "http://example.com"" target="_blank">http://example.com" # optional
# genre "jazz" # optional
# public "no" # optional
# timeout "2" # optional
# mixer_type "software" # optional
#}
#
# An example of a recorder output:
# Zeroconf / Avahi Service Discovery ##########################################
#
# If this setting is set to "yes", service information will be published with
# Zeroconf / Avahi.
#
#zeroconf_enabled "yes"
#
# The argument to this setting will be the Zeroconf / Avahi unique name for
# this MPD server on the network. %h will be replaced with the hostname.
#
#zeroconf_name "Music Player @ %h"
#
###############################################################################
# Permissions #################################################################
#
# If this setting is set, MPD will require password authorization. The password
# setting can be specified multiple times for different password profiles.
#
#password "password@read,add,control,admin"
#
# This setting specifies the permissions a user has who has not yet logged in.
#
#default_permissions "read,add,control,admin"
#
###############################################################################
# Database #######################################################################
#
#database {
# plugin "proxy"
# host "other.mpd.host"
# port "6600"
#}
# Input #######################################################################
#
input {
plugin "curl"
proxy "proxy.isp.com:8080"
proxy_user "user"
proxy_password "password"
}
# QOBUZ input plugin
input {
enabled "no"
plugin "qobuz"
# app_id "ID"
# app_secret "SECRET"
# username "USERNAME"
# password "PASSWORD"
# format_id "N"
}
# TIDAL input plugin
input {
enabled "no"
plugin "tidal"
# token "TOKEN"
# username "USERNAME"
# password "PASSWORD"
# audioquality "Q"
}
# Decoder #####################################################################
#
# This setting sets the address for the daemon to listen on. Careful attention
# should be paid if this is assigned to anything other then the default, any.
# This setting can deny access to control of the daemon. Choose any if you want
# to have mpd listen on every address. Not effective if systemd socket
# activation is in use.
#
# For network
bind_to_address "any"
#
# And for Unix Socket
#bind_to_address "/run/mpd/socket"
bind_to_address "@mpd"
#
# This setting is the TCP port that is desired for the daemon to get assigned
# to.
#
port "6600"
#
# This setting controls the type of information which is logged. Available
# setting arguments are "default", "secure" or "verbose". The "verbose" setting
# argument is recommended for troubleshooting, though can quickly stretch
# available resources on limited hardware storage.
#
log_level "default"
#
# Setting "restore_paused" to "yes" puts MPD into pause mode instead
# of starting playback after startup.
#
#restore_paused "no"
#
# This setting enables MPD to create playlists in a format usable by other
# music players.
#
#save_absolute_paths_in_playlists "no"
#
# This setting defines a list of tag types that will be extracted during the
# audio file discovery process. The complete list of possible values can be
# found in the user manual.
#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
#
# This example just enables the "comment" tag without disabling all
# the other supported tags:
#metadata_to_use "+comment"
#
# This setting enables automatic update of MPD's database when files in
# music_directory are changed.
#
#auto_update "yes"
#
# Limit the depth of the directories being watched, 0 means only watch
# the music directory itself. There is no limit by default.
#
#auto_update_depth "3"
#
###############################################################################
# Symbolic link behavior ######################################################
#
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links outside of the configured music_directory.
#
#follow_outside_symlinks "yes"
#
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links inside of the configured music_directory.
#
#follow_inside_symlinks "yes"
#
#
#audio_output {
# type "recorder"
# name "My recorder"
# encoder "vorbis" # optional, vorbis or lame
# path "/var/lib/mpd/recorder/mpd.ogg"
## quality "5.0" # do not define if bitrate is defined
# bitrate "128" # do not define if quality is defined
# format "44100:16:1"
#}
#
# An example of a httpd output (built-in HTTP streaming server):
#
#audio_output {
# type "httpd"
# name "My HTTP Stream"
# encoder "vorbis" # optional, vorbis or lame
# port "8000"
# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
# quality "5.0" # do not define if bitrate is defined
# bitrate "128" # do not define if quality is defined
# format "44100:16:1"
# max_clients "0" # optional 0=no limit
#}
#
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
# Please see README.Debian if you want mpd to play through the pulseaudio
# daemon started as part of your graphical desktop session!
#
#audio_output {
# type "pulse"
# name "My Pulse Output"
# server "remote_server" # optional
# sink "remote_server_sink" # optional
#}
#
# An example of a winmm output (Windows multimedia API).
#
#audio_output {
# type "winmm"
# name "My WinMM output"
# device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
# or
# device "0" # optional
# mixer_type "hardware" # optional
#}
#
# An example of an openal output.
#
#audio_output {
# type "openal"
# name "My OpenAL output"
# device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
#}
#
## Example "pipe" output:
#
#audio_output {
# type "pipe"
# name "my pipe"
# command "aplay -f cd 2>/dev/null"
## Or if you're want to use AudioCompress
# command "AudioCompress -m | aplay -f cd 2>/dev/null"
## Or to send raw PCM stream through PCM:
# command "nc example.org 8765"
# format "44100:16:2"
#}
#
## An example of a null output (for no audio output):
#
#audio_output {
# type "null"
# name "My Null Output"
# mixer_type "none" # optional
#}
#
###############################################################################
# Normalization automatic volume adjustments ##################################
#
# This setting specifies the type of ReplayGain to use. This setting can have
# the argument "off", "album", "track" or "auto". "auto" is a special mode that
# chooses between "track" and "album" depending on the current state of
# random playback. If random playback is enabled then "track" mode is used.
# See <http://www.replaygain.org>" target="_blank">http://www.replaygain.org> for more details about ReplayGain.
# This setting is off by default.
#
#replaygain "album"
#
# This setting sets the pre-amp used for files that have ReplayGain tags. By
# default this setting is disabled.
#
#replaygain_preamp "0"
#
# This setting sets the pre-amp used for files that do NOT have ReplayGain tags.
# By default this setting is disabled.
#
#replaygain_missing_preamp "0"
#
# This setting enables or disables ReplayGain limiting.
# MPD calculates actual amplification based on the ReplayGain tags
# and replaygain_preamp / replaygain_missing_preamp setting.
# If replaygain_limit is enabled MPD will never amplify audio signal
# above its original level. If replaygain_limit is disabled such amplification
# might occur. By default this setting is enabled.
#
#replaygain_limit "yes"
#
# This setting enables on-the-fly normalization volume adjustment. This will
# result in the volume of all playing audio to be adjusted so the output has
# equal "loudness". This setting is disabled by default.
#
#volume_normalization "no"
#
###############################################################################
# Character Encoding ##########################################################
#
# If file or directory names do not display correctly for your locale then you
# may need to modify this setting.
#
filesystem_charset "UTF-8"
id3v1_encoding "UTF-8"
#
samplerate_converter "Best Sinc Interpolator"
#samplerate_converter "soxr very high"
#
gapless_mp3_playback "yes"
buffer_before_play "100%"
audio_buffer_size "256"
###############################################################################
input_cache {
size "1 GB"
}
※私のMPDサーバ、ファイルサーバの/etc/sysctl.confの内容です。
vm.swappiness = 1
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
#
fs.inotify.max_user_watches = 524288
net.core.netdev_budget = 50000
net.core.netdev_budget_usecs = 5000
net.core.netdev_max_backlog = 65535
net.core.optmem_max = 25165824
net.core.rmem_default = 253952
net.core.rmem_max = 16777216
net.core.somaxconn = 65535
net.core.wmem_default = 253952
net.core.wmem_max = 16777216
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.default.log_martians = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.secure_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.icmp_echo_ignore_all = 1
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_abort_on_overflow = 1
net.ipv4.tcp_ecn = 1
net.ipv4.tcp_fack = 1
net.ipv4.tcp_fastopen = 1
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_keepalive_intvl = 10
net.ipv4.tcp_keepalive_probes = 6
net.ipv4.tcp_keepalive_time = 60
net.ipv4.tcp_low_latency = 0
net.ipv4.tcp_max_syn_backlog = 30000
net.ipv4.tcp_max_tw_buckets = 2000000
net.ipv4.tcp_moderate_rcvbuf = 1
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.tcp_orphan_retries = 3
net.ipv4.tcp_rfc1337 = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 253952 253952 16777216
net.ipv4.tcp_wmem = 253952 253952 16777216
#
kernel.sched_rt_runtime_us = -1
#
kernel.sched_rt_period_us=500000
kernel.sched_wakeup_granularity_ns = 200000
kernel.sched_wakeup_granularity_ns = 200000
※私のmpdサーバの/etc/rc.localの内容です。
#!/bin/sh -e
setpci -v -d *:* latency_timer=b0
sleep 1
setpci -v -d 8086:15d8 latency_timer=ff
setpci -v -d 8086:9d2f latency_timer=ff
chrt -f -p 99 `pgrep eno1`
chrt -f -p 99 `pgrep xhci_hc`
echo 2048 > /sys/class/rtc/rtc0/max_user_freq
echo 2048 > /proc/sys/dev/hpet/max-user-freq
ip route change default via 192.168.1.1 dev eno1 proto static initcwnd 10
sleep 2
chrt -f -p 99 `pgrep mpd`
renice -n -19 -p `pgrep xhci_hc`
renice -n -19 -p `pgrep eno1`
renice -n -19 -p `pgrep mpd`
renice -n -19 -u mpd
#
exit 0
※私のファイルサーバの/etc/rc.localの内容です。
#!/bin/sh -e
setpci -v -d *:* latency_timer=b0
sleep 1
setpci -v -d 8086:15d8 latency_timer=ff
setpci -v -d 8086:9d2f latency_timer=ff
echo 2048 > /sys/class/rtc/rtc0/max_user_freq
echo 2048 > /proc/sys/dev/hpet/max-user-freq
echo none > /sys/block/sda/queue/scheduler
echo none > /sys/block/sdb/queue/scheduler
echo none > /sys/block/sdc/queue/scheduler
echo 0 > /sys/block/sda/queue/rotational
echo 0 > /sys/block/sdb/queue/rotational
echo 0 > /sys/block/sdc/queue/rotational
echo 0 > /sys/block/md0/queue/rotational
ip route change default via 192.168.1.1 dev eno1 proto static initcwnd 10
#
sleep 2
chrt -f -p 99 `pgrep eno1`
chrt -f -p 99 `pgrep xhci_hc`
renice -n -19 -p `pgrep xhci_hc`
renice -n -19 -p `pgrep eno1`
#
exit 0
cd /tmp
wget https://www.musicpd.org/download/mpd/0.22/mpd-0.22.9.tar.xz" target="_blank">https://www.musicpd.org/download/mpd/0.22/mpd-0.22.9.tar.xz
tar xf mpd-0.22.9.tar.xz
cd mpd-0.22.9
apt-get build-dep mpd
meson . output/release --buildtype=release -Db_ndebug=false
meson configure output/release
ninja -C output/release
/etc/init.d/mpd stop
ninja -C output/release install
cd /tmp
rm mpd-0.22.9.tar.xz
rm -r mpd-0.22.9
---------------------------------------------------------------------------------------------------------------------
cd /tmp
wget http://www.musicpd.org/download/libmpdclient/2/libmpdclient-2.19.tar.xz" target="_blank">http://www.musicpd.org/download/libmpdclient/2/libmpdclient-2.19.tar.xz
tar xf libmpdclient-2.19.tar.xz
cd libmpdclient-2.19
apt-get build-dep libmpdclient
meson . output/release --buildtype=debugoptimized -Db_ndebug=true
meson configure output/release
ninja -C output/release
ninja -C output/release install
cd /tmp
rm libmpdclient-2.19.tar.xz
rm -r libmpdclient-2.19
---------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
cd /tmp
wget ftp://ftp.alsa-project.org/pub/lib//alsa-lib-1.2.5.1.tar.bz2
tar jxf alsa-lib-1.2.5.1.tar.bz2
cd alsa-lib-1.2.5.1
apt-get build-dep alsa-lib
./configure CFLAGS="-O2 -march=native" CXXFLAGS="-O2 -march=native"
make
make install
cd /tmp
rm alsa-lib-1.2.5.1.tar.bz2
rm -r alsa-lib-1.2.5.1
---------------------------------------------------------------------------------------------------------------------
cd /tmp
wget ftp://ftp.alsa-project.org/pub/plugins/alsa-plugins-1.2.5.tar.bz2
tar jxf alsa-plugins-1.2.5.tar.bz2
cd alsa-plugins-1.2.5
apt-get build-dep alsa-plugins
./configure CFLAGS="-O2 -march=native -flto" CXXFLAGS="-O2 -march=native -flto" --sysconfdir=/etc
make
make install
cd /tmp
rm alsa-plugins-1.2.5.tar.bz2
rm -r alsa-plugins-1.2.5
---------------------------------------------------------------------------------------------------------------------
cd /tmp
wget https://downloads.xiph.org/releases/flac/flac-1.3.3.tar.xz" target="_blank">https://downloads.xiph.org/releases/flac/flac-1.3.3.tar.xz
wget http://www.linuxfromscratch.org/patches/blfs/svn/flac-1.3.3-security_fixes-1.patch" target="_blank">http://www.linuxfromscratch.org/patches/blfs/svn/flac-1.3.3-security_fixes-1.patch
tar Jxfv flac-1.3.3.tar.xz
cd flac-1.3.3
apt-get build-dep flac
patch -Np1 -i ../flac-1.3.3-security_fixes-1.patch
./configure CFLAGS="-O2 -march=native -flto" CXXFLAGS="-O2 -march=native -flto" --disable-thorough-tests --docdir=/usr/share/doc/flac-1.3.3
make
make install
cd /tmp
rm flac-1.3.3.tar.xz
rm -r flac-1.3.3
rm flac-1.3.3-security_fixes-1.patch
---------------------------------------------------------------------------------------------------------------------
cd /tmp
wget https://github.com/libsndfile/libsndfile/releases/download/1.0.31/libsndfile-1.0.31.tar.bz2" target="_blank">https://github.com/libsndfile/libsndfile/releases/download/1.0.31/libsndfile-1.0.31.tar.bz2
tar jxf libsndfile-1.0.31.tar.bz2
cd libsndfile-1.0.31
apt-get build-dep libsndfile
./configure CFLAGS="-O2 -march=native -flto" CXXFLAGS="-O2 -march=native -flto" --disable-static --docdir=/usr/share/doc/libsndfile-1.0.31
make
make install
cd /tmp
rm libsndfile-1.0.31.tar.bz2
rm -r libsndfile-1.0.31
---------------------------------------------------------------------------------------------------------------------
cd /tmp
wget https://github.com/libsndfile/libsamplerate/releases/download/0.2.1/libsamplerate-0.2.1.tar.bz2" target="_blank">https://github.com/libsndfile/libsamplerate/releases/download/0.2.1/libsamplerate-0.2.1.tar.bz2
tar jxf libsamplerate-0.2.1.tar.bz2
cd libsamplerate-0.2.1
apt-get build-dep libsamplerate
./autogen.sh
./configure CFLAGS="-O2 -march=native -flto" CXXFLAGS="-O2 -march=native -flto" --disable-static --docdir=/usr/share/doc/libsamplerate-0.2.1
make
make install
cd /tmp
rm libsamplerate-0.2.1.tar.bz2
rm -r libsamplerate-0.2.1
---------------------------------------------------------------------------------------------------------------------
cd /tmp
wget https://download.gnome.org/sources/audiofile/0.3/audiofile-0.3.6.tar.xz" target="_blank">https://download.gnome.org/sources/audiofile/0.3/audiofile-0.3.6.tar.xz
tar Jxfv audiofile-0.3.6.tar.xz
cd audiofile-0.3.6
apt-get build-dep audiofile
CXXFLAGS="${CXXFLAGS:--O2 -march=native -flto -g} -std=c++98" \
./configure --disable-static
make
make install
cd /tmp
rm audiofile-0.3.6.tar.xz
rm -r audiofile-0.3.6
---------------------------------------------------------------------------------------------------------------------
cd /tmp
wget http://www.fftw.org/fftw-3.3.9.tar.gz" target="_blank">http://www.fftw.org/fftw-3.3.9.tar.gz
tar -zxvf fftw-3.3.9.tar.gz
cd fftw-3.3.9
apt-get build-dep fftw
./configure CFLAGS="-O2 -march=native -flto" CXXFLAGS="-O2 -march=native -flto" --enable-shared --disable-static --enable-threads --enable-sse2 --enable-avx
make
make install
make clean
./configure CFLAGS="-O2 -march=native -flto" CXXFLAGS="-O2 -march=native -flto" -enable-shared --disable-static --enable-threads --enable-sse2 --enable-avx --enable-float
make
make install
make clean
./configure CFLAGS="-O2 -march=native -flto" CXXFLAGS="-O2 -march=native -flto" --enable-shared --disable-static --enable-threads --enable-long-double
make
make install
rm fftw-3.3.9.tar.gz
rm -r fftw-3.3.9
cd /tmp
wget https://github.com/libusb/libusb/releases/download/v1.0.24/libusb-1.0.24.tar.bz2" target="_blank">https://github.com/libusb/libusb/releases/download/v1.0.24/libusb-1.0.24.tar.bz2
tar jxf libusb-1.0.24.tar.bz2
cd libusb-1.0.24
apt-get build-dep libusb
./configure CFLAGS="-O2 -flto -march=native" CXXFLAGS="-O2 -march=native -flto" --disable-static
make
make install
cd /tmp
rm libusb-1.0.24.tar.bz2
rm -r libusb-1.0.24
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
cd /tmp
wget https://sourceforge.net/projects/nfs/files/nfs-utils/2.5.4/nfs-utils-2.5.4.tar.xz" target="_blank">https://sourceforge.net/projects/nfs/files/nfs-utils/2.5.4/nfs-utils-2.5.4.tar.xz
tar Jxfv nfs-utils-2.5.4.tar.xz
cd nfs-utils-2.5.4
apt-get build-dep nfs-utils
./configure CFLAGS="-O2 -march=native -flto" CXXFLAGS="-O2 -march=native -flto"
make
make install
cd /tmp
rm nfs-utils-2.5.4.tar.xz
rm -r nfs-utils-2.5.4
----------------------------------------------------------------------------------------------------------------------------
cd /tmp
wget https://www.kernel.org/pub/linux/utils/raid/mdadm/mdadm-4.1.tar.xz" target="_blank">https://www.kernel.org/pub/linux/utils/raid/mdadm/mdadm-4.1.tar.xz
tar Jxfv mdadm-4.1.tar.xz
cd mdadm-4.1
apt-get build-dep mdadm
sed 's@-Werror@@' -i Makefile
make
make install
cd /tmp
rm mdadm-4.1.tar.xz
rm -r mdadm-4.1
----------------------------------------------------------------------------------------------------------------------------------
cd /tmp
wget https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/xfsprogs-5.12.0.tar.xz" target="_blank">https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/xfsprogs-5.12.0.tar.xz
tar Jxfv xfsprogs-5.12.0.tar.xz
cd xfsprogs-5.12.0
apt-get build-dep xfsprogs
./configure CFLAGS="-O2 -march=native -flto" CXXFLAGS="-O2 -march=native -flto"
make DEBUG=-DNDEBUG
make install
cd /tmp
rm xfsprogs-5.12.0.tar.xz
rm -r xfsprogs-5.12.0
---------------------------------------------------------------------------------------------------------------------------------------
cd /tmp
wget https://people.freedesktop.org/~hughsient/releases/libgusb-0.3.7.tar.xz" target="_blank">https://people.freedesktop.org/~hughsient/releases/libgusb-0.3.7.tar.xz
tar Jxfv libgusb-0.3.7.tar.xz
cd libgusb-0.3.7
mkdir build
cd build
meson -Ddocs=false ..
ninja
ninja install
cd /tmp
rm libgusb-0.3.6.tar.xz
rm -r libgusb-0.3.6
--------------------------------------------------------------------------------------------------------------------------------------------------------
cd /tmp
wget https://github.com/Irqbalance/irqbalance/tarball/master/Irqbalance-irqbalance-v1.8.0-0-g99ae256.tar.gz" target="_blank">https://github.com/Irqbalance/irqbalance/tarball/master/Irqbalance-irqbalance-v1.8.0-0-g99ae256.tar.gz
tar -zxvf Irqbalance-irqbalance-v1.8.0-0-g99ae256.tar.gz
cd Irqbalance-irqbalance-bd5aaf5
apt-get build-dep irqbalance
./autogen.sh
./configure CFLAGS="-O2 -march=native -flto" CXXFLAGS="-O2 -march=native -flto"
make
make install
cd /tmp
rm Irqbalance-irqbalance-v1.8.0-0-g99ae256.tar.gz
rm -r Irqbalance-irqbalance-99ae256
# An example configuration file for MPD.
# Read the user manual for documentation: http://www.musicpd.org/doc/user/" target="_blank">http://www.musicpd.org/doc/user/
# or /usr/share/doc/mpd/html/user.html
# Files and directories #######################################################
#
# This setting controls the top directory which MPD will search to discover the
# available audio files and add them to the daemon's online database. This
# setting defaults to the XDG directory, otherwise the music directory will be
# be disabled and audio files will only be accepted over ipc socket (using
# file:// protocol) or streaming files over an accepted protocol.
#
music_directory "/var/lib/mpd/music"
#
# This setting sets the MPD internal playlist directory. The purpose of this
# directory is storage for playlists created by MPD. The server will use
# playlist files not created by the server but only if they are in the MPD
# format. This setting defaults to playlist saving being disabled.
#
playlist_directory "/var/lib/mpd/playlists"
#
# This setting sets the location of the MPD database. This file is used to
# load the database at server start up and store the database while the
# server is not up. This setting defaults to disabled which will allow
# MPD to accept files over ipc socket (using file:// protocol) or streaming
# files over an accepted protocol.
#
db_file "/var/lib/mpd/tag_cache"
#
# These settings are the locations for the daemon log files for the daemon.
# These logs are great for troubleshooting, depending on your log_level
# settings.
#
# The special value "syslog" makes MPD use the local syslog daemon. This
# setting defaults to logging to syslog, or to journal if mpd was started as
# a systemd service.
#
log_file "/var/log/mpd/mpd.log"
#
# This setting sets the location of the file which stores the process ID
# for use of mpd --kill and some init scripts. This setting is disabled by
# default and the pid file will not be stored.
#
pid_file "/run/mpd/pid"
#
# This setting sets the location of the file which contains information about
# most variables to get MPD back into the same general shape it was in before
# it was brought down. This setting is disabled by default and the server
# state will be reset on server start up.
#
state_file "/var/lib/mpd/state"
#
# The location of the sticker database. This is a database which
# manages dynamic information attached to songs.
#
sticker_file "/var/lib/mpd/sticker.sql"
#
###############################################################################
# General music daemon options ################################################
#
# This setting specifies the user that MPD will run as. MPD should never run as
# root and you may use this setting to make MPD change its user ID after
# initialization. This setting is disabled by default and MPD is run as the
# current user.
#
user "mpd"
#
# This setting specifies the group that MPD will run as. If not specified
# primary group of user specified with "user" setting will be used (if set).
# This is useful if MPD needs to be a member of group such as "audio" to
# have permission to use sound card.
#
#group "nogroup"
#
# This setting sets the address for the daemon to listen on. Careful attention
# should be paid if this is assigned to anything other then the default, any.
# This setting can deny access to control of the daemon. Choose any if you want
# to have mpd listen on every address. Not effective if systemd socket
# activation is in use.
#
# For network
bind_to_address "any"
#
# And for Unix Socket
#bind_to_address "/run/mpd/socket"
#bind_to_address "@mpd"
#
# This setting is the TCP port that is desired for the daemon to get assigned
# to.
#
port "6600"
#
# This setting controls the type of information which is logged. Available
# setting arguments are "default", "secure" or "verbose". The "verbose" setting
# argument is recommended for troubleshooting, though can quickly stretch
# available resources on limited hardware storage.
#
log_level "default"
#
# Setting "restore_paused" to "yes" puts MPD into pause mode instead
# of starting playback after startup.
#
#restore_paused "no"
#
# This setting enables MPD to create playlists in a format usable by other
# music players.
#
#save_absolute_paths_in_playlists "no"
#
# This setting defines a list of tag types that will be extracted during the
# audio file discovery process. The complete list of possible values can be
# found in the user manual.
#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
#
# This example just enables the "comment" tag without disabling all
# the other supported tags:
#metadata_to_use "+comment"
#
# This setting enables automatic update of MPD's database when files in
# music_directory are changed.
#
#auto_update "yes"
#
# Limit the depth of the directories being watched, 0 means only watch
# the music directory itself. There is no limit by default.
#
#auto_update_depth "3"
#
###############################################################################
# Symbolic link behavior ######################################################
#
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links outside of the configured music_directory.
#
#follow_outside_symlinks "yes"
#
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links inside of the configured music_directory.
#
#follow_inside_symlinks "yes"
#
###############################################################################
# Zeroconf / Avahi Service Discovery ##########################################
#
# If this setting is set to "yes", service information will be published with
# Zeroconf / Avahi.
#
#zeroconf_enabled "yes"
#
# The argument to this setting will be the Zeroconf / Avahi unique name for
# this MPD server on the network. %h will be replaced with the hostname.
#
#zeroconf_name "Music Player @ %h"
#
###############################################################################
# Permissions #################################################################
#
# If this setting is set, MPD will require password authorization. The password
# setting can be specified multiple times for different password profiles.
#
#password "password@read,add,control,admin"
#
# This setting specifies the permissions a user has who has not yet logged in.
#
#default_permissions "read,add,control,admin"
#
###############################################################################
# Database #######################################################################
#
#database {
# plugin "proxy"
# host "other.mpd.host"
# port "6600"
#}
# Input #######################################################################
#
input {
plugin "curl"
proxy "proxy.isp.com:8080"
proxy_user "user"
proxy_password "password"
}
# QOBUZ input plugin
input {
enabled "no"
plugin "qobuz"
# app_id "ID"
# app_secret "SECRET"
# username "USERNAME"
# password "PASSWORD"
# format_id "N"
}
# TIDAL input plugin
input {
enabled "no"
plugin "tidal"
# token "TOKEN"
# username "USERNAME"
# password "PASSWORD"
# audioquality "Q"
}
# Decoder #####################################################################
#
decoder {
plugin "hybrid_dsd"
enabled "no"
# gapless "no"
}
#
###############################################################################
# Audio Output ################################################################
#
# MPD supports various audio output types, as well as playing through multiple
# audio outputs at the same time, through multiple audio_output settings
# blocks. Setting this block is optional, though the server will only attempt
# autodetection for one sound card.
#
# An example of an ALSA output:
#
audio_output {
type "alsa"
# type "jack"
name "My ALSA Device"
device "hw:1,0" # optional
mixer_type "disabled" # optional
auto_resample "no"
use_mmap "yes"
#
buffer_time "500000"
period_time "37500"
#buffer_time "100000"
#period_time "2000"
#
# mixer_device "default" # optional
# mixer_control "PCM" # optional
# mixer_index "0" # optional
dop "yes"
#format "*:24:*"
}
#
# An example of an OSS output:
#
#audio_output {
# type "oss"
# name "My OSS Device"
# device "/dev/dsp" # optional
# mixer_type "hardware" # optional
# mixer_device "/dev/mixer" # optional
# mixer_control "PCM" # optional
#}
#
# An example of a shout output (for streaming to Icecast):
#
#audio_output {
# type "shout"
# encoder "vorbis" # optional
# name "My Shout Stream"
# host "localhost"
# port "8000"
# mount "/mpd.ogg"
# password "hackme"
# quality "5.0"
# bitrate "128"
# format "44100:16:1"
# protocol "icecast2" # optional
# user "source" # optional
# description "My Stream Description" # optional
# url "http://example.com"" target="_blank">http://example.com" # optional
# genre "jazz" # optional
# public "no" # optional
# timeout "2" # optional
# mixer_type "software" # optional
#}
#
# An example of a recorder output:
#
#audio_output {
# type "recorder"
# name "My recorder"
# encoder "vorbis" # optional, vorbis or lame
# path "/var/lib/mpd/recorder/mpd.ogg"
## quality "5.0" # do not define if bitrate is defined
# bitrate "128" # do not define if quality is defined
# format "44100:16:1"
#}
#
# An example of a httpd output (built-in HTTP streaming server):
#
#audio_output {
# type "httpd"
# name "My HTTP Stream"
# encoder "vorbis" # optional, vorbis or lame
# port "8000"
# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
# quality "5.0" # do not define if bitrate is defined
# bitrate "128" # do not define if quality is defined
# format "44100:16:1"
# max_clients "0" # optional 0=no limit
#}
#
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
# Please see README.Debian if you want mpd to play through the pulseaudio
# daemon started as part of your graphical desktop session!
#
#audio_output {
# type "pulse"
# name "My Pulse Output"
# server "remote_server" # optional
# sink "remote_server_sink" # optional
#}
#
# An example of a winmm output (Windows multimedia API).
#
#audio_output {
# type "winmm"
# name "My WinMM output"
# device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
# or
# device "0" # optional
# mixer_type "hardware" # optional
#}
#
# An example of an openal output.
#
#audio_output {
# type "openal"
# name "My OpenAL output"
# device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
#}
#
## Example "pipe" output:
#
#audio_output {
# type "pipe"
# name "my pipe"
# command "aplay -f cd 2>/dev/null"
## Or if you're want to use AudioCompress
# command "AudioCompress -m | aplay -f cd 2>/dev/null"
## Or to send raw PCM stream through PCM:
# command "nc example.org 8765"
# format "44100:16:2"
#}
#
## An example of a null output (for no audio output):
#
#audio_output {
# type "null"
# name "My Null Output"
# mixer_type "none" # optional
#}
#
###############################################################################
# Normalization automatic volume adjustments ##################################
#
# This setting specifies the type of ReplayGain to use. This setting can have
# the argument "off", "album", "track" or "auto". "auto" is a special mode that
# chooses between "track" and "album" depending on the current state of
# random playback. If random playback is enabled then "track" mode is used.
# See <http://www.replaygain.org>" target="_blank">http://www.replaygain.org> for more details about ReplayGain.
# This setting is off by default.
#
#replaygain "album"
#
# This setting sets the pre-amp used for files that have ReplayGain tags. By
# default this setting is disabled.
#
#replaygain_preamp "0"
#
# This setting sets the pre-amp used for files that do NOT have ReplayGain tags.
# By default this setting is disabled.
#
#replaygain_missing_preamp "0"
#
# This setting enables or disables ReplayGain limiting.
# MPD calculates actual amplification based on the ReplayGain tags
# and replaygain_preamp / replaygain_missing_preamp setting.
# If replaygain_limit is enabled MPD will never amplify audio signal
# above its original level. If replaygain_limit is disabled such amplification
# might occur. By default this setting is enabled.
#
#replaygain_limit "yes"
#
# This setting enables on-the-fly normalization volume adjustment. This will
# result in the volume of all playing audio to be adjusted so the output has
# equal "loudness". This setting is disabled by default.
#
#volume_normalization "no"
#
###############################################################################
# Character Encoding ##########################################################
#
# If file or directory names do not display correctly for your locale then you
# may need to modify this setting.
#
filesystem_charset "UTF-8"
id3v1_encoding "UTF-8"
#
samplerate_converter "Best Sinc Interpolator"
#samplerate_converter "soxr very high"
#
gapless_mp3_playback "yes"
buffer_before_play "100%"
audio_buffer_size "32"
###############################################################################
input_cache {
size "1 GB"
}
#decoder {
#plugin "sndfile"
#enabled "no"
#}
#
#decoder {
#plugin "audiofile"
#enabled "no"
#}
#
#decoder {
#plugin "flac"
#enabled "no"
#}
komaさん、こちらで続けましょう。
クリスマスプレゼントの感想についてはサイトに書いておきました。
謎のピンク方式(インテルアーキでのi2s再生)はWindowsでの再生方式の革命ですね。ピンク以外に誰か、専用のボードを開発しないものですかね。
SBのボードですが、とても良いと思います。僕はオリジナルのピンクの音を聴いたことがないので、判断出来ませんが、こちらでWindows配下の他のインタフェースを逢瀬4499に繫いだ音の印象と比較して判断すると、moctとkomaさんお二人がご指摘の「オリジナルのピンクのカードを越えているのでは」というのは、多分、当たっていると思います。ともかく、Windowsで逢瀬4499をこれだけの音で鳴らしたカードは初めてです(楽器や声の実在感が凄いです)。
Linuxも試して、比較しろとのご注文ですので、不精をして、AlbumPlayerで動かしてみました。Archは、昔、弄ったことがあるので、大変さは承知しています。APインテルLinuxでやってみて、トライする値打ちに見合いそうだったらやってみるかなという判断です。
TinyCore版とYocto版の両方で試して見ました。どちらも問題なく音出しできます。再生周波数ですが、そちらでもいっしょで全て96KHzに変換して再生されます。WindowsのDirectSound版ドライバとも共通ですね。
この96KHzに変換して出力という部分が問題じゃないかなと思っています。
音ですが、大胆に割り切ると以下の通りの感想です。
WinASIOドライバ > LinuxTinyCoreAP > LinuxYoctoAP ≒ WindowsDSドライバ > WindowsSOドライバ
ニアリーイコールの部分は僕には差は殆どないのですが、しいて言えばというレベルです。
左側から順に僕の環境では僕の好みの音です。僕の好みというのはクラシック音楽での楽器の実在感とコンサートホールの空間感の重視です。僕の好みはかなり偏っています。ポピュラー曲はまったく聴きませし、クラシックも主にバッハ以前の音楽と現代曲しか聴きません。その辺りが理由で偏った判断になっているかもしれません。
WinASIOの結果がいいのは綺麗な倍数の変換をしているからではないですかね。Linuxでこれが出来れば最高だと思います。ちょっと手強そうですが、理屈としては、Windowsで出来ているので、Linuxでも出来るはずです。
Asusのカードでも出来るようですね。そちらもご報告を楽しみにしています。
現在、Asusのカードを使っています。こちらは、元のサンプリングレートのまま出力されます。圧倒的です。
カーネルにより、内部のリレーが入ったり入らなかったりで、入らない場合カードを認識しなくなるので現在原因を調査中です。
Asusのカードでも使用できる機種が非常に限定されるため、中古屋さんやオークションでなかなか発見できません。
私の場合、フルサイズのpcieカードを差し込めるPCが無いので、延長ケーブルやminipcie、m.2から変換ケーブルを使い外に出して接続しています。
不思議なのがpcie延長ケーブルにUSBケーブルを使っているものがあるのですが、これを使ってもUSB接続とは、はっきり認識できるだけの音質の差があることです。USB3.0以上で動作するDDCを使ったことが無いのでわかりませんが、やっていることは大して変わりが無いのに何が違うんでしょうか……
怪造カードの話題で年を越しましたね(^^;;;。
> 現在、Asusのカードを使っています。こちらは、元のサンプリングレートのまま出力されます。圧倒的です。
Asusのカードだと内部処理のための周波数変換が入らないで済むということですかね。
多分、Windowsでも同じことになるのでないかと思います。
こうなると謎は何故linux(&Windows DS)ドライバだと96KHzでWindows WOドライバだと96KHzになるかですね。
内部変換処理用のモードが二つあって、ドライバの振る舞いによってその辺りが変わるということだと思いますが、ASIOドライバだとオリジナルの周波数が意識されて綺麗に倍数になるというところが面白いです。
ASIOドライバの音質面での優位性を示しているような気がします。
> 私の場合、フルサイズのpcieカードを差し込めるPCが無いので、延長ケーブルやminipcie、m.2から変換ケーブルを使い外に出して接続しています。
僕の場合は中に入れることは出来るのですが、HDMI変換カードを固定する上手い方法がないので、結局、送ってもらったケーブルを使い、外だししています。最終形です(記事の写真とは違います)。
http://mimizukobo.sakura.ne.jp/upload/IMG_2760.JPG" target="_blank">http://mimizukobo.sakura.ne.jp/upload/IMG_2760.JPG
> 不思議なのがpcie延長ケーブルにUSBケーブルを使っているものがあるのですが、これを使ってもUSB接続とは、はっきり認識できるだけの音質の差があることです。USB3.0以上で動作するDDCを使ったことが無いのでわかりませんが、やっていることは大して変わりが無いのに何が違うんでしょうか……
面白いですね。ケーブルの違いではなく、送り方で差が出てくるということですかね。MatrixのX-spdif(USB3.0仕様です)を持っているので、試してみるかな。キツネdacに使っている感想でいうと怪造カードの方が断然良さそうですが。
昨年はPinkFaun関連でお世話になりました。
今年はそのお礼が出来る様にがんばりたいと考えています(笑)
>HDMI変換カードを固定する上手い方法がないので
自宅ではこの様なグッズで対応しています。
http://mimizukobo.sakura.ne.jp/upload/1604624401_b-hdmi.jpg" target="_blank">http://mimizukobo.sakura.ne.jp/upload/1604624401_b-hdmi.jpg
加えて現在moct氏が取り組んでいるペリフェラルコネクターを使って
別電源を接続可能なサウンドカードに対しては
こんな感じで外部電源を簡単に接続できる様にしています。
http://mimizukobo.sakura.ne.jp/upload/peri.jpg" target="_blank">http://mimizukobo.sakura.ne.jp/upload/peri.jpg
これで熊電源2台で12V,5Vを作りPinkFaunSoundCard(旧版)へ
電源を供給してクリエイティブカードと同レベルに
なった様に思います^^;
情報ありがとうございます。
やはりブランケットを使ってということになるのですね。問題はブランケットへの穴の空け方なのですよね。
材料の厚みが無ければハンドニブラーでキレイに開けられます。
見栄えを気にしないなら切り込みにすると簡単です。
見栄えにこだわるなら
鉄板等で硬いならドリルで3箇所ぐらい穴を開けて
ヤスリで穴を拡大して四角に整えます。
まあ時間がかかって面倒です(笑)
komaさん
ようやくArch Linux RTカーネルでの音を聴くことが出来ました。
イヤー、大変でしたね。Archのインストールは散々やっているのですが、綺麗にやり方を忘れ去っていました。意味不明のトラブルといろいろなミスだらけで、大変でした。詳細はサイトに記事として書きます。
「rt化は大変だ」とメーリングリストでボヤいたらmoctさんから最新のカーネルをプレゼントして頂きました。助かりました。
やはりrt化すると音はクリアかつ繊細になりますね。これはお勧めです。
最初のメッセージで、Windows ASIOドライバが最高と書きましたが、撤回します。やはりLinuxは素晴らしい。Linuxの場合は全てを96KHzに変換してしまうという怪しいハードなのですが、そんな事はものともしないで、最高の音を出してくれます。
Arch Linuxだけの時はWindows ASIOドライバの方が良いという感じでしたので、やはりRTカーネルの威力が凄いようです。「何でも無条件にRTカーネルにすればいいわけじゃない」と思っていましたが、このケース(インテルハードでのPCIE接続でのI2S出力)ではRTカーネルが良いようです。どういう理屈なのだろうか。
>そんな事はものともしないで、最高の音を出してくれます。
本日着弾予定の新カードではlinuxでも
変換されずにそのままのサンプリングレイトで出力されます。
yoさん宅で実力発揮が出来れば^^;
即メインカード入れ替えになると思います(笑)
>「何でも無条件にRTカーネルにすればいいわけじゃない」
>と思っていましたが、
目新しい事は余り無いのですがリバースエンジニアリングの寄せ集めで
moctさんからの情報を元に絨毯爆撃で最適条件を詰めています。
ソフト面だけでなくそれに寄り添うハード系方向でも最適を狙ってイジっています。
かなり良いところまで来ていてmoct氏はもうコレ以上やっても
音源のアラまで聴こえるだけで楽しくならないのでは?と言う話も(笑)
おお 嬉しい知らせ!
環境が落ち着いたら出音の感想もお聞きしたいです。
加えて...
私のHPを見ていただいているのであれば画像がありますが
カードのブラケット反対側の三端子レギュレター周りの220uFを
例えばOSコンへ変更すると音のグレードが上がるので是非試して欲しいです。
ご報告ありがとうございます。
怪造カードの使用者が1人増え、これで世界で4人(moctさん、komaさん、knkn59さん、yo)になったのですかね。
僕はkomaさんにおねだりして、DSXの方を使っています。ボリュームオーバーによる歪みの件はこちらでもLinuxでは発生します。Windowsでは起きないのですが、ASUSのWindowsドライバで対応されているということだと思います。
インテルハードでのArchLinuxは初めての挑戦でしたが、何とか動きました。これも素晴らしい音がしますので、お勧めだと思います。英語であれば、情報は山程ありますので、よろしければ、トライしてみて下さい。Gentooとどう違うか(違わないか)というのも知りたいところです。
すったもんだがありまして、作戦始動から2週間が経ちました。
ようやくintel PC / Arch - Sound Blaster Titaniumでの音出しに成功しました。
audaciousとMPD (cantata) で確認できました。
audaciousではOutputにSurround Rear Speakers (hw:0,1)を選択しなくてはなりません。
MPDではmpd.confのaudio_outputでdeviceにhw:0,1を指定した上でKDEのAudio Volume SettingからAnalog surround 4.0 outputをProfileとして指定しなくてはいけませんでした。
GUIを使わなければ関係ない処置かもしれません。
とにかく鳴ってくれて良かったです。
ご教示くださったyoさん、komaさん、moctさん ありがとうございました。
次はどのカードから横取りしてやろうかしら←
怪造カードでの音だし成功、おめでとうございます。長い道のりでしたね。だだ、得られた成果/ノウハウも大きかったかと思います。
Windowsで音が出ていないのもLinuxと同じ理由だと思います。分かったことはスピーカーの指定をi2s横取り作戦に合せない駄目だということです。サラウンド指定というやつがそれらしいので、Windowsでコントロールパネルで出来るのではないかと思います。
今のところサウンドブラスタのカードはFPGAとドライバの相性が原因で、無条件に周波数変換が入るようです。Linuxではこの値が無条件に96KHzになるので、44.1KHzの通常のCDデータの再生には不利に働きます。WindowsのASIOドライバではこれが整数倍の88.2KHzに変換されます。従って、WindowsのAPなどを使えば非常に良い音を出すことができます。是非試してみて下さい。
あと、接続が正しいかどうかの切り分けで結構時間がかかりましたね。結局、設定の問題だったわけです。この辺りの切り分け方法が重要だと思いました。DACハードとロックがとれていれば、接続は正しいということのようなので、これも貴重なノウハウですね。
Linuxに関していうと、余分なソフトが動かないコンソールモードのArchLinuxで動かし、MPDで音を出すというのがベストではないかと思います。是非、お試しを。
1. Pink Faun I2S Bridge Cardを購入、これ用にと準備しておいたRyzen5 / Windows10 ミニPC(スピンドルはファンのみ)に組み込む
Pink Bridge Card用5V外部電源にはDC Yarrowを使用、HDMIケーブル(AIM電子製)伝送先DACは逢瀬AK4499 DAC
TuneBrowserというアプリの使い勝手を気に入っていたため、Windows環境からI2S HDMI伝送を目論んだものでした。
WASAPI, ASIOそれぞれで再生するも、いずれも満足の得られない結果に。オンボードサウンドデバイスで圧縮音源を流したような感じ。
WindowsMediaPlayerでも似たような印象。50点未満
2. Pink FaunのJord氏に助言を請う & yoさんお薦めのAlbum Player (Win版) をインストール
Jord氏は「RoonとFidelizerを入れてみな」と言うので試してみることに。なぜかASIOよりWASAPIの方が好ましいが今一歩。70点
Album Playerも悪くはないものの、同じく物足りない。60点
3. Ryzen (AMD) プラットフォームではPinkカードの実力が測れないと思い、Core i7 (Intel) と入れ替えることにする
使用したプレイヤーアプリはこれまでと同じなのだが明確な向上がみられた。最高点はRoon & Fidelizerの80点、しかしこれは個人的には使いづらい。
TuneBrowserで鳴らすと65~70点くらい。カードに載っている電解コンデンサをWEからPXEに交換してみたが、これの効果は微妙...。
4. 某日、Windows環境は残しつつ、別SSDにArch Linuxを構築してみようと深夜0時に思い立つ(Archインストール経験ゼロなのに)
ネットでやり方を調べながら、意味もわからないまま見よう見まねで記載にならって進めていく。当然トラブる。
解消法を検索しても何をしているのか理解していないのだから復旧できずに日の出とともに再インストール(ここで気絶するように寝る)。
5. Arch導入と並行して、Sound Blaster TitaniumからI2S横取りプロジェクトに取り組んでいく
極細ケーブルをDACリード部に5本並べてはんだ付けという、自己最高難度の工作に挑戦するが幾度も失敗。いい大人が涙ぐむ。老眼のせいにする。
6. なんとか起動したArchでPinkを試したいのだが、四苦八苦したビルドアップ直後でMPDの導入を躊躇し、
簡単に鳴らせるアプリはないものかとググってDeaDBeeFを入れてテスト(これはムダ足となる)
曲を掛けてみるとブツブツ途切れたり、エコーが掛かったようになり、まともに聴けない。
のちに解消法は見つけるのだがこれは謎というほかはないもので、このアプリは不採用とした。
7. Sound Blasterはどうにか配線処理が終わり、PCに組み込んでみるも横取りI2Sからは音が出ない(ブラケット部3.5mm出力からは音が出ている)
逢瀬DACにはサンプリングレートは96kHzと表示されている。
組み合わせが間違っているのかもとGND以外の4本総当たりリーグ戦を展開、6大学野球の東大ばりに全敗を被る。
よもや、やなさんHDMI Senderを壊してしまったのかもとRPi3B & innomaker HATで試してみるとこちらは生きていそう。
やはりはんだ付けを失敗しているのかと一旦取り外す。
8. 検証アプリはAudaciousが良いと教わり、Arch & Pinkでテスト再開
ここでPinkがやっとまともな音を流し始めます。いきなり80点超えの合格圏内。けれどもSMPD AoEには及ばない。
フォーカスが甘いというか、無難な音という感じ。Jordさん、これって...。
9. 配線をこれでもかと十分にチェックしたSound Blaster改とAudaciousでテストを開始する
サンプリングレートは96kHzと表示されるのはこれまで同様で、ノイズすら鳴らない状態。
4本の電圧・電流をチェックしたが (SDATA以外は約1.2V, 10~15mA)問題はなさそうではある。
komaさんのアドバイスによりOutputを全通り試してみたところ、「Surround Rear Speakers (hw:0,1)」でヒット。
なんでSurround Rearなのかは???これ以外の選択では無音。
よくよくkomaさんのblogを拝見するとヒントは書かれていました。4つのチャンネルがあって、そのうちの1つから横取りしているのだ。
これまで鳴らなかったのは、はんだ付けが甘かったときもあったのだろうが、このOutput選択が肝要であった。
音の採点は85点以上あげてもいいな、と思うくらい滑らかな音ではあるが、どうも元気・活気が足りない。
やはりここは総本山MPD師匠に登場してもらうしかなさそうだ。
10. ArchにMPDとRTカーネルを入れ、クライアントにはSMPDで使い慣れたCantataを採用して音質向上を狙う
選択するOutputはAudaciousで判明しているのでmpd.confにその通り記述。いざ再生...。
これだ。このプロジェクトの最初に期待した出音はこのレベルでした。
ほぼSMPDと遜色ないと思えるが、比べると僅かに濁りもしくは霞みがあるようにも感じる。90点
何を再生しても(CDフォーマットでもDSDでも)96kHzにならされてしまう点が懸念。
インターフェースが同じCantataなら私宅鑑賞環境はSMPD AoEで良いという結論になってしまいます。
11. 今後の方策として ①Senderに入れている3.3V電源を2段階降圧式(12 > 7~5 > 3.3)とする
②MPDをデスクトップ環境ではなくコンソールで扱う
③ASUSサウンドカード改を調達する
等を考えております。
長文・駄文失礼致しました。何か発見があった場合にはまたお知らせします。色んな選択肢があるというのは幸せなことですね。
ひとつ提案ですが、サンプリングレートが96kHzになるのであれば、逆にMPDの方で全て強制的に96kHzに変換してしまうのも面白いかもしれません。
sorxの方がもっと面白いかも……
電源の方ですが、NJM2863F33 https://akizukidenshi.com/catalog/g/gI-05579/" target="_blank">https://akizukidenshi.com/catalog/g/gI-05579/
なんかはローコストですし特性もなかなかです。
私の場合、以前から変換基板に載せて配線中にぶら下げて使っています。
実験工房グループ(moctさん、komaさん)にお願いですが、間違えがあれば、ご指摘ください。
1.使えると判明したカード
サウンドブラスター X-Fi Titanium HD
サウンドブラスター X-Fi Titanium
ASUS Xonar DSX
ASUS Xonar DGX
最新のカードはゲーム目的のものばかりで、オーディオ用のものはないので、試していません。
2.ハンダ付け作業のやりやすさ。
X-Fi Titanium HD > ASUS Xonar DSX/DGX > X-Fi Titanium
左側程やさしそうに見えます。
3.使えるOS
X-Fi Titanium HD Windows、Linux共にディフォルトの状態で接続可
X-Fi Titanium Linuxはサラウンドの指定が必要、Windowsも同じだと考えるが未確認
ASUS Xonar DSX Windows、Linux共にディフォルトの状態で接続可
ASUS Xonar DGX Linuxはディフォルトの状態で接続可、Windowsは未確認
4.動作状況(再生速度の変換)
サウンドブラスター X-Fi Titanium HD での確認
Linux・・・全て96KHzに変換再生
Windows ASIOドライバ・・・オリジナルの整数倍の88KHz/96KHz
Windows DirectSoundドライバ・・・全て96KHzに変換再生
Windows WaveOutドライバ・・・全て88KHzに変換再生
ASUS Xonar DSX(DGXはLinuxのみでの確認)
Linux・・・全て変換無しのオリジナルと同じ速度で再生
Windows ASIOドライバ・・・全て変換無しのオリジナルと同じ速度で再生
Windows DirectSound/KernelStreamingドライバ・・・全て96KHzに変換再生
Windows WaveOutドライバ・・・全て88KHzに変換再生
というところです。音は再生速度の変換が入らないASUSのカードが優秀ですが、サウンドブラスタでも再生周波数が整数倍の変換となるASIOドライバでの音も素晴らしいです。
DGXのWindowsの動作は今週末にNewマシンが届けば確認させていただきます。また、arch linuxのインストールも慣れないと大変ですので、比較的簡単にインストールできるAudioPhile Linux(Arch)のインストールのまとめもこちらで近いうちに書かせていただきます。
OKだと思います。
最初の改造チャレンジで概ね問題ないのはこの四枚だと思います。
moctさん宅には半分だけ動作する?例えば通常使用では動作するが
何故かMPDでは動作しないとか基板上のリレー制御がLINUXでは変な動きとか
いずれもWindoes上では動作するかも知れませんが
自分もmoctさんもWindows環境が無いのでテスト出来ません。
そんなの音に関係するのか?とか怒られますが
クリエイティブのこの時代のサウンドカードは24bit/192kHzという仕様なのですが
これが基板上のDACの仕様なのか?サウンドプロセッサーの仕様なのか
良くわからないのですよね。
それに対してASUSのDGカードは
ASUSオリジナルチップでは無いサウンドプロセッサー(CMI8786 32bit/192kHzの)を
使っていますね。まぁDGカード上には24b出力仕様DACが搭載されているので
横取りして初めて32bit信号が取り出せる?のかなぁとか??
CMI8xxxシリーズのカタログデーターを読んでみると
やはりPinkFaunカードに使われているCMI8888が最強なんですが
このICを搭載した別メーカーのカードはLinux上で完全動作しないんです(悲)
原因は恐らくCMI8888はEEPROMを搭載して動作設定が可能な仕様なので
そこをメーカーがゴニョゴニョしていると
Linuxのドライバーが対応出来ないのだと推測しています。
ふとこのSB TitaniumをWin10で鳴らしていなかったなと思いだして、試してみました。
OSのサウンド設定で4 channel (rear speakers有効)にして、まずはTuneBrowserで。
ASIO4ALLは音がでません。時間は進みますし、スペクトラムも表示されます。諦めてCreative ASIOへ。
音は出ますがナローレンジです。ラジカセみたいです。WASAPIも音出ませんでした。
foobar2000でもCreative ASIOを選択しないと音出ません。しかも音量が半分くらいになってしまいます。これも残念な結果に。
AlbumPlayerはASIO4ALLで正規の音量で鳴ります。しかもこれはかなり良い音質です。他のOutput選択ではまともに鳴りませんでした。
Windows環境でSoundBlaster改を鳴らすならAlbumPlayer (ASIO4ALL) がデフォとの認識でよさげです。
moctさん
アドバイスありがとうございます。お薦めのNJM2863F33含め検索していて、気になるもの (BD37201NUXを使ったモジュール) があったので使ってみました。
音の立ち上がりが良くなった感じです。粒が揃うというか。
SMPDのバックエンドにはFifoPiが載っていますので、そちらにも使ってみました。
やっとSMPDに匹敵する再生手段をArch & SB改で構築できたと思ったのに、またちょっとSMPDの方が強くなってしまった感があります。
WindowsでもAlbumPlayerからなら近しい音が聴けます。面白いことになってきました。
Windowsでの動作確認ありがとうございます。
サラウンドを指定すれば、X-Fi TitaniumでもWindowsで音は出るということですね。WASAPIはHDでも同じ結果(音は出ない)ですので、サンウンドブラスタのFPGAはそういう動きになるということなのでしょう。
> Windows環境でSoundBlaster改を鳴らすならAlbumPlayer (ASIO4ALL) がデフォとの認識でよさげです。
これはHDでは未確認ですが、多分同じ結果でしょう。サウンドブラスタのASIOドライバでも音は出ると思います。HDではこちらは素晴らしい音がします。linux asusに匹敵するレベル。
先の投稿とサイトの記事の方に書きましたが、結局、周波数変換がどう入るかで音の良さは決まるという感じですね。
Windows ASIOドライバ・・・オリジナルの整数倍の88KHz/96KHz
Windows DirectSoundドライバ・・・全て96KHzに変換再生
Windows WaveOutドライバ・・・全て96KHzに変換再生
ということななりましたが、 WaveOutドライバは設定ミスかな?という結果となってしまいました。
それから、intel 10t hgeneration motherでDGX認識されるものの音が出ず難航しております(OSはGentoo)
i2s-HDMI変換カードがフランスから到着しました。
https://www.audiophonics.fr/en/diy-interfaces/i2s-to-hdmi-i2s-module-board-p-10754.html" target="_blank">https://www.audiophonics.fr/en/diy-interfaces/i2s-to-hdmi-i2s-module-board-p-10754.html
10日ほどかかりました。送料その他含め2枚で5000円弱です。組み立て済みでこの値段ですからなかなかです。
早速組み込んで音を出してみました。2週間ぶりです。
こちらで音を出せない間、SMPDを使っていました。SMPDの進化ぶりは皆さんご存知だと思います。
とりあえず1台構成で音を出したのですが、別物です。
スケールの大きさがまるで違います。特別なことは全くしていないarch+mpdです。
カーネルはrtとrt-ltsの最新版をコンパイルしました。現時点では全く手を加えていません。前のバージョンでは私のカード(ASUS XONAR HDAV13/DELUXE/A)を認識しなかった最新版のrtカーネルでも音が出ています。
カーネルの需要があればここで公開します。
先日からTitanium HDが気になっていたので、手に入れました。
Titanium無印で散々格闘したおかげですんなりと配線は終えられました。
音出しも問題なく出来ています。こちらはPCM1794搭載で、I2Sの端子がそれぞれ1つずつなのが迷わなくていいですね。
音の印象としては、HDの方が無印に比べてしっとりしている感じですね。艶があるとでも言いましょうか。
ご報告ありがとうございます。
同じサウンドチップを使っていると思いますが、DSXとは違う結果ちなるのですね。まあFPGAの内容で決まるわけだから、当然といえば当然ですが、興味深いです。
周波数変換されるところもDSXと異なります。DSXではオリジナルのままですから。DGXの変換はサウンドブラスタの X-Fi Titanium HD と大体いっしょですが、WaveOutドライバの結果が異なるのは、ご指摘のように不思議です。
moct さん
同じi2s-HDMI変換カードを僕も2枚持っています。c1と刻印があるやつがps-audio対応、c2がgustard対応ですね。逢瀬はps-audio配列ですから、問題はないですね。aliとかebayで買うと送料が安く(中華料金)すみますが、時間がかかりますので(一月以上)、フランスで正解でしょう。
カーネルは手をあげます。
Hirune さん
ヤッパリ、HDの方が作業は楽なようですね。
音もHDの方が良さそうだから、どちらにするかは落札価格次第ですかね。
RTカーネルの最新版です。
https://drive.google.com/file/d/1_ahxq2AY6FVZGA5v8LYC2lffTLmb2EpR/view?usp=sharing" target="_blank">https://drive.google.com/file/d/1_ahxq2AY6FVZGA5v8LYC2lffTLmb2EpR/view?usp=sharing
かなり小さくしました。サウンドカードのドライバがどの程度入っているか確認していません。
https://drive.google.com/file/d/1_ahxq2AY6FVZGA5v8LYC2lffTLmb2EpR/view?usp=sharing" target="_blank">https://drive.google.com/file/d/1_ahxq2AY6FVZGA5v8LYC2lffTLmb2EpR/view?usp=sharing
こちらは、RT全部入りです。
RT-LTSは、別のPCでコンパイルしたので後ほどアップします。
Titanium HDで追試したら、しょぼかったTune Browser (ASIO4ALL) の音が向上しました。普通に聴けるレベルです。
foobar2000も上々です。Album Playerの優位性が薄れるほどに。
Windows PCからI2SをHDMI伝送した場合の個人的序列は、
Sound Blaster Titanium HD > Sound Blaster Titanium 無印 >> Pink Faun I2S Bridge
となりました。Archと順位は同じですが、Winの場合は点差が広いです。
Linuxの方がデバイスの能力を引き出すのが上手だということでしょうか。
Windows環境での利点はもう1つあって、TIDALアプリ上でストリーミングクオリティに「Master」を選べるんです。
LinuxではWebブラウザからの再生になって、HiFiまでなのです。
Pinkを買わずに直にTitanium HDに行ければだいぶ低コストだったのでしょうが、そこは勉強代とみなします。
rtカーネルのアップロードありがとうございます。apuへのヘッドレスシステムの導入に悪戦苦闘していますが、落ち着いたら、使うつもりです。
Hirune さん
asusはWindowsとの相性は悪いです(Linuxでは最高ですが)。Windowsで使うならサウンドブラスタのHD X-Fi Titaniumを使う一手ということですかね。
RT-kernelアップありがとうございます。RTカーネル試してみました。
music fileはnfsでマウントしていたのですが、ethernetが認識できなくなり、nfsがマウントできなくなります。
ということでまだ音を聞けておりません。
大変、ご無沙汰しております。
>apuへのヘッドレスシステムの導入に悪戦苦闘していますが…
当方もいろいろやってみてはいますが、上手くいきません。
ArchLinuxについては、ネット上の情報のとおり、archisoでカスタマイズしようとしましたが、再作成の際に肝心なビルドスクリプトが無く含まれていないという結末でどうしようもありませんでした。
現状、apu2でまともに動かせているのはTinyCoreくらいです。
PC ENGINES社はサイトが存在し、個人向けの販売も継続しているようですが、どの位、個人を相手にしているのですかね。今や、個人が使うハードではなくなったようで、ご本家以外にはほとんど情報がありません。ご本家での情報はここ https://pcengines.ch/howto.htm#home" target="_blank">https://pcengines.ch/howto.htm#home にありますが、情報は古いので、使い物にならないのですよね。ご指摘のように使えるのはTinyCore位のように見えます。
arch linuxに関しては https://wiki.archlinux.jp/index.php/PC_Engines" target="_blank">https://wiki.archlinux.jp/index.php/PC_Engines というページがあるのですが、ブート時のシリアルコンソールの設定方法の説明だけで、肝心のArchLinuxのインストールに関しては何の記述もないのですよね。普通(?)のインテルハードならarchインストール用のブートイメージが使えるのですが、これがapuだと、頑強に抵抗して、起動してくれないです。
しかし、まあ、何とかPC ENGINES社上記のページから発見したapu2用debianサーバーのインストール用イメージ
https://github.com/ssinyagin/pcengines-apu-debian-cd/releases" target="_blank">https://github.com/ssinyagin/pcengines-apu-debian-cd/releases
が動いたので、debianサーバーシステムは構築できました。wheezyですから古いのですが。
これを橋頭堡にして、どう上陸作戦を進めるか思案中です。
apuにこだわっている理由は、miniPCIE接続が出来るので、ここに変換ケーブルをつなげば、怪造カードがつなげることが出来るはずです。これだと結構コンパクトにシステムをまとめることが出来て、電源対策もやりやすいだろうと考えています。
http://mimizukobo.sakura.ne.jp/upload/111.png" target="_blank">http://mimizukobo.sakura.ne.jp/upload/111.png
出ているエラーの消し方が分かりませんが(笑)
何とかrt-kernel起動までたどり着きましたが問題山積みです。
1.メニューが二重??に表示される。
2.append_path って??
http://mimizukobo.sakura.ne.jp/upload/1111.png" target="_blank">http://mimizukobo.sakura.ne.jp/upload/1111.png
このスレッドで続けていいかどうか分かりませんが…
apu2へArchLinuxのインストールが問題なく出来そうな気がします。
概略を書くと…
・rufusでArchLinuxのiso(archlinux-2020.12.01-x86_64.iso等)をUSBメモリに焼く
・USBメモリのsyslinuxフォルダ内の2個のcfgファイルを改変
・Tera Termとapu2をUSB-sirial変換ケーブルで接続、ボーレートは115200に設定。
・USBメモリをセットし、電源ON。表示されたメニューからインストールを選択。後はひたすらloginプロンプトが出るまで待つ。
ログイン後は、有難いことにネットワークも有効ですのでsshdを走らせてsshソフト(当方はRLogin)でインストール作業が出来そうです。
起動途中では表示がズレたり、一部文字化けしたりしますが最終的には以下のようになりました。
http://mimizukobo.sakura.ne.jp/upload/apu2_arch64.png" target="_blank">http://mimizukobo.sakura.ne.jp/upload/apu2_arch64.png
apu2と一緒に購入していたSSDが残念ながら壊れていて、本日amazonへ注文したところですので、内蔵SSDへインストールしてうまく起動させることができるかは分かりませんが、私的にはかなり前進(それも一気に)したと思います。
一応、x86_64用のarchlinuxのインストールイメージを使い、apu2のssdに最新(202101版)のarchlinuxをインストールすることが出来ました。やり方は基本的にはえふさんが書かれている方法と同じです。
イメージはSDに書き込みました。SDとUSBではかなりブートディレクトリに違いがありますね。
書換ですが、イメージの/syslinux/archiso_sys-linux.cfgの
APPEND archisobasedir=arch archisolabel=ARCH_202101
という行を
APPEND archisobasedir=arch archisolabel=ARCH_202101 console=tty0 console=ttyS0,115200n8
という具合にシリアルの記述を追加しただけです。あとは、このページ
https://wiki.archlinux.jp/index.php/%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%AB%" target="_blank">https://wiki.archlinux.jp/index.php/%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%AB%
E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB
(改行を削除してアクセスして下さい)
を参考にして /etc/default/grub に以下を修正。
GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8"
の変更と
## Serial console
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
の追加。
その後、
grub-mkconfig -o /boot/grub/grub.cfg
でokです。
問題は/syslinux/archiso_sys-linux.cfgのシリアル記述は正しい方法では無いようで盛大な文字化けが数分続きようやくシリアルに入ること。いろいろやってみましたが正解はまだ分かりません。
まあ、一度、インストールできればこっちのものなので、気にしないことにしています。
そちらのcfgの変更はどうやっていますか。
スレッド違いではありますが、関係ないわけじゃないので、気にしないことにしましょう。
grubの情報ありがとうございました。おかげ様でSSDから起動することができました。(大ボケで壊れていると思っていましたが、実は正常でした。)
確かに、途中盛大に文字化けが入りますね。まあちゃんとloginにたどり着けるので構わないのですが。
インストール用のcfgファイルについては…
/syslinux/archiso_sys-linux.cfgの修正については同じです。
もう一つは、/syslinux/archiso_head.cfgの修正です。これは修正しなくてもよいかも知れませんが一応…
・SERIAL 0 38400をコメントアウト
・COLOR関連をバッサリ削除
#
# SPDX-License-Identifier: GPL-3.0-or-later
#SERIAL 0 38400
UI vesamenu.c32
MENU TITLE Arch Linux
MENU BACKGROUND splash.png
MENU WIDTH 78
MENU MARGIN 4
MENU ROWS 10
MENU VSHIFT 4
MENU TABMSGROW 18
MENU CMDLINEROW 16
MENU HELPMSGROW 16
MENU HELPMSGENDROW 29
menu tabmsg Press ENTER to boot or TAB to edit a menu entry
MENU CLEAR
MENU IMMEDIATE
以上のような感じです。インストール時は殆ど文字化けはしません。
これでArchLinuxが走るちゃんとしたパソコンとなりました。一時期は殆ど使っていなかったけど、捨てないで良かったと思います(^^;
当方が参考にしたサイト
・cfgの修正
http://multix.jp/headless-liveboot-ubuntu/" target="_blank">http://multix.jp/headless-liveboot-ubuntu/
・インストール作業
https://qiita.com/Hayao0819/items/1ab6f2984878978d0c3c" target="_blank">https://qiita.com/Hayao0819/items/1ab6f2984878978d0c3c
https://qiita.com/Aruneko/items/0541f343ec7a1989f236" target="_blank">https://qiita.com/Aruneko/items/0541f343ec7a1989f236
※下側はEFIの場合なので、ブートシステム部分は除く
結局シリアルの設定方法をクリアすればいいだけで、案外簡単に出来ましたね。これならapuはまだまだ十分に使えそうです。メデタイです。
archiso_head.cfgの修正は文字化けを回避するには必要なようです。archiso_sys-linux.cfgとarchiso_head.cfgの修正でシリアルでちゃんと起動出来るということでしょう。面白いのはSDカード、USBメモリでブートの設定を変わることです。syslinuxをefiブートさせる時の制約ですかね。謎です。
以前、この掲示板に書いたような気がするのですが、僕はapuは良い音での音楽再生に最も適したハードだと思っています。
①Linuxターゲット。②必要十分なCPUパワーとメモリサイズ。③eth端子が三つ(自在なネットワーク接続が可能)。④シリアル接続(ディプレイチップレス、シリアル端子)。⑤低電源容量(電源対策が容易)&適度なコンパクトサイズ。
音楽再生で良い音を出すための特徴ばかりです。
何で、皆、ラズパイばかり使うのか。コンパクトすぎて、ノイズだらけ。
何で、皆、インテルばかり使うのか。バカでかすぎて、使いづらい。
もっと、このハード(apu)がオーディオマニアに普及しないものかと思います。
以上独断と偏見の私見です。
自動ログイン設定が上手く行かず
ここで止まります(起動は出来ているようです)
どうすれば良いか?解説をお願いしたいのですが...
http://mimizukobo.sakura.ne.jp/upload/AA.png" target="_blank">http://mimizukobo.sakura.ne.jp/upload/AA.png
僕もカーネルのビルドで悪戦苦闘しているところで、まだ、人のアドバイスを出来る状況ではないのですが、使っているハードは何かとか、どのようにシステムを作成したのかとか、まったく説明がないとアドパイス出来ません。
自動ログイン設定ってなんですか。
洋さんHPの記事を参考にしてapu2にarchlinuxをインストールしています。
TinyCore linux on apu1(4)という記事です。(たぶんArchlinuxはTinyCoreと共通だと思って)
そこの記述の中で
「オートログインの停止」しないと だんまり になるとなっていて
自分はその状態では?と思っています。
起動画面が途中で止まるがsshで確認すると
最後までいって起動は成功している様に見えます。
どうせならシリアルコンソールの表示も正常にしたいと思うので...
PS
Archlinuxのyayとかでrtカーネルをインストール後に
そのソース使って違うconfigでビルドするとエラーになるとか?
その状態から抜ける方法はmoctさんが発見したようです。
大ハズレならゴメンナサイ。
-----------------------------------------------------------------------
ブートの設定ファイルにシリアルを指定
これについては過去の記事で取り扱っていますので、ここではextlinuxの場合。
ブートパーティションをマウント(環境によっては不要、dfで確認)
sudo mount /dev/sdd1 /mnt/sdd1
extlinux.confを編集
最初に追加
SERIAL 0 115200
APPEND行に追加 console=ttyS0,115200n8
ついでに hpetも設定
clocksource=hpet
securettyの編集
ttyS0を有効にします。コメントインするだけです。
sudo nano /etc/securetty
# For people with serial port consoles
ttyS0
autologinの設定
38400 tty1 を 115200 ttyS0 に変更します。
sudo nano /sbin/autologin
exec /sbin/getty 115200 ttyS0
# exec /sbin/getty 38400 tty1
inittabの設定
inittabも 115200 ttyS0 に変更します。
sudo nano /etc/inittab
ttyS0::respawn:/sbin/getty -nl /sbin/autologin 115200 ttyS0
#tty1::respawn:/sbin/getty -nl /sbin/autologin 38400 tty1
オートログインの停止
これをやらないと、busyBox側gettyが走りシリアルコンソールがだんまりコン状態となる。
ssh接続で使えるので問題はないのですが、対応した方がよいでしょう。
nano /opt/bootsync.sh
echo "booting" > /etc/sysconfig/noautologin
-----------------------------------------------------------------------
僕も自分の書いた記事を読み直しながら、「こいつの書いていることはサッパリ分からん。変だやつだ。」とボヤキながらカーネルビルド中です。
ご指摘の記事は忘却の彼方ですね。「archとtinyが似たようなものだ」なんて僕が書いたんですかい。そいつはどうかしているんじゃなかなろうか。というわけで全ては忘却の彼方。思い出したら追記します。
一応、えふさんと僕が今回発見した最新の情報でシリアル起動はできますよ。まあ作者としては古い記事にこだわっていただいて感謝です。
自分の書いた記事を真面目(?)に読み直してようやく事態を認識しました(^^;;;。「archとtinyが似たようなものだ」とはkomaさんの意見で、この部分は「シリアルコンソールに関して」という修飾子付きで読まない(書かない)といけなかったという訳ですね。
「似たようなもの」ではあるのですが、この場合は違います。archのブートローダはgrub又はefiですがtinyはextlinuxです。従ってtinyで通った方法はarchでは効きません。
APPEND行に追加するのは、5~6個前の僕の書いた投稿にあるように
console=tty0 console=ttyS0,115200n8
でないとマズいです。
あと、その次のえふさんの記述も重要で、両方足して問題なく起動出来るようになります。後はお好きなように料理して下さいませ。
なるほど...そう言う事なのですね。
m(__)m
何回も挑戦して失敗...
最初からインストールするにはもう精魂尽きたので(笑)
ブートローダーをextlinuxに切り替えて
console=tty0 console=ttyS0,115200n8 を追加!
二重になるメニューはAPU2のBIOS設定で解消し!
まともに起動出来る様になりました。
extlinuxの扱いはもう何年も前に洋さんから
voyager-Archlinuxのデュアルブート設定を教えていただいたので
それで何とかなりましたm(__)m
早速、試してみました。問題なく動きますね。音も良いし、素晴らしい。これっだったら、archは大変という方は有償であっても使う値打ちはありますね。
ちなみに、シリアル接続時だとシリアルコンソールに表示させることが出来ます。
最新の記事に書いたのと同じ形で/etc/default/grubを変更し
mount /dev/sda2 /boot
grub-mkconfig -o /boot/grub/grub.cfg
すればブート時のコンソールメッセージを見ることが出来ます。
ログインできないので意味はないのですが、カーネルを起動時のメニューで選べるようになります。
イメージの公開ありがとうございました。試してみました。インストール用のシステムとして問題なく使えそうですね。archisoというのは初めて知りました。archlinuxのx86_64用起動ディスクもこれ(archiso)を使っているようですね。
このディスクを使って作業した結果(例えばインストールしたパッケージ、コマンドの履歴など)が残らないのはこのarchisoの仕様なのですかね。一応、ここ
https://wiki.archlinux.jp/index.php/Archiso" target="_blank">https://wiki.archlinux.jp/index.php/Archiso
を読んだのですが、分かりませんでした。残すモードがあっても良いのではないと思うのですが。
このディスクを使って作業した結果(例えばインストールしたパッケージ、コマンドの履歴など)が残らない > 以下のページのようにscriptを使ってみてはいかがでしょうか
https://qiita.com/j8takagi/items/235e4ae484e8c587ca92" target="_blank">https://qiita.com/j8takagi/items/235e4ae484e8c587ca92
リンク先の紹介ありがとうございました。archlinuxの日本語のサイトはあまり無いと思っていましたが、このサイトの情報は素晴らしいですね。これが一番お勧めのようです。
新しいスレッドは『「インテルアーキ用i2s出力怪造カード」の勧め(2)』と『何が何でもarchlinux(^^;;;』です。
>えふ さん
コメントしたのは、knkn59さんですよ(^^;
knkn59さん
フォローありがとうございました。このサイトは当方も過去に参照した記憶があるのですが、直ぐに出てきませんでした(^^;
このscriptコマンドを埋め込んだものでインストールテストしているところですが、果たしてうまくファイルに落とせるか…
皆さん、初めまして
Core i7-4770のデスクトップパソコンにDaphileをインストールしたのですが、3つうまくできないことがあります。
解決方法をご存じでしたら、お教えください。
1.2台目の内蔵HDDに書き込めない
DaphileをパソコンのSSDにインストールしましたが、SSDが容量不足なので、2台目の内蔵HDDをsettingのStorageからext4でフォーマットし、UsageをMusic、Souce directoryをHDD1/Music、IdentificationをHDD1、RWとShareにチェックを入れてSave & Restartしたところ、HDD1と認識されましが、DaphileのFile ManegerではHDD1に鍵マークが付いていて書き込みできません。SSDのDaphileDataには、File ManegerにWindows 11のエクスプローラーからドラック&ドロップで書き込みできます。またWindows 11のネットワークではいずれも認識されていますが、DaphileDataにしか書き込みできません。
なお音楽データを入れたUSBメモリーも鍵マークが付いて、読み取り可能だが書き込み不能なので、2台目の内蔵HDDと同じ状態です。
Daphileのベータ版にsshでログインして、HDD1のdirectoryをchmodでパーミンションを変更して再起動しましたが、方法を間違ったのか書き込み可能にできませんでした。
できれば、2台目の内蔵HDDにWindowsパソコンから音楽データをコピーして運用したいのですが、どうすればよいでしょうか。
2.NASの登録失敗
asoyajiさんのブログに従い、Windows 11のIntel NUCのDドライブのMusicおよびIO-DATAのNAS(RockDiskNext)のhome/admin/Musicを共有しようとしましたが、どちらもエラーとなります。cifsで、192.168.0.xxx:/Music、Passwoodは有りと無しを試しましたがダメでした。/Musicの部分が間違っているのでしょうか。どちらも別のWindows 11 パソコンからは認識されていて、読み書き可能です。なおWindows 11のSMB 1.0/CIFS クライアントは有効にしています。
3.HDMI経由での再生ができない
AVアンプ SONY TA-DA5800ESをUSB DACとして再生することは可能ですが、HDMI経由での再生ができません。DaphileのAudio DeviceとしてはHDMIも認識されてます。DaphileのパソコンにはDaphileの画面が表示されますから、HDMIでグラフィックは送られていると思います。HDMIならマルチチャンネル再生も可能かと思ったのですが、HDMIによる再生はできなのでしょうか。
よろしくお願いします。
「2.NASの登録失敗」と「3.HDMI経由での再生ができない」についてお教え願います。
HDMI経由の再生はできませんでした。
Greetings from Carolina! I'm bored at work so I decided to check out your blog on my iphone
during lunch break. I really like the knowledge you present here and can't wait to take a look
when I get home. I'm surprised at how fast
your blog loaded on my phone .. I'm not even using WIFI, just 3G ..
Anyhow, very good blog!
Diretta Reference DST-00が、委託販売の形で、正式に発売されました。
今までとは、次元の全く違う音質になっています。I2S接続ができるDACをお持ちの方は、ぜひともお試しになってみてください。
https://www.oliospec.com/shopdetail/000000013199/ct147/page1/order/?fbclid=IwAR3wuHhbejYN8pe0RLT_GWqgn-1UXp0hAjC1cJ4Wlokk0FwOz-sX_cp-hoY
https://help.diretta.link/en/support/solutions/articles/73000607071-lucia-shakerato-lvds-dst-00
参考にしていただければ幸いです。
https://www.facebook.com/groups/149414109857805/posts/638955790903632/
https://www.facebook.com/groups/149414109857805/posts/649012869897924/
https://www.facebook.com/groups/149414109857805/posts/649014609897750/
I2S-HDMI出力のDirettaTargetが発売になってます。
USBをまったく介さずDSDもDoPでなくNativeで再生可能なところが今までにないものです。
https://www.diretta.link/shop/
https://help.diretta.link/en/support/solutions/articles/73000607071-lucia-shakerato-lvds-dst-00
オリオスペックから、Diretta Target USB Bridge for USB boot が発売になりました。
これにより、お手持ちのPC(x64 AMD・Intel CPU・RaspberryPi4/3(B)/CM4)を、Diretta Target にすることができます。
https://www.oliospec.com/shopdetail/000000012930/?fbclid=IwAR2dJpOJ_2iXzZXX4qJ4Y9uus8Zba8X8Xgz6c3aEenJSqY44-WA9qeeH2oc
Allo KATANA DAC+GentooPlayer+Diretta Target App=Diretta I2S DAC
https://www.facebook.com/DirettaAudio/posts/pfbid02V5QNNRkQ5tYz4hMgrXfwYv1NCN6p5fsLg5FRPcAYB7ERo1ezi4MjexB2kpcgr1M3l
https://help.diretta.link/en/support/discussions/topics/73000779037?fbclid=IwAR1NlNUyjvqThblT8j0bktG-4S7rCDrBVaS_apMvmE4mYCmLVOPg52yJlRw
アイ・オー・データ機器の Soundgenic や Fidata で、Diretta を使用する方法についてのレポートです。
https://www.facebook.com/groups/149414109857805/posts/573702827428929