首页 > 系统相关 >Win11开发嵌入式Linux与交叉编译的一些轮子

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

时间:2023-08-28 10:46:11浏览次数:47  
标签:mnt wsl 嵌入式 编译 内核 Linux Win11 wsl2

由于我不愿意直接使用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

标签:mnt,wsl,嵌入式,编译,内核,Linux,Win11,wsl2
From: https://www.cnblogs.com/maomaotou-thu/p/17661642.html

相关文章

  • Linux下MySql开放访问权限
    在Linux下安装完数据库后,局域网内无法访问。 设置方法:1.停止mysql,进入/etc/mysql/,编辑my.cnf,找到bind-address的配置,改为0.0.0.0,然后启动mysql2.登录mysql,进入mysql数据库,执行updateusersethost='%'wherehost='127.0.0.1'anduser='root',执行完成后再使用命令flushprivileg......
  • Linux目录结构
    Linux目录结构linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录"/",然后在此目录下再创建其他目录。/bin[重点](/user/bin、/user/local/bin)是Binary的缩写,找个目录是存放着最经常使用的命令/sbin(/user/sbin、/user/local/sbin),s是superuser的意......
  • Linux基础入门常见命令
    ls查看ls-lcdmv移动mkdir创建df查看磁盘pwd查看当前目录rm-rf删除强制删除sudouseradd-m用户名创建新用户创建的新用户权限是很低的sudopasswd用户名创建新用户密码sudouserdel用户名删除用户sudormf-/home/用户名强制删除用户的所有......
  • linux学习指令与现有环境解决问题笔记
    linux学习指令与现有环境笔记注意:我将pytorch和cuda安装在了pytorch这个虚拟环境中pytorch安装及注意问题注意版本对应,稳定版2.0.1对应cuda11.7,别按错了按错导致重新安装cuda安装过程与对应问题注意上述内容,里面告诉了添加环境变量,如何删除cuda,cuda下载的位置,下载对应驱动......
  • 在Linux环境下安装Nginx
    在Linux环境下安装和使用Nginx是相对简单的。下面是一步步详解:安装依赖软件:首先,打开终端并以管理员权限登录到Linux系统。然后,执行以下命令安装Nginx所需的依赖软件:sudoaptupdatesudoaptinstallcurlgnupg2ca-certificateslsb-release添加Nginx官方软件仓库:执行以下命令......
  • linux学习-rehat8更换yum源
    redhat安装完后是不能直接用yum源的,会提示没有注册,需要修改成centos8的源里使用阿里云Centos8yum源cd/etc/yum.repos.d/#下载阿里云yum源curl-o/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com/repo/Centos-8.repomvredhat.reporedhat.repo_bak#将redhat......
  • linux学习-nginix生产配置示例
    usernginxnginx;worker_processes8;worker_rlimit_nofile65535;error_log/var/log/nginx/error.logerror;pidlogs/nginx.pid;events{ useepoll;worker_connections65535; multi_accepton;}http{includemime.types;......
  • 如何在 Linux 中设置 SSH 无密码登录
    SSH(SecureSHELL)是一种开源且可信的网络协议,用于登录远程服务器以执行命令和程序。它还用于使用安全复制(SCP)命令和rsync命令通过网络将文件从一台计算机传输到另一台计算机。在本文中,我们将向您展示如何在基于RHEL的Linux发行版(例如CentOS、Fedora、RockyLinux和A......
  • [Kali] Kali Linux 环境准备
      虚拟机和系统:Mac的VmwareFusion:https://www.vmware.com/cn/products/fusion/fusion-evaluation.html 序列号去谷哥查.KaliLinuxVMs:https://www.kali.org/get-kali/#kali-virtual-machines 修改root密码:sudopasswdroot  远程连接客户端工具:windows-X......
  • Linux将执行命令结果输出到文本文件
    参考1参考2Linux将执行命令结果输出到文本文件一、把命令运行的结果保存到文件当中:用>把输出转向就可以了例子:$ls>ls.txt#或者ls-->ls.txt#把ls命令的运行结果保存到文件ls.txt中说明:'>'是把输出转向到指定的文件,如文件已存在的话也会重新写入,文件原内容......