FPGA開発日記

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

RISC-V向けLinuxをビルドするための確認 (2. Dockerで環境構築)

RISC-V向けLinuxのビルドについて少し確認したいと思っていろいろと調査している。結局WSLの上ではビルドが難しそうなので、WSL2にDockerをインストールしてこの上で動かすことにした。

Dockerでfreedom-u-sdkを構築するためにDockerfileを書いている。

FROM ubuntu:20.04

ENV RISCV=/opt/riscv
ENV PATH=$RISCV/bin:$PATH
ENV MAKEFLAGS=-j4

WORKDIR $RISCV

RUN apt update && \
    apt install -y tzdata && \
    apt install -y git autoconf automake autotools-dev curl python3 libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev

RUN git clone --single-branch https://github.com/riscv/riscv-gnu-toolchain.git && \
cd riscv-gnu-toolchain && \
git submodule update --init --recursive

RUN cd riscv-gnu-toolchain && mkdir build && \
cd build && \
../configure --prefix=${RISCV} --enable-multilib && \
make linux

WORKDIR /root

RUN git clone https://github.com/sifive/freedom-u-sdk.git -b v1_0 --recurse-submodules
RUN cd freedom-u-sdk && \
make

ハマったのはriscv-gnu-toolchainのビルドにおいてmake linuxではなくmakeとしてしまい、riscv64-unknown-elfが作られてしまいLinuxのビルド時にこけてしまったこと。 これで再度ビルドをやり直した。すると以下のエラーだ。

#12 14.23 make[2]: Leaving directory '/root/freedom-u-sdk/buildroot'
#12 14.31 You must install 'wget' on your build machine
#12 14.32 You must install 'cpio' on your build machine
#12 14.32 You must install 'python' on your build machine
#12 14.32 You must install 'unzip' on your build machine
#12 14.32 You must install 'rsync' on your build machine
#12 14.32 make[1]: *** [support/dependencies/dependencies.mk:24: core-dependencies] Error 1
#12 14.33 make[1]: Leaving directory '/root/freedom-u-sdk/buildroot'
#12 14.33 make: *** [Makefile:90: /root/freedom-u-sdk/work/buildroot_initramfs/images/rootfs.tar] Error 2

またやり直しだ...