2019年11月23日土曜日

RaspberryPi 4 Model B 日本発売

RaspberryPi 4 Model B 4GBモデルがKSYから発売された。
今回の製造はOkdo社、RSコンポーネント関連の企業らしい。
電源、ケースなどのセットモデルもあるが、2GB、1GBモデルは未定となっている。

その他の取り扱いがありそうなショップはスイッチサイエンス、ヨドバシカメラ、などがあるが、予約はまだはじまっていない。


告知ページ
https://raspberry-pi.ksyic.com/news/page/nwp.id/86

KEY Twitter
https://twitter.com/ksy_raspi_shop/

RSコンポーネント Twitter
https://twitter.com/RSJapanMK

スイッチサイエンス
https://www.switch-science.com/

セットなどで購入しておきたいものは、電源、4B対応ケース、microSD(XC)、microHDMIケーブルが主なところ。
microSD、キーボード、マウスなども必要。LANケーブルもあるといい。
電源は現在販売中の4Bは問題ありなのでUSB PD GaNで18W以上 + USB 2.0 Type-C ケーブルがおすすめなのか。GaNなUSB PDで変換効率はどれくらいなのかも気になる。
発熱の問題も深刻なようなのでヒートシンクもおすすめらしい。つけないけど。

3B以上対応のもので試してみたいのはWebThingsのMozillaのなど。
それ以外はいつもどおりのサーバ用途かもしれないが、メモリがあるのでデスクトップ用途でもつかえなくはないのかもしれない。
2台くらい買ってみる予定でUSB PDとUSBケーブル、microSDなどを注文してしまうが本体は買えなかった。

2019年11月17日日曜日

Google Homeの新機能 ステレヲ

どこのご家庭にでもあるGoogle Home miniを2台用意します。
AndoridのGoogle HomeアプリからGoogle Home miniの設定を開き、スピーカーペアという項目を探しましょう。
項目が出てこない場合にはプレビュープログラムをオンにしてから再度試してみましょう。
ペアとなるもう一方のスピーカーを選択すればステレヲ環境のできあがりです。あとは左右どちらにするかを決めてみましょう。

というわけで、Google Home かHome mini 2個でステレオスピーカーにできる機能が登場していました。
オーディオをキャストするときにペアを指定するとステレオ再生されるようになります。
これまでもグループというのはありましたが、左右分かれるわけではないようです。
ちょっとした音もステレヲはいいですね。
対応アプリはGoogle Play MusicやYouTube Music、Spotify、Xperiaのミュージックアプリ、VNCなどなどがあるかもしれません。
Google Cast対応ではない機器でSpotify対応を謳っているものは、大抵Spotify Premiumなのですね。BOSEのスピーカーやfitbitのスマートウォッチが対応していたのでなんだかなと。

ASUS X470 TUF GAMING Ryzen 5 2600X メモリ増設は難しかった

Amazonでメモリ試用する機会があったので久しぶりにPCを組んでみたのだけどメモリ増設は難しかったというお話。
まずはRyzen 5 2600X + ASUS X470 TUF GAMINGをベースにPC組みました。
メモリはHyperX というDDR4-3200なOCものLEDつきでKingstonのゲーミングブランドらしい。
試用なので8GB、2枚差しでは問題なし。次にKlevvとかいうこところのを増設してみたところまでは書いたかな。同じSK Hynixのチップが載っていたけどこれはなぜか不安定。CLも若干違ってた。

メモリの刺し方

スロットの形状にもよると思うがASUSの場合? は片側固定、片側にノッチがあるタイプ。
下側の溝にはめ、上側までぐっと差し込む。切欠きの上が長いのか下が長いのかの判別に迷う。
LEDタイプだと電源を入れてみて点灯していればだいたい刺さってる。が半差しになっていることもある。
DDR4メモリは2枚単位で増設するのが基本。マザーボードによって、どのスロットからメモリを刺すのかが決まっているので2枚のときは要注意。違う方に刺すとOCで安定しなくなることもある。

Ryzen 5 2600X に DDR4-3200 4枚差し

で、HyperXのLEDなしモデルがあったので増設してみた。これが最初のHyperXと同じDDR4-3200でCLも同じ。メーカー同じ、チップも同じなのでXMPのタイミングテーブルも同じ。LEDがないのとヒートシンクが若干小さいのでコンパクト。
というわけでさくっといけるかと思ったのだけどそうはいかなかった。
単純に増設してみると起動せず…。全く。
LED付きの方だけ外してみても、様子は変わらず。何回か再起動を繰り返して2400くらいで起動したのかな。3200では動かないようす。
で、スロットを増設の優先順位の高い方に変えてみたところ、3200MHzで動いてくれた。
2枚差しに成功したら次は4枚。
優先スロットにLEDつき、増設側にLEDなしをセット。起動せず。3000MHzや2400MHzだと起動するようだ。
優先スロットにLEDなし、増設側にLEDつきをセット。起動。何か1回フリーズして再起動してみたが、起動してしまえば安定しているような勢い。
軽くベンチマークでも問題なし。2~3日で1回くらい不安定になったので完全に安定というわけでもないがほぼ問題ない、というような感じに落ち着いているので様子見。

2019年11月6日水曜日

PostgreSQLでIPv6、リンクローカルアドレスにはまる

IPv6、使いたくないという声の方がよく聞きますが、いまさらなので使っていきましょう。
今回はリンクローカルアドレスを使おうとしてはまる。

とある停電でDHCPのIPv4アドレスが振り直されてしまったのでRaspberryPiのIPv6使っておくかというふうに考えてみました。
ということで、RaspberryPiのPostgreSQLにもIPv6使ってみてもいいんじゃない?

IPv6のアドレス

IPv6に限らずですが、使われているアドレスの使われ方は いくつかあります。ローカルかつブロードキャストなど除くと127.0.0.1/8と、192.168.0.0/16 や172.168.0.0/16、10.0.0.0/8、それ以外に知られていないかもしれない169.254.0.0/16、などなどローカルなものもいろいろと。
IPv6でローカル的なアドレスを使おうとすると、ループバックアドレス(::1)、リンクローカルアドレス(fe80::/?)とユニークローカルアドレス(fd00::/8)などなどがあり、IPv4のプライベートIPアドレスのようなものです。
リンクローカルアドレスはルータ越えができず、ユニークローカルアドレスはルータ越えも可能です。
日本でネットに繋いでいればグローバルなIPv6アドレスも振られていると思いますが、外からも見えるので違うアドレスを使おうという今回の計画。

リンクローカルアドレス

今回は同一ネットワーク上にある機器を繋ぐということではじめから振られているリンクローカルアドレスを使ってみようと思ったのですが、PostgreSQLで。
 変更箇所は、postgresql.conf の listen_addressesと pg_hba.conf にIPv6アドレスの接続許可を加えることです。
まずはIPアドレスを確認します。
# ifconfig
でざっくりアドレスなどが出てくるのでinet6でlinkなアドレスを調べます。fe80::ではじまっているはずです。
IPv4の192.0.2.77, IPv6の2001:db8:: は例示用アドレスなので気にしない。
wlan0: flags=xxxxxxx
          inet: 192.0.2.77
          inet6: fe80::7777:7777:7777:7777  prefixlen: 64  scopeid 0x20<link>
          inet6: 2001:db8:123:4567:89ab:cdef:123:7777 prefixlen 64  scopeid 0x0<global>


lo: とそれ以外があるのでそれ以外の方で fe80::はじまりの <link> のついたものをpostgresql.confのlisten_addressesに追加。

losten_address = '127.0.0.1,192.0.2.77,::1,fe80::7777:7777:7777:7777'

などとしてみます。77は例です。RaspberryPiな環境でPostgreSQLを再起動します。
# systemctl  restart postgresql
待ち受け状態を確認します。
# netstat -ant
tcp6 0 0 ::1:5432  :::* LISTEN

postgresqlのポートは5432ですが、IPv6では::1:5432しか見つかりません。::1なアドレスやグローバルなアドレスはこれで使えているのですが。

解決


リンクローカルアドレスを記述する場合、インターフェースが特定できないと困るので指定しないといけない場合があるようです。Linuxの場合、アドレスの後ろに%wlan0 などとつけます。ZoneIDとかいいます。インターフェースの名前は ifconfigコマンドの頭に出てくるものです。
losten_address = '127.0.0.1,192.168.0.77,::1,fe80::7777:7777:7777:7777%wlan0'

他の場合には%をエスケープする必要があるかもしれません。
これでもう一度再起動したところ接続可能になりました。

参考

URIの場合

古いURL(RFC 1738)ではZoneIDをサポートしていません。URIでも使えませんでしたが、RFC 6874でURIのZoneID拡張が入っています。
  • RFC 6874 ZoneIDをURIで
  • RFC 3986 URI
  • RFC 1738 URL

AES高速化をもう少し

割と最速だったJavaで作ったAES実装もJDKのAESがOpenSSLかなにかのハードウェア実装を使うようになったおかげで数倍の差がついてしまった。KCyper-2がまだよくわからないのでAESをつついてみたりPKIの方を見たり。 Intel CPU にはAES NI というA...