「Linuxのこと」カテゴリーアーカイブ

令和になったことだしクラウドへ移行する – 9 – t2.micro激重の原因とKUSANAGIのキャッシュの本気、CloudFlare+Incapsulaの多段化

ども、こんにちは。

前回の記事でt2.microのCPUクレジットを使い切って激重になった話を書かせていただきました。

んで、まぁ適当にKUSANAGIのnginxのログを解析していると・・・・

[root@kusanagi80 nginx]# zcat access.log-20190508 | awk ‘{ print $NF,$2,$3,$12,$10,$15,$16 }’ | sort | uniq -c | sort -rn | head -n 10
18840 “138.68.229.65” – – 200 /blog//xmlrpc.php “Mozilla/5.0 (Windows
(1位以下はすでに桁が全く違うので割愛)

どうもbot臭いのです。

「xmlrpc.php」へのアクセスを時間帯別に解析してみると、まぁ激重時間と大体一緒ですかね。

また、CdloufFlareがキャッシュしていなかったのも納得です。

[root@kusanagi80 nginx]# zcat access.log-20190508.gz |grep /blog//xmlrpc.php | awk ‘{ print $7 }’ | cut -b 2-15 | sort | uniq -c | sort -rn | head -n 10
4345 07/May/2019:17
4317 07/May/2019:16
4021 07/May/2019:18
3707 07/May/2019:15
541 07/May/2019:20
538 07/May/2019:19
519 07/May/2019:21
508 07/May/2019:22
345 07/May/2019:23
7 07/May/2019:12

ということで、CloudFlareで bot対策をしようと思ったのですが、無償だとGoogleなどのbotも止めてしまいそうです。

Before getting started

Cloudflare Firewall Rules can affect how traffic from known bots is handled. For details, see this FAQ.

ふむ。よろしい。ならばここに関しては無償のIncapsulaのほうが向いてるな。ということで、いつか失敗した多段に再挑戦します。

が、その前に、ちょっとKUSANAGIのbcacheとfcacheを設定してみます。

参考:詳解!KUSANAGIキャッシュ講座

で、うちの場合は、サブディレクトリにWordPressをおいていますので、まずはKUSANAGIのシェルを修正します。

まぁこの辺みながら雰囲気で。fcacheは早い話、nginxのリバースプロキシ機能でのキャッシュ、bcacheは動的に生成されるページを一定期間HTMLとして静的に保存する。両方組み合わせれば、bcacheで静的に生成されたHTMLをリバプロがキャッシュして返してくれると。

参考:KUSANAGIでサブディレクトリにWordPressを複数インストールする

で、onにします。

さて、実際効果はあるのかというところをちょっとテストしてみます。

WebPageTestで測ってみました。
※Tokyo, Japan – EC2 – Chromeで。

  • 旧オンプレサイト(CentOS Cpu 4コア/Mem:3GB)
    • https://www.webpagetest.org/result/190508_47_351c4d9104d0ca884007a289d9065993/
    • First Bytes 1.958s Fully Load 20.796s
  • 新サイト(AWS t2.micro) CloudFlareなし
    • https://www.webpagetest.org/result/190508_T5_c5f0471c39b6ab87f8c1434dd7518f10/
    • First Bytes 2.817s Fully Load 20.163s
    • 流石にCPU性能、メモリ性能では旧オンプレ環境に負けてるので遅いですね。
  • 新サイト(AWS t2.micro) + CloudFlare
    • https://www.webpagetest.org/result/190508_AR_24e95db4462d767499f2b0859ef05bed/
    • First Bytes 2.065s Fully Load 17.114s
    • お、早くなりました。これを基準にbcacheとfcacheを試していきます。
  • 新サイト(AWS t2.micro) + CloudFlare + KUSANAGI fcache
    • https://www.webpagetest.org/result/190508_4J_7b0928d6f924e8d4698b6753caeed8d1/
    • First Bytes 0.845s Fully Load 15.867s
    • おおー。確実に早くなりました。以下のようにF-CACHEにHITしたことがわかります。
  • 新サイト(AWS t2.micro) + CloudFlareなし + KUSANAGI fcache
    • https://www.webpagetest.org/result/190508_5W_8e0f63161b11d9fd14497d9f13b5a3b9/
    • First Bytes 0.588s Fully Load 18.046s
    • おー、CloudFlareなしfcacheオンリーだと、初速はめちゃめちゃ早いですね。
  • 新サイト(AWS t2.micro) + CloudFlare + KUSANAGI fcache + KUSANAGI bcache
    • https://www.webpagetest.org/result/190508_97_66422e4c559c1d51847abac508e88ba8/
    • First Bytes 0.892s Fully Load 15.231s
    • 初速は落ちましたね。けど、やっぱり他の静的コンテンツがCloudFlareのキャッシュから帰ってくるので、全体的なスピードはアップした、という感じでしょうか。
  • 新サイト(AWS t2.micro) + CloudFlareなし + KUSANAGI fcache + KUSANAGI bcache
    • https://www.webpagetest.org/result/190508_BD_ea283a342e16f40954704f80b313cff8/
    • First Bytes 0.614s Fully Load 18.451s
    • やはり初速は早いけど、全体的にはCloudFlareのCDNのほうが強いですね。
  • 新サイト(AWS t2.micro) + Incapsula(Static+Dynamicモード) + KUSANAGI fcache + KUSANAGI bcache
    • https://www.webpagetest.org/result/190511_A0_cda343e19da80c01960fe5d7d3c34170/
    • First Bytes 1.165s Fully Load 17.531s
    •  初速遅いけど判定は、Cですね。。
  • 新サイト(AWS t2.micro) + Incapsula(Static+Dynamicモード+Dynamic Content Acceleration(※)) + KUSANAGI fcache + KUSANAGI bcache
    • https://www.webpagetest.org/result/190511_R9_f82b1950e6e8f1b3d46e4dc9f0443109/
    • First Bytes 1.036s Fully Load 17.636s
    • Dynamic Content Acceleration機能です。今回はAWSのVPCがus-eastなので、アシュバーン?が最寄りでした。てか応答速っ。
  • 新サイト(AWS t2.micro) + CloudFlare + Incapsula(Static+Dynamicモード+Dynamic Content Acceleration(※)) + KUSANAGI fcache + KUSANAGI bcache
    • https://www.webpagetest.org/result/190512_KK_01657d85a38a8e24a91fbc0cc160285c/
    • First Bytes 1.033s Fully Load 13.971s
    • 初速ともにまぁまぁですね。一応両方ちゃんと通ってます。
      ※X-Iinfo: がNNNなので、Incapsulaのキャッシュはまだ効いてませんでした・・・けど、CloudFlareがHITしているので、結局AWSまでは取りには行ってないはず。
  • 新サイト(AWS t2.micro) + CloudFlare + Incapsula(Staticモード+Dynamic Content Acceleration(※)) + KUSANAGI fcache + KUSANAGI bcache
    • https://www.webpagetest.org/result/190512_M8_c66631c02506ebbda0a56be2d30fbda1/
    • First Bytes 1.312s Fully Load 14.404s
    • 一つ上とまぁ誤差ですね。
  • 新サイト(AWS t2.micro) + CloudFlare + Incapsula(キャッシュ無効+Dynamic Content Acceleration(※)) + KUSANAGI fcache + KUSANAGI bcache
    • https://www.webpagetest.org/result/190512_7E_1393ad66c4ae2ed3eb8490e5876edda1/
    • First Bytes 1.382s Fully Load 14.749s
    • 今これです。

ということで、初速は、CloudFlareなしで、KUSANAGIのfcacheが一番速い。
トータルは CloudFlare + Incapsula(Static+Dynamicモード+Dynamic Content Acceleration(※)) + KUSANAGI fcache + KUSANAGI bcacheが一番速いようです。

が、まぁ今回IncapsulaはBot制御目的ですし、2箇所でキャッシュ持つとややこしいので、キャッシュはCloudFlareだけにしました。

■CloudFlareとIncapsulaの多段構成について

多段構成のポイント?ですが、

Incapsulaを手前にすることは(おそらく無償版では)不可。
無償版IncapsulaはOriginにCNAMEが使えずIPアドレスしか使えない。

CloudFlareを前にする場合のポイント。(多分合ってると思う)

・CloudFlareに別のドメインを作ってそっちをIncapsulaに登録する
→同じ名前をCloudFlareとIncapsulaに存在すると以下のようなエラーになる。
※IncapsulaのProxyが名前解決したときに自分じゃない名前解決結果が来るから?と思われる。
→そんなことないです。それできなかったら導入前のhostsを使ったテストもできないので。(2019/05/26)

【2019/05/26 追記】

いろいろ間違ってます。普通にincapsulaにはwww.hits-net.comで登録してそのCNAMEをCloudFlareで向けつつCloudFlareのCDNを有効にすれば動きます。
↑のError code 23の原因にはサポートとも確認しましたが、結局わからずじまいで、なぜか今日改めて試したらうまくいきました。

CNAME reuseの機能を活用して、CloudFlareの本丸ドメインをCNAMEでIncapsulaに向ける。
→Incapsulaにはxxx.hits-net.comで登録してるけど、そこで払い出されたCNAMEをwww.hits-net.comに向けてさらにCloudFlareのCDNとDNSをオンにして、多段にしました。

 

■リダイレクトの初速を上げる

いま「/blog」へのリダイレクトは、cloudflareがやってる・・・と思う。

 

【2019/5/12追記】

何故かIncapsulaが時折古いオリジン(旧オンプレ)に転送してしまう謎現象が発生したので切り戻しました。
今はCloudFlareオンリーです。

このX.X.X.100っていまいま設定上どこにもないんですよねー。

同じドメインを何度か消したり入れたりしてるから一部のPoPにゴミ情報のこったかなぁ。

まいったなぁ。てかよく見たらCNAME Reuseって

Note: Available for Enterprise plan customers only.

あちゃー。

【2019/05/26 追記】
結局のところ、原因不明です。多分やっぱり古い情報持ってたとしか思えないですね。
上述の通りサポートともいろいろやりとりして、Incapsulaのサイト登録もやり直しましたが、結局原因不明で時間が解決したか、何らかのIncapsula側のメンテナンスで直ったとかそんな感じですね。

【2019/05/27 追記】
CloudFlareとIncapsulaの多段化はやはり無理でした。
令和になったことだしクラウドへ移行する – 10 – CloudFlare+Incapsulaの多段化はやっぱり無理

 

【バックナンバー】

ではでは。またの機会に。

令和になったことだしクラウドへ移行する – 8 – t2.microが激重になる

ども。こんばんは。

mariaDB問題は解決して、ようやく落ち着いたかと思ったら、今日はなぜかブログが激重になりました。。。

で、調べてみると、st(steal)が上昇していました。

今まで意識したことがなかったのですが、st値は、

【EC2】CPU使用率のsteal項目とは

馴染みがない項目だったのでで詳細を調べてみると、仮想サーバにおいて
「ゲストOSに処理を要求をしても、CPUリソースを割り当てられなかった時間の割合」
を意味するとのことです。

らしいです。で実際こんな感じでstが80%消費されており、実質20%しかCPUが使えない?状態のようです。

そりゃ重いわな。

AWSコンソールで、CPUクレジットを見ていると、クレジット使い切っちゃったみたいですね。

t2.microのCPUクレジットは144です。
※t3.microはほぼ値段一緒なのにCPUクレジットが多いんですよねー。やっぱt3にしたいなぁ。

バースト可能パフォーマンスインスタンスの CPU クレジットおよびベースラインパフォーマンス

とりあえず、インスタンスを再起動するとリセットされるようなのでその場しのぎですが再起動しました。

うーん。なかなかクラウドならではですねぇ。

これKUSANAGIのbcacheとか効かせたら処理減って軽くなるのかなぁ。とりあえず明日一日様子見ですね。

確かにちょっとアクセスおおかったのかなぁ。。。

 

【バックナンバー】

ではでは。またの機会に。

 

令和になったことだしクラウドへ移行する – 6 – ブログがAWSになりました。

ども。こんばんは。

件名のとおりです。

いろいろありつつ、半日でなんとか終わりました。

多分見れてるはず。です。

もちろんCloudFlare越しですが。

awsは12ヶ月無料枠のt2.microでKUSANAGIを入れました。
※KUSANAGIの推奨はメモリ4GB以上ですが、まぁこのくらいの規模なら全然余裕ですね。きっと。

ただ、KUSANAGIの全力は出てないと思いますが、前よりはキャッシュはCloudFlareのキャッシュも効いているはず。

疲れた。

途中経過は概ねログと画面キャプチャがあるのですが、もうありふれた話ばかりなので今回はポイントだけを自分用にメモです。

  • AWS
    • 普通にセットアップ、管理者のMFAを有効にしたくらい
    • あと一応請求が$10超えたらメール来るようにしてみた。
    • VPC
      • リージョンは最安で米国東部(バージニア)
        • どうせCloudFlare通すしきっといい感じになる。。。とおもう。
      • アベイラビリティゾーンはus-east-1f
    • EC2
      • インスタンスはt2.micro
        • 本当はt3にしたかったが、AMIのKUSANAGIが対応していなかった
      • Elastic IP一つ取得
    • KUSGANAGI
      • とりあえずyumで諸々アップデートしてから設定
      • php7だとうちの古めかしいvistaテーマが動かない&諸々エラーが出たのでphp5.6に戻した(kusanagi initやりなおし)。
      • サブディレクトリにWordPressを展開しているので多分効いてないKUSANAGIの機能がある気がする。
      • bcacheを効かせるには、多分以下の設定いれればいけるかも?
      • てか、KUSANAGIってそれ用のWordPressプラグインあるっぽいけどそのへんよくわかんない
      • あと、サブディレクトリに入れた関係か多分Let’s Encryptちゃんと動いてないと思う。
    • 引っ越しの仕方
      • BackWPupプラグインでファイルもDBの抜こうとしたが、旧環境だとPHPが2GB以上のファイルをP扱えなくてエラー(PHPバージョンで扱えない大きさのアーカイブになります。)でアーカイブがコケまくったので諦めた。
        • 一応古いPHPで2GB以上のファイルが扱えないことはないが再コンパイルなんて今さらやってられないのでスルー。
      • wp-contents配下をtgzで固めてscpでゴリゴリコピーした。
      • KUSANAGIのデフォルトのドキュメントルートをまるまる「/blog」にコピーしてwp-contentsだけ上書き。
      • DBはBackWPupで抜いたものをmysqlコマンドでどーん。
    • 心残りというか明日以降確認
      • KUSANAGIのサブディレクトリ化もう少し見直す
      • SSL化する?(Cloudflareの機能でもいいかも)
      • キャッシュのテスト
      • メールでDBのバックアップ飛ばしてるけど、多分動かないだろうなぁ。
      • ちと、ポートスキャンとか外部からのアクセス確認をば。セキュリティグループはしっかり作ったはず。
      • Google Analyticsとか大丈夫だと思うけど、明日確認
    • いずれやりたい
      • せっかくAWSのアカウント作ったし、BackWPupはS3にバックアップ取れるので、バックアップの方式を検討する

そんなところかな。

【追記】

やっぱりへんだなぁーと思ってたらやりがちなことをやってしまっていた。
参考:KUSANAGIに移設する際の5つの手順をまとめてみた

ここでの注意点は移設先のwp-content内にあるmu-pluginsを削除してしまわない事。
よくあるのがwp-contentをリネームしてまるっと置き換える方法。これやっちゃうとKUSANAGI用のオリジナルプラグインがなくなっちゃいますので、リネームしたディレクトリから移しておきましょう。

KUSANAGI用のオリジナルプラグインはWordPressの高速化の一端を担っています。
多言語に対応したWordPressが日本語で表示できるのは当たり前ですが、この翻訳が管理画面なども遅くする原因にもなっています。ですので、翻訳ファイルをキャッシュしてしまうことでWordPressの高速化を図っています。

なせ、オリジナルプラグインなのか。それはWordPressのコアを修正したりしないためです。
良く勘違いされるのがKUSANAGIで導入されたWordPressはチューニング(改造)されていると言う間違いですね。これやっちゃうとバージョンアップできなくなるので絶対やりません。

 

これで、Azure、Office365、AWSとGCPもちょっとだけ(AIY Voice Kitで)やったので、主要なクラウドには手が広げられたかなぁ。

以下画像アップロードテスト。

連休中に、メールとWebのクラウド化が無事完了したε-(´∀`*)ホッ

これで、なんと我が家のFWでは外部→内部を処理するルールがなくなってしまう&監視するものがなくなってしまう。。

それはそれで少しさみしいですね。
とはいえ、まだオンプレでもいろいろやりたいことはあるかなー。

【バックナンバー】

ではでは。またの機会に。

俺はVGAを少し甘く見ていたのかもしれない ― 小型モバイルディスプレイ購入

ども。こんばんは。

小型で持ち運びできるモバイルディスプレイを買いました。

サーバのメンテナンスとかにも使えるかなというのと、ちょっとだけ仕事でも必要だったので。

以下長い話になりますが結論を先に。

VGAが必要なら素直に最初からVGA付きを買うべし。

もう一度言おう。

VGAが必要なら素直に最初からVGA付きを買うべし。

 

ここから本編。小型のディスプレイ(小型モニター)がほしいなと。

今も昔も小さいガジェットには憧れますよね。特に持ち運びとかポータブルなんていうキーワードは大好きです。

今回購入にあたっての条件としては・・・

  • 価格は1万円〜1万5千円くらい
  • 10インチ程度(7インチ、8インチ、10.1インチとかそのへん)
  • 比較的軽い。1Kg以下
  • インターフェースはHDMI
  • USBバスパワーで動く(USB給電可) ※安い価格帯のものなので、ACアダプタとかはちょっと怖いかなという意味合いで。
  • できれば、Type-CでPD給電でなやつで、DisplayPort Alternate Modeで出力できるとなおよし。
    Type-C 1本でPCとつないで完結するなら、セカンドスクリーンとしても利用できそう。
  • 解像度はFullHD(FHD、1920×1080)出てほしい

な、感じです。

で、上記の条件でAmazonを探してみるとゴロゴロ中華製が出てきます。

今回候補にあげたのは

Eleduino 10.8 インチHDR IPSフルHD1080P携帯型ゲームモニター ディスプレイ,Nintendo Switch PS4 Pro, Xbox One, Xbox One X, PCのラップトップ対応,USB Type-C/HDMI/スピーカ内蔵/保護ケース

→¥15,886(5%引きクーポンあり)。重さが1Kg以下、保護ケース付きという感じ。ちょっと高いが前提条件を満たす。

cocopar ®11.6インチ 16:9/4:3 HDMI/VGA/3.5mmイヤホン端子 解像度1920*1080PS3/PS4/xbox360/…

→¥12,800。重さは1.1Kgほど。VGAがついている。ちょっとゴツい感じ。USB給電はできない。ACアダプタ付属。

METIS モニター 7インチ ディスプレイ VGA/AV/HDMIケーブル付き 内蔵スピーカー Raspberry Pi対応 1080p液晶 HDM…

→¥4,960。車載用ディスプレイっぽい。小さめ。VGA付きで軽そう。USB給電はできないっぽい。

その他ユーラック(実はUPERFECT?サポートのメールアドレスがユーラックもuperfectになってる・・・。しかもhotmailって)や、Gechicのon-lapシリーズ、おなじみセンチュリー、ASUSなど検討しましたが、価格が高かったり、怪しさ満点だったりで総合評価で、今回はEleduinoを買いました。(まぁeleduinoも十分怪しい。。。)

正直本当はセンチュリーのLCD-8000VH2Bあたりがいいなーとは思ってましたが、販売終了の上に2万円オーバーと結構高い。

編注:後々買ったものを合計すると余裕でセンチュリーのディスプレイが買えます。

 

ということで、Eleduinoとやらのディスプレイを購入。

どうやらEleduinoというのは中国?かどっかのラズパイのアクセサリーショップ?らしい?くて、ディスプレイの製造元はmagedokという会社らしいです。

あえて、mageokにリンクを貼っていません。

公式ページであると思われる

hxxp://www[.]magedok[.]com/

ですが、(まぁ私のURLの表記を見ていただいたら分かる通り)アクセスはおすすめしません。。。

もしかしたら、magedokの偽サイトなのかも?一瞬疑ってしまいますが、本物のようです。

なんと、初回アクセス時以下のような糞な広告にリダイレクトされます。

この時点でだいぶ購入したことを後悔し始めますが、Amazon発送だし、まりあえず届いたし、いいかな。。。と。

では早速開封を。

 

中華らしいきれいな化粧箱に入っています。

付属品は、Type-Aの給電ケーブル、Type-Cケーブル(3.0 Gen2らしい。なぜかType-Aは裸なのにこっちは袋入)、mini-HDMI->HDMIケーブル。VESA用ネジ。マニュアル、おー!なかなか豪華ではないですか。

次に本体のお目見え。ケースに入っています。見た感じはいい感じ!

なかなか綺麗です。

あ、ケースは両面テープでくっつけるわけですね。。。

端子類。ケーブルが付属なので大丈夫ですが、mini-HDMIなので注意。Type-Cは給電用と映像用と別れています。後でマニュアルの接続方法のページを載せます。

ボタン類。まぁ普通かな。

 

裏面。スピーカーがあります。ケースにもちゃんとスピーカー用の穴が空いています。

magedokのロゴ。。。とURL、アクセスはオススメしない。型番はM108Aらしい。

両面でくっつけたところ。立ちますが、油断するすぐコケます

とりあえず手元にあったauのType-C共通ACアダプタ(非PD)で給電しながらラズパイにつないでみた様子。
意外と画質も悪くない。いい感じだ。

OSD。これも普通のモニターと同じかな?ただ、これ、No Signalな状態だと出すとこができませんので注意です。
Type-CないしHDMI信号が来てないと出ない。。。

]

言語は日本語も選択可能。

以下接続方法。PD対応ならこのモニターを通じでPCにも給電できます。実際できました。(写真はないです。。)

携帯(HTC U11)ともUSB Type-C 1本で映像出力できました。
※HTC U11はDP Alt Modeに対応しています。

 

ところで、マニュアルにはギフトとやらが入ってると書かれていましたが、何もなかった気がします。。。

以下、仕様的なページ。

【2019/04/17追記】
付属のUSB Type-Cケーブルが不良だったようで、Type-C 1本のみでPCとつなぐと数秒に一回暗転?(一回消える。flickeringってやつ?ちらつくというより、瞬きしてるような感じ)するのに困っていました。
電源供給+HDMIだと全く問題なかったのですが。。。。
その後、ケーブルを変えたら普通に使えるようになりました。

現在は職場でフリースペースとかの打ち合わせで活用しています。

 

さて、ここまでは意外と良かったのです。

んじゃま、手元のHP ML110にでもつないでみますかーと。

ここで気づく。今手元にあるのはHDMI to VGA。いわゆるデジアナ変換。んー。じゃぁMini-HDMIをHDMIに変換して更にVGAのオスメスを変換すれば・・・と思ったけど、そうじゃない。

今回はアナデジ変換が必要になるやないかい。

じゃぁ買えばいいかとということで以下を購入。

VGA to HDMI 変換ケーブル、 GANA 金メッキVGA→HDMI 出力 ビデオ変換アダプタ USB給電 1080P対応 (給電用USBケーブ…

→¥1,380。まぁこんなもんか。アナデジ変換は電力がいるんだなぁなんて思ってたり。

編注:ここで、Amazonのレビューに書いてある重大なことを見落としています。

翌日到着。早速開封。

まぁこんなもんかという感じ。
給電用のMicroUSBもちゃんとついてますが、実際は給電なくても大丈夫なケースが多いみたいです。

早速HP ML110のVGAポートへ接続。
※ML110->VGA->VGA to HDMI->HDMI to mini-HDMI->ディスプレイ。給電なし。

おー久々に見るESXiの画面。なかなかよいではないか。

 

次の日、ちょっと会社のラボルームへ持っていってとあるアプライアンスのVGAへつないでみると。。

No Signal

え?(つд⊂)ゴシゴシ

ん?あれ?別のサーバだと映るのに、このアプライアンスだけ?あれ?

そしてAmazonのレビューを見直すと・・・・。

おっふ。

マザーボードのBIOS設置画面で使用する解像度 720X400 70Hzはサポートされてませんでした。
ですのでこの解像度のまま表示を行うシステムでは表示が出ません。
システムの解像度を設定できれば表示されます。

通常のPCでは1024×768 60/70/75/85Hzはどれか設定できるので可能と思います。
現在は1024×768 60Hzに設定し使用してます。

サポートされる解像度は面倒なので全部は書きませんが、640×480、1280×960が有るのでモニタが対応していれば可能と思います。

マニュアルには対応解像度書いてありますが、Amazonの商品ページにも載せておいてほしいです。

慌てて、ラボルームに転がっていた適当なディスプレイにつないでみると、

720×400 70Hz

٩(๑´0`๑)۶

このアプライアンス、BIOSどころか起動後のコンソールも720×400 70Hzやないかーい!

ESXiは起動後に1024×768 60Hzに上がるみたいです。だから映ってたのか・・・・。

てか、720×400 70Hzってなにそれ?と思って調べてみると、以下WikipediaのVGAより。

テキストモード[編集]

  • 80字×25行、9×16ドットフォント、有効解像度は720×400ドット、16色またはモノクロ。後者は旧来のMDAベースのアプリケーションと互換性がある。
  • 40字×25行、同じフォントサイズを持ち、有効解像度は360×400ドット。
  • 80字×43行、80字×50行(8×8ドットフォント)16色、有効解像度は640×344(EGA互換)または640×400ドット。

この他にも画面解像度や画面モードをカスタマイズすることで様々な表示モードの画面信号を生成できる。

なるほど。VGA(Video Graphics Array)の規格として超ベースな部分として持っているグラフィックモード(いわゆる640×480とか)と並ぶモードなのか!

よかろう。話は簡単だ。VGA to HDMIのアナデジ変換で720×400 70Hzい対応しているものを買えばいいわけだ。

編注:↑まちがい。

以外と公式に720×400 70Hz対応と記載のあるVGA to HDMI変換が少なく、以下を購入。

PCのVGA画像とステレオオーディオをデジタルのHDMIに変換【ezVGA+a-HDMI】 アイシル

¥3,980。くっ・・・結構高い。。。けど背に腹は変えられん!ということで購入。

翌日届きます。デリバリプロバイダさん毎日ごめんなさいm(_ _)m

早速開封。さすが日本製、いい箱に入ってます。

中身はこんな感じ。VGAのオス->メスな延長がついてて親切。
こいつはminiUSBで給電みたいですね。久々に見たわ。miniUSB
※慌てて写真撮ったので見切れています。。。。

でもなんか新品?なのに傷が多い・・・気がする。。。

 

早速、またラボルームに持ち込む。

No Signal

あれれ、別のサーバだとやっぱり映る。
※ちなみに、ezVGA+a-HDMIは給電必須の模様です。

・・・ということは、ディスプレイ側が720×400の解像度、もしくは70Hzの入力に対応していない・・・?
普通のWindows PCにつないで70Hz付近で出力してみるもNo Signal。

・。
・・。
・・・。

(T_T)

はぁ…

もうこうなったら、意地でも720×400 70Hzで出力してやる!と、言うことで、そもそもVGAがついてればきっとテキストモードにも対応しているはずだろうということで次にこれを購入。

Eyoyo 5インチモニター ミニ 800×480 TFT LCD スクリン ディスプレイ BNC/VGA/AV/HDMI機能付き スピーカー内蔵 E…

→¥6,999。5インチなので結構小さい。が、USB(microUSB)で給電できるし、HDMIも、そして何よりVGAがついている。

今朝方到着。デリバリプロバイダさん本当にこの一週間毎日のようにすいませんでした。

早速開封。

箱はでかい。

左が本体で右がアクセサリ。

結構いろいろついてる。HDMIケーブル、給電用microUSB、マウンタ、マウンタ用の両面テープ?、ACアダプタ、VGAケーブル。

本体登場。お、なかなか綺麗。右上の黄色いテープ?は保護シートを外すためのもの。勢いよく剥がしました。

マニュアルによると型番は「S501H」らしい。

背面。あれ、DC入力の端子・・・曲がってね?まぁいいさ、USBがある。

とりあえず、手元のauのMicroUSB共通アダプターをつないで見る。
無事ロゴが出た。

こいつはNo Signalな状態でもOSDが使えたり、入力切り替えができる。なかなか優秀。

とりあえず、付属のHDMIケーブルでラズパイをつなぐ。
映るけど字がちっちゃい・・・。まぁこれは想定内。いいんだよ。俺はどうせこのディスプレイでは720×400 70HZ以外の出力なしねーんだから!

さて、一応付属のVGAケーブルと、microUSBケーブルのテストを兼ねてML 110のVGAにつなぐ。
今回はVGA-VGA。まぁ当たり前だが映る。

そして、720×400 70Hzのテスト・・・だが、家にある機器でそんな解像度出せるのか?と思いつつ、NAS(QNAP)をRebootしてみる・・・。

あれ、POSTの画面はVGA(640×480 60Hz)なのか・・・

お?お?

キタ━━━━(゚∀゚)━━━━!!
720×400 70Hz キタ━━━━(゚∀゚)━━━━!!

オイラももう思い残すこたぁねーだよ。

やったよ。映ったよ。。。

ということでここまで買ったものたち。

No かったもの 値段 備考
1 magedokのディスプレイ ¥15,886 最初に購入。
2 GANAのVGA to HDMI変換 ¥1,380 720×400 70Hz未対応。
3 アイシルのezVGA+a-HDMI ¥3,980 magedok側が720×400 70Hzに未対応だった模様で役に立たず
4 Eyoyoの5インチVGA付きディスプレイ ¥6,999 720×400 70Hzの出力OK

合計

¥28,245 これ余裕で最初からセンチュリー買えたじゃね?
※センチュリーが720×400 70Hz対応かは未確認ですが、多分VGA搭載なら大丈夫かと。あと、センチュリーでは、製品ページに一部BIOSが映らないのでメインディスプレイには使えないと書いてる製品もありました。

 

はあ。何やってんでしょうね。

いろいろモバイルディスプレイを見てると、BIOSが出ないからメインディスプレイには使えないという記載が結構ありますね。

最近はHDMIで、EFIなんかだと解像度も高いし、こういうレガシー?なVGAとか意識しなくなってきましたが、まだまだこういうケースが有るということですね。

ゆくゆくはHDMIもType-Cに置き換わっていくのかな。

週明け会社のラボで、例のアプライアンスともう一度勝負だ!

ではでは。またの機会に。

SSHで「no matching key exchange method found. Their offer: diffie-hellman-group1-sha1」と言われたら

ども。こんばんは。

最近ウチのCatalyst 3750にSSHできなくなってしまいました。

bash-3.2$ ssh hoge@hogehoge

Unable to negotiate with 192.168.x.x port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1

これ、macOS Sierra以降で起きるみたい、というかRaspbianでも起きるのでもう最近のSSHの仕様として弱い暗号アルゴリズムはサポートしないという感じですね。

一応、ホストごとに弱いCipherもサポートできるようにできるみたいです。
以下のconfigを編集します。

$ vi ~/.ssh/config

私は↑のファイルはなかったので新規作成しました。こんな感じです。

Host hogehoge←ホスト名
KexAlgorithms +diffie-hellman-group1-sha1

Host 192.168.x.x←IPアドレスで繋ぐこともあるかも?なのでIPアドレスも書く
KexAlgorithms +diffie-hellman-group1-sha1

実はこれだけはダメでした。この状態で繋ぐと

bash-3.2$ ssh hoge@hogehoge

Unable to negotiate with 192.168.x.x port 22: no matching cipher found. Their offer: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

なので、最終的にこんな感じに。

Host hogehoge←ホスト名
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers +aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

Host 192.168.x.x←IPアドレスで繋ぐこともあるかも?なのでIPアドレスも書く
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers +aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

解決はしましたけど、これ、そもそもIOSが古いですね。もう駄目かなー。

そんなうちのIOSはこんなやつです。

Switch   Ports  Model              SW Version              SW Image            
——   —–  —–              ———-              ———-          
*    1   24     WS-C3750G-24T      12.2(37)SE1             C3750-ADVIPSERVICESK

ではでは。またの機会に。

Google AIY Voice Kitで自作スマートスピーカー – 2 – GCPへの登録とサンプル実行

ども。こんばんは。

続いては、GCP周りです。

これもガイドには載っていますが、ガイドの画面キャプチャがちっちゃいのでこちらでも紹介したいと思います。

今回はGoogle Assitant APIを使うためにGoogle Cloud Platformにサインアップして、新しいプロジェクトの作成やAPIキーを取得します。
取得したAPIキーをAIY Voice Kitにコピーしてサンプルを動作するところまでをやります。

まずはGCPのコンソール(https://console.cloud.google.com/)にアクセスします。

私は初利用だったので、規約の同意とかが出てきました。
※Googleのアカウントはすでに持っていたモノを使っています。

新しいプロジェクトを作成します。

任意ですが「AIY Voice Kit」とかにしてみました。

できました。

作成されたプロジェクトが選ばれていることを確認して「API & Services」のダッシュボードに移動します。

Google Assistant APIを検索します。

APIを有効します。

有効化できたらこんな感じになります。
※「認証情報の作成」っていうボタンを押したくなるのですが一旦我慢します。

こんな感じで、左側の「認証情報」を選択して「OAuth同意画面」を設定します。
ユーザに表示するサービ名は最後に出てきます。
※それ以外はメールアドレスのみ入力しましたが多分大丈夫。。

で、次左のタブに移動してOAuthのクライアントIDとクライアントシークレットを作成します。

クライアントの種別とかを設定します。
今回はその他にして手打ちで入力しました。

作成を押した後ポップアップでIDとシークレットが表示されますが後でダウンロードできます。

出来上がったものをダウンロード(JSON形式)します。

ここまででGCP上での操作は一旦終了!

次にGoogle Assistant関連のアクティビティの設定をします。
これ結構重要みたいです。

実際にAssistantを使いたいGoogleアカウントでアクティビティの管理(https://myaccount.google.com/activitycontrols)にアクセスします。

以下のアクティビティを有効にします。(私は全部有効になっていました。)

  • ウェブとアプリのアクティビティ
    • Chrome の閲覧履歴と Google サービスを使用するウェブサイトやアプリでのアクティビティを含める
      ※↑これにチェック入ってないと一辺倒な応答しか返さない?らしい。
  • 端末情報
  • 音声アクティビティ
  • イメージはこんなかんじ。

では、いよいよAIY Voice Kitを使います!

ダウンロードしてたJSONファイルを転送します。

 

ダウンロードしたJSONファイルをAIY Voice Kitにアップロードします。
※ダウンロードした状態だと「client_secret_****」という名前のはず。

アップロード後以下のファイル名にリネームします。

/home/pi/assistant.json

ここまでで準備完了。

いよいよサンプルプログラムを実行するのですが、私はSSH環境でやっています。

HDMIでディスプレイに繋いでいれば、AIY用のターミナルがあるようですが、SSH経由だと環境変数などを一旦読み込む必要があります。

こんな感じ。(piユーザでログイン後に実行)

pi@hoge~ $ cd AIY-voice-kit-python/
pi@hoge:~/AIY-voice-kit-python $ source env/bin/activate
(env) pi@hoge:~/AIY-voice-kit-python $

じゃぁOK Googleなやつ言ってみますか!

(env) pi@hoge:~/AIY-voice-kit-python $ src/assistant_library_demo.py

※初回は以下のようにアカウントの同意?を求めるURLが出る模様です。ディスプレイとか繋いでるとブラウザが立ち上がってたのかも?

とりあえず普通にURLをコピーして(別の端末でもいいので)アクセスします。

アカウントの選択が出てきます。

アクセスを許可します。

コードが出てくるのでこれをSSHに戻って貼り付けます。

これで喋るはずです。

OK google!

(ボタンが光ります!おおお!)

今日の天気は♪

You are welcome!

・・・You are welcome?

 

!?

・・・あれ?

あ、こいつ英語しかしゃべれないんだった・・・

ということでこうなりました。
※こっ恥ずかしいので、私の声はカット済み。ハウアーユーとネイティブジャパニーズで喋りかけました。

 

あと、音でかい・・・。

音量(ボリューム)の調節はこちらが参考になりました。

Voice Kitで自作GoogleHomeを作る際に付け足したこと

$ sudo amixer -M #←ミキサーの名前を確認

$ sudo amixer set Master 70% #←音をちっちゃく。
Simple mixer control ‘Master’,0
  Capabilities: volume
  Playback channels: Front Left – Front Right
  Capture channels: Front Left – Front Right
  Limits: 0 – 255
  Front Left: 179 [70%]
  Front Right: 179 [70%]

起動時に小さくする用にしたほうがいいですね。

日本語の件は、一応つい最近Assistant SDKが多言語対応したみたい?ですね。

Google、「Google Assistant SDK」を日本語対応などの新機能でアップデート

あと、先駆者の方がいらっしゃいましたが、いわゆるGoogle Homeのようにはなかなかいかない模様ですね。。。

AIYスピーカーを、ほぼ日本語版Google Homeに【Google Assistant SDアップデート】

と、とりあえず動いた!!!

次回は・・・。。。うーん。どうしましょ。日本語対応ですかね。。。

あと、Cloud Speech(音声の認識してくれるサービス)は有料?らしいですが、日本語もちゃんと聞き取れる見たいでです。

また、登録していませんが、2017年12月30時点では、

料金はざっくりまとめると、月間60分までは無料。(15秒単位。一秒しか喋らなくても15秒分としてカウントされる)
それ以上(61~100 万分)は、$0.006 / 15 秒*らしいです。

えと、単純計算で

60分/15秒=240回

240回/31日=7.741…

一日7回までは無料で使える感じですかね。単純計算ですが。

で、まぁ追加になっても15秒1円もかからない($0.006=0.67643743 円 2017/12/30時点)し、いいかなぁ。
これも無料トライアルに含まれるんかな?(←まだトライアル登録してないけど。)

バックナンバー

ではでは。またの機会に・

Google AIY Voice Kitで自作スマートスピーカー – 1 – 組み立て〜初期設定編

ども。こんばんは。

先日キットは先行販売分が届いていましたが、
今日新しいRaspberry Pi 3 Model Bも届きました!

年末年始遊ぶよ!

ちなみに私は12連休の人です(^q^)

まずは組み立てて普通にラズパイとして使える状態にするところまでをやります。

先に書きますと、途中で両面テープが必要!!です。なかったのでちょっと困りました。

いろいろやり始める前にOSのイメージを準備しておきます。

専用にカスタマイズされたOS(Raspbianベース)が公開されていました。

https://aiyprojects.withgoogle.com/

あと、イメージの書き込みツールとしてEtcherというのが推奨されていましたのでこれもインストールしました。
これ結構良さそう!

ダウンロードしたイメージを選んで焼きます。

シンプルで使いやすいぞ。

SD焼いてる間に開梱。

今回追加で購入したRaspberry PI一式。全部KSYさんで購入しました。¥6,453なり。
SDはAmazonでも良かったのですが、ラズパイ本体(黒電源セット)が¥4,995とギリギリ送料がかかってしまう値付け笑だったので、KSYさんで購入しました。Sandiskの16GBで¥1,458なり。以前購入したもののほうが値段は安くスピードは出そうです。

改めてAIY Voice Kitとご対面。

開封の儀〜。写真付きのマニュアルがあります(英語)。十分読めます。

内容物はこんな感じ。意外とスピーカーがちゃんとしてる!ボタンは緑でした。色って選べたのかな?

では組み立てます。基本ガイド通りです。
まずはスペーサーみたいなやつをラズパイに挿してHATをかぶせます。
※このスペーサー(スタンドオフ?)は、真上から押してもなかなか入りませんでした。前後にグリグリやると入りました。。

スピーカーをつなぎます。
このケーブル、両方赤っぽいですが、奥側は反面が黒に塗られてます。。。
+/-はHAT上にも印字があるので、黒いケーブルを-側に。

差し込んだらドライバーで締めます。

次にマイク用とボタン用のケーブルをHATに接続します。
4ピンと5ピンなので迷わないはず。

マイク側も繋ぎます。
これ!後で両面で貼らないと駄目です。
一応トゲトゲ?がついててダンボールにブスっと刺さりますが、ガイドには両面で貼ってって書いてますね。

次は箱を組み立てます。まずは底から。

もう一つある箱も指示通り折り曲げていきます。

ラズパイとスピーカーを収めます。

外箱にいれます。写真撮り忘れましたが、マイクボードもつけます。(両面で)

いれ終わったところ。HDMIと電源もちゃんと横から抜き差しできます。

なんか斜めってるけどUSBとLAN

だいぶ斜めってるけど、SDカード・・。

ボダンを取り付けます。

ボタンのケーブルを刺します。
なんか「宝」って書いてる・・・。向きに注意してケーブルはガイド通り。色で判別でいます。

白 黒
△宝△
青 赤

です。

でけた!

SDも焼きががりました。

ここから、私は以下2つの操作をしました

・/boot/直下に空っぽのsshファイルを作成。(SSHを有効にするため)

あとWiFiの設定もしました。/boot/直下にいつもの「wpa_supplicant.conf」を書いておけば読み込んでくれる見たいです。

じゃぁSDカードを挿入して起動します!

おおおお。専用の壁紙だー。

ダイアログが出ているのはSSHが有効になっているってのとパスワードがデフォルトだってことが書いています。
※デフォルトID/パスワードはRaspbianと同じでpi/raspberryです。

デスクトップにある「Check audio」を実行します。

おおー。音出た!あと、自分の声を録音して再生してくれます。

意外と音でかい笑あと思ったより音がいい。

できました。

後は、piユーザのパスワード変えたり、Wifiのリージョンを変えたり、タイムゾーンを変えたり、apt-get update、apt-get dist upgradeとかrpi-updateとか。
この辺を参照。NTPは入ってたな。最初から。

間違いないくpiユーザ消さないほうがいいですね。今回は。

次回はGCPとかを設定してGoogle Assistant APIを設定します。

ではでは。またの機会に。

 

 

Google AIY Voice Kitが届いた

ども。こんばんは。

先行販売で申し込んでいた分が届きました!

が、まだこれ用のRaspberry Piを買ってない・・・・

FortiGateのリプレイスも終わってないし、これはもうちょっと後・・・かな。

実はこっちも欲しくなってきてる・・・

RaspberryPiを“学習リモコン化”する基板が発売、公式ケースに収納OK

うーん。やりたいことがいっぱいあるぞー。

あ、龍が如く 極2は、本編一通り終わりました!真島編も楽しみ!

ではでは。またの機会に。

おもちゃ箱を買った。龍が如く 極2を始めた。とか。

ども。こんばんは。

雑記です。

・電子工作用の諸々を入れるツールボックスを買いました。

アイリスオーヤマ 工具箱 マイキット 40 クリア/ブラック【幅約40×奥行約22×高さ約22cm】
¥1,500なり。

もともとキットに付属していたケースが小さくてパンパンだったので。

いい感じになりました。ちょっと大きいけどね。

・龍が如く 極2はじめました

・スマートスピーカー関連小ネタ

Amazon echo dotをBluetoothスピーカーにつなぎました。だいぶ前に買ったCreative T12 Wirelessに接続しました。なかなか快適です。

あと、買い物リストはなかなか便利。

やっぱり賢いのはechoかなあ。特にGoogle home miniは喋りかけても反応したかパット見わかりづらい。
ユーザアシスタンスで反応したら音出せるんだけど、なんかダサいよな。。。

ではでは。またの機会に。

 

いまさらはじめるRaspberry Pi(2017) – 7 –

ども。こんばんは。

今日は秋葉原に買い物に行ってきました。

秋月電子と千石電商を見てきました。

どっちもすごいですね。人もいっぱい。見たこと無い部品でいっぱいです。
なんとなく千石電商のほうが買いやすいかも?と個人的には思いました。
秋月電子のほうが細かいパーツはおおいのかな?比べるほどの知識はありませんが・・・。

こういうお店にいくと電気街って感じがしますよね。

色々面白そうなものがたくさんあって、思わずRaspberry Pi Zero Wのスタータキットとか買ってしまいそうになりましたが、今日は目的が決まっていたので、欲は出さずに以下購入。

ラジペン 一番やすそうなやつ・・・¥700
ブレッドボード用ジャンパワイヤ(50本) ¥470
メス-オス ジャンパワイヤ(100個) ¥570

これはなかなかいい買い物をしました。

ラジペンは一本も手持ちがなかったのでとりあえずで買いました。
その他2つのパーツおかげで随分スッキリしました。
※回線図でよく見かける斜めにシャっとつながっているのはこういうジャンパワイヤだったんですね。

ということでbefore/after。

・Before。ゴミゴミしている。写真には写ってないですが、LCDはオス-オスとメス-メスのジャンパワイヤで繋いでおりこんがらがっています。

・After。すっきり。

本当に少しずつ少しずつこういうところがわかってきました。

全く道の世界なのでお店に行ってどういうものが売ってるのか見るのは勉強になりますね。

ではでは。またの機会に。

バックナンバー