Ubuntu绑定USB接口到固定端口

绑定端口

  1. 打开终端,输入以下命令查看USB端口信息:
udevadm info -a -n /dev/ttyUSB0

执行后,可以看到部分输出如下:
找到第一个,a-b:c格式的KERNELS,记住这个值,后面会用到。

lin@lin-B660M-D2H-DDR4:~$ udevadm info -a -n /dev/ttyUSB0Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.1/1-11.1:1.0/ttyUSB0/tty/ttyUSB0':KERNEL=="ttyUSB0"SUBSYSTEM=="tty"DRIVER==""looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.1/1-11.1:1.0':KERNELS=="1-11.1:1.0"SUBSYSTEMS=="usb"DRIVERS=="ch341"ATTRS{bInterfaceNumber}=="00"ATTRS{bInterfaceSubClass}=="01"ATTRS{bAlternateSetting}==" 0"ATTRS{authorized}=="1"ATTRS{bInterfaceClass}=="ff"ATTRS{bInterfaceProtocol}=="02"ATTRS{supports_autosuspend}=="1"ATTRS{bNumEndpoints}=="03"

其中需要用到的信息有:

  • KERNELS==“1-11.1:1.0”

同样的,另一个端口如下:

  • KERNELS==“1-11.2:1.0”
  1. 添加udev规则:
sudo vim /etc/udev/rules.d/test_usb.rules

添加以下内容:
如果是/dev/ttyUSB*,则KERNEL要改为KERNEL=="ttyUSB*"
如果是/dev/video*,则KERNEL要改为KERNEL=="video*"

KERNEL=="ttyUSB*", KERNELS=="1-11.2:1.0", MODE:="0777", SYMLINK+="ttyUSB_test_back"
KERNEL=="ttyUSB*", KERNELS=="1-11.1:1.0", MODE:="0777", SYMLINK+="ttyUSB_test_front"

保存并退出,执行以下命令:

sudo udevadm control --reload-rules
sudo udevadm trigger
sudo service udev reload
sudo service udev restart
  1. 重启后,就可以通过以下命令查看端口号:
ls /dev/ttyUSB*

输出:

/dev/ttyUSB0  /dev/ttyUSB1  /dev/ttyUSB_test_back  /dev/ttyUSB_test_front

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/710628.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【深蓝学院】移动机器人运动规划--第7章 集群机器人运动规划--笔记

文章目录 0. Contents1. Multi-Agent Path Finding (MAPF)1.1 HCA*1.2 Single-Agent A*1.3 ID1.4 M*1.5 Conflict-Based Search(CBS)1.6 ECBS1.6.1 heuristics1.6.2 Focal Search 2. Velocity Obstacle (VO,速度障碍物)2.1 VO2.2. RVO2.3 ORCA 3. Flocking model&am…

【每日前端面经】2023-02-29

题目来源: 牛客 如何理解前端这个岗位 简单地说就是设计师做好网页效果图,前端将效果图转化成页面,之后交给后端程序员,中间的这段工作就是前端 浏览器如何渲染HTML 将载入的HTML文件解析成DOM树,并且将各个标记标识解析成DOM…

SQL的窗口函数

SQL的窗口函数 文章目录 SQL的窗口函数1. 介绍2. 聚合函数0.数据准备1. AVG2. COUNT3. MAX4. MIN5. 标准差6. SUM 3. 排序函数1. CUME_DIST2. RANK, DENSE_RANK, ROW_NUMBER3. PERCENT_RANK4. NTILE 4. 值函数(偏移函数)1. FIRST_VALUE2. LAST_VALUE3. LAG4. LEAD5. NTH_VALUE …

ChatGPT4.0 的优势、升级 4.0 为什么这么难以及如何进行升级?

前言 “ChatGPT4.0一个月多少人民币?” ”chatgpt4账号“ ”chatgpt4 价格“ “chatgpt4多少钱” 最近发现很多小伙伴很想知道关于ChatGPT4.0的事情,于是写了这篇帖子,帮大家分析一下。 一、ChatGPT4.0 的优势 (PS:…

LINUX基础培训二十七之shell标准输入、输出、错误

一、Shell 输入/输出重定向 大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回​​到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出&#xff…

【树莓派系统配置+python3.8+环境配置踩坑点汇总】raspberrypi

最近又开始搞树莓派的深度学习模型。很多windows端的环境需要在树莓派上重新部署,中间出现了非常多的问题。主要以各种库的下载安装为主要。 首先,第一个问题: 树莓派系统烧录之后,默认apt一般需要升级看,而默认下载…

无穷级数法求Π

任务描述 本关任务:编写一个无穷级数法计算圆周率的小程序。 相关知识 为了完成本关任务,你需要掌握: 无穷级数法 无穷级数法 π 是个超越数,圆周率的超越性否定了化圆为方这种尺规作图精确求解问题的可能性。有趣的是&…

【Spring】18 Bean 定义继承

文章目录 介绍声明式配置抽象Bean定义继承的配置项注意:抽象Bean预实例化结论 Spring 框架提供了一个强大的功能,称为 Bean 定义继承, 允许开发人员高效地在 bean 之间重用和自定义配置。在本篇文章中我们将介绍 Bean 定义继承的概念&#x…

JVM性能优化

运行时优化 方法内联 方法内联,是指 JVM在运行时将调用次数达到一定阈值的方法调用替换为方法体本身 ,从而消除调用成本,并为接下来进一步的代码性能优化提供基础,是JVM的一个重要优化手段之一。 注: C的inline属于编…

babylonsjs入门-基础模版

基于babylonjs封装的一些功能和插件 ,希望有更多的小伙伴一起玩babylonjs; 欢迎加群(点击群号传送):464146715 官方文档 中文文档 案例传送门 ​ 懒得打字,你们直接去copy组件吧,主要看这2…

旧版android模拟器,37岁程序员被裁

前言 从18年毕业至今,就职过两家公司,大大小小项目做了几个,非常感谢我的两位老大,在我的android成长路上给予我很多指导,亦师亦友的关系。 从年前至今参加面试了很多公司,也收到了几家巨头的offer&#…

transformer--编码器2(前馈全连接层、规范化层、子层链接结构、编码器层、编码器)

前馈全连接层 什么是前馈全连接层: 在Transformer中前馈全连接层就是具有两层线性层的全连接网络 前馈全连接层的作用: 考虑注意力机制可能对复杂过程的拟合程度不够,通过增加两层网络来增强模型的能力 code # 前馈全连接层 class PositionwiseFeedForward(nn.Module):de…

绝地求生:发现吃鸡号被盗,怎么操作才是最正确的

首先闲游盒先了解一下盗号者的盗号流程 一般盗号的流程是先把你steam上的皮肤饰品出售,然后把余额转走,再把steam账号作为黑号进行出售。 所以当闲游盒发现号被盗的时候也分为两种情况:一种是他正在出售商品的时候,你收到邮箱提示…

Linux命令行与shell脚本编程大全-3-4

第三部分高级shell脚本编程 第17章创建函数 17.1 脚本函数基础 17.1.1 创建函数 在bash shell 脚本中创建函数的语法有两种。第一种语法是使用关键字function,随后跟 上分配给该代码块的函数名: function name { commands } 17.1.2 使用函数 要在脚…

代码随想录算法训练营Day46 | 139.单词拆分、多重背包(卡码网56.携带矿石资源)

139.单词拆分 可以理解为一道 完全背包 排列 的题&#xff0c;dp数组定义和递推公式部分脑子需要转个弯 1、DP数组定义&#xff1a;一维滚动数组vector<bool>。dp[j]表示字符串s的[0, j]子串是否能够匹配。 2、DP数组初始化&#xff1a;dp[0]初始化为true&#xff0c;其…

Multi-Head Attention详解

文中大部分内容以及图片来自&#xff1a;https://medium.com/hunter-j-phillips/multi-head-attention-7924371d477a 当使用 multi-head attention 时&#xff0c;通常d_key d_value &#xff08;d_model / n_heads&#xff09;&#xff0c;其中n_heads是头的数量。研究人员称…

01-Vue2 介绍与指令的使用

1. Vue核心 1.1. Vue简介 1.1.1. 官网 中文官网Vue.js - 渐进式 JavaScript 框架 | Vue.js (vuejs.org)https://cn.vuejs.org/ 英文官网Vue.js - The Progressive JavaScript Framework | Vue.js (vuejs.org)https://vuejs.org/ 1.1.2. 介绍与描述 VUE是构建于用户界面的渐进…

靶机渗透之sar

Name: Sar: 1Date release: 15 Feb 2020Author: LoveSeries: Sar Download: https://drive.google.com/open?id1AFAmM21AwiAEiVFUA0cSr_GeAYaxd3lQ 对于vulnhub中的靶机&#xff0c;我们都需先下载镜像&#xff0c;然后导入VM&#xff0c;并将网络连接改为NAT模式。首先我们…

UDP数据报套接字编程入门

目录 1.TCP和UDP的特点及区别 1.1TCP的特点 1.2UDP的特点 1.3区别 2.UDP Socket的api的介绍 2.1DatagramSocket API 2.2DatagramPacket API 3.回显客户端与服务器 3.1回显服务器 3.1.1UdpEchoServer类的创建 3.1.2服务器的运行方法start() 3.1.3main部分 3.1.4.完整…

C# CAD PaletteSet.Style各种外观和行为样式

ps.Style 是 Autodesk.AutoCAD.Windows.PaletteSet 类的一个属性&#xff0c;用于定义调色板集&#xff08;PaletteSet&#xff09;的各种外观和行为样式。它可以是 PaletteSetStyles 枚举类型的组合值 PaletteSetStyles 枚举中包含以下一些选项&#xff1a; NameEditable&am…