嵌入式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-SSH VS Code + Remote-SSH
远程桌面 / Todesk
代码同步 Git Git

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

网络 网络延迟 Filezilla samba Linux内核编译时间
虚拟机 局域网 0 300-350MB/s 200-250MB/s 1m30s(虚拟机32核i9 14代)
物理机(服务器 局域网 <10ms 20-25MB/s /(网速太低不实用就没测) 4m46s(物理机8核i5 9代)
物理机(服务器 Zerotire(工位->家里) 26-33ms 3MB/s /(网速太低不实用就没测) 4m46s(物理机8核i5 9代)

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

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

一、Linux虚拟机

电脑和软件:

VMware 16.2.3
主机系统 win11
虚拟机系统 ubuntu18.04
CPU Intel 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。即加粗部分。

yaml 复制代码
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

  • 安装
Plain 复制代码
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

标黄部分自行更改

bash 复制代码
[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 [email protected]

然后就可以直接访问linux中的代码,直接更改,写完直接下面命令行输入命令编译。

17 遇到的问题:Command 'ifconfig' not found

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

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

如果仍想使用ifconfig:

复制代码
sudo apt install net-tools

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

Plain 复制代码
sudo service network-manager stop 
sudo rm /var/lib/NetworkManager/NetworkManager.state 
sudo service network-manager start

二、Linux物理机(服务器)

三、WSL

相关推荐
w236173460114 分钟前
Linux常用基础命令应用
linux·服务器·php
White の algo18 分钟前
【Linux系统】linux下的软件管理
linux·运维·服务器
松树戈20 分钟前
Ubuntu挂载HDD迁移存储PostgreSQL数据
linux·ubuntu·postgresql
矛取矛求23 分钟前
Linux 系统安装与优化全攻略:打造高效开发环境
linux·运维·服务器
一把年纪学编程33 分钟前
linux 安装 mysql记录
linux·运维·mysql
小草cys1 小时前
ubuntu20.04升级成ubuntu22.04
linux·运维·服务器
Linux内核拾遗2 小时前
使用kvmtool运行和调试Linux内核
linux·kvm
前端小菜鸟一枚s2 小时前
如何使用 Bash 脚本自动化清理 Nacos 日志文件
linux
kfepiza2 小时前
Linux的/proc/sys/net/ipv6/conf/(all,default,interfaceName具体网络接口名称)/ 笔记250405
linux·tcp/ip
charlie1145141912 小时前
IMX6ULL学习整理篇——Linux使用更现代的GPIO操作简单设备
linux·嵌入式硬件·学习·教程·mpu·gpio子系统·pinctl