Hyper-VとWindowsハイパーバイザープラットフォームと仮想マシンプラットフォーム。

https://docs.microsoft.com/ja-jp/windows/wsl/installPC を Core-i7 12700K で組み直したので、Windows11 もクリーンインストールし、環境構築中です。

UNIX 系のコマンドラインツールには Windows が持っていないものがたくさんあって、コンソール(Windows Terminal)を多用する自分としてはインストールしておきたい。Cygwin とか MSYS2 もあるけど、できれば使い慣れた ArchLinux がいい。そうすると WSL2 を使ってインストールしてしまえばいいのかな、と思ってたんですが……。

WSL2 を利用するには、Microsoft 公式の Windows Subsystem for Linux に関するドキュメント を読みながら進めるのが良さそうなんですが、ここで「Windows の機能の有効化または無効化」で、サービスを有効にしておく必要があります。なのでその設定を開いてみたのですが…。


なんか混乱します。ハイライトされている「Linux 用 Windows サブシステム」を有効化したいんだけれど、そのためには、「Hyper-V」と「Windows ハイパーバイザープラットフォーム」と「仮想マシンプラットフォーム」のどれを使えばいいの?しかも「コンテナー」なんてものまであるし。

  • Hyper-V
    ハードウェア上でハイパーバイザが動作し、その上にOSが乗る Type 1 ハイパーバイザ。Intel VT や AMD-V などのハードウェア支援が必須。高速。Windows もハイパーバイザの上で動作する形になる。
  • Windows ハイパーバイザープラットフォーム
    Hyper-V が管理するハイパーバイザー上でのパーティションの作成と管理、構成を行うプラットフォーム。
  • 仮想マシンプラットフォーム
    よくわからないけど、複数の仮想マシンの作成と管理のためのプラットフォームなんでしょう。違いがよくわかりませんが。

WSL2 はどれが必要なのか、やっぱりわかりません。WSL のインストール を見てもその辺は書いていないので、まずはこのページにあることをやってみましょう。

管理者の PowerShell または Windows コマンド プロンプトに次のコマンドを入力し、コンピューターを再起動することによって、Linux 用 Windows サブシステム (WSL) を実行するために必要なすべてをインストールできるようになりました。

 

wsl --install

このコマンドを実行すると、必要なオプション コンポーネントの有効化、最新 Linux カーネルのダウンロード、WSL 2 の既定としての設定、および Linux ディストリビューションのインストールが実行されます " (既定では Ubuntu です。変更するには以下を参照してください) "。

だそうなので、上記の「Windows の機能」の有効無効は気にせずにやってみます。
PowerShell 7 を管理者モードで開き、



なんとなんと!仮想マシンプラットフォームをインストールしています。それでいいの? Hyper-V はどこいったの?
ともあれ、リブートしてみます。
再起動して「Windowsの機能」を開いてみると、「Linux 用 Windows サブシステム」と「仮想マシンプラットフォーム」にチェックが入っていました。
そしてPowerShellが自動的に開き、Ubuntuをインストールし始めました。


やっぱり Hyper-V はノーチェックです。それだけでいいのかしら。ほんとに?
と思ってタスクマネージャーを開いてみると、

なんか動いてます。
でもまあ、標準の方法らしいですから、それでいいことにしましょう。よしよし。

CKLauのUSB3.0+HDMIのKVMスイッチ。

これまでのメイン PC(Core-i9 9900K)と新しいメイン予定の PC(Core-i7 12700K)、それにテレワーク用の PC と、PC の切り替えが大変になってきたので、これまで使っていた 2ポートの KVM スイッチから、新しく 4ポートのKVMスイッチを検討することにしました。

現在使用しているのが、corega の CG-PC2KDLMCA という DVI 2入力1出力のものです。これは Amazon で2010年2月に購入したもので、なんと12年も使っていたことになります。

途中、ACアダプタのケーブル断線?で調子が悪くなり、同等仕様のアダプタ(5.3V)を購入しています。サンワサプライの P-VGA-AC4で、5.3V/2.4Aというもの。CG-PC2KDLMCA はもともと ATEN CS1782A のOEMで、ボタンデザインなどがちょっと変わっているだけのものです。サンワサプライからも ATEN OEM の KVM スイッチが出ているので、アダプタも互換なのでした。ただ、ATEN からファームウェアアップデートがあったときに適用できなかった事はありました。もともと DVI-D のデュアルリンクで 2,560×1,600@60Hz の能力があったので、2560x1440@60Hzの IO-Data GigaCrysta EX-LDGCQ271DB にも対応できていました。なにげにすごいやつです。しかも HDMI オーディオも通していたので、モニタ側スピーカ(音はヘロヘロですが)からも HDMI 接続だけで音が出ます。

今では PC のマザーボード出力から DVI がほとんどなくなり、モニタ側の入力も HDMI か DisplayPort のみになってきていますが、幸い信号的には DVI と HDMI はほとんど互換なので、DVI-HDMI ケーブルを用意することで使用できていました。


と、能書きが長くなりましたが CKLau です。Amazon で購入しました。


届いた箱を開けたらこんな感じ。ごちゃごちゃ詰まってます。ケーブルを巻いてあるポリが擦り切れたのでしょうか、ちょっと裂けていますが、問題はありませんでした。


ケーブルはこんな感じ。


アダプタの箱が潰れています。これも箱だけで中身はちゃんとしてました。


上の写真の細長いダンボールの中に本体があります。ちなみにアダプタは USB 出力のもので、5V/2.0Aでした。



表と裏。USB 3.0 の B タイプで、二段重ねのやつです。左端に電源スイッチとアダプタジャック、それに有線リモコン用の USB miniB のコネクタがあります。ちなみに箱から出した写真のリモコンの隣りにある青いスリーブのケーブルが miniB です。

日本だと製造銘板があって、消費電力が明示されているのですが、この製品は Made in China と CE、FCC、RoHS、それに製造年月日を表すシール(ただしマーキングしてないのでいつ製造されたのか不明)しかありませんでした。ついでに言えば、型番もないようです。型式番号がないのにどうやって輸出通してるのかしら。ちなみに、箱には "Model: CKLau-64HUA-3N" と書かれたシールが貼ってありました。それはともかく、あとでワットチェッカーで電力測ります。


ケーブルは HDMI と USB 3.0 が各 4 本。1本にまとめているのではなく、2本ずつ束ねて使うようです。しかも長さが違っています。

HDMIケーブルはコネクタの内側(ケーブル部分のみ)で 140cm、一方 USBケーブルは 170cmと、30cmも違います。これはびっくり。しかも、現在のデスク周りの配置だとメイン PC にぎりぎり届かない感じ。PC を動かしての作業などがあれば確実に届きません。これはちょっとまずいので、急遽ケーブル調達。Amazon Basicsの 1.8m USBケーブルとHDMI 2.0ケーブルを3本ずつ購入しました。なぜ3本ずつかというと、HDMIケーブルが2本セット(1,206円)と3本セット(1,207円)で1円しか違わなかったので、どうせなら3本にしてしまえという、あまり良く考えていない理由。


これをコードプロテクターという名前の、ワイヤ織管ケーブルスリーブで包んでいきます。これも Amazon で購入してたものです。

とりあえずメイン系のタワー型2セット分を新規購入のケーブルで、残り2セットを添付のケーブルで組んでセッティングしてみます。

セッティングが終わってワットチェッカーを見てみると、表示が01。消費電力1Wと出ています。このあたりの数値は精度的にちょっと微妙なところなのですが、PCサスペンド時には04(4W)とか出ているので、でたらめな数値ではなさそうです。

……とここまでやって、計測も終わったからとアダプタをワットチェッカーから抜いても、スイッチは動作しっぱなし。そりゃそうです、USBからも給電されてるのですから。

ともあれ、どうやらちゃんと動いてくれているようです。もともと4K対応ということですから、WQHDごときは屁の河童なのでしょう。

機材もないので、アイパターンのチェックとか CEC の波形確認とかはしていませんが、無事使えましたということで。

あとは、機能としてはホットキーで切り替えもできるし、有線リモコンでもできるということですが、キーボードの向こう、モニタの下に本体を設置しているので、ホットキーは無効、リモコンは使わないので箱の中にしまっておきます。

ともあれ、これで4ポートKVMが動きました。ユーザレポートも少ないようなので、購入を検討されている方の参考になれば。

Intel Arc GPU。

 今朝、Intel の Driver & Support Assistant が Bluetooth ドライバのアップデートがあります、ついでにあなたのシステムは Intel Arc に対応しています、というメッセージを出していました。

先日やっと Core-i7 12700Kが届いて、少しずつセットアップ作業を進めているところです。マザーボードは Asrock Z690 Extreme、CPU クーラーは水冷の Corsair iCUE H115i RGB PRO XT で、メモリは DDR4-3200 32GB です。ブートドライブは M.2 の NVMe 規格の Crucial CT1000P1SSD8 で、レスポンスはめちゃくちゃいいです。

でもって、ARC に対応していますなんて言われたらちょっと気になるので、自分用のまとめ。

  • Intel Arc は単体GPUとして開発され、Alder Lake とは Deep Link と呼ばれるバス?で接続して機能する。これによってディスクリートGPU (Arc)と内蔵GPU UHD770 とを連携させることができる。
  • Deep Link は H シリーズに対応という噂があるが、デスクトップ向けの S シリーズでも利用できる。
  • Hyper Encode は Alder Lake の Iris Xe エンコードエンジンと Arc を Deep Link で連携させて高速エンコードを行う。アプリケーションにもよるが、Cyberlink PowerDirectorでは1.6倍高速になるらしい。HEVC なのか H.264 かは不明。
  • AV1 HWエンコード対応の Xe メディアエンジンを搭載している。最大で12bit HDR の 8K/60fps の動画をリアルタイムデコード(エンコードではない)できる。エンコードについては、10bit HDR 8K に対応しているが速度は不明。もちろん、VP9、H.264(AVC)、HEVC のハードウェアエンコードもサポートしている。
  • Arc は製品名で、アーキテクチャコードネームは Alchemist。
  • Arc A シリーズというモジュールとしてリリースされるが、これを搭載したアドオンカード(いわゆるグラボ)では、大きいダイの ACM-G10 を搭載して TDP が 250W 程度のハイエンドカードを設計できるのではないか。
現状こんな感じでしょうか。

PythonでWordファイルをいじりたいとき。

 PythonでMicrosoft Wordファイルをいじりたいとき、グーグルさんに聞いてみるとpython-docxってのがあるよ、って言われるんですが。

実はこのpython-docx、マクロ入りドキュメントの.docmファイルは弾いちゃうんですね。

で、さらに検索してみたら、GitHubのほうで、#716 added support for .docm filesていうpull requestがあるんですが、このパッチがマージされないまま放置されてしまっています。

たぶんその放置が理由だと思うんですが、このpython-docxをフォークしてpython-docx-docmというのがあって、このパッケージをダウンロードしてpython-docxと比較してみたら、上記の#716の改善版みたいだったので、.docmファイルまで含めてWordドキュメントをいじりたければこちらを使ったほうがいいのかな、と思ったら、本家のほうがその後バージョンアップしてて、差分をとってセルフパッチしたほうがよさそうな感じ。

Intelドライバー&ソフトウェアアシスタントが変なメッセージ出してる件。

 Intelのドライバー&ソフトウェアアシスタント(IDSA)にアクセスすると、以下のメッセージが表示されます。



でもって右側の「Learn more」をクリックすると、エラーページに飛びます。

community.intel.com/t5/Intel-NUCs/This-system-is-incompatible-with-Intel-Arc-graphics-NUC9i9QNX/m-p/1366874#M89254

に、

I did some more digging and found out that this messaging should not be shown on the IDSA scan page anymore; please refresh your browser or click on the "Refresh Results" on the IDSA left-hand menu in order for that message to be removed.

というのがありました。左側の「結果の更新」をクリックしてみてくれとのことですが、今のところ結果は変わりません。 

コマンドプロンプトのタイトルバーをPythonから変更する。

 ちょっと調べればわかることですが、WindowsTerminalでコマンドプロンプトも扱うようにしたので、タブがいくつもあってどれが何のタブなのかわかりにくくなってしまい、実行しているPythonスクリプトからタブに表示されるタイトルを変更できないかと思いまして。

調べてみると、コンソールからコマンドで "title" というのがあり、Pythonからは

subprocess.run(["cmd", "/c", "title", "アブラカタブラ"])

みたいにすればできることがわかりました。

ところでこのtitleコマンドがどこにあるのか調べてみたら、cmd.exeのビルトインコマンドだということがわかりました。

C:\Users\kats$ wsl strings /mnt/c/Windows/System32/cmd.exe | grep -i title
GetConsoleTitleW
SetConsoleTitleW

ここで、Win32 APIのSetConsoleTitleW()というのが呼ばれていることがわかりました。wslマジ有能。

それじゃあこのWin32 APIを叩けるPythonモジュールはないかと探したら、Pywin32にありました。

Python 3.10.1 (tags/v3.10.1:2cd268a, Dec 6 2021, 19:10:37) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from win32api import SetConsoleTitle
>>> SetConsoleTitle("アブラカタブラ")
>>>

とまあこれだけでタイトルが変わりました。

どっとはらい。

Windows 11でシステムロケールをUnicodeにしてみる。

 だいぶ前(2019年5月9日)にWindowsロケールをUTF-8にして不具合のあるアプリ。でちょっとお試ししたものの、ヘタレなのでもとに戻してしばらく立ちます。その後どうなったかを見てみようかということで再度設定、確認してみました。


追記: 結論から先にいうと、やっぱりやめたほうが良さそうです。

影響があったソフトで今も使っているものは、Python3とcmd.exe、筆王くらいでしょうか。

まずはPython。バージョンは3.10.1で、Windows Terminal Preview上のコマンドプロンプトから実行してみます。

以前の画面キャプチャがないですが、どうやら使えそうな雰囲気です。reとか試してませんが。
前回はだめだったIDLEも起動します。

cmd.exe。こちらはコードページが65001になって、メッセージも英語になってしまいます。

こんな感じ。まあ、これで問題なければ使えます。

次に筆王。これはだめでした。

スプラッシュ画面は表示されますが、起動しません。たぶん、なんかキーになるものを見てるんでしょうけど、よろしくないですね。

あと、Aviutlではプラグインがやっぱりどうやらだめみたいで、前回はなにか勘違いしていたみたいですね。

ということで、やっぱりUnicode UTF-8はまた封印することにしました。

SWDなら3線でいいとはいうものの。

 安価で優秀なデバッグプローブはないかしら、と探したら、 Raspberry Pi Debug Probe というのがあったんですが、これは3線がにゅるんと出てるだけです。 もちろんSWDなら3線を繋げばいいのではありますが、汎用的に考えるなら5x2のリボンケーブルコネクタが欲し...