VMware ESXi 6.7では、VMXNET 3を使っているのだが、VMXNET 2は提供されているのか把握していなかった。 ESXi 6.5仮想マシンでは、VMXNET 2 (Enhanced)というのがサポートされているようだ。 ESXi 6.7仮想マシンでは、VMXNET 3はサポートされているが、VMXNET 2はサポートされていないようだ。
CorvusSKK 2.7.6で.gzな辞書ファイルが利用できる
CorvusSKK 2.7.6で.gzな辞書ファイルに対応していた。
SKK辞書のページでは、gzipで圧縮された.gz
ファイルでダウンロードできる。
圧縮されていないファイルもダウンロードはできるのだが、自分で編集するものではないので、.gz
ファイルのままで利用できれば便利だと思っていた。
CorvusSKKは奇をてらっていないMicrosoft Windows用のSKKの実装として便利に利用させてもらっている。
LLVM/clangでビルドできるNetBSD-current
http://releng.NetBSD.org/builds/HEAD-llvm/によると、LLVM/clangでビルドを試みることができる NetBSD-currentは、以下のアーキテクチャーのようだ。
- evbarm-earm
- evbppc
- macppc
- sparc
- x86_64
- i386
- sparc64
notmuch Emacs clientでGnuPS 2でPGP/MIMEな電子署名をする方法
notmuch Emacs clientでは、メッセージを書いているバッファーで、C-c C-m (つまりRET) s p
と入力することで、PGP/MIMEな電子署名を付与することができる。
notmuch Emacs clientでPGP暗号化されたメッセージがDecryption Errorになる場合、または、GnuPG 2.2.16であらかじめパスフレーズをキャッシュしておく方法
IMAP4を利用することにして、Mewからnotmuch Emacs clientに乗り換えたのだが、なかなか機能の全容が分からず、電子メールの消化が進まなかった。
PGPで暗号化されたメッセージを受信した場合に、紫色のDecryption Error
が表示されて、復号できずに困っていたので、
どのようにすれば良いか書いておく。
まず前提としてGnuPG 2を使っている。
notmuch Emacs clientはGnuPG 2を使うのが標準のようなので、特に追加の設定はしていない。
Decryption Error
の意味は、GnuPG 2がパスフレーズを知らない状態を示しているようだ。
もしかしたら、~/.gnupg/gpg-agent.conf
にpinentry-program /usr/pkg/bin/pinentry-tty
ではなく、
pinentry-program /usr/pkg/bin/pinentry-emacs
を設定しておけば良いのかもしれないが、
今回の話はpinentry-tty
を使っている場合である。
pinentry-tty
は、GnuPG 2から呼ばない場合には、どうやら使えないようである。
また、gpg-agent
コマンドも--allow-preset-passphrase
コマンドライン引数か、
allow-preset-passphrase
を~/.gnupg/gpg-agent.conf
に設定しておく必要があった。
私はzshをログインシェルにしているので、~/.zlogin
に、以下のように設定した。
現在はevalはしないで良いような気もするのだが、確認していないので、従前の設定を踏襲してある、
eval `gpg-agent -s --daemon --allow-preset-passphrase`
次に、パスフレーズをキャッシュしておく。
パスフレーズをキャッシュするには、/usr/pkg/libexec/gpg-preset-passphrase
を使うのだが、
このコマンドにはkeygripという値を引数で指定する必要があるので、まずkeygripを確認する。
$ gpg2 --with-keygrip -K (snip) sec rsa4096 2004-07-12 [SC] 82A2DC9176E0A10A8ABBFD1BF40427FAC7D115F3 Keygrip = keygrip1keygrip1keygrip1keygrip1keygrip1 uid [ultimate] Ryo ONODERAuid [ultimate] Ryo ONODERA uid [ultimate] Ryo ONODERA uid [ultimate] Ryo ONODERA ssb rsa4096 2004-07-12 [E] Keygrip = keygrip2keygrip2keygrip2keygrip2keygrip2 (snip)
ここで使うのは、keygrip2keygrip2keygrip2keygrip2keygrip2
の方のkeygripの値である。
keygrip1keygrip1keygrip1keygrip1keygrip1
ではないので注意しなくてはいけない。
これを使って、以下のように実行する。
$ /usr/pkg/libexec/gpg-preset-passphrase --preset keygrip2keygrip2keygrip2keygrip2keygrip2 INPUT_YOUR_PASSPHRASE[enter key]これによって、パスフレーズがキャッシュされた。
こうしておくことで、notmuch Emacs clientでも復号できる。 Emacsにうまく統合するのが正しいのだろうが、事前にキャッシュするのは、これはこれでできて欲しい操作ではあると思うので書いておく。
NetBSD上のwpa_supplicantで、WPA-EAPなWi-Fiアクセスポイントに接続する
とある所のWPA-EAPなWi-Fiアクセスポイントに接続する機会があって、NetBSDをインストールしたラップトップを使ってみた。
このラップトップには、NetBSD/amd64 8.99がインストールされていて、iwm(4)
なデバイスを使っている。
まず、以下のような内容のテキストファイルを用意する。ここでは、wpa-eap.conf
と言うファイル名にしておく。
ユーザーIDとパスワードを使って認証するので、そのようにしている。
ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=wheel network={ scan_ssid=1 ssid="WIFIAPNAME" key_mgmt=WPA-EAP eap=PEAP identity="USERNAME@DOMAINNAME" password="PASSWORD" phase1="peaplabel=0" phase2="auth=MSCHAPV2" priority=0 }これを、以下のようにして実行する。
$ sudo wpa_supplicant -d -i iwm0 -c wpa-eap.conf
この設定値がどこでも正しい訳ではないはずだが、とある所のものはこれで動く。
PuTTY 0.71とECDSA秘密鍵の組み合わせのバグ
Windowsを使わないとけない状況があって、当然のようにNetBSDな環境にログインできないと面倒で仕方がない事というのはあって、 PuTTYを使ってSSHでログインしている。 しばらく前に、PuTTY 0.71にした時に、ECDSAな鍵をログイン先のNetBSDで追加しようとするとエラーになって足せないと言う問題があった。 PuTTY bug pageant-ecdsa-assert-failに 掲載されているバグのようだった。 PuTTYのSnapshot版では直っているので、pageant.exeのみ入れ替えて使っている。 Windowsには、当然のようにSSHの秘密鍵はNetBSD環境にログインするためだけのものしか置いていないので、 記載されているようにpagenant.exeの起動時に秘密鍵を指定することはできないので、こうするしかないようだ。
PostgreSQLのODBCドライバーをバッチファイルで登録する
PostgreSQLにはOLE DBドライバーのFLOSSな64ビット版がないようなので、ODBCを使わざるを得ないように思う。 そうなると、ODBCデータソースを設定しておかないといけない。 開発しているのは、都合があって64ビット版Microsoft Windows 10上でMicrosoft Excelであり、 利用者は64ビットWindows 10上の32ビット版のExcelを使っている。
利用者はスキル的にODBCドライバーの設定など正しくしてもらえそうではないので、バッチファイルを管理者権限で実行してもらう くらいにおさめたい。 64ビットWindows 10上で、32ビットExcelと64ビットExcelのそれぞれ用にODBCデータソースを作成するバッチファイルは以下のようである。
rem 32-bit OS/32-bit Office C:\Windows\System32\odbcconf.exe /A {CONFIGSYSDSN "PostgreSQL Unicode" "DSN=dsnname|DATABASE=databasename|SERVER=servername|PORT=5432|UID=postgres|PWD=password"} rem 64-bit OS/64-bit Office: C:\Windows\System32\odbcconf.exe /A {CONFIGSYSDSN "PostgreSQL Unicode(x64)" "DSN=dsnname|DATABASE=databasename|SERVER=servername|PORT=5432|UID=postgres|PWD=password"} rem 64-bit OS/32-bit Office: C:\Windows\SysWOW64\odbcconf.exe /A {CONFIGSYSDSN "PostgreSQL Unicode" "DSN=dsnname|DATABASE=databasename|SERVER=servername|PORT=5432|UID=postgres|PWD=password"}
Microsoft ExcelのVisual Basic for Applicationsで、Excelが32ビットか64ビットか判定する
いまだに、Microsoft Office 2010を使わされているのである。 だからと言う訳ではないが、Visual Basic for Applications (VBA)を使うことがある。 その場合には、OLE DBを使ってデータベースにアクセスして取得したレコードセットを操作することが多い。
そこで問題になるのが、データベースサーバーがPostgreSQLの場合である。 公式のOLE DBライブラリーがWin64用には存在しないのである。 となると、ODBCドライバーをインストールし、バッチファイルでシステムデータソースを設定するしかない。 しかも、32ビットと64ビットでODBCドライバーの名前は異なるので、VBA内で切り替えなくてはいけない。
そういう場合に役立つのが、条件付きコンパイルである。
以下のように、定数Win64
が真であるかどうかで判別すれば良い。
#If Win64 Then ' 64ビットMS Office用の処理 #else ' 32ビットMS Office用の処理 #end if
VBAでは何をするにも面倒なので、JavaScriptでもPythonでも良いので使えるようになって欲しい。
qemuのオーディオ機能をHelenOSで確認する
NetBSD上のqemuでオーディオ機能がちゃんと動くか確認しようと思っていたのだが、なかなかできなかった。 HelenOS 0.9.1 for IA32がSound Blaster 16とIntel HD Audioをサポートしているようで、 これらはqemuがエミュレートしてくれるデバイスでもあるので試してみた。 オーディオ出力は、PulseAudioを使うことにする。
pkgsrc/devel/SDL2をpulseaudioオプションを有効にしてインストールした上で、pkgsrc/emulators/qemuをインストールしてある。
$ cd /usr/pkgsrc/devel/SDL2 $ make PKG_OPTIONS.SDL2=pulseaudio install $ cd /usr/pkgsrc/emulators/qemu $ make installホストは、NetBSD/amd64 8.99.42である。 SDL2がPulseAudioを使うようにするには、以下のように環境変数を設定しておく。
$ set SDL_AUDIODRIVER=pulseaudio $ export SDL_AUDIODRIVERSound Blaster 16の場合には、以下のようにする。
qemu-system-i386 -cdrom HelenOS-0.9.1-ia32.iso -audiodev id=sdl,driver=sdl -soundhw sb16Intel HD AUdioの場合には、以下のようにする。
qemu-system-i386 -cdrom HelenOS-0.9.1-ia32.iso -audiodev id=sdl,driver=sdl -soundhw hda
開いたqemuのウィンドウ内のHelenOSのターミナルで、以下のように実行すればデモ用のwavファイルを再生できた。 あまりデモ向きの音ではないような…。
/ # wavplay demo.wav
plgarc/wip/llama.cppでpkgsrcのBLASサポートを探る
この記事は、 NetBSD Advent Calendar 2024 の13日目の記事です。 llama.cppを使ってみる 以前に、 NetBSD/amd64でllama.cppを使ってみる という記事で llama.cpp を使ってみていました。 あれか...
-
先週末に、OpenVMSを使ってみたいと思っていたのを思い出して、OpenVMSのhobbyist licenseを取得し、simhのVAXエミュレーターで使う、VAX用のインストール用のISOイメージをダウンロードしたので、その手順を書いておく。 どうやら、OpenVMS ...
-
Apache TomcatのフロントエンドにApche httpdを設置している環境がある。 Apache httpdとApache Tomcatの間は、AJP接続をしている。 Apache Tomcatを9.0.34にアップデートしたとこと、以下のようなエラーになってAJP接...
-
Arvel SRC06-USB USBシリアルケーブルというUSBシリアル変換器を持っている。 これにはFDTI製のUSBシリアル変換チップをい利用していて、USB VendorID/ProductID=0x0403/0x6001として認識される。 Arvelを買収...