Page 1 / 31 :  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Next › »

Current filter: »apu2« (Click tag to exclude it or click a conjunction to switch them.)

May 12, 2022

いわゆる直結を試みる

LANの直結を今まで試みていなかったのは、利便性が低下することと、色々やりかたを調べるのが面倒だったからだ、、、
しかし、やり残していることなのでやることにした。

さて、、、先立っての試験運用を何を使ってやるか。
LAN端子を2つ以上持っている機械は、うちにはapu2以外にない。メインシステムで試すしかないということだ。
トラブルがあっては面倒なので、apu2のSDカードをバックアップしておく必要があるかな、、、
普段からバックアップを取ってないのかといわれたら、どれがバックアップなのか分からなくなっているのだ。何をやってるのかまったく分からない。

そんなことを考えていたら、そういえば暫く前にBack EndのイメージをGoogleにアップしてたっけ、と思い出した。
あれを落としてきて試せばいいんじゃないの。
tc64-11-1-base1z-2020-04-05-PPAP-BE.img
https://drive.google.com/file/d/1kHhCtR4WCWs3_8i32JrVgGFin-YK9KIZ/view?usp=sharing
そういうわけで、ダウンロード。
カードに焼く。

物理的に遠くに離してあったMIddle EndをBack Endの近くに戻す。
まず状況。

   ( '>')
  /) TC (\   Core is distributed with ABSOLUTELY NO WARRANTY.
 (/-_--_-\)           www.tinycorelinux.net

tc@box:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0D:B9:47:8A:40  
          inet addr:192.168.1.33  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:42922414 errors:0 dropped:2894 overruns:0 frame:0
          TX packets:43024988 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:62288871488 (58.0 GiB)  TX bytes:62314222899 (58.0 GiB)
          Memory:fe600000-fe61ffff 

eth1      Link encap:Ethernet  HWaddr 00:0D:B9:47:8A:41  
          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)
          Memory:fe700000-fe71ffff 

eth2      Link encap:Ethernet  HWaddr 00:0D:B9:47:8A:42  
          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)
          Memory:fe800000-fe81ffff 

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:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

tc@box:~$ 

現在、IP固定の設定はしていない。DHCPサーバーからeth0にアドレスを取得している。
今回はeth1のIPを固定してみる。

ところで、どれが0でどれが2だったかいつも分からなくなるので写真を貼っておく。
シリアルケーブル端子に近い方が0である。

IP固定は昔、piCoreを使っていた頃はよく設定していた。
だけど、最近はしていないのですっかり忘れている。というか、Tiny CoreでのIP固定はしたことがない。
複数のイーサネットポートを扱うのも初めてだ。
どうなんだろ、piCoreみたく/optにeth1.shを作って置いといたらいいのかな、、、

Middle End の電源を落として、ケースの蓋を開ける。
SDカードを入れ替えて、起動する。
以下、sshでログインしてからの経過。

vi /opt/eth1.sh

#!/bin/sh
pkill udhcpc
ifconfig eth1 192.168.10.2 netmask 255.255.255.0 broadcast 192.168.10.255 up
route add default gw 192.168.10.1
# echo nameserver 192.168.10.1 > /etc/resolv.conf

chmod +x /opt/eth1.sh

sudo vi /opt/bootsync.sh

#!/bin/sh
# put other system startup commands here, the boot process will wait until they complete.
# Use bootlocal.sh for system startup commands that can run in the background
# and therefore not slow down the boot process.
/usr/bin/sethostname box
/opt/bootlocal.sh &
/opt/eth1.sh &

filetool.sh -b
sudo reboot

viでeth1の設定ファイル「eth1.sh」を作成。IPを192.168.10.2で固定する。nameserverの記述は要らないのではないかと思ったのでコメント化した。
chmodで実行権限を与える。
bootsync.shファイルに「/opt/eth1.sh &」を書き加える。
filetool.sh -bで保存し、リブート。

リブート後、sshでログイン。

tc@box:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0D:B9:47:8A:40  
          inet addr:192.168.1.33  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:562 errors:0 dropped:28 overruns:0 frame:0
          TX packets:246 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:52631 (51.3 KiB)  TX bytes:35785 (34.9 KiB)
          Memory:fe600000-fe61ffff 

eth1      Link encap:Ethernet  HWaddr 00:0D:B9:47:8A:41  
          inet addr:192.168.10.2  Bcast:192.168.10.255  Mask:255.255.255.0
          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)
          Memory:fe700000-fe71ffff 

eth2      Link encap:Ethernet  HWaddr 00:0D:B9:47:8A:42  
          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)
          Memory:fe800000-fe81ffff 

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:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

tc@box:~$ 

eth1に「192.168.10.2」が振られている。
次はこれをMiddle Endにしていく。
過去エントリーを参考。
http://blown-lei.net/endive/blosxom.cgi/audio_diary/20210824a.htm
PPAP Back-Endをタンデム化

sudo vi /opt/bootlocal.sh

/usr/local/bin/ncat -kl 4400 -e "/usr/local/bin/ncat 192.168.10.10 4400"

filetool.sh -b
sudo reboot

bootlocal.shファイルに上記のようにコマンド記載。Back EndのIPを「192.168.10.10」とする。
これで動くのかな、、、
合わせて、Back Endのほうも設定し直していくということになる。

Back Endのほうは、イメージを焼くのは飛ばしてsshにログインして設定した。
Middle Endでの試行でIP固定の設定ぐらいまでは出来そうな目星は付いたので。
(6月8日、下記の書き間違いを修正した)

vi /opt/eth1.sh

#!/bin/sh
pkill udhcpc
ifconfig eth1 192.168.10.10 netmask 255.255.255.0 broadcast 192.168.10.255 up
route add default gw 192.168.10.1
# echo nameserver 192.168.10.1 > /etc/resolv.conf

chmod +x /opt/eth1.sh

sudo vi /opt/bootsync.sh

#!/bin/sh
# put other system startup commands here, the boot process will wait until they complete.
# Use bootlocal.sh for system startup commands that can run in the background
# and therefore not slow down the boot process.
/usr/bin/sethostname box
/opt/bootlocal.sh &
/opt/eth1.sh &

filetool.sh -b
sudo reboot

Middle Endと同じ手法で、eth1の設定を行っていく。
filetool.sh -bで保存し、リブート。

リブート後、sshでログイン。

tc@box:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0D:B9:50:86:58  
          inet addr:192.168.1.89  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:44 errors:0 dropped:0 overruns:0 frame:0
          TX packets:35 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:6283 (6.1 KiB)  TX bytes:5919 (5.7 KiB)
          Memory:fe600000-fe61ffff 

eth1      Link encap:Ethernet  HWaddr 00:0D:B9:50:86:59  
          inet addr:192.168.10.10  Bcast:192.168.10.255  Mask:255.255.255.0
          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)
          Memory:fe700000-fe71ffff 

eth2      Link encap:Ethernet  HWaddr 00:0D:B9:50:86:5A  
          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)
          Memory:fe800000-fe81ffff 

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:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

tc@box:~$ 

eth1に「192.168.10.10」が振られている。

さて、直結で機能するかどうか。
Back Endのeth0からLANケーブルを抜く。
MiddleとBackのeth1端子をLANケーブルでつなぎ、Midlle EndからsshでBack Endにログインしてみる。

tc@box:~$ ssh tc@192.168.10.10
The authenticity of host '192.168.10.10 (192.168.10.10)' can't be established.
ECDSA key fingerprint is SHA256:eICMkwr/u6JIomP1WNI9YocJTnDxmI8M7ICHoj/oeEY.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.10.10' (ECDSA) to the list of known hosts.
tc@192.168.10.10's password: 
   ( '>')
  /) TC (\   Core is distributed with ABSOLUTELY NO WARRANTY.
 (/-_--_-\)           www.tinycorelinux.net

tc@box:~$ 

いけました、、、
次、ncmpcppからFrontのmpdに音楽再生の指示を出してみる、、、音は出ました!

はあ、、やってみたら簡単なものである。
もとのつなぎ方と直結、両者の違いを図にしてみた。

音質はどうか。
例えばベールが1枚はがれたようなとか、、薄皮1枚のベール?、、
前とあんまり変わらないような。
正直、違いが分からない、、、どうなんだろう。
まあ、耳が悪いということなのかもしれない、、、

まあ、でも、せっかく設定したのだし、暫くはこれで使っていこうと思う。
暫く使った後で戻したら、こんなに違うんだっけ!ということもあるかもしれないし。

早々だけど追記。
Back Endのeth0とeth2は止めた方がいいという話があって、今回は合わせて止めることにした。
参考にさせていただいたのはこちら。
不要なネットワークデバイスを黙らせる PCオーディオ実験室
http://flac.aki.gs/bony/?p=3681

/opt/bootlocal.shに下記追記した。

pkill udhcpc
sudo ifconfig eth0 down

pkill udhcpc
sudo ifconfig eth2 down

これでeth1以外は寝付く。

更に早々に追記。
音は良くなっていると思う。
簡単に切り替えて比べるということは出来ないので記憶が頼りだけど。
音色の性格が、明瞭になったというか。音場の中で重層化されている様相が見えやすくなったというか、なにしろよい方向。前には戻れないと思う。

Posted at 18:19 in audio_diary | WriteBacks (0) | Edit Tagged as: , ,

Mar 20, 2020

700kHz台でPPAP(22日、4月7日追記)

piCore7でppap (piped pcm audio play)を試みる
http://blown-lei.net/endive/blosxom.cgi/audio_diary/20180301a.htm

上記のエントリーをあげたのがほぼ2年前。
当時のハードはraspberry pi2。aplayの仕様で192kHzまでが限界だった。
その後、PPAPはやめて、384kHz、更にapu2による700kHz台でのアップサンプリング再生に移行していた。

新しいバージョンのalsaを使える環境なら700kHz台でのPPAPは可能だろうと思っていたんだけど、手頃な環境がなかなか無かったので、機が熟すのを待っていた。
最近、tiny core pure64 11.0で、aplay: version 1.2.1、nmap.tczも用意されたので、やってみた。
簡単にPPAP back-endとして機能した。
でも700kHz台になると、安定して鳴らすには設定に気を使う感じだ。

まず、普段からmpd + libsamplerateで700kHzへのアップサンプリング再生に使っていたapu2c4のtiny core pure64 7.2の設定。というか、これは以前にnmap、ncatをインストールしてそのままなんだけど、そのときは動くことを確認しただけで、その後は使っていなかった。mpdも、そのときにpipe出力を使える形でインストールしていた。
今回、いよいよ本格的に使うことになる。

mpd.confに「pipe」出力の設定を書き込み、alsaの設定はコメントアウト。
これでmpdを再起動したら、PPAP Frontとして機能する。
OSのバージョンが古くて7.2、mpdは0.19.19のままなんだけど、それでも十分使える。というか、それ以外のバージョンは新しいのも含めて試していない。

audio_output {
type "pipe"
name "ppappipe"
always_on "yes"
command "/usr/local/bin/ncat 192.168.1.89 4444"
}

# audio_output_format             "768000:32:2"
audio_output_format             "705600:32:2"

audio_buffer_size "65536"
buffer_before_play "50%"

多少試した結果、現状は上記の設定。
「command」の行には、PPAP back-endのipアドレスが書いてある。
最初は、apu1台でNASマウントアップサンプリング再生するよりもalsaが働かない分、負担が少ないのかと思った。聴きやすいスムーズな音が出てきたので、そんなふうに思ったのだ。しかし、再生時間が長くなってくると音切れ、ノイズが生じ始めた。こうなるとスムーズじゃない感じ。
結局、以前の設定、1台のapu2で音切れなく700kHz台の再生ができていたときと同じに戻して様子を見ている。これが安定しているのかなあ、、、

次に、back-end。
まず、tiny core pure64 11.0をSDカードに書き込む。
基本的に以前のエントリー(apu2で、Tiny CorePure64-10.1にmpd(0.20、0.21)をインストールする(その1:準備) http://blown-lei.net/endive/blosxom.cgi/audio_diary/20191027a.htm)に書いた通りにやればいいんだけど、CorePlus-current.isoのバージョンによっては、opensshをインストールしただけじゃsshを起動できないんだね。sshd_config.origをコピー複製してsshd_configを作る操作が必要。

SDカードにOSの書き込みができたらapuに差し込む。うちではapu2d4を使っている。
起動したらsshクライアントpcからログイン。
「tce」で、alsa-tcz、alsa-modules-5.4.3-tinycore64.tcz、nmap.tczをインストール。
usbケーブルで、テスト用に使っているSMSL m100をつなぐと、すんなり認識する。

4月7日、追記。
tiny core pure64が早々に11.1にバージョンアップされて、そのせいかどうか分からないけど、上記のalsaインストールだけでは使えなくなった。
「alsa-config.tcz」もインストールしておかないと、libpcapが何とかというエラーが出て使えない(記録し忘れた)。
インストールしていたら動くようだ。

**** List of PLAYBACK Hardware Devices ****
card 0: v10 [SMSL M100 v1.0], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
tc@box:~$ 

back-end化できるかどうかテストするために下記のコマンドを打った後、Frontのmpdで音楽を鳴らしてみる。

tc@box:~$ /usr/local/bin/ncat -kl 4444 -e "/usr/local/bin/aplay -D plughw:0,0 -M --period-size=4096 --buffer-size=32768 -t raw -f S32_LE -r768000 -c2"
Playing raw data 'stdin' : Signed 32 bit Little Endian, Rate 768000 Hz, Stereo

768kHz/32bitで再生している。
実際にはいきなり768kHzではなく、192kHzから試して、段々サンプリング周波数などを上げていった。
period-size=1024だと、聴感上ははっきりしないけど「underrun!!! (at least 895.331 ms long)」といったようなエラーが出ていた。
2048、4096との設定だと、見られなくなった、かな。

さて、sshクライアントpcを、起動しっぱなしにして放置しておくわけにもいかないだろう。
sshでログインしているターミナルのウインドウを閉じたら、PPAP再生が止まってしまう。ターミナルからコマンドを打っているので、ターミナルを閉じたらコマンドも閉じる、ということかな。
これでは不便なので、apu2の電源投入、OS起動時に自動的にコマンドを読み込むようにする。
「bootlocal.sh」に、「/usr/local/bin/ncat -kl 4444 -e (以下略)」のコマンドを追記。filetool.sh -bで設定を保存。
これでOSを再起動したら、back-endとして機能する。

sudo vi /opt/bootlocal.sh

/usr/local/bin/ncat -kl 4444 -e "/usr/local/bin/aplay -D plughw:0,0 -M --period-size=2048 --buffer-size=32768 -t raw -f S32_LE -r705600 -c2"

filetool.sh -b
sudo reboot

あれこれ試して、今はこんな感じの設定。
どうも768kHzだと音切れがある。apu2を1台で鳴らしていた時よりも音切れしやすい?
はっきりしないけど、ハード的なボトルネックがあるような気がするんだけど、気がするだけで特定できていない。

8月16日、追記。
PPAP back-Endの設定を考え直す(hwとplughw)
http://blown-lei.net/endive/blosxom.cgi/audio_diary/20200815a.htm

昨日のエントリーで、上記のコマンドの記述「-D plughw:0,0」が、フォーマットを正確に記載してあれば「-D hw:0,0」でも問題なく動くという事について書いている。音質やデータ伝送上の問題はなかったのではないかと思うのだけど、plughwとhwの差異というのはエラーの有無とかの問題を生じる可能性があると思うので、追記しておく。

22日、追記。ハードを変えたらどうなのかやってみた。

HP ProBook 650 G1を、PPAP Frontに使ってみる。
メモリは8GB DDR3L-1600。apu2c4よりも速く容量は2倍だ。
いつまでも日常使用のメインPCがcompaq 6730bなのはどうなのよと思って中古で買ったまま塩漬けになっていた機械なんだけど、こういう顛末で役に立つことに。

tiny core 64 10.1を焼いたSDカードをusbカードリーダーに刺してusbポートに繋ぐと起動できる。本当はbiosをいじれば直接SDカードからの起動も出来そうなんだけど、素人には手を出しにくい。
mpd 0.20.20をインストールした。
実はmpd 0.21も試したけど「broken pipe」とエラー表示されて使えなかった。というか、mesonでpipeを使えるようにインストールってどうやるのかね?

FrontがProBook 650 G1だと、768kHzでも難無く鳴らせる感じ。
やはり相応のメモリのスペックが必要ということだろう。
しかも、apu2c4より音色に余裕がある気がする。

こうなってくると、PCトランスポートシステムをどう組むかを考えないといけない。

音質は、、、まだ微妙。
まだ、安定した再生ができているか十分に確認できているわけでもない。
しかし、そこを差し引いても音色の色彩、表情は以前より向上している。実在感、安定感も増している。

96kHzや192kHzで聴いていた頃は、PPAP方式で大きな音質向上があった。そのときと比べたら大きな向上とは言えない。明らかに激変する!という感じじゃないのだ。
しかし、なんというか、戻れないのではないかという感触はある。
微細な表情はPPAPのほうが確かに上で、慣れてしまったら、意外に大きな差異に感じるのではないかと思える。

しかし、音質の向上というのは、どこまで行くのだろうか。限界はないのだろうか。
つい先日アップしたばかりだけど、現状のシステム構成図をアップしておく

システム構成図
Posted at 20:25 in audio_diary | WriteBacks (0) | Edit Tagged as: , ,

Oct 10, 2019

apu2d4でTiny CorePure64 10.1を動かす

今回はオーディオの話は出てこない。
何でオーディオのカテゴリにアップするのかといえば、オーディオに使うハードの話だから。
ここらはちょっと迷うとこだ。

うちではTiny Core Linux 7.2(x86-64)でapu2c4を動かし、音楽サーバーとして運用しているんだけど、なぜか上位バージョンのTiny Coreは使えずに来ていた。なんとか使えるようにしたんだけど、その辺りの顛末について備忘録として書いておく。
ちなみに一連の試行錯誤はサブ機として入手したapu2d4で行った。

使えない、とはどういうことかというと、Compaq 6730bを使って、SDカードに「TinyCorePure64-10.1」をインストールして(手法は過去のエントリー「apu2c4で768kHzへのアップサンプリングに取り組む」のとおり)、それをapu2に刺し起動させてsshでログインして操作したいのに、ipアドレスが割り振られないので、できない、という意味だ。
v7.2は問題なく使える。
それ以上のバージョンでは使えない。x86、x86-64両方とものようだ。
Compaq 6730b、Dell Inspiron11で動かす分には問題ないSDカードであるにも関わらず、apu2に刺して起動したときにはipアドレスが振られない。ということはsshでログインできないしpingすら打ちようがなく、どういう状態なのかも全く分からない。
LEDが光っているので、通電はしているようだけど。

では、問題がなく動いているv7.2の「vmlinuz」と「core.gz」を、v10.1のものに置き換えてみるのはどうか。簡単なバージョンアップの手法としてTiny Core Linuxのサイトにも挙げられている手法だ。
Compaq 6730b、Dell Inspiron11は、これで動く。
しかしapu2で起動したら、やはりipアドレスが振られない。

あれこれ試して、もう仕方がないので、シリアル接続を試みることにした。
シリアル接続って何?という感じなんですが。
シリアルケーブルというものを使ってapu2を他のコンピューターに直接継いで操作する、ということだ。
使うケーブルはこんな感じ(これはamazonの写真)。

https://www.amazon.co.jp/gp/product/B01N0F91GH/

シリアルケーブル

片方はusb端子。もう片方はRS-232Cという規格の端子。
usbの方を、操作に使うマシンに刺す。
RS-232Cの方をapu2に接続する。
シリアル通信ソフトを起動したら、データやコマンドの送受信が可能になる。
おおざっぱに言うと、こんな感じ。

参考にしたサイトは下記。他にもあちこち見たけど忘れた。
http://flac.aki.gs/bony/?p=3155
https://netwiz.jp/linux-usb-serial/
http://enotyama.hatenablog.com/entry/2014/03/03/232305
https://qiita.com/miyabisun/items/73bb2e0b75c30fba9f3c

まず、ケーブルの入手。USBシリアルケーブルでネットショップ上を検索して入手。USB-RS232C変換ケーブルというらしい。「RS232」と「RS232C」があって何が違うのか迷ったりしたが、どうやら基本的に同じと思っていいらしい。クロスケーブルかどうかの表記かと思ったら、そうではない、らしい。
apu2に使えるのはクロスケーブルで「null-modem cable」と言われる物。なかなか分かりにくいんだけど。

https://pcengines.ch/howto.htm#serialconsole

The most common mistake people make is not using a null-modem cable: If you have a multimeter, check that the pins 2 and 3 are crossed. Do NOT use gender changers!
The default baud rate for alix boards is 38400,8n1 and for apu boards 115200,8n1.

なんか、シリアルケーブルの規格は複数あって、実際のところ、継いでみて使えるかどうかはやってみないと分からないことがあるらしい。詳しくはwikipediaあたりを読んで欲しい。読んで僕はちょっと驚いた。

SDカードにインストールしたTiny Core10.1に設定変更書き込み。

sudo vi /etc/securetty

# For people with serial port consoles
ttyS0
sudo vi /sbin/autologin

exec /sbin/getty 115200 ttyS0
#exec /sbin/getty 38400 tty1
sudo vi /etc/inittab

ttyS0::respawn:/sbin/getty -nl /sbin/autologin 115200 ttyS0
#tty1::respawn:/sbin/getty -nl /sbin/autologin 38400 tty1
sudo vi /opt/bootsync.sh

echo “booting” > /etc/sysconfig/noautologin

これでヘッドレス化。シリアル通信できるはず。

操作に使うPCを準備する。うちでは6730bノートPC、OSはFedora。
シリアル通信に使うソフトは、とりあえず参考にしたサイトに倣い「cu」にした。
最初からは入ってないので「dnf」でインストール。
シリアルケーブルのusb端子を刺す。
ここで「dmesg」コマンドを打つと、仕組みはよく分からないけど、シリアルケーブルがFedoraに認識されていると表示されるので確認。かなり大量の行数が表示されて、下の方にちょこっと表示されるので分かりにくいが。

[1864782.993734] usb 6-1: pl2303 converter now attached to ttyUSB0

こんな感じ。スタンバイできてるということかな。

RS-232Cの方をapu2に接続し、apu2の電源を入れる。
「cu -s 115200 -l /dev/ttyUSB0」とコマンドを打つが「cu: ttyUSB0: Line in use」というエラー表示で繋がらない。
誰が使ってるんだ?

これは最初は良く分からなかったんだけど、結局、表示されてないけど「Permission denied」で蹴られているということらしい。
「sudo chmod 666 /dev/ttyUSB0」と打ってパーミッションを変更。
改めて「cu -s 115200 -l /dev/ttyUSB0」。
これで接続成功した。

なんだか大雑把な流れの記述なんだけど、シリアルケーブルというのはapu2が起動していようがいまいが関係なく何時に刺してもよくて、刺して「cu」コマンドを打った時点でやり取りされているデータを字面に表示するようだ。
ある意味、緊急時には融通が利いてありがたい通信手段なのだろう。

v10.1でapu2を起動し、シリアル接続したら下記のような字面が表示された。

[ab@fedora2 ~]$ cu -s 115200 -l /dev/ttyUSB0
Connected.

「Connected.」が表示されて止まるので、enterキーを叩く。
すると「box login:」が表示される。
「tc」でログイン。

Core Linux
box login: tc
Password: 
   ( '>')
  /) TC (\   Core is distributed with ABSOLUTELY NO WARRANTY.
 (/-_--_-\)           www.tinycorelinux.net

tc@box:~$ 

ちゃんとTiny Core 10.1は起動していることがわかった。
「ifconfig」と打つと下記の表示。

tc@box:~$ ifconfig
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:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

「eth0」がない、、、
apu2にはイーサネットポートが3つあるので、eth0、eth1、eth2が表示されるはず。それらが表示されない。つまり有線LANが機能しない状態で起動している。「ping 127.0.0.1」と打つと応答が帰ってくる。ということは、TCP/IP自体は機能している。
なるほどだ、、、

ハードは認識できてるのか?
lspciを使えば分かるみたいだがインストールされていない。
「pciutils」というパッケージをインストールしたら使えるらしい。
6730bにSDカードを刺し替えて、家庭内LANからネットに継がる環境でインストールする。
インストールできたら、apu2に刺し直して起動して、シリアル接続から「lspci」と打ち込む。

tc@box:~$ lspci
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1566
00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 156b
( 略 )
01:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
02:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
03:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)

「Ethernet controller: Intel Corporation I210 Gigabit Network Connection」と表示。
これは問題なく動いているTiny CorePure64-7.2と同じ結果だ。
つまり、イーサネットのデバイスは10.1でも認識されている。

ドライバはどうなっているのかな、、、

tc@box:~$ ls /lib/modules/4.2.9-tinycore64/kernel/drivers/net/ethernet
3com/          cadence/       fealnx.ko.gz   natsemi/       sis/
8390/          cavium/        fujitsu/       neterion/      smsc/
adaptec/       chelsio/       hp/            nvidia/        stmicro/
agere/         cisco/         icplus/        packetengines/ sun/
alteon/        dec/           intel/         qlogic/        tehuti/
altera/        dlink/         jme.ko.gz      rdc/           ti/
amd/           dnet.ko.gz     marvell/       realtek/       via/
atheros/       ec_bhf.ko.gz   mellanox/      samsung/       wiznet/
broadcom/      emulex/        micrel/        sfc/           xircom/
brocade/       ethoc.ko.gz    myricom/       silan/
tc@box:~$
tc@box:/$ ls /lib/modules/4.19.10-tinycore64/kernel/drivers/net/ethernet
3com/          broadcom/      fealnx.ko.gz   netronome/     stmicro/
8390/          brocade/       fujitsu/       nvidia/        sun/
adaptec/       cadence/       hp/            packetengines/ synopsys/
agere/         cavium/        huawei/        qlogic/        tehuti/
alacritech/    chelsio/       intel/         qualcomm/      ti/
alteon/        cisco/         jme.ko.gz      rdc/           via/
altera/        dec/           marvell/       realtek/       wiznet/
amazon/        dlink/         mellanox/      samsung/       xircom/
amd/           dnet.ko.gz     micrel/        sfc/
aquantia/      ec_bhf.ko.gz   myricom/       silan/
atheros/       emulex/        natsemi/       sis/
aurora/        ethoc.ko.gz    neterion/      smsc/
tc@box:/$

7.2と10.1、「intel」は両方に入っている。

もう少し奥に。

tc@box:~$ ls /lib/modules/4.2.9-tinycore64/kernel/drivers/net/ethernet/intel
e100.ko.gz  e1000e/     i40e/       igb/        ixgb/       ixgbevf/
e1000/      fm10k/      i40evf/     igbvf/      ixgbe/
tc@box:~$
tc@box:/$ ls /lib/modules/4.19.10-tinycore64/kernel/drivers/net/ethernet/intel
e100.ko.gz  e1000e/     i40e/       ice/        igbvf/      ixgbe/
e1000/      fm10k/      i40evf/     igb/        ixgb/       ixgbevf/
tc@box:/$

もう少し調べて、、、

tc@box:~$ lspci -vvv
( 略 )
01:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
	Subsystem: Intel Corporation Device 0000
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- 
	Kernel driver in use: igb
( 略 )
tc@box:~$ lspci -vvv
( 略 )
01:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
	Subsystem: Intel Corporation Device 0000
	Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- 
( 略 )

7.2では「Kernel driver in use: igb」と表示される。
10.1では表示されない。「Control: BusMaster-」とはどういうことか?
ともあれ、igbが機能してないらしいのは分かった。

tc@box:~$ modinfo igb
( 略 )
depends:        ptp,i2c-algo-bit
vermagic:       4.2.9-tinycore64 SMP mod_unload 
tc@box:/$ modinfo igb
( 略 )
depends:        i2c-algo-bit
intree:         Y
vermagic:       4.19.10-tinycore64 SMP mod_unload 

10.1はmodinfo igbの「depends」に「ptp」が表示されない。どうなんかね、これは。
vermagicには、カーネルバージョンと主要なConfigオプションが記載されるという。
SMP mod_unloadってどういうことかな、、、

「igb」でtiny coreのフォーラムを検索してみる。

Topic: modprobe: can't load module igb (kernel/drivers/net/ethernet/intel/igb/igb.ko.gz
http://forum.tinycorelinux.net/index.php/topic,22744.msg142319.html

Is the i2c-KERNEL extension loaded?

$ tce-load -i i2c-KERNEL

Topic: Network Ports are not detected - IntelR I210IT GbE LAN
http://forum.tinycorelinux.net/index.php/topic,18469.0.html

I took a shot in the dark and appended the file name to the URL like this: http://tinycorelinux.net/6.x/x86/tcz/i2c-3.16.6-tinycore.tcz and pasted it into my browser; it worked!
I put the file in /mnt/sda1/tce/optional.
I edited onboot.lst and put i2c-3.16.6-tinycore.tcz right after glib2.tcz (about 1/3 of the way down the file).
Now it works!

なんかいきなり参考になりそうな事が書いてあるじゃないの。

6730bにSDカードを刺し替えて起動、「tce」でi2cを検索。
「i2c-4.19.10-tinycore64.tcz」があるので、これをインストール。
SDカードをapu2に戻して起動。
「ifconfig」を打つ。

tc@box:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0D:B9:50:86:58  
          inet addr:192.168.1.89  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:88 errors:0 dropped:4 overruns:0 frame:0
          TX packets:43 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:35816 (34.9 KiB)  TX bytes:3813 (3.7 KiB)
          Memory:fe600000-fe61ffff 

eth1      Link encap:Ethernet  HWaddr 00:0D:B9:50:86:59  
          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)
          Memory:fe700000-fe71ffff 

eth2      Link encap:Ethernet  HWaddr 00:0D:B9:50:86:5A  
          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)
          Memory:fe800000-fe81ffff 

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:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:140 (140.0 B)  TX bytes:140 (140.0 B)

tc@box:~$ 

行けました! ipアドレスが振られている!
いやー、長かったなあ、、、sshで接続して操作するのも可能です。
これで多分、将来的なalsaやmpdのバージョンアップにも対応できます。

このエントリー書き上げてから気付く。 「serial experiments Lain」のserialって、これのことだったのね、多分。

シリアル接続からのログアウトの方法を書き忘れていた。

tc@box:~$ exit

Core Linux
box login: ~[fedora2].
Disconnected.
[ab@fedora2 ~]$ 

tcでログインしている状態から「exit」。
「box login:」が表示された状態になるので「~」、[fedora2]が表示されるので「.」を打つ。これで、Disconnected.

下記は、シリアル接続しているpcにsshで他からログインして操作している場合(ややこしい)。

tc@box:~$ exit

Core Linux
box login: Connection to 192.168.1.64 closed.
[ab@fedora1 ~]$ 

tcでログインしている状態から「exit」。
「box login:」が表示された状態になるので、「~」続いて「.」と打つ。
これで、Connection to 192.168.1.64 closed.
つまり、ssh接続もログアウトする。

ここらは環境によって表示が違うかも。

Posted at 17:27 in audio_diary | WriteBacks (0) | Edit Tagged as: , , ,

Dec 08, 2018

apu2c4で768kHzへのアップサンプリングに取り組む

Raspberry Pi2をPCトラポとして運用しているんだけど、やってみての感触から受ける印象だけなんだけど、384kHz以上へのアップサンプリングはRas Pi2初期型ではハードウェア的にいっぱいかな、という気がしている。
つまり384kHzが限界なのだ。
768kHzへのアップサンプリングは頑張っても出力できないだろうと思う。
DACを新しくしたのは700kHzの音がどうなのか確認する意味もあったので、ちょっと残念な状況。
そこでどうしたらいいか、ということを考えてみた。

まず、ハードの限界と考えるのでハードを変える。
選択枝として、まず「Raspberry Pi 3b+」が考えられる。
CPUのスペックが900MHzから1.4GHzに5割増し。うちのPi2は初期型なので、ARMv7からARMv8(64bit)にもアップすることになる。つまり64bit化が可能になる。メモリは1GBで変わらない。

課題がいくつか。
900MHzから1.4GHzへのアップで、どの程度の改善が見込めるのかという点がまず1つ。
64bit OSで使えたら処理能力アップが見込めるけど、使えるのかという点が2つめだ。

どんなOSが使えるのか。
今使っているpiCoreは、3b+への対応待ちで使えない。そして64bitへの対応はいつになるかも分からない。
raspbianは3b+で使えるけど64bitには対応していない。32bitだ。
この際なので64bitで使いたい。
ということだと、実はUbuntu、Fedora、Arch Linux、openSUSE、、と、いろいろ3b+に対応したOSがあったりする。どれか選んで、mpdをインストールして使うということになる。

ハードの選択枝はRas pi 3b+だけではない。
実は以前に、PCEngines社の「apu2c4」を入手していた。4GBのメモリを積んでるのでRAMメモリ再生機として使うつもりで入手したんだけど、結局、Ras Pi2で運用継続してしまったので、しまい込んだままになっていたのだ。
CPUはAMD 1GHzクアッドコアでほぼRas Pi2と同等だが、OSにRas Pi2で使い慣れたpiCoreの同系「Tiny Core Linux」のCore Pure 64か、dCore x86_64が使えるのではないかと思う。Tiny CoreはRAM上で動くというのも優位性と考えられる。
問題は、このハードは触らないまま今まで来てるということ。
つまり勝手が分からないのだ。
しかし勝手が分からないのは3b+でFedoraとかでも同じだ。

そんなわけで、まずapu2c4をTiny Core 64bit OSで動かしてみることにした。
参考にさせていただいたのは下記のサイト。

Tiny Core 6.1 64bit版のインストールと、dockerを動かそうとしたメモ
https://qiita.com/tukiyo3/items/d61b2054560451c47fdc

メモリ再生(8)~64bit版 Tiny Coreを使ってみる。~その1(イメージファイル配布)
http://flac.aki.gs/bony/?p=3535

インストールしたのは、CorePure64-7.2.iso。
CorePure64-9.0.isoは、SDカードへのインストールまでは出来たけどapu2c4で動かそうとしたら上手くいかなかった。
CorePure64-8.2.1.isoは試していない。

難儀したのは、なにしろ取り掛かって実際に触ってみないと、何をしたらいいのかよく分らなかったこと。何回か繰り返すうちに、だいぶ慣れた。
あと、OSインストールのベース機に使った64bitノートパソコンは日本語キーボードだったので、sshd_config.origのコピーに際して"_"の入力方法が分からなかったこと。Tiny Core OSには日本語キーボードのキー配列設定が入ってないのだ。
ネットで英語キーボードの配列を調べてなんとかした。「shiftキー」+「-キー」で"_"が打てた。
sshで接続したら、あとは概ね大丈夫だった。

tc@box:~$ uname -a
Linux box 4.2.9-tinycore64 #1999 SMP Mon Jan 18 19:59:34 UTC 2016 x86_64 GNU/Linux

tc@box:~$ cat /proc/asound/card*/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 768000 (768000/1)
period_size: 32768
buffer_size: 131072

これで、768kHz/32bitへのアップサンプリングを問題なく再生できるようになったかな、、、
今のところ、1時間以上連続再生してもノイズはない。
Tiny Coreの32bit OSだったらどうなのかは試していない。 音質評価はまだしていない。
でもとりあえず、シンディローパーのタイムアフタータイムが素晴らしく生々しい感じ。

以下、インストールのコマンドや記載内容など流れを羅列。
実際に触ったことがない人が見ても良く分からないと思うけど、自分用の備忘録だ。

備忘録だけなのも味気ないなと思ったので、分かりやすくなるように追記してみる。 まず準備するものを列記。

1)CorePlus-current.iso: Tiny Core Linuxのサイト(http://tinycorelinux.net/downloads.html)からダウンロードしたインストーラーOSのイメージファイル。「CorePlus」から落す。 うちではCD-ROMに焼いたけど、条件が合うならusbメモリに書き込んで使ってもいい。

2)64bit PC: インストールの母艦。 CorePlus-currentからの起動、SDカードへのOS書き込みと、SDカードにインストールしたTiny Coreからの起動を行う。 だから、まず必要な機能はCorePlus-current.isoを書き込んだメディアからの起動と、SDカードからの起動ができること、だ。内蔵DVDドライブとかusb接続のカードリーダー、何でもいいから、使うことになるメディアから起動できる機械を用意する。 且つ、CorePlus-currentから起動し、そこからSDカードに書き込みを行うので、2つのメディアを同時に使えるほうがいい(Tiny Coreはメモリ上で動くので、実はCorePlus-currentを起動した後はメディアは外せるんじゃないかと思うんだけど、試していない)。 64bit OSを動かすから、当然64bit PCである必要がある。 あと、sshで遠隔操作するのと、インストールするOSをダウンロードするので、ネットにつながる家庭内有線LANが使えること。 うちではhp compaq 6730b、サブマシンのノートを使った。内蔵DVDドライブとusb端子4つとSDカード端子が付いていてSDカードからの起動もできて扱いやすい。usbカードリーダーからの起動も使おうと思えば使える。

3)sshクライアントPC: ssh経由でOS、mpdのインストール操作からmpd起動までのほとんどを行うことになる。 sshが使えたら普段使いのPCで構わないと思う。

4)apu2c4: これを忘れてはいけなかった。現在は販売は終了しapu2d4が売られている。

準備ができたら、64bit PCを、CorePlus-current.isoを書き込んだメディアで起動する。 起動画面が表示されるので、下の方、「No X/GUI」と書いてあるのを選択し起動する。 CUI画面で起動するので、以下、流れを羅列。



##################    (boot 64bit PC CorePlus-current.iso CD-ROM No X/GUI : install openssh)
sudo passwd tc
tce
s
ssh
7 : 7. openssh.tcz
q
i
q
sudo /usr/local/etc/init.d/openssh start

CorePlus-currentが起動。ユーザーは「tc」になっている。 sshでログインできるように、passwdコマンドで「tc」のパスワードを設定。

tceコマンドで、opensshをインストールする。 「s」を打って「enter」、検索語入力になるので「ssh」、1からずらっと来て、7. openssh.tcz、と表示されるので「7」と打ち込むとopen.sshの説明が表示されるので「q」で閉じて、「i」でインストール。関連したものも含めてスイスイとインストールされる。「q」でtceを閉じる。

「sudo /usr/local/etc/init.d/openssh start」と打ち込むと、sshサーバーとして起動する。 これで、他のパソコンからsshでログイン、コントロールできる。



##################    (change machine : ssh login 64bit PC : install tiny core OS to SD card)
ssh tc@192.168.1.64

tce-load -wi tc-install.tcz
wget http://tinycorelinux.net/7.x/x86_64/release/CorePure64-7.2.iso

cp `which tc-install.sh` .
sed -e 's/vmlinuz/vmlinuz64/g' -e 's/core/corepure64/g' tc-install.sh > tc-install64.sh

おもむろに腰を上げて、sshクライアントとして使うPCに向かう。うちでは普段使いのノートPCを使った。 sshでCorePlus-currentが動いているインストール母艦にログイン。 ユーザー「tc」、パスは先刻設定したはず。ipアドレスは環境によって変わるので各個で確認のこと。

インストーラである「tc-install.tcz」をダウンロード、インストール。CorePlus-currentはインストールに使うOSなんだけど、なぜかインストーラをここでインストールしないといけないみたい。 続いて、インストールするOSのイメージファイル「CorePure64-7.2.iso」をホームディレクトリに落とす。 インストールスクリプト「tc-install.sh」をホームディレクトリにコピー。 そのスクリプトの書き換え。これをしないと、インストールできないということらしい。



### (insert SD card) ###
fdisk -l
sudo sh ./tc-install64.sh

i :iso-file
/home/tc/CorePure64-7.2.iso
f :frugal
2 :partition
4 : 4. sdb1
y : Would you like to install a bootloader?
Press Enter key : (Install Extensions from this TCE/CDE Directory)
4 : 4. ext4
y : Mark sdb1 active bootable? y/n
vga=normal syslog showapps waitusb=5 : Enter space separated boot options
y : Last chance to exit before destroying all data on sdb1

Installation has completed
Press Enter key to continue.

sudo poweroff

一旦、インストール母艦の64bit PCのところに戻って、SDカードを刺して、sshクライアントPCに戻る。 「fdisk -l」と打つと、64bit PC上のメディアの状況が一覧表示される。その中からSDカードのデバイス名を確認(うちではsdb1だった)。この確認を間違えると、母艦のOSが上書きされたりする大事故につながるので要注意だ。

「sudo sh ./tc-install64.sh」で、インストールスクリプトを走らせる。 「i」で、isoファイルからのインストールを選択。 次にファイルのアドレスを打ち込む。 「f」はfrugal。zipの「z」でもいいみたいだけど、今回は「f」を選んだ。画面には説明が英文表示されている。 パーティションにインストールするかどうか訊いてくる。パーティションでいいので「2」と応答。 インストールするパーティションを選択。今回は表示された中からsdb1を探して「4」。この数字はどこにインストールするかによって変わる。 ブートローダーをインストールするかどうか訊いてくる。「enter」で先に進む。 ファイル形式を訊かれるので「4」でext4を選択。 インストールするデバイスで起動可能にするかどうか訊いてくる。起動しないと困るので「y(yes)」。 オプションを訊かれるので、提示された例をコピペ。 「Last chance to exit before destroying all data on sdb1」と訊かれる。OSインストールするのでsdb1のデータが消えるのは仕方ないので「y」。

10秒ぐらいでインストール終了。 これでSDカードに「CorePure64-7.2」が書き込まれた。 「sudo poweroff」でインストール母艦をシャットダウンする。



##################    (change machine : boot 64bit PC SD card : install openssh, nfs)
uname -a
sudo passwd tc
tce
s
ssh
6 : 6. openssh.tcz
q
i

s
nfs
3 : 3. nfs-utils.tcz
q
i
q

cd /usr/local/etc/ssh
ls
sudo cp sshd_config.orig sshd_config
sudo /usr/local/etc/init.d/openssh start

インストール母艦の64bit PCのもとに移動。SDカードのCorePure64-7.2から起動する(必要ならBIOSで起動ディスクの優先順位を調整する)。 これからSDカードに書き込まれたCorePure64-7.2を使えるように設定していく。

「uname -a」でSDカードにインストールされたOSを確認できる。 Linux box 4.2.9-tinycore64 #1999 SMP Mon Jan 18 19:59:34 UTC 2016 x86_64 GNU/Linux、うちではこんな感じ。 sshでログインできるように、passwdコマンドで「tc」のパスワードを設定。

tceコマンドで、opensshをインストールする。 「s」を打って「enter」、検索語入力になるので「ssh」、1からずらっと来て、6. openssh.tcz、と表示されるので「6」と打ち込むとopen.sshの説明が表示されるので「q」で閉じて、「i」でインストール。関連したものも含めてスイスイとインストールされる。 続いて、うちではNASをマウントして使うつもりなのでnfsもインストールしておく。 最後は「q」でtceを閉じる。

sshサーバーとして動かすために、/usr/local/etc/sshディレクトリに移動。 sshd_config.origをコピーしてsshd_configを作る。ここで問題になるのは「_」の入力が日本語キーボードの表示のままに出来ないこと。CorePure64-7.2は英語キーボード配列しか認識していないからだ。日本語キーボードからだと「shiftキー」+「-キー」で「_」を入力できる。キーボードが英語キーボードだったら、こんな面倒はないかもしれない。 コピーができたら、opensshを起動。



##################    (change machine : ssh login 64bit PC : basic setting SD card)
vi .ssh/k*
ssh tc@192.168.1.64

vi /opt/bootlocal.sh

/usr/local/etc/init.d/openssh start
/usr/local/etc/init.d/nfs-client start
mkdir /mnt/music
mkdir /mnt/music/ariel
mkdir /mnt/music/titan
chmod -R 777 /mnt/music

vi /opt/.filetool.lst

etc/shadow
etc/passwd
usr/local/etc/ssh/sshd_config
usr/local/etc/
etc/fstab
etc/securetty
etc/inittab
sbin/autologin
/opt/bootlocal.sh

vi .ashrc

alias titan="sudo mount -t nfs 192.168.1.80:/titan /mnt/music/titan"
alias ariel="sudo mount -t nfs 192.168.1.120:/ariel /mnt/music/ariel"

filetool.sh -b
sudo poweroff


##################    (change machine : boot apu2c4 SD card)

おもむろに腰を上げて、sshクライアントPCに向かう。 sshでCorePure64-7.2が動いているインストール母艦にログインするんだけど、アクセスする前に「vi .ssh/k*」で.ssh/known_hostsファイルを編集する必要がある。母艦にはdhcpサーバーからipアドレスを割り振られているんだけど、CorePlus-currentとCorePure64-7.2に同じアドレスが割り振られた場合(そうなる場合が多いと思うけど)、CorePlus-currentからもらった鍵はCorePure64-7.2には合わないのでログインを蹴られるのだ。 予めknown_hostsファイルに保存されているインストール母艦のアドレスの行を削除し、その上で母艦にアクセスする。 ユーザーは「tc」。パスは先刻設定した奴。

ログインしたら「/opt/bootlocal.sh」の編集。 この項は、うちに固有の設定をメモ書きしていて、他の人の参考にならない部分が多い。 しかし「openssh start」の設定は必須。これを設定しておかないと、起動したあとでログインできないSDカードが出来てしまう。 「nfs-client start」は、nfsなんて使わないという人には要らない。 mkdir云々は、うちの固有設定だ。起動時にmpdのmusic_directoryとNASのマウントポイントを作るようにしている。

次に「/opt/.filetool.lst」の編集。 参考にさせていただいたサイトからコピーしたままで、うちの環境では本当は何が必要かどうかは全く検討していない。

「.ashrc」の編集、これはうちに固有の設定。 うちではNASのマウントやmpdの起動はsshから行うのがデフォルト。コントロールは端末ソフトからncmpcppで行うので、そうした操作は苦にならないのだ。

「filetool.sh -b」でSDカードに設定を保存、poweroff。 これでインストール母艦の役割は終了。SDカードを母艦から抜き、apu2c4に刺して起動する。



##################    (change machine : ssh login apu2c4 : mpd install, setting)
ssh tc@192.168.1.90

tce-load -wi \
ncurses-dev.tcz ncurses.tcz make.tcz gcc.tcz compiletc.tcz squashfs-tools.tcz \
perl5.tcz bash.tcz automake.tcz bc.tcz glib2-dev.tcz boost-dev.tcz icu-dev.tcz \
pkg-config.tcz glib2-python.tcz dbus.tcz dbus-dev.tcz flex-dev.tcz gdbm-dev.tcz \
bison.tcz binutils.tcz autoconf.tcz libtool-dev.tcz bc.tcz cmake.tcz

tce-load -wi \
libsamplerate.tcz libsamplerate-dev.tcz \
alsa-config.tcz alsa-plugins.tcz alsa-modules-4.2.9-tinycore64.tcz alsa-dev.tcz alsa.tcz \
lame.tcz lame-dev.tcz libmad.tcz libmad-dev.tcz flac.tcz flac-dev.tcz curl.tcz

wget https://www.musicpd.org/download/mpd/0.19/mpd-0.19.19.tar.xz
xz -dv mpd-0.19*
tar -xf mpd-0.19*
cd mpd-0.19*
./configure
make
mkdir ../mpd
sudo make DESTDIR=../mpd install
cd
mksquashfs mpd mpd-0.19.19.tcz
md5sum mpd-0.19.19.tcz > mpd-0.19.19.tcz.md5.txt

ls /mnt
ls /mnt/*1
ls /mnt/*1/tce

sudo mv *tcz* /mnt/*1/tce/optional
sudo vi /mnt/*1/tce/onboot.lst

vi .mpdconf

sudo rm -rf mpd*
cp /mnt/*1/tce/onboot.lst onbootlst.txt
sudo vi /mnt/*1/tce/onboot.lst
filetool.sh -b

SDカードをapu2c4に刺して起動、apuのipアドレスを確認、sshクライアントPCからユーザー「tc」でログイン。 あとは音楽再生環境を構築していく。

mpdインストールに必要な環境や、libsamplerateやalsaなど必要なライブラリをインストール。 今回はmpd-0.19.19をインストール。 ここらの流れは、詳細が必要なら他のエントリーを参照のこと。

http://blown-lei.net/endive/blosxom.cgi/audio_diary/20180103a.html
http://blown-lei.net/endive/blosxom.cgi/audio_diary/20180529a.html

このあたりにmpdのインストールについて書いている。piCore用のエントリーだけど、似たようなものだ。 注意点は「mpd-0.xx.xx.tcz」と「mpd-0.xx.xx.tcz.md5.txt」を保管するディレクトリがpiCoreとは違うこと。うちでは今回は「/mnt/mmcblk0p1/tce/optional」だった。環境によってどう違ってくるか分からないので、確認した方がいいかな。

.mpdconfは、各個の環境に合わせて設定。 不要になったファイルをrm -rfで消去。 最後に「onboot.lst」を整理して、filetool.sh -b、で保存。

ほとんど.ash_historyファイルとかからのコピーとか。
ipアドレスとかパーティションやディレクトリのNo.とか、環境が違ったら他の数値になったりすることがあると思う。

Posted at 00:30 in audio_diary | WriteBacks (0) | Edit Tagged as: , ,
Page 1 / 31 :  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Next › »