当前位置: 首页 > news >正文

⚡ WSL2 搭建 s5p6818 Linux 嵌入式开发平台(part 1):环境准备与架构设计

👓 1. 引言

在嵌入式开发中,ARM 架构单板的常见开发方式通常有两种:

  • 依赖公司内部的 Linux 服务器:这种方式适合团队协作,但服务器资源昂贵、维护成本高,个人开发者难以获得同样的环境。

  • 在 Windows 上安装虚拟机(如 VMware/VirtualBox):通过虚拟机模拟 Linux 环境进行开发。但虚拟机往往资源占用高,启动速度慢,使用体验不佳。

相比之下,WSL(Windows Subsystem for Linux) 提供了另一种选择。作为在 Wiindows 系统内部运行的 Linux 子系统,WSL 既具备与服务器类似的功能,又拥有比虚拟机更快的启动速度和更低的资源消耗。对于个人开发者而言,WSL2 是一个更轻量、更高效的解决方案。

本系列文章将以 S5P6818 单板 为例,系统地介绍如何基于 WSL2 构建一个可用于实际调试的嵌入式 Linux 开发平台。从前期的思路框架与环境准备,到 Bootloader、内核和根文件系统的构建,再到驱动移植与远程调试,一步一步的带你把整套流程跑通。

本篇(part 1)主要讲解我在这个过程中的思路框架、软硬件选型以及 WSL 安装配置,为下篇的系统部署做铺垫,使后续内容更易理解。


💡 2. 整体架构思路

⚽️ 2.1 WSL 版本选择

在搭建嵌入式开发平台时,首先需要明确开发环境的选择。Windows 提供了两种 WSL(Windows Subsystem for Linux)版本,各有特点:

WSL1

  • 本质:系统调用转译层,模拟出一个 Linux 环境,但没有完整的 Linux 内核。

  • 优点:与 Windows 主系统共享 USB 接口和网卡,直连嵌入式单板时非常方便。

  • 缺点:缺乏内核功能,很多需要内核态支持的工具(如 tcpdumpnmap)无法运行。

WSL2

  • 本质:基于虚拟化技术,提供完整的 Linux 内核。

  • 优点:几乎可以运行所有 Linux 原生程序,兼容性最佳。

  • 缺点:USB 和网卡都是虚拟出来的,无法直接访问物理设备。

    • USB 需要通过 usbipd 转发才能使用。

    • 网络依赖 Hyper-V,而 Windows 家庭版甚至无法开启 Hyper-V。

综上,WSL1 可以轻松的直连物理设备,但功能受限;WSL2 功能更强,但在与物理设备的连接上存在天然障碍。

我的 PC 环境是 Windows 家庭版,但为了能够运行内核态的 Linux 程序,我还是选择了 WSL2 作为开发平台(也是最“硬核”的一条路,硬到我差点翻车。在此强烈建议 PC 环境是 Windows 家庭版 的小白用 WSL1 )。

🏀 2.2 单板硬件型号

在硬件方面,我选择了手头闲置的一块 三星 S5P6818 开发板。虽然性能一般,但能流畅运行 Linux 系统,接口齐全,适合调试实验,用来搭配 WSL 练手再合适不过。

🏐 2.3 通信与调试通道设计

针对 WSL2 系统自身固有的 USB 与网络的限制,我设计了以下架构:

  • USB 通道:借助 PowerShell + usbipd 工具,把 USB 设备映射到 WSL2,再通过 kermit 进行串口调试。同时,利用 USB OTG 方式接入 fastboot,实现 Bootloader、内核和根文件系统的烧写。

  • 网络通道:由于家庭版 Windows 无法直接在 WSL2 中使用物理网卡,我改为在开发板上移植 WiFi 驱动,插入迷你版 USB WiFi 网卡,让单板接入无线网络。随后在单板中移植 SSH 服务,通过无线 SSH 进行远程调试。

⚠️ 注意:这里的 SSH 并非连接 WSL2,而是通过 Windows 自带的 PowerShell SSH 客户端进行操作。虽然中间多了一个PowerShell,但好在 PowerShell 的 SSH 使用起来几乎与 Linux 下原生 SSH 无差别。

 ⚾️ 2.4 单板系统构建方式

在单板的 Linux 系统构建方式上,我没有采用一键式的 Buildroot 构建镜像,而是采用逐步移植的方法,原因有三:

  1. 适配风险:Buildroot 默认配置未必完全适配 S5P6818,可能需要大量额外修改。

  2. 调试定位:一步步移植 Bootloader、内核、RootFS,可以精确定位问题出在哪个环节,而不是整块镜像一起排查。

  3. 学习价值:为了扩大这篇博客的受众面,让新手小白也能深入理解每一步移植操作的含义,所以这里我选择了逐步移植,而不是追求企业级效率的自动化构建。

🍪 2.5 整体架构总结

因此,最终形成的整体架构如下:

  • 单板操作系统构建方式: 逐步移植 Bootloader → 内核 → 根文件系统,分阶段调试、便于定位问题。

  • 开发与交叉编译: 使用交叉编译器和构建脚本在 WSL2 环境中完成开发与交叉编译。

  • 文件传输与远程调试: 通过 PowerShell 的 SSH 客户端和 Wifi 网络与单板建立通信,进行文件传输和远程调试。

  • 镜像烧写与串口调试: 通过 PowerShell 的 usbipd 将 USB/OTG 映射到 WSL2,之后再用 fastboot 进行烧写,用 kermit 进行串口调试。


⚙️ 3. 软硬件列表

🔩 3.1 硬件配置

S5P6818 单板:

  • CPU:8 核 Cortex-A53,1.4GHz
  • 内存:1GB DDR3
  • 存储:8GB eMMC
  • 接口:
    • UART ×2
    • USB 2.0 ×3
    • USB OTG ×1
    • SD 卡槽 ×2
    • 以太网接口 ×1

无线网卡

  • TL-LINK 迷你款 150M(光驱版,需移植驱动,已绝版)x1

其他配件:

  • USB 转串口线 x1
  • USB 转 USB OTG 线  x1
  • 5V 3A 电源适配器 x1
  • 32G SD卡 x1
  • SD卡读卡器 x1

🖥️ 3.2 软件清单

交叉编译器

  • arm-cortex_a9-eabi-4.7-eglibc-2.18.tar.gz

Linux系统移植软件包

  • e2fsprogs-1.47.3.tar.gz
  • busybox-1.21.1.tar.gz
  • uboot.tar.bz2(单板厂家提供)
  • kernel.tar.bz2(单板厂家提供)

SSH移植软件包

  • openssh-7.6p1.tar.gz
  • openssl-1.0.1s.tar.gz
  • zlib-1.3.1.tar.gz

Wifi驱动移植软件包

  • libnl-1.1.4.tar.gz
  • wpa_supplicant-2.6.tar.gz
  • wireless_tools-29.tar.gz

🍁 4. WSL 安装与配置

✨ 4.1 WSL 简介

WSL 是 Windows 系统为了适配 Linux 系统而创造的子系统,可以以终端的方式操作 Linux 系统,避免配置虚拟机的相关复杂设定,大大提升了开发效率。

☀️ 4.2 WSL 安装

在 Windows 系统的 Microsoft Store 中搜索 WSL,找到对应的 Ubuntu 版本点击获取按钮下载安装

在安装完成后打开控制面板,点击程序,点击程序和功能,点击启用或关闭 Windows 功能,找到“适用于 Linux 的 Windows 子系统”选框将其勾选(如图所示)

重新启动后打开Microsoft Store找到wsl,点击打开按钮进行wsl子系统的部署,中途要求输入登录Linux系统的用户名和密码

当出现以下信息的时候wsl子系统即部署完毕

Installing, this may take a few minutes...
Please create a default UNIX user account. The ussername does not need to match your Windows username
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: huyl
New password:
Retype new password:
passwd: password updated successfully
Installation successful!

通过这个步骤安装的子系统是基于cmd终端窗口的,无法进行进一步设置

如果想要进一步设置wsl子系统(比如配置快捷键缓冲区大小),需要打开Windows powershell,执行以下命令

wsl --update

当出现提示“已安装 适用于Linux 的 Windows 子系统”时,可以打开开始菜单搜索wsl,找到WSL Settings应用,在这个应用中可以进一步设置wsl子系统

🌈 4.3 WSL 版本切换

一般来说windows 10 系统默认安装的是WSL1,而windows 11 系统默认安装的是 WSL2,可以在 Powershell 或者是 cmd 终端中查看 wsl 版本和当前的 Linux 发行版(如图所示)

我这里是 WSL2,如果你是 WSL1 的话,可以通过以下命令切换到 WSL2( WSL2 切换到 WSL1 同理)

wsl --set-default-version 2
wsl --set-version Ubuntu-22.04 2

⚠️ 注意: wsl --set-version Ubuntu-22.05 2 这条命令执行以后会正式进行转化,转化的过程可能需要半个小时以上,请做好相应的心理准备。

💡 提示:如果不需要内核级调试的话,我强烈推荐使用 WSL1 搭建嵌入式开发平台。因为 WSL1 和 windows 系统共享物理接口,PC 上的网卡和 USB 都能直接链接到 WSL1 ,而 WSL2 需要用各种手段来绑定这些接口(有的还没法绑)。 


💥 5. 问题与解决方案

🍄 5.1 虚拟化平台冲突问题

WSL1 不需要开启虚拟化平台即可运行,而 WSL2 需要开启虚拟化平台才可以运行

因此 WSL2 和其他需要使用虚拟化平台的虚拟机或模拟器会产生冲突

比如雷电9模拟器在检测到电脑开启虚拟化平台服务后会将游戏性能下降50%(弹出的警告窗口是这么说的)

其实 WSL1 和 WSL2 各有各的优势,没有说那个版本更好,重要的是根据设备的需求安装合适版本的 WSL。


🎆 6. 后期预告

本篇主要讲了 WSL2 搭建 s5p6818 Linux 嵌入式开发平台思路框架、软硬件选型以及 WSL 安装配置。在下篇中我将会详细介绍如何在 WSL2 系统中构建一个完整的嵌入式 Linux 系统,以及如何把这个系统装到 s5p6818 单板中,让他在单板上运行起来。

🌀 传送门:part 2https://blog.csdn.net/aitav0/article/details/152113862?sharetype=blogdetail&sharerId=152113862&sharerefer=PC&sharesource=aitav0&spm=1011.2480.3001.8118

http://www.dtcms.com/a/435081.html

相关文章:

  • 学科建设网站wordpress 主体安装
  • 如何免费建立自己的网站中国建设摩托车
  • 主机服务器网站 怎么做孝义网站建设
  • 快速搭建企业网站阿里虚拟机建设网站
  • 山西建设机械网站首页备案添加网站
  • 店面建设网站的必要性58同城装修设计师
  • C语言笔记
  • 23ICPC合肥站补题
  • LR算法中反向最右推导(Reverse RightMost Derivation)
  • 企业网站托管服务常用指南wordpress ssl证书
  • 专注于响应式网站开发高端定制网站建设高端旅游定制
  • django网站开发教程杭州最便宜的网站建设
  • rpm包的安装方法
  • 内网环境下离线安装软件的完美解决方案(以MySQL为例)
  • 构造函数和初始化列表的关系
  • 济南网站优化建设局网站打不开
  • LabVIEW 系统稳定性计算
  • Rocky Linux 8 安装与配置 TigerVNC 服务完整操作文档
  • Testify Go测试工具包入门教程
  • 南阳网站建设xihewh成都网站建设公司有哪几家
  • **标题:发散创新:探索AR开发框架的核心技术**随着增强现实(AR)技术的飞速发展,AR开发框架成为了开发者们关注的焦
  • 网站推广的优势logo制作免费版
  • 汕头网站建设制作报价网片是干什么用的
  • 江西省住房和城乡建设厅的网站网站设计权限
  • 【人工智能通识专栏】第三十三讲:知识库的构建与应用
  • 、@RequestParam 取出文件项
  • llms.txt:为大模型打造的“网站说明书”
  • 浔川社团再创佳绩
  • wordpress js版本号郑州官网网站优化公司
  • 藏语自然语言处理入门 - 3 找关键词