How to use Zoom Video Conferencing with pkgsrc/www/firefox-88.0 under NetBSD/amd64 9.99.82

Zoom Video Conferencing supports Mozilla Firefox after 76.0 release The pkgsrc has Mozilla Firefox package as pkgsrc/www/firefox. And it is 88.0 as of 2021-04-26. You can install pkgsrc/www/firefox under NetBSD/amd64 9.99.82. The latest NetBSD/amd64-current (for example, 9.99.82) support XHCI isochronous transfer and you can use USB webcam with uviceo(4) device driver. And you can send and receive voices with pulseaudio option of pkgsrc/www/firefox. I will explain how to setup Zoom ready environment with pkgsrc/www/firefox-88.0 under NetBSD/amd64 9.99.82.

Update your NetBSD/amd64-current to the latest

uvideo(4) device driver for USB Video Class (UVC) webcams uses USB isochronous transfer. The latest NetBSD supports XHCI isochronous transfer and you should update your NetBSD/amd64-current environment to the latest. pkgsrc/www/firefox-88.0 should be built for NetBSD/evbarm64-current too. If your aarch64 machine has USB host controller that supports isochronous transfer, you can use the host controller to connect your UVC webcam.

If your machine has EHCI as host controller, you can connect UVC webcam to the ports that are controllerd by EHCI. As far as I understand correctly, NetBSD 9.1's ehci(4) device driver for USB EHCI supports isochronous transfer. If you use EHCI, it is not required to update your NetBSD to the latest current.

I tests UVC webcam on my Toshiba dynabook R63/PS laptop. Logitech Webcam C300 (VendorID/ProductID=0x056d/0x0805) and dynabook's internal UVC webcam (VendorID/ProductID=0x04f2/0xb3b2) work fine. The laptop has VendorID/ProductID=0x8086/0x9cb1 as XHCI and it works fine for USB isochronous transfer with uvideo(4) and uaudio(4). I have another laptop, Dell XPS 13 9300 and it has two XHCIs, VendorID/ProductID=0x8086/0x8a13 and 0x8086/0x34ed. The XHCIs do not work for uvideo(4) and works for uaudio(4). I do not figure out why NetBSD-current's XHCI USB isochronous support does not work for Dell XPS 13 9300 yet. If your UVC webcam displays camera image in very low frame-per-second (for example, 1/120 fps or lower), you encountered the same problem with my Dell XPS 13 9300.

Prepare pkgsrc packages

By default, pkgsrc/www/firefox-88.0 does not use PulseAudio audio backend and I cannot send my voice via WebRTC. pkgsrc/www/firefox under NetBSD uses Sun audio backend by default. I do not investigate deeper however I cannot send my voice with Sun audio backend. Of course I can receive and play the other's voice. I should identify why Sun audio backend does not work for audio capture, however I could not find a time.

Anyway, prebuit package (binary package) of pkgsrc/www/firefox does not have pulseaudio support and you must build and install pkgsrc/www/firefox from the source code tarball. If you have up-to-date pkgsrc tree in your /usr/pkgsrc, you can build and install pkgsrc/www/firefox as follows:

# cd /usr/pkgsrc/www/firefox
# make PKG_OPTIONS.firefox=pulseaudio install

After some hours, you can get PulseAudio ready Mozilla Firefox web browser for your NetBSD environment.

Set fake user-agent string for your Mozilla Firefox

The Firefox under NetBSD/amd64 has the following user-agent sting by default.

Mozilla/5.0 (X11; NetBSD amd64; rv:88.0) Gecko/20100101 Firefox/88.0 

Zoom Video Conferencing's web client checks the user-agent string and it rejects the web browser because my environment is not supported. Firefox add-on market has many user-agent switchers. I am usindg User-Agent Switcher by Linder to change my user-agent string to Linux. You must set your user-agent sting to Firefox under Linux. However its user-agent string indicates very old Firefox user-agent string (Firefox 31.0's). You must update your Firefox under Linux user-agent string as follows, for example:

Mozilla/5.0 (X11; Linux i586; rv:31.0) Gecko/20100101 Firefox/81.0

Of course this is strange and inconsistent, however Zoom does not check rv value (31.0) and you should update the last number to newer (81.0).

Start your video conferencing with Zoom web client

Follow Quick start guide for the Zoom web client instructions to connect to Zoom with the Firefox. I have no idea that Zoom video conferencing uses WebRTC. However video and audio captures use WebRTC interface at least. You can select video and audio sources in WebRTC source selection user interface of Firefox.

If your have problems to capture video, WebRTC samples getUserMedia: select resolution will help you to debug your situation. If you have problems in audio capture, WebRTC samples Audio stream volume is useful.

For audio capture, you should check your audio mixer settings with mixerctl(1) command. In my case, input source (laptop's internal microphone) is set as muted by default. I have the following /etc/mixerctl.conf file.

$ cat /etc/mixerctl.conf
inputs.reclvl.mute=off

Audible (www.audible.co.jp)のオーディオブックをNetBSD/amd64上のFirefox 87.0で再生する

AudibleというAmazonのやっているウェブサービスがあって、 当然のようにその音声データはWidevine CDMがないNetBSD/amd64上のFirefoxでは再生できないと思っていたのだが、 実際に試してみると再生できる。 その際、"The clearkey plugin has crashed."という警告メッセージが出るので、DRMを使おうとしているのだとは思うが、 使えなかった場合には、フォールバックする仕組みがあるのか、問題なく再生できる。

Spotifyで再生しようとした際にも、このclearkeyプラグインの警告は表示されていたはずで、Spotifyでは一切再生 できなかったように記憶している。

そもそもclearkey CDMを実際に利用しているサービスがあるような気が全くしないのだが、もし本当にAudibleが利用しようとしていて、 プラグインがクラッシュしているのであれば、pkgsrc/www/firefoxで直さないといけないように思う。

放送大学の「インターネット公開講座」

ずいぶんと長い間、放送大学の全科履修生(卒業して学士(教養)の学位をもらえる学生)をやっている。 最近では、放送授業のインターネット配信を自由に利用できるというのが、学生を継続している大きな理由であるように思う。 放送大学は、今はBSテレビとBSラジオで全国放送をするようになっている。 放送授業は、テレビはBS 232チャンネル、ラジオはBS 531チャンネルで放送されている。 この内容は基本的には学生向けのインターネット配信ウェブサイトで配信されていて、自分が受講している放送授業以外も自由に 視聴することができる。 BSテレビでは、生涯学習支援チャンネルであるBS 231チャンネルという放送もあって、スペシャル講義という区分の番組や、 放送大学アーカイブスという区分の過去の放送授業の再放送、日本語教育の講義、プログラミング教育の講義、データサイエンスの講義、情報セキュリティーの講義などが 放送されているはずである。 私はテレビ放送を見る習慣がないので、全くこれらの番組を視聴することができていなかった。

学生証の更新で、学習センターに行ったところ、広報誌ON AIRの紙版が置いてあって、そこで「放送大学インターネット公開講座」 と言うのが特集されていた。ウェブサイトを見てみると、下の方にリンクも存在する。 これまで存在に全く気付いていなかった。

ラインナップを見てみると、データサイエンスについての一部の講義と、プログラミング教育の講義以外は、無料で視聴できることが分かった。 逆に、データサイエンスについての講義の一部やプログラミング教育の講義は有料であり、受講するとテストがあり、合格するとOpen Badge v2仕様のデジタル認証バッジを取得できるらしい。

BS 231チャンネルで放送されている番組の全てがインターネット公開講座として存在している訳ではないし、BS 231チャンネルで視聴できてインターネット公開講座で有料のものもあるので、 完全に代替にはならないかもしれないが、チェックはしておきたい。

学生向けのインターネット配信は、どうやらWidevine CDMを使って配信されているようだ。 一方で、インターネット公開講座はVimeoベースのようで、DRMはない。NetBSD/amd64上のFirefoxでも視聴できる。

新しいリムネットのSMTPサーバーの認証方式を調べmsmtpで使う

リムネットの電子メールアドレスのみ目的として、ずいぶんと長い期間利用してきている。 2021年4月1日から、私のような電子メールアドレスだけ維持したい人にとっては、大幅値上げとなった。

値上げを機会にウェブサイトを見てみたところ、これまでのSMTP AUTHだけでなく、StartTLSもサポートされるSMTPサーバーが案内されていた。 しかし、いつものようにWindowsやmacOSのメールユーザーエージェントでの設定マニュアルしかなく、肝心な認証方式が明示されていない。 これまでであれば、telnetで接続して確認すれば良かった訳だが、StartTLSが必要なのでtelnetでは難しい。 OpenSSLのs_clientであればできたので、認証方式の確認方法を書いておく。

$ openssl s_client -connect mails.rim.or.jp:587 -starttls smtp
CONNECTED(00000006)
depth=2 C = JP, O = "SECOM Trust Systems CO.,LTD.", OU = Security Communication RootCA2
verify return:1
depth=1 C = JP, O = "Japan Registry Services Co., Ltd.", CN = JPRS Domain Validation Authority - G4
verify return:1
depth=0 CN = mails.rim.or.jp
verify return:1
---
Certificate chain
 0 s:CN = mails.rim.or.jp
   i:C = JP, O = "Japan Registry Services Co., Ltd.", CN = JPRS Domain Validation Authority - G4
 1 s:C = JP, O = "Japan Registry Services Co., Ltd.", CN = JPRS Domain Validation Authority - G4
   i:C = JP, O = "SECOM Trust Systems CO.,LTD.", OU = Security Communication RootCA2
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIGyjCCBbKgAwIBAgIQT532t4NDUWB7LXzNmQGlvDANBgkqhkiG9w0BAQsFADBp
MQswCQYDVQQGEwJKUDEqMCgGA1UEChMhSmFwYW4gUmVnaXN0cnkgU2VydmljZXMg
Q28uLCBMdGQuMS4wLAYDVQQDEyVKUFJTIERvbWFpbiBWYWxpZGF0aW9uIEF1dGhv
cml0eSAtIEc0MB4XDTIwMDkwMTAxMTY1NFoXDTIxMDkzMDE0NTk1OVowGjEYMBYG
A1UEAxMPbWFpbHMucmltLm9yLmpwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEArEKY/HOWHwsO+BZ9cOqUD9Pm3UoUQlL4wodhBiTmnpKl9bwZoNEQiKer
cINLVdvK1cFEXJdvR/DS91l1NRHNEuA++bdIFEjynLyZOsc13a9Ph2DAnC3JWVAD
n7PqgHL7eIqAg1encmoFTM++2hrGQ0ibHQ0YaJ6ksdJO4hiX4vBMVV+qDq0eRfeq
yexcTxVfzj0x13M77lQJs+6hwEX5+OuY+nTY9EfOHuWsCTpvtOWdKpq5jB83IwW9
KsAvNv7xpVMFevfFojYpVho4BuiAsyg0WYO1xnxcUIxO8eaiubIf7qKXXxFNK+sO
DR3JbEuEQ/ICK/D/vNVEChZr5ziWVwIDAQABo4IDuzCCA7cwHwYDVR0jBBgwFoAU
fCTODaQ4LcezY16neHqNHUwuxxUwgZAGCCsGAQUFBwEBBIGDMIGAME8GCCsGAQUF
BzAChkNodHRwOi8vcmVwby5wdWJjZXJ0LmpwcnMuanAvc3BwY2EvanBycy9kdmNh
X2c0L0pQUlNfRFZDQV9HNF9ERVIuY2VyMC0GCCsGAQUFBzABhiFodHRwOi8vZHYu
ZzQub2NzcC5wdWJjZXJ0LmpwcnMuanAwGgYDVR0RBBMwEYIPbWFpbHMucmltLm9y
LmpwMFkGA1UdIARSMFAwRAYLKwYBBAGDpEMBAQQwNTAzBggrBgEFBQcCARYnaHR0
cDovL2pwcnMuanAvcHViY2VydC9pbmZvL3JlcG9zaXRvcnkvMAgGBmeBDAECATAT
BgNVHSUEDDAKBggrBgEFBQcDATBLBgNVHR8ERDBCMECgPqA8hjpodHRwOi8vcmVw
by5wdWJjZXJ0LmpwcnMuanAvc3BwY2EvanBycy9kdmNhX2c0L2Z1bGxjcmwuY3Js
MB0GA1UdDgQWBBSgR+YQ5YQATT7SK/uFkT60pIVUtzAOBgNVHQ8BAf8EBAMCBaAw
ggH3BgorBgEEAdZ5AgQCBIIB5wSCAeMB4QB2APZclC/RdzAiFFQYCDCUVo7jTRMZ
M7/fDC8gC8xO8WTjAAABdEdGLawAAAQDAEcwRQIhAIKqb8G+6QO/sGeA1na5J9Wl
XkUX3NmRKL0tZoxYV/NqAiAtR+b9EL6xwbp+cmWTWXVWStWyT+ZozCVdXcenKF+J
zwB3AH0+8viP/4hVaCTCwMqeUol5K8UOeAl/LmqXaJl+IvDXAAABdEdGL50AAAQD
AEgwRgIhAIbErwl45/bM5zpLjLLdFkcuGJD3YcZnkmBl9l3QNoKNAiEA4lvcivQg
7/vdNP8A/Wt2UCNOgmgUCFm8Z3XHvZpARn0AdwBc3EOS/uarRUSxXprUVuYQN/vV
+kfcoXOUsl7m9scOygAAAXRHRjJ8AAAEAwBIMEYCIQC5Oy/GKwlsw8Pqdm52Z3sv
K4GvwT2wdt4jrnGMvAMr0QIhAJlkD+Pf0Bph5bPMAI79Y59G6/KxM9RbWz9roUe+
vsAcAHUARJRlLrDuzq/EQAfYqP4owNrmgr7YyzG1P9MzlrW2gagAAAF0R0Y0+QAA
BAMARjBEAiBODY+IO45a5lw9RSrpmTP0k4jHLZQEeGb+dskIqwj8RwIgBI+Bbfe9
L7DX/m3ZGPFHfNhmgCFqIKCOBT1t2CeaIcUwDQYJKoZIhvcNAQELBQADggEBAC0k
IxsaSU4+bZmedGHEi7Hi+1Qcn+NecMJKk2ZdraToO5C5bw7lOnNG1P3MHrmKVcFA
kGJrcVjsQ7Q88HWT2aFsCw816ASEaPV4ObRV9Ez7FGaOITf86q0HXDViYxSxglmR
+iXM4kS3fB18b4PgZaH94Lyd5O1IWMT74fd/gpHcl8UNmzXHHDTlVDd6pNjGgmog
SzDjXqTZ1EUkCw6uDbFAgrtCQjQ8MkcUDD8P8TGOfyVh7v7NPXBpOoO/gy15cJwT
uEuz98o0i2czkZ8oPEjLJTxbrRhWZaAwhMaLjMQYPCM4L5YgHH/XReniJYg1Zj9A
1RzTkI/+mfaZUFpLuJc=
-----END CERTIFICATE-----
subject=CN = mails.rim.or.jp

issuer=C = JP, O = "Japan Registry Services Co., Ltd.", CN = JPRS Domain Validation Authority - G4

---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 3831 bytes and written 476 bytes
Verification: OK
---
New, TLSv1.2, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID: 35F0843AB35F26236A543CAF46B32CFA23939B0278B9980723C0B28A51CB3074
    Session-ID-ctx:
    Master-Key: D9F4A55EB36CC3BAA5EAEDFD8F0A7E21EE5C57EEFBF7507DD83D06F3FAEB3C8C453116CEB73D90CE8054B333E61D08C9
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1618408385
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
---
250 DSN
EHLO mail.rim.or.jp
250-access05.SiriusCloud.jp
250-PIPELINING
250-SIZE 57671680
250-ETRN
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5と表示されているので、以前通りCRAM-MD5を継続利用できた。

と言うことで、~/.msmtprcは以下のようにすれば良い。

account rimnet
tls on
tls_certcheck off
tls_starttls on
host mails.rim.or.jp
port 587
protocol smtp
auth cram-md5
from username@xx.rim.or.jp
user username@xx.rim.or.jp
password "YOURPASSWORD"

比較のため、これまで利用していたSMTPサーバーの返答も記載しておく。

$ telnet mail.yk.rim.or.jp 587
Trying 219.118.67.45...
Connected to mail.yk.rim.or.jp.
Escape character is '^]'.
220 mail.yk.rim.or.jp ESMTP (submission cluster node 03)
EHLO mail.yk.rim.or.jp
250-access03.SiriusCloud.jp
250-PIPELINING
250-SIZE 57671680
250-ETRN
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

Dell XPS 13 9300を再度修理してもらった

購入直後に修理してもらったDell XPS 13 9300だが、 ファンが大きな異音を発生するようになってしまったので、訪問修理をしてもらった。

2021年4月5日11:48ごろ

修理受付のフリーダイヤルの電話番号へ電話し、ファンから大きな異音が発生している旨を伝えた。 自己診断機能を電話中に実施したがエラー表示はなく、既にBIOSも最新化してあったため、 訪問修理をしてもらうことになった。オペレーターにはすぐにつながり、約30分間の通話だった。 電話の最後に、電子メールアドレスの確認のため、電子メールのテスト送信がされた。 修理前後の部品の配送はヤマト運輸で行うとのことであった。

2021年4月5日16:36ころ

訪問修理のスケジュール調整をする電話があり、2021年4月8日16:00から17:00の間に来訪してもらい、 修理をしてもらうこととなった。

2021年4月6日12:00ころ

訪問修理の訪問先である自宅に交換部品が届いた。薄型ではあるがサイズは結構大きい荷物だった。 航空便という扱いの荷物であった。 サポートウェブページによると、ファン2つとヒートシンク、その他小物の部品が入っているらしい。

2021年4月8日16:30ころ

技術者が来訪し、免責のサインをiPhone上でした上で作業を開始した。

2021年4月8日16:54ころ

ファンを左右2つ交換し、動作確認を実施した。 ファン交換前は、envstat(8)コマンドで確認すると、すぐにCPU温度が95℃以上になっていたのだが、 pkgsrc/www/firefoxをmake buildしてみても、85℃くらいまでしか温度が上昇しないようになった。 ファンは右側が故障している可能性があるとのことだったが、念のため左右ともに交換されたとのことであった。 最後に修理完了とのことで、再度iPhone上でサインをした。

2021年4月10日

修理の満足度調査回答依頼の電子メールが来ていたので、ウェブページから回答した。

2021年4月12日14:45ころ

交換済みの部品や修理に使用しなかった部品の入っている荷物を、ヤマト運輸で料金着払いで回収してもらった。

無償のVMware ESXi 7.0を7.0bから7.0u1dにアップデートした

VMware-VMvisor-Installer-7.0b-16324942.x86_64.isoでインストールした7.0b を使っていた。 ESXi 7.0自体はアップデートされているのだが、 7.0bより先のISOイメージはダウンロード可能になっていない。

https://my.vmware.com/group/vmware/patch からダウンロードした VMware-ESXi-7.0U1d-17551050-depot.zipを使ってアップデートしてみた。

私の環境は、ネットワークインターフェイスカードとして、Intel PRO/1000 PT Server AdapterというGigabit Ethernet adapterを利用している。 これは、VID/PID=8086/107dというデバイスであり、 VMware ESXiのhardware compatibility list によると、ESXi 7.0ではサポート対象ではない。

しかし、 VMware-ESXi-7.0U1d-17551050-depot.zip 内の vmw-ESXi-7.0.1-metadata.zip に中にある vibs/ne1000-8399353616073568098.xml によると、8086107dという文字列があり、ne1000デバイスドライバーで動くはずである。 ちなみに、7.0bでは正常に動作している。

ダウンロードしたdepotファイルをESXi上に置き、以下を実行して、どのような プロファイルがあるのか確認する。

[root@bismuth:~] esxcli software sources profile list --depot=/vmfs/volumes/670u2/depot/VMware-ESXi-7.0U1d-17551050-depot.zip
Name                           Vendor        Acceptance Level  Creation Time        Modification Time
-----------------------------  ------------  ----------------  -------------------  -----------------
ESXi-7.0U1d-17551050-no-tools  VMware, Inc.  PartnerSupported  2021-02-01T18:29:08  2021-02-01T18:29:08
ESXi-7.0U1d-17551050-standard  VMware, Inc.  PartnerSupported  2021-02-01T18:29:07  2021-02-01T18:29:07

ESXi-7.0U1d-17551050-standardというプロファイルを使うことにして、 アップデートを実行する。

[root@bismuth:~] esxcli software profile update --depot=/vmfs/volumes/670u2/depot/VMware-ESXi-7.0U1d-17551050-depot.zip --profile=ESXi-7.0U1d-17551050-standard
 [HardwareError]
 Hardware precheck of profile ESXi-7.0U1d-17551050-standard failed with warnings: <UNSUPPORTED_DEVICES WARNING: This host has unsupported devices [<PciInfo ' [8086:107d 8086:1082]'>]>

 Apply --no-hardware-warning option to ignore the warnings and proceed with the transaction.
 Please refer to the log file for more details.

Intel PRO/1000 PT Server Adapterはサポートされたデバイスではないため、 エラーとなってそのままではインストールできない。 促されたように、--no-hardware-warningオプションを付けてアップデートをしてみる。

[root@bismuth:~] esxcli software profile update --depot=/vmfs/volumes/670u2/depo
t/VMware-ESXi-7.0U1d-17551050-depot.zip --profile=ESXi-7.0U1d-17551050-standard
--no-hardware-warning
Update Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed: VMW_bootbank_bnxtnet_216.0.50.0-16vmw.701.0.0.16850804, VMW_bootbank_bnxtroce_216.0.58.0-7vmw.701.0.0.16850804, VMW_bootbank_brcmfcoe_12.0.1500.0-1vmw.701.0.0.16850804, VMW_bootbank_brcmnvmefc_12.6.278.10-3vmw.701.0.0.16850804, VMW_bootbank_elxiscsi_12.0.1200.0-2vmw.701.0.0.16850804, VMW_bootbank_elxnet_12.0.1250.0-5vmw.701.0.0.16850804, VMW_bootbank_i40en_1.8.1.123-1vmw.701.0.0.16850804, VMW_bootbank_i40iwn_1.1.2.6-1vmw.701.0.0.16850804, VMW_bootbank_iavmd_2.0.0.1055-5vmw.701.0.0.16850804, VMW_bootbank_icen_1.0.0.9-1vmw.701.0.0.16850804, VMW_bootbank_igbn_0.1.1.0-7vmw.701.0.0.16850804, VMW_bootbank_iser_1.1.0.1-1vmw.701.0.0.16850804, VMW_bootbank_ixgben_1.7.1.28-1vmw.701.0.0.16850804, VMW_bootbank_lpfc_12.6.278.10-8vmw.701.0.0.16850804, VMW_bootbank_lpnic_11.4.62.0-1vmw.701.0.0.16850804, VMW_bootbank_lsi-mr3_7.712.51.00-1vmw.701.0.0.16850804, VMW_bootbank_lsi-msgpt2_20.00.06.00-3vmw.701.0.0.16850804, VMW_bootbank_lsi-msgpt35_13.00.13.00-2vmw.701.0.0.16850804, VMW_bootbank_lsi-msgpt3_17.00.10.00-2vmw.701.0.0.16850804, VMW_bootbank_mtip32xx-native_3.9.8-1vmw.701.0.0.16850804, VMW_bootbank_ne1000_0.8.4-11vmw.701.0.0.16850804, VMW_bootbank_nenic_1.0.29.0-2vmw.701.0.0.16850804, VMW_bootbank_nfnic_4.0.0.44-2vmw.701.0.0.16850804, VMW_bootbank_nhpsa_70.0051.0.100-2vmw.701.0.25.17325551, VMW_bootbank_nmlx4-core_3.19.16.8-2vmw.701.0.0.16850804, VMW_bootbank_nmlx4-en_3.19.16.8-2vmw.701.0.0.16850804, VMW_bootbank_nmlx4-rdma_3.19.16.8-2vmw.701.0.0.16850804, VMW_bootbank_nmlx5-core_4.19.16.8-2vmw.701.0.0.16850804, VMW_bootbank_nmlx5-rdma_4.19.16.8-2vmw.701.0.0.16850804, VMW_bootbank_ntg3_4.1.5.0-0vmw.701.0.0.16850804, VMW_bootbank_nvme-pcie_1.2.3.9-2vmw.701.0.0.16850804, VMW_bootbank_nvmerdma_1.0.1.2-1vmw.701.0.20.17325020, VMW_bootbank_nvmxnet3-ens_2.0.0.22-1vmw.701.0.0.16850804, VMW_bootbank_nvmxnet3_2.0.0.30-1vmw.701.0.0.16850804, VMW_bootbank_pvscsi_0.1-2vmw.701.0.0.16850804, VMW_bootbank_qcnic_1.0.15.0-10vmw.701.0.0.16850804, VMW_bootbank_qedentv_3.40.3.0-12vmw.701.0.0.16850804, VMW_bootbank_qedrntv_3.40.4.0-12vmw.701.0.0.16850804, VMW_bootbank_qfle3_1.0.67.0-9vmw.701.0.0.16850804, VMW_bootbank_qfle3f_1.0.51.0-14vmw.701.0.0.16850804, VMW_bootbank_qfle3i_1.0.15.0-9vmw.701.0.0.16850804, VMW_bootbank_qflge_1.1.0.11-1vmw.701.0.0.16850804, VMW_bootbank_rste_2.0.2.0088-7vmw.701.0.0.16850804, VMW_bootbank_sfvmk_2.4.0.0010-15vmw.701.0.0.16850804, VMW_bootbank_smartpqi_70.4000.0.100-4vmw.701.0.25.17325551, VMW_bootbank_vmkata_0.1-1vmw.701.0.25.17325551, VMW_bootbank_vmkfcoe_1.0.0.2-1vmw.701.0.20.17325020, VMW_bootbank_vmkusb_0.1-1vmw.701.0.25.17325551, VMW_bootbank_vmw-ahci_2.0.5-2vmw.701.0.0.16850804, VMware_bootbank_cpu-microcode_7.0.1-0.30.17551050, VMware_bootbank_crx_7.0.1-0.30.17551050, VMware_bootbank_elx-esx-libelxima.so_12.0.1200.0-3vmw.701.0.0.16850804, VMware_bootbank_esx-base_7.0.1-0.30.17551050, VMware_bootbank_esx-dvfilter-generic-fastpath_7.0.1-0.30.17551050, VMware_bootbank_esx-ui_1.34.4-16668064, VMware_bootbank_esx-update_7.0.1-0.30.17551050, VMware_bootbank_esx-xserver_7.0.1-0.30.17551050, VMware_bootbank_gc_7.0.1-0.30.17551050, VMware_bootbank_loadesx_7.0.1-0.30.17551050, VMware_bootbank_lsuv2-hpv2-hpsa-plugin_1.0.0-3vmw.701.0.0.16850804, VMware_bootbank_lsuv2-intelv2-nvme-vmd-plugin_1.0.0-2vmw.701.0.0.16850804, VMware_bootbank_lsuv2-lsiv2-drivers-plugin_1.0.0-4vmw.701.0.0.16850804, VMware_bootbank_lsuv2-nvme-pcie-plugin_1.0.0-1vmw.701.0.0.16850804, VMware_bootbank_lsuv2-oem-dell-plugin_1.0.0-1vmw.701.0.0.16850804, VMware_bootbank_lsuv2-oem-hp-plugin_1.0.0-1vmw.701.0.0.16850804, VMware_bootbank_lsuv2-oem-lenovo-plugin_1.0.0-1vmw.701.0.0.16850804, VMware_bootbank_lsuv2-smartpqiv2-plugin_1.0.0-4vmw.701.0.0.16850804, VMware_bootbank_native-misc-drivers_7.0.1-0.30.17551050, VMware_bootbank_qlnativefc_4.0.3.0-17vmw.701.0.0.16850804, VMware_bootbank_vdfs_7.0.1-0.30.17551050, VMware_bootbank_vmware-esx-esxcli-nvme-plugin_1.2.0.38-1vmw.701.0.0.16850804, VMware_bootbank_vsan_7.0.1-0.30.17551050, VMware_bootbank_vsanhealth_7.0.1-0.30.17551050, VMware_locker_tools-light_11.1.1.16303738-16850804
   VIBs Removed: VMW_bootbank_bnxtnet_216.0.50.0-4vmw.700.1.0.15843807, VMW_bootbank_bnxtroce_216.0.58.0-1vmw.700.1.0.15843807, VMW_bootbank_brcmfcoe_12.0.1500.0-1vmw.700.1.0.15843807, VMW_bootbank_brcmnvmefc_12.4.293.2-3vmw.700.1.0.15843807, VMW_bootbank_elxiscsi_12.0.1200.0-1vmw.700.1.0.15843807, VMW_bootbank_elxnet_12.0.1250.0-5vmw.700.1.0.15843807, VMW_bootbank_i40en_1.8.1.16-1vmw.700.1.0.15843807, VMW_bootbank_i40iwn_1.1.2.5-1vmw.700.1.0.15843807, VMW_bootbank_iavmd_2.0.0.1055-3vmw.700.1.0.15843807, VMW_bootbank_igbn_0.1.1.0-6vmw.700.1.0.15843807, VMW_bootbank_iser_1.1.0.0-1vmw.700.1.0.15843807, VMW_bootbank_ixgben_1.7.1.26-1vmw.700.1.0.15843807, VMW_bootbank_lpfc_12.4.293.3-5vmw.700.1.0.15843807, VMW_bootbank_lpnic_11.4.62.0-1vmw.700.1.0.15843807, VMW_bootbank_lsi-mr3_7.712.50.00-1vmw.700.1.0.15843807, VMW_bootbank_lsi-msgpt2_20.00.06.00-2vmw.700.1.0.15843807, VMW_bootbank_lsi-msgpt35_13.00.12.00-1vmw.700.1.0.15843807, VMW_bootbank_lsi-msgpt3_17.00.10.00-1vmw.700.1.0.15843807, VMW_bootbank_mtip32xx-native_3.9.8-1vmw.700.1.0.15843807, VMW_bootbank_ne1000_0.8.4-10vmw.700.1.0.15843807, VMW_bootbank_nenic_1.0.29.0-1vmw.700.1.0.15843807, VMW_bootbank_nfnic_4.0.0.44-1vmw.700.1.0.15843807, VMW_bootbank_nhpsa_2.0.50-1vmw.700.1.0.15843807, VMW_bootbank_nmlx4-core_3.19.16.7-1vmw.700.1.0.15843807, VMW_bootbank_nmlx4-en_3.19.16.7-1vmw.700.1.0.15843807, VMW_bootbank_nmlx4-rdma_3.19.16.7-1vmw.700.1.0.15843807, VMW_bootbank_nmlx5-core_4.19.16.7-1vmw.700.1.0.15843807, VMW_bootbank_nmlx5-rdma_4.19.16.7-1vmw.700.1.0.15843807, VMW_bootbank_ntg3_4.1.4.1-1vmw.700.1.0.15843807, VMW_bootbank_nvme-pcie_1.2.2.14-1vmw.700.1.25.16324942, VMW_bootbank_nvmerdma_1.0.0.0-1vmw.700.1.0.15843807, VMW_bootbank_nvmxnet3-ens_2.0.0.22-1vmw.700.1.0.15843807, VMW_bootbank_nvmxnet3_2.0.0.30-1vmw.700.1.0.15843807, VMW_bootbank_pvscsi_0.1-2vmw.700.1.0.15843807, VMW_bootbank_qcnic_1.0.15.0-8vmw.700.1.0.15843807, VMW_bootbank_qedentv_3.12.1.0-23vmw.700.1.0.15843807, VMW_bootbank_qedrntv_3.12.1.2-12vmw.700.1.0.15843807, VMW_bootbank_qfle3_1.0.66.0-5vmw.700.1.0.15843807, VMW_bootbank_qfle3f_1.0.51.0-12vmw.700.1.0.15843807, VMW_bootbank_qfle3i_1.0.15.0-6vmw.700.1.0.15843807, VMW_bootbank_qflge_1.1.0.11-1vmw.700.1.0.15843807, VMW_bootbank_rste_2.0.2.0088-7vmw.700.1.0.15843807, VMW_bootbank_sfvmk_2.0.0.1004-3vmw.700.1.0.15843807, VMW_bootbank_smartpqi_1.0.4.3011-1vmw.700.1.0.15843807, VMW_bootbank_vmkata_0.1-1vmw.700.1.0.15843807, VMW_bootbank_vmkfcoe_1.0.0.2-1vmw.700.1.0.15843807, VMW_bootbank_vmkusb_0.1-1vmw.700.1.25.16324942, VMW_bootbank_vmw-ahci_1.3.9-1vmw.700.1.0.15843807, VMware_bootbank_cpu-microcode_7.0.0-1.25.16324942, VMware_bootbank_crx_7.0.0-1.25.16324942, VMware_bootbank_elx-esx-libelxima.so_12.0.1200.0-2vmw.700.1.0.15843807, VMware_bootbank_esx-base_7.0.0-1.25.16324942, VMware_bootbank_esx-dvfilter-generic-fastpath_7.0.0-1.25.16324942, VMware_bootbank_esx-ui_1.34.0-15603211, VMware_bootbank_esx-update_7.0.0-1.25.16324942, VMware_bootbank_esx-xserver_7.0.0-1.25.16324942, VMware_bootbank_loadesx_7.0.0-1.25.16324942, VMware_bootbank_lsuv2-hpv2-hpsa-plugin_1.0.0-2vmw.700.1.0.15843807, VMware_bootbank_lsuv2-intelv2-nvme-vmd-plugin_1.0.0-2vmw.700.1.0.15843807, VMware_bootbank_lsuv2-lsiv2-drivers-plugin_1.0.0-2vmw.700.1.0.15843807, VMware_bootbank_lsuv2-nvme-pcie-plugin_1.0.0-1vmw.700.1.0.15843807, VMware_bootbank_lsuv2-oem-dell-plugin_1.0.0-1vmw.700.1.0.15843807, VMware_bootbank_lsuv2-oem-hp-plugin_1.0.0-1vmw.700.1.0.15843807, VMware_bootbank_lsuv2-oem-lenovo-plugin_1.0.0-1vmw.700.1.0.15843807, VMware_bootbank_lsuv2-smartpqiv2-plugin_1.0.0-3vmw.700.1.0.15843807, VMware_bootbank_native-misc-drivers_7.0.0-1.25.16324942, VMware_bootbank_qlnativefc_4.0.1.0-3vmw.700.1.0.15843807, VMware_bootbank_vdfs_7.0.0-1.25.16324942, VMware_bootbank_vmware-esx-esxcli-nvme-plugin_1.2.0.37-1vmw.700.1.0.15843807, VMware_bootbank_vsan_7.0.0-1.25.16324942, VMware_bootbank_vsanhealth_7.0.0-1.25.16324942, VMware_locker_tools-light_11.1.0.16036546-16321839
   VIBs Skipped:

インストール自体は正常に終了したので、ESXiを再起動させる。

[root@bismuth:~] reboot
[root@bismuth:~] Connection to bismuth closed by remote host.
Connection to bismuth closed.

再度ログインして、バージョンを確認し、アップデートできていることを確認した。

[root@bismuth:~] esxcli system version get
   Product: VMware ESXi
   Version: 7.0.1
   Build: Releasebuild-17551050
   Update: 1
   Patch: 30

GUI上では、7.0 Update 1になり、無償ライセンスも有効のままだった。 Intel PRO/1000 PT Server Adapterも正常に動作している。

JPEG 2000と特許とGhostscript

「標準化現場ノート(6) JPEG 2000」 小野 文孝, 映像情報メディア学会誌, 2010, 64 巻, 9 号, p. 1339-1343によると、 JPEG 2000の基本方式である Part 1においては、特許権を行使されないことが、 実務的には保証されているとのことである。 でも、後年どうなったのかは良く分からない。

私がこんなことを調べたのは、GhostscriptでJPEG 2000エンコードができない問題 について、 2017-08-23のIRCログ に、エンコーダーを実装するには特許の問題があるという記述があったからなのだが、 少なくとも今日調べてもエンコーダーの実装をするのに誰かの特許に抵触するような ウェブ上の情報は見付けられなかった。

問題ないのであれば、GhostscriptでJPEG 2000エンコーディングをサポートして欲しい。

Microsoft 365のMicrosoft Outlook 16.0.12527.20986で、古いアカウントの設定のウィザードを利用する

Microsoft Office 2010を長く使っていて、Microsoft Exchange Server 2013に対してオフラインキャッシュの無効になった接続をせざるを得ない。 そうすると、オフライン時には自分のプロファイルを全く開くことができず、自分の個人用フォルダーファイル(.pst)を参照することもできない。 そうなると困ってしまうので、.pstファイルのみを利用できるプロファイルを追加で作っておくことで、過去の電子メールを参照するしかない。

Microsoft 365のMicrosoft Offcie ProPlusのOutlook 16.0.12527.20986という古めのOutlookを使うことになったのだが、同様にオフラインキャッシュは無効になっていて、 .pstファイル用のプロファイルを作成するしかないということになった。 しかし、OUtlook 2010にあったアカウントの設定のウィザードはなくなっており、.pstファイルのみを利用できるような変わったプロファイルは作れなくなっていた。

調べてみると、古いアカウントの設定ウィザードはWindowsレジストリーで再び有効化することが可能だった。 以下のように実行すれば良い。

reg add HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Outlook\setup /v DisableOffice365SimplifiedAccountCreation /t REG_DWORD /d 1 /f

Windows 10で利用するバージョンを固定する

Windows 10 1909を使わないといけない場合があり、実際に後日利用する場合にはActive Directoryドメインに参加させるので、 勝手に2004以降にアップデートされることはない訳だが、初期セットアップの中でWindows Updateを実行しておきたい。 そうすると、勝手に2004や20H2にアップデートされてしまうことがある。 私は単にWindows Update経由で配布されるデバイスドライバーを利用したいだけなのだが。

機能更新のブロックやスキップができそうな Windows Update for Business の新ポリシー(from 1803)(追記あり)にあるように、 Windows 10 1803以降では、以下のようにWindowsレジストリーに登録することで1909に固定しておくことができた。

REG ADD HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /v TargetReleaseVersion /t REG_DWORD /d 1 /f
REG ADD HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /v TargetReleaseVersionInfo /t REG_SZ /d 1909 /f

Active Directryドメインに参加したら、これらはWindowsレジストリーから削除しておく。

OCNでIPv4 over IPv6 (IPoE)が利用できるか調べる

OCNをISPとして、回線はフレッツで利用しているのだが、IPoEなIPv6は使えるようになっているのだが、IPv4 over IPv6は利用できていない。 自分の環境でIPv4 over IPv6が使えるかどうか良く分からなかったので、使えるかどうかの確認方法を書いておく。 ちなみに、私の環境ではホームゲートウェイ(HGW)では、まだ利用できなかった。

HGWのファームウェアアップデートを確認する

OCNバーチャルコネクトサービス(IPoE接続)対応端末のPDFファイルを見ると、私の利用しているPR-500MIもサポート対象のHGWであるように見える。 しかし、備考に以下のように書いてあるのが気になる。どういう意味だろうか?

左記のホームゲートウェイをご利用の場合であっても、フレッツ・ジョイントによるIPv4 over IPv6接続用ソフトウェア配信機能をご利用でない場合、IPv6接続のみのご提供になります。

これは、ホームゲートウェイ(HGW) v6Neo接続設定方法というウェブページによると、 http://ntt.setup:8888/t/でファームウェアの配信がされているか確認できるものであるらしい。「配信済事業者ソフトウェア一覧」という画面である。 ここでブロック数が0/10でなければ、配信されているようだ。 つまり、HGWにログインしてアップデートするファームウェアの更新では配信されて来ないものであるようだ。

私の環境では、0/10だった。

ここまで把握した上で、OCNのマイページを見てみると、記載する内容を理解することができた。

OCNのマイページの見方

IPoEインターネット接続機能ページのIPoEインターネット接続機能の提供状況 にOCNマイページの見方が書かれている。私の場合は、「IPoEは、提供中」で「IPoE(ホームゲートウェイ・無線LANルーター*1対応)は、未提供」であった。 これはつまり、HGWにファームウェアを配信していないということを示しているようだ。

なので、この「IPoE(ホームゲートウェイ・無線LANルーター*1対応)」を注視していれば良いようだ。ちなみに、「提供中」になる場合には、電子メールで連絡が来るらしい。

HGWを使わないようにしたいのだが、ひかり電話周りをちゃんと理解しないといけない。

ノートに保護フィルムを貼る

ノートの表紙を補強するために、保護フィルムを貼る必要があった。

エーワン A-one ラミネート UVカット透明カバーフィルム 空気が抜けるタイプ 6枚 A4 35045を使ってみたら、 確かに上から押さえるだけで、空気を抜いて貼り付けることができた。 厚さも光沢も問題なく利用できた。

エーワンブランドなのだが、中の保護フィルムの保護紙の表示も3Mだし、パッケージのメーカー表示もスリーエム ジャパンになっている。 調べてみると、2010年に3Mグループになっていた

VMware ESXiでのネイティブバーチャルコンソール

VMware ESXi 7.0bを使ってpkgsrcの検証環境を構築している。 VMware ESXiでは既にWindowsネイティブなコンソールは提供されず、ウェブユーザーインターフェイス内のコンソールしかないと思っていた。 これはNetBSD上のFirefoxでも利用できるなど便利な面はあるのだが、 入力できないショートカットキーがあるなど、GUI環境を検証する場合には必ずしも便利ではないように感じていた。

Haiku R1/beta2の環境をVMware ESXi上で構築しようとしたら、ウェブUIのコンソールではマウスの操作 がキャプチャされなかった。 これはEmulating Haiku In ESXiに解消する方法が解説されていた。 その内容は、VMware Remote Console (VMRC)というのを使えば解消するらしい。これはWindowsとLinux/x86_64向けに提供されているらしい。 Windows 10で試してみた。

実際にMy VMwareのウェブサイトにログインしてダウンロードしインストールしてみると、Firefox for WindowsでVMware ESXiのウェブインターフェイスを開く部分にある "Launch remote console"というのが動くようになる。 これを選択すると、Windowsネイティブなリモートコンソールウィンドウが開くようになる。 VMware ESXiのウェブユーザーインターフェイスがタイムアウトでログアウトされても継続してコンソールを利用できるという利点もある。 Haikuについて言えば、もちろんマウスも正常に利用できる。 Haiku以外でもGUI環境で作業する場合には便利そうだ。

pkgsrcでの取り組みの話を書くべきか

pkgsrcで自分の使うソフトウェアを最新の状態で使えるようにしているつもりで、その成果というのはpkgsrcのtreeに全て反映されている。 と言うことで、改めてその内容を日本語で書いておくことが有用な気がしていなかった。 だが、良く考えてみると、どうやってその問題に到達したのかとか、どういう補助的なツールを使ったのかといったことは、コミットログに 書かなかったとすると、記憶の中にしか残っていないことになる。 コミットログに書くのがベストではあると思うが、ここにその取り組みの内容を書いておくのも有用かもしれない。

と言うことで、pkgsrcのタグを用意したので、折を見てpkgsrcでコードにもコミットログにも表現できなかったことを書いておくようにしたい。

olsrd2の動作確認をする方法

メッシュWi-Fi的なものを自分でやってみようと思って、olsrd2を使ってみたのだが、ちゃんとneighborsを見付けて接続できたのかが分かりにくかった。 私は結局複数のWi-Fiアクセスポイントを運用するのは止めることにしたので、olsrd2を動作確認以上には利用していないのだが、 折角なので、neighborsを見付けて接続できたか確認する方法だけ書いておきたい。

olsrd2はtelnet経由で少なくとも状態を確認できるようになっている。しかし、デフォルトでは2009番ポートが割り当てられていてlocalhost以外からは接続できないようになっているようだ。 各アクセスポイントにログインして確認するのは面倒である。 まずは、localhost以外からもtelnetでログインできるようにする。

そのためには、設定ファイルを書くのが楽なように思われる。コマンドラインでも指定できるようだが、少なくともどのオプションが必要なのか見極めるためにいろいろ試している段階では、 設定ファイルを書いた方が記録が残るという意味でも良いように思われる。設定ファイルを指定してolsrd2を起動するには、設定ファイルのファイル名がolsrd2.confだとしたら、 olsrd2 --load olsrd2.confのように実行する。このように起動すると、自動的にデーモンにはならないので、何度も設定ファイルを書き変えて試行している段階では 操作しやすい。

$ cat olsrd2.conf
[telnet]
        acl     default_accept
        bindto  192.168.1.2
        port    2009

ここで、192.168.1.2は、そのWi-FiアクセスポイントのIPアドレスで、設定・確認作業をしている端末から見えるIPアドレスを指定する。

その設定・確認用の端末からは、telnet 192.168.1.2 2009のようにログインして操作しても良いのだが、readline的なものもないので操作性が悪い。 NetBSD 9.99.80であれば、ncコマンドがbaseに含まれているので、以下のようにすれば良い。ここで/を付けているのは、 表示後にtelnetのセッションを残しておきたくないためである。

$ echo /nhdpinfo json link | nc 192.168.1.2 2009

これで、空ではないJSONが表示されれば、neighborsが検出されている。 うまく行かない場合には、olsrd2.conf[interface=eth0]のように、neighborsと通信できるネットワークインターフェイスを指定しておくと良いだろう。

nginxだけで、HTTPSとsshを同時に443番ポートで待ち受ける

はじめに

どんなにひどいネットワーク環境であっても、 せめて22番ポートくらいは通るようにしておいて欲しいものだが、 そういう訳にもいかない。 通るのは80と443のみである。

sshでログインする先のサーバーが、httpdを実行していなければ、80番ポートでも443番ポート でも良いので、sshdが待ち受けるように設定してしまえば、そんな環境からでも sshでログインして作業できるのだが、httpdを実行しているサーバーにログイン したいニーズは存在する。 そのサーバーがHTTPとHTTPSで配信しているファイルを変更したいからsshでログイン したいのであって、httpdを止める訳にはいかないのである。

そのサーバーのhttpdには、nginx-1.19.6を利用している。 HTTPSとsshを同時に待ち受けさせるには、sslhを使うのが一般的な解ではないかと思う。 pkgsrcでも、net/sslhとして収録されている。

しかし、nginxほどの拡張性のあるウェブサーバーであれば、それ自身でそれくらいの 多重化はできるのではないかと考えた。 検索してみると、nginxの公式blogに、 Running SSL and Non-SSL Protocols over the Same Port with NGINX 1.15.2 という記事があるのに気付いた。 $ssl_preread_protocolと言うのを使うと、HTTPSとsshを同時に待ち受けて それぞれ適切な方にリダイレクトさせることが可能だという。

実際に試してみた。

nginxの再インストール

pkgsrcを使ってnginx-1.19.6をインストールしている。 これまでは、標準のビルドオプションに加えて、HTTP/2のサポートを有効化していた。 これに加えて、$ssl_preread_protocolを有効にするには、 まずは/etc/mk.confに以下のように書いておく。

# vi /etc/mk.conf
(snip)
PKG_OPTIONS.nginx=http2 stream-ssl-preread
(snip)

この上で、nginx-1.19.6をインストールし直す。 以下のように実行すれば良い。/usr/pkg/etc/nginxディレクトリー内の 設定ファイルの変更は維持される。

# cd /usr/pkgsrc/www/nginx-devel
# make update

これで、nginxバイナリーは準備できた。 次に設定ファイルを変更していく。 方針は以下のようである。

  1. 443番ポートでHTTPSとsshを待ち受ける。
  2. 443番ポートに接続されたログを取得する。

これを実現するために、/usr/pkg/etc/nginx/nginx.confは以下のように 設定した。コメントを入れつつnginx.conf全体を掲載しておく。

$ cat /usr/pkg/etc/nginx/nginx.conf
user   nginx  nginx;
worker_processes  1;

events {
    # After increasing this value You probably should increase limit
    # of file descriptors (for example in start_precmd in startup script)
    worker_connections  1024;
}

# Share 443 port with TLS and ssh
# https://www.nginx.com/blog/running-non-ssl-protocols-over-ssl-port-nginx-1-15-2/
stream {
	upstream ssh {
		server localhost:22; # sshdはlocalhostの22番ポートで待機しているので、それにリダイレクトする。
	}

	upstream webtls {
		server localhost:8443; # httpdはHTTPSをlocalhostの8443番ポートで待機しているので、それにリダイレクトする。
	}

	map $ssl_preread_protocol $upstream {
		default webtls; # nginx blogではHTTPS側でTLSのClientHelloを指定していたが、
				# どのようなClientHelloが来るか分からないので、既定値としてはHTTPSにしている。
		"" ssh; # ClientHelloがない場合にはsshとして扱う。
	}

	log_format stream_log  '$remote_addr - [$time_local] '
		'$status'; # 最小限の接続ログを出力する。
	access_log /var/log/nginx/access_stream.log stream_log; # ログの出力先を設定する。

	# 実際に443番ポートの多重化を設定している。
	server {
		listen 443;

		proxy_pass $upstream;
		ssl_preread on;
	}
}

http {
    include       /usr/pkg/etc/nginx/mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  www.example.org;

        #charset koi8-r;

        #access_log  /var/log/nginx/host.access.log  main;

        location / {
            root   /usr/htdocs;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   share/examples/nginx/html;
        }

	location ~ ^/~(.+?)(/.*)?$ {
		alias /home/$1/public_html$2;
	}

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        /usr/pkg/etc/nginx/fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   share/examples/nginx/html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    server {
        listen       8443 http2 ssl; # 8443番ポートで待機させる。
        server_name  www.example.org;

        ssl_certificate      www.example.org.cer;
        ssl_certificate_key  www.example.org.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   /usr/htdocs;
            index  index.html index.htm;
        }

	location /pub {
		alias /usr/htdocs/pub;
		autoindex on;
		location ~*.diff {
			add_header Content-Type text/plain;
		}
	}

	location ~ ^/~(.+?)(/.*)?$ {
		alias /home/$1/public_html$2;
	}
    }

}

以下のように443番ポート経由でsshログインできるか確認する。 同時にHTTPSでもページを表示できるか確認する。

# /etc/rc.d/nginx restart
$ ssh www.example.org -p 443
$ w3m https://www.example.org/

HP ProBook 450 G7のタッチパッドをMicrosoft WIndows 10 1909以前で利用する

HP ProBook 450 G7を購入したところ、Microsoft Windows 10 2004がインストールされていた。 これを都合があってMicrosoft WIndows 10 1903にダウングレードして利用しようとしたところ、 内蔵のSynaptics製のタッチパッド(ClickPad)が認識されず、利用できなかった。

HPのフォーラムでの投稿を参考にして、 デバイスドライバーの配布ページからダウンロードできる Intel Serial IO Driver - Comet Lake 30.100.2020.7 Rev.Aというデバイスドライバーをインストールすると、認識され使えるようになった。

このデバイスドライバーは、Microsoft Windows 10 1909でも必要だった。

ローカルで大容量・多数のファイルをバックアップしたい場合

ネットワーク経由ではなく、ローカルのハードディスクドライブ間で多数・大容量のファイルをバックアップしたい場合にも、私はrsyncを使っている。 途中経過を表示してくれるし、途中で止まってしまった場合にもリカバリーが簡単だろうという意図である。 幸運にも途中で止まったことはないのだが、2回目以降は-uオプションを付ければ良いはずと考えている。

$ rsync -av /share/a/data/ /share/c/data/

Amazon Fire TV Stick第1世代のOSバージョンアップ

しばらく電源を入れていなかったAmazon Fire TV Stick (第1世代)があるのだが、後々面倒になるといけないのでOSのバージョンアップを しておくことにした。気付いたことを書いておきたい。

アップデート方法

Fire TVのソフトウェアをアップデートするに あるように、設定→My Fire TV→バージョン情報→アップデートを確認の順で選択すれば、OSアップデートすることができる。

しかし、複数バージョンのアップデートがある場合、一気に最新のバージョンにアップデートすることはできず、1世代ずつ順々に適用していくこととなる。

最新のバージョン

Fire TV端末およびアクセサリのソフトウェアアップデートに 記載のあるようなバージョンが各Fire TVデバイスの最新のOSのバージョンである。 しかし、2021-01-02現在、私の持っているAmazon Fire TV STick第1世代と第2世代は、いずれもFire OS 5.2.7.7ではなく5.2.7.6までしかアップデートできなかった。 新しいバージョンを見つけられないようだった。

How to use Zoom Video Conferencing with pkgsrc/www/firefox-88.0 under NetBSD/amd64 9.99.82

Zoom Video Conferencing supports Mozilla Firefox after 76.0 release The pkgsrc has Mozilla Firefox package as pkgsrc/www/firefox. And...