在 QEMU 上运行 RISC-V 32 位版本的 Linux

前言

最近中科院软件所PLCT实验室要开始基于 OpenJDK11 进行 RISC-V 32G 的移植工作,需要搭建好 RISC-V 32 位的 Linux 环境,本文就是介绍 RISC-V 32 位 Yocto版本的 Linux 环境的搭建过程。

1. 环境准备

1.1 宿主机

本次部署基于 Ubuntu 18.04.5 LTS 进行操作。

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.5 LTS
Release:	18.04
Codename:	bionic
1.2 交叉工具链

构建 32-bit RV32GC 的 riscv-gnu-toolchain,以下两种方法均可以完成构建,本文采用的是第二种。

  • 基于官方的指导构建

    https://github.com/riscv/riscv-gnu-toolchain

  • 直接下载构建好的工具链

    http://plct.zdlgv5.com/riscv32_extlib.tar.gzplct.zdlgv5.com

    $ wget http://plct.zdlgv5.com/riscv32_extlib.tar.gz
    $ tar -xzvf riscv32_extlib.tar.gz
    

    设置环境变量

    $ export PATH=$PATH:./riscv32/bin
    

注:

  1. 上面的环境变量只在当前终端有效,也可以 ~/.bashrc 文件中永久生效。

  2. 测试构建是否成功可以执行:

$ riscv32-unknown-linux-gnu-gcc -v

​ 出现类似输出即表示安装成功。

$ riscv32-unknown-linux-gnu-gcc -v
Using built-in specs.
COLLECT_GCC=riscv32-unknown-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/home/jiayou/riscv32/bin/../libexec/gcc/riscv32-unknown-linux-gnu/9.2.0/lto-wrapper
Target: riscv32-unknown-linux-gnu
Configured with: /home/zhangdingli/toolchain/riscv-gnu-toolchain/riscv-gcc/configure --target=riscv32-unknown-linux-gnu --prefix=/home/zhangdingli/toolchain/riscv32 --with-sysroot=/home/zhangdingli/toolchain/riscv32/sysroot --with-system-zlib --enable-shared --enable-tls --enable-languages=c,c++,fortran --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libsanitizer --disable-nls --disable-bootstrap --src=.././riscv-gcc --disable-multilib --with-abi=ilp32d --with-arch=rv32gc --with-tune=rocket 'CFLAGS_FOR_TARGET=-O2   -mcmodel=medlow' 'CXXFLAGS_FOR_TARGET=-O2   -mcmodel=medlow'
Thread model: posix
gcc version 9.2.0 (GCC) 

2. 部署 Yocto

2.1 Create workspace
$ mkdir riscv-yocto && cd riscv-yocto
$ repo init -u git://github.com/riscv/meta-riscv  -b master -m tools/manifests/riscv-yocto.xml
$ repo sync
$ repo start work --all
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值