OpenFPGA 环境配置及问题解决
环境配置过程
git clone https://github.com/LNIS-Projects/OpenFPGA.git
cd OpenFPGA/.github/workflows
# Add ‘sudo’ before apt-get in script: install_depencies_build.sh
source install_depencies_build.sh # (install all depencies)
# back to OpenFPGA
python3 –m pip install –r requirements.txt
make all
# During make, watch the error messages and see which package is missing, repeatly using ‘sudo apt install XXX’ to install them like:
Tcl.h: sudo apt install tcl-dev
readline: sudo apt install readline-dev
错误解决
编译错误
SIGSTKSZ Error
- 原因:猜测是因换源不一导致的C编译工具链版本问题
- 解决:将catch.hpp版本更新,并替换
- 下载
wget -O ~/Downloads/catch.hpp https://github.com/catchorg/Catch2/releases/download/v2.13.9/catch.hpp
- 替换该文件
cd {OpenFPGA_文件夹位置}/libs/EXTERNAL/libcatch/
mv catch.hpp catch.bak.hpp
mv ~/Downloads/catch.hpp ./
FATAL ERROR 关于TBB的相关问题
- 原因:系统问题缺少头文件tbb_stddef.h
- 解决:
wget -O ~/Downloads/tbb_stddef.h https://raw.githubusercontent.com/wjakob/tbb/9e219e24fe223b299783200f217e9d27790a87b0/include/tbb/tbb_stddef.h
sudo mv ~/Downloads/tbb_stddef.h /usr/include/tbb
- 缺少头文件task_scheduler_init.h
wget -O ~/Downloads/task_scheduler_init.h https://raw.githubusercontent.com/wjakob/tbb/raw/master/include/tbb/task_scheduler_init.h
sudo mv ~/Downloads/task_scheduler_init.h /usr/include/tbb
找不到依赖
- 统一问题:运行install_dependencies_build.sh时或pip install时出错或未运行
- 解决:重新运行两步骤,如还有问题则单独安装
提示:
# 缺少ffi.h
sudo apt install libffi-dev
# 缺少tcl.h
sudo apt install tk tcl tk-dev tcl-dev
# 缺少readline
sudo apt install readline-dev libreadline6-dev
run-task 报错
查看log,目前观察最多的问题为 envYAML 包未安装
pip3 install envyaml
ModuleNotFoundError ‘prettytable’
运行 run_vtr_task.py 时,提示:ModuleNotFoundError: No module named ‘prettytable’
处理:
# 更新 pip
python -m pip install --upgrade pip
# 安装 PrettyTable包
pip install PrettyTable
脚本不可满足
ctags、qt5-default无可用候选 (no installation candidate)
解决:在大部分使用场景下,这两个包并不重要,可编辑install_dependencies_build.sh文件,删除ctags、qt5-default这两行
网络环境问题
包括:
- Connection refused 拒绝连接
- 443 SSL 无法建立
- clone failed 克隆失败
解决:
- 修改hosts
- 开加速器/VPN
- 使用手机流量的个人热点
运行时问题
Permission Denied | Can not find directory…
问题分析:在git clone或安装依赖时错误地使用 root 用户运行命令,导致个人用户无任何修改权限。
解决:在OpenFPGA根目录下
sudo chown -hR {用户名}:{用户组,一般同用户名} ./
# 将所有文件所有者改为个人用户
Yosys shell中,Show命令查看电路图 的时候,提示报错
问题:缺少点阵图形展示工具。
解决:可以试着运行 sudo apt-get install xdot