趣味のプログラム工房

Linux

Raspberry Pi3 + PIFI Digi(HifiBerry互換?)



Raspberry Pi3用の拡張ボードのPIFI Digi+とういう製品を約2000円ほどで購入(Aliexpress)
早速、家のDAC(DAC-X6J)に同軸デジタル(コアキシャル)で接続し、Volumioから鳴らしてみました。
I2SのドライバはHiFiberry Digiでok

うん。
普通に綺麗になりますが、USB経由でDAC鳴らしたとの違いはさっぱりわからない。
ハイレゾ音源なら違いが出るかと思い、通常の音源とハイレゾ音源の比較ができるサイトから両方の音源をダウンロードして聞き比べてみましたが、、、そもそもハイレゾと、普通の音源の違いがわからない。。。

というわけで、今の段階の私のスペックであれば、普通にUSBでDACにつなぐだけで十分でしたね。

ハードのスペック的には
DACがUSB接続では最大24bit 96KHzに対し、同軸デジタルでは最大24bit 192KHzなのでメリットはあるはずなのですが、、、

でもまあ、もうちょっと使ってみないとわかんないかな。
DACの時もしばらく使ってるうちに、ノイズが減って音も変わってきたし(良い方向へ)。



2016年07月10日


オーディオシステム完成(一応)

Raspberry pi 3が届いたのでようやくシステム一式がそろいました。

プレーヤー:Raspberry pi 3(ubuntu mate)
DAC:FX-AUDIO- DAC-X6J
アンプ:TPA3116D2の中華
という構成です。

Raspberry piとDACはUSB接続にしています。

以前、TPA3116D2のアップがイマイチと書いていましたが、
不思議と使っていくうちに質が上がってきている気がします。
ノイズも気にならなくなったし。

あと、アンプのマスターボリュームはある程度まで上げないと、
左右スピーカーのバランスが悪いですね。

そこまで聞き比べているわけではないので、完全な感覚ですが、
何となくちょっと音は固い感じがします。
シャープな音とでもいえばいいのか。

DACは結構綺麗に、解像度の高い音を出してくれてる気がしますが、
それがよりシャープになって出ている感じです。


うん、結構綺麗ですね。

全部で2万くらいないので、かなりコスパが高い構成ではないでしょうか。
というか、これ以上にコスパがいい構成ってある?


ハイパワーTPA3116D2 2.1ハイファイデジタルアンプアンプボード(クラスD)250W + 100W
2.1chのおすすめアンプ。
私もこのチップを使ってますが、、ケース付でこれはいいな
2016年06月26日


解決?!xhci_hcd 0000:00:14.0: WARN Event TRB for slot 1 ep 8 with no TDs queued?

Linux Mint 17.1(カーネル3.13)を利用していたとき、USB3.0の機器(SCR3310-NTTCom)を使っていたら
xhci_hcd 0000:00:14.0: WARN Event TRB for slot 1 ep 8 with no TDs queued?
というエラーが頻発していたのですが、

17.3にバージョンアップして、カーネルも3.19にバージョンアップしたらエラーも出なくなりました。

なんか、xhciのドライバ更新されたのかな?
今まで、わざわざUSB2.0のドライバを使っていましたが、これからはフルスペックでUSBを利用できる!
2016年02月17日


Zenfone2 Android 5.0 楽天モバイルでL2TPがうまく動かない

タイトル通り、Zenfone2、Android 5.0楽天モバイルの環境でL2TPがうまく動きません。

原因不明です。

自宅に、VPNのサーバを立てているのですが、まず、Wifiでは安定してつながります。
というわけで、ハード、OS、設定には問題なし。
しかし、MVNO(楽天モバイル)経由だとコネクションはされるのですが、しばらくするとすぐに切れる。
ほとんど使い物になりません。
ってことは、楽天モバイル(回線)が悪い?
でも、楽天モバイル(回線)をデザリングして、iPhoneからサーバへつなぐと安定してつながる、、、あれ?
というわけで原因不明なのです。

VPNサーバ - Wifiルータ - Zenfone2 ・・・OK
VPNサーバ - ルータ - 楽天モバイル - Zenfone2 ・・・不安定
VPNサーバ - ルータ - 楽天モバイル - Zenfone2 - iPhone ・・・OK

というわけで、これ何が原因なの?

いろいろと、トライ&エラーを繰り返してみたのですが、やっぱり原因不明。
syslogに Maximum retries exceeded for tunnel XXXX. Closing.
というログがあったので、これをヒントに調べたところ、
L2TPのKeepaliveの設定が怪しいとのこと。

というわけで、Gitからソースをダウンロードしてきて、L2TPの固定値を変更してコンパイルすることに。
2tp.h
#define NZL_TIMEOUT_DIVISOR 40
#define HELLO_DELAY 260 /* How often to send a Hello message
#define DEFAULT_MAX_RETRIES 20 /* Recommended value from spec */


network.c:248
// tv.tv_sec = 1;
tv.tv_sec = 10;

でも、全く意味なし。


いろいろ調べたのですが、どうも、android側から切断しているようなので、
サーバ側のパラメータを変更してもあまり意味がなさそうです。
(切断のタイミングを見たところ、どうもandroid側が先に切れている)

というわけで、全くのお手上げ。
回線の関係上、PPTPは使えないし、どうしたものやら。。。
2015年09月22日


VLCでPT2 リアルタイム視聴(Ubuntu)

自分用のメモ

Ubuntuで、PT2を使ったリアルタイム視聴のコマンド
recpt1 --device /dev/pt1video2 --b25 --strip --sid hd 27 - - | cvlc -

リアルタイム視聴で検索しても、なかなかこのコマンド出てこないんですよね。。。
なんでだろ。
私の環境では使えるけど、recpt1のバージョンによって使えたり、使えなかったりするのだろうか。
2015年06月28日


Ubuntu 14でのUSB/IPの利用

「SCR3310-NTTCom」ではLinuxのxhci_hcd(USB3)ドライバと相性が悪いらしく、
よく、エラーが発生します。(利用するたびにsyslogにエラーが出力されている)
そこで、仕方なく、BIOSからUSB3.0を無効にして、ehciで動かしています。
ただ、この方法だと、USB3の機器をつないでも、USB2の速度となってしまうため不便。
で、何とかしたいと思い、考え付いたのが、USB/IPによる利用。

これなら、USBのドライバをxhci_hcd(USB3)に戻して、SCR3310-NTTComはUSB/IPによるvhciで利用できるはず!!

というわけで、ルータをUSBデバイスサーバ化してSCR3310-NTTComをネットワーク経由で使えるようにしたのが前回までのお話。

今回は実際に使うクライアント側です。

クライアントはUbuntu14(正確には、Linux Mint)
①まずは、カーネルモジュールのコンパイルを行い、usbipのモジュールが利用できるようにします。
②カーネルモジュールのコンパイル・インストール方法は下記
sudo apt-get install linux-source
mkdir ~/build
tar xvf /usr/src/linux-source-(ダウンロードされたバージョン)tar.bz2 -C ~/build
cd ~/build
sudo apt-get install libwrap0-dev gcc libglib2.0-dev libtool automake autoconf pkg-config libsysfs-dev
cd drivers/staging/usbip/userspace/
./autogen.sh
./configure
sudo make install
③インストールしたカーネルモジュールの読み込み
sudo modprobe vhci-hcd
sudo modprobe usbip-core
sudo modprobe usbip-host

これでusbip関連のコマンドが使えるはず。
ダメなら再起動とか、アンインストール・再インストールを試してみる。
特に問題なければ、/etc/modulesに追記しても良いかと。

あと、私はハマったのですが、一度はattachがうまくいったのに、2回目以降なぜか、attachすると、
usbip: error: recv op_common
usbip: error: query
というエラーが発生。クライアント側で何をしても解決しなかったのですが、
サーバ側で、一度、unbindをしたら、エラーも出ずにうまくいきました。。。
これには、ものすごくハマりました。。。。

とりま、使えるようになったので良しとする。

関連記事
WZR-HP-G301NHのOpenWrt化
OpenWrtによるUSBデバイスサーバ!


追記
lsusbでも、pcsc_scanでも、正常に認識しているのを確認できているのですが、
recpt1 --b25 --strip~~
で実際に録画しようとすると、
bcas->init failed
Cannot start b25 decoder
のエラーが発生して、正常にデコードできません。
原因不明で解決できず。
スマートカードリーダー関連のパッケージをダウングレードでいけるかも?
2015年05月17日


OpenWrtによるUSBデバイスサーバ!

特に変わったことはしていません。
sshでルータにアクセスして、USB/IP関連パッケージをインストールするだけ。

少し、手間取ったのが、WEB画面へ入って、パスワードを設定すると、telnetではアクセス付加となるため、sshでログインする必要があったということ。
あと、パッケージをインストールした後、ルータの再起動が必要ということ。
再起動しないと、usbipのコマンドがうまく動きませんでした。

さらに、、、バスパワーのBlu-rayドライブが使用不可。。
これは、書いている通りバスパワーの問題だと思います。(USB電源の容量不足)


参考にしたサイトは、
http://wiki.openwrt.org/doc/howto/usb.iptunnel

一応、インストールのコマンドは、
opkg install kmod-usb-ohci
opkg install http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/usbip_1.1.1-2_ar71xx.ipk
opkg install http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/usbip-client_1.1.1-2_ar71xx.ipk
opkg install http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/usbip-server_1.1.1-2_ar71xx.ipk
となっていますが、見ての通り、バージョン12用なので、このあと、updateします。

これで、OpenWrtによるUSBデバイスサーバが完成です!
お手軽!!

次は、クライアント側の設定です。
WZR-HP-G301NHのOpenWrt化
Ubuntu 14でのUSB/IPの利用
2015年05月17日


Linux Mintで原因不明のフリーズ

Linux Mintでサーバ運用中、原因不明のフリーズ発生。
気づいたらマシンが止まっていて、仕方なく、電源オフ・オンで再起動。

ログを見て、一番最後のログが、

①mate-screensaver-dialog: pam_ecryptfs: seteuid error
②dbus[964]: [system] Reloaded configuration

うーん、②の方は印象として、無視でよさそうですが、、、
①は何だろう?ってことで調べたのですが、
結果よくわかんない。

海外のフォーラムで、バグという話が出ていたのと、
雰囲気、スクリーンセイバーから復帰時の画面ロックの解除での認証の、、、ところって話もあり(ほんとかどうかはわかりませんが。(英語も読めない))
取り敢えず、スクリーンセイバーに移行しない(画面ロックされない)ように設定を変更。
常に、ログインしっぱなし、認証なし!!という運用に便利な設定にしました。
家の中のマシンなので、セキュリティは無視で!(笑)

しばらく運用続けて様子見ます。
2015年04月20日


xhci_hcd 0000:00:14.0: WARN Event TRB for slot 1 ep 8 with no TDs queued?

LinuxでUSB3.0の機器(私の場合はICカードリーダー)を利用すると、
xhci_hcd 0000:00:14.0: WARN Event TRB for slot 1 ep 8 with no TDs queued?」(syslog)が大量に発生します。


Centosでも、Linux Mintでも両方で起きている(ハードは同じ)ので、原因不明。
Linuxの問題っぽい。

xhciで警告が出ているので、とりあえず、マザーボードでUSB3.0を無効にしたらおさまりました。。。
めったに、USB3.0は使わないし、使っても、まあ、2.0でも何とかなるので困りはしないですが、、、なんだかなぁ。


2015年04月13日


CentOS7 epgrecインストールでハマった

まず、初期設定のstep2.phpが開かない。
で、「/var/log/httpd/error_log」を見ると、
PHP Fatal error: Smarty error: unable to write to $compile_dir '/var/www/html/epgrec/templates_c'. Be sure $compile_dir is writable by the web server user.
とのことで、どうも、templates_cへの書き込み権限がないと言っているような気がする。。。
だが、templates_cは777のパーミッションが与えてあり、それはあり得ない。


原因はSELinux。
とりあえず、無効にしました。。。
しましたが、ここでも躓いた。
最初、「/etc/sysconfig/selinux」に設定を入れていたのですが、これは誤りで、「/etc/selinux/config」に入れるのが正しいみたい。

どおりで、SELinuxを無効にしたはずが、再起動後に復活するはずだ。。。
あと、www-dataのユーザがいなくて、うまく動いてなかったが、
ユーザ作ったらとりあえず、動くようになった。
これでいいのかはよくわかんないけど。
2015年04月05日


前へ 次へ