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