01-Linux

Linux

译文 · 基于 The Embedded Rust Book

Linux

原文链接: https://doc.rust-lang.org/stable/embedded-book/intro/install/linux.html

以下是若干 Linux 发行版的安装命令。

软件包

  • Ubuntu 18.04 或更新 / Debian stretch 或更新

注意 gdb-multiarch 是你用来调试 ARM Cortex-M 程序的 GDB 命令

1
sudo apt install gdb-multiarch openocd qemu-system-arm
  • Ubuntu 14.04 与 16.04

注意 arm-none-eabi-gdb 是你用来调试 ARM Cortex-M 程序的 GDB 命令

1
sudo apt install gdb-arm-none-eabi openocd qemu-system-arm
  • Fedora 27 或更新
1
sudo dnf install gdb openocd qemu-system-arm
  • Arch Linux

注意 arm-none-eabi-gdb 是你用来调试 ARM Cortex-M 程序的 GDB 命令

1
sudo pacman -S arm-none-eabi-gdb qemu-system-arm openocd

udev 规则

这条规则让你可以在没有 root 权限的情况下,用 OpenOCD 操作 Discovery 开发板。

创建文件 /etc/udev/rules.d/70-st-link.rules,内容如下。

1
2
3
4
5
# STM32F3DISCOVERY rev A/B - ST-LINK/V2
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", TAG+="uaccess"

# STM32F3DISCOVERY rev C+ - ST-LINK/V2-1
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", TAG+="uaccess"

然后用以下命令重新加载全部 udev 规则:

1
sudo udevadm control --reload-rules

若板子已插入笔记本,请拔出后再插上。

可通过运行此命令检查权限:

1
lsusb

应显示类似如下内容:

1
2
3
(..)
Bus 001 Device 018: ID 0483:374b STMicroelectronics ST-LINK/V2.1
(..)

记下总线与设备编号。用这些编号构造类似 /dev/bus/usb/<bus>/<device> 的路径。然后像这样使用该路径:

1
ls -l /dev/bus/usb/001/018
1
crw-------+ 1 root root 189, 17 Sep 13 12:34 /dev/bus/usb/001/018
1
getfacl /dev/bus/usb/001/018 | grep user
1
2
user::rw-
user:you:rw-

权限后追加的 + 表示存在扩展权限。getfacl 命令表明用户 you 可以使用该设备。

现在,前往下一节。

最后修改 August 11, 2026: 更新 (70a5af133)