Asustor NASでVNCサーバーを走らせる

手軽に使えるHDMIディスプレーの手持ちがないので古いVGA CRTディスプレーを変換アダプタを介して使用

手軽に使えるHDMIディスプレーの手持ちがないので古いVGA CRTディスプレーを変換アダプタを介して使用

このほど購入したAsustor社製NAS AS3102TでVNCサーバーを走らせた。理由は階が違うなど離れた部屋からもどういう画面表示がされているのか見られると便利だから。特にKodiは設定はNASに直結されたディスプレーが見えてないとできないので、VNCサーバーを利用するなどしない限り、ディスプレーの前にいないと設定ができない。

x11vnc: a VNC server for real X displaysが利用できそうだと気がついた。参考:

X11vnc – Portal to control ASUSTOR distance- (thanks to Father-Mande) – NAS Forum“に既にインストール済みのEntware-ngの作者によるアプリがあるが、すぐあとで見るようにVNCサーバーを走らせるものに必要なものは最初からADMに含まれている。なので自力で走らせようとしたのだが、結果論としては使えるようにするまでが手間で、もしそれをやってくれるのならこちらの方が楽だったかも。

まず探してみる:

root@AS3102T-693D:/ # find . -name "*vnc*"                                               
./volume1/.@plugins/AppCentral/xorg/usr/bin/x11vnc                                       
./volume1/.@plugins/AppCentral/xorg/usr/share/applications/x11vnc.desktop                
./volume1/.@plugins/AppCentral/xorg/usr/share/x11vnc                                     
./volume1/.@plugins/AppCentral/xorg/usr/share/x11vnc/classes/index.vnc                   
./volume1/.@plugins/AppCentral/xorg/usr/share/x11vnc/classes/ssl/proxy.vnc               
./volume1/.@plugins/AppCentral/xorg/usr/share/x11vnc/classes/ssl/ultra.vnc               
./volume1/.@plugins/AppCentral/xorg/usr/share/x11vnc/classes/ssl/index.vnc               
./volume1/.@plugins/AppCentral/xorg/usr/share/x11vnc/classes/ssl/ss_vncviewer            
./volume1/.@plugins/AppCentral/xorg/usr/share/x11vnc/classes/ssl/ultrasigned.vnc

あれ、どうやらXサーバーアプリの一部としてインストールされているようだ。走るかな?

root@AS3102T-693D:/ # ./volume1/.@plugins/AppCentral/xorg/usr/bin/x11vnc                 
./volume1/.@plugins/AppCentral/xorg/usr/bin/x11vnc: error while loading shared libraries:
 libXtst.so.6: cannot open shared object file: No such file or directory                 
root@AS3102T-693D:/ # find . -name "*libXtst*"                                           
./volume1/.@plugins/AppCentral/xorg/usr/lib/libXtst.so.6.1.0                             
./volume1/.@plugins/AppCentral/xorg/usr/lib/libXtst.so                                   
./volume1/.@plugins/AppCentral/xorg/usr/lib/libXtst.so.6

必要なライブラリは用意されてるのだがパスが通ってないため起動しない模様。なら通してやれば起動するかも、と思いながら試してみるとできた。

というわけで最低限以下で起動できることを確認。

LD_LIBRARY_PATH=/volume1/.@plugins/AppCentral/xorg/usr/lib/:$LD_LIBRARY_PATH /volume1/.@plugins/AppCentral/xorg/usr/bin/x11vnc -display :0 -usepw -forever -ncache 10
Windows PC上で走らせたTightVNC Viewerからアクセスした、Kodiを実行中のAS3102Tの画面

Windows PC上で走らせたTightVNC Viewerからアクセスした、Kodiを実行中のAS3102Tの画面

オプションはもっといろいろつけないといけないのだが、とりあえず以下だけ。

  • -usepwオプションをつけると初回にパスワードを設定することを求めてくる。これはUnixパスワードとは別物であることに注意。それ以降は起動するごとにこの作成されたパスワードによる認証が行われる。
  • -foreverオプションをつけないと、一回クライアントが接続した後終了すると、VNCサーバーも終了してしまう。

Lubuntu上でRemmia Remote Desktop Clientを使って接続してみたときの出力が以下。ポートはデフォルトでは5900。

クライアントとしてWebアプリのnoVNC: VNC client using HTML5 (Web Sockets, Canvas) with encryption (wss://) support.も試してみたが、サーバー側がWebSocketsに対応していないようでうまくいかなかった。サーバー側で、noVNCのディストリビューションの一部として提供されているPythonによるプロクシを使えばこの問題は解消するようだが、面倒なのでやってない。

ここで止めればよかったのだが、NAS本体起動時にVNCサーバーが自動起動するようにしようとして手間がかかった。それについては後日

root@AS3102T-693D:/ # LD_LIBRARY_PATH=/volume1/.@plugins/AppCentral/xorg/
usr/lib/:$LD_LIBRARY_PATH /volume1/.@plugins/AppCentral/xorg/usr/bin/x11vnc -display :0 -
usepw -forever -ncache 10                                                                
28/10/2016 20:50:13 -usepw: found /root/.vnc/passwd                                      
28/10/2016 20:50:13 x11vnc version: 0.9.13 lastmod: 2011-08-10  pid: 21908               
28/10/2016 20:50:13 Using X display :0                                                   
28/10/2016 20:50:13 rootwin: 0xf2 reswin: 0x1200001 dpy: 0x1ac5270                       
28/10/2016 20:50:13                                                                      
28/10/2016 20:50:13 ------------------ USEFUL INFORMATION ------------------             
28/10/2016 20:50:13 X DAMAGE available on display, using it for polling hints.           
28/10/2016 20:50:13   To disable this behavior use: '-noxdamage'                         
28/10/2016 20:50:13                                                                      
28/10/2016 20:50:13   Most compositing window managers like 'compiz' or 'beryl'          
28/10/2016 20:50:13   cause X DAMAGE to fail, and so you may not see any screen          
28/10/2016 20:50:13   updates via VNC.  Either disable 'compiz' (recommended) or         
28/10/2016 20:50:13   supply the x11vnc '-noxdamage' command line option.                
28/10/2016 20:50:13                                                                      
28/10/2016 20:50:13 Wireframing: -wireframe mode is in effect for window moves.          
28/10/2016 20:50:13   If this yields undesired behavior (poor response, painting         
28/10/2016 20:50:13   errors, etc) it may be disabled:                                   
28/10/2016 20:50:13    - use '-nowf' to disable wireframing completely.                  
28/10/2016 20:50:13    - use '-nowcr' to disable the Copy Rectangle after the            
28/10/2016 20:50:13      moved window is released in the new position.                   
28/10/2016 20:50:13   Also see the -help entry for tuning parameters.                    
28/10/2016 20:50:13   You can press 3 Alt_L's (Left "Alt" key) in a row to               
28/10/2016 20:50:13   repaint the screen, also see the -fixscreen option for             
28/10/2016 20:50:13   periodic repaints.                                                 
28/10/2016 20:50:13                                                                      
28/10/2016 20:50:13 XFIXES available on display, resetting cursor mode                   
28/10/2016 20:50:13   to: '-cursor most'.                                                
28/10/2016 20:50:13   to disable this behavior use: '-cursor arrow'                      
28/10/2016 20:50:13   or '-noxfixes'.                                                    
28/10/2016 20:50:13 using XFIXES for cursor drawing.                                     
28/10/2016 20:50:13 GrabServer control via XTEST.                                        
28/10/2016 20:50:13                                                                      
28/10/2016 20:50:13 Scroll Detection: -scrollcopyrect mode is in effect to               
28/10/2016 20:50:13   use RECORD extension to try to detect scrolling windows            
28/10/2016 20:50:13   (induced by either user keystroke or mouse input).                 
28/10/2016 20:50:13   If this yields undesired behavior (poor response, painting         
28/10/2016 20:50:13   errors, etc) it may be disabled via: '-noscr'                      
28/10/2016 20:50:13   Also see the -help entry for tuning parameters.                    
28/10/2016 20:50:13   You can press 3 Alt_L's (Left "Alt" key) in a row to               
28/10/2016 20:50:13   repaint the screen, also see the -fixscreen option for             
28/10/2016 20:50:13   periodic repaints.                                                 
28/10/2016 20:50:13                                                                      
28/10/2016 20:50:13 Client Side Caching: -ncache mode is in effect to provide            
28/10/2016 20:50:13   client-side pixel data caching.  This speeds up                    
28/10/2016 20:50:13   iconifying/deiconifying windows, moving and raising                
28/10/2016 20:50:13   windows, and reposting menus.  In the simple CopyRect              
28/10/2016 20:50:13   encoding scheme used (no compression) a huge amount                
28/10/2016 20:50:13   of extra memory (20-100MB) is used on both the server and          
28/10/2016 20:50:13   client sides.  This mode works with any VNC viewer.                
28/10/2016 20:50:13   However, in most you can actually see the cached pixel             
28/10/2016 20:50:13   data by scrolling down, so you need to re-adjust its size.         
28/10/2016 20:50:13   See http://www.karlrunge.com/x11vnc/faq.html#faq-client-caching.   
28/10/2016 20:50:13   If this mode yields undesired behavior (poor response,             
28/10/2016 20:50:13   painting errors, etc) it may be disabled via: '-ncache 0'          
28/10/2016 20:50:13   You can press 3 Alt_L's (Left "Alt" key) in a row to               
28/10/2016 20:50:13   repaint the screen, also see the -fixscreen option for             
28/10/2016 20:50:13   periodic repaints.                                                 
28/10/2016 20:50:13                                                                      
28/10/2016 20:50:13 XKEYBOARD: number of keysyms per keycode 7 is greater                
28/10/2016 20:50:13   than 4 and 51 keysyms are mapped above 4.                          
28/10/2016 20:50:13   Automatically switching to -xkb mode.                              
28/10/2016 20:50:13   If this makes the key mapping worse you can                        
28/10/2016 20:50:13   disable it with the "-noxkb" option.                               
28/10/2016 20:50:13   Also, remember "-remap DEAD" for accenting characters.             
28/10/2016 20:50:13                                                                      
28/10/2016 20:50:13 X FBPM extension not supported.                                      
28/10/2016 20:50:13 X display is capable of DPMS.                                        
28/10/2016 20:50:13 --------------------------------------------------------             
28/10/2016 20:50:13                                                                      
28/10/2016 20:50:13 Default visual ID: 0x21                                              
28/10/2016 20:50:13 Read initial data from X display into framebuffer.                   
28/10/2016 20:50:13 initialize_screen: fb_depth/fb_bpp/fb_Bpl 24/32/7680                 
28/10/2016 20:50:13                                                                      
28/10/2016 20:50:13 X display :0 is 32bpp depth=24 true color                            
28/10/2016 20:50:13                                                                      
28/10/2016 20:50:13 Autoprobing TCP port                                                 
28/10/2016 20:50:13 Autoprobing selected port 5900                                       
28/10/2016 20:50:13 Listening also on IPv6 port 5900 (socket 10)                         
28/10/2016 20:50:13                                                                      
28/10/2016 20:50:13 Xinerama is present and active (e.g. multi-head).                    
28/10/2016 20:50:13 Xinerama: number of sub-screens: 1                                   
28/10/2016 20:50:13 Xinerama: no blackouts needed (only one sub-screen)                  
28/10/2016 20:50:13                                                                      
28/10/2016 20:50:13 fb read rate: 358 MB/sec                                             
28/10/2016 20:50:13 fast read: reset -wait  ms to: 10                                    
28/10/2016 20:50:13 fast read: reset -defer ms to: 10                                    
28/10/2016 20:50:13 The X server says there are 11 mouse buttons.                        
28/10/2016 20:50:13 screen setup finished.                                               
28/10/2016 20:50:13                                                                      
                                                                                         
The VNC desktop is:      AS3102T-693D:0                                                  
PORT=5900                                                                                
28/10/2016 20:50:17 Got connection from client 192.168.11.61                             
28/10/2016 20:50:17   other clients:                                                     
28/10/2016 20:50:17 Disabled X server key autorepeat.                                    
28/10/2016 20:50:17   to force back on run: 'xset r on' (3 times)                        
28/10/2016 20:50:17 incr accepted_client=1 for 192.168.11.61:51515  sock=11              
28/10/2016 20:50:17 Client Protocol Version 3.8                                          
28/10/2016 20:50:17 Protocol version sent 3.8, using 3.8                                 
28/10/2016 20:50:17 rfbProcessClientSecurityType: executing handler for type 2           
28/10/2016 20:50:17 Pixel format for client 192.168.11.61:                               
28/10/2016 20:50:17   8 bpp, depth 8                                                     
28/10/2016 20:50:17   true colour: max r 7 g 7 b 3, shift r 0 g 3 b 6                    
28/10/2016 20:50:17 Enabling X-style cursor updates for client 192.168.11.61             
28/10/2016 20:50:17 Enabling full-color cursor updates for client 192.168.11.61          
28/10/2016 20:50:17 Enabling cursor position updates for client 192.168.11.61            
28/10/2016 20:50:17 Enabling KeyboardLedState protocol extension for client 192.168.11.61
28/10/2016 20:50:17 Enabling NewFBSize protocol extension for client 192.168.11.61       
28/10/2016 20:50:17 Enabling SupportedMessages protocol extension for client 192.168.11.6
1                                                                                        
28/10/2016 20:50:17 Enabling SupportedEncodings protocol extension for client 192.168.11.
61                                                                                       
28/10/2016 20:50:17 Enabling ServerIdentity protocol extension for client 192.168.11.61  
28/10/2016 20:50:17 Enabling Xvp protocol extension for client 192.168.11.61             
28/10/2016 20:50:17 Using hextile encoding for client 192.168.11.61                      
28/10/2016 20:50:18 client 1 network rate 210.3 KB/sec (35706.4 eff KB/sec)              
28/10/2016 20:50:18 client 1 latency:  33.1 ms                                           
28/10/2016 20:50:18 dt1: 0.4561, dt2: 0.2574 dt3: 0.0331 bytes: 146565                   
28/10/2016 20:50:18 link_rate: LR_UNKNOWN - 33 ms, 210 KB/s                              
28/10/2016 20:50:18 client useCopyRect: 192.168.11.61 -1                                 
28/10/2016 20:50:18 client_set_net: 192.168.11.61  0.0530                                
28/10/2016 20:50:18 created   xdamage object: 0x1200040                                  
28/10/2016 20:50:18 copy_tiles: allocating first_line at size 61                         
28/10/2016 20:50:21 set_ncache_xrootpmap: trying root background                         
28/10/2016 20:50:21 snapshotting background...                                           
28/10/2016 20:50:21 done.                                                                
28/10/2016 20:50:21 cursor_noshape_updates_clients: 0                                    
28/10/2016 20:50:27 created selwin: 0x1200043                                            
28/10/2016 20:50:27 called initialize_xfixes()                                           
28/10/2016 20:50:27 cursor_noshape_updates_clients: 0                                    
28/10/2016 20:50:28 client_count: 0                                                      
28/10/2016 20:50:28 Restored X server key autorepeat to: 1                               
28/10/2016 20:50:28 Client 192.168.11.61 gone                                            
28/10/2016 20:50:28 Statistics             events    Transmit/ RawEquiv ( saved)         
28/10/2016 20:50:28  XvpServerMessage    :      1 |         4/        4 (  0.0%)         
28/10/2016 20:50:28  FramebufferUpdate   :     31 |         0/        0 (  0.0%)         
28/10/2016 20:50:28  hextile             :     86 |    294604/ 28368425 ( 99.0%)         
28/10/2016 20:50:28  ServerIdentify      :      1 |        36/       36 (  0.0%)         
28/10/2016 20:50:28  SupportedEncoding   :      1 |        92/       92 (  0.0%)         
28/10/2016 20:50:28  SupportedMessage    :      1 |        76/       76 (  0.0%)         
28/10/2016 20:50:28  PointerPos          :      1 |        12/       12 (  0.0%)         
28/10/2016 20:50:28  RichCursor          :      2 |       498/      498 (  0.0%)         
28/10/2016 20:50:28  TOTALS              :    124 |    295322/ 28369143 ( 99.0%)         
28/10/2016 20:50:28 Statistics             events    Received/ RawEquiv ( saved)         
28/10/2016 20:50:28  PointerEvent        :    104 |       624/      624 (  0.0%)         
28/10/2016 20:50:28  FramebufferUpdate   :     32 |       320/      320 (  0.0%)         
28/10/2016 20:50:28  SetEncodings        :      1 |        52/       52 (  0.0%)         
28/10/2016 20:50:28  SetPixelFormat      :      1 |        20/       20 (  0.0%)         
28/10/2016 20:50:28  TOTALS              :    138 |      1016/     1016 (  0.0%)         
28/10/2016 20:50:28 deleted 60 tile_row polling images.                                  
28/10/2016 20:50:28 Default visual ID: 0x21                                              
28/10/2016 20:50:29 Read initial data from X display into framebuffer.                   
28/10/2016 20:50:29 initialize_screen: fb_depth/fb_bpp/fb_Bpl 24/32/7680                 
28/10/2016 20:50:29 rfbNewFramebuffer(0x1b0eeb0, 0x0, 1920, 12960, 8, 1, 4)              
28/10/2016 20:50:29                                                                      
28/10/2016 20:50:29 X display :0 is 32bpp depth=24 true color                            
28/10/2016 20:50:29                                                                      
28/10/2016 20:50:29 calling setTranslateFunction()...                                    
28/10/2016 20:50:29   done.                                                              
28/10/2016 20:50:29                                                                      
28/10/2016 20:50:29 Xinerama is present and active (e.g. multi-head).                    
28/10/2016 20:50:29 Xinerama: number of sub-screens: 1                                   
28/10/2016 20:50:29 Xinerama: no blackouts needed (only one sub-screen)                  
28/10/2016 20:50:29                                                                      
28/10/2016 20:50:29 check_ncache: resetting cache: 11/512 10 0                           
28/10/2016 20:50:29 set_ncache_xrootpmap: trying root background                         
28/10/2016 20:50:29 snapshotting background...                                           
28/10/2016 20:50:29 done.                                                                
28/10/2016 20:50:29 destroyed xdamage object: 0x1200040                                  

NASで使うHDDの選定

Asustor NAS AS3102Tとそれに内蔵するHDD HGST Deskstar NAS  0S03667それぞれのパッケージ

Asustor NAS AS3102Tとそれに内蔵するHDD HGST Deskstar NAS 0S03667それぞれのパッケージ

Asustor社製NAS AS3102Tを購入した。が、その内蔵するHDDは別途用意しなくてはならない。最近使ってきたHDDの低い信頼性がそもそもNAS入手を決意した根本理由であり、そのNASでは冗長性のあるRAID 1を構築するつもりとはいえ、金銭的に無理のない範囲で極力信頼性の高いものを選びたい。

で、以下を見た。

最初のは所詮個人的感想の域を出ないと思うが、後の2つはBackBlazeというオンラインストレージサービスが業務で使用した万台単位のHDDの故障発生についてのデータなので、これは客観的資料として大いに価値がある。

最近Western DigitalのRedシリーズがNAS用であることを盛んに謳っており、この資料を見なければ自分もそれを盲目的に選んだと思うが、上のデータを見るとHGSTのものがよいような感じ。

ASUSTOR Inc. – Network Attached Storage (NAS)“を見てAsustorご推奨であることを確認した上でHGST 0S03667 [4TB SATA600 7200rpm]を2台注文。

ただし、”RAIDを同一ロットのHDDで組むのは禁じ手 | #interest_ae“を参考にして、わざわざ1台ずつ別の業者から購入。具体的にはイートレンドとTsukumo。届いたのを見ると製造年月日が一月ずれていた。

ふ~。

NASの選定

NASを入手することにした。以下のような不安定な事態はもう金輪際おさらばしたい。

バッファローのルーターWZR-HP-AG300Hに接続し、「簡易NAS」として利用しているUSB HDD(2010年に米国を去る前に購入したWestern Digitalのもの)から「カコーン、カコーン」という実にイヤ~な異音がしている。また、うちにはデスクトップPCが2台あり、1台はマウス製の自分用で、もう1台はLenovo製でもともと父用に用意したもの。どちらも、既に一度内蔵HDDが吹っ飛んでる。保証期間中だったので無償で交換してもらったが、再度使いやすい環境にするのに手間も時間かかった。しかも、最近特に自分用PCから、HDDの異音とおぼわしき音がしている。さらに1年ほど前に外付けUSB HDDがあったが、これも飛んでしまって、いまだにちゃんと復旧作業をしていない。

アメリカにいるときにはこのようなことはなかった。Dell製のPCを2台使ったが、それらで使ったHDDは異音を出すことはあっても結局最後まで完全に潰れることはなかった。どうも日本で購入したPCは信頼性の低いいHDDを使っているような気がしてならない。安いことを優先して選択した自分が悪いっちゃぁ悪いんだが…。

さて、NASにはストレージ機能について不足ないことは当然としてその他の要件は以下がある:

  • Dockerに代表されるコンテナ機能がサポートされていること。仮想化機能もサポートされていて、例えばそれでWindowsも仮想的に起動できればそれに越したことはないが、必須要件ではない。コンテナが普通に使えるにはやはりメモリは最低1GBは必要だろう。2GB以上が激しく理想的だが。仮想化機能も機能させるのなら4GBは必要だろう。
  • DockerコンテナイメージはIntel系CPUを前提にしているものが多いようなので、極力手間を避けるというぐうたらな観点からは、可能ならARM系CPUのものは避け、Intel系CPUを採用しているものがよい。

NASには全く疎いので以下で概況を知る。

人気・売上げランキングを見ると、DTCP-IPに対応したものが上位に入るのが日本の特殊事情。少し意外に思ったのがセキュリティービデオ監視機能をプッシュしている製品が多いこと。

QNAP TS-231+

QNAP TS-231+

低価格帯だと2万円強のQNAP TS-231+価格.comで最低価格¥23,490)か。ARMデュアルコアCPUでメモリ1GB。Dockerサポート。この価格帯でメモリ1GBのは他に見当たらない。DTCP-IPは全くサポートしない。使用できるアプリAmazon.co.jpでQNAP(キューナップ) TurboNAS デュアルコア1.4GHzCPU 1GBメモリ 2ベイ 2年保証 DTCP-IP対応NAS TS-231+は24,645円。こちらはDTCP-IP対応であると謳っているが本当だろうか。BubbleUPnP Serverをインストールする方法テクニカルサポート

ネットギア(Netgear)社ReadyNAS 212 2ベイ ユニファイド ネットワークストレージ(ベアボーンタイプ)RN21200 (定価100,000 円)実勢価格は34,000円程度。CPU: ARM Cortex A15 クアッドコア 1.4GHz プロセッサー、メモリ: 2GB。なんでこれを候補として検討したか忘れてしまった…。

NASの範疇を超えた機能を持つものも多く、HDMI出力機能を持つものもある。”【清水理史の「イニシャルB」】 NASでも追求された“ASUSらしさ” 2万円台で買えるHDMI付きAtom搭載NAS ASUSTOR「AS202TE」 – INTERNET Watch Watch“を読み、価格も3万円を切るというAS202TEに興味を持ったが、もう販売されてない。

 Asustor AS3102T

Asustor AS3102T

同じAsustor製品で同路線で後継機とみなせるのがAS3102T価格.comでの最安値は3万円弱Amazon | ASUSTOR NAS 2-Bay Intel Celeron Dual-Core 2GB DDR3L GbE x1 USB 3.0 x 3 3年保証 AS3102T 3万円強。CPU: Intel Celeron 1.6GHz Dual-Core (burst up to 2.08~2.48GHz) Processor, メモリ: 2GB DDR3L (拡張できません)が大きなポイント。「ハードウェアアクセラレーションエンジン対応フォーマット:H.264(AVC)、 H.265 (HEVC)、 MPEG-4 Part2、MPEG-2、VC-1」もいいっちゃぁいいが利用することがあるか。Remote Control $35Docker(ただしベータ版)Virtual Boxサポート DTCP+ムーブについてのライセンスは無料でバンドル。ただし、DTCP-IPで著作権保護されたコンテンツを自力で再生する機能はない。片手落ちに感じられる。クアッドコアCPUに増強したAS3202T – ASUSTOR NASもあるが価格.com 4万円近くに跳ね上がる。参照:”Asustor AS3102T 2-bay NAS Review | techPowerUp“。

前提として、もしビデオ出力機能を使うとしたら今後購入予定のTVに接続して使う。この組み合わせでは主にDLNAのDMP、DMR機能を使うであろう(NASにはもともとDMS機能があるので)。具体的にはKodi(旧XMBC)、同じくXMBC派生のPlexなどが候補になるだろう。

さて、ここで今まで自分が認識してこなかったことだが、DLNAのDMP機能は最近のテレビにはもう組み込みになっているのが普通になっている(参考: “大型テレビ?” )。それの出来次第だが、KodiやPlexに及ばないとしても使える程度であるのなら、NASのビデオ出力機能は自分にはさほど重要ではなくなる。もちろん、DMSの機能としてメディアのトランスコーディングなどが高速にできるのならそれに越したことはないが、かといって必須かというとそうとはならないだろうと想像する。

自分はiOS派ではなくAndroid派なので、タブレットもスマホも皆Androidだ。AndroidアプリではGoogle Cast機能でGoogle Castレシーバにキャストできるアプリが増えた。問題はGoogle Castレシーバとしては、Chromecastと、Android TVを搭載したテレビしか現実にはない、ということだ。AirPlayレシーバーはアプリの形でも物理的機器としてもApple純正以外のものが多数存在するのとここは大きく違う。かつてはGoogle Castレシーバ・エミュレータが存在したようだが、その1つCast Receiver app for Androidの説明によると、Google Play Services 6.5でセキュリティーが厳しくなってそれらエミュレータは無用の長物とかしてしまったのだそうな。ただし、このアプリだけに限ればXposedモジュールでその制限を回避できる模様。

ビデオ出力の機能を持つNASが、今後Google Castレシーバとしての役目を果たせるようになる可能性は非常に薄い。Android TVを搭載したテレビを選択しなければ、Google Castを使用したければChromecastを購入するしかない。TVと別にChromecastを入手するのには余分費用が発生するが、Chromecastでれば、Android TVに比べて頻繁に、かつ長期に渡ってアップデートされるであろうと期待できる、という利点があるにはある。

…というふうに考えてきて、一旦は以下のように決めた。

  • TVにスマートTV機能(特にGoogle Castレシーバとして動作する)を与えるのは外付けChromecastで、
  • なのでTVにはスマートTV機能は一切求めない、
  • NASとしてはChromecastを通じてコンテンツを提供できるようになっていれればいいので、HDMI出力は不要。

QNAP TS-231+でこの条件は満たせるので、それを注文する寸前まで行っていながら、心変わりしてAsustor AS3102Tを代わりに注文してしまった…。デュアルコアCPUではなくクアッドコアCPUを搭載した上位機種AS3202Tは価格差が大きく諦めた。なぜ心変わりしたのかもうはっきり覚えていないが、Intel CPUと2GBメモリを取ったのだと思う。

時間が順序してしまったが、Asustor AS3102Tを入手してから以下の記事を既に書いている:

AST3102Tに内蔵するHDDの選択にも気を使った


以下雑多なメモ。

知られざるNASアプリの世界 2016年 記事一覧

「アニソンはハイレゾだとひと味違う?」 “ASUSのNAS”をオーディオプレイヤーにするイベント実施 – AKIBA PC Hotline!

【レビュー】Amazon「プライム・フォト」×Synology NASで最強の写真保存環境を構築する ~PC不要でNASとクラウドを自動同期。容量無制限、ランニングコスト不要 – PC Watch

仕事で使うNAS 第5回:NASで効率的なプロジェクト管理を実現する方法 (1/4) – ITmedia PC USER

“昔のPC”をNASに保存、さらにリモートでも使用可能に! – 窓の杜

7月29日を乗り越えろ:いつでもWindows 10に無償アップグレードできる環境を構築する――バックアップ編 (1/3) – ITmedia PC USER

特別企画:とある写真家の超本格派NAS「QNAP」実践編 – デジカメ Watch

Windows 10でNASの共有フォルダーにアクセスできない時の接続方法 | できるネット

BubbleUPnP Server

Universal Media Server

Auの音声回線契約とデータ・シェアを組んでいるタブレット用データ回線を解約

Auの用語では「デュアル」が音声回線、「シングル」がデータ専用回線を指すが、ここでは普通の用語を使う。

9月上旬にAuショップにてMNPで音声回線2回線を契約した。端末はどちらもGratina 4G KYF31製造元の京セラのサイト)。それぞれにデータシェアを組んだデータ回線も契約した。端末はタブレットQua Tab 02 HWT31。HWT31については、ブートローダアンロックと(普通の)ルート化Magiskによるルート化SIMロック解除をやってみた。

2016年9月に契約したAuの音声回線2本およびデータ回線2本

2016年9月に契約したAuの音声回線2本およびデータ回線2本

表(オリジナルへのリンク)にもまとめたが、これらの契約は以下の通りだった。V1, V2は音声回線、D1, D2はデータ回線。

契約したショップとの約束で月をまたいで10月に入るまで何も変更しなかったが、最終的に達成したいことは以下の通り。

後者がこの話のもっとも慎重にやらなければならない点。というのは、迂闊にシェアを組む音声回線側の契約内容を変更してしまうと、3年縛りのタブレットプラン ds(3年契約/L)の適用を受けられなくなり、その解除料金が発生する(約1万円)。この解除料金自身はこれらデータ回線契約を縛りを満了せずに解約する以上は避けられないのだが、問題はその次。タブレットプラン ds(3年契約/L)が適用されなくなった段階で、自動的に誰でも割シングルつきのLTEフラット for Tab/Tab(L)が代わりに適用される。最終的に縛り期間満了以前にデータ回線契約解約すると、このLTEフラット for Tab/Tab(L)の解除料金もかかる(同じく約1万円)、という二重解除料金課金が起こりうる。これは避けなければならない。

実際どうするかは、電話番号157のAuカスタマーサービスの方もよくわかっておられなくて情報が錯綜し混乱したが、結局最寄りのAuショップで以下の手順で行った。

  1. V1-D1, V2-D2のシェアを外す。ちょっと記憶が不確かだが、シェアを外さないと、D1, D2(V1, V2もだったか?)の契約を変更できないため。この段階で上で述べたようにD1, D2については自動的にタブレットプラン ds(3年契約/L)が廃止され、誰でも割シングルつきのLTEフラット for Tab/Tab(L)が代わりに適用される。ただし、その適用が翌月11月から、というのがポイントで、このあとすぐ(10月中に)回線契約そのものを解約してしまうので、LTEフラット for Tab/Tab(L)の解除料は課金しようがない。この点ショップの担当者の方がセンターに何度も確認してくれたらしい。
  2. D1, D2の回線契約の解約。タブレットプラン ds(3年契約/L)の解除料が発生する。
  3. V1, V2のデータ通信関係の契約・オプションを解約。音声プランをVKプランSに変更。

最終的には上に述べたような手順となったが、後で下線以下に書いた策を一旦は弄した。これは”auでタブレットを解約するとき、解約日を間違えると悲惨な目に遭うという実例 | AST21 ( au MeMO Pad8 ) / Qua Tab 01 (KTY31) / Qua Tab PX (LGT31) まとめ“を参照し、データシェアに関して以下のニ点に着目したものであったが、これが自分のケースには適用できなかった。

自分のケースに適用できなかった最大の理由がシェアの組み替えができなかったこと。それはデータ回線側につけられていたスマホセット割による制約タブレットプラン ds(3年契約/L)については「スマホセット割による割引はありません」と言うことだったので、それってどういう割引???と不思議に思っていたが、要はシェアの組み替えを防ぐための制約だった模様。Auさん、抜かりがないですな。お見事。なので、シェアの組み替えを利用する部分はアウト。

さらに、”auでタブレットを解約するとき、解約日を間違えると…“の骨子は、契約しようと思っている回線の割引をフルに受けるには、1日づけで解約しろ、ということ。1日づけ解約した場合その月の料金は発生しない、ということだったが、これが今も当てはまることは何度もAuのカスタマーサービスで確認した(ただし、そうでなくなるようシステムを改修中とのこと)。自分の場合は、シェアを組んでいる音声回線のこともあるので、より複雑だった。

11月1日にD1, D2を解約すると想定すると以下の二通りが考えられた。

  1. 10月中にV1, V2の契約を音声のみに。D1, D2については自動的にタブレットプラン ds(3年契約/L)が外れ、LTEフラット for Tab/Tab(L)が適用(11月から)。しかしこの段階でタブレットプラン ds(3年契約/L)の解除料金発生。11月1日にD1, D2を解約した段階で、LTEフラット for Tab/Tab(L)の解除料金発生。つまり、もっとも避けるべき二重解除料金課金が起こる。
  2. V1, V2の5,000円/月のデータ定額5 (VK)から3,500円/月のデータ定額2 (VK)に変更。翌11月より適用。データ定額2 (VK)でもタブレットプラン ds(3年契約)/(3年契約/L)の適用要件を満たすので極力費用を落とすため。11月1日にD1, D2を解約。タブレットプラン ds(3年契約/L)の解除料金発生。これに合わせてV1, V2のプランを変更しても適用は翌月からなので、11月はカケホ(電話カケ放題プラン/VK)+データ定額2 (VK)の料金が発生。

実際に行ったこととB.との得失を比較。

なので、まぁ、妥当な判断だったんではないかと。

あ~、めんど。音声回線だけの契約に行ったショップで、一括0円でタブレットQua Tab 02 HWT31どうですか、キャッシュバック付きで、というのにホイホイと乗ってしまった結果だが、後始末にこれだけ時間かかるとなると本当にいい話だったのか疑問になってくる。


以下実際には実現できなかった絵に描いた餅。

方針:

  • 2本のデータ回線とシェアを組む音声回線が別々にある状態から、一本化する。これにより音声回線が1本シェアから外れるが(V2)、この回線についてはシェアを組むための制約がなくなり、自由に料金プランが変更できるようになる。
  • シェアを組み続ける音声回線(V1)についても、データ回線(D1, D2)がタブレットプラン ds(3年契約/L)から外れないことに注意しながらより安価なプランに変更する。
  • 現Auシステムでは1日付けで解約した場合その月の料金はかからないということなので、1日付けでデータ回線(D1, D2)を解約する。
  • データ回線(D1, D2)の解約後は、それらとシェアを組んでいた音声回線(V1)についても自由に料金プランが変更できる。

10月中:

11月1日:

  • D1, D2とも解約。現Auシステムではこれらについて11月分の料金は発生しない。

11月中:


以下自分の考えを整理するために書いた雑記:

音声回線の契約内容の主要な点は以下の通り:

料金プラン

割引

  • 誰でも割
  • 家族割
  • 「分け合い」コース
  • スマホセット割←タブレット側につく割引 (by ウエダさん♀@157 10/11 4:50pm)
  • タブレットセット割(割引期間:2016年9月~2016年11月)←スマホ側につく割引 (by ウエダさん♀)

上記音声回線とデータシェアを組んでいたデータ回線の契約内容の主要な点は以下の通り:

料金プラン

割引

  • スマホセット割

上には含めなかったが、契約時のの1つの条件としてスマートバリュー加入があった。その2ヶ月ほど前にeo光のサービスを利用できないことがわかっていたが、再度加入申し込みを求められた。したがったが、1週間もしないうちに、サービスが提供できない旨の連絡があった。

 

auでタブレットを解約するとき、解約日を間違えると悲惨な目に遭うという実例 | AST21 ( au MeMO Pad8 ) / Qua Tab 01 (KTY31) / Qua Tab PX (LGT31) まとめ“を参考に11月1日に解約するのが前提。

10月10日にナカシマさん♂@Auカスタマーサービス157とお話したときは、音声回線の方でデータ定額プランを外した段階でシェアが外れるため強制的にデータ回線側に定額データプランが付けられる、という話だった。しかし、翌10月11日 11:50amにネギシさん♀@Auカスタマーサービス157とお話したときは、それは正しくない、それは起こらない、データ通信に関しては従量制に移行するだけ、と確約を頂いた。 結局、ウエダさん♀@157 10/11 4:50pmによれば、ナカシマさん♂が正しかった。 “au タブレットプラン ds(2年/3年契約)のまとめ“にある通りで、うかつにシェアを外してしまうと、データ回線側でまず3年縛りプランの解除料がかかる上に、自動的に別のデータ定額が勝手につけられる。その後解約すると、その2年縛りの解除料金がかかる。二重の解除料金を食らうわけで最悪な結果になる。

AsustorのNAS AS3102TでUSB DACを使用

AsustorのNAS AS3102Tを中心にメディアセンターを構成しようかと模索中。赤丸内はNASに繋いだUSB DAC。

AsustorのNAS AS3102Tを中心にメディアセンターを構成しようかと模索中。赤丸内はNASに繋いだUSB DAC。

自分所有のUSB DACの情報をまとめたが、これをこのほど購入したAsustor社製NAS AS3102Tで使うためには若干の工夫が必要だった。

bisonicr keep walking. : ASUSTORを高性能ミュージックサーバ/HDDオーディオプレーヤーとして活用する“を参照したが、NASに自分のUSB DACを繋いでも、Hi-Res Playerアプリでオーディオ出力デバイスとしてそれが選択肢になることはなかった。自分のDACはそもそもPCM2704を採用しサンプリングレート48KHzまでにしか対応していない、いわばエントリーモデルなので、 “Hi-Res” 対応でない、と判断されてしまったのかもしれない。

SoundsGoodアプリを設定して、USB DACにオーディオ出力するようにする

SoundsGoodアプリを設定して、HDMIではなく、USB DACにオーディオ出力するようにする

SoundsGoodアプリでは図にあるように設定することで無事USB DAC経由の出力ができた。

bisonicr keep walking. : 高機能・低価格NAS「ASUSTOR AS3102T」のメディア機能を確認する“では以下のような記述がある:

下位モデル(非Intel製CPU)を含めて、すべてのASUSTORでApple「AirPlay」やGoogle「Chromecast」経由でのビデオ(LooksGood)や音楽(SoundsGood)の再生はもちろんサポートしています。これら用のiOS/Androidアプリ(AiVideoアプリとAiMusicアプリ)もあり、リアルタイムでのトランスコーディング再生が可能です。

ここらへんはまだ自分でしっかり確認できてないのだが、本当にGoogle Castに対応しているのだろうか…?まぁおいおい確認していこう。

↑多分理解できた。AS3102T上ではLeapcast: ChromeCast emulation app for any deviceが走っている。これはPythonで書かれたスクリプトでChromecast(あるいはGoogle Castレシーバ)をエミュレートするものであったが、Google側の仕様変更によりもはや使えなくなっている。

USB DACをAS3102Tに繋いでいても、何もしないとKodiではオーディオ出力先の選択肢には現れない

USB DACをAS3102Tに繋いでいても、何もしないとKodiではオーディオ出力先の選択肢には現れない

さて、主にDLNA/UPnPを利用してAS3102Tのメディア機能を利用するつもりをしているので、Kodiがいわばこれに関する本命アプリ。これからUSB DAC経由でオーディオを出力させるのはSettingsメニューで設定すればいい(S/PIDFでデジタル出力するか、RCA端子でアナログ出力するかを区別して選択できる)。ただ、この設定がNASの再起動をまたがって保存されない模様。Kodiで再度設定しようとすると、USB DACが選択肢にない。SoundsGoodでUSB DACを再度選択し、SoundsGoodでオーディオ再生が行われていないことを確認した上で再度KodiのSettingsメニューを見ると、USB DACが選択できる状態になっている。

SoundsGoodでUSB DACを使うよう設定した後には、Kodiでもそれがオーディオ出力先として選択肢にあがる

SoundsGoodでUSB DACを使うよう設定した後には、Kodiでもそれがオーディオ出力先として選択肢にあがる

最終的には「普通に」オーディオもHDMI出力させることになるであろうから、こういったことはいずれどうでもよくなるんだろうとは思うが…。

追記:ディスプレイを繋いでない状態では再起動するごとにこのサウンド・デバイスの設定がリセットされてたが、USB DACをAndroidメディア・プレーヤーで使ったときと同様、HDMI->VGAの変換アダプタを挿しておくだけで、その先にVGAディスプレイを繋いでいなくても音声出力先をDACに固定することができた。←勘違い。どうやらこの方法はうまくいかない模様。

udev関係かね?ぱっと見システム本体のと複数のアプリのとが重複してインストールされているように思えるが…。

root@AS3102T:/ # find . -name "*udev*" -print
./volume1/home/yasuro/miraclecast/miraclecast/res/write-udev-rule.sh
./volume1/.@plugins/AppCentral/xorg/usr/bin/udevadm
./volume1/.@plugins/AppCentral/xorg/usr/lib/udev
./volume1/.@plugins/AppCentral/xorg/usr/lib/udev/rules.d.system/95-udev-late.rules
./volume1/.@plugins/AppCentral/xorg/usr/lib/udev/rules.d.system/50-udev-default.rules
./volume1/.@plugins/AppCentral/xorg/usr/lib/libgudev-1.0.so
./volume1/.@plugins/AppCentral/xorg/usr/lib/libudev.so
./volume1/.@plugins/AppCentral/xorg/usr/lib/libudev.so.1
./volume1/.@plugins/AppCentral/xorg/usr/lib/libudev.so.1.6.2
./volume1/.@plugins/AppCentral/xorg/usr/lib/libgudev-1.0.so.0.2.0
./volume1/.@plugins/AppCentral/xorg/usr/lib/libgudev-1.0.so.0
./volume1/.@plugins/AppCentral/xorg/usr/sbin/udevadm                                                           
./volume1/.@plugins/AppCentral/xorg/usr/sbin/udevd                                                             
./volume1/.@plugins/AppCentral/xorg/usr/share/fonts/X11/misc/cudevnag12.pcf.gz                                 
./volume1/.@plugins/AppCentral/xorg/etc/init.d/S10udev                                                         
./volume1/.@plugins/AppCentral/xorg/etc/udev                                                                   
./volume1/.@plugins/AppCentral/xorg/etc/udev/udev.conf                                                         
./volume1/.@plugins/AppCentral/looksgood/usr/lib/vlc/plugins/services_discovery/libudev_plugin.so              
./volume1/.@plugins/AppCentral/looksgood/lib/python2.7/site-packages/pyudev                                    
./volume1/.@plugins/AppCentral/looksgood/lib/python2.7/site-packages/pyudev/_libudev.py                        
./volume1/.@plugins/AppCentral/looksgood/lib/python2.7/site-packages/pyudev/_libudev.pyc                       
./volume1/.@plugins/AppCentral/looksgood/lib/python2.7/site-packages/pyudev-0.16.1-py2.7.egg-info              
./volume1/.@plugins/AppCentral/docker/lib/udev                                                                 
./volume1/.@plugins/AppCentral/docker/lib/libudev.so.1                                                         
./volume1/.@plugins/AppCentral/docker/lib/libudev.so.1.3.5                                                     
./volume1/.@plugins/AppCentral/soundsgood/lib/pulse-4.0/modules/module-udev-detect.so                          
./volume1/.@plugins/AppCentral/hires-player/lib/pulse-4.0/modules/module-udev-detect.so                        
./volume1/.@plugins/lib/libudev.so.1                                                                           
./volume1/.@plugins/lib/libudev.so.1.3.5                                                                       
./share/home/yasuro/miraclecast/miraclecast/res/write-udev-rule.sh                                             
./usr/lib/libudev.so.0                                                                                         
./usr/lib/libudev.so.0.13.1                                                                                    
find: ‘./proc/24668’: No such file or directory                                                                
find: ‘./proc/24669’: No such file or directory                                                                
find: ‘./proc/24670’: No such file or directory                                                                
find: ‘./proc/24671’: No such file or directory                                                                
find: ‘./proc/24672’: No such file or directory                                                                
find: ‘./proc/24673’: No such file or directory                                                                
find: ‘./proc/24674’: No such file or directory                                                                
./run/udev                                                                                                     
root@AS3102T:/ #

AsustorのNASでEntware-ngを使う

Asustor社製NAS AS3102Tを購入した。AsustorのNASのOS ADMで採用されているパッケージ管理システムは何なのだろう?

ASUSTOR Community Forum • View topic – [APKG Entware-ng] Total replace Astware & Optware include 64 bits version“でEntware-ngパッケージ管理システム(コマンドopkg)が”Astware”と”Optware“を完全に置き換えられると言っている。自分のAST3102T(ADM 2.6.5R9N1)で見てみると/usr/bin/apkgコマンドがあるので、これでAstwareが管理されているのだろう。Optwareはipkgコマンドで管理するようだが、findコマンドで探しても見つからない。

上記スレッドで質問してみるとapkgコマンドはAstwareの管理をするものではなく、ADM用「アプリ」の管理をするものだとのこと(参考:”App Central: Developer’s Guide for Apkg 2.0“)。AstwareはEntware-ng同様opkgコマンドで管理するものだったよう。なぜ自分のAST3102TにこのAstwareがないようであるのかはわからない。

以前はともかく今はApp CentralにEntware-ngは登録されているので、それで簡単にEntware-ngをインストールできる。

インストール直後の状態は以下の通り。

admin@AS3102T-693D:/volume1/home/admin $ opkg list-installed                                                                                
entware-opt - 222108-2                                                                                                                      
findutils - 4.6.0-1                                                                                                                         
ldconfig - 2.23-5                                                                                                                           
libc - 2.23-5                                                                                                                               
libgcc - 5.4.0-5                                                                                                                            
libpthread - 2.23-5                                                                                                                         
librt - 2.23-5                                                                                                                              
libssp - 5.4.0-5                                                                                                                            
libstdcpp - 5.4.0-5                                                                                                                         
locales - 2.23-5                                                                                                                            
terminfo - 6.0-1b

ちなみに、Entware-ngはCoretex-A7以降のCPUを搭載するroot化済みのAndroidデバイスにもインストールできるようで…。

自分所有のUSB DAC

AsustorのNAS AS3102Tを中心にメディアセンターを構成しようかと模索中。赤丸内はNASに繋いだUSB DAC。

AsustorのNAS AS3102Tを中心にメディアセンターを構成しようかと模索中。赤丸内はNASに繋いだUSB DAC。

自分所有のUSB DACについてまとめる。購入したときにブログ記事を書いたのだが、そのブログホスティングサービス@WORDが閉鎖してしまったので、そのときまとめていた情報がぱっと手に入らないため。

2013年6月8日にAliExpresso.comで$26.20で注文。同じURLを今アクセスすると”ZHILAI H5 HIFI USB to S/PDIF Converter USB DAC PCM2704 black color”が表示されるが、自分が入手したのはMuseブランドのもので、ケースに刻まれているmuse-audio.comにアクセスすると、ivoxaudio.comにリダイレクトされる。そのサイト上にあるProfessional HI-END desktop audio manufacturer, provide OEM, ODM MUSE D1 PCM2704 USB DAC AMP Amplifier Audio Optical Coaxial RCA Headphoneが自分の所持するものと同じだと思われる。”PCオーディオ入門用単体USB DACにMUSE Audio PCM2704音質も良く侮れない中華DACレビュー | オーディオブログ耳神様“なんてレビュー記事もある。

サンスイのアンプAU-α607DR

サンスイのアンプAU-α607DR

Androidメディアプレーヤーを購入していたので、それと組み合わせて使うつもりだったが、結局AsustorのNAS AS3102Tを入手したので、それを中心にメディアセンターを構成する方法を模索する上で使ってみた(写真)。デジタル出力としてS/PDIF出力(”Toslink”とも)と同軸出力があるので、前者をデジタル入力端子のあるミニコンポに繋いでみている。RCAのアナログ出力もあるので、サンスイのアンプAU-α607DRにはそちらを繋いでみている。これらオーディオシステムは全て父の遺品。

AS3102TにはHDMI出力が用意されているので、テスト目的に、今どきめずらしいであろうVGAのCRTディスプレイをHDMI->VGA変換アダプタを介して繋いでいる(画面に表示されているのはKodi)が、最終的にはこれは普通の液晶テレビに置き換えられる。そのときにはUSB DACを使用するのではなく、ARC対応のHDMIからオーディオを抽出するアダプタ(場合によってはセレクタ)を利用することになるだろうと今は思ってる。

メモ:しばらく使ってなかったDACがきちんと動作するかを確認するため、Androidメディアプレーヤーに繋いで、以前併用していたS/PDIF入力端子を持つミニコンポ(今回使用したのとは違う)でテストしてみた。これで苦労したのが、Androidメディアプレーヤーの音声出力先をUSB_AUDIO0に固定すること。「設定」メニューで何度設定しても、HDMIに戻ってしまう。

どうもこれはAndroidメディアプレーヤーの操作をWebkeyという画面共有アプリ(他の機能もあり)を利用して、他のPCからブラウザを使ってしていており、HDMI出力端子に何も繋いでいなかったのが理由のようで、HDMI->VGAの変換アダプタを挿しておくだけで、その先にVGAディスプレイを繋いでいなくても音声出力先をDACに固定することができた。

AsustorのNAS AS3102Tは標準でHDMI-CECに対応していないんだそうで

内容は”最新のNAS asustor AS3102Tは標準でHDMI-CECに対応していない“にある通り。基本自分が思い出せるようにするためだけの記事。

CEC : Using Your TV Remote to Control Kodi on ASUSTOR NAS“で、AsustorがSupport Centerで公式に同趣旨のことを書いているので、望みはないのだろう。

CECなんて初耳。”How to Enable HDMI-CEC on Your TV, and Why You Should“とか”Consumer Electronics Control – Wikipedia“とかを読んでも今ひとつ実感がわかない。ただ、前者の記事によると、テレビでこの機能を持つものも、デフォルトでは無効化されているので利用したいのであれば自分で有効化しないといけない、ということはわかった。

AS3102TとテレビをHDMIケーブルと繋いで、CEC機能を利用したいのなら、別途Pulse-Eight社のUSB – CEC Adapterを$50ほどで入手するしかなさそうだ。これも冒頭の記事の受け売り。ただ、このデバイスはKodi(旧XMBC)に特化しているので、Kodiを使わないのなら無用の長物となろう。自分がパラパラと調べてみたい範囲でもそれ以外の方法は現時点ではなさそうだった。”CEC – Official Kodi Wiki“には特にKodiとの連携を念頭にCECが動作するTV機種が列挙されている。

Consumer Electronics Control – Wikipedia” は、 “CEC wiring is mandatory, although implementation of CEC in a product is optional.” としている。それの典拠としているHDMI 1.3aの規格書でも、例えば4.2.10 CEC Lineに “The following line characteristics are required for all products, including those that do not implement the CEC protocol. ” という記載がある。つまり、特にCECについて何もしないHDMIセレクタのような製品でも、CEC信号はあればそのまま通してくれると考えてよさそうだ。ARCはHDMI 1.4で導入されたようなので、この規格書にはCECとARCとの絡みについては記載がない。

Media-Packアプリは “CEC device drivers for USB HDMI CEC adapters (e.g. pulse eight) for controlling Kodi with TV remote controls” を含むという。

Asustor自身が以下のようなビデオ・チュートリアルを用意している。

自宅内LANの整理

NASを購入したのはいいが、そのままパッと自宅内LAN内に設置できない。それができるよう(またその他の懸案事項の解消のため)自宅LANを整理する必要がある。

たかだか一戸建ての家のLANになんでそんなにブリッジがあるんだ、と思う方へ。鉄筋コンクリートは意外なほどwifi電波を通してくれないんですよ。それでずるずるとケーブルを引き回す羽目になったわけです。

目的:

  • NAS AS3102Tを極力早い段階で使えるようにする。既存ルーターWZR-HP-AG300Hに接続し、簡易NASとして使ってきた外付けUSB 2.0 HDDはNASに接続し直す。
  • ONU一体型ひかり電話対応ホームゲートウェイGE-ONU PR-500MIでPPPoE接続をする。今までPPPoE接続は、PPPoEパススルーでPR-500MIにぶら下げた既存ルーターWZR-HP-AG300Hで行ってきた。WZR-HP-AG300Hを使ってきた理由は、以前からDHCPの固定払い出しをこれでやってきて、これをPR-500MIないしに他のDHCPサーバーにさせるのが面倒だったから。
  • DHCP固定払い出しをPR-500MIではなく、他のルーターにさせる。LANが成立するための機器の数を極力小さく抑える、という観点からはPR-500MIに極力機能を集約するのがよいのだろうが、一方、フレッツ光を利用しなくなったときのことを考えるとPR-500MIに依存していないほうが望ましいように思える。もっとも実際は、一旦はフレッツ光からeo光へ移行しようとして結局できなかったりしているので、どちらとも言い切れないところ。
  • LAN内でブリッジとして使ってきた100Mbps対応の複数のルータを全て1Gbps対応のルータに置き換え、ホームLAN全体でギガビット対応にする。
  • レンタルしつつ使ってきてこなかったPR-500MI11ac対応無線LANカードを使用する。
  • ステルスSSIDに移行する。
  • DHCPの払い出しスキームの見直し。

注意点:

ちょっとしたサーバー用途に使用してきたTP-Link TL-WR703N

ちょっとしたサーバー用途に使用してきたTP-Link TL-WR703N

手順:

  1. WG1200HSブリッジとして使用できるよう設定した上で、現在単にコネクタで2本のUTPケーブルを繋いでいる箇所(1階)に挿入する。これはNASが極力早い段階で使えるようにするための暫定的措置で、後でWG1200HSWZR-HP-AG300Hに置き換えられ、WG1200HS自身は別の場所で活躍することになる。
  2. WG1200HSにぶら下げる形でNAS AS3102TをLANに導入。単に繋げ換えるだけで済むのであれば、WZR-HP-AG300Hに接続し、簡易NASとして使ってきた外付けUSB 2.0 HDDをこのNASに接続し直す。そしてこの外付けHDDの中身で重要なものをNASにバックアップする。
  3. WZR-HP-AG300Hが現在担っているDHCPサーバの機能をTL-WR703Nに移行する。固定払い出しの設定を移すことがキモになるが、DD-WRTの設定はバックアップすることができるがバイナリ・フォーマットのようで扱いにくい。パッと調べた範囲では問題の箇所だけテキストで簡単に取り出せそうもない(”Static DHCP – DD-WRT Wiki“)。一方、TL-WR703Nで走っているOpenWrtはDHCPの固定払い出し設定はテキストファイルで指定する模様。そもそもそれほど数はないので、WZR-HP-AG300HのWeb UI画面からテキストで取り出して、ちょっとした変換でOpenWrtの設定ファイルを作り出すことができるだろう。WZR-HP-AG300HのDHCP機能を切り、TL-WR703Nでは入れ、それできちんとインターネット接続ができることを確認。→このときの苦労談:”OpenWrt上でのDnsmasqの設定
  4. WZR-HP-AG300Hが現在担っているPPPoE接続機能をGE-ONU PR-500MIに移す。PR-500MIの設定、UTPケーブルの繋ぎ換えが必要。PR-500MIでDHCP機能が切られていることを確認してから、インターネット接続ができることを確認。この段階でWZR-HP-AG300HはLANから外れる。
  5. PR-500MI11ac対応無線LANカードを挿し、使用できるようにする。参考:”PR-500MI Wi-Fi設定方法“、”PR-500MI Wi-Fiネットワーク設定変更方法
  6. WZR-HP-AG300Hがブリッジとして動作するよう設定を施してから、それで1階のWG1200HSを置き換える。UTPケーブルの付け替えが必要。また、その(UTPケーブル1本分)上流でeo光のルーターをブリッジとして利用しており、それにデスクトップPCがぶら下がっているが、このルーターを抜き、それが繋げていた2本のUTPケーブルは1.で余ったコネクタで繋ぐ。デスクトップPCはWZR-HP-AG300Hにぶら下がるようUTPケーブルを繋ぎ換える。また、このeo光のルーターにはFONルータFonera Simplもぶら下がっている。これはwifi接続しかできないIPプリンタのためであるが、WZR-HP-AG300Hが近くにあることでこれは不要になる。ただし、それでもきちんとプリントできることを確認する必要あり。この段階でWG1200HSはLANから外れる。
  7. 現在仕事部屋でブリッジとして使っているAterm WR8166N(元々ドコモのHome Wifiサービス用機器として入手; 「機能詳細ガイド」)を上のステップで余ったWG1200HSで置き換える。WR8166N今年になってファームウェアの新しい版がリリースされたようなので、更新してから置き換えをするのもよかろう。この段階でとりあえずLAN全体のギガビット化と、NASが使えるように、という当初の目的は達成される。
  8. 寝室にあるPR-500MIから仕事部屋までは薄型UTPケーブルを床に這わせているが、これを天井近くを這うように変える。
  9. TL-WR703Nが果たしているサーバ機能(DHCPを含む)をNASに移してしまうのもよいかもしれない。
  10. WZR-HP-AG300Hには、余裕ができたときにDD-WRTを載せてもよいかもしれない。
  11. 将来的にはステルスSSID化、DHCP固定払い出しスキームの見直しもしたい。

3. + 4. の代替策として、以下も考えられる。

  1. WZR-HP-AG300Hが現在担っているPPPoE接続機能をGE-ONU PR-500MIに移す。PR-500MIの設定が必要。UTPケーブルの繋ぎ換えは必要ない。同時に、WZR-HP-AG300Hをブリッジモードに変更する*PR-500MIでDHCP機能が切られていることを確認してから、インターネット接続ができることを確認。
  2. WZR-HP-AG300Hが担っているDHCPサーバの機能をTL-WR703(あるいはNAS)に移行する。固定払い出しの設定を移すことがキモになるが、DD-WRTの設定はバックアップすることができるがバイナリ・フォーマットのようで扱いにくい。パッと調べた範囲では問題の箇所だけテキストで簡単に取り出せそうもない(”Static DHCP – DD-WRT Wiki“)。一方、TL-WR703で走っているOpenWrtはDHCPの固定払い出し設定はテキストファイルで指定する模様。そもそもそれほど数はないので、WZR-HP-AG300HのWeb UI画面からテキストで取り出して、ちょっとした変換でOpenWrtの設定ファイルを作り出すことができるだろう。WZR-HP-AG300HはLANから取り外し(そのため今までWZR-HP-AG300HのLANポートに刺さっていたUTPケーブルは全てPR-500MIに挿し替える必要あり)、TL-WR703でDHCP機能を入れ、それできちんとインターネット接続ができることを確認。この段階でWZR-HP-AG300HはLANから外れる。

*この方法の問題点は、WZR-HP-AG300Hブリッジモードに変更した際、自動的にDHCPサーバー機能が無効になる、とされていること。自動的に無効になったとしても手動で再度有効にできるのであれば問題ないが、そうでなければこの手順ではうまくいかない。

バッファロー無線ルーターWZR-HP-AG300HのDD-WRT化

バッファロー無線LANルーターWZR-HP-AG300H

バッファロー無線LANルーターWZR-HP-AG300H

自宅でもう何年か使ってきたバッファロー社の無線ルーターWZR-HP-AG300HはいずれOpenWrt化(参考:”WZR-HP-AG300HをOpenWrtで再利用 | fefcc.net“)ないしDD-WRT化(参考:”BUFFALO WZR-600DHP“←WZR-HP-AG300Hに、ハードウェアは同じで若干機能が追加された後継機WZR-600DHPのファームウェアを載せる話)していろんなことをさせようと考えていたが、それは重要ではなくなった。サーバー目的はこれからは主にNASにさせるのだから。

10/17時点で最新のファームウェアは2016年10月3日づけで公開された19154c

10/17時点で最新のファームウェアは2016年10月3日づけで公開された19154c

ただ、せっかくバッファロー機であるのでDD-WRTは載せておくといいかも。”BUFFALO WZR-600DHP“にも説明のあるように、米Buffaloのダウンロードサイトでは、”WZR-HP-AG300H”で検索する場合と”WZR-600DHP”で検索する場合で提示されるDD-WRTのファームウェアが違う。この著者は前者を勧めているが自分にどちらが向いているかはやってみないとわからない。”DD-WRTまとめwiki – World Wide版Professionalファームウェア“ではDD-WRTのProfessional版をインストールする際にはU-BOOTの環境変数の変更が必要だ、としているが、”BUFFALO WZR-600DHP“ではデバッグモードから書き換えをするときは必要ない、としている。

現時点(10月17日)ではWZR-HP-AG300H用DD-WRTとして提供されているのは19154c版のDD-Wrt professional firmware(図)。”Buffalo WZR-HP-AG300H – DD-WRT Wiki“では、 “If you have 19154 Buffalo Pro DD-WRT on the WZR-HP-AG300H, you will have to flash using TFTP as buffalo installed a check in 19154 and perhaps future buffalo pro builds.” と警告しているので、一旦この19154c版をインストールしてしまうと、その後のアップグレードは手間になるかもしれない。このページでは2013年のcommunity buildのインストール方法が記載されている。そちらにしておくほうが後々無難かも。WZR-HP-AG300HはUSBポートを持っているところが大きな利点で、いつかOpenWrtを載せて何かのサーバーにするかもしれないのだから。


以前関連記事を書いていた: