这边还是简单记一下步骤
1、首先是下载openwifi-hw
git clone --recursive https://github.com/open-sdr/openwifi-hw
2、配置vivado环境变量
source /tools/Xilinx/Vivado/2021.1/settings64.sh
3、在.bashrc里面配置加一些变量
export XILINX_DIR=/tools/Xilinx
export BOARD_NAME=antsdr
4、设置变量后运行编译脚本
./prepare_adi_lib.sh $XILINX_DIR
编译时间挺长的
5、使用的是微相科技的E310,板子antsdr,配置板子ip命令,这个好像时间很长
./prepare_adi_board_ip.sh $XILINX_DIR $BOARD_NAME
看到下面的句子就可以ctrl+c结束了
(Don't need to wait till the building end. When you see "Building ABCD project [...", you can stop it.)
6、然后将openwifi_rx添加到IP目录(只在openofdm更新时候运行一次)
./get_ip_openofdm_rx.sh
7、然后进入板子目录运行程序
cd openwifi-hw/boards/$BOARD_NAME/
../create_ip_repo.sh $XILINX_DIR
第二个脚本会自动打开vivado文件
8、等脚本运行完毕,在vivado里面的TCL命令行打开工程
source ./openwifi.tcl
生成bit流之后,导出硬件文件+bit流文件到vitis文件夹,用vitis创建硬件平台并build
就生成了bit文件和fsbl文件,生成BOOT.BIN文件还需要一个elf文件
这里因为要引导LINUX系统启动,因此是UBOOT,这个UBOOT在ZYNQ里面比较通用的。我们也可以使用OPENWIFI中其他ZYNQ板子的UBOOT来替换。下载命令如下:
git clone --recursive https://github.com/open-sdr/openwifi
我下载失败了几次,大概率是网络问题,因为比较大,所以最后我通过gitee上别人的下载的,自己看网络如何。
编译openwifi工程,我用的微相科技的E310板子,在openwifi里面是antsdr板子
一些具体细节可以参考https://blog.csdn.net/mcupro/article/details/140346371
在openwifi-hw下编译自己的板子文件../create_ip_repo.sh $XILINX_DIR
下载完成后进入目录:openwifi/kernel_boot/board/antsdr 可以看到里面有个u-boot.elf文件,复制文件到openwifi-hw目录,创建一个BootFile文件夹,放置生成BOOT.BIN所需的文件。放三个文件,一个是刚才那个u-boot.elf文件,一个是vivado生成的bit流文件system_top.bit,一个是vitis生成的fsbl.elf文件.
然后打开vitis,xilinx-create boot image-zynq and zynq ultrascale
在下面的boot image partitions添加上面的三个文件BootFile里面的,选择输出bif存放也在里面,最后生成BOOT.bin和output.bif文件
此boot.bin文件可以直接代替openwifi启动盘中的boot.bin文件
下载然后烧录到卡里先,烧录完成之后
到BOOT/openwifi/antsdr下面将三个文件复制到BOOT主目录下(这边的BOOT.BIN文件换成我们vitis生成的BOOT.bin文件先,再三个复制)
然后插上SD卡,启动
更新FPGA,也就是更新FPGA这边的代码,之后,更新整个板子
export XILINX_DIR=your_Xilinx_install_directory
(Example: export XILINX_DIR=/opt/Xilinx. The Xilinx directory should include sth like: Downloads, Vitis, etc.)
export OPENWIFI_HW_IMG_DIR=your_openwifi-hw-img_directory
(The directory where you get the open-sdr/openwifi-hw-img repo via git clone)
export BOARD_NAME=your_board_name
首先在.bashrc里面先设定好环境
然后从openwifi-hw-img中拾取FPGA比特流,生成system_top.bit.bin,通过ssh通道传输到板上:
cd openwifi/user_space; ./boot_bin_gen.sh $XILINX_DIR $BOARD_NAME $OPENWIFI_HW_IMG_DIR/boards/$BOARD_NAME/sdk/system_top.xsa
scp ./system_top.bit.bin [email protected]:openwifi/
这边还是有点奇怪的,因为是vivado21所以应该是vitis才对,文件下面也并没有sdk,所以应该是需要修改的
首先就是需要再.bashrc下面加上export XSA_FILE=/home/cjl520/openwifi/openwifi-hw/boards/antsdr/openwifi_antsdr/vitis
因为之前vitis生成的system_top.xsa文件就在这个下面(这是我的地址,每个人下载的可能不一样,cjl520是我的工程目录)
./boot_bin_gen.sh $XILINX_DIR $BOARD_NAME /home/cjl520/openwifi/openwifi-hw/boards/antsdr/openwifi_antsdr/vitis/system_top.xsa
生成新的system_top.bit.bin
然后复制该文件到SD卡上(用下面命令的好处就是可以直接在SDR还启动的时候,复制过去,如果用的虚拟机把桥接改共用net,不然ssh没用)
scp ./system_top.bit.bin [email protected]:openwifi/
更新driver驱动,应该就是sdr的lib/module里面内核的驱动那些ko文件之类的了
首先是环境准备,我们是zynq7020所以是32
sudo apt install flex bison libssl-dev device-tree-compiler u-boot-tools -y
cd openwifi/user_space; ./prepare_kernel.sh $XILINX_DIR ARCH_BIT
(For Zynq 7000, ARCH_BIT should be 32, for Zynq MPSoC, ARCH_BIT should be 64)
然后就是编译最新的openwifi驱动文件
cd openwifi/driver; ./make_all.sh $XILINX_DIR ARCH_BIT
(For Zynq 7000, ARCH_BIT should be 32, for Zynq MPSoC, ARCH_BIT should be 64)
(More arguments (max 5) beyond above two will be converted to "#define argument" in pre_def.h for conditional compiling)
最后复制过去,就是所有.ko文件,包括子文件夹里面的,最后发现其实就是那几个关键的ko文件
cd openwifi/driver; scp `find ./ -name \*.ko` [email protected]:openwifi/
最后就可以重新使用./wgd.sh脚本来加载更新驱动。
标签:bin,文件,步骤,openwifi,编译,sh,XILINX,DIR From: https://www.cnblogs.com/cjl520/p/18349103