当前位置: 首页 > news >正文

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

相关文章:

Ubuntu绑定USB接口到固定端口

绑定端口 打开终端,输入以下命令查看USB端口信息: udevadm info -a -n /dev/ttyUSB0执行后,可以看到部分输出如下: 找到第一个,a-b:c格式的KERNELS,记住这个值,后面会用到。 linlin-B660M-D2H-DDR4:~$ u…...

解决gogs勾选“使用选定的文件和模板初始化仓库”报错500,gogs邮件发送失败,gogs邮件配置不生效,gogs自定义模板等问题

解决gogs勾选“使用选定的文件和模板初始化仓库”报错500,gogs邮件发送失败,gogs邮件配置不生效,gogs自定义模板等问题 前几天出了教程本地部署gogs,在后期运行时发现两个问题: 第一:邮件明明配置了,后台显示未配置,…...

数字后端——DEF文件格式

文章目录 MACRO的不同orientationDEF中在macro orientation定义前需要留空格 MACRO的不同orientation DEF中在macro orientation定义前需要留空格 像下图中这种方向和分号之间没有空格的情况,就是有问题的格式。...

【可做课设、附完整技术文档】流式、异步、实时的Django聊天室!(需进一步定制可联系本人)

介绍 完整源码以及完整项目文档请看源码链接。 此Django项目实现了一个精致易扩展的实时聊天室,可直接作为网页开发的课程设计提交,也可二次开发,比如添加更好看的样式,或者更多更酷炫的功能。 实现了如下功能: 流…...

网络编程:基于TCP和UDP的服务器、客户端

1.基于TCP通信服务器 程序代码&#xff1a; 1 #include<myhead.h>2 #define SER_IP "192.168.126.121"//服务器IP3 #define SER_PORT 8888//服务器端口号4 int main(int argc, const char *argv[])5 {6 //1.创建用于监听的套接字7 int sfd-1;8 sf…...

kubectl 命令行管理K8S(上)

目录 陈述式资源管理方式 介绍 命令 项目的生命周期 创建 kubectl create命令 发布 kubectl expose命令 更新 kubectl set 回滚 kubectl rollout 删除 kubectl delete 应用发布策略 金丝雀发布 陈述式资源管理方式 介绍 1.kubernetes 集群管理集群资源…...

Redis 之四:Redis 事务和乐观锁

事务特点 Redis 事务可以一次执行多个命令&#xff0c; 并且带有以下三个重要的保证&#xff1a; 批量操作在发送 EXEC 命令前被放入队列缓存。 收到 EXEC 命令后进入事务执行&#xff0c;事务中任意命令执行失败&#xff0c;其余的命令依然被执行。不具备原子性。 在事务执…...

C# WPF编程-创建项目

1.创建新项目 选择“WPF应用程序”》“下一步” 设置项目 设置项目名称&#xff0c;保存位置等参数>下一步 3.选择框架 4.项目创建成功 5.运行项目...

密码学及其应用(应用篇15)——0/1背包问题

1 问题背景 背包问题是一个经典的优化问题&#xff0c;在计算机科学和运筹学中有着广泛的应用。具体到你提到的这个问题&#xff0c;它是背包问题中的一个特例&#xff0c;通常被称为0/1背包问题。这里&#xff0c;我们有一系列的正整数 &#xff0c;以及一个正整数&#xff0c…...

基于springboot+vue的实验室管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…...

华为OD技术面试案例5-2024年

背景 985本计算机专业&#xff0c;目标院校。 1.15 投递 在某BOSS上投递的简历&#xff0c;HR人很nice&#xff0c;非常负责任。 1.19 收到机试通知 第一题是一个哈夫曼编码&#xff0c;第三题是一个动态规划&#xff0c;机试整体难度不算高&#xff0c;刷leetcode hot100…...

【QT+QGIS跨平台编译】之五十五:【QGIS_CORE跨平台编译】—【qgsmeshcalcparser.cpp生成】

文章目录 一、Bison二、生成来源三、构建过程一、Bison GNU Bison 是一个通用的解析器生成器,它可以将注释的无上下文语法转换为使用 LALR (1) 解析表的确定性 LR 或广义 LR (GLR) 解析器。Bison 还可以生成 IELR (1) 或规范 LR (1) 解析表。一旦您熟练使用 Bison,您可以使用…...

Unity(第二十部)效果 粒子、线条和拖尾

1、粒子系统 粒子系统介绍 Unity 粒子系统是 Unity 引擎中用于创建和控制粒子效果的工具。它可以模拟各种自然现象&#xff0c;如火焰、烟雾、雨滴等&#xff0c;也可以用于创建特效&#xff0c;如魔法光芒、爆炸效果等。 粒子系统组成 在 Unity 中&#xff0c;粒子系统由发射…...

全量知识系统问题及SmartChat给出的答复 之6 三套工具之1

Q15. 提出想法和问题 前面说过&#xff0c;DDD在我要设计的全量知识系统中位于中间层&#xff0c;是专门用来解决“知识汤”问题的。 解决的思路就是以将为在特定领域中的公司经营提供一个责任-权限平面为目的&#xff0c;帮助他们调整商业模式以及组建恰当的组织&#xff0c…...

[RoarCTF 2019]Easy Calc

这题考查的是: 字符串解析特性目录读取文件内容读取 字符串解析特性详解&#xff1a;PHP字符串解析特性 &#xff08;$GET/$POST参数绕过&#xff09;&#xff08;含例题 buuctf easycalc&#xff09;_参数解析 绕过-CSDN博客 ascii码查询表&#xff1a;ASCII 表 | 菜鸟工具 …...

完美解决 git 报错fatal: Not a git repository (or any of the parent directories): .git

问题描述 错误提示是找不到.git文件&#xff0c;无法执行git指令&#xff0c;意思是 当前你要提交的文件夹中没有.git这个文件 解决方案 执行如下命令&#xff1a; git init...

electron无法设置自己的图标?渲染进程require报错?

electron无法设置自己的图标&#xff1f; 极有可能是图标太大&#xff0c;或者宽高不同 我推荐的网址icon转换 选着20x20一般就可以 渲染进程无法使用require?一直报错&#xff1f; webPreferences: {nodeIntegration: true, enableRemoteModule: true, contextIsolation: …...

vscode连接服务器与FileZilla上传到服务器

https://www.cnblogs.com/qiuhlee/p/17729647.html&#xff08;这个是vscode连接服务器&#xff09; 主机&#xff1a;就是服务器的主机号 使用者名称&#xff1a;比如ALmax的用户名 密码&#xff1a;比如ALmax的密码...

练习 1 Web EasySQL极客大挑战

CTF Week 1 EasySQL极客大挑战 BUUCTF 典中典复习 Web SQL 先尝试输入&#xff0c;找一找交互页面 check.php 尝试万能语句 a’ or true SQL注入&#xff1a;#和–的作用 get传参只能是url编码&#xff0c;注意修改编码&#xff0c;输入的字符串要改成url格式。 POST请求和…...

matlab生成模拟的通信信号

matlab中rand函数生成均匀随机分布的随机数&#xff0c;randn生成正态分布的随机数&#xff1b; matlab来模拟一个通信信号&#xff1b; 通信信号通过信道时&#xff0c;研究时认为它会被叠加上服从正态分布的噪声&#xff1b; 先生成随机信号模拟要传输的信号&#xff0c;s…...

移远EC600S-CN AT指令HTTP实战:手把手教你用QCOM_V1.6调试工具连接OneNET(含串口工具换行符避坑)

移远EC600S-CN AT指令HTTP开发实战&#xff1a;从工具配置到OneNET云平台对接全解析 在物联网设备开发中&#xff0c;HTTP协议作为最常用的应用层协议之一&#xff0c;其稳定性和易用性备受开发者青睐。移远通信的EC600S-CN模块凭借其出色的网络连接能力和丰富的AT指令集&#…...

数据分析小白必看:从Excel到Python的3个实战案例(附数据集)

数据分析小白必看&#xff1a;从Excel到Python的3个实战案例&#xff08;附数据集&#xff09; 数据分析正逐渐成为职场人士的必备技能。无论是市场调研、销售预测还是用户行为分析&#xff0c;数据驱动的决策方式正在重塑各行各业的工作模式。但对于初学者来说&#xff0c;最大…...

如何在Navicat中使用逻辑模型转为物理模型_架构师必备技能

Navicat逻辑模型导出物理模型失败主因是模型未通过校验&#xff0c;需先Validate Model并修复主键缺失、字段类型不一致、命名含空格/特殊字符、关系基数未指定等问题。Navicat 逻辑模型导出物理模型失败&#xff1a;常见报错和前置检查直接导出失败&#xff0c;大概率不是操作…...

Qt setGeometry:从基础定位到动态布局的实战解析

1. setGeometry函数基础入门 第一次接触Qt界面开发时&#xff0c;我对着满屏的布局管理器发愁。直到发现setGeometry这个"简单粗暴"的定位神器&#xff0c;才明白原来控件位置可以像搭积木一样精确控制。这个函数用四个数字就能搞定控件摆放&#xff0c;比相亲时介绍…...

无涯教程-JavaScript - 深入理解 has() 方法:从 WeakSet 到集合成员检测

1. 认识JavaScript中的has()方法 第一次接触JavaScript的has()方法时&#xff0c;我完全被它简洁而强大的功能惊艳到了。这个方法就像是一个高效的"探测器"&#xff0c;专门用来检查某个元素是否存在于集合中。想象一下你有一个装满各种物品的盒子&#xff0c;has()方…...

如何利用Flutter开发AI应用:TensorFlow与机器学习集成指南

如何利用Flutter开发AI应用&#xff1a;TensorFlow与机器学习集成指南 【免费下载链接】open-source-flutter-apps :iphone: List of open source Flutter applications :octocat: 项目地址: https://gitcode.com/gh_mirrors/op/open-source-flutter-apps Flutter作为跨…...

3步掌握Chrome独立代理:浏览器专属网络加速指南

3步掌握Chrome独立代理&#xff1a;浏览器专属网络加速指南 【免费下载链接】Chrome-proxy-helper Chrome PROXY extension, set proxy for Chrome browser 项目地址: https://gitcode.com/gh_mirrors/ch/Chrome-proxy-helper 你是否曾遇到过这样的场景&#xff1f;需要…...

MATLAB绘图效率大比拼:三种函数表达式绘图方法实测(附代码)

MATLAB绘图效率优化&#xff1a;三种函数表达式绘图方法深度评测与实战技巧 在科学计算和数据分析领域&#xff0c;MATLAB作为一款强大的数值计算工具&#xff0c;其绘图功能的质量和效率直接影响着研究工作的流畅度。对于经常需要处理函数表达式绘图的用户来说&#xff0c;选择…...

如何用GetQzonehistory轻松备份你的QQ空间历史说说

如何用GetQzonehistory轻松备份你的QQ空间历史说说 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾担心QQ空间里的珍贵回忆会因各种原因而消失&#xff1f;那些记录青春岁月的说…...

从‘黑大理石’到你的研究:VIIRS夜间灯光数据(VNP46)预处理与避坑指南

从‘黑大理石’到你的研究&#xff1a;VIIRS夜间灯光数据&#xff08;VNP46&#xff09;预处理与避坑指南 深夜打开NASA的"黑大理石"&#xff08;Black Marble&#xff09;夜间灯光数据集&#xff0c;仿佛在凝视地球的脉搏。这些来自Suomi NPP卫星VIIRS传感器的数据&…...