嵌入式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.pswp.cn/web/74581.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/74581.shtml
英文地址,請注明出處:http://en.pswp.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;。 該通知旨在…