PCオーディオというのは「細部の改善」の積み重ねこそが肝要だと感じています。
もちろん、時には「MPD(Music Player Daemon)」のような(再生側とクライアント側を分離する)、また「lightmpd」のような(OSそのものをメモリ上で動作させる)画期的な提案があらわれて、音質改善が飛躍的に前進するときもありますが、そう言うことは稀です。
基本的には、システムにおける細部の見直しと改善の積み重ねこそが肝要で、そして、そう言う積み重ねがある一定のレベルをこえると誰の耳にもはっきりと分かる改善となってあらわれるものです。
「○○に変えれば」といって、そう言う細部の改善を絶対視するムキも一部には存在しますが、そう言う改善に繋がるような「○○」は、私が知る限りでは「MPD」と「lightmpd」の登場くらいです。
ですから、基本的には「lightmpd」が提案した世界の延長線上にある「Tiny Core」もRTカーネルを積み込んだ64ビット版までたどり着いたので、ここからは細部の見直しを行っていきたいと思います。
不要なネットワークデバイスを黙らせる
まずは、やったことを最初に書いておきます。
「/opt/bootlocal.sh 」に以下の内容を追記して、「eth1」と「eth2」を眠らせる。
tc@box:~$ vi /opt/bootlocal.sh
//以下を追記
pkill udhcpc
sudo ifconfig eth1 down
pkill udhcpc
sudo ifconfig eth2 down
音質改善の効果はありそうなので、基本的にはやっておくべき対策かと思われます。
少しばかり詳しく説明
「Tiny Core」を「APU」の上で動作させると、デフォルトの状態では3つあるLAN端子は全て生きています。
ですから、私が一番最初に「固定IPアドレス」でイメージファイルを配布したときも「eth1」や「eth2」が生きていてDHCPサーバーも動いていたので、そのネットワーク環境に適合しなくてもSSH接続が可能でした。
つまりは、こういう環境になっているのです。
tc@box:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:0D:B9:35:87:98
inet addr:192.168.0.25 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:46 errors:0 dropped:19 overruns:0 frame:0
TX packets:23 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3649 (3.5 KiB) TX bytes:4031 (3.9 KiB)
eth1 Link encap:Ethernet HWaddr 00:0D:B9:35:87:99
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
eth2 Link encap:Ethernet HWaddr 00:0D:B9:35:87:9A
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
PCオーディオの原則として、不要なものは動かさない、と言うものがあります。
もちろん、そのプロセスを止めることでシステム全体が不安定になるようでは本末転倒ですが、システムの安定性を損なわないのであれば、不要なプロセスやジョブ、または使用していないデバイスなどは眠らせておくべきです。
ですから、こういう感じで使ってもいないLAN端子が二つも「生きている」状態というのはどう考えても好ましくありません。
ちなみに、「lightmpd」はデフォルトで「eth0」だけが動作するようになっています。当然の判断だと思われます。
ですから、「Tiny Core」でもこの不要な二つのネットワークデバイスを眠らせたいのですが、起動時に起きてこないようにする方法が今ひとつはっきりしません。
おそらく、「/etc/init.d/dhcp.sh 」を読み込むことで起動時にネットワーク設定がされるものかと思われます。
#!/bin/sh
# The DHCP portion is now separated out, in order to not slow the boot down
# only to wait for slow network cards
. /etc/init.d/tc-functions
# This waits until all devices have registered
/sbin/udevadm settle --timeout=5
NETDEVICES="$(awk -F: '/eth.:|tr.:/{print $1}' /proc/net/dev 2>/dev/null)"
for DEVICE in $NETDEVICES; do
ifconfig $DEVICE | grep -q "inet addr"
if [ "$?" != 0 ]; then
# echo -e "\n${GREEN}Network device ${MAGENTA}$DEVICE${GREEN} detected, DHCP broadcasting for IP.$
{NORMAL}"
trap 2 3 11
/sbin/udhcpc -b -i $DEVICE -x hostname:$(/bin/hostname) -p /var/run/udhcpc.$DEVICE.pid >/dev/nul
l 2>&1 &
trap "" 2 3 11
sleep 1
fi
done
ただし、これをどう読んでいいのかが今ひとつ分かりませんし、ここに手を出す勇気はないので、いささか不細工なのですが、「/opt/bootlocal.sh」に追記をして起動してからもう一度眠ってもらうことにしました。
tc@box:~$ vi /opt/bootlocal.sh
sudo ifconfig eth1 down //追記
sudo ifconfig eth2 down //追記
「filetool.sh -b」でバックアップしてから再起動すると以下のようになって、「lightmpd」と同様に「eth0」だけが生きている状態になりました。
tc@box:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:0D:B9:35:87:98
inet addr:192.168.0.25 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:440 errors:0 dropped:341 overruns:0 frame:0
TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:27671 (27.0 KiB) TX bytes:4139 (4.0 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
しかし、「ps」コマンドでシステム全体のプロセスの状態を調べてみると、以下のように眠ったはずの「eth1」と「eth2」に対してDHCPが動いているように見ます。
・・・・・・・・
2538 root /usr/local/sbin/sshd
2544 root [irq/24-eth0]
2574 root mpd /home/tc/mpd.conf
2583 root /sbin/udhcpc -b -i eth1 -x hostname box -p /var/run/udhcpc.eth1.pid
2585 root /sbin/udhcpc -b -i eth2 -x hostname box -p /var/run/udhcpc.eth2.pid
2546 root sshd: tc [priv]
2549 tc sshd: tc@pts/0
・・・・・・・・
これもまた、何とも気分が悪いので、さらに「/opt/bootlocal.sh 」に以下の内容を追記します。
tc@box:~$ vi /opt/bootlocal.sh
pkill udhcpc //追記
sudo ifconfig eth1 down
pkill udhcpc //追記
sudo ifconfig eth2 down
これでバックアップをとってから再起動すれば以下のように綺麗になっています。
2497 root /usr/local/sbin/sshd
2503 root [irq/24-eth0]
2533 root mpd /home/tc/mpd.conf
2546 root sshd: tc [priv]
2549 tc sshd: tc@pts/0
最初に述べたように、音質改善の効果はあるようなので、対策として追記しておいて損はないと思われます。