2021/07/16

2021年上半期を振り返る

  1. Flash Playerのサポート終了とFlash PlayerプラグインのWebブラウザからのブロック
  2. ProtonでのFF13三部作の動作を一通り確認
  3. マイナンバーカードを使うWebサービスはLinuxでも使えるか?
  4. Ubuntu 21.04で起こった不具合と手元で行った対処

Flash Playerのサポート終了とFlash PlayerプラグインのWebブラウザからのブロック

2020年の年末にAdobe公式のFlash Playerはサポートを終了し、インストール済みのプラグインの実行についても安全のためにWebブラウザ側が無効にする(ブロックする)ようになった。

2010年代の内に世界中の多数のWebサイトがFlashを使用しない形(最近のWebブラウザの機能のみで実装する)に移行しており、個人的にも、Flash Playerを使用する用途が2020年末時点ではなかったために影響は受けなかった。

古いコンテンツについては、基本的にswf形式そのものを直接扱うことはできないものの、Flash作品の投稿サイトやアーカイブサイトが色々あって、そこではWebブラウザの標準機能(WebAssemblyやJavaScript)を用いて実装されたエミュレーションプログラムによって従来と同様にFlashコンテンツを楽しむことができる。ただし互換性の問題で一部(例:音は出るが映像が出ない)または全部が動かない作品があったり、元々の作者以外による転載がされている可能性があったりと問題もある。

そうしたサイトにおけるFlashコンテンツの互換性については “Flash制作ソフトウェアの基本的な機能だけで作られたシンプルなものは動くことが多いが、高度な機能に依存しているものは難しい” というような想像をしているが、エミュレーション実装は日々改善されているものなので、互換性はどんどん良くなっていくものと考えられる。例えば “Ruffle” という実装ではFlashで使われる “ActionScript” と呼ばれる言語のバージョンごとの実装率がプロジェクトのWebサイトに掲載されているが、2021年夏時点では未実装部分の割合が意外と高く、改善の余地は大いにあると分かる。

ProtonでのFF13三部作の動作を一通り確認

2021年春のセール時にFINAL FANTASY XIIIおよび続編2作品を購入してProton(ゲームに特化し、Linux版SteamでWindowsゲームを動かすのに使われる派生版Wine)での動作確認を行った。

詳細は別サイトに書いているが、基本的には全て最後までプレイ可能で、手元の環境(CPU:Athlon 220GE GPU:Radeon Vega 3)でもGE版Proton付属のasync対応DXVKを用いた上で画質設定を最低にすれば、時々描画の遅延による不正確な描画が起きることはあるものの、FF13-2以外はおおむね快適に遊べる。async対応DXVKを使用しないと手元の環境ではフレームレートの急低下(カクつき)が結構な頻度で起こる。

FF13とFF13-2では “FF13Fix” という外部ツールによってパフォーマンスを改善できる(どちらの作品も、使わないと使った場合と比べて遅く感じる)。

FF13三部作はDirect3D 9を用いているため、MesaのGallium Nineも試したのだが、DXVKより明らかにフレームレートが低い(ただし、手元の環境でのVulkanドライバは速度面で有利なACOが有効のRADVである一方、Galliumドライバのradeonsiは動作確認時点でACOを使用していない点は留意)。

3作品の動作の確認はDXVKを用いてほとんど済んだと言えるところまで行ったが、今後WineのDirect3D実装(wined3d)のVulkanバックエンドが動作することが確認できれば、そちらもある程度テスト・比較する予定。ただしDXVKのasync対応に相当するものがなければ手元の環境ではフレームレートが頻繁に急激に低下するものと予想している。また、DXVKについても時々(冗長な処理の回避などによって)パフォーマンス向上が見込める修正が入るときがあるので、そうした機会にテストを行って内容を見直すことはあるかもしれない。

マイナンバーカードを使うWebサービスはLinuxでも使えるか?

今年になってマイナンバーカードを作ったのだが、PCから使えるスマートカード(ICカード)リーダライタを用意しても、マイナンバーカードを必要とする各種WebサービスのログインにはWindowsやmacOSが必須となっている。

スマートカードリーダライタで使われるAPIの “PC/SC” は、ごく限られたハードウェア(例:SCR3310/v2.0)においてLinuxネイティブのものが使用可能とされており、そのようなハードウェアがあればmynaというツールをソースからビルドして使うことで、そこに載っているような幾つかの操作は行える模様。

Wineはバージョン6.0.x系時点ではこのAPIを扱うコンポーネントwinscard.dllの中身が実質未実装で、ネイティブなPC/SCを用いた実装が非公式に開発中ではあるが、仮にこれが取り込まれたとしても、LinuxネイティブのPC/SCが利用可能なハードウェア(“CCID” ドライバが対応しているもの)はWindowsよりも少なく、この形の実装ではWindowsやmacOSでは使える多数のリーダライタが使用できない。

Wineはバージョン6.0が出るより前に一部のUSBデバイスをlibusb上で扱う仕組みを取り入れたようなのだが、6.0.x系の時点ではスマートカードリーダライタのWindows用のデバイスドライバを用いてPC/SCをLinuxのWineで使えるというわけではなさそう。今後そのようなことが可能になれば、マイナンバーカードを用いる用途で仮想マシンにWindows環境を用意するような使い方をしている人はそれが不要になるかもしれない。

LinuxネイティブなPC/SCでは対応していないハードウェアでも、一部(例:SONYの製品)はlibusbを利用する “nfcpy” というプログラムを用いて幾つかの操作ができるらしいのだが、残念ながらこれはWebサービス側が要求するAPIを提供していないため、そのままネイティブPC/SCの代わりにWebサービスで使えるようなものではない。

最後に、ここまでの話とは直接関係はないが、e-taxについては、 “ID・パスワード方式” を利用するための準備をすることでマイナンバーカードによる認証は不要にできるようなので、現状でもe-tax自体がLinux環境で使えないということにはならない。ただし “ID・パスワード方式は、マイナンバーカード及びICカードリーダライタが普及するまでの暫定的な対応ですので、 マイナンバーカードの取得をご検討ください。” との記載があるため、今後ずっとこの方式が使い続けられるという保証はない。なお、個人的にはスマートカードのリーダライタの普及については(他の用途が乏しい上に使わない人は使わないものなので)進みにくいと考えている。

Ubuntu 21.04で起こった不具合と手元で行った対処

  • GNOMEのWaylandセッションで “アクティビティ” の文字部分のクリックやマウスポインタの画面隅への移動でウィンドウ縮小画像の一覧に切り替わった後でマウスやキーボードによってウィンドウを選択しても元の画面に戻らないことが時々あり、そうなるとログアウトして再ログインしないといけなくなる
    • 画面隅へのマウスポインタ移動によってウィンドウ縮小画像の一覧に切り替わらないように設定変更しつつウィンドウ変更にはAlt-Tabを押す癖をつけるようにした
    • 当然、根本的な解決ではない(次の21.10まで様子見する)
  • GNOMEのWaylandセッションでX11(XWayland上)のEmacs上で文章を書いているときに画面が固まってその後映像が映らなくなる現象を数回経験
    • AMDGPUのモジュールでおかしなことが起きているようなので、IntelやNVIDIAでは起こらないと思われる
    • X11に依存しない非公式な “pure-gtk3” 版をソースからビルドして使ってみたところ、この固まる現象は起きていないが、時々このEmacsは反応が鈍くなることがあるので、完全に満足というわけではない
    • XWaylandの挙動がおかしかったのかもしれないが、こちらも根本的な解決ではなく、21.10が出たら前の使い方に戻してみる予定
  • X11環境でredshiftが設定ファイルをうまく読み込まない
    • 公式のソースをビルドしたものを実行したら問題なく動いた
    • ディストリのパッケージが独自に取り込んでいるパッチの副作用の可能性がある