在wsl下开发T113的主线linux(1)-准备wsl开发环境

本文介绍了如何在Windows10或11的WSL环境下安装Ubuntu,选择合适的版本(这里选的是WSL1和Ubuntu22.04.01LTS),并利用WSL的文件系统交互优势进行开发工作。主要工具包括VScode用于代码编辑,MobaXterm作为串口调试工具,以及安装和配置ARMGNUToolchain12.2用于交叉编译。文章强调了这种设置在处理内核源码和Git交互时的便利性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先在win10或win11下安装wsl,选择wsl1或者wsl2都可以,wsl2的性能更高一些,wsl1的跨系统文件操作速度更快一些,我这里因为有一些工程在win文件系统下,所以选择了wsl1,发行版使用最新的Ubuntu 22.04.01 LTS。

这里我没有选用vm虚拟机安装ubuntu开发的原因是虚拟机下的文件交互不够方便,特别是git和文件对比,有时在内核源码改了一些文件,使用win下的TortoiseGit工具就可以很方便的查看差异,提交变更。使用beyond compare也可很方便的比较各种文件文件夹的不同版本的差异。
 

在win资源管理器下可以直接查看wsl的linux根目录,右键可以直接执行各种操作,就像操作win文件一样

这里编译开发的核心软件只有一个,就是VS code,安装好后添加所需的插件。
串口调试工具使用MobaXterm

下载交叉编译器,这里使用arm官方最新的GCC 12.2
Arm GNU Toolchain Downloads – Arm DeveloperDownload the Arm GNU Toolchain, an open-source suite of tools for C, C++, and Assembly programming for the Arm architecture.https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-linux-gnueabihf.tar.xz
下载后解压在wsl的主目录,在.bashrc中添加编译器路径

PATH="$PATH:/home/wsl/arm-none-linux-gnueabihf/bin"

之后重新连接终端,arm-none-linux-gnueabihf-gcc -v确认安装成功

wsl@DESKTOP-NQRKTHB:~/t113/buildroot-2022.11$ arm-none-linux-gnueabihf-gcc -v
Using built-in specs.
COLLECT_GCC=arm-none-linux-gnueabihf-gcc
COLLECT_LTO_WRAPPER=/home/wsl/arm-none-linux-gnueabihf/bin/../libexec/gcc/arm-none-linux-gnueabihf/12.2.1/lto-wrapper
Target: arm-none-linux-gnueabihf
Configured with: /data/jenkins/workspace/GNU-toolchain/arm-12/src/gcc/configure --target=arm-none-linux-gnueabihf --prefix= --with-sysroot=/arm-none-linux-gnueabihf/libc --with-build-sysroot=/data/jenkins/workspace/GNU-toolchain/arm-12/build-arm-none-linux-gnueabihf/install//arm-none-linux-gnueabihf/libc --with-bugurl=https://bugs.linaro.org/ --enable-gnu-indirect-function --enable-shared --disable-libssp --disable-libmudflap --enable-checking=release --enable-languages=c,c++,fortran --with-gmp=/data/jenkins/workspace/GNU-toolchain/arm-12/build-arm-none-linux-gnueabihf/host-tools --with-mpfr=/data/jenkins/workspace/GNU-toolchain/arm-12/build-arm-none-linux-gnueabihf/host-tools --with-mpc=/data/jenkins/workspace/GNU-toolchain/arm-12/build-arm-none-linux-gnueabihf/host-tools --with-isl=/data/jenkins/workspace/GNU-toolchain/arm-12/build-arm-none-linux-gnueabihf/host-tools --with-arch=armv7-a --with-fpu=neon --with-float=hard --with-mode=thumb --with-arch=armv7-a --with-pkgversion='Arm GNU Toolchain 12.2.Rel1 (Build arm-12.24)'
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.2.1 20221205 (Arm GNU Toolchain 12.2.Rel1 (Build arm-12.24))
t113-i编译信息: I have already read, understood and accepted the above terms? [Y/N]y You select Yes, Build continue.... 07-21 10:58:06.673 3620 D mkcommon : ========ACTION List: mk_autoconfig -o openwrt -i t113_i -b evb1_auto -n default;======== 07-21 10:58:06.680 3620 D mkcommon : options : 07-21 10:58:09.421 3620 I mkcommon : kernel relative recovery defconfig: ../../../../../device/config/chips/t113_i/configs/evb1_auto/linux-5.4/config-5.4-recovery 07-21 10:58:09.426 3620 I mkcommon : kernel absolute recovery defconfig: /home/szbaijie/workspace/t113_i/T113_Tina5.0-V1.2/tina5.0-t113/device/config/chips/t113_i/configs/evb1_auto/linux-5.4/config-5.4-recovery 07-21 10:58:09.517 3620 I mkcommon : Prepare toolchain ... 07-21 10:58:09.554 3620 D mkcommon : Uncompressing '/home/szbaijie/workspace/t113_i/T113_Tina5.0-V1.2/tina5.0-t113/prebuilt/kernelbuilt/arm/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabi.tar.xz' to '/home/szbaijie/workspace/t113_i/T113_Tina5.0-V1.2/tina5.0-t113/out/toolchain/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabi' ... 07-21 10:58:44.025 3620 I mkcommon : kernel defconfig: generate /home/szbaijie/workspace/t113_i/T113_Tina5.0-V1.2/tina5.0-t113/out/t113_i/kernel/build/.config by /home/szbaijie/workspace/t113_i/T113_Tina5.0-V1.2/tina5.0-t113/device/config/chips/t113_i/configs/evb1_auto/linux-5.4/config-5.4 07-21 10:58:44.028 3620 I mkcommon : Prepare toolchain ... 07-21 10:58:44.162 3620 D mkcommon : make: Entering directory '/home/szbaijie/workspace/t113_i/T113_Tina5.0-V1.2/tina5.0-t113/kernel/linux-5.4' 07-21 10:58:44.206 3620 D mkcommon : make[1]: Entering directory '/home/szbaijie/workspace/t113_i/T113_Tina5.0-V1.2/tina5.0-t113/out/t113_i/kernel/build' 07-21 10:58:44.582 3620 D mkcommon : GEN Makefile 07-21 10:58:44.683 3620 D mkcommon : HOSTCC scripts/basic/fixdep 07-21 10:58:45.316 3620 D mkcommon : HOSTCC scripts/kconfig/conf.o 07-21 10:58:45.704 3620 D mkcommon : HOSTCC scripts/kconfig/confdata.o 07-21 10:58:46.309 3620 D mkcommon : HOSTCC scripts/kconfig/expr.o 07-21 10:58:46.848 3620 D mkcommon : LEX scripts/kconfig/lexer.lex.c 07-21 10:58:46.911 3620 D mkcommon : YACC scripts/kconfig/parser.tab.[ch] 07-21 10:58:47.101 3620 D mkcommon : HOSTCC scripts/kconfig/lexer.lex.o 07-21 10:58:47.640 3620 D mkcommon : HOSTCC scripts/kconfig/parser.tab.o 07-21 10:58:48.494 3620 D mkcommon : HOSTCC scripts/kconfig/preprocess.o 07-21 10:58:48.812 3620 D mkcommon : HOSTCC scripts/kconfig/symbol.o 07-21 10:58:49.826 3620 D mkcommon : HOSTLD scripts/kconfig/conf 07-21 10:58:49.979 3620 D mkcommon : *** Default configuration is based on '../../../../../device/config/chips/t113_i/configs/evb1_auto/linux-5.4/config-5.4' 07-21 10:58:53.228 3620 D mkcommon : # 07-21 10:58:53.234 3620 D mkcommon : # configuration written to .config 07-21 10:58:53.238 3620 D mkcommon : # 07-21 10:58:53.256 3620 D mkcommon : make[1]: Leaving directory '/home/szbaijie/workspace/t113_i/T113_Tina5.0-V1.2/tina5.0-t113/out/t113_i/kernel/build' 07-21 10:58:53.273 3620 D mkcommon : make: Leaving directory '/home/szbaijie/workspace/t113_i/T113_Tina5.0-V1.2/tina5.0-t113/kernel/linux-5.4' 07-21 10:58:54.539 3620 I mkcommon : clean buildserver 07-21 10:58:54.544 3620 I mkcommon : prepare_buildserver 07-21 10:58:54.729 4960 D mkcommon : ========ACTION List: handle_defconfig loadconfig;======== 07-21 10:58:54.733 4960 D mkcommon : options : 07-21 10:58:54.738 4960 I mkcommon : Prepare toolchain ... 07-21 10:58:54.878 4960 D mkcommon : make: Entering directory '/home/szbaijie/workspace/t113_i/T113_Tina5.0-V1.2/tina5.0-t113/kernel/linux-5.4' 07-21 10:58:54.885 4960 D mkcommon : make[1]: Entering directory '/home/szbaijie/workspace/t113_i/T113_Tina5.0-V1.2/tina5.0-t113/out/t113_i/kernel/build' 07-21 10:58:55.212 4960 D mkcommon : GEN Makefile 07-21 10:58:55.295 4960 D mkcommon : *** Default configuration is based on '../../../../../device/config/chips/t113_i/configs/evb1_auto/linux-5.4/config-5.4' 07-21 10:58:56.355 4960 D mkcommon : # 07-21 10:58:56.360 4960 D mkcommon : # No change to .config 07-21 10:58:56.363 4960 D mkcommon : # 07-21 10:58:56.366 4960 D mkcommon : make[1]: Leaving directory '/home/szbaijie/workspace/t113_i/T113_Tina5.0-V1.2/tina5.0-t113/out/t113_i/kernel/build' 07-21 10:58:56.370 4960 D mkcommon : make: Leaving directory '/home/szbaijie/workspace/t113_i/T113_Tina5.0-V1.2/tina5.0-t113/kernel/linux-5.4'
最新发布
07-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值