シアン化備忘録

技術系とか諸々

OS自作入門の環境構築メモ

OS自作入門本を買った。

主に自分が詰まったりした部分をまとめていきます。恐らく随時更新。

環境

WSLの有効化

f:id:Cy4n0s:20210713082900p:plain

なんで無効にしてたかすら不明。当然仮想プラットフォームを有効化してやる。

コントロールパネル -> プログラム -> プログラムと機能 -> Windowsの機能の有効化または無効化

ウィンドウを開いたら「仮想マシンプラットフォーム」にチェック。「Windowsハイパーバイザープラットフォーム」にもチェックを入れておくとVirtualBox(6.1.16以降)などと共存できるので吉。

disk.imgのマウントができない

day01において「sudo mount -o loop disk.img mnt」を実行すると「mount: ./mnt: mount failed: Operation not permitted.」というエラーが出る。自分の環境の場合、WSL1のまま動かしていたので2に変えてやる。

コマンドプロンプトPowerShellで「wsl --set-version Ubuntu-20.04 2」を実行すれば勝手に更新されるが、自分の場合カーネルコンポーネントの更新をサボっていたためにエラーが発生した。更新後再度実行したら無事に終了。下記サイトにエラーの詳細と対処が細かく載っている。

WSL バージョンを変更する方法 | SEECK.JP サポート

QEMU環境で実行時に「Could not connect: Connection refused」が発生する

原理をまだ理解出来ていないが、WSL1とWSL2でネットワーク周りの仕様が変更された事が原因らしい。この場合DISPLAY環境変数を変えてやることで対処可能。

「~/.profile」内の「export DISPLAY=:0.0」を「export DISPLAY=\$(cat /etc/resolv.conf | grep nameserver | awk '{print \$2}'):0.0」に変えて保存。

f:id:Cy4n0s:20210713095749p:plain

その後、VcXsrvを起動する際にExtra Settingsにて「-ac」をAdditional parametersに追記してやる。どうやらパブリックアクセスを許可するためのパラメータらしい。

f:id:Cy4n0s:20210713100021p:plain

参考↓

WSL2におけるVcXsrvの設定 - Qiita

UEFIアプリケーション開発環境を Windowsの WSL環境で構築して QEMU環境で動作確認する方法 (Windowsの起動画面のロゴ画像をカスタマイズする HackBGRTを PNGと JPEGファイル対応に改造する)