嵌入式Linux开发环境搭建,三种方式:虚拟机、物理机、WSL

目录

    • 总结写前面
    • 一、Linux虚拟机
      • 1 安装VMware、ubuntu18.04
      • 2 换源
      • 3 改中文
      • 4 中文输入法
      • 5 永不息屏
      • 6 设置 root 密码
      • 7 安装 terminator
      • 8 安装 htop(升级版top)
      • 9 安装 Vim
      • 10 静态IP-虚拟机ubuntu
      • 11 安装 ssh
      • 12 安装 MobaXterm (SSH)(windows)(汉化)
      • 13 安装 FileZilla (SFTP)(windows)
      • 14 安装 samba
      • 15 安装 nfs
      • 16 安装 Vscode remote-ssh(windows)
      • 17 遇到的问题:Command 'ifconfig' not found
      • 18 遇到的问题:虚拟机突然没网
    • 二、Linux物理机(服务器)
    • 三、WSL

总结写前面

嵌入式Linux开发,目前了解到三种方式:虚拟机、物理机(服务器)、WSL

  • 虚拟机:个人使用。
  • 物理机(服务器):公司用。有旧电脑可以装来玩,旧电脑装Linux系统或双系统,放家里当服务器用,就是性能太差。没有公网IP,需要用内网穿透软件,才能远程操作服务器,网速太低,用SSH远程命令行没啥问题,传文件太慢。总结就是太穷了,性能低、网速慢,玩不起来。(组高性能台式机+公网IP)
  • WSL:待测。

具体而言,涉及到一些技术和软件的选择,包括了windows与linux之间的:远程命令行、文件传输、文件夹共享、代码开发、远程桌面、代码同步。

功能Linux虚拟机Linux物理机(服务器)WSL
远程命令行SSH(主机用MobaXterm)SSH(主机用MobaXterm)+ Zerotire(内网穿透)
文件传输SFTP(主机用FileZilla)SFTP(主机用FileZilla)
共享文件夹NFS(与板卡)、Samba(与主机)NFS(与板卡)、Samba(与主机)
远程开发VS Code + Remote-SSHVS Code + Remote-SSH
远程桌面/Todesk
代码同步GitGit

实际测试了网络延迟、网络带宽、Linux内核编译速度

网络网络延迟FilezillasambaLinux内核编译时间
虚拟机局域网0300-350MB/s200-250MB/s1m30s(虚拟机32核i9 14代)
物理机(服务器局域网<10ms20-25MB/s/(网速太低不实用就没测)4m46s(物理机8核i5 9代)
物理机(服务器Zerotire(工位->家里)26-33ms3MB/s/(网速太低不实用就没测)4m46s(物理机8核i5 9代)

总结:目前还是用虚拟机吧,够用。

  • 服务器,受网速影响太大:就算一个局域网内都传的很慢,不流畅啊,还不如直接U盘传输。
  • 服务器,性能太差:用的旧电脑戴尔G3,纯Linux系统编译内核都不如新电脑的虚拟机编译快。
  • 虚拟机CPU利用率都能达到100%了,是不是说明就算把新电脑直接装纯Linux系统,效果也和虚拟机差不多?等下次重装系统时试试这个新电脑装Linux系统的编译速度。

一、Linux虚拟机

电脑和软件:

VMware16.2.3
主机系统win11
虚拟机系统ubuntu18.04
CPUIntel i9-14900HX
内存32G

1 安装VMware、ubuntu18.04

VMware安装网上很多教程,或者参考之前写的一篇:https://blog.csdn.net/weixin_44029896/article/details/122877171?fromshare=blogdetail&sharetype=blogdetail&sharerId=122877171&sharerefer=PC&sharesource=weixin_44029896&sharefrom=from_link

要注意的是:

内存:分配给虚拟机的内存>16G

硬盘:只编译linux需要200G,还要编译android的话要500G。(视芯片而定吧,IMX6U的就很小,RK3566的SDK就比较大)

CPU:前两行随便设置,最终只根据内核总数决定虚拟机CPU性能。我是直接拉满了,使用起来感觉没影响到主机的流畅使用。

在这里插入图片描述

2 换源

打开软件和更新

在这里插入图片描述

点击
在这里插入图片描述

选择其他站点
在这里插入图片描述

选一个中国源,确认后点右下角关闭,弹出对话框,问你是否重新加载源,选是。
在这里插入图片描述

换完后,要更新源。

sudo apt update

3 改中文

点击设置、区域和语言、管理安装语言
在这里插入图片描述

点击

在这里插入图片描述

找到中文简体,勾选

在这里插入图片描述

重启虚拟机。

重启****后,弹窗,选择保存原来的路径名称,即英文名称。

4 中文输入法

直接去这里设置即可

在这里插入图片描述

5 永不息屏

设置 -> 电源

6 设置 root 密码

刚安装好的Linux系统没有设置root用户密码。passwd命令作用:修改用户密码,不指定用户名就默认是修改root。

sudo passwd

su root (su名字来源:switch user)

exit 或者 ctrl+d 退出root用户。

7 安装 terminator

sudo apt install terminator

配置成无限缓冲,不然编译完系统想看过程中的输出都被清理掉了。

在这里插入图片描述

8 安装 htop(升级版top)

sudo apt install htop

界面配置:

选好后,按F10确认,按F10退出。ctrl+c退出无法保存配置。
在这里插入图片描述

最终效果:
在这里插入图片描述

9 安装 Vim

ubuntu默认只安装了vi,没有vim(具体区别待日后体验)

sudo apt install vim

10 静态IP-虚拟机ubuntu

参考教程:https://blog.csdn.net/m0_74957207/article/details/142618269

  • 查看网关,后续用到。
route -n

在这里插入图片描述

  • 修改配置文件
 sudo vim /etc/netplan/01-network-manager-all.yaml

更改其中的网络名字、网关、需要固定的IP。即加粗部分。

在这里插入图片描述

network:version: 2renderer: NetworkManagerethernets:ens33: dhcp4: no addresses: [192.168.70.132/24] gateway4: 192.168.70.2 nameservers:addresses: [8.8.8.8, 114.114.114.114] 
  • 应用并重启
sudo netplan apply
sudo systemctl restart systemd-networkd
  • 验证
ip -a
ping bing.com

11 安装 ssh

  • 安装
sudo apt update               # 更新软件包列表
sudo apt install openssh-server  # 安装 SSH 服务端
sudo systemctl status ssh      # 查看服务状态(按 q 退出)
正常状态应显示 active (running)
  • 重启ssh
/etc/init.d/ssh restart

12 安装 MobaXterm (SSH)(windows)(汉化)

Windows 官网下载安装版本,安装一路next。

13 安装 FileZilla (SFTP)(windows)

Windows 官网下载安装版本,安装一路next。

在这里插入图片描述

14 安装 samba

ubuntu18.04**:**

  • 安装
sudo apt install samba
  • 创建共享文件
sudo mkdir -p /home/wyf/samba
sudo chmod 777 /home/wyf/samba
  • 配置(使用的泰山派教程的配置)(迅为的配置有问题,win被拒绝访问)
sudo vi /etc/samba/smb.conf

标黄部分自行更改

在这里插入图片描述

[Tai_Shan_Pai]comment = share folderpath = /home/wyf/sambavalid users = wyfwrite list = wyfbrowseable = yeswritable = yes         create mask = 0644   directory mode = 0755  read only = no    
  • 设置访问密码(第一次使用需要)
sudo smbpasswd -a wyf
  • 重启
sudo service smbd restart

win11**:**

win+r,输入\\ubuntu ip地址 如:\192.168.70.132。(win11无法连接的话,看下面的解决)

然后右键共享文件夹,点击“映射网络驱动器”。

在这里插入图片描述

samba相关命令

检查Samba用户是否存在:sudo pdbedit -L

检查配置文件语法:testparm # 显示最终生效的配置,检查是否有语法错误

遇到问题:win11 无法连接 samba:

在这里插入图片描述

15 安装 nfs

服务端:

  • 安装:
sudo apt install nfs-kernel-server
  • 创建共享文件夹
sudo mkdir -p /home/nfs
  • 配置,添加共享规则
sudo vi /etc/exports
/home/nfs/ *(rw,sync,no_root_squash)
  • 重启nfs
/etc/init.d/nfs-kernel-server restart

客户端:

16 安装 Vscode remote-ssh(windows)

插件中心搜索Remote-SSH。

在这里插入图片描述

点击“+”新建,输入ssh 主机名@主机ip。如ssh wyf@192.168.70.132。

在这里插入图片描述

然后就可以直接访问linux中的代码,直接更改,写完直接下面命令行输入命令编译。
在这里插入图片描述

17 遇到的问题:Command ‘ifconfig’ not found

原因:软件包变更:Ubuntu 从 18.04 开始默认不再预装 net-tools 软件包(包含 ifconfignetstat 等传统网络工具)。官方推荐使用更现代的 ip 命令(来自 iproute2 软件包)

功能传统命令现代命令(ip)
查看 IP 地址ifconfigip addr 或 ip a
查看路由表route -nip route
启用/禁用网卡ifconfig eth0 upip link set eth0 up
添加临时 IPifconfig eth0 add 192.168.1.100ip addr add 192.168.1.100/24 dev eth0

如果仍想使用ifconfig:

sudo apt install net-tools

18 遇到的问题:虚拟机突然没网

sudo service network-manager stop 
sudo rm /var/lib/NetworkManager/NetworkManager.state 
sudo service network-manager start

二、Linux物理机(服务器)

三、WSL

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/74581.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件工程面试题(二十七)

1、j a v a 对象初始化顺序 1.类的初始化(initialization class & interface) 2.对象的创建(creation of new class instances) 顺序:应为类的加载肯定是第一步的,所以类的初始化在前。大体的初始化顺序是: 类初始化 -> 子类构造函数 -> 父类构造函数 -&g…

《AI大模型开发笔记》MCP快速入门实战(一)

目录 1. MCP入门介绍 2. Function calling技术回顾 3. 大模型Agent开发技术体系回顾 二、 MCP客户端Client开发流程 1. uv工具入门使用指南 1.1 uv入门介绍 1.2 uv安装流程 1.3 uv的基本用法介绍 2.MCP极简客户端搭建流程 2.1 创建 MCP 客户端项目 2.2 创建MCP客户端…

Java中的正则表达式Lambda表达式

正则表达式&&Lambda表达式 正则表达式和Lambda表达式是Java编程中两个非常实用的特性。正则表达式用于字符串匹配与处理&#xff0c;而Lambda表达式则让函数式编程在Java中变得更加简洁。本文将介绍它们的基本用法&#xff0c;并结合示例代码帮助理解。同时要注意&…

Talend API Tester

背景 工作中有时会需要调测http接口&#xff0c;postman无疑是最常用最流行的工具&#xff0c;但是有一个致命问题&#xff0c;必须要登录&#xff0c;而工作经常是私网环境&#xff0c;导致使用非常不方便。因此想找一个Windows系统上的轻量级、无需登录即可使用的http测试工…

leetcode数组-移除元素

题目 题目链接&#xff1a;https://leetcode.cn/problems/remove-element/ 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。 假设 nums 中不等于 val 的元素数量为…

什么是市盈率,通俗解释清楚

市盈率就是“股价和公司盈利能力”的一个比例关系&#xff0c;简单来说&#xff0c;就是你花多少钱买股票&#xff0c;要等多少年才能通过公司赚的钱“回本”。 假设你买了一家公司的股票&#xff0c;花了100块钱&#xff0c;这家公司每年能赚10块钱。那市盈率就是100除以10&am…

突破传统认知:聚类算法的底层逻辑与高阶应用全景解析

一、维度革命&#xff1a;重新定义聚类分析的认知边界 在人工智能的浩瀚星空中&#xff0c;聚类算法犹如一组精密的星际导航仪&#xff0c;帮助我们在无序的数据宇宙中发现隐藏的秩序。这项起源于人类本能分类需求的技术&#xff0c;经历了从简单分组到智能识别的蜕变&#xf…

【愚公系列】《高效使用DeepSeek》051-产品创新研发

🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…

网络编程—Socket套接字(UDP)

上篇文章&#xff1a; 网络编程—网络概念https://blog.csdn.net/sniper_fandc/article/details/146923380?fromshareblogdetail&sharetypeblogdetail&sharerId146923380&sharereferPC&sharesourcesniper_fandc&sharefromfrom_link 目录 1 概念 2 Soc…

深度学习deeplearn1

import torch # 导入 PyTorch 库&#xff0c;PyTorch 是一个用于深度学习和张量计算的强大库x torch.arange(12) # 创建一个包含从 0 到 11 的整数的一维张量 x # torch.arange 函数用于生成一个指定范围的整数序列print(x) # 打印张量 x 的内容print(x.shape) # 打印张量 x 的…

无线通信技术(三):5G NR通信频带划分与应用场景

目录 一.5G NR频带划分概述 二.全球运营商5G频带分配对比 三.5G频带的应用场景 5G网络的发展离不开频谱资源的合理分配。不同的频段决定了5G的覆盖范围、传输速率和应用场景。本文将系统介绍5G NR频带划分,并结合实际应用场景,理解不同频段的特性及其适用环境。 …

观察者模式在Java单体服务中的运用

观察者模式主要用于当一个对象发生改变时&#xff0c;其关联的所有对象都会收到通知&#xff0c;属于事件驱动类型的设计模式&#xff0c;可以对事件进行监听和响应。下面简单介绍下它的使用&#xff1a; 1 定义事件 import org.springframework.context.ApplicationEvent;pu…

YOLO 获取 COCO 指标终极指南 | 从标签转换到 COCOAPI 评估 (训练/验证) 全覆盖【B 站教程详解】

✅ YOLO 轻松获取论文 COCO 指标&#xff1a;AP&#xff08;small&#xff0c;medium&#xff0c;large &#xff09;| 从标签转换到 COCOAPI 评估 (训练/验证) 全覆盖 文章目录 一、摘要二、为什么需要 COCO 指标评估 YOLO 模型&#xff1f;三、核心挑战与解决方案 (视频教程核…

[C/C++]文件输入输出

C style FILE * fileptr filename"C:\\file.txt" fopenfclosefprintfC style //指向std::ostream的指针 #include <iostream> #include <fstream>int main() {std::ostream* output &std::cout; // 默认指向控制台// 输出到控制台*output <&l…

【Android】界面布局-线性布局-例子

线性布局&#xff08;LinearLayout&#xff09;是一种重要的界面布局中&#xff0c;也是经常使用到的一种界面布局 • 在线性布局中&#xff0c;所有的子元素都按照垂直或水平的顺序在界面上排列 ➢如果垂直排列&#xff0c;则每行仅包含一个界面元素 ➢如果水平排列&…

HTML表单属性1

value 属性 value 设置输入字段的初始值&#xff08;默认值&#xff09;,提交表单时&#xff0c;如果用户未做修改&#xff0c;将发送value中的默认值 <form action"#">First name: <br><input type"text" name"firstname" val…

JavaScrip图标工具Chart.js之 气泡图

气泡图用于展示三个变量之间的关系。 气泡的位置由前两个变量决定&#xff0c;对应的是 X 轴和 Y 轴&#xff0c;第三个参数为气泡的大小。 {// X 轴对应值x: number,// Y 轴对应值y: number,// 气泡半径&#xff0c;单位为像素r: number } 泡图的 type 属性为 bubble &#xf…

Git 教程:从 0 到 1 全面指南 教程【全文三万字保姆级详细讲解】

目录 什么是 Git &#xff1f; Git 与 SVN 区别 Git 安装配置 Linux 平台上安装 Centos/RedHat 源码安装 Windows 平台上安装 使用 winget 工具 Mac 平台上安装 Git 配置 用户信息 文本编辑器 差异分析工具 查看配置信息 生成 SSH 密钥&#xff08;可选&#xf…

Java导出excel,表格插入pdf附件,以及实现过程中遇见的坑

1.不能使用XSSFWorkbook,必须使用HSSFWorkbook,否则导出excel后&#xff0c;不显示插入的图标和内容&#xff0c;如果是读取的已有的excel模板&#xff0c;必须保证excel的格式是xls&#xff0c;如果把xlsx通过重命名的方式改为xls&#xff0c;是不生效的&#xff0c;后面执行下…

国内外网络安全政策动态(2025年3月)

▶︎ 1.《关于进一步加强智能网联汽车产品准入、召回及软件在线升级管理的通知》发布 3月1日&#xff0c;工业和信息化部、市场监管总局联合发布《关于进一步加强智能网联汽车产品准入、召回及软件在线升级管理的通知》&#xff08;以下简称《通知》&#xff09;。 该通知旨在…