Open11

GitHubのWSL/issuesを追う(Windows Subsystem for Linux)

mars2nicomars2nico

#5791

2/20の書き込み内容と同じシチュエーションで、私もこの問題に気づきました

書き込みのアドバイス通りに、X serverを立ち上げているときは、pip installができるようになる
X serverを立ち上げるかわりに、ファイアーウォールを無効化することでもpip installができるようになる

原因はどうやらファイアーウォールのプロファイルの状態とWSLのネットワークの間の問題(?)のように感じるが、なぜpip installが環境変数DISPLAYを通してこの問題に関係するのかよくわかっていないので
このイシューを追っていきたい

ほかにも気になるイシューがあればこのスクラップに書き留めていく

mars2nicomars2nico

#5324 - 1/3

ビルドしてもタイムスタンプが更新されないな……と思っていたら
実はタイムスタンプは更新されていて、時刻がずれていただけということでこの問題に気づきました

https://docs.microsoft.com/ja-jp/windows/wsl/kernel-release-notes

この問題はカーネルのリリース5.10.16.3で解決しているそうなので
カーネルをバージョンアップします

備忘録としてカーネルのバージョン確認方法をメモしておく

$ uname -r

てっきり、カーネルはWindows Updateで配信されると思っていたのですが
大きなアップデートのとき(2xHxなど)しか配信されないものなのでしょうか
そのあたりの確認はできたらする

mars2nicomars2nico

#5324 - 2/3

Microsoftのドキュメントを色々調べてみたが
結局のところ、カーネルバージョンアップに関連する情報は、
トラブルシューティングのあたりにしか載っていなさそう

https://docs.microsoft.com/ja-jp/windows/wsl/troubleshooting

#5650の投稿によると、あるフラグを有効にすることでWindows Update経由でカーネルが更新されることもあるらしいけれど
ドキュメントでは見つけられなかった

mars2nicomars2nico

#5324 - 3/3

めでたくクローズされていました

今気づいたのだけど、
スクラップは更新したら投稿日付が消えてしまうんだなぁ……

ちょっと思っていたのと違ったので
スクラップの各投稿を都度更新していく使い方はやめにしよう

mars2nicomars2nico

WSLの核になる(と思われる)軽量Utility VMを含む部分がオープンソースじゃないことに(今更)気づいた

なので、issuesを追うことでWSLの理解を深めるという当初目的のとっかかりとして
ソースコードの修正内容を見るという手段は使えないことが分かった

mars2nicomars2nico

https://qiita.com/moriai/items/f633e01728d8d062adb1#原因を探ってみる

この記事によるとLinuxのカーネルにVMbusというものがあって
VMbusのドキュメントページの冒頭一文から察するに
Hyper-VとゲストVM(この場合Linuxマシン?)に介在するものらしい

関数の名前にACIP(ラップトップのフタを閉じたときの動作に関係)があったり
ptp(chronyに関係)があったりして
断言はできないが時刻同期のあたりの不具合に関連しそうな感じがする

軽量Utility VMはオープンソースではないし
あと、WSLのissues~Linuxカーネルのコミットの間に
リンクも見つけられないのでなかなか辿るのは難しそうだが
トラブル時の手がかりになりそうなものの1つとして認識した

mars2nicomars2nico

WSLに対する理解は人それぞれで [1] [2]
あるときはVMのように見え
またあるときはコンテナのように見える

軽量ユーティリティVMが具体的にどんなものなのかドキュメントを見つけられていない

WSL2になって初めて現れたということもあって
そのあたりの仕様はもしかすると流動的なのかもしれない

[1] ここが変だよ「WSL2」 自作ディストロ開発で発見した知られざる“バグ”と“事実” - ログミーTech
[2] WSL 2(Windows Subsystem for Linux 2)のlightweight vmについて調べてみた - ts0818のブログ