嵌入式Linux怎么搭建开发环境?

嵌入式linux系统开发完全手册第二版:如何搭建开发环境

在线课堂:https://www.php.cn/link/bf95b1669852932f77dc04f5ee405b7b)论 坛:https://www.php.cn/link/5497d34aeeed8c74dc8146b00c1ed489)开 发 板:https://www.php.cn/link/c15a8669f594397efb3fa90138fffaae (淘宝) https://www.php.cn/link/2c3f3db53ca4d872f79d87ec33c8c5fd)

版本 日期 作者 说明

V12020韦东山技术文档

全文下载地址:嵌入式Linux系统开发完全手册 第二版

2.1 安装Windows软件

2.1.1 如何选择虚拟机

搭建开发环境的核心任务是:安装虚拟机和Windows开发工具

在学习嵌入式Linux时,Linux内核、你编写的驱动和应用程序都需要在Linux机器上编译。然而,许多人习惯在Windows下编写文档、编写程序和使用社交软件。正如所说的,在Windows下生活,在Linux下工作。难道我们需要两台电脑,一台装Windows,另一台装Linux?不需要,我们可以使用虚拟机。在Windows电脑上安装虚拟机,然后在虚拟机中安装Linux。

注意:Ubuntu是一种Linux发行版,广受欢迎且易用;还有Red Hat等其他发行版。

虚拟机软件有很多种,包括VMWare、Virtual Box和Docker。如何选择?

VMWare和Virtual Box类似,都能100%模拟一台电脑,可以在其中安装Ubuntu,登录Ubuntu桌面系统,并使用U盘、USB串口等硬件。

Docker是一个容器,简单来说,可以在Docker上安装一个简化版本的Ubuntu,它没有桌面系统,只有命令行,无法使用U盘、USB串口等硬件。但它占用资源少,运行速度快。

如何选择?

不喜欢折腾的同学,请使用VMware,因为Docker的安装对机器要求较高。就Ubuntu的完整性而言:如果你想使用完整的Ubuntu系统,比如需要桌面,推荐使用VMWare。如果你只想快速使用Ubuntu来编译程序,不在乎桌面,建议使用Docker。就电脑性能而言:如果你的电脑性能很好,使用VMware。如果你的电脑性能较弱,推荐使用Docker。初学者建议使用VMware,用的人多,出了问题容易解决;如果你想做QT开发,也需要Ubuntu。Docker不是你想用就能用的,Windows 10教育版、家庭版都无法安装Docker。即使你的Windows 10是专业版的,在使用Docker的过程中也可能遇到HyperV服务无法启动的问题,这时需要升级Windows,可能耗时1-2小时。

无论是VMware还是Docker,都能满足嵌入式Linux的学习与工作。注意:VMware和Docker不可同时运行,前者需要关闭Windows的Hyper V服务,而后者需要开启Hyper V服务。

决定使用VMware或Docker后,请查看相应的章节。你不需要同时查看VMware和Docker的章节,选择其中一个即可。

2.1.2 安装Windows软件

选择并安装好虚拟机后,就需要在Windows上安装各种开发软件。

软件名 说明

Source Insight阅读、编写源码的工具,即装即用;推荐初学者使用Visual Studio Code阅读、编写源码的工具,需要进行很多配置;不推荐初学者使用MobaXterm串口工具、远程登录工具Filezilla文件传输工具,在Windows和Ubuntu之间传输文件Notepad++文本编辑工具,比记事本好用

在“网盘BSP包1_Tools (工具)1_Tools.zip”中,解压可以获得一系列的安装软件,建议全部安装。由于篇幅原因,这里不详细讲解Visual Studio Code和Notepad++的安装,后面会讲解MobaXterm和Filezilla。

2.1.3 使用Source Insight阅读Linux源码

Source Insight较为复杂,这里单独说明。首先,要在Windows上获得Linux源码,请参考《9.2 获取源码》。

然后,为Linux源码建立Source Insight工程,请参考《第九篇 常见问题》的《1.3 安装使用Source Insight》。

注意:在Windows上解压Linux内核源码时出现错误是正常的,因为Windows并不支持某些Linux特有的文件,并且Windows中文件名不区分大小写,当出现提示是否覆盖文件时,选择“是”。

2.2 安装VMware并运行我们提供的Ubuntu系统

2.2.1 安装VMware Workstation Player

Windows下有很多虚拟机软件,目前市面上流行的有VMware和VirtualBox。VMware分为收费的专业版Workstation Pro和非商用的免费版Workstation Player,推荐使用Workstation Player。

萤石开放平台 萤石开放平台

萤石开放平台:为企业客户提供全球化、一站式硬件智能方案。

萤石开放平台 106 查看详情 萤石开放平台

首先从VMware官网(www.vmware.com)下载Workstation Player安装包,或者使用我们提供的安装包。在“网盘BSP包1_Tools (工具)1_Tools.zip”中,VMWare安装软件是:VMware-workstation-full-15.1.0-13591040.exe。安装方法见下图:

嵌入式Linux怎么搭建开发环境?嵌入式Linux怎么搭建开发环境?嵌入式Linux怎么搭建开发环境?嵌入式Linux怎么搭建开发环境?嵌入式Linux怎么搭建开发环境?嵌入式Linux怎么搭建开发环境?嵌入式Linux怎么搭建开发环境?嵌入式Linux怎么搭建开发环境?嵌入式Linux怎么搭建开发环境?

VMWare安装完成后,有两个软件,它们都可以使用,建议使用第二个:

Vmware Workstation Pro:这是收费的,可以试用30天。Vmware Workstation 15 Player:这是免费的。

注意:本文所用系统是Windows 10。

2.2.2 使用虚拟机打开Ubuntu

解压“网盘BSP包1_Tools (工具)100ask-vmware_Ubuntu18.04.7z”,它是Ubuntu映像文件。注意:

100ask-vmware_Ubuntu18.04不支持Win7 32位和Windows XP电脑系统,有疑问请联系技术支持。

100ask-vmware_Ubuntu18.04用到了Virtualization Technology(VT)技术,请提前把电脑的VT打开,不同的电脑打开VT的方法不一样,需要你自己去百度搜索,比如在百度搜“联想电脑 开启 Virtualization Technology”。

以管理员身份打开Vmware Workstation 15 Player,如下图所示:

嵌入式Linux怎么搭建开发环境?

解压Ubuntu映像文件,然后点击“打开虚拟机”打开前面解压后的Ubuntu文件“Ubuntu 18.04_x64.vmx”,如下图所示:

嵌入式Linux怎么搭建开发环境?

打开并点击“播放虚拟机”启动,如下图所示:

嵌入式Linux怎么搭建开发环境?

第一次启动Ubuntu时,选择默认的“我已复制该虚拟机”,启动后输入密码“123456”回车即可登录,如下图所示:

嵌入式Linux怎么搭建开发环境?

注意:虚拟机默认没有开启小键盘,如果使用小键盘输入,请先开启小键盘,如下图所示:

嵌入式Linux怎么搭建开发环境?

以上就是嵌入式Linux怎么搭建开发环境?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/403112.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月6日 20:10:42
下一篇 2025年11月6日 20:12:35

相关推荐

  • PHP中日期计算:使用Carbon或DateTime安全地增减月份

    本文探讨了在php中进行月份增减计算时,直接使用`idate`函数可能导致的无效月份值问题(如0或13)。针对此,教程推荐使用`datetime`对象或laravel的`carbon`库进行日期操作。通过`carbon::now()`结合`addmonth()`或`submonth()`等方法,可以…

    2025年12月12日
    000
  • php调用数据库备份功能_php调用mysqldump自动备份

    答案:通过PHP调用mysqldump可实现MySQL自动备份。需确认服务器支持mysqldump命令,编写PHP脚本使用exec等函数执行导出命令,并推荐用my.cnf存储凭证以提升安全性,最后通过crontab设置定时任务,实现每日凌晨自动备份,适用于中小型项目的数据保护。 使用PHP调用mys…

    2025年12月12日
    000
  • PHP框架怎么实现日志记录_PHP框架日志分级与存储驱动配置

    答案:PHP框架通过统一接口实现日志分级(debug、info、warning、error、critical)与多驱动存储(single、daily、syslog等),如Laravel在config/logging.php配置驱动,使用Log门面记录含时间戳和上下文的日志,推荐生产环境关闭debug…

    2025年12月12日
    000
  • NetBeans远程Xdebug调试“等待连接”问题排查与解决

    本文旨在解决netbeans远程xdebug调试时遇到的“等待连接”无限加载问题。核心在于理解xdebug的连接方向是由远程服务器主动连接ide,并指导如何正确配置`xdebug.remote_host`指向ide机器的ip地址,避免端口冲突,以及配置防火墙,确保调试会话能成功建立。 NetBean…

    2025年12月12日
    000
  • PHP/Laravel中安全地进行日期月份条件增减操作

    本教程详细阐述了在php/laravel中处理日期月份条件增减时,避免直接操作数字月份导致无效值和年份溢出的问题。通过引入php的`datetime`对象和laravel的`carbon`库,特别是结合`firstofmonth()`方法,演示了如何健壮、准确地计算新的日期值,确保月份和年份的正确滚…

    2025年12月12日
    000
  • 解决NetBeans远程Xdebug连接等待问题的专业指南

    本文旨在解决netbeans ide在远程php应用调试中遇到的“等待连接”问题。核心在于理解xdebug的连接方向是由服务器指向ide,并正确配置`xdebug.remote_host`指向ide所在机器的ip地址,同时通过调整xdebug端口避免与其他服务(如php-fpm)的冲突,并确保防火墙…

    2025年12月12日
    000
  • CodeIgniter模糊搜索功能实现与调试指南

    本文旨在提供codeigniter框架下实现模糊搜索功能的详细教程,涵盖控制器和模型层的代码构建。特别强调了当搜索功能不按预期工作时,如何利用`$this->db->last_query()`方法有效地打印并检查实际执行的sql语句,从而快速定位和解决问题。通过本指南,开发者将能够构建健…

    2025年12月12日
    000
  • PHP框架怎么进行接口调试_PHP框架API调试工具与日志分析

    使用调试工具、日志记录和断点调试可高效定位PHP接口问题。1. Laravel Telescope、Symfony调试条、Postman和Swagger用于实时监控与测试接口;2. 开启调试模式并记录请求响应日志,通过中间件和Monolog分类追踪;3. 配合Xdebug在IDE中设置断点,逐步分析…

    2025年12月12日
    000
  • PHP:高效将图片URL转换为Base64编码

    本文旨在提供在php中将远程图片url转换为base64编码的专业指南。针对`file_get_contents`在处理大量请求时可能导致的阻塞和失败问题,文章将介绍如何利用更健壮的http客户端(如laravel的http facade)来安全、高效地获取远程图片内容,并将其转换为标准的base6…

    2025年12月12日
    000
  • PHP DateTime格式化:在日期字符串中插入自定义文本

    本文探讨了在php中使用`datetime::format()`方法时,如何在日期格式字符串中正确嵌入自定义文本(如’at’)。核心解决方案是利用反斜杠对非日期格式字符进行转义,以避免php将其误解析为日期或时间占位符。文章详细介绍了单引号和双引号字符串中转义字符的区别,并提…

    2025年12月12日
    000
  • PHP字符串处理:选择性移除括号内的双分号

    本文详细介绍了如何利用 php 的 preg_replace_callback 函数,实现对复杂字符串中特定模式的双分号 ;; 进行选择性替换。通过精确的正则表达式匹配括号内的内容,并结合回调函数执行局部替换,可以有效避免全局替换带来的副作用,确保仅在目标区域将 ;; 转换为 ;,从而实现字符串的精…

    2025年12月12日
    000
  • NetBeans远程Xdebug调试“等待连接”问题排查与解决方案

    本文旨在解决netbeans ide在远程php项目中使用xdebug时,出现“等待连接”无限加载的问题。核心在于理解xdebug的连接机制——它从服务器主动连接到ide,而非相反。文章将详细阐述`xdebug.remote_host`配置错误、端口冲突及防火墙设置等常见原因,并提供一套完整的配置指…

    2025年12月12日
    000
  • 使用PHP FirestoreClient发送自定义头部认证令牌的最佳实践

    本文旨在解决php firestoreclient在启用安全规则后遇到的“权限不足”错误。核心内容是,对于服务器端应用,应通过服务账户进行身份验证,并推荐在`firestoreclient`构造函数中使用`keyfilepath`参数明确指定服务账户密钥文件路径,以确保请求能够正确通过firesto…

    2025年12月12日
    000
  • php网站怎么修改页面_php网站页面内容修改方法与注意事项

    修改PHP网站页面内容通常涉及前端展示和后端逻辑两部分。掌握正确的修改方法能避免功能异常或安全风险。以下是常见的修改方式和必须注意的事项。 1. 找到需要修改的页面文件 大多数PHP网站的页面由.php文件构成,文件可能位于项目根目录或子目录中(如/pages、/templates等)。 查看URL…

    2025年12月12日
    000
  • php调用语音识别接口_php调用百度语音API实现转换

    首先获取百度AI平台的API Key和Secret Key,然后通过cURL请求获取Access Token,接着将音频文件转为base64编码并发送至百度ASR接口进行识别,最后解析返回结果。完整流程包括权限申请、Token获取、音频上传与识别,需注意音频格式、大小限制及Token缓存。 要使用P…

    2025年12月12日
    000
  • 解决EC2上PHP应用表单提交来源验证失败问题:HTTPS迁移策略

    本文旨在解决将php zend应用迁移至aws ec2时,登录表单提交出现“the form submitted did not originate from the expected site”错误。该问题通常源于csrf保护机制对协议或源站的验证失败,核心解决方案是将应用从http切换至http…

    2025年12月12日
    000
  • Sylius API 404 错误排查与启用指南

    本文旨在解决 sylius 新安装后 api 接口返回 404 错误的问题。核心解决方案包括两方面:首先,需要明确启用 sylius api 功能,因为其在开发阶段默认可能未激活;其次,必须生成 jwt 认证所需的密钥对,以避免后续因认证失败导致的错误。通过这两个关键步骤,用户可以顺利地激活并使用 …

    2025年12月12日
    000
  • PHP中处理JSON编码的Unicode字符串:从输入到数据库查询的转换

    本文旨在解决php中将用户输入的unicode字符串转换为数据库中以json编码形式存储的unicode转义序列(如`uxxxx`)的问题。我们将重点介绍如何利用`json_encode`函数,将标准的utf-8字符串转换为匹配数据库存储格式的字符串,从而实现有效的查询和数据处理,并讨论相关的注意事…

    2025年12月12日
    000
  • Laravel/Lumen事件传播控制:停止监听器执行的策略与实践

    本文深入探讨了laravel和lumen框架中事件监听器传播的控制机制。针对同步事件,我们介绍了通过监听器返回`false`来阻止后续监听器执行的方法。更重要的是,文章着重分析了异步(队列)事件的特殊性,解释了传统`return false`机制的局限性,并提供了链式事件调度等更适合队列环境的条件执…

    2025年12月12日
    000
  • 如何在WordPress中更改站点标题的HTML标签

    本教程详细介绍了如何在wordpress网站中,将站点标题的html标签(例如从` `更改为` `)进行修改。我们将重点讲解使用子主题进行模板文件覆盖的推荐方法,以确保修改的持久性和主题更新的兼容性。通过明确的步骤和代码示例,您将学会如何定位并修改负责输出站点标题的模板文件,从而实现对网站结构语义的…

    2025年12月12日
    000

发表回复

登录后才能评论
关注微信