駄文置場

PC、ガジェット、音楽に関して自分が興味がある事をツラツラと書いていく駄文置場です。

2017年06月

スマホが原因でオーディオノイズが発生

自宅でFX-AUDIO社のDAC-X4JというDAコンバータを使用しています。
現在の配置と問題点は図の通りです。

無題

ちなみにDAC-X4JをUSB接続でPCに直接続すると、
(つまりUSB-DACとして使用すると)ノイズは発生しません。

またUR824に刺さっているヘッドフォンやスピーカーからもノイズは聞こえません。
・・・という事はハードウエアの物理的故障は考えづらい状況です。

そこで、配線・OS・UR824のドライバの不調を疑い、以下を試してみました。
ですが、状況は改善されませんでした。

・UR824が不調かと思いPCのOS初期化やドライバ入れ直しした。
・パソコンとUR824を接続しているUSBケーブルを手持ちの物で交換してみた。
・UR824とDAC-X4Jの接続しているSPDIFケーブルを手持ちの物で交換してみた。

そこで問題を整理してみました。

・マウスをクリックしたり、照明のON/OFFなどトリガーがあって発生するノイズではない。
・ノイズの発生が不定期かつ、突発的である。
・ノイズが発生しても音の再生は途切れる事はなく、ノイズが重なって流れてくる。
・DAC-X4Jのみで発生している。
・物理的接続を見直しても、現象は解決しない。


ここまで考えて、外的要因によるものとしか説明がつかなくなりました。
という事で、続いて近くにあるノイズ源を見直しました。

そしてあれこれ調べてみて原因が判明。
なんと犯人はiPhone6Sでした…。

もちろん必ず発生するわけではなく、
iPhone6SがWIFIでなんらかの通信をしているときのみに発生します。

強制的にノイズを発生させる方法としてもっとも手ごろな方法は、
デザリングを有効にして近づけると確実に再現します。
何度やっても再現しましたので確実です。
(iPhoneのテザリングをONにするとWIFIの電波を周囲に発信するため)

確かにパソコンのデスクには、DACの他、iPhone6Sも常においてあります。
発生がランダムなのは、iPhone6SのWIFIの電波の強さに影響しているためで、
iPhone6Sから発するWIFI電波が強い時だけ、どうやらノイズがのるようです。

iPhone6SをDACや、DACから伸びているイヤホンケーブルから
30cm程離せばノイズはのらないので、置き場をかえて対処しました。

UR824では発生しないため、
DAC-X4Jの対ノイズ対応が弱い事が理由ではあったのですが、
なんだかなあという気分でもあります。。

Firefox 54にしても速くならない。

Firefox 54は、Chromeで既に採用されているように、
マルチプロセス化に対応する事で、
軽く速く動作するような仕組み
が導入されています。

ところが使用しているプラグインの種類によっては、
マルチプロセス化が有効にならないケースがあるようです。

FirefoxのURLの所に、「about:support」と入力すると、
”トラブルシューティング情報 ”という画面が開きます。

そこを下にスクロールしていくと、”マルチプロセスウィンドウ”という項目があるのですが、
ここが”0/1 (アドオンにより無効)”となっていて、高速化技術が動作していない事がわかります。

キャプチャ

アドオンが理由という事ですが、この理由を調べるためには、
Add-on Compatibility Reporter」 という、mozilla純正のアドオンを入れる必要があります。

このプラグインをインストールした後「about:addons」とURLバーに入力すると、
キャプチャ
FlashGot Mass Downloader」が非対応である事がわかりました。

FlashGotは、ニコニコから動画を落としてエンコードする時に愛用していたので、
これが使えないという事はとても痛いのですが、現時点では仕方なしです。

この状態でメモリの状態をみてみると、
確かにFirefoxは単一プロセスで動いてしまっている事がわかります。
1

そこでFlashGotを削除してみました。
このようにマルチプロセスウインドウが有効となりました。
キャプチャ

また、メモリプロセスもしっかり分割されている事も確認できました。
2

効果はかなり劇的で、起動した後に、複数のタブを使ったり、
新しいウインドウを開く時などに、Firefoxがキビキビ動くようになります。

FlashGotが使えなくなったのだから思い切ってChromeに・・・とも考えたのですが、
別アプリにはなってしまいますが「Craving Explorer」を使う事にしました。
別アプリではなく、アドオンでという事でしたら「Video DownloadHelper」を使うという手もありますが、
ダウンロード速度が遅い?ようなので私はパスしました。

それでもFirefoxに拘る理由は、FlashGot以上に便利である
DownThemALL」という分割ダウンローダの存在の大きさです。
幸いな事にDownThemALLはマルチプロセス対応しているので安心して使う事ができるようです。

Firefox54にしたけど、もっさりしたまま速くならない!という方の助けになればと思います。

KabeLake時代のQSVエンコード画質について考える

tかなり前にrigayaさんにご相談しながら情報を教えていただき、
以下のような記事をかきました。

Haswell時代のQSVエンコード画質について考える

今となっておはずかしいのですが、
H265でもH264でも両方ともQSVで対応していますが、
当時の記事はQSV=H264みたいな書きっぷりですね。
お恥ずかしい・・・。謹んで訂正させていただきます。

さて、時代はいつのまにやらKabyLake時代になり、
今年度後半には、次のCoffieLakeなるCPUの登場も予告されていますが、
やっぱり今でもQSV=H264かなと思っています。
H265は正直まだ早いかなと。エンコードが極めて遅いですし。

という事で結論からいうと、以下のレートが今でも生きているとおもっていて、
結局はICQ最高!という結論です。

「CQPで異常に低いQP指定 > LA-ICQ > ICQ >> CQP ≒ VQP > LA >>>(超えられない壁)>>> VBR = AVBR > CBR」

そういえばAviUtilでQSVのエンコードをするには、
rigayaさんが作られたQSVEncを使えば簡単にエンコードできますが、
今日はTMPGEnc Video Mastering Works 6の設定を少し書いておこうと思います。

無題

mp4の初期値からいくつか設定を変更しています。

映像エンコーダ Intel Media SDK Hardware
レート調整モード VBR(固定品質) VBV無し
パフォーマンス 遅い
品質 64
音声 320

なかでも固定品質モードの値を64にしている理由ですが、

51 - (TVMWの品質値 * 0.5)

このような計算式で求められる事をペガシスに確認済みです。
結果として crf=19 という値になります。
crf=19 はさすがにやりすぎでは?という意見もあろうかと思いますが、
SSIMという画質評価指標の値があり、

moni様が

x264のcrf値はどれくらいが適切なのか?  

という記事で検証されているのですが、
SSIMの値が0.985を下回ると、人間の目には画質が劣化したと映るようです。

そもそも最近はHDDの容量も大きくなっていますし、
自宅保管用の画像でしょうから、多少容量大きくなっても、
きれいな画質で残しておきたいものです。
という事で迷わず ctf=19 を採用しています。

肝心のエンコード時間ですが、7700K定格クロックで、
1時間半程度の動画が15分とかそのあたりだったと思います。速いですね!

Raspberry Pi 3の初期設定、セキュリティ、VPN

Raspberry Pi 3を購入したので、
初期設定、セキュリティ設定、VPNサーバー立ち上げまでの流れを書いてみます。
基本的にWindows上で操作しますが、一部だけRaspberry Pi 3で操作します。

1)Raspbian Jessie with PIXELのダウンロード

https://www.raspberrypi.org/downloads/raspbian/

Version: April 2017
Release date: 2017-04-10
Kernel version: 4.4

これを落とした。

2)Win32 Disk Imagerのダウンロード

https://sourceforge.net/projects/win32diskimager/files/Archive/

Win32DiskImager-1.0.0-binary.zip

これを落とした。

3)SDカードへの書き込み(Transcend microSDHCカード 16GB Class10 UHS-I対応 TS16GUSDU1P)

Writeで書き込む。

a

4)USBマウスとキーボード、HDMIケーブルでモニタを取り付けた上で Raspberryの設定で以下を設定(Raspberry Pi 3で作業)

Raspberry Pi 3にSDカードを装着し、起動してから以下を設定
これらはGUIのraspberry pi configurationから変更できる

・ホスト名変更(任意)
・SSHの有効化
・ロケール、タイムゾーン、キーボード、無線LANを日本に設定

※なお、モニタやキーボードを接続する事が難しい場合は以下の方法もあります。

PCにマウントしたSDカードのBOOTドライブのルートに、
0kbyte ssh というファイルを置く。
次にLANケーブルをつないで起動する。
これで ssh を有効にした状態で起動できます。

ただしDHCPで親機からIPアドレスが割り振られるので、
割り当てられたIPアドレスがわからないので、
意図的にわかりやすいIPアドレスを割り当てるには、
親機のルーターの電源を切り、
Rasberry Pi 3だけをつなげた状態でルーターの電源をいれます。

すると 192.168.x.2 のように、DHCPサーバーの最初のアドレスが振られるので、
それでIPアドレスを知るという方法もあります。

5)IPアドレスの固定化(Raspberry Pi 3で作業)

ターミナルを開き以下の設定を最下段に追加(xの所は自分の環境にあわせて設定)

$ sudo nano /etc/dhcpcd.conf

----------------------------------------
# Example static IP configuration:
#interface eth0
#static ip_address=192.168.0.10/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
#static routers=192.168.0.1
#static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1

# It is possible to fall back to a static IP if DHCP fails:
# define static profile
#profile static_eth0
#static ip_address=192.168.1.23/24
#static routers=192.168.1.1
#static domain_name_servers=192.168.1.1

# fallback to static profile on eth0
#interface eth0
#fallback static_eth0

interface eth0
static ip_address=192.168.x.x/24
static routers=192.168.x.x
static domain_name_servers=192.168.x.x
----------------------------------------

$ sudo reboot

6)Tera Termのダウンロード

https://ja.osdn.net/projects/ttssh2/

zip版の最新版を落とした。

7)Tera TermでSSH接続

192.168.xx.xx に接続

ユーザ名 pi
パスワード raspberry

8)pi / rootのパスワードを設定

$ sudo passwd pi
$ sudo passwd root

9)Swap廃止、ramdisk構築(ramdiskは64mb)

$ sudo swapoff --all
$ sudo apt-get remove dphys-swapfile
$ sudo nano /etc/fstab

----------------------------------------
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that
tmpfs    /tmp    tmpfs    defaults,size=64m,noatime,mode=1777 0 0
tmpfs    /var/tmp    tmpfs    defaults,size=64m,noatime,mode=1777 0 0
----------------------------------------

$ sudo reboot

10)アプリのインストール
リモートデスクトップと、ファイアウォールを入れた。

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install tightvncserver //必要がなければインストール不要
$ sudo apt-get install xrdp //必要がなければインストール不要
$ sudo apt-get install ufw
$ sudo reboot

11)xrdp(リモートデスクトップ)の初期設定(リモートデスクトップが不要なら作業不要)


$ cd /etc/xrdp/
$ sudo wget http://w.vmeta.jp/temp/km-0411.ini
$ sudo ln -s km-0411.ini km-e0010411.ini
$ sudo ln -s km-0411.ini km-e0200411.ini
$ sudo ln -s km-0411.ini km-e0210411.ini
$ sudo service xrdp restart

12)ファイアウォールの初期設定


$ sudo ufw disable
$ sudo ufw default deny
$ sudo ufw allow from 192.168.x.0/24
$ sudo ufw enable

※ローカル接続のみ許可しそれ以外の外部接続をすべて拒否に。

13)ログファイルを最低限しか作成しないように変更

$ sudo nano /etc/rsyslog.conf
※auth.logとsyslog以外は全てコメントアウト
----------------------------------------
###############
#### RULES ####
###############

#
# First some standard log files.  Log by facility.
#
auth,authpriv.*                 /var/log/auth.log
*.*;auth,authpriv.none          -/var/log/syslog
#cron.*                         /var/log/cron.log
#daemon.*                       -/var/log/daemon.log
#kern.*                         -/var/log/kern.log
#lpr.*                          -/var/log/lpr.log
#mail.*                         -/var/log/mail.log
#user.*                         -/var/log/user.log

#
# Logging for the mail system.  Split it up so that
# it is easy to write scripts to parse these files.
#
#mail.info                      -/var/log/mail.info
#mail.warn                      -/var/log/mail.warn
#mail.err                       /var/log/mail.err

#
# Some "catch-all" log files.
#
#*.=debug;\\
#       auth,authpriv.none;\\
#       news.none;mail.none     -/var/log/debug
#*.=info;*.=notice;*.=warn;\\
#       auth,authpriv.none;\\
#       cron,daemon.none;\\
#       mail,news.none          -/var/log/messages

#
# Emergencies are sent to everybody logged in.
#
#*.emerg                         :omusrmsg:*
----------------------------------------

14)1日1回再起動をし、更に週に1回OSを自動アップデートするように変更

$ sudo crontab -e

----------------------------------------
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
0 5 * * * /sbin/reboot
0 7 * * 1 sudo apt-get update && sudo apt-get upgrade -y
----------------------------------------

例は毎日5時に再起動。更に毎週月曜日7時にアップデートを実施する。

15)日本時間を基準とし、更に自動的に時刻あわせするように変更

$ sudo apt install ntp
$ sudo timedatectl set-timezone Asia/Tokyo
$ sudo nano /etc/ntp.conf

----------------------------------------
# pool.ntp.org maps to about 1000 low-stratum NTP servers.  Your server will
# pick a different set every time it starts up.  Please consider joining the
# pool: <http://www.pool.ntp.org/join.html>
#pool 0.debian.pool.ntp.org iburst
#pool 1.debian.pool.ntp.org iburst
#pool 2.debian.pool.ntp.org iburst
#pool 3.debian.pool.ntp.org iburst
pool ntp.nict.jp iburst
----------------------------------------

$ sudo service ntp restart

==== ここまでで基本的な初期設定完了 ===

==== 以下は以前作業した際の備忘録  ==== 

<softetherを使いvpnサーバーを立ち上げる方法>

16)ファイアウォールの追加設定

※設定方針
外部VPN用=500/udp 4500/udpを解放し、
内部SoftEtherクライアント用=443/tcpを解放します。
つまり 500/udp 4500/udp に穴をあける事になります。

L2TP/IPsecでの接続を前提とし、
L2TP/IPsecのセキュリティ管理(SoftEtherの設定)を強化する事で
セキュリティ対策を行います。

$ sudo ufw disable
$ sudo ufw allow 500/udp
$ sudo ufw allow 4500/udp
$ sudo ufw allow from 192.168.x.0/24 to any port 443 proto tcp
$ sudo ufw enable

17)SoftEther VPN Serverのインストール

SoftEther VPN Server (Ver 4.20, Build 9608, rtm) を入れる事にした。
※ 現在はもっと新しいものが出ていると思われますので適宜置き換えて作業ください。

$ su-

# wget http://jp.softether-download.com/files/softether/v4.20-9608-rtm-2016.04.17-tree/Linux/SoftEther_VPN_Server/32bit_-_ARM_EABI/softether-vpnserver-v4.20-9608-rtm-2016.04.17-linux-arm_eabi-32bit.tar.gz

# tar zxvf softether-vpnserver-v4.20-9608-rtm-2016.04.17-linux-arm_eabi-32bit.tar.gz

# cd vpnserver
# make
# cd ../
# mv vpnserver /usr/local/
# cd /usr/local/vpnserver
# chmod 600 *
# chmod 700 vpn*

起動スクリプトを作成する

# nano /etc/init.d/vpnserver

----------------------------------------
#!/bin/sh
### BEGIN INIT INFO
# Provides:                 vpnserver
# Required-Start:           $local_fs $network
# Required-Stop:            $local_fs $network
# Default-Start:            2 3 4 5
# Default-Stop:             0 1 6
# Short-Description:        SoftEther VPN 4.20 RTM
# Description:              Start vpnserver daemon SoftEther VPN 4.20 Server
### END INIT INFO

DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/vpnserver

. /lib/lsb/init-functions
test -x $DAEMON || exit 0

case "$1" in
start)
sleep 3
log_daemon_msg "Starting SoftEther VPN 4.20 Server" "vpnserver"
$DAEMON start >/dev/null 2>&1
touch $LOCK
log_end_msg 0
sleep 3

# SoftEther VPNで追加した仮想tapデバイス名を調べる
tap=`/sbin/ifconfig -a| awk '$1 ~ /^tap/ {print $1}'`
/sbin/brctl addif br0 $tap
;;

stop)
log_daemon_msg "Stopping SoftEther VPN 4.20 Server" "vpnserver"
$DAEMON stop >/dev/null 2>&1
rm $LOCK
log_end_msg 0
sleep 2
;;

restart)
$DAEMON stop
sleep 2

$DAEMON start
sleep 5
# SoftEther VPNで追加した仮想tapデバイス名を調べる
tap=`/sbin/ifconfig -a| awk '$1 ~ /^tap/ {print $1}'`
/sbin/brctl addif br0 $tap
;;

status)
    if [ -e $LOCK ]
    then
        echo "vpnserver is running."
    else
        echo "vpnserver is not running."
    fi
;;
*)

echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit 0
----------------------------------------

# chmod +x /etc/init.d/vpnserver
# apt-get -y install chkconfig
# chkconfig --add vpnserver
# reboot

18)SoftEtherの初期設定

※設定方針
これ以後の作業はWindowsマシンのクライアントアプリ上で作業をします。
具体的な作業はリンク先URL参照下さい。(リンクは貼っていません)

http://俺の技術メモ.net/raspberry-pi2-vpnserver-part2/

このURLを読み進めていくと、「本番設定」という項目と、
「起動スクリプトを作り直す」という項目が出てきますが、
この2つの項目の作業は、仮想HUBを作っていないため作業不要です。

※当方、ネット環境をv6プラス環境に移行してしまったため、
IPv4でのポート開放などが行えなくなったため、
SoftEtherでのVPN構築は不可となってしまいました。
そのため、今となってはこの作業で正しいかどうかの検証もできません…。


==== ここまででは以前作業した際の備忘録は終わり  ==== 

==== さらに以下は余談です。 ===

本体の設定方法

IMG_0337

こんな感じで背面の熱を放熱しやすい向きに設置すると良いかと。

vcgencmd measure_temp

このコマンドでCPU温度を見ることができる。
ラズバイ3のCPUは最大85度まで動く模様。
我が家はケース装着、自然冷却で60度~67度の間をウロウロ。

<2017/6/21追記>
ケースファンを追加した。
見た目は格好悪いですが、ケースの横に紐でくくりつけて運用中。

IMG_0342

Scythe AS-71G2 [USB変換ケーブル]
オウルテック Owltech FANGuard-M8(B)/II [ファンガード 8cm ブラック]
オウルテック Owltech SF8-S2 [ケースファン 1300RPM 80mm角 25mm厚 リブ無し]


この3点セットです。最大10dbと超静音でノイズは全くきにならず。
これを常時まわしてあげると、
48~49度で飽和し-15度位さがったので十分かと!
これで電源を入れっぱなしでも熱暴走リスクはないと思います。

それと最後に少しだけ。

セキュリティ対策で"pi"という初期ユーザ名を別の名前に変更したり、
sshのポートを22番以外に変更する方もいるようですが、
メンテナンス性に影響がでるので今回は行っていません。

またSDカードの寿命対策で、swapを止めたり、
/tmp や /var/tmp のRAMDISK化はしましたが、
アプリによって細かな設定変更や、
起動時にRAMDISKを構成するスクリプトの記載が必要になるため、
/var/log の RAMDISK化はトラブル防止で行っていません。

そもそもSDカードは安価なものはTLCが多く、
1000回書き換えすると寿命を迎えるとありますが、
ここで言う1000回というのは、SDカード上の全く同じ場所・同じ領域を、
上書きで延々1000回書き換えたら壊れるかも?という意味を示します。

通常はSDカードは同じ場所に延々書き込みしないように、
書き込みする場所をうまくローテーションする
ウェアレベリング機能という仕組みが組み込まれているので、
1000回リブートしたらSDカードが壊れてしまうという事はありません。

仮に壊れて起動できなくなっても再構築はさほど難しくありませんので、
その時に考えればいいかな・・・と、笑

AsRock DeskMini110/B/BBにWindows7をインストールする。

AsRock DeskMini110/B/BBは購入直後Windows8.1をインストールしていたのですが、
Windows7をインストールしてみたくなって試した所、ほんのちょっとだけ手間取りました。

DVDがないためUSBスティックにインストールメディアを作り、
そこからインストールとなるわけですが、
Skylake世代のAsRock製品(だけは?ほかも?)は、
Enhanced Host Controller Interface というインタフェース機能がカットされたため、
USB3.0からインストールしようとしても途中でエラーになりインストール不可になります。

対策方法ですが、AsRockのこのページにあるユーティリティを使い、
インストーラを作成すればUSB3.0からインストール可能な
USBスティックがメディアが作成できます。

WEBページで100シリーズを選び、ユーティリティをダウンロードしたら、
あとは下のほうにある画面の通りに作業すればOKです。
インストールメディアの作成時間は思ったより長く15分位?かかったと思います。

ここで作ったインストールメディアを他のメーカで使えるかは不明ですが、
無事これでWindows7をインストールできました。

記事検索
最新コメント
アーカイブ