CuPy, Chainer をAnaconda3で使う インフラ気にしたくない、Windowsでお気楽にCUDA, cuDNN使いたい

2018-11-30現在

CuPyをインストールするのにCUDAとかcuDNNとかWindowsだとVisual Studioとか大変だった方もいらっしゃると思いますが、 CuPyがcondaコマンドでインストールできるようになりました ということでWindows用も出来上がっているので、一利用者としてはもうAnaconda使うに限るっしょという感じです。バージョンちょっと旧くても良いし(2018-11-30現在だとChainer 4.5)、pipがどうとかインストールがどうとかどうでもよいけどNVIDIA積んでるからCuPy使いたいという方にAnaconda3はお勧めです。

ただ、
RTFM: CuPy 5.1.0 – Installation Guide

自動テスト通ってんのはUbuntu GNU/Linux 64bit LTS14.04/16.04とCentOS 7(64bit)だけだかんね。WindowsとかmacOSを含む他の環境でのCuPyは、動いてるように見えてもわしゃ知らんからね。

と書かれている(CuPy 5.1.0より前も同様)ので、テストの詳細はよくわかりませんが(オープンソースなんだから見ろという…)、機能まで含まれているとすると、違う環境で動作させようとしているまじめな良い子は

  • 財布の紐のadminに相談、物で溢れ返っている人は空間デザイナーにも相談
  • マルチブート
  • クラウド, VPS,レンタルサーバ

等を駆使して、書かれているGNU/Linux環境を整えます。

この機械はWindowsゲーム用、まじめでもガチ勢でもないからこのままAnaconda3をインストールするくらいで、できるだけめんどいことしたくないけどCuPyは使いたいし、ということで進めます。

念のため CUDA GPUs の中からお持ちのGPUを探して、Compute Capabilityの数字を確認しておきます。Installing cuDNN に、必要なcompute capabilityが書かれて(ただ今だと3.0以上)います。

続きを読む

古いSymantecの証明書 The SSL certificate will be distrusted in M70.

せっかく古いSymantec-rooted Infrastructure発行のサーバ証明書を持っているので実験です。distrust後も「警告」と書いてあるところがあったりしますが、「証明書のエラー」です。続行しちゃダメ。ゼッタイ。
続きを読む

DoT(DNS over TLS)とかECS(EDNS Client Subnet)とか DNS over TLS(RFC7858), +DNS over DTLS(RFC8310), EDNS Client Subnet RFC7871

去年の暮れからのpublic DNS界隈の盛りあがりに合わせて社内キャッシュサーバまわりを確認してみます。まずはECSをみてみました。DNS over TLSは後半に実際にUnboundで設定してみました。

8.8.8.8といえば元祖(2009年)サルでも覚えられるIPv4アドレスですが、2014年より昔にresolv.confに書いたまま放置してる方でECSに気付いていない方はいませんか。
続きを読む

DNSSECとDNS update(RFC2136,nsupdate)とdelegation Let's Encryptワイルドカード証明書とDANE TLSA RRを添えて

締め切りより品質という記事が出ていますが、お疲れ様です。Let’s Encryptのワイルドカード証明書のサポートはとても便利になるので期待しながらDNSSECでdns-01を使った自動化の下準備をしてみます。(2018/3/14 ACME v2 and Wildcard Certificate Support is Liveということでcertbotにてワイルドカード証明書を取得しました。末尾に簡単に追記します)
続きを読む

サーバ証明書更新 The SSL certificate will be distrusted in M70.

ChromeおよびブラウザコミュニティによるSymantecの証明書の順次警告、無効化問題だそうで、該当する証明書(うちで該当するのはもちろん格安なDV RapidSSL)持ってるからさっさと更新せい、というメールが証明書屋さんから何度も来ました。TLSAの更新が必要なのでそれなりにめんどかったですが、本サイトも含めて2サイトの証明書を更新いたしました。皆さんどうしているのか見ようとしたところ…
続きを読む

RECV/CQ: Invalid WhiteTable code word, row 0, x 0

2017/5/22追記: libtiff本家から2017/5/22に4.0.8がリリースされたので、順次libtiffが4.0.8にアップデートされていけば以下の問題は発生しなくなるのでしょう。


与信を通過しましたとか、(情報) 統合思念体(ってなんだか知らないけどなんか納得)様からのFAXがしばらく来てませんでしたがFAXが必須な仕事でも無く、電話番号とTSIの一覧はエラーも含めてすべて毎日自動的に送られてくるので必要なものかどうかは一目瞭然なのと、そもそも必要ならば別のコンタクト手段がいくらでもあるので気付かないふりを継続していました。しかしついに年に1,2回のFAXを受けないといけない場面に出くわし、届かないので詳細ログを確認したところ、FAXサーバのlibtiffが4.0.7にアップグレードされた2016年の暮れ頃から3ヶ月以上FAXが正常受信されずに 続きを読む

ntpd – PPS discipline まずは普通に較正 編

A/Dコンバータでも作ろうかと秋月でセンサーを覗いているとGPS受信機キット 1PPS出力付き 「みちびき」対応 [AE-GYSFDMAXB]なるGPSが2,200円、こっちに目を奪われました。

出力データ形式
NMEA0183V3.01準拠
電源電圧
DC5V(3.8V~12V)
入出力信号レベル
C-MOSロジック(3.3V)
UART通信速度
9600bps(デフォルト)、4800~115200bps
1PPS出力
精度±10ns C-MOSロジック(3.3V)レベル,パルス幅:100mS(アクティブLow)

いー感じです。 続きを読む

Notable Changes in NSS 3.27 CA certs. - Removal of 'Equifax Secure Certificate Authority'

某メールサーバ宛TLSでエラー発生

確認してみます。

3つ送られた証明書の最後の証明書のi:のCA証明書が無いのでエラーになっているようです。確かにNSS 3.27で削除された(コード)ようですが念のためコピペして食わせて確認してみます。 続きを読む

Unique Local IPv6 Unicast Addresses – ULA ユニーク ローカル IPv6 ユニキャスト アドレス

NURO光を導入した知人宅でNAT2段超えIPsecトンネルを作って遊んでいた際、HG8045QというONU(無効にできないルータ内蔵)にULAモードなる設定があり、そのお家ではULA無しに設定されましたが、そういえば大昔に自分でも付けたなと思い起こし、プレフィックス生成ツールがごろごろある中RFC4193 3.2.2. Sample Code for Pseudo-Random Global ID Algorithmのサンプル通りに手動で生成だけしてみます。
続きを読む

bruteblock – 非公式IPv6パッチ

キエフ発のbruteblockはSSHのbrute-force攻撃対策で参照されることが多いようですが、標準入力を読んでipfwのテーブルに追加(bruteblock)してくれ、テーブルから決められた時間経過後に削除(bruteblockd)してくれるというシンプルな作りのおかげで使い道は無限大、自分次第あなた次第、SMTP-AUTH, IMAP4へのあくなき挑戦や、公開していないポートへのアクセスなど、好きなトリガーを設定するだけです。

Apache HTTPDのCustomLog directiveはpiped logを出力できますし、SSHでの利用例のようにsyslogdもパイプに出力できるのでsyslogを吐くプログラムならば何でもbruteblockを利用できることになります。

続きを読む

.tc .vg .gd 問題

登録/更新料金の猛烈な値上げがレジストリによって行われるという笑撃の事態に出会ったのが1年ほど前、影響は比較的小さかったとはいえ先がやばそうなので3文字 .tc を1つその時に手放しました。

しばらくしてdd24.net(Key-Systems.com)のRSSでなんだかなアナウンスが出ていると思ってましたが、なんとこの事態は今まで続いていたということを最近のアナウンスで知りました。ググってみたところ、ちょっと見ない間にもうわけわからんことになっているようです。まがりなりにもTLDなのに恐るべし…

ググって出てくるページがまとまってました。whoisも両レジストリ(?)のデータベースで内容が違ったりしているようです。

グルーレコードは大丈夫なのかとかも含めて違いを探すだけで小一時間は遊べそうですが、はちゃめちゃすぎて時間の無駄っぽいですね…そして先ほどのフォーラムに出ていたIANAのページの抜粋です。

レジストリ(誰?)の指示だとして該当ドメインのDNSのリソースレコードの変更まで禁止されて悶絶の方々も見つかります。そこにその方自身がMeridial TLDとコンタクトを取った返事として載せられていることには、「AdamsNamesを動かしていたチームはMeridial TLDを動かしているチームだ。AdamsNamesにはもうレジストリを運用するインフラも知識もない」となっています。

レジストリのバックエンド担当のdd24と同じグループのKSregistryの2013/3/11ニュースのUpdate(4/12)では「(Key-Systemsの)RRPproxyは.tcと.gdと.vgの変更、登録、トランスファーを有効にしない」となっています。これはリソースレコードの変更には特に抵触しないですね。

AdamsNamesは違法に横取りされた(されるような退職者メールアドレスの管理をしているのが一番まずいと思いますが)、Meridian TLDが勝手にAdamsNamesを名乗ってICANNのミーティングに出席したと言っています。この記事によればAdamsNamesの言い分ではKey-Systems(KSregistry)を共犯としていたようです。

先ほどのニュースには、もうひとつ5/6にKSregistryが.gdのレジストリになったと書かれています。これは.gdのSponsoring Organisationが国立のNTRCだったからできたのでしょう。

ハチャメチャながらも少し流れがわかったところで先ほどの最近のアナウンスに戻ります。”The current operator of the ccTLDs is Meridian TLD Corp.” だそうです。っておーい、どういう流れでそうなったのか、IANAだかICANNだかの見解の説明をKSRegistryなりKey-SystemsなりKeyDriveの誰かがしてくれないと、これから公式ハイジャックとかできるようになるの?とか思っちゃいます。オペレータってなんだろう。

実際にこれらのドメインを使っていた人にとって、長期間にわたる不便は本当に困ったもんだと思いますが、わけのわからないccTLDと認識されてしまった痛手も長引きそうです…DNSSEC使ったところでレジストリが簡単にハイジャックされたとなれば意味がなくなっちゃいます。インターネットが脆弱なことを示す事件がまた増えましたが、事実関係が早くちゃんと明らかにされるとよいです。

EPSONプリンタ用 epson-201203j Linux向けCUPSドライバをFreeBSDで使ってみる

PostScriptプリンタが壊れ、つなぎに急遽エプソンのPX-435Aという、有線LAN無し、新しく入れ替えたインクを普通の文字だけの文書でも秒速で使い果たすという大食漢なプリンタを、アクセスポイントとの相性なのか無線LAN接続がいまいち安定しないので、長いことご無沙汰なUSB接続で使用するというお遊びをしてみます。

まずCUPS(print/cups-base)

lprで使えれば十分なのでZeroconfは無視します。
libusbを使う場合はulptなど他のドライバがロードされていない状態の素のugenであることが重要とpkg-messageに書かれていて、しかしこのプリンタはUSB接続した瞬間にulptどころかSDカードリーダでumassまでロードされて後で何かとめんどそうなので、逆にulptを使用してlibusbを使用しない方向に。

とかいうknobにしておいてくれれば良いのかも。いろいろな環境ではそう簡単な話じゃないのだとは思うけど。というわけでlibpaperとGhostscriptとD-Busを選択し、一方libusbの選択はされていない状態でインストールしてみます。

http://127.0.0.1:631/にアクセス。ちゃんとlocalhostだけでlistenしていて、デフォルト設定でいきなり普通に動作している模様。うれしい。

続いてCUPS用ドライバ。GutenprintにPX-401Aはあるものの、まだPX-435Aは載っていませんでした(2013/7/5)。他のモデルやGenericなESC/P系でいけるのだろうと思うも試行錯誤がありそう。OpenPrntingのwebサイトによるとrpmやらdebやらがあるようなので、それにしてみることに。FreeBSDのlinuxulatorはFedra 10(なんと)の対応のパッケージが多いようなので、emulators/linux_base-f10をインストール。

なるほど。

epson-inkjet-printer-201203j-1.0.0-1lsb3.2.i486.rpmをダウンロードして、’package epson-inkjet-printer-201203j is not relocatable’だそうなのでrpm2cpioですごく変な場所に書きこまれてしまうものがないことを確認してからインストールしてみます(今思えばそのまま/compat/linux下にcpioで展開して、/optにsymlinkすればよかったです…)。

  • フィルタ: /opt/epson-inkjet-printer-201203j/cups/lib/filter/epson_inkjet_printer_filter
  • PPD(gzip): /opt/epson-inkjet-printer-201203j/ppds/Epson/Epson-PX-435A_Series-epson-driver.ppd.gz

のようです。

lsbなんじゃそりゃ、とほこりをかぶったUbuntu機で確認。なるほど、いろんなディストロ向けのパッケージングをしやすくするためのものですか。えいっ、

あとはたんたんと繰り返し。

ふつうのユーザでフィルタを実行してみる

ダイナミックリンクは解決してちゃんと動作してエラーを出力。結果的にLSB 3.2なるものがFedra 10との相性抜群なおかげもあってportsで全部済み、ありがたいことこのうえないです。stringsで覗いてコマンドは呼び出していなさそうなので、これでOKなはず。

http://127.0.0.1:631/で、Find New Printersでは無線LANの接続だけが見つかるので、Add Priterを押し、Local Printers ‘USB Printer #1’ で追加。Or Provide a PPD File:に先ほどの /opt/epson-inkjet-printer-201203j/ppds/Epson/Epson-PX-435A_Series-epson-driver.ppd.gz を指定してAdd Printer。デフォルト設定をしてからPrint Test Pageであっさり印字されました。linuxulator を動かす分の手間だけで、本当にいい世の中になったものです。

続いて他の*BSD機でも使えるようにとman cups-lpdするとinetd経由で呼ぶのが吉とのこと。inetdで起動しているものは何もなかったので、/etc/inetd.confが変なもの起動しないことを確認、/etc/hosts.allow(TCP wrapperの作者は今はPostfixで有名なWietse Venemaさんですね)を適切に指定してからinetdを起動するようにします。そしてCUPSが自動生成したprintcapを見ておきます。

他の*BSD機にはCUPS不要でlpdが動いていなければ動かすだけ、例えば、

そして先ほどのサーバ側のprintcapを素の/usr/bin/lprが見てくれる/etc/printcapに追記します。

他に使えるプリンタがないので lp にして引き数無しで使えるデフォルトにし、バナーは不要なので sh を追加します。webブラウザから印刷でlprしてみたところさくっと印刷してくれました。めでたしめでたし。

おまけ。せっかくCUPSいじったので、横でネットワークにつながっ
ているCITIZEN CT-S300のドライバ追加してみます。 ctzpos-cups-1.1.0-0.src.rpm というsource rpmがあるので、こちらはそのままいけそうです。

これで

  • CT-S280
  • CT-S281/281L
  • CT-S300
  • CT-S310
  • CT-S2000/2000L
  • CT-S4000
  • CT-S601/S651
  • CT-S801/801L
  • CT-S851
  • PPU-700
  • CT-P29X
  • CBM1000
  • CD-S500
  • PMU22XX
  • PMU23XX

がFreeBSDのCUPSでも使えるはず。うちのCT-S300は’Find New Printers’で見つかり、自動的に socket://xxxxxxxx になりました。ポートが明示されていない場合のデフォルトポートは9100の模様です。そのまま追加完了して、デフォルト設定を74mm x 2000mmにしたら、えらい長いテストページの左端だけが出てきました…

NTT VG230i – ひかり電話SIP <-> ISDN ゲートウェイ

電波時計で 2012-12-12 12:12:12 を見ようと思っていたら、過ぎてました。

あまりのショックにというわけではないですがVG230i
Server: mcas/3.0 (VG230i 2.0.0.0; B2BUA; NTTEAST/NTTWEST)
を4台ほどNTTより取り寄せ、某所で予定より早く使う必要が出たので試しにいじってみました。取り寄せる前にオンラインで取扱説明書を見ました。「テレホタイム」という言葉が存在していた10年以上前になんかよくわからんけど P-MP で申し込むんだぁ!と申込書にチェックを付けた懐かしい記憶がよみがえり、今や自分が P-MP or P-P の設定をする側の立場になれるのかと優越感には浸れるものの、知りたいSIP/2.0側の情報は「本商品は、接続後、ひかり電話ルータが自動設定サーバから取得したひかり電話の設定情報を自動的に取得します」ということしかわかりません。無いよりましそうなので気づいたことを順不同で羅列しておきます。「ひかり電話」、「自動設定サーバ」ですぐに何のことかわかる人には(にも)不要な情報だと思われます。

ファームウェアのバージョンや組み合わせるNGN/フレッツ網やひかり電話ルータによって違う動作をするか、あるいはまったく動作しないかもしれません。あと下の拠点bのRV-230SEでは動作しましたが、そもそもBフレッツはVG230iの対応する動作環境とはなっていないようです。下記のDHCPに対応できていないひかり電話ルータがあるとかいう話でしょうか、それともQoS絡みでしょうか。あしからず。

  • VG230i 2.0.0.0
  • 使用したひかり電話ルータ/ホームゲートウェイ: RT-400NE 4.02(フレッツ光ネクスト)(拠点a) および RV-230SE 16.14(Bフレッツ)(拠点b)
  • 横で動作していたルータなど: 拠点a,b ともに NVR500(ATAとして) 11.00.19 および RTX1200(PPPoEおよびVLAN担当) 10.01.42
  • 「ひかり電話ルータが自動設定サーバから取得したひかり電話の設定情報を自動的に取得します」の「設定情報を自動的に取得します」とはDHCPのことらしい(((Bフレッツ版では:DHCPにてIPアドレス等を取得した場合の技術条件 -) ユーザ・網インタフェース仕様 – レイヤ3の仕様 – IPv4プロトコル)。VG230iにログされているDHCP後の「簡易設定」は意味が良くわからないのでパケット見るしかないかも。
  • ログから見るとDHCP optionは 1,3,6,51,53,54,58,59,90,120,125 が渡ってきている模様
  • ログから見るとその直後に「簡易設定」なるものをして「自動設定」が完了する模様。
  • VG230iの設定ページから自分で好きなSIPサーバを設定することはできない。
  • 端末とは「音声利用IP 通信網サービス(第2種サービスタイプ2)に接続される端末機器のうち、セッション制御用ユーザエージェント(SIP-UA)を実装するものを指す。特に、網に対して、セッションを起動する側の端末を発端末、網からセッションを起動される端末を着端末と呼ぶ。」そうです。Bフレッツ(第2種サービスタイプ1)版にも同じことが書いてあるのは第6.0版でのコピペ後の修正忘れでしょうか。

面白そうな項目など

  • アドレス重複時の対策
  • 「また、端末が利用可能なIPv4アドレスは、網に接続する際に網から割り当てられたIPv4アドレスの範囲のみで、その他のIPv4アドレスを利用した場合の動作は保証されません。」
  • 音声利用IP通信網サービス(第1種サービス)のインターフェース-ひかり電話ビジネスタイプ- では、「また、発ユーザが通知したい発番号を送信INVITEのP-Preferred-Identityに設定することで着ユーザにその番号を通知可能とします。」となっている。ビジネスでなら当たり前なことができるということか…それとも実はひかり電話でもできる?
  • 関係なさそうだけどなんかみつけたので気が向いたら読む。特開2009-200980

というわけで PPPoEパススルー している人はひかり電話ルータのDHCPサーバを使っていない人が多いでしょうから、ひかり電話ルータのDHCPサーバを動作させてVG230iに「設定情報を自動的に取得」させてあげる必要あり(PPPoEパススルーのままで動作してました)。”ngn type lanX ntt”したRTX1200やNVR500のDHCPサーバはもしかしたらVG230i用に使えるのかもしれない(*1)(確認してません)。

既にひかり電話ルータに自力でSIP接続している場合は以下のように内線設定が自動的に書き換えられてしまうので、VG230iを接続する前に受け入れ態勢を整え、ひかり電話ルータの設定を保存しておかないと半べそになります。

  • VG230iが端末登録(ユーザ網インタフェース仕様 – セッション制御(ここはセションではないのねん))するとひかり電話ルータは、「使用する」にチェックがついていて、その時点でSIPでREGISTERされていない内線を相手に明け渡し、相手のMACアドレスをその内線設定に書き込む。VG230iに対してRV-230SEはSIPユーザIDとSIPパスワードも渡したことを確認。ちゃんと網羅して確認していないがユーザIDとパスワードをブランクに設定し、あるのはMACアドレスのみにするという場合もあったように見える。
  • 気づいて別の内線に変えようとしてもMACアドレスが重複する設定はできないので、SIPクライアント側を切断(expire 0)してLANケーブルを抜くか、あるいは「使用する」のチェックを全部はずし、勝手に変更されて困った方の内線設定をあって欲しい姿に戻してから、接続してほしい方の内線設定にMACアドレスを設定してやり直す、という不毛な作業が発生します。

ISDN側にもいろいろつなげました。手近にあったTAを1台とNVR500を2台の計3台、NVR部分はなつかしのBMJ-8相当の分岐を使ってLANケーブルでバス接続、できあがった全7個のアナログ回線には計14個のRJ11 RJ45アダプタを利用しLANケーブルで家庭用電話機やモデムと接続、NVRはLANに接続、さらにTAのRS-232CのDB9ピンにもRJ45アダプタを利用した挙句にRS-232CのついているPCが離れていたので RS-232C LANコンバータ を2台使用。普段からなんでもLANケーブルで済ませるという横着のおかげでアナログ電話周りなのにLANケーブルだらけの変態試験環境になってしまいました。LANケーブルをLAN用に使っている部分はNVRのsyslog出力用と、RS-232C over IPの部分だけですね… 一部で人気の某機のようにひかり電話ルータが出力するモデムダイアルインやナンバーディスプレイ信号で誤動作することもなく(SIP機とアナログ線機で対決させては非常にかわいそうだけど)、NVRの吐くsyslogをsyslog-ngに喰わせて簡単なシェルスクリプトで自分好みのCTIになったところで満足して解体。倉庫からホコリをかぶったホームテレホンを引っ張り出してくる元気は無かったのでここで終了。発信者番号が1つに固定なのが悲しいので、全部の発信者番号で内線登録してでもなんとかするといった改善をしてくれればもう8,400円はお買い得と思われます。というか1IPアドレス1内線(ユーザ網インタフェース仕様 – セッション制御 – 端末登録 – 端末登録の制限)というひかり電話側のしょぼい制限を昔のように無くしてもらえないものだろうか…

FAXは1つのFAXモデムを、受信2回線、送信1回線で使うために TELFAX MINI P&Pというかゆいところに手が届く製品を多く作っている会社の切り替え機を使ってしましたが、ついでにここもシンプルに整理しよう。

落書きのようなものなので随時追加、修正します。読みづらくてすいません。間違いなどはコメントで教えてくださいませ。

(*1) 2017/6/8追記: 実験されたmobu様よりIPアドレスも割り振られないとのご連絡をいただきました。確かにこの状態ではSIPサーバがどこにもいないのでSIP <-> ISDNゲートウェイであるVG230iが動作する由もないのでした。

チクタック、チクタック US Navy の時計

tick.usno.navy.mil と tock.usno.navy.mil のntpサーバが2000年を指していた模様。正確な時間に依存しているセキュリティモデルは壊滅してしまいますね。ちょっと前にも leap second でハングする Linuxカーネルとかあったような気がします。

あと全然関係ないですが、bitsquattingの話、面白いですね。typosquattingと違って注意してタイピングしていても防げないので。いつだったかソフトエラーを目の当たりにしてしまいましたし。