NetBSDでホスト名にアンダースコア(_)が入っていても不正なホスト名と認識されないようにする

Bloggerのpreviewは、アンダースコア(_)が入っているホスト名を利用している。 NetBSDは、かつてはアンダースコア入りのホスト名は許されていなくて、libc resolver library does not resolve host names with underscores ("_")でデフォルトで許容するようになっていた。 最近の議論を追えていないのだが、2021年4月30日に 戻されて、/etc/resolv.confno-check-namesオプションを指定しないと、アンダースコアが含まれているホスト名は許容されないようになっていた。 Bloggerで書いている以上、アンダースコアを含んだホスト名を許容しない訳にはいかないので、/etc/resolv.confno-check-namesオプションを含めておかなくてはいけない。 だが、/etc/resolv.confdhcpcd(8)を実行する度に内容が書き変わってしまうので、手で/etc/resolv.confで書き換えても永続化はできない。 /etc/resolvconf.confで設定して、/etc/resolv.confを再生成する度に、no-check-namesオプションを含めておくようにすれば良い。

$ cat /etc/resolvconf.conf
resolv_conf_options=no-check-names

こうしておくと、以下のようにoptions no-check-namesを含んだ/etc/resolv.confが生成される。

$ cat /etc/resolv.conf
# Generated by resolvconf
domain mylocalnetworkdomain
nameserver xxx.xxx.xxx.xxx
options no-check-names

JPEG形式の写真のEXIFデータを削除する

ディジタルカメラでJPEG形式で撮影した画像には、カメラや撮影条件の情報がEXIFデータとして含められている。 場合によっては、このEXIFデータを削除したい場合がある。 調べてみると、ImageMagick-stripオプションを付けたmogrifyコマンドで 簡単に削除できた。 以下のように実行すれば良い。

$ mogrify -strip *.JPG

Toshiba dynabook R731/16BでCloudReadyを使い、Chromium OSマシンとして使ってみる

東芝dynabook R731/16Bというラップトップを持っている。 Microsoft Windows 10も動くのだが、CPUはIntel Core i3-2310Mだし、メインメモリーも2GBなので、あまり快適ではない。 かといって、NetBSD/amd64をインストールしても、開発するには非力過ぎる。

最近はChromebookのシェアが伸びていると聞いて、そういえば何年か前はChromium OSを独自ビルドして配布している人がいたのを思い出して探してみた。 最近は放送大学のテレビ・ラジオの講義のインターネット配信がWidevine CDMを使っているので、これが視聴できれば便利である。 ちなみに、Chromebookとして販売されているラップトップでは、正常に視聴できると分かっている。

そこでChromium OSの独自ビルドを探してみると、2021年も熱心に安定版をビルドして配布している人はあまりいないようだ。 その中で、Googleに買収されたNeverwareという会社のCloudReadyの Homeエディションが無料で使えることが分かった。 ただ、安定版はChromium OS 89ベースだった。Chromium OS自体の最新安定版は91である。最新のDev channelとして提供されるのも90.1であるようだ。

インストールは、USBスティックにダウンロードしたイメージファイルを書き込んで、そこから起動させ、メニューのInstall OSから実行すれば、内蔵HDDにインストールできる。

当初の目的であったWidevine CDMを使ったビデオ配信は、問題なく視聴できた。 ちなみに、Androidアプリのインストールはサポートされていないし、サポートする予定もないとのことだ。 Linuxバイナリーの実行はメニューにはあったので有効化できそうだ。

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

NetBSDでホスト名にアンダースコア(_)が入っていても不正なホスト名と認識されないようにする

Bloggerのpreviewは、アンダースコア(_)が入っているホスト名を利用している。 NetBSDは、かつてはアンダースコア入りのホスト名は許されていなくて、 libc resolver library does not resolve host names wi...