news 2026/4/19 4:14:42

从零到壹嵌入式Linux编程实战教程课:第2课:嵌入式Linux开发环境搭建

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从零到壹嵌入式Linux编程实战教程课:第2课:嵌入式Linux开发环境搭建

文章目录

    • 一、课程导入
    • 二、核心知识点讲解
      • (一)开发环境核心组成
        • 核心说明
      • (二)Hyper-V安装与启用
      • (三)Ubuntu 20.04系统安装
      • (四)辅助工具安装与配置(FileZilla、WindTerm)
      • (五)环境测试
        • 常见问题解决
    • 三、课堂示例
    • 四、课后作业
    • 五、本节课核心总结
      • 核心知识点总结
      • 学习重点与难点
      • 关键词
    • 六、课程回顾总结
  • 上一课作业答案:嵌入式Linux概述 实战作业代码及说明
    • (一)实战作业代码
    • (二)代码功能说明
    • (三)作业注意事项

一、课程导入

上一节课我们已经建立了对嵌入式Linux的基础认知,了解了其定义、核心优势和应用场景。本节课作为基础入门阶段的核心实操课,核心目标是帮助大家完成Windows系统下嵌入式Linux开发环境的搭建——这是后续所有编程实战、开发板调试的基础,至关重要。

嵌入式Linux开发不同于普通C语言编程,需要搭建专用的开发环境(虚拟机+Linux系统+辅助工具),本节课我们将一步步实操,完成Hyper-V虚拟机安装、Ubuntu系统配置,以及FileZilla、WindTerm等辅助工具的安装与调试,确保每一位学员都能搭建出可正常使用的开发环境,为后续课程做好准备。

二、核心知识点讲解

(一)开发环境核心组成

Windows系统下嵌入式Linux开发环境,主要由3部分组成,缺一不可,各部分分工明确:

  1. 虚拟机(Hyper-V):相当于在Windows系统中“虚拟”出一台电脑,用于安装Linux系统(Ubuntu),作为嵌入式开发的“服务器端”;

  2. Linux系统(Ubuntu 20.04):嵌入式Linux开发的核心环境,后续的交叉编译、程序编写、驱动开发均在此环境中完成;

  3. 辅助工具(FileZilla、WindTerm):FileZilla用于Windows与Ubuntu之间的文件传输,WindTerm用于串口通信、远程连接,是后续操作开发板的核心工具。

核心说明

选择Hyper-V而非其他虚拟机,是因为Hyper-V是Windows自带的虚拟机工具,兼容性更强、资源占用更低,无需额外安装第三方虚拟机软件,适配Windows 10/11专业版、企业版,操作更便捷;Ubuntu 20.04是嵌入式开发的主流版本,稳定性强、生态完善,适配绝大多数交叉编译工具和开发板。

(二)Hyper-V安装与启用

Hyper-V是Windows自带的虚拟化工具,需先启用该功能,再完成虚拟机配置,步骤如下(全程实操,每一步都需确认无误):

  1. 检查系统兼容性:确保Windows系统为10/11专业版、企业版(家庭版不支持Hyper-V,需升级系统或使用其他替代方案);

  2. 启用Hyper-V功能:

(1)按下Win+R键,输入“control”打开控制面板,选择“程序和功能”;

(2)点击左侧“启用或关闭Windows功能”,在弹出的窗口中,勾选“Hyper-V”所有选项(包括Hyper-V管理工具、Hyper-V平台);

(3)点击“确定”,系统会提示“需要重启电脑才能生效”,点击“立即重启”,重启后Hyper-V功能正式启用。

  1. 打开Hyper-V管理器:重启后,按下Win键,搜索“Hyper-V管理器”,点击打开(若搜索不到,说明Hyper-V未启用成功,需重新检查步骤)。

(三)Ubuntu 20.04系统安装

在Hyper-V中创建虚拟机,并安装Ubuntu 20.04系统,步骤详细拆解,确保零基础可跟随操作:

  1. 下载Ubuntu 20.04镜像文件:

打开Ubuntu官方网站(https://ubuntu.com/download/alternative-downloads),下载“Ubuntu 20.04 LTS Server”版本(服务器版,无桌面,资源占用低,适配嵌入式开发),镜像文件格式为.iso。

  1. 在Hyper-V中创建虚拟机:

(1)打开Hyper-V管理器,点击右侧“新建”→“虚拟机”,弹出新建虚拟机向导,点击“下一步”;

(2)输入虚拟机名称(建议命名为“Embedded-Ubuntu”,便于识别),选择虚拟机保存路径(建议保存到非系统盘,预留至少20GB空间),点击“下一步”;

(3)分配内存:建议分配2GB(2048MB),勾选“使用动态内存”,点击“下一步”;

(4)配置网络:选择“Default Switch”(默认交换机),确保虚拟机可与Windows主机互联互通,点击“下一步”;

(5)创建虚拟硬盘:建议分配20GB以上空间,点击“下一步”;

(6)安装操作系统:选择“从可启动的CD/DVD-ROM安装操作系统”,点击“浏览”,选择下载好的Ubuntu 20.04镜像文件,点击“下一步”,最后点击“完成”,虚拟机创建完成。

  1. 安装Ubuntu系统:

(1)选中创建好的虚拟机,点击右侧“启动”,启动虚拟机;

(2)启动后,选择语言(建议选择“English”,避免中文乱码),按Enter键;

(3)选择“Install Ubuntu Server”,按Enter键,跟随向导完成基础配置(时区选择“Asia/Shanghai”,设置用户名、密码,密码建议简单易记,后续登录需使用);

(4)配置过程中,会提示“是否安装SSH服务器”,勾选“Install OpenSSH Server”(后续可通过FileZilla连接),继续完成安装;

(5)安装完成后,点击“Reboot Now”重启虚拟机,重启后输入用户名和密码,即可登录Ubuntu系统。

(四)辅助工具安装与配置(FileZilla、WindTerm)

辅助工具是连接Windows与Ubuntu、后续操作开发板的关键,本节课先完成安装与基础配置,后续课程将深入使用。

  1. FileZilla安装与配置(文件传输工具):

(1)下载FileZilla:打开FileZilla官方网站(https://filezilla-project.org/),下载Windows版本的FileZilla Client(客户端);

(2)安装FileZilla:双击安装包,跟随向导完成安装(默认安装即可,无需修改配置);

(3)连接Ubuntu:

① 打开Ubuntu系统,输入“ifconfig”命令,查看虚拟机的IP地址(记录下来,后续连接需使用);

② 打开FileZilla,点击“文件”→“站点管理器”,点击“新站点”;

③ 协议选择“SFTP - SSH File Transfer Protocol”,主机输入Ubuntu的IP地址,端口默认22,用户名和密码输入Ubuntu的登录用户名和密码;

④ 点击“连接”,连接成功后,左侧为Windows文件目录,右侧为Ubuntu文件目录,可直接拖拽文件完成传输。

  1. WindTerm安装与配置(串口/远程连接工具):

(1)下载WindTerm:打开WindTerm官方网站(https://windterm.net/),下载Windows版本的WindTerm;

(2)安装WindTerm:解压下载的压缩包,无需安装,双击“WindTerm.exe”即可打开;

(3)基础配置:打开WindTerm后,点击左上角“会话”→“新建会话”,选择“SSH”,主机输入Ubuntu的IP地址,用户名和密码输入Ubuntu的登录信息,点击“连接”,即可远程登录Ubuntu系统(后续操作开发板时,将配置串口连接)。

(五)环境测试

环境搭建完成后,必须进行测试,确认各部分均可正常使用,避免后续课程出现问题:

  1. 测试Ubuntu系统:登录Ubuntu后,输入“ls”“pwd”等基础Linux命令,查看是否能正常执行;

  2. 测试FileZilla:在Windows中创建一个文本文件,通过FileZilla拖拽到Ubuntu系统中,查看是否传输成功;

  3. 测试WindTerm:通过WindTerm远程登录Ubuntu,输入Linux命令,查看是否能正常执行,确保远程连接正常。

常见问题解决
  1. Hyper-V启用失败:检查Windows系统版本,家庭版需升级到专业版;若已为专业版,重启电脑后重新启用;

  2. Ubuntu安装失败:检查镜像文件是否完整,虚拟机内存、硬盘分配是否充足;

  3. FileZilla连接失败:确认Ubuntu的IP地址正确,防火墙已关闭,且安装Ubuntu时已勾选“Install OpenSSH Server”。

三、课堂示例

示例1:Hyper-V启用与虚拟机创建演示

打开控制面板→程序和功能→启用或关闭Windows功能,勾选Hyper-V所有选项,重启电脑后,打开Hyper-V管理器,新建虚拟机,命名为“Embedded-Ubuntu”,分配2GB内存、20GB硬盘,选择Ubuntu镜像文件,完成虚拟机创建,全程演示每一步操作,重点提醒“网络配置选择Default Switch”“勾选SSH服务器”两个关键步骤,避免学员出错。

示例2:FileZilla连接Ubuntu演示

在Ubuntu中输入“ifconfig”,查看IP地址(如192.168.1.100),打开FileZilla,新建站点,选择SFTP协议,输入IP地址、Ubuntu用户名和密码,点击连接,连接成功后,将Windows桌面的“test.txt”文件拖拽到Ubuntu的/home目录下,查看Ubuntu中是否存在该文件,验证文件传输功能正常。

示例3:WindTerm远程登录演示

打开WindTerm,新建SSH会话,输入Ubuntu的IP地址、用户名和密码,连接成功后,输入“ls -l”命令,查看Ubuntu目录下的文件,输入“sudo apt update”命令,更新软件源,验证远程连接和命令执行正常,为后续交叉编译工具安装做好准备。

四、课后作业

  1. 实操任务:

(1)完成Hyper-V启用、虚拟机创建,安装Ubuntu 20.04系统,确保能正常登录;

(2)安装FileZilla和WindTerm,完成与Ubuntu的连接,实现文件传输和远程登录;

(3)测试环境:通过WindTerm执行“ls”“pwd”“ifconfig”三个命令,截图保存执行结果;通过FileZilla传输一个文本文件到Ubuntu,截图保存传输过程。

  1. 简答题:

(1)简述Hyper-V、Ubuntu、FileZilla、WindTerm在嵌入式Linux开发环境中的作用;

(2)简述FileZilla连接Ubuntu失败的常见原因(至少列出2个)。

  1. 预习任务:

预习第3课“嵌入式Linux开发环境搭建(开发板)”,了解开发板的基本结构,提前熟悉WindTerm的串口配置步骤,为下节课的开发板连接做好准备。

五、本节课核心总结

核心知识点总结

  1. 开发环境组成:Hyper-V虚拟机、Ubuntu 20.04系统、FileZilla(文件传输)、WindTerm(远程/串口连接),四者协同工作,构成嵌入式Linux开发的基础环境;

  2. 核心实操:Hyper-V启用、虚拟机创建、Ubuntu系统安装、辅助工具配置,每一步都需严格遵循步骤,重点关注网络配置、SSH服务器安装两个关键节点;

  3. 环境测试:搭建完成后,需测试Ubuntu命令执行、FileZilla文件传输、WindTerm远程连接,确保环境可用;

  4. 常见问题:Hyper-V启用失败、Ubuntu安装失败、工具连接失败,需掌握对应的解决方法,避免影响后续学习。

学习重点与难点

重点:Hyper-V启用、Ubuntu系统安装、FileZilla和WindTerm的配置与使用,能独立完成环境搭建和测试;

难点:Ubuntu系统安装过程中的基础配置(时区、用户名、SSH服务器),FileZilla和WindTerm的连接配置,解决常见连接失败问题。

关键词

Hyper-V、Ubuntu 20.04、FileZilla、WindTerm、嵌入式Linux开发环境、SSH、文件传输、远程连接

六、课程回顾总结

本节课作为嵌入式Linux基础入门阶段的核心实操课,核心围绕Windows系统下开发环境搭建展开,衔接上节课的理论认知,实现从“了解”到“实操”的过渡。首先,我们明确了开发环境的四大核心组成部分,分别是Hyper-V虚拟机、Ubuntu 20.04系统、FileZilla和WindTerm辅助工具,讲解了各部分的功能和选型原因,让学员理解环境搭建的必要性。随后,我们分步拆解了实操流程,从Hyper-V的启用、虚拟机的创建,到Ubuntu系统的安装,再到FileZilla和WindTerm的配置,每一步都结合详细说明和注意事项,适配零基础学员的学习节奏,重点强调了网络配置、SSH服务器安装等关键节点,避免学员出现操作失误。同时,通过课堂示例演示,直观展示了环境搭建的完整流程,帮助学员快速掌握操作方法。最后,我们讲解了环境测试的方法和常见问题的解决思路,确保学员搭建的环境可正常使用,并布置了课后实操作业和预习任务,巩固本节课知识点,衔接下节课的开发板连接内容。通过本节课的学习,学员们已掌握嵌入式Linux开发环境的搭建方法,能独立完成虚拟机、Linux系统和辅助工具的配置,为后续的Linux命令学习、交叉编译、开发板实操奠定了坚实的基础,也培养了实操动手能力和问题排查意识。

上一课作业答案:嵌入式Linux概述 实战作业代码及说明

(一)实战作业代码

#include<stdio.h>#include<string.h>// 定义嵌入式设备结构体,描述设备信息typedefstruct{charname[50];// 设备名称chartype[30];// 设备类型(消费电子/工业控制/物联网)intis_embedded_linux;// 是否运行嵌入式Linux(1是,0否)}EmbeddedDevice;// 打印设备信息函数voidprint_device_info(EmbeddedDevice device){printf("=== 嵌入式设备信息 ===\n");printf("设备名称:%s\n",device.name);printf("设备类型:%s\n",device.type);printf("是否运行嵌入式Linux:%s\n",device.is_embedded_linux?"是":"否");if(device.is_embedded_linux){printf("核心特点:可裁剪、可移植、开源、稳定\n");}printf("======================\n\n");}intmain(){// 定义3个嵌入式设备实例(贴合身边场景)EmbeddedDevice device1={"家用路由器","物联网设备",1};EmbeddedDevice device2={"智能手表","消费电子",1};EmbeddedDevice device3={"普通台式机","通用计算机",0};// 打印设备信息print_device_info(device1);print_device_info(device2);print_device_info(device3);// 对比嵌入式Linux设备与通用计算机差异printf("=== 核心差异总结 ===\n");printf("嵌入式Linux设备:专用、精简、资源占用低\n");printf("通用计算机:通用、功能完整、资源占用高\n");return0;}

(二)代码功能说明

本代码通过C语言结构体定义嵌入式设备信息,包含设备名称、类型及是否运行嵌入式Linux三个核心属性,适配第1课嵌入式Linux的核心认知。通过自定义函数打印设备详细信息,区分嵌入式Linux设备与通用计算机的差异,直观体现嵌入式Linux“可裁剪、可移植”的核心特点。代码中实例化了路由器、智能手表两个嵌入式Linux设备,以及普通台式机作为对比,贴合第1课所学应用场景。运行后可清晰展示嵌入式设备的核心特征,巩固对嵌入式Linux定义、优势及与通用Linux差异的理解,实现理论与基础编程的衔接,为后续嵌入式编程学习奠定基础。

(三)作业注意事项

  • 代码需用C语言编写,可使用VS Code、Dev-C++等工具编写调试,确保语法正确、无编译错误;

  • 可修改设备实例,替换为自己身边的嵌入式Linux设备(如智能门锁、机顶盒),贴合自身认知;

  • 运行代码后,观察输出结果,结合第1课知识点,理解嵌入式Linux设备的核心特征;

  • 禁止修改代码核心逻辑,可新增注释说明代码功能,培养规范编程习惯;

  • 保存代码文件(命名格式:lesson1_homework.c),后续课程将用于交叉编译实操练习。


从零到壹嵌入式Linux编程实战教程课:第1课:嵌入式Linux概述

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/19 4:11:16

3分钟终极指南:免费破解城通网盘限速,实现全速下载的完整教程

3分钟终极指南&#xff1a;免费破解城通网盘限速&#xff0c;实现全速下载的完整教程 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 还在为城通网盘的龟速下载而烦恼吗&#xff1f;面对几十KB/s的限速…

作者头像 李华
网站建设 2026/4/19 4:02:32

VS Code + LaTeX 从入门到入坑:手把手教你搭建高效论文写作环境

前言 最近&#xff0c;我一直在寻找一个免费、流畅、可离线的 LaTeX 写作方案。Overleaf 虽然方便&#xff0c;但一旦文档大了就卡得怀疑人生&#xff1b;本地用 Texmaker 或 TeXstudio&#xff0c;界面又太复古。直到我发现了 VS Code LaTeX Workshop 这套组合拳&#xff0c…

作者头像 李华
网站建设 2026/4/19 4:00:23

ORA-29934索引关联错误修复指南

修复步骤&#xff1a;1. 检查indextype参数&#xff0c;确保extproc运行正常。2. 重建索引&#xff1a;ALTER INDEX index_name REBUILD PARAMETERS(indextype is ctxsys.context); 3. 远程处理&#xff1a;使用expdp/impdp导出重建&#xff0c;参数加transformoid:n:sys_c0012…

作者头像 李华