文章目录
- 一、课程导入
- 二、核心知识点讲解
- (一)开发环境核心组成
- 核心说明
- (二)Hyper-V安装与启用
- (三)Ubuntu 20.04系统安装
- (四)辅助工具安装与配置(FileZilla、WindTerm)
- (五)环境测试
- 常见问题解决
- 三、课堂示例
- 四、课后作业
- 五、本节课核心总结
- 核心知识点总结
- 学习重点与难点
- 关键词
- 六、课程回顾总结
- 上一课作业答案:嵌入式Linux概述 实战作业代码及说明
- (一)实战作业代码
- (二)代码功能说明
- (三)作业注意事项
一、课程导入
上一节课我们已经建立了对嵌入式Linux的基础认知,了解了其定义、核心优势和应用场景。本节课作为基础入门阶段的核心实操课,核心目标是帮助大家完成Windows系统下嵌入式Linux开发环境的搭建——这是后续所有编程实战、开发板调试的基础,至关重要。
嵌入式Linux开发不同于普通C语言编程,需要搭建专用的开发环境(虚拟机+Linux系统+辅助工具),本节课我们将一步步实操,完成Hyper-V虚拟机安装、Ubuntu系统配置,以及FileZilla、WindTerm等辅助工具的安装与调试,确保每一位学员都能搭建出可正常使用的开发环境,为后续课程做好准备。
二、核心知识点讲解
(一)开发环境核心组成
Windows系统下嵌入式Linux开发环境,主要由3部分组成,缺一不可,各部分分工明确:
虚拟机(Hyper-V):相当于在Windows系统中“虚拟”出一台电脑,用于安装Linux系统(Ubuntu),作为嵌入式开发的“服务器端”;
Linux系统(Ubuntu 20.04):嵌入式Linux开发的核心环境,后续的交叉编译、程序编写、驱动开发均在此环境中完成;
辅助工具(FileZilla、WindTerm):FileZilla用于Windows与Ubuntu之间的文件传输,WindTerm用于串口通信、远程连接,是后续操作开发板的核心工具。
核心说明
选择Hyper-V而非其他虚拟机,是因为Hyper-V是Windows自带的虚拟机工具,兼容性更强、资源占用更低,无需额外安装第三方虚拟机软件,适配Windows 10/11专业版、企业版,操作更便捷;Ubuntu 20.04是嵌入式开发的主流版本,稳定性强、生态完善,适配绝大多数交叉编译工具和开发板。
(二)Hyper-V安装与启用
Hyper-V是Windows自带的虚拟化工具,需先启用该功能,再完成虚拟机配置,步骤如下(全程实操,每一步都需确认无误):
检查系统兼容性:确保Windows系统为10/11专业版、企业版(家庭版不支持Hyper-V,需升级系统或使用其他替代方案);
启用Hyper-V功能:
(1)按下Win+R键,输入“control”打开控制面板,选择“程序和功能”;
(2)点击左侧“启用或关闭Windows功能”,在弹出的窗口中,勾选“Hyper-V”所有选项(包括Hyper-V管理工具、Hyper-V平台);
(3)点击“确定”,系统会提示“需要重启电脑才能生效”,点击“立即重启”,重启后Hyper-V功能正式启用。
- 打开Hyper-V管理器:重启后,按下Win键,搜索“Hyper-V管理器”,点击打开(若搜索不到,说明Hyper-V未启用成功,需重新检查步骤)。
(三)Ubuntu 20.04系统安装
在Hyper-V中创建虚拟机,并安装Ubuntu 20.04系统,步骤详细拆解,确保零基础可跟随操作:
- 下载Ubuntu 20.04镜像文件:
打开Ubuntu官方网站(https://ubuntu.com/download/alternative-downloads),下载“Ubuntu 20.04 LTS Server”版本(服务器版,无桌面,资源占用低,适配嵌入式开发),镜像文件格式为.iso。
- 在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镜像文件,点击“下一步”,最后点击“完成”,虚拟机创建完成。
- 安装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、后续操作开发板的关键,本节课先完成安装与基础配置,后续课程将深入使用。
- 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文件目录,可直接拖拽文件完成传输。
- WindTerm安装与配置(串口/远程连接工具):
(1)下载WindTerm:打开WindTerm官方网站(https://windterm.net/),下载Windows版本的WindTerm;
(2)安装WindTerm:解压下载的压缩包,无需安装,双击“WindTerm.exe”即可打开;
(3)基础配置:打开WindTerm后,点击左上角“会话”→“新建会话”,选择“SSH”,主机输入Ubuntu的IP地址,用户名和密码输入Ubuntu的登录信息,点击“连接”,即可远程登录Ubuntu系统(后续操作开发板时,将配置串口连接)。
(五)环境测试
环境搭建完成后,必须进行测试,确认各部分均可正常使用,避免后续课程出现问题:
测试Ubuntu系统:登录Ubuntu后,输入“ls”“pwd”等基础Linux命令,查看是否能正常执行;
测试FileZilla:在Windows中创建一个文本文件,通过FileZilla拖拽到Ubuntu系统中,查看是否传输成功;
测试WindTerm:通过WindTerm远程登录Ubuntu,输入Linux命令,查看是否能正常执行,确保远程连接正常。
常见问题解决
Hyper-V启用失败:检查Windows系统版本,家庭版需升级到专业版;若已为专业版,重启电脑后重新启用;
Ubuntu安装失败:检查镜像文件是否完整,虚拟机内存、硬盘分配是否充足;
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)完成Hyper-V启用、虚拟机创建,安装Ubuntu 20.04系统,确保能正常登录;
(2)安装FileZilla和WindTerm,完成与Ubuntu的连接,实现文件传输和远程登录;
(3)测试环境:通过WindTerm执行“ls”“pwd”“ifconfig”三个命令,截图保存执行结果;通过FileZilla传输一个文本文件到Ubuntu,截图保存传输过程。
- 简答题:
(1)简述Hyper-V、Ubuntu、FileZilla、WindTerm在嵌入式Linux开发环境中的作用;
(2)简述FileZilla连接Ubuntu失败的常见原因(至少列出2个)。
- 预习任务:
预习第3课“嵌入式Linux开发环境搭建(开发板)”,了解开发板的基本结构,提前熟悉WindTerm的串口配置步骤,为下节课的开发板连接做好准备。
五、本节课核心总结
核心知识点总结
开发环境组成:Hyper-V虚拟机、Ubuntu 20.04系统、FileZilla(文件传输)、WindTerm(远程/串口连接),四者协同工作,构成嵌入式Linux开发的基础环境;
核心实操:Hyper-V启用、虚拟机创建、Ubuntu系统安装、辅助工具配置,每一步都需严格遵循步骤,重点关注网络配置、SSH服务器安装两个关键节点;
环境测试:搭建完成后,需测试Ubuntu命令执行、FileZilla文件传输、WindTerm远程连接,确保环境可用;
常见问题: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概述