linux 串口 数量限制,linux – 你的Unix的TTY主要数量是多少?

我目前正在开发一个串口库,它已经使用特殊的框架来获取有关系统上串行端口的信息.虽然串口是Unix中的基本设计 – 作为答案,如this one证明 – 我认为测试文件是否是串口的好方法是测试字符设备的主要模式

并检查这是否真的是一个TTY.

在互联网上爬行,我找不到任何文件谈论整个统一的TTY主要模式.好吧,只有一个Linux手册页说明ptmx具有主模式5.

虽然我已经询问了基于this Stack Overflow的tty字符设备的实现细节

问题,我想我可能会要求Unix Stack Exchange社区了解tty值在Unix版本中的稳定性.

所以,我要求你的帮助建立一个所有tty的主要模式的知识库

系统上的文件,即:主要模式是什么

>真正的串口?

>伪终端(PTS)端口?

> FTDI USB串口?

>其他USB串口?

要获取字符设备主要模式的值,您应该使用:

% stat -f " * %N: %Hr%n" /dev/tty* /dev/pts/*

* /dev/ttys001: 16

^^- major mode

或使用好老ls:

% ls -l /dev/ttys001

crw--w---- 1 tty 16, 1 Apr 30 03:25 /dev/ttys001

major mode -^^ ^^- minor mode

您可以将信息放在自己的答案中,或者通过其他信息扩展社区维基答案.

解决方法:

Unix版本7(1979):

# ls -l /dev/console /dev/tty?*

crw--w--w- 1 root 0, 0 Sep 22 06:46 /dev/console

crw-rw-r-- 1 root 0, 1 Sep 22 05:47 /dev/tty1

crw-rw-r-- 1 root 0, 2 Sep 22 05:47 /dev/tty2

(还没有pty)

Linux 3.2.0(debian wheezy).

注意:您也可以通过搜索/ dev由group tty和dialout拥有来查找这些内容.这是Debian的事情.

>虚拟控制台

> / dev / tty [0-9] *:4

>真正的串口:

> / dev / ttyS [0-9]:4

>伪终端:

> / dev / pts / [0-9]:136

> / dev / pts / ptmx:5

> FTDI USB串口:

> / dev / ttyUSB [0-9]:188

> USB串口:(AVR嵌入式USB / Arduino Uno)

> / dev / ttyACM [0-9]:166

Linux 3.4.0(Android 4.4.2 / Nexus 5)

注意:所有linux加上:

> ttyACM(单元调制解调器控制)

>(显然没有/ dev条目):166

> ttyHSL(蓝牙)

> / dev / ttyHSL0:247

> ttyHS(蓝牙)

> / dev / ttyHS99:248

达尔文13.1.0(MacOS 10.9.2):

>真正的串口:

> / dev / ttys [0-9a-f]:4

>伪终端:

> / dev / ttys [0-9] {3}:16

> FTDI USB串口:

> /dev/tty.usbserial.*:18

> USB串口:(AVR嵌入式USB / Arduino Uno)

> /dev/tty.usbmodem.*:18

Solaris 10 x86 / amd64:

>伪终端:

> / dev / pty [p-r] [0-9a-f](pty master):25

> / dev / tty [p-r] [0-9a-f](pty slave):26

> / dev / pts / [0-9]:24

> / dev / ptmx:23

>串口设备:

> / dev / tty [abc …] aka / dev / term / [abc …]或/ dev / tty0 [012 ..](uart serial,also):106

>也作为/ dev / ttyd [012 …],但是不同的接口(拨号,调制解调器)也在106但高的未成年人.

OpenBSD 6.0

如/ dev / MAKEDEV中的注释所述

> PC / AT UART串口:

> / dev / tty [0-7] [0-9a-f]:8

> / dev / cua [0-7] [0-9a-f]:8

> Cyclades串口:

> / dev / ttyc *:38

> / dev / cuac *:38

> Virtio串口:

> / dev / ttyVI *:94

> USB串口:

> / dev / ttyU [0-3]:66

> / dev / cuaU [0-3]:66

> wscons终端:

> / dev / tty [C-J] [0-b]:12

>伪终端主站和从站(非UNIX 98)

> / dev / pty [p-zP-T] [0-9a-zA-Z]:6

> / dev / tty [p-zP-T] [0-9a-zA-Z]:5

FreeBSD 10.0和TrueOS

FreeBSD(及其衍生产品,如TrueOS)是您的想法显示致命缺陷的地方. FreeBSD中没有主要的次要设备编号方案.

传统上安装在/ dev的FreeBSD上的devfs伪文件系统根本不使用主要的次要系统将设备分组为“主要”类.相反,设备的rdev与伪文件系统中的i-node编号相同,i-nodes在生成设备节点时按升序简单分配,具体取决于当时手头机器上的确切硬件.

因此设备号不能用作isatty()的快捷方式.

标签:bsd,linux,solaris,serial-port,tty

来源: https://codeday.me/bug/20190810/1637100.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值