FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

FreeBSD 11.0でのRISC-V環境生成試行 (3. Vagrantでの環境構築完成)

http://riscv.wpengine.com/wp-content/uploads/2015/01/riscv-logo.png https://www.freebsd.org/logo/logo-full-thumb.png

(画像はriscv.org, freebsd.orgより拝借)

前回、FreeBSD 11.0のRISC-V環境構築を試行したのだが、うまく行かなくて止まってしまっていた。

msyksphinz.hatenablog.com

結局RISC-Vのメーリングリストに質問して、うまく行く方法が分かった。Vagrantの環境を構築したので、メモしておく。

Vagrant上のFreeBSD 11.0の仮想マシンに、RISC-Vアーキテクチャ向けFreeBSDをビルドする手順

まず、FreeBSDは標準のシェルがcshになっている。このためvagrant provisionする際の実行シェルがbashになっている?影響で、最初はうまく動作しない。

そこで、vagrant upしてから一度vagrant sshFreeBSDにログインし、bashをインストールしてからプロビジョニングを実行することになる。

vagrant up
vagrant ssh
# ここからVagrant内のFreeBSDで作業
% sudo pkg install -y bash
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
The following 1 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        bash: 4.4

Number of packages to be installed: 1

The process will require 8 MiB more space.
1 MiB to be downloaded.
Fetching bash-4.4.txz: 100%    1 MiB   1.5MB/s    00:01
Checking integrity... done (0 conflicting)
[1/1] Installing bash-4.4...
[1/1] Extracting bash-4.4: 100%
Message from bash-4.4:
======================================================================

bash requires fdescfs(5) mounted on /dev/fd

If you have not done it yet, please do the following:

        mount -t fdescfs fdesc /dev/fd

To make it permanent, you need the following lines in /etc/fstab:

        fdesc   /dev/fd         fdescfs         rw      0       0

======================================================================

こうしてbashをインストールしてから、改めてプロビジョニングを実行することになる。

github.com

結局、いろいろメーリングリスト上でディスカッションした結果、

setenv WITHOUT_SHAREDOCS yes
setenv MYOBJDIR "/home/vagrant/obj/riscv.riscv64/home/vagrant/freebsd-riscv/"

の部分で変更が必要なようだ。これらを全てprovision.cshとして保存し、プロビジョニングで呼ばれるようにした。

僕のPC(Core-i7 3GHz, 16GB)をして約1時間かかる。やっぱり環境構築は大変だなあ。途中でプロビジョニングがタイムアウトすることがあるが、何回かvagrant provisionを叩いていると最後まで完了する。

ただし、ここでフロントエンドなどの環境は整った。いよいよFreeBSD on RISC-Vの動作検証を始めていこう。