首页 > 其他分享 >openwifi编译步骤记录

openwifi编译步骤记录

时间:2024-10-20 20:36:23浏览次数:7  
标签:bin 文件 步骤 openwifi 编译 sh XILINX DIR

这边还是简单记一下步骤

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

相关文章

  • openwifi学习-日程记录(全)
    网址:https://github.com/open-sdr/openwifiOpenwifi:openwifi与linux的驱动部分源码和linux系统。Openwifi-hw:openwifi的FPGA部分源码,是硬件部分,也是lowmac部分。Openofdm:openwifi的基带部分源码,也是运行在FPGA中,最终集成到openwif-hw项目中,也算是openwif-hw的一部分(ip),在这里单......
  • openwifi的ad-hoc模式测试
    https://github.com/open-sdr/openwifi/blob/master/doc/app_notes/ad-hoc-two-sdr.md这是官网上的测试文档,其中的注意事项我看到不是我们的板子的无所谓了,但是提醒了发射和接收天线正交/垂直获得更好的效果(并没有,把天线垂直直接ping不通,给我忙一个下午才发现)按照手册上的指示,对......
  • PyCharm2023版本之后使用本地conda已存在环境的步骤方法
    2023新版本的pycharm在创建新项目并导入本地conda环境时与以往版本稍有不同,具体步骤如下:1、在新建项目窗口点击Previouslyconfiguredinterpreter 2、点击右侧蓝色AddInterpreter后点击AddLocalInterpreter进入本地环境选择窗口 点击后进入如下界面 3、之后点击Co......
  • 编译 tmux
    编译tmux下载源码:前往tmux/tmux下载源码包。解压并安装:./configure--prefix="$HOME/.local"make-j(nproc)makeinstall编译依赖项在配置tmux时可能会因缺少依赖项而编译失败。此时需要先编译依赖项。ncurses下载源码:前往GNUFTP服务器下载ncurses......
  • VM+ubuntu,编译huawei EC6109 SDK 报错,不知道啥原因
    环境:ubuntu14,内核3.13.0-24-generic源代码:https://kgithub.com/tegzwn/HiSTBLinuxV100R005C00SPC050报错:1、master/HiSTBLinuxV100R005C00SPC041B020/out/hi3798mv100/hi3798mdmo1g/obj/source/boot/fastboot/include/configs/export.shmake-C/mnt/hgfs/STB/hi3798mv100-......
  • 如何分析 JVM 内存泄漏问题:常见原因、分析 JVM 内存泄漏的工具与步骤、如何避免 JVM
    文章目录1.JVM内存泄漏的常见原因2.分析JVM内存泄漏的工具与步骤2.1使用`jmap`工具生成堆转储文件2.2使用`jvisualvm`分析堆转储2.3使用EclipseMemoryAnalyzerTool(MAT)2.4监控GC日志2.5实时监控内存使用情况3.如何避免JVM内存泄漏4.总结5.相......
  • 编译Android14遇到lunch不显示target的问题
    参考Android系统源码编译https://xdaforums.com/t/lunch-failed.4665348/https://www.huigll.com/cannot-display-lunch-menu/现象android-14.0.0_r74$.build/envsetup.shandroid-14.0.0_r74$lunchYou'rebuildingonLinuxWarning:Cannotdisplaylunchmenu.......
  • 【原创】RK3588/RK3568/RK3562平台 IgH EthercAT主站编译安装
    目录igh主站编译安装说明一、配置内核自带网卡驱动编译为模块1.内核配置编译内核编译内核模块二、交叉编译EtherCAT主站1.普通linux或preempt-rt1.1配置1.2编译1.3安装到TF卡根目录2.xenomai2.1交叉编译xenomai库2.2配置2.3编译2.4安装到TF卡根目录四、安装目录打......
  • VTK9.3.1在Windows10+VS2022+Qt 5.14.2环境下编译安装以及VTK应用于QT
    文章目录概要搭建编译环境编译源代码VisualStudio2022+Qt使用VTK概要本文主要介绍VTK9.3.1如何在Windows10上使用VS2022和QT进行编译安装。搭建编译环境先从VTK官网下载VTK9.3.1的源码,VTK下载地址我们可以按照官方推荐的编译方式进行编译,首先设置三个文件夹......
  • Ubuntu 16.04 编译安装Python 2.7.18
    安装python2.7.18(注)使用aptinstallpython安装的版本是2.7.10,该版本对部分项目存在兼容性问题,因此需要手动编译安装安装python编译环境sudoaptinstallpython-devpkg-configlibreadline-devlibc6-devlibncursesw5-devbuild-essentialgdbpkg-configlibbz2-devlibffi-......