AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[serial-port](unix)

Martin Hope
elbarna
Asked: 2025-01-15 06:32:28 +0800 CST

Linux:串行端口极其缓慢

  • 5

我的 ttyS0 串行非常慢,几乎无法使用。

动态图

硬件是这样的

在此处输入图片描述

Slackware 15 上的内核是 5.15.161

主板是 A88XM-E/A88XM-E 带 coreboot

并且串行的设置是那些

console=ttyS1,115200 用于内核命令行,getty 115200

我也尝试过 19200,没有成功。有什么想法吗?

serial-port
  • 1 个回答
  • 34 Views
Martin Hope
gorogm
Asked: 2023-03-12 16:10:38 +0800 CST

没有 MAC 地址的 USB LTE 调制解调器?

  • 7

我正在使用时下流行的 Huawei Brovi E3372-325 LTE USB Stick 将一台 Linux 机器连接到互联网。特殊要求是传入的 ssh/ping/NTP/... 连接必须到达我的 linux 操作系统。

状态是,使用usb_modeswitch -X和option driverI 可以调出 3 个 ttyUSB 接口,并使用 连接成功wvdial。但由于某种原因,ifconfig没有列出 ppp0 接口的硬件/MAC 地址,同一 APN 网络上的设备无法 ping 我的 IP 地址。我认为原因不是 ISP 阻塞,因为我的其他设备在网络上可以 ping 通。

的输出ip addr

19: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 3
    link/ppp 
    inet 10.250.0.112 peer 10.64.64.64/24 scope global ppp0
       valid_lft forever preferred_lft forever
  1. 如果我没记错的话,我现在不使用 RNDIS。我是对的吗,一般来说,流行的 RNDIS 协议不适合我的用例,因为这会创建一个额外的本地网络,使得将传入连接转发到操作系统变得更加棘手?ping 可能从外部工作,因为它由 USB 调制解调器本身回答,但传入的 ssh 会失败。
  2. ppp0 没有 MAC 地址可能是什么原因?这怎么可能?我应该分配一个吗?这可能是其他设备无法 ping 通它的 IP 的原因吗?如何解决这种情况?
serial-port
  • 1 个回答
  • 15 Views
Martin Hope
SteMMo
Asked: 2022-12-17 06:05:10 +0800 CST

GTK 应用程序和串行端口处理程序

  • 5

我正在为嵌入式板上的 Linux 操作系统编写 GTK C 应用程序。

第一个主窗口打开一个串行(虚拟)端口,用于从条形码阅读器接收数据。我正在使用标准的 open() 函数(在我的 OpenPort() 函数中)。然后我调用 g_io_channel_new_file() 和 g_io_add_watch() 来处理 rx 信号。

我真的需要标准的 open() 调用吗?

    if (g_config.fdRfid==-1)
        g_config.fdRfid = OpenPort( g_config.portRfid, B115200);

    if (g_config.fdRfid!=-1)
    {
        ShowMainMessage();
        
        GError *error = NULL;
        g_ioChannel = g_io_channel_new_file( g_config.portRfid, "r", &error);
        if (g_ioChannel)
        {
            guint source = g_io_add_watch( g_ioChannel, G_IO_IN | G_IO_PRI, serialRfidWatcher, &g_config);
            printf("> set watch ioCh: %p - source: %d\n", g_ioChannel, source);
        }
        else 
            gtk_label_set_text( GTK_LABEL(g_labelMsg2), error->message);

当我按下一个按钮时,我打开一个对话框子窗口:在此之前,我通过 close() 函数关闭串行端口,并通过 g_io_channel_shutdown() 函数断开信号。返回的状态为 1 = G_IO_STATUS_NORMAL。

GIOStatus status = g_io_channel_shutdown( g_ioChannel, TRUE, NULL);
g_io_channel_unref(g_ioChannel);

if (g_config.fdRfid != -1) 
{
    ClosePort(&g_config.fdRfid);
}   

启动对话窗口,我再次打开相同的端口(这是一个用于测试的窗口),并以与之前相同的方式重新连接 rx 信号。
现在,如果我在调试输出中读取条形码(通过 printf),我会看到主窗口的信号处理程序和对话框中的处理程序都被调用。

关闭对话框(关闭端口和通道...)我返回到主窗口。如果我读取条形码,将触发三个处理程序,两个在主窗口上,一个在对话框上。

我怎样才能断开信号处理程序?我认为我的方法不完整..

谢谢!

serial-port
  • 1 个回答
  • 16 Views
Martin Hope
sineverba
Asked: 2022-05-07 06:06:41 +0800 CST

ubuntu 22.04 上缺少 CP210x / CC2652RB (slae.sh zigbee) 序列号

  • 2

我正在使用 Ubuntu 22.04。

我刚买了 CC2652RB USB Zigbee ( https://slae.sh/projects/cc2652/ ) 但在我的 Ubuntu 中它没有创建/dev/serial文件夹。

这是sudo lsusb -d 10c4:ea60 -v输出

Bus 001 Device 010: ID 10c4:ea60 Silicon Labs CP210x UART Bridge
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x10c4 Silicon Labs
  idProduct          0xea60 CP210x UART Bridge
  bcdDevice            1.00
  iManufacturer           1 Silicon Labs
  iProduct                2 slae.sh cc2652rb stick - slaesh's iot stuff
  iSerial                 3 00_12_4B_00_23_93_25_9F
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0020
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              2 slae.sh cc2652rb stick - slaesh's iot stuff
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
Device Status:     0x0000
  (Bus Powered)

在我看来,我认出了……好吗?

编辑

sudo dmesg

[ 8907.724914] usb 1-2: new full-speed USB device number 12 using xhci_hcd
[ 8907.876075] usb 1-2: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
[ 8907.876084] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 8907.876087] usb 1-2: Product: slae.sh cc2652rb stick - slaesh's iot stuff
[ 8907.876090] usb 1-2: Manufacturer: Silicon Labs
[ 8907.876092] usb 1-2: SerialNumber: 00_12_4B_00_23_93_25_9F
[ 8907.879007] cp210x 1-2:1.0: cp210x converter detected
[ 8907.881809] usb 1-2: cp210x converter now attached to ttyUSB0
[ 8909.071926] usb 1-2: usbfs: interface 0 claimed by cp210x while 'brltty' sets config #1
[ 8909.072514] cp210x ttyUSB0: cp210x converter now disconnected from ttyUSB0
[ 8909.072552] cp210x 1-2:1.0: device disconnected

解决了!

sudo apt-get remove --auto-remove brltty

brltty 是盲文 TTY。

usb serial-port
  • 1 个回答
  • 527 Views
Martin Hope
Ritualmaster
Asked: 2022-05-06 06:19:37 +0800 CST

焦点/20.04 上的 PPS 超时且永远无法恢复

  • 1

我们最近从 Vecow/Plugin 升级到新的工业 PC,从 18.04 升级到 Ubuntu 20.04。从 BIOS(构建日期 BIOS ~17.02.2022)和根据它的 IO 芯片是 SuperIO 8786: https ://github.com/huchanghui123/ITE-SuperIO/blob/master/IT8786E-I_B_V0.2.pdf

此端口似乎被映射为通用(ACPI/BIOS)作为兼容 16550A 的 COM 端口 PNP0501。

我们有一个 PPS 设备连接到我们可用的一个(但尝试了所有)串行/COM/RS232 端口(DCD 引脚,我们还连接了 GND)。我们附加到它ldattach pps /dev/ttyS0并希望再次与 chrony 集成。

ldttach作品,也ppstest。发生的情况是,在很短的时间(30-100 秒)之后,这似乎是相当随机的,它经常无法获取时间戳并且超时并且永远不会恢复。但是在卸载并重新连接 ldisc 之后,它会再次工作(一段时间)。

除了我们的 PPS 设备,我们还尝试了 1 Hz 的函数发生器(脉冲或占空比 50%、1ms、10ms、100 和 200 ms)。我们的设备在以前的 PC 上工作的电压电平是 0 - ~3.7V。我们将函数发生器设置为在 RS-232 范围内以 +/-3.7、5、6.6 和 10V(我们的发生器的上限)运行。问题是一样的。

顺便说一句,我们在 HWE 通用内核上(所以 5.13)。在旧 PC 上它可以工作(甚至通过 Ubuntu 20.04 直播)。我们还尝试了 Ubuntu 22.04 实时映像(内核 5.15)和 Fedora 35,但也失败了。同样在我们的第二台相同的 PC 上。

任何人都经历过类似的事情或知道如何进一步调试它?特别是要排除驱动程序错误(或任何其他硬件错误)。

谢谢!

kernel-modules serial-port
  • 1 个回答
  • 36 Views
Martin Hope
Alex028502
Asked: 2022-01-15 10:59:00 +0800 CST

有没有办法 ssh 隧道,并访问 /dev 目录中的设备,并像本地一样使用它?[复制]

  • 0
这个问题在这里已经有了答案:
我可以在 /dev 下跨主机共享设备吗? (3 个回答)
9 个月前关闭。

有没有一种方法可以让一台计算机/dev/与另一台计算机共享目录中的设备,而另一台计算机可以与其交互,如果它是本地的?类似于 SSH 隧道的东西?

例如相机,或与 arduino 的串行连接,甚至是计算机的/dev/random?

ssh serial-port
  • 2 个回答
  • 297 Views
Martin Hope
elbarna
Asked: 2021-12-06 14:21:25 +0800 CST

ISDN:如何使用串行 TA 设置两个通道?

  • 0

玩复古计算我已经成功配置了一个 isdn pci TA,设置连接我使用这样的脚本

#!/bin/sh
isdnctrl addif ippp0
isdnctrl addslave ippp0 ippp1
isdnctrl eaz ippp0 myphone
isdnctrl eaz ippp1 myphone
isdnctrl l2_prot ippp0 hdlc
isdnctrl l3_prot ippp0 trans
isdnctrl l2_prot ippp1 hdlc
isdnctrl l3_prot ippp1 trans
isdnctrl encap ippp0 syncppp
isdnctrl encap ippp1 syncppp
isdnctrl secure ippp0 on
isdnctrl secure ippp1 on
isdnctrl chargehup ippp0 off
isdnctrl addphone ippp0 out outphone
isdnctrl addphone ippp1 out outphone
isdnctrl dialmode ippp0 manual
isdnctrl dialmode ippp1 auto
isdnctrl callback ippp0 off
isdnctrl callback ippp1 off
ifconfig ippp0 -arp -broadcast 
ipppd user myuser \
 defaultroute \
 noipdefault \
 -detach \
 mru 1524 \
 -bsdcomp \
 /dev/ippp0 & sleep 1
isdnctrl dial ippp0
isdnctrl addlink ippp1

#to return to a 64Kbit i USE isdnctrl removelink ippp1

设置串行调制解调器(TA 更好)太容易了,就像使用 pppd+chat 脚本设置 56k 调制解调器我的问题是..有人知道在 Linux 上设置 128k(双通道)与串行 TA 连接的命令/字符串吗?

serial-port modem
  • 1 个回答
  • 10 Views
Martin Hope
lacek
Asked: 2021-11-29 14:04:37 +0800 CST

串行传输波特率不匹配

  • 3

我有两个串口,一个通过主板 (/dev/ttyS0) 提供,一个通过牛津芯片 (/dev/ttyS1) 从 PCIE 到 RS232 卡 (Startech 2S952) 提供(有 /dev/ttyS2 但它没有进入这个故事)。在我的情况下如何解释波特率?

[    1.111618] 00:03: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[    1.112543] 0000:08:00.0: ttyS1 at I/O 0xf010 (irq = 40, base_baud = 4000000) is a 16550A

我将逻辑分析仪连接到串行端口的 Tx/Rx 线。当我做:

stty -F /dev/ttyS0 115200
echo "ABCDEFGH" > /dev/ttyS0

然后我可以在逻辑分析仪上解码“ABCDEFGH”字符串,后跟 0x0D 0x0A,但我必须告诉它波特率为 115200。此外,当我将笔记本电脑与 USB 串行适配器(通过空调制解调器电缆)连接并读取关闭串口,只有当我将接收器设置为 115200 时,我才会得到有意义的输出。据我所知,这是应该的。

现在使用 /dev/ttyS1:

stty -F /dev/ttyS1 115200
echo "ABCDEFGH" > /dev/ttyS1

我在分析的逻辑中清楚地看到,我的消息以毫秒为单位要慢得多。事实上,它慢了大约 34.7(2) 倍,40000000/115200 = 34.7(2)。特别是,接收方膝上型计算机接收到由几个 0x00 组成的消息。当我设置为 3200 波特时,它会出现乱码。显然,该消息实际上是以 115200/34.6 = 3339.13...bps 传输的。

使用 /dev/ttyS1:

stty -F /dev/ttyS1 4000000
echo "ABCDEFGH" > /dev/ttyS1

与 /dev/ttyS1 的通信发生的位持续时间与预期的 115200 相匹配。

那么这意味着在我的情况下:

[    1.112543] 0000:08:00.0: ttyS1 at I/O 0xf010 (irq = 40, base_baud = 4000000) is a 16550A

应该解释为“4000000”是一些内部振荡器的频率,导致在现实世界中传输 115200。我希望这个值是硬件内部的,并且隐藏在驱动程序的深处。

我错过了什么?这是我第一次使用串行端口,所以我完全迷失了。

如果我将“console=ttyS1,4000000n8”作为内核参数传递,那么我可以在笔记本电脑上设置 115200 通过串行通信。

serial-port
  • 1 个回答
  • 301 Views
Martin Hope
Nargacuga
Asked: 2021-11-16 23:57:52 +0800 CST

修复了 Linux/Raspberry Pi OS 中 SPI-UART 适配器的 tty 设备分配

  • 0

我需要使用从 SC16IS752 适配器获得的串行端口。我已经从 /boot/config.txt 设置了它们,它们在 /dev 中显示为 ttySC0、ttySC1、ttySC2 和 ttySC3,它们可以工作。

问题是,每当我启动 Raspberry 时,端口的命名缺乏一致性:有时设备连接到 ttySC0,有时连接到 ttySC2。

我试图四处寻找帮助,但我找到了仅适用于 USB-UART 适配器的解决方案:它是为每个物理设备创建符号链接。我试图遵循的解决方案是这个:

如何以静态名称绑定 USB 设备?

我试图应用相同的点,但我注意到参数有几个不同,所以我被卡住了。

那么...如何为从 SPI-UART 适配器提供的串行端口创建符号链接?

先感谢您。

raspberry-pi serial-port
  • 1 个回答
  • 309 Views
Martin Hope
MountainX
Asked: 2020-02-14 22:39:30 +0800 CST

如何将 /dev/ttyUSB0 (usbserial CP210x) 映射到 wine 中的 COM 端口?

  • 2

我在 wine 中运行一个 Windows 应用程序。该应用程序只能看到 COM 端口 1-4。

我的系统有以下 USB 串行设备:

# lsmod | grep cp210x
cp210x                 36864  0

# ls /dev/ttyUSB0
crw-rw---- 1 root uucp 188, 0 Feb 14 00:42 /dev/ttyUSB0

如何将其作为 COM1 呈现给葡萄酒应用程序?

serial-port wine
  • 2 个回答
  • 9534 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve