---
tags: RISC-V, jserv
---
# Assignment2: RISC-V Toolchain
contributors: < [`MicahDoo`](https://github.com/MicahDoo) >
## Linux Distribution Selection
Without much prior experience with Linux, I decided to take a page out of [`tobychui`](https://hackmd.io/@wIVnCcUaTouAktrkMVLEMA/SJEP_amvK)'s book and settled on Debian. Not without my own reading into this matter, though. Some articles I've read through to stick with this decision:
* [Debian vs Ubuntu: What’s the Difference? Which One Should You Use?](https://itsfoss.com/debian-vs-ubuntu/)
* Debian: base distribution, no-frill stability focused. Lightweight. Fast.
* Ubuntu: based on Debian, more features, more up to date.
* [Debian vs. Ubuntu on PhoenixNap](https://phoenixnap.com/blog/debian-vs-ubuntu)
* [Difference between Fedora and Debian](https://www.geeksforgeeks.org/difference-between-fedora-and-debian/)
* Fedora: less user friendly, less stable, less hardware support than Debian.
### Parallels on Apple M1
Operating on a M1 Macbook Air, my personal experience favors **Parallels** over **UTM** because the former offers a more seamless, albeit not perfect, experience with the native OS. [Here](https://linuxhint.com/run-linux-m1-based-mac/) is an article that explores current options.
* 5.32 GB on disk.
## RISC-V Emulator Installation
Following the instrucitons in [lab 2](https://hackmd.io/@sysprog/SJAR5XMmi#Sample-Usage-on-Ubuntu-Linux)
### gcc version
```shell
parallels@ubuntu-linux-22-04-desktop:~$ riscv-none-elf-gcc -v
riscv-none-elf-gcc: command not found
parallels@ubuntu-linux-22-04-desktop:~$ source riscv-none-elf-gcc/setenv
parallels@ubuntu-linux-22-04-desktop:~$ riscv-none-elf-gcc -v
Using built-in specs.
COLLECT_GCC=riscv-none-elf-gcc
COLLECT_LTO_WRAPPER=/home/parallels/riscv-none-elf-gcc/bin/../libexec/gcc/riscv-none-elf/12.2.0/lto-wrapper
Target: riscv-none-elf
Configured with: /Host/home/ilg/Work/riscv-none-elf-gcc-12.2.0-1/linux-arm64/sources/gcc-12.2.0/configure --prefix=/Host/home/ilg/Work/riscv-none-elf-gcc-12.2.0-1/linux-arm64/install/riscv-none-elf-gcc --prefix=/Host/home/ilg/Work/riscv-none-elf-gcc-12.2.0-1/linux-arm64/install/riscv-none-elf-gcc --infodir=/Host/home/ilg/Work/riscv-none-elf-gcc-12.2.0-1/linux-arm64/install/riscv-none-elf-gcc/share/doc/info --mandir=/Host/home/ilg/Work/riscv-none-elf-gcc-12.2.0-1/linux-arm64/install/riscv-none-elf-gcc/share/doc/man --htmldir=/Host/home/ilg/Work/riscv-none-elf-gcc-12.2.0-1/linux-arm64/install/riscv-none-elf-gcc/share/doc/html --pdfdir=/Host/home/ilg/Work/riscv-none-elf-gcc-12.2.0-1/linux-arm64/install/riscv-none-elf-gcc/share/doc/pdf --build=aarch64-unknown-linux-gnu --host=aarch64-unknown-linux-gnu --target=riscv-none-elf --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libsanitizer --disable-libssp --disable-nls --disable-shared --disable-threads --disable-tls --enable-checking=release --enable-languages=c,c++,fortran --with-gmp=/Host/home/ilg/Work/riscv-none-elf-gcc-12.2.0-1/linux-arm64/install/libs --with-newlib --with-pkgversion='xPack GNU RISC-V Embedded GCC aarch64' --with-gnu-as --with-gnu-ld --with-system-zlib --with-sysroot=/Host/home/ilg/Work/riscv-none-elf-gcc-12.2.0-1/linux-arm64/install/riscv-none-elf-gcc/riscv-none-elf --with-native-system-header-dir=/include --with-abi=ilp32 --with-arch=rv32imac --enable-multilib
Thread model: single
Supported LTO compression algorithms: zlib
gcc version 12.2.0 (xPack GNU RISC-V Embedded GCC aarch64)
```
:::danger
Remember to change `x64` to `arm64` since I'm working this on an M1 MacBook through Parallels.
:::