uchan-nos / os-from-zero

『ゼロからのOS自作入門』(内田公太著、マイナビ出版)のサポートサイトです
https://zero.osdev.jp/
250 stars 10 forks source link

Ubuntu 20.04 でブートローダーのファイル Loader.efi が生成されない #144

Open uchan-nos opened 1 year ago

uchan-nos commented 1 year ago

スクリーンショット 2023-03-20 205616

P.51のbuildはできているのですが,Loader.efiが生成されません.

ubuntu 20.04です

Originally posted by @yuzu-krs in https://github.com/uchan-nos/os-from-zero/issues/114#issuecomment-1476093976

uchan-nos commented 1 year ago

質問の続きが私の Discord サーバーに投稿されたので、こちらに転記。 ( @yuzu-krs さん、画像などの転載がまずければ教えてください。)

image

/home/yuzu/edk2/MikanLoaderPkg/MikanLoaderPkg.dsc の内容が正しいのか気になるので、 cat /home/yuzu/edk2/MikanLoaderPkg/MikanLoaderPkg.dsc して出力された結果を全部貼ってもらえますか?

yuzu-krs commented 1 year ago

質問の続きが私の Discord サーバーに投稿されたので、こちらに転記。 ( @yuzu-krs さん、画像などの転載がまずければ教えてください。)

image

/home/yuzu/edk2/MikanLoaderPkg/MikanLoaderPkg.dsc の内容が正しいのか気になるので、 cat /home/yuzu/edk2/MikanLoaderPkg/MikanLoaderPkg.dsc して出力された結果を全部貼ってもらえますか?

image

yuzu-krs commented 1 year ago

質問の続きが私の Discord サーバーに投稿されたので、こちらに転記。 ( @yuzu-krs さん、画像などの転載がまずければ教えてください。) image /home/yuzu/edk2/MikanLoaderPkg/MikanLoaderPkg.dsc の内容が正しいのか気になるので、 cat /home/yuzu/edk2/MikanLoaderPkg/MikanLoaderPkg.dsc して出力された結果を全部貼ってもらえますか?

image

このような感じになりました

uchan-nos commented 1 year ago

@yuzu-krs ありがとうございます。 その画像が MikanLoaderPkg.dsc の全体なのでしょうか? そうなのであれば、ファイルが中途半端な内容になっていそうです。

本来は [LibraryClasses][Components] といった項目も .dsc ファイルに含まれているはずです。 試しに、手元のファイルでそれらの行をコメントアウトしてみました。こんなふうに。

[Defines]
  PLATFORM_NAME                  = MikanLoaderPkg
  PLATFORM_GUID                  = d3f11f4e-71e9-11e8-a7e1-33fd4f7d5a3e
  PLATFORM_VERSION               = 0.1
  DSC_SPECIFICATION              = 0x00010005
  OUTPUT_DIRECTORY               = Build/MikanLoader$(ARCH)
  SUPPORTED_ARCHITECTURES        = X64
  BUILD_TARGETS                  = DEBUG|RELEASE|NOOPT

#[LibraryClasses]
#  UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
#  UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
#
#  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
#  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
#  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
#  DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
#  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
#  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
#  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
#  RegisterFilterLib|MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull.inf
#  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
#  UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
#
#[Components]
#  MikanLoaderPkg/Loader.inf

この状態で build コマンドを実行すると、確かに yuzu さんが貼っていただいたスクリーンショットのように、何も実行せず「done!」とだけ表示される状態になりました。

yuzu-krs commented 1 year ago

@yuzu-krs ありがとうございます。 その画像が MikanLoaderPkg.dsc の全体なのでしょうか? そうなのであれば、ファイルが中途半端な内容になっていそうです。

本来は [LibraryClasses][Components] といった項目も .dsc ファイルに含まれているはずです。 試しに、手元のファイルでそれらの行をコメントアウトしてみました。こんなふうに。

[Defines]
  PLATFORM_NAME                  = MikanLoaderPkg
  PLATFORM_GUID                  = d3f11f4e-71e9-11e8-a7e1-33fd4f7d5a3e
  PLATFORM_VERSION               = 0.1
  DSC_SPECIFICATION              = 0x00010005
  OUTPUT_DIRECTORY               = Build/MikanLoader$(ARCH)
  SUPPORTED_ARCHITECTURES        = X64
  BUILD_TARGETS                  = DEBUG|RELEASE|NOOPT

#[LibraryClasses]
#  UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
#  UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
#
#  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
#  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
#  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
#  DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
#  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
#  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
#  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
#  RegisterFilterLib|MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull.inf
#  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
#  UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
#
#[Components]
#  MikanLoaderPkg/Loader.inf

この状態で build コマンドを実行すると、確かに yuzu さんが貼っていただいたスクリーンショットのように、何も実行せず「done!」とだけ表示される状態になりました。

image

MikanLoaderPkg.dscの内容を変えたのですが特に変わりませんでした.

uchan-nos commented 1 year ago

先頭行に # を付けたままでは、コメント行という意味になりますので、書かなかったのと同じことです。 # を取り除いてください。

yuzu-krs commented 1 year ago

できました.ありがとうございます!

yuzu-krs commented 1 year ago

先頭行に # を付けたままでは、コメント行という意味になりますので、書かなかったのと同じことです。 # を取り除いてください。

image

root@DESKTOP-ASS1I0C:~/workspace# git checkout osbook_day02a を実行するとこのようなメッセージがでるんですが,本来は,git checkout osbook_day02aのソースコードがダウンロードされるということでしょうか? なぜかソースコードがダウンロードされません. fatal: not a git repository (or any of the parent directories): .git

uchan-nos commented 1 year ago

そのエラーメッセージは、現在位置(workspace)は git リポジトリではなく、git コマンドが使えないという意味です。 git コマンドは、git リポジトリに移動してからでないと使えないのです。

workspace/mikanos ディレクトリは手動(mkdir コマンド)で作るのではなく、git clone コマンドによって生成される想定です。 したがって、まずは workspace/mikanos ディレクトリを消した後、workspace ディレクトリに移動し、git clone https://github.com/uchan-nos/mikanos.git を実行してください。

yuzu-krs commented 1 year ago

できました.ありがとうございます.