Linux系统工业相机:Linux udev 规则绑定相机设备

相机一插拔,/dev/video0 就变?

udev 规则 一劳永逸解决!

"程序写死 /dev/video0,结果换了个 USB 口就崩了?"

"多台相机同时接,根本分不清哪个是哪个?"

别再靠猜设备路径了!
一条 udev 规则,让你的相机拥有固定"身份证"


🔧 原理一句话

Linux 系统在识别 USB/GigE 相机时,会动态分配设备节点(如 /dev/video0)。

udev 是 Linux 的设备管理器,可通过 厂商 ID + 产品 ID 等硬件信息,创建永久软链接,比如:

bash 复制代码
/dev/camera_front → /dev/video2
/dev/camera_top   → /dev/video1

无论你插哪个口、重启多少次,名字永远不变!


🛠️ 实操三步走

第一步:查相机的唯一标识

bash 复制代码
# 列出所有视频设备
lsusb

# 示例输出:
Bus 001 Device 004: ID 2676:ba02 Hikvision MV-CE050-10GM
Bus 001 Device 005: ID 2ab6:000a Baumer TXG50c

记下 idVendor(如 2676)和 idProduct(如 ba02)。

💡 GigE 相机?用 udevadm info -a -n /dev/videoX 查网卡 MAC 或序列号。


第二步:创建 udev 规则文件

bash 复制代码
sudo nano /etc/udev/rules.d/99-camera.rules

填入规则(以海康相机为例):

udev 复制代码
# 海康前视相机
SUBSYSTEM=="video4linux", ATTRS{idVendor}=="2676", ATTRS{idProduct}=="ba02", SYMLINK+="camera_front"

# 堡盟顶视相机
SUBSYSTEM=="video4linux", ATTRS{idVendor}=="2ab6", ATTRS{idProduct}=="000a", SYMLINK+="camera_top"

✅ 关键点:

  • SUBSYSTEM=="video4linux":只匹配视频设备
  • SYMLINK+="xxx":创建软链接(自动建在 /dev/ 下)

第三步:重载规则 & 验证

bash 复制代码
# 重载 udev 规则
sudo udevadm control --reload-rules
sudo udevadm trigger

# 拔插相机后检查
ls -l /dev/camera_*
# 输出应类似:
# lrwxrwxrwx 1 root root 6 Apr 7 camera_front -> video2

搞定!现在你的代码只需调用 /dev/camera_front,再也不怕设备顺序变了!


⚠️ 高频避坑指南

问题 解决方案
规则不生效 检查 idVendor/idProduct 是否正确;文件名必须以 .rules 结尾
权限不足 在规则末尾加 MODE="0666", GROUP="plugdev"
多台同型号相机 ATTRS{serial} 区分(需相机支持序列号)

💡 进阶技巧:按位置绑定(USB端口固定)

如果你的工控机 USB 接口物理位置固定,还可以按 总线路径 绑定:

udev 复制代码
SUBSYSTEM=="video4linux", KERNELS=="1-2.3", SYMLINK+="camera_left"

udevadm info -a -n /dev/video0 找到 KERNELS 路径。


✅ 总结

udev 规则 = 工业部署的"设备命名规范"

花 5 分钟配置,省下 50 小时调试!

别再让"设备漂移"拖垮你的自动化系统!


相关推荐
小女孩真可爱2 小时前
paddleocr使用50显卡训练报错
人工智能·ocr
杀生丸学AI2 小时前
【4DGS】4C4D:4个摄像头4DGS成像
人工智能·深度学习·三维重建·3dgs·4dgs·动态重建·高斯溅射
XMYX-02 小时前
04 - Go 的变量和常量:零值、类型推导与枚举
开发语言·golang
盼小辉丶2 小时前
PyTorch实战(41)——Hugging Face在PyTorch中的应用
人工智能·pytorch·深度学习·hugging face
IMPYLH2 小时前
Linux 的 mv 命令
linux·运维·服务器·bash
AAA_搬砖达人小郝2 小时前
Docker常用命令(2026最新)
开发语言·docker
OAK中国_官方2 小时前
DEPTHAI 3.4.0版本中OAK 4的USB支持
网络·数码相机
todoitbo2 小时前
装了 QClaw 之后,我卸掉了好几个 Mac 软件
人工智能·macos·ai·软件·openclaw·qclaw
weixin_423533992 小时前
虚拟机-ubuntu突然连不上网,网络图标消失
linux·运维·ubuntu