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
またやり直しだ...