Openwifi_hw文件流程
在这之前的前提条件就是
- 拥有Vivado2021和Vitis
- Ubuntu的LTS版本
- 安装所需要的软件包,执行命令sudo apt install libtinfo5
下载openwifihw文件到虚拟机中
可以使用git clone --recursive https://github.com/open-sdr/openwifi-hw
但是使用这个命令下容易失败且下载速度很慢
因此可以将项目的压缩包下载到win系统中,然后将压缩包弄到虚拟机中使用
其中名为openwifi-hw.zip的文件就是从github上下载的
通过虚拟机与主机的共享文件夹可以在虚拟机中访问文件
共享文件夹可以通过访问/mnt/ghfs找到
在这里面可以找到openwifi-hw.zip,解压就行
进入到解压出来文件夹中打开终端
准备 Analgo Devices HDL 库(仅运行一次)
执行下面的命令
export XILINX_DIR=your_Xilinx_install_directory
其中这个your_Xilinx_install_directory这个文件夹目录应当包含类似Downloads, SDK, Vivado, xic这些东西
在这个界面开启一个终端 输入pwd 命令来获取这个文件夹的绝对路径
返回之前openwifi-hw-master的终端
输入命令export XILINX_DIR=(这个用之前找到的绝对路径代替) 这个是配置变量的
输入命令./prepare_adi_lib.sh $XILINX_DIR
下面就会执行编译的指令 等待很长时间
等到跳出一句cd /home/openwifi/openwifi-hw/openwifi-hw就表明我们之前执行的指令
./prepare_adi_lib.sh $XILINX_DIR完成,进行下一步操作
准备Analog Devices特定IP(每有一个新的板子就要运行一次)
在这一步就是配置一下你的硬件的板子类型
然后这个可以进入到openwifi的github文件中找到Supported SDR platforme’x’p
所以这里选择zed_fmcs2
找到项目文件夹中打开bords文件夹,里面有zed_fmcs2
在终端中执行命令export BOARD_NAME=your_board_name 这里的your_board_name用zed_fmcs2代替 export BOARD_NAME=zed_fmcs2
上图中有点错误 配置的时候只需要根据自己的硬件条件选择BOARD_NAME就可以了
执行命令 ./prepare_adi_board_ip.sh $XILINX_DIR $BOARD_NAME
这个指令执行的时候没必要等待执行完毕,等到Building ABCD project […"出现的时候,就可以Crtl+C强制停止指令
将openofdm_rx获取到IP目录(仅在openofdm更新后运行一次)
继续在上面的基础上执行指令./get_ip_openofdm_rx.sh
为顶级FPGA项目生成IPRepo
执行下面的指令
cd openwifi-hw/boards/$BOARD_NAME/
执行这个指令之后会报错:没有那个文件或者目录
这个时候跳转到openwifi的项目文件夹,找到boards点进去召唤终端输入pwd获取路径
因此修改指令为 cd /home/openwifi/openwifi-hw/openwifi-hw/boards/$BOARD_NAME
执行指令…/create_ip_repo.sh $XILINX_DIR
在跳出start gui的时候就会弹出Vivado的界面
等待指令运行结束
上面指令执行结束的时候就是Vivado变成主界面,如下
点击左下角的TCL Console
输入指令source ./openwifi.tcl (在vivado的TCL console输入 不是去Ubuntu的终端)
可以看出应该在打开工程
这个时候经历了很久vivado卡死,点开终端发现了报错信息:Failed to load module “canberra-gtk-module”
这个时候应该是缺少了一些软件的安装
指向下面的指令
sudo apt-get install libcanberra-gtk-module
执行之后输入指令 sudo apt search canberra-gtk-module来确定是否安装成功
安装成功之后反复上面的步骤
那么就可以看到 vivado又卡死了
改内存 给大点
经过上述的操作之后 就可以正常的打开了
打开之后点击生成bit流的按钮
就是generate bitstream
点击之后生成bit流
生成失败 报错了
又多次尝试之后成功生成比特流
下面就是File --> Export --> Export Hardware --> Next --> Include bitstream --> Next --> Next --> Finish
上述完成之后定义一个OPENWIFI_HW_IMG_DIR
完成之后输入指令 ./sdk_update.sh $BOARD_NAME $OPENWIFI_HW_IMG_DIR
做完上述的步骤之后,openwifi-hw的配置流程就结束了
Next --> Include bitstream --> Next --> Next --> Finish
上述完成之后定义一个OPENWIFI_HW_IMG_DIR
完成之后输入指令 ./sdk_update.sh $BOARD_NAME $OPENWIFI_HW_IMG_DIR
做完上述的步骤之后,openwifi-hw的配置流程就结束了