zynq的sdk在wsl环境安装

参考

Ubuntu24.04编译linux-xlnx-xlnx_rebase_v5.4的问题.csdn

安装sdk

bash 复制代码
minglie@DESKTOP:/opt$ sudo chown -R minglie:minglie /opt
minglie@DESKTOP:/opt$ mkdir -p /opt/data/b/202002
minglie@DESKTOP:/opt$ cd /opt/data/b/202002
wsl.localhost\Ubuntu\opt\data\b\202002> scp minglie@192.168.1.105:/opt/data/b/202002/sdk.sh ./sdk.sh
minglie@DESKTOP:/opt/data/b/202002$ chmod 777 sdk.sh
minglie@DESKTOP:/opt/data/b/202002$./sdk.sh
# 一路回车
# 在.bashrc 配置sdk环境变量别名
alias ssdk='source  /opt/petalinux/2020.2/environment-setup-cortexa9t2hf-neon-xilinx-linux-gnueabi'
# 测试$CC
minglie@DESKTOP-NTI9KM5:/opt/data/b/202002$ $CC
arm-xilinx-linux-gnueabi-gcc: fatal error: no input files
compilation terminated.

解压和编译内核

制作内核压缩包

bash 复制代码
minglie@minglie:~/workspace/kernel-driver$ tar -zcvf linux-xlnx-xlnx_rebase_v5.4_2020.2.tar.gz linux-xlnx-xlnx_rebase_v5.4_2020.2

内核压缩包拷贝到wsl环境

bash 复制代码
\\wsl.localhost\Ubuntu\home\minglie\workspace\kernel-driver> scp minglie@192.168.1.105:/home/minglie/workspace/kernel-driver/linux-xlnx-xlnx_rebase_v5.4_2020.2.tar.gz ./

wsl环境解压内核压缩包

bash 复制代码
minglie@DESKTOP-NTI9KM5:~/workspace/kernel-driver$ tar -zxvf linux-xlnx-xlnx_rebase_v5.4_2020.2.tar.gz

wsl环境解编译内核报错

bash 复制代码
minglie@DESKTOP-NTI9KM5:~/workspace/kernel-driver/linux-xlnx-xlnx_rebase_v5.4_2020.2$ make -j$(nproc)
  HOSTLD  scripts/dtc/dtc
/usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x20): multiple definition of `yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status
make[1]: *** [scripts/Makefile.host:116: scripts/dtc/dtc] Error 1
make: *** [Makefile:1263: scripts_dtc] Error 2

修正重新编译

bash 复制代码
# scripts/dtc/dtc-lexer.l 的 26行
# YYLTYPE yylloc; 改为 extern YYLTYPE yylloc;
$ vim scripts/dtc/dtc-lexer.l
# 重新编译
make mrproper
make xilinx_zynq_defconfig
make -j$(nproc)


# 或者
# 删除 dtc 的生成文件
rm -f scripts/dtc/dtc
rm -f scripts/dtc/*.o
rm -f scripts/dtc/*.tab.*
rm -f scripts/dtc/*.lex.c
# 重新编译
make -j$(nproc)