Win11开发嵌入式Linux与交叉编译的一些轮子

由于我不愿意直接使用ubuntu环境来开发Linux,所以在实践中我摸索出一套能够在最新的win11下调试Linux开发板的方法。

wsl2准备

首先我们需要安装wsl2。安装教程

使用USB IP读写SD卡

我们需要在linux环境下对开发板使用的TF卡进行读写。由于wsl2不支持直接挂载宿主机的usb设备,并且其内核根本也没有打开usb的驱动。所以我们需要重新编译wsl的内核。下载内核后,make menuconfig,进入device drivers,打开USB与USB IP的驱动,并保存配置。再make -j16,编译好内核,替换zImage。做好这个工作后,我们再在宿主机上安装usbipd。安装教程

配置好wsl2内核和usbipd后就可以在windows下使用管理员权限打开终端,输入

usbipd wsl list
usbipd wsl attach --busid <busid>

然后进入运行ubuntu的wsl2,运行lsusb,然后使用

mkdir /mnt/mmcblk0p0
mkdir /mnt/mmcblk0p1
mount /dev/sdd1 /mnt/mmcblk0p0
mount /dev/sdd2 /mnt/mmcblk0p1

将TF卡上的分区挂载到wsl2上。

SSH工具与编译内核

我们可以通过终端打开wsl,也可以在Mac上使用vscode直接远程ssh。

其实我个人感觉vscode已经秒杀很多ssh工具了。Windows有mobaxterm,linux下用vscode就ok了。Mac下vscode的终端支持ncurses,可以进行内核的配置。

为了编译内核,我们需要安装一些shared library。

sudo apt install libncurses-dev flex bison

安装好以上工具链后,我们就可以执行make menuconfig来配置内核了。

工具链链接

  • licheepi特供uboot
  • arm-linux-gnueabi交叉编译工具链,这个工具比较老,在arm官方的最新releases上找不到,所以需要点击页面上的If you need to access the previous releases of GNU Arm Embedded Toolchain or the previous releases of GNU Toolchain for the A-profile architecture, please refer to:,点击GNU toolchain releases for A-profile processors (discontinued),在march 04,2019之前,就有AArch32 target with soft float (arm-linux-gnueabi)的下载地址了。
  • Linux Kernel
  • Buildroot
posted @ 2023-08-28 10:36  可爱无辜猫猫头  阅读(90)  评论(0编辑  收藏  举报