Re: Device to write to all (serial) consoles
From: Adam Borowski <hidden>
Date: 2019-08-03 15:16:17
Also in:
lkml
On Sat, Aug 03, 2019 at 03:55:37PM +0200, Greg Kroah-Hartman wrote:
On Sat, Aug 03, 2019 at 03:23:23PM +0200, Adam Borowski wrote:quoted
On Fri, Aug 02, 2019 at 09:59:06PM +0200, Paul Menzel wrote:quoted
Because the cable is always connected to the port on the back side, and sometimes the port in the front has ID 0, and the one in the back 1, and other times vice versa. We do not want to track that, and it would be convenient to just write to both ports.Sounds like an XY problem then: what you want is not writing to all ports, but to have the port assignments stable (see also: disk device reordering).You can get that information from the symlinks in /dev/serial/ which udev creates.
Doesn't seem to work for me, for any ttyS0 ttyS1 ttySAC1 device: Box one, PCIe card + one USB dongle: 07:00.0 Serial controller: MosChip Semiconductor Technology Ltd. MCS9922 PCIe Multi-I/O Controller 07:00.1 Serial controller: MosChip Semiconductor Technology Ltd. MCS9922 PCIe Multi-I/O Controller Bus 003 Device 004: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 /dev/serial/by-path/pci-0000:0b:00.3-usb-0:4:1.0-port0 Only ttyUSB0 is there. Box two, on-board + one USB dongle: [ 3.404340] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled [ 3.431287] 00:01: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A Bus 001 Device 002: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP2102/CP2109 UART Bridge Controller [CP210x family] /dev/serial/by-id/usb-Silicon_Labs_CP2104_USB_to_UART_Bridge_Controller_00DB1604-if00-port0 /dev/serial/by-path/pci-0000:00:14.0-usb-0:1:1.0-port0 Box three: RockPro64, euler + USB dongle, kernel 4.4. Box four: Pine64, euler. Box five: Odroid-U2, something GPIOish (ttySAC1), kernel 5.0. Most are running kernel 5.2, Debian unstable. And indeed, in /lib/udev/rules.d/60-serial.rules : # /dev/serial/by-path/, /dev/serial/by-id/ for USB devices KERNEL!="ttyUSB[0-9]*|ttyACM[0-9]*", GOTO="serial_end" Like me, Paul is using ttyS0 for server-side. Meow! -- ⢀⣴⠾⠻⢶⣦⠀ ⣾⠁⢰⠒⠀⣿⡁ 10 people enter a bar: 1 who understands binary, ⢿⡄⠘⠷⠚⠋⠀ 1 who doesn't, D who prefer to write it as hex, ⠈⠳⣄⠀⠀⠀⠀ and 1 who narrowly avoided an off-by-one error.