わたすけです。
「RISC-VとChiselで学ぶ はじめてのCPU自作」(9784297123055)という本をご存知ですか?
10月頃にこの本を買ったのですが、最近ようやく重い腰を上げてやろうかな~と思っているところです。本の中ではDockerを使った環境構築が紹介されているのですが、せっかくならVSCodeのRemote Containerで開発したいと思いました。
ということで、今回はそのやり方を紹介しようと思います。
使うもの
- Windows 11 (Insider)
- Docker (docker-compose)
- VSCode (Insider)
- Remote Container
Remote – containerは、VSCodeでDockerの中に入って開発できる感じの便利なツールです。
これらのインストール方法は割愛します。いい感じに検索してください。
今回準備したものはGitHubに載せています。環境がほしいだけならforkしたほうが早いと思います・・・。
まずは本の通りに
Chiselのテンプレートをgit cloneしてきます。
そうしたら、src/main/scala/*
とsrc/test/scala/*
を削除します。自分の場合はtest/scalaを消し忘れてました・・・。
Remote Containerの設定
次に、.devconteiner
という名前でディレクトリを作成します。その中に、Remote Container用の設定ファイル、devcontainer.json
を作って、以下のように入力します。
{
"name": "chisel",
"dockerComposeFile": "docker-compose.yml",
"service": "chisel",
"workspaceFolder": "/src",
"shutdownAction": "stopCompose"
}
正直よくわかってないです。
続いて、docker-compose.yml
を作成します。
version: "3"
services:
chisel:
build: .
command: sleep infinity
volumes:
- ../src:/src
environment:
SHELL: "/bin/bash"
まあSHELLを/bin/bashにしているくらいしか言うことはないです。/usr/bin/bashだと動きませんでした。気のせいかも知れませんが。
そして、ビルド用にDockerfile
を配置します。と言っても、これもGitHubから持ってくるだけです。ありがたく頂戴いたしましょう。
ということで、ここまでで以下のようなディレクトリ構造になっているはずです。
.devcontainer/
|- devcontainer.json
|- docker-compose.yml
|- Dockerfile
src/
|- main/scala/ (空)
|- test/scala/ (空)
...
起動してみる
あとは起動するだけです。
このディレクトリをVSCodeで開き、左下のアイコンから「Reopen in Container」を選んで、死ぬほど長いビルド時間を乗り越えれば終わりです!!
ビルド時間は、2時間は確保したほうが良いんじゃないでしょうか。自分の場合は3~4時間(15,000秒くらいだった気がする)でした。DockerをHDDに移しているのもあるとは思います。
終わりに
いかがでしたか?
まさかこんなにビルドが遅いとは思っていませんでした。しかも、おそすぎたので中断してOS再起動したら/home/watasukeがディレクトリごと消し飛んでて心臓も消し飛ぶかと思いました。OSを再起動したら治りました。
とはいえ、環境構築が出来てよかったです。途中まったく起動しなかったのであれこれいじったりしていたので、他の環境で動くか心配ですが、とりあえず今回建てた環境で頑張ろうと思います。
コメント