参考
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)