硬件开发时有时候需要配置USB串口,一般配置方式有以下两种:

一、对于没有重复ID的情况

1.1、查看设备ID:

输入指令:

lsusb


例如图片中的最上面0951:1666就是对应Kingston Technology DataTraveler 100 G3/G4/SE9 G2设备的ID号,这是我自己的U盘
对于这种情况,如果我们需要锁定USB端口的话,可以通过以下指令:

1.2、新建规则文件

sudo gedit /etc/udev/rules.d/xxx.rules

这里相当于在/etc/udev/rules.d路径下新建了一个名为xxx.rules的文件,xxx.rules名称可以根据自己的需要修改

然后在该文件中输入:

KERNEL=="ttyUSB*" ,ATTRS{idVendor}=="0951" ,ATTRS{idProduct}=="1666" ,MODE:="0777" ,SYMLINK+="xxx"

注意这里的ATTRS{idVendor}与ATTRS{idProduct}中的"0951"与"1666"需要根据实际ID修改,不可照抄,最后的SYMLINK中的xxx名称根据自己的需要设置

1.3、使文件生效

在终端输入:

sudo udevadm trigger

使其生效,同时插拔设备重新连接。最后使用:

ls -l /dev/***

查看是否成功连接。其中***即为第二步中SYMLINK中所填内容

二、对于有重复ID的情况

对于某些情况下,同一台设备连接了两个相同设备的时候,它们的ID很可能会出现重复:

例如这里连接了两个RealSense™ Depth Camera 435的时候,可以看到它们的ID是一样的,这时候如果用第一种方式去固定ID就不合适了。此时我们可以通过以下方式去固定ID:

2.1、插拔设备确定设备USB端口:

首先将需要固定ID的设备断开连接,通过:

ls /dev | grep USB

查看一次端口号

然后将设备连接上,运行同样的命令再查看一次。得到结果如下:

例如这里我需要固定的设备连接的端口是USB6

2.2、确定设备KERNELS

然后我们通过下列命令确定其KERNELS:

udevadm info -a -n /dev/ttyUSB6 | grep KERNELS


这里会有很多个结果,使用的是3-7.3:1.0这个.

2.3、修改规则文件

同样的新建一个规则文件:

sudo gedit /etc/udev/rules.d/xxx.rules

在其中输入:

ACTION=="add" ,KERNELS=="3-7.3:1.0" ,SUBSYSTEMS=="usb" ,MODE:="0777" ,SYMLINK+="xxx"

2.4、使文件生效

然后通过下述命令使其生效:

service udev reload
service udev restart

然后重新运行:

ls -l /dev/***

查看设备状态,如果配置成功则应该会有如下显示:

另外如果规则文件生效成功的话在/dev路径下会有个对应文件,如果查看设备状态找不到设备的话看看该路径下文件是否存在,不存在说明规则文件没有配置成功。(有时候配置完不会立即生效,可以重启一下)

linux串口设备配置方法(固定ID)相关推荐

  1. linux内核串口调试,linux 串口调试方法

    linux 串口调试方法 作者:syhdjf 发布于:2015-4-8 16:41 最近项目上用到linux下的串口,与下级模块的通信出了些问题,所以写了个小程序想要测试下串口,物理连接是PC端串口调 ...

  2. linux 添加最大串口数量方法

    很多 linux 安装好后只有可以看到 4 个或 8 个串口,比如:OS 默认串口数量Red hat 9.0 4Ubuntu 9.10/10.4 4SUSE 11 8如 SUSE11 可以看到,8 个 ...

  3. 解决方法:Linux串口接收字节0x11,0x0d,0x13丢失

    一.问题 串口发送: read 44 byte: 5a a5 07 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...

  4. Serial Programming HOWTO——Linux 串口编程HOWTO

    转自:http://bbs.loveunix.net/viewthread.php?tid=35896 1. Introduction 简介 This is the Linux Serial Prog ...

  5. linux 串口驱动(二)初始化 【转】

    转自:http://blog.chinaunix.net/uid-27717694-id-3493611.html 8250串口的初始化: (1)定义uart_driver.uart_ops.uart ...

  6. pc安装linux内核,PC/104平台嵌入式Linux系统核心定制方法

    摘 要:基于PC/104平台的嵌入式Linux技术在海洋自动观测系统中具有广泛的应用前景,Linux核心定制方法的研究是嵌入式Linux系统研制的关键工作.本文结合PC/104平台嵌入式Linux系统 ...

  7. GPS NMEA 0183 4.10协议/GPS Linux串口驱动

      NMEA 0183是美国国家海洋电子协会(National Marine Electronics Association)为海用电子设备制定的标准格式.现在已经成为GPS导航设备统一的RTCM(R ...

  8. Linux内核调试方法总结

    [转]Linux内核调试方法总结 目录[-] 一  调试前的准备 二  内核中的bug 三  内核调试配置选项 1  内核配置 2  调试原子操作 四  引发bug并打印信息 1  BUG()和BUG ...

  9. Linux串口权限与udev理解

    Linux串口权限与udev理解 本文不是很深入的探讨权限和udev问题,只是分析在日常使用中有关的一些概念.理解和解决方式. 串口的问题 在现场开发的同事反映UOS工控机没有配置串口,每次都需要su ...

最新文章

  1. 使用Win API创建顶级菜单(不使用资源文件)
  2. 写jsx_一种让小程序支持JSX语法的新思路
  3. AbstractQueuedSynchronizer理解之一(ReentrantLock)
  4. java代码如何降低重复率_影响网站跳出率的主要因素及如何降低网站跳出率?...
  5. HashSet 的contains方法
  6. 【图像处理】——Python实现几何变换(自定义+opencv库)
  7. Objective-C 语法
  8. 学习Ruby的10条理由
  9. python issuperset_Superset的各种疑难解答
  10. 从C语言到C++的进阶之C到C++的转变(篇一)
  11. 如何通过XMind 实践OKR 工作法
  12. 学习PHP的必备开发工具
  13. 如何用程序实现“rescan windows device manager
  14. 何园–中国晚清第一园
  15. SAAS 技术栈回顾
  16. 计算机课英语谐音,各科老师“谐音梗”大集合,英语课现“脏话”,数学化身段子手...
  17. Go Signal信号处理
  18. 几个不错的extjs的blog
  19. 评《中国赛映射出巨大市场潜力 姚明希望CBA赶超NBA》
  20. 解决STC8G1K08程序不能运行的问题和端口配置

热门文章

  1. qrcodejs二维码合成海报
  2. 教你如何编写测试用例
  3. 机器人李继红_电力设备
  4. Python中copy和deepcopy中的区别
  5. R 报错:参数不是数值也不是逻辑值:回覆NA--数据科学新类型tibble
  6. 使用docker创建web界面和创建使用MySQL
  7. mysql+系统数据库+修复_如何进行mysql表的修复工作?
  8. mapbox,使用maptalks绘制3D建筑图形
  9. 电子技术——反馈电压放大器
  10. 微信小程序学习-组件Map-地图初始定位