当前位置: 首页 > article >正文

Linux开发环境配置总结【Ubuntu22 VScode Mobaxterm】

文章目录前言按照名称找这些资源安装ubuntu 22 server的一些注意事项MobaXterm连接虚拟机VSCode相关的环境配置--------会用到的扩展--------VSCode的配置文件--------VSCode中进行编译--------VSCode中进行debug--------VSCode遇到的SSH连接问题(failed to fetch)--------虚拟机磁盘空间的扩展DPDK的环境搭建--------多队列网卡的查询与设置--------hugepage--------DPDK源码--------Samba的配置和启动--------DPDK的setup前言最近在学习linux环境下的C/C开发因为是初学者所以遇到了许多有关环境配置而不是代码该怎么写的问题。趁网络编程学习阶段结束在这里做一个总结后续遇到问题也要添加和修改。按照名称找这些资源开发中用到的软件有VMware Workstation proMobaXtermVScodenetassistwireShark资源ubuntu-22.04.1-live-server-amd64安装ubuntu 22 server的一些注意事项①注意这里的 (x) 表示选中记得勾选openSSH②耗时太久走到这一步直接取消更新重启即可MobaXterm连接虚拟机使用net-tools查看网卡的IP地址sudoaptupdatesudoapt-getinstallnet-tools但是报错了“E: dpkg was interrupted, you must manually runsudo dpkg --configure -ato correct the problem.”那就照做可能是在安装系统时强行关机重启导致的。sudodpkg--configure-a再次尝试安装net-tools即可。使用net-tools的ifconfig指令查看到IP地址打开MobaXtrem连接即可在settings中指定VSCode进行编辑VSCode相关的环境配置--------会用到的扩展方便我们写代码需要安装RemoteSSH并点击左下角连接在弹出的对话框中点击添加新的主机并输入虚拟机中系统用户名IP地址flame192.168.30.128后续弹出对话框 依次选择platform - linux 指纹就是你的虚拟机账号的密码。注意在安装扩展时虚拟机和本地是分开的。为了开启提示功能会用到的扩展C/C 请注意这个并不是编译器只是方便我们编写用的还需另外自行确保虚拟机中有gcc和gdb在虚拟机中sudoapt-getinstallgcc执行后出现图示信息这是 Ubuntu 系统在安装或更新软件包后提示你哪些系统服务需要重启因为这些服务依赖的库文件被更新了不重启可能导致功能异常。直接按回车键确认选择默认的勾选项即可系统会自动重启这些服务无需手动逐个操作。--------VSCode的配置文件要在VSCode中进行编译和debug。可以看到此时我们在VSCode编写时找不到头文件和库文件但是虚拟机的GCC能正常编译并运行。这是因为VSCode的C/C扩展还未正确识别远程主机的系统头文件路径但虚拟机的 GCC 本身是正常的所以命令行能编译运行。解决方法是让VSCode扩展定位到远程主机的GCC系统头文件。ctrl shift p唤出命令面板编辑配置。点击后会在你的项目根目录下生成json配置文件includePath下告诉VScode找哪些目录下的头文件。分别是根目录下包括其子目录的.h头文件include下的头文件gcc内置的头文件compilerPath是gcc的路径使用gcc-v查看到我的gcc version是 11.4.0 使用c17 和 c17即可intelliSenseMode是 VS Code C/C 扩展的关键配置项确保 VS Code 的代码分析和远程主机的 GCC 行为完全一致--------VSCode中进行编译现在不会爆红了接着是编译。打开配置默认生成任务工具栏选择gcc生成活动文件生成task.json文件有了task.json文件我们就能进行编译了快捷键ctrl shifit b--------VSCode中进行debug为了能够添加断点调试首先要在虚拟机装gdbsudoapt-getinstallgdb在VSCoded的运行中添加配置生成lauch.json文件选择gdb启动即可自动生成的字段注意修改program然后在运行中启动调试或者直接在右上角可进入运行和调试debug模式这样不需要手动配置路径了--------VSCode遇到的SSH连接问题(failed to fetch)某天我在打开电脑使用VScode连接我的虚拟机时遇到了无法连接问题。但是MobaXtermSamba这些都能正常工作VScode表现为右下角一直显示VScode在下载本地服务器。报错未能下载VScode服务器其实这就是一个很简单的网络问题我实验室在的楼交换机很差网络问题频发解决这个问题的方法就是在其他电脑上下载后把对应的文件放到虚拟机中的对应位置就可以了。参照这一篇文章即可解决https://blog.csdn.net/w626990886/article/details/148786196--------虚拟机磁盘空间的扩展虚拟机磁盘空间不足可以通过清理日志缓存的方式解决也可以扩展磁盘空间①在vmware workstation右键虚拟机修改硬盘空间。②进入系统确认识别新的容量lsblk③使用parted 扩大分区sudoparted/dev/sda# 进入交互界面后执行(parted)resizepart3100%# 提示警告时输入 Yes/Ignore(parted)quit注意这里的 3 代表你的逻辑卷所在编号请根据 lsblk 实际显示调整我的是sda3-ubuntu–vg-ubuntu–lv④通知内核更新分区表sudopartprobe⑤扩展物理卷让LVM识别底层分区变大了sudopvresize /dev/sda3⑥扩展逻辑卷sudolvextend-l100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv⑦确认结果df-hDPDK的环境搭建DPDKData Plane Development Kit是用于编写用户态协议栈的一种工具。DPDK为了绕开内核协议栈需要多队列网卡的支持。--------多队列网卡的查询与设置ifconfig我的网卡名称为ens33查看网卡对应的中断队列cat/proc/interrupts|grepens33这个样子就是不支持的因为只有一个队列让自己的虚拟机支持多队列网卡①关闭虚拟机②再添加一个桥接模式的网卡用于DPDK的多队列支持因为在第一次设置时我是用了虚拟机唯一的一张NAT模式的网卡结果重启发现我的这张网卡用ifconfig都查不出来。后续查询可能是因为NAT与DPDK的冲突。所以再选用一个桥接模式的网卡同时复制物理网络连接状态。③在虚拟机的本地文件中找到虚拟机名.vmx的文件找不到记得设置显示扩展名。④打开该文件是这个样子我是直接拖到VSCode里面打开的其中ethernet1就是第二张网卡是我们要修的网卡把virtualDev的值改为vmxnet3再新增一条ethernet1.wakeOnPcktRcvTRUE⑤再次重启虚拟机查看网卡队列iplinkshow看到多了一个ens160并且还未处于打开状态那么就把它打开sudoiplinksetens160 up这时再cat/proc/interrupts|grepens160就可以看到如下结果因为我的虚拟机只有两个CPU所以只有两个中断。⑥修改CPU数量为8后重启如下图所示注意虚拟机关机后ens160网卡会默认关闭记得使用以下指令进行检查iplinkshowsudoiplinksetens160 upcat/proc/interrupts|grepens160--------hugepagesudovim/etc/default/grub在红框的key中赋值default_hugepages1Ghugepagesz2Mhugepages1024设置完后更新参数sudoupdate-grub--------DPDK源码下载官网https://core.dpdk.org/download/选一版较为稳定的下载用7-Zip管理员启动并解压在Windows解压会有一些小问题不推荐正确做法是直接把dpdk-19.08.2.tar.xz安装包上传到虚拟机里然后执行指令tar-xvfdpdk-19.08.2.tar.xz--------Samba的配置和启动转移多文件mobaXterm可以做到但是用samba更方便这里仅仅为了顺带说一下Samba的配置方法sudoapt-getinstallsamba更改smb.conf配置文件sudovim/etc/samba/smb.conf[share]就是在驱动器中显示的名字设置commnetpathwriteablebrowseable即可修改share文件夹及其父文件夹可读可写可执行chmod-R777/home/flame /home/flame/share给samba添加用户必须是系统中有的用户sudosmbpasswd-aflame启动samba服务查看其状态按Q退出或者关闭服务sudosystemctl start smbd.servicesudosystemctl status smbd.servicesudosystemctl stop smbd.service右键此电脑映射网络驱动器填写smb的用户和密码即可Tips:把解压后的文件复制到映射文件夹下会遇到权限问题所以直接把安装包下到share里面用7-zip解压可以实现100%的文件获取。同时在启动setup时也要在之前切换到root--------DPDK的setup记得在开始编译前安装依赖NUMA库和设置python为python3的软连接在make时需要有pkg-config这个库sudoaptinstall-ymakesudoaptinstall-ylibnuma-devsudoaptinstall-ypkg-configsudoln-s/usr/bin/python3 /usr/bin/pythonsudosu./usertools/dpdk-setup.sh编译代码前记得设置环境变量exportRTE_SDK/home/flame/share/dpdk-stable-19.08.2exportRTE_TARGETx86_64-native-linux-gcc#在setup的时候选择的gcc根据安装程序提示选择 36 仅第一次编译 43 44 45 46-512 47-512 49注意这里49在绑定网卡的PCIE前要关闭这个网卡最后 60 就完成了DPDK环境的搭建确认网卡的绑定状态在usrtools中运行sudopython dpdk-devbind.py--statushttps://github.com/0voice

相关文章:

Linux开发环境配置总结【Ubuntu22 VScode Mobaxterm】

文章目录前言按照名称找这些资源安装ubuntu 22 server的一些注意事项MobaXterm连接虚拟机VSCode相关的环境配置--------会用到的扩展--------VSCode的配置文件--------VSCode中进行编译--------VSCode中进行debug--------VSCode遇到的SSH连接问题(failed to fetch)--------虚拟…...

FPGA驱动RGB888屏幕实战:从时序解析到图像显示的完整流程

1. RGB888屏幕驱动基础 第一次拿到RGB888屏幕时,我盯着那密密麻麻的40针排线直发懵。这种屏幕每个像素点需要24位数据(R/G/B各8位),比常见的RGB565模式色彩细腻得多,但驱动复杂度也直线上升。就像装修房子,…...

重磅来袭!JetBrains首款Rust专属IDE——RustRover,亲测真香!

前言: 作为一名Rust老兵,从VSCode 各种插件到CLion Rust插件,配置环境真是让人头大。直到遇到了它——JetBrains官方出品的Rust专属IDE RustRover,我才真正体会到什么叫“开箱即用”的爽快感!今天就跟大家好好唠唠这…...

变分推断(Variational Inference)在贝叶斯统计中的核心作用与应用

1. 变分推断:贝叶斯统计的"捷径"工具 第一次接触变分推断(Variational Inference)时,我正被一个图像分类项目困扰。当时需要计算神经网络权重的后验分布,但传统的MCMC采样方法跑一次就要8小时,完全不适合实际应用。直到…...

Firecamp部署指南:从开发环境到生产环境的完整流程

Firecamp部署指南:从开发环境到生产环境的完整流程 【免费下载链接】firecamp Developer-first OpenSource API DevTool, Postman/Insomnia alternative. 项目地址: https://gitcode.com/gh_mirrors/fi/firecamp Firecamp是一款面向开发者的开源API开发工具&…...

Spring Boot 异步任务执行超时处理机制

Spring Boot异步任务执行超时处理机制解析 在现代高并发系统中,异步任务处理是提升性能的关键手段。异步任务的执行时间可能因网络延迟、资源竞争等问题超出预期,导致系统响应变慢甚至阻塞。Spring Boot提供了多种超时处理机制,帮助开发者优…...

如何扩展MVVM架构:添加新功能与模块化设计的终极指南

如何扩展MVVM架构:添加新功能与模块化设计的终极指南 【免费下载链接】Android-MVVM-Architecture MVVM Kotlin Retrofit2 Hilt Coroutines Kotlin Flow mockK Espresso Junit5 项目地址: https://gitcode.com/gh_mirrors/mv/Android-MVVM-Architecture …...

EasyVtuber未来发展规划:AI虚拟主播的技术趋势与创新方向

EasyVtuber未来发展规划:AI虚拟主播的技术趋势与创新方向 【免费下载链接】EasyVtuber Based on Talking-head-anime 3, works like Vtube Studio. 项目地址: https://gitcode.com/gh_mirrors/ea/EasyVtuber EasyVtuber是一款基于Talking-head-anime 3技术开…...

基于 IndexTTS2 的数字人语音生成 Pipeline 设计

IndexTTS2 是目前情感控制与时长控制能力最强的开源自回归 TTS 模型,非常适合作为数字人系统的「语音生成核心模块」。 本设计旨在构建一个从输入文案到最终数字人语音/视频的完整 Pipeline,使数字人能够做到: 克隆音色表达情感按剧本中的动作…...

快速体验Qwen3-ASR-0.6B:上传音频文件,一键识别文字

快速体验Qwen3-ASR-0.6B:上传音频文件,一键识别文字 1. 简介与快速体验 Qwen3-ASR-0.6B是一款强大的语音识别模型,支持52种语言和方言的识别。它基于Qwen3-Omni模型开发,在保持高效推理的同时,提供了接近商业闭源API…...

i.MX6ULL接OV2640摄像头踩坑记:从硬件改线到内核补丁的完整排错流程

i.MX6ULL接OV2640摄像头踩坑记:从硬件改线到内核补丁的完整排错流程 第一次将OV2640摄像头模块接入i.MX6ULL开发板时,我本以为按照官方文档操作就能轻松搞定。然而现实给了我一记响亮的耳光——从硬件连接、内核驱动到应用层验证,几乎每个环节…...

手把手教你用Matlab调用MODTRAN 5:从零配置到批量模拟太阳辐照度

MATLAB与MODTRAN 5工程化集成实战:太阳辐照度模拟全流程解析 当我们需要精确计算大气层外的太阳辐射经过大气衰减后的地面辐照度时,MODTRAN作为业界公认的大气辐射传输模型,其准确性已得到广泛验证。而MATLAB作为工程计算的标准工具&#xff…...

自动控制理论(12)——控制系统校正的工程实践与优化

1. 控制系统校正的工程意义 在工业自动化领域,控制系统就像人体的神经系统,需要精确调节才能保证设备稳定运行。想象一下化工反应釜的温度控制:如果响应太慢会导致反应不充分,响应太快又可能引发剧烈振荡。这就是为什么我们需要校…...

软件体验优化中的A-B测试设计

在软件体验优化中,A/B测试是一种科学且高效的方法,通过对比不同版本的设计或功能,帮助团队找到最优解决方案。无论是电商平台的按钮颜色,还是社交应用的推送策略,A/B测试都能以数据驱动决策,显著提升用户满…...

Qwen3-14B-INT4-AWQ赋能运维:智能日志分析与故障预警实战

Qwen3-14B-INT4-AWQ赋能运维:智能日志分析与故障预警实战 1. 运维人员的日常困境 凌晨3点,某电商平台的运维工程师小王被刺耳的告警铃声惊醒。服务器CPU使用率飙升到98%,但查看监控系统却找不到明确原因。他不得不手动翻阅数GB的日志文件&a…...

League-Toolkit:5分钟掌握英雄联盟最强自动化助手,告别手忙脚乱

League-Toolkit:5分钟掌握英雄联盟最强自动化助手,告别手忙脚乱 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在为…...

如何在Windows上完美播放Flash内容:CefFlashBrowser终极指南

如何在Windows上完美播放Flash内容:CefFlashBrowser终极指南 【免费下载链接】CefFlashBrowser Flash浏览器 / Flash Browser 项目地址: https://gitcode.com/gh_mirrors/ce/CefFlashBrowser 当主流浏览器纷纷停止支持Flash技术后,你是否曾为无法…...

软件复用中的组件化开发实践方法

软件复用中的组件化开发实践方法 在快速迭代的软件开发领域,如何高效地复用代码、降低开发成本并提升系统可维护性,一直是开发者关注的焦点。组件化开发作为一种成熟的软件复用实践方法,通过将系统拆分为独立、可复用的功能单元,…...

告别黑屏!用Arduino和TFT_eSPI库给你的项目加块彩色LCD屏(ESP32/ESP8266保姆级教程)

从零玩转ESP32彩色LCD屏:TFT_eSPI库实战指南 1. 硬件准备与连接 当你第一次拿到那块小巧的彩色LCD屏时,可能会被背面密密麻麻的引脚吓到。别担心,大多数常见的1.8寸到3.5寸LCD屏(如ILI9341、ST7789驱动)其实只需要连接…...

保姆级教程:用YOLOv8n-pose ONNX模型实现摄像头实时姿态估计(附完整代码)

零基础实战:YOLOv8n-pose ONNX模型实时姿态估计全流程解析 当我们需要在视频流中实时追踪人体动作时,传统方案往往面临精度与速度难以兼得的困境。YOLOv8n-pose作为轻量级姿态估计模型,配合ONNX运行时的高效推理能力,为开发者提供…...

终极虚拟机检测指南:如何用VMDE轻松识别虚拟环境

终极虚拟机检测指南:如何用VMDE轻松识别虚拟环境 【免费下载链接】VMDE Source from VMDE paper, adapted to 2015 项目地址: https://gitcode.com/gh_mirrors/vm/VMDE 你是否曾经好奇过,你的电脑是否运行在虚拟环境中?或者你是否需要…...

终极glTF 2.0查看器:用Rust构建的高性能3D模型浏览器

终极glTF 2.0查看器:用Rust构建的高性能3D模型浏览器 【免费下载链接】gltf-viewer glTF 2.0 Viewer written in Rust 项目地址: https://gitcode.com/gh_mirrors/gl/gltf-viewer 想要在本地快速预览和查看glTF 3D模型吗?gltf-viewer正是你需要的…...

【开发界人文十问】二、类的private私有,到底是对谁私有?为何修改器能随意修改?

文章目录一、先破误区:private 从来不是“安全加密”二、private 到底是“对谁私有”?它限制这些:它完全管不了这些:三、为什么修改器可以随便改私有变量?四、一张表看懂 private 的真实边界五、回到人文思考&#xff…...

终极GitHub汉化指南:免费插件一键解锁中文界面

终极GitHub汉化指南:免费插件一键解锁中文界面 【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese GitHub作为全球最大的代码托…...

Spring_couplet_generation 技术社区分享:在CSDN撰写高质量技术博客指南

Spring_couplet_generation 技术社区分享:在CSDN撰写高质量技术博客指南 写技术博客,尤其是分享一个像 Spring_couplet_generation 这样有趣又有文化内涵的项目,是件挺有成就感的事。但怎么才能把文章写得既有干货,又能吸引人&am…...

Data-Structure-Algorithms-LLD-HLD中的10个核心数据结构学习技巧

Data-Structure-Algorithms-LLD-HLD中的10个核心数据结构学习技巧 【免费下载链接】Data-Structure-Algorithms-LLD-HLD A Data Structure Algorithms Low Level Design and High Level Design collection of resources. 项目地址: https://gitcode.com/gh_mirrors/da/Data-S…...

Qwen3-TTS声音设计入门:零代码实现中文、英文、日语语音合成

Qwen3-TTS声音设计入门:零代码实现中文、英文、日语语音合成 1. 为什么选择Qwen3-TTS进行语音合成 语音合成技术已经发展了几十年,但大多数工具要么需要复杂的参数调整,要么生成的声音机械感明显。Qwen3-TTS-12Hz-1.7B-VoiceDesign的出现改…...

vivado hls设计通用评价指标

一、评价vivado hls设计好坏的指标 资料利用、功耗、流水线、循环展开、数据流、数组分割、浮点转定点。 1.延迟 2.吞吐量 3.启动间隔II Vivado HLS设计的评价指标主要围绕资源、时序、吞吐量和延迟这四大核心维度展开。二、Area面积资源 LUT,FF,BRAM,DSP 硬件电路所…...

菲菲更名宝贝:解决文件名批量修改与批量重命名的实战技巧

你是否有过这样的烦恼:相机导出的几百张照片全是“IMG_0001、IMG_0002”,想改成有意义的名称却只能一张张重命名;下载的一堆电子书文件名里夹杂着广告词,手动删除要到猴年马月;公司里几十份报表需要统一添加日期前缀&a…...

崩坏3扫码登录神器:一键秒登全渠道服桌面端解决方案

崩坏3扫码登录神器:一键秒登全渠道服桌面端解决方案 【免费下载链接】bh3_login_simulation-memories 轻巧的崩坏3渠道服桌面端扫码登陆解决方案 项目地址: https://gitcode.com/gh_mirrors/bh/bh3_login_simulation-memories 崩坏3扫码登录模拟器是一款专为…...