乐趣区

关于raspberry-pi:给树莓派配置rustanalyzer

本文原文

打算用 Rust 给树莓派的风扇写个温控的小程序,达到肯定的阈值之后才启动风扇。不过在搭建环境的时候遇到了点问题(次要是 rust-analyzer,以下简称 ra),在这里分享一下怎么在树莓派上(armv7)应用 ra。(我是通过 VSCode 的 SSH Remote 连贯上树莓派进行开发的。)

编译

首先咱们要解决编译的问题,因为官网的 release 上是没有 arm 相干的 pre-built,因而咱们须要拉去它的代码库而后本人编译。记得要先把 rust 的工具链(最新)以及 NodeJS(我用的 14)和 npm 装置好。

git clone https://github.com/rust-analyzer/rust-analyzer.git
cd rust-analyzer
cargo xtask build --server

而后咱们就能够在 ~/.cargo/bin 下失去rust-analyzer

批改插件

编译好了之后会发现,VSCode 的 ra 插件还是提醒谬误,就是

Unfortunately we don't ship binaries for your platform yet.[巴拉巴拉,以下疏忽]

咱们要对插件代码进行一点批改,找到 ~/.vscode-server/extensions/matklad.rust-analyzer-*/out/src/main.js* 为版本号。

而后找到这么一坨代码

咱们须要筹备三个变量

  • process.arch
  • process.platform
  • rust-toolchain

前两个获取形式是

node
process.arch // 我的后果是 arm
process.platform // 我的后果是 linux

第三个变量的获取形式是

rustup toolchain list

找到以后正在应用的工具链,比方我的输入是

stable-armv7-unknown-linux-gnueabihf (default)

那么我的 rust-toolchain 变量就应该是armv7-unknown-linux-gnueabihf

而后咱们批改platforms,减少一个键值对,

"{process.arch} {process.platform}": "{rust-toolchain}"

以我的变量为例,后果就是

"arm linux": "armv7-unknown-linux-gnueabihf"

批改的后的代码如下

复制 ra 到插件目录

把 ra 重命名成 rust-analyzer-{rust-toolchain},复制到~/.vscode-server/data/User/globalStorage/matklad.rust-analyzer 下。

同样以我的 rust-toolchain 变量为例,那么复制命令是

cp ~/.cargo/bin/rust-analyzer ~/.vscode-server/data/User/globalStorage/matklad.rust-analyzer/rust-analyzer-armv7-unknown-linux-gnueabihf

实现

当初近程连贯上树莓派 ra 应该就是能够失常工作了。

退出移动版