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ころ

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

MPEG 2.5

MPEG 2.5と言う表記を見掛けたのだが、どういうものか理解できなかった。 /usr/pkgsrc/audio を以下のように検索すると、 /usr/pkgsrc/audio/libmad/DESCR に、MPEG-2 extension to Lower Sam...