RP2040 烧录与调试:从 UF2 到 CMSIS-DAP

序言

RP2040 (Raspberry Pi Pico) 拥有双核 Cortex-M0+ 架构和独特的 PIO 状态机。在进行 Rust 嵌入式开发时,我们需要一套稳定可靠的烧录与调试方案。

虽然官方提供了基于 USB 存储模拟的 UF2 拖拽烧录方式,但在实际开发中,我们需要断点调试、RTT 日志输出以及一键自动烧录。本文整合了从最基础的软件工具到进阶的硬件调试方案。

Proxmox(PVE): 安装 HP ssacli 磁盘管理工具及 Smartctl 穿透

序言

在使用惠普(HPE)服务器运行 Proxmox VE 时,硬件阵列卡(Smart Array Controller)通常会屏蔽底层的物理磁盘信息。 为了监控磁盘健康状态和配置阵列,我们需要安装 HPE 官方的 ssacli (Smart Storage Admin CLI) 工具。

此外,在不安装官方工具的情况下,我们也可以通过特定参数让 smartctl 穿透阵列卡直接读取物理硬盘的 SMART 信息。

bash
smartctl -a -d cciss,<N> /dev/sg<M>
VSCode Remote + X11: 实现 Slint 远程开发预览

序言

在进行嵌入式 GUI 开发(如使用 Rust 和 Slint)时,通常会面临以下技术挑战:

  • 资源限制:嵌入式设备性能有限,编译速度慢且存储空间不足,不适合直接作为开发环境。
  • 环境隔离:为了保持本地开发环境的整洁,通常使用 PVE/WSL/Docker 等虚拟化平台部署独立的 Linux 容器进行开发。

VSCode Remote - SSH 提供了便捷的远程开发体验,实现了 “本地编码,云端编译”。然而,Slint 的 “实时预览” (Live Preview) 功能依赖于图形界面显示。虽然配合 SSH X11 转发 可以将远程窗口投射至本地,但 VSCode 的插件机制存在一定的环境隔离,Slint 插件启动的预览进程往往无法正确获取 DISPLAY 环境变量,导致预览窗口无法显示。

本文介绍一种通过 LSP (Language Server Protocol) 代理脚本注入环境变量的方法,以解决该问题。

SSH X11 转发配置指南

序言

在管理 Linux 服务器时,通常使用 SSH 命令行进行操作。但有时需运行一些必须使用图形界面(GUI)的软件(如 Oracle 安装程序、IDE、虚拟化管理器 virt-manager 等),以及 Windows 配合 Docker 容器进行 GUI 开发时,而服务器本身可能没有安装桌面环境,或者为了安全和性能不希望安装完整的 VNC/RDP 服务。

X11 转发 (X11 Forwarding) 是一项非常实用的技术,它允许通过 SSH 通道将 Linux 服务器上的图形界面 “转发” 到本地电脑上显示。简而言之,即程序在服务器上运行,但窗口绘制在本地屏幕上。

openwrt启动脚本

说明

  1. OpenWRT 的启动脚本放在 /etc/init.d 目录下,并且须要 chmod +x 赋予执行权。
  2. OpenWRT 开机时会自动运行 /etc/rc.d 目录下的脚本。由 /etc/init.d 链接生成。
sh
chmod +x /etc/init.d/{name}

service {name} {action}
# 或
/etc/init.d/{name} {action}
Proxmox(PVE): 开启NVIDIA vGPU

序言

NVIDIA vGPU 是一种允许多个虚拟机使用受支持的单个物理 GPU 的技术。

NVIDIA 不允许在消费级 GPU 上使用 vGPU 功能,但是实际上硬件是完全支持的。

这里使用开源软件  vgpu_unlock  通过修补 NVIDIA 驱动的方式解锁了消费级 NVIDIA vGPU 功能。

当然这仅能使消费级 GPU 能够支持 vGPU 技术,而不是破解了授权。(所以还是需要去 NVIDIA 购买!)

Copyright ©2022-2025 @ foxxorcat
博客已勉强运行: 1249天 8时 32分 35秒
设置
夜间模式
字体风格
基准字号16px
卡片阴影
视觉滤镜
圆角9px
主题色