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

news2025/4/5 13:40:09

目录

    • 总结写前面
    • 一、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: 2
    renderer: NetworkManager
    ethernets:
        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 folder
   path = /home/wyf/samba
   valid users = wyf
   write list = wyf
   browseable = yes
   writable = 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.coloradmin.cn/o/2328608.html

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

相关文章

说清楚单元测试

在团队中推行单元测试的时候,总是会被成员问一些问题: 这种测试无法测试数据库的SQL(或者是ORM)是否执行正确?这种测试好像没什么作用?关联的对象要怎么处理呢?…借由本篇,来全面看一看单元测试。 单元测试是软件开发中一种重要的测试方法,其核心目的是验证代码的最小…

电商---part02 项目环境准备

1.虚拟机环境 可以通过VMWare来安装&#xff0c;但是通过VMWare安装大家经常会碰到网络ip连接问题&#xff0c;为了减少额外的环境因素影响&#xff0c;Docker内容会通过VirtualBox结合Vagrant来安装虚拟机。 VirtualBox官网&#xff1a;https://www.virtualbox.org/ Vagran…

LabVIEW提升程序响应速度

LabVIEW 程序在不同计算机上的响应速度可能存在较大差异&#xff0c;这通常由两方面因素决定&#xff1a;计算机硬件性能和程序本身的优化程度。本文将分别从硬件配置对程序运行的影响以及代码优化方法进行详细分析&#xff0c;帮助提升 LabVIEW 程序的执行效率。 一、计算机硬…

工业领域网络安全技术发展路径洞察报告发布 | FreeBuf咨询

工业网络安全已成为国家安全、经济稳定和社会运行的重要基石。随着工业互联网、智能制造和关键基础设施的数字化升级&#xff0c;工业系统的复杂性和互联性显著提升&#xff0c;针对工业领域的网络攻击朝着目标多样化、勒索攻击产业化、攻击技术持续升级的方向发展&#xff0c;…

WPF 登录页面

效果 项目结构 LoginWindow.xaml <Window x:Class"PrismWpfApp.Views.LoginWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.…

【数学建模】动态规划算法(Dynamic Programming,简称DP)详解与应用

动态规划算法详解与应用 文章目录 动态规划算法详解与应用引言动态规划的基本概念动态规划的设计步骤经典动态规划问题1. 斐波那契数列2. 背包问题3. 最长公共子序列(LCS) 动态规划的优化技巧动态规划的应用领域总结 引言 动态规划(Dynamic Programming&#xff0c;简称DP)是一…

leetcode-代码随想录-链表-移除链表元素

题目 链接&#xff1a;203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 输入&#xff1a;head [1,2,6,3,4,5,6], val 6 …

论文阅读Diffusion Autoencoders: Toward a Meaningful and Decodable Representation

原文框架图&#xff1a; 官方代码&#xff1a; https://github.com/phizaz/diffae/blob/master/interpolate.ipynb 主要想记录一下模型的推理过程 &#xff1a; %load_ext autoreload %autoreload 2 from templates import * device cuda:1 conf ffhq256_autoenc() # pri…

Python集合(五)

集合一&#xff1a; 跟字典一样&#xff0c;最大的特性就是唯一性&#xff0c;集合中的所有的元素都是独一无二的&#xff0c;并且还是无序的 创建集合 第一种&#xff1a; 第二种&#xff1a;集合推导式&#xff1a; 第三种&#xff1a;使用类型构造器&#xff1a; 集合是无…

ISIS多区域配置

一、什么是ISIS多区域 ISIS&#xff08;Intermediate System to Intermediate System&#xff09;多区域是指网络被划分为多个逻辑区域&#xff08;Areas&#xff09;&#xff0c;不同区域之间通过特定的ISIS路由器&#xff08;Level-1-2&#xff09;进行路由交互。多区域设计提…

2025-04-04 Unity 网络基础5——TCP分包与黏包

文章目录 1 分包与黏包2 解决方案2.1 数据接口2.2 定义消息2.3 NetManager2.4 分包、黏包处理 3 测试3.1 服务端3.2 客户端3.3 直接发送3.4 黏包发送3.5 分包发送3.6 分包、黏包发送3.7 其他 1 分包与黏包 ​ 分包、黏包指在网络通信中由于各种因素&#xff08;网络环境、API …

chromium魔改——绕过无限debugger反调试

在进行以下操作之前&#xff0c;请确保已完成之前文章中提到的 源码拉取及编译 部分。 如果已顺利完成相关配置&#xff0c;即可继续执行后续操作。 在浏览器中实现“无限 debugger”的反调试技术是一种常见的手段&#xff0c;用于防止他人通过开发者工具对网页进行调试或逆向…

JS dom修改元素的style样式属性

1通过样式属性修改 第三种 toggle有就删除 没就加上

灭火器离位检测:智能视觉守护安全

利用视觉分析实现明火检测&#xff1a;技术、功能与应用 一、背景 清明节期间&#xff0c;兰州市连续发生多起因祭祖烧纸引发山火的警情&#xff0c;如七里河区魏岭乡赵某某等人上坟烧纸未妥善处理烛火引燃杂草&#xff0c;导致3人烧伤&#xff1b;七里河区彭家坪石板山村村民…

网络:华为数通HCIA学习:IP路由基础

华为HCIA学习 IP路由基础路由协议或路由种类以及对应路由的优先级按工作区域分类&#xff1a;按工作机制及算法分类&#xff1a;路由的优先级路由器选择最优路由的顺序是什么? 前言自治系统LAN和广播域路由选路IP路由表路由度量建立路由表最长匹配原则路由器转发数据包总结 IP…

多线程开发中List的使用

由于ArrayList在多线程高并发情况下是不安全的&#xff0c;因此要慎用&#xff0c;那么此时如果涉及到集合操作&#xff0c;应该怎么选&#xff1a; 方案一&#xff1a;Vector: 特点&#xff1a;通过给所有方法都用 synchronized 修饰从而保证线程安全&#xff0c; 缺点&…

使用 .NET 9 和 Azure 构建云原生应用程序:有什么新功能?

随着 .NET 9 推出一系列以云为中心的增强功能&#xff0c;开发人员拥有比以往更多的工具来在 Azure 上创建可扩展、高性能的云原生应用程序。让我们深入了解 .NET 9 中的一些出色功能&#xff0c;这些功能使构建、部署和优化云应用程序变得更加容易&#xff0c;并附有示例以帮助…

前端页面鼠标移动监控(鼠标运动、鼠标监控)鼠标防抖处理、mousemove、debounce()、事件停止触发、超时触发

文章目录 代码使用lodashjs库debounce函数做防抖处理&#xff08;只有鼠标移动停止并超过一定时间&#xff0c;才会触发&#xff09;手写防抖函数写法1写法2&#xff08;注意addEventListener监听函数的第二个参数接收的是一个函数&#xff0c;需要构造一个匿名返回函数&#x…

开源守护,智护童年——幼儿园未成年行为与安全智能监控系统

在孩子成长的每一步&#xff0c;安全始终是第一位的。幼儿园作为孩子们探索世界的起点&#xff0c;其安全管理的重要性不言而喻。然而&#xff0c;哭闹、打闹、意外跌倒&#xff0c;甚至外部隐患如陌生人逗留、内部管理疏漏等问题&#xff0c;常常让传统人工监控捉襟见肘。家长…

WinForm真入门(5)——控件的基类Control

控件的基类–Control 用于 Windows 窗体应用程序的控件都派生自 Control类并继承了许多通用成员,这些成员都是平时使用控件的过程最常用到的。无论要学习哪个控件的使用&#xff0c;都离不开这些基本成员&#xff0c;尤其是一些公共属性。由于 Conlrol 类规范了控件的基本特征…