YANO's digital garage

Copyright ©YANO All rights reserved. https://www.bravotouring.com/~yano/

Last-modified: 2021-04-26 (月)


[一語一絵/IT系]

Ubuntu20.04 / 2021-01-24 (日)

2014年6月にUbuntu 14.04 (Trusty)にアップデートしたbravotouring.comのサーバ。

Hugo乗り換えを大義名分に先送りにしていたアップデートを、気の迷いで1月13日未明にうっかり実施。大胆にもdo-release-upgradeを3回繰り返し、LTS最新版のUbuntu 20.04 (Focal Fossa)という荒業にチャレンジしたメモ。

まず、spamassassinが起動に失敗。うん、CPANが追いついてないので無理だよね、というわけでひとまずuninstallして首絞め。

続いて、DKIMNSDも起動に失敗していて、メールが送受信できない事に気づいて軽く慌てはじめる。/var/log/syslog

Jan 13 03:59:56 vps nsd[2349728]: Error in SSL_CTX use_certificate_file
    crypto error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small
というエラーに気づいた。ググってみると[External]OpenSSL 1.1.1/changelog[28 May 2019]で
Change the default RSA, DSA and DH size to 2048 bit instead of 1024. This changes the size when using the genpkey command when no size is given. It fixes an omission in earlier changes that changed all RSA, DSA and DH generation commands to use 2048 bits by default.
と、鍵長が2048ビット以上でないとダメになったようなので、nsd-control-setupで鍵を作り直してみた。
root@vps:/etc/nsd# nsd-control-setup
setup in directory /etc/nsd
nsd_server.key exists
nsd_control.key exists
create nsd_server.pem (self signed certificate)
create nsd_control.pem (signed client certificate)
Signature ok
subject=CN = nsd-control
Getting CA Private Key
Setup success. Certificates created.
root@vps:/etc/nsd#
…もののエラーは変わらず。結局、スクリプトを読んでみたところ1536→3072と生成する鍵長の設定は強化されていたもののnsd_server.key existsという事で作成されていなかったというオチだったので、
root@vps:~# cd /etc/nsd
root@vps:~# mv nsd_control.key nsd_control.key.2014
root@vps:~# mv nsd_server.key nsd_server.key.2014
root@vps:~# nsd-control-setup
root@vps:~# systemctl start nsd.service
として復活。

dovecotも同様に

DH_KEY_TOO_SMALL
というSSLのエラーだったので、
root@vps:~# cd /etc/dovecot/
root@vps:~# openssl dhparam 4096 > dh.pem
で解決し、
root@vps:~# systemctl start dkim.service
DKMIまでやっと復旧。

しかし、サービスは立ち上がったものの相変わらずメールは不通。Webアクセスはできるので大丈夫と思いきや、DNSで名前解決ができてない事が判明。地道に調べてみると肝心のzoneファイルの書き方がいい加減でエラーになっていた事がわかり、これも真面目に改修してWebとメールが開通したのは明け方だった。

数日置いてspamassassinもCPANではなくaptで再インストール。育ててきた自前のルールがなかなか適用されずしばらく試行錯誤していたのだが、判定スコアのしきい値として/etc/spamassassin/local.cfのrequired_hitsよりも.spamassassin/user_prefsのrequired_scoreが優先されていただけで、自前のルール自体は効くようになっていたようだ。

話は戻って、肝心要のRnotephpが5.5.9から7.4.3に上がり

Uncaught exception: Call to undefined function ereg()
という事になり、Rnoteが動かなくなりこちらも地道に対応していたのだが、10日かかってようやく改修完了となった。 ereg、eregi、ereg_replaceをmbereg、mberegi、mbereg_replaceに置き換えるのはなんてことなかったのだが、変数を文字列で初期化していた
function SkinTagChk($tag,&$str,&$opt){
/*  $opt = '';  // php5.x  */
    $opt = [];  // php7.x
    if(! preg_match('/<%=\$'.$tag.'\s*(.*?)%>/s',$str,$optstr)) return '';
    $tagstr = $optstr[0];
    $tmp = $optstr[1];
function Plugin($name,$func,$opt){
/*  static $g_plugin = '';  // php5.x  */
    static $g_plugin;       // php7.x
    require_once(DIR_PLUGINS.$name.'.php');
    if(!isset($g_plugin[$name])){
        $g_plugin[$name] = new $name;
    }
    return $g_plugin[$name]->$func($opt);
}
の2箇所に手こずった。

あとは2001年5月から、かれこれ20年も使い続けている「CGIでも使えるPNG式画像カウンタ」(pngcntr)が動かなくなっているな…

【参照】
●Qiita https://qiita.com/
OpenSSL 0.9.8で作成した鍵をOpenSSL 1.1.1 でも使う方法
Ubuntu 18.04(LTS)→20.04(LTS)アップグレード方法 2020年05月07日
●OpenSSL https://www.openssl.org/
OpenSSL 1.1.1/changelog
●GitHub https://github.com/
SSL routines:SSL_CTX_use_certificate:ee key too small #33 2019年9月26日
●Ask Ubuntu https://askubuntu.com/
dovecot - imap-login: Error: Failed to initialize SSL server context: Can't load SSL certificate ee key too mall 2020年10月14日
●Ubuntu Wiki https://wiki.ubuntu.com/
FocalFossa/ReleaseNotes/Ja
●Wikipedia http://ja.wikipedia.org/wiki/
Ubuntu
Ubuntuのバージョン履歴
DKIM


[一語一絵/IT系]

VAAPI / 2021-01-24 (日)

ASRock H97 Pro4にXeon E3-1265L v3を載せたHaswellでQSVなハードウェアエンコードをお試し。

「Intel® Media SDK」を使えばいいのか~と思ったのだが、2013年生まれのHaswellは古すぎるので、Video Acceleration API(VAAPI)を使えということらしい。

root@haswell:~# apt install -y build-essential libva2 vainfo i965-va-driver
で導入し、
root@haswell:~# vainfo
error: XDG_RUNTIME_DIR not set in the environment.
error: can't connect to X server!
libva info: VA-API version 1.7.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: va_openDriver() returns -1
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_6
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.7 (libva 2.6.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Haswell Server - 2.4.0
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Simple            : VAEntrypointEncSlice
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileH264MultiviewHigh      : VAEntrypointVLD
      VAProfileH264MultiviewHigh      : VAEntrypointEncSlice
      VAProfileH264StereoHigh         : VAEntrypointVLD
      VAProfileH264StereoHigh         : VAEntrypointEncSlice
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc
      VAProfileJPEGBaseline           : VAEntrypointVLD
root@haswell:~#
となればVideo Acceleration API(VAAPI)の準備OK。

続いて、h264_vaapiffmpegの準備。

root@haswell:~# wget https://ffmpeg.org/releases/ffmpeg-4.3.1.tar.gz
root@haswell:~# tar xvf ffmpeg-4.3.1.tar.gz
root@haswell:~# cd ~/ffmpeg-4.3.1
root@haswell:~# apt install -y build-essential yasm libfdk-aac-dev libmp3lame-dev libopus-dev libaom-dev libass-dev libmfx-dev libvorbis-dev libva-dev libx264-dev libx265-dev libnuma-dev libfreetype6-dev

【参照】
●Qiita https://qiita.com/
QSV 対応 Intel CPU で H.264 のハードウェアエンコード on Linux 2016年09月25日
●FFmpeg https://ffmpeg.org/
https://ffmpeg.org/releases/ffmpeg-4.3.1.tar.gz
CompilationGuide/Ubuntu
●Wikipedia http://ja.wikipedia.org/wiki/
Intel Quick Sync Video
LGA1150
Haswellマイクロアーキテクチャ