uchan-nos / mikanos-build

Build and run scripts for MikanOS
Apache License 2.0
307 stars 79 forks source link

開発環境の設定(ブートローダーのビルド)がうまくいかない #24

Closed ghost closed 2 years ago

ghost commented 2 years ago

プログラミング、Linux経験ないです。 virtualbox、ubuntu20.04.4LTSでしてます。 1章のハローワールド(謎の数値列)をエミュレータで実行しようとhttps://github.com/uchan-nos/mikanos-buildをみて開発環境を準備してました。そのサイトの“ブートローダのビルド”のところの $ ls MikanLoaderPkg/Main.c を実行してみたのですが、「ls ‘MikanLoaderPkg/Main.c’にアクセスできません: そのようなファイルやディレクトリはありません」となりうまくいきません。 $ ls MikanLoaderPkg/Main.c  の前に $ cd $HOME/edk2 $ ln -s /path/to/mikanos/MikanLoaderPkg ./ を実行しています。

ディレクトリのedk2でlsコマンドを実行してみたらMikanLoaderPkgが赤色だったので $ ln -s /path/to/mikanos/MikanLoaderPkg ./ で作成したそのシンボリックリンクMikanLoaderPkgを消して自分なりに考えて $ ln -s $HOME/osbook/devenv/mikanos/MikanLoaderPkg ./ を実行しました。lsコマンドを実行すると今度は赤色でなかったので再度 $ ls MikanLoaderPkg/Main.c を実行してみたのですが、今度は「MikanLoaderPkg/Main.c」と表示されるだけで、https://github.com/uchan-nos/mikanos-buildの“ブートローダのビルド”のところで書かれているブートローダーのソースコードらしきものは確認できませんでした。 ちなみにhttps://github.com/uchan-nos/mikanos-buildの“ブートローダのビルド”のところの前の“MikanOS のソースコードの入手”は $HOME/osbook/devenv のdevenvで実行してました。

どなたか解決方法、アドバイスなどを教えていただきたいです。

uchan-nos commented 2 years ago

lsの代わりにcatコマンドを使ってみたらどうなりますか?

$ cat MikanLoaderPkg/Main.c

ghost commented 2 years ago

端末を開いて $ cd $HOME/edk2 を実行して、次に $ ln -s /path/to/mikanos/MikanLoaderPkg ./ か $ ln -s $HOME/osbook/devenv/mikanos/MikanLoaderPkg ./ かを実行して $ cat MikanLoaderPkg/Main.c を実行しました。

2つの場合($ ln -s /path/to/mikanos/MikanLoaderPkg ./ と $ ln -s $HOME/osbook/devenv/mikanos/MikanLoaderPkg ./)試しましたが(もちろんもう一方のする時にはシンボリックリンクはrmで消してます)、しかしどちらも「cat: MikanLoaderPkg/Main.c: そのようなファイルやディレクトリはありません」と表示されました。

uchan-nos commented 2 years ago

うーん、謎ですね。

まず1つ言えるのは ln -s /path/to/mikanos/MikanLoaderPkg ./ は誤りなので試さなくていいということです。

cat コマンドがエラーになったとき ls コマンドも同時に試してみてください。 ls が成功するのに cat が失敗するなら、僕が想像できてない何かがありそうです。

ghost commented 2 years ago

解決しました。ありがとうございます。 $ cd $HOME/edk2 $ rm ./MikanLoaderPkg (すでにあるシンボリックリンクを消す) $ ln -s $HOME/osbook/devenv/mikanos/MikanLoaderPkg ./ $ cat MikanLoaderPkg/Main.c

これで昨日はうまくいかなかったのに、今度はうまく行きました。 一人でしていてもなかなかわからなかったので、助かりました。