Re: Device to write to all (serial) consoles

2019-08-08 Thread Enrico Weigelt, metux IT consult

On 02.08.19 15:23, Paul Menzel wrote:


Does a device exist, or can a device be configured so you can write to
all (serial) consoles from user space?


Why not just writing a little program that listens on a pipe or a pty
and writes out everything to all the tty's you want ?


--mtx

--
Enrico Weigelt, metux IT consult
Free software and Linux embedded engineering
i...@metux.net -- +49-151-27565287


Re: Device to write to all (serial) consoles

2019-08-03 Thread Adam Borowski
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:
> > On Fri, Aug 02, 2019 at 09:59:06PM +0200, Paul Menzel wrote:
> > > 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-: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-: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.


Re: Device to write to all (serial) consoles

2019-08-03 Thread Greg Kroah-Hartman
On Sat, Aug 03, 2019 at 03:23:23PM +0200, Adam Borowski wrote:
> On Fri, Aug 02, 2019 at 09:59:06PM +0200, Paul Menzel wrote:
> > On 02.08.19 18:02, Greg Kroah-Hartman wrote:
> > > On Fri, Aug 02, 2019 at 03:23:08PM +0200, Paul Menzel wrote:
> > > > On a lot of devices, like servers, you have more than one serial 
> > > > console,
> > > > and you do not always know, how they are numbered. Therefore, we start a
> > > > console on ttyS0 and ttyS1.
> > 
> > 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.



Re: Device to write to all (serial) consoles

2019-08-03 Thread Adam Borowski
On Fri, Aug 02, 2019 at 09:59:06PM +0200, Paul Menzel wrote:
> On 02.08.19 18:02, Greg Kroah-Hartman wrote:
> > On Fri, Aug 02, 2019 at 03:23:08PM +0200, Paul Menzel wrote:
> > > On a lot of devices, like servers, you have more than one serial console,
> > > and you do not always know, how they are numbered. Therefore, we start a
> > > console on ttyS0 and ttyS1.
> 
> 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).


Meow!
-- 
⢀⣴⠾⠻⢶⣦⠀ Latin:   meow 4 characters, 4 columns,  4 bytes
⣾⠁⢠⠒⠀⣿⡁ Greek:   μεου 4 characters, 4 columns,  8 bytes
⢿⡄⠘⠷⠚⠋  Runes:   ᛗᛖᛟᚹ 4 characters, 4 columns, 12 bytes
⠈⠳⣄ Chinese: 喵   1 character,  2 columns,  3 bytes <-- best!


Re: Device to write to all (serial) consoles

2019-08-03 Thread Greg Kroah-Hartman
On Fri, Aug 02, 2019 at 09:59:06PM +0200, Paul Menzel wrote:
> Dear Greg,
> 
> 
> On 02.08.19 18:02, Greg Kroah-Hartman wrote:
> > On Fri, Aug 02, 2019 at 03:23:08PM +0200, Paul Menzel wrote:
> 
> > > On a lot of devices, like servers, you have more than one serial console,
> > > and you do not always know, how they are numbered. Therefore, we start a
> > > console on ttyS0 and ttyS1.
> > > 
> > > In user space, we also would like to write to both consoles to not worry
> > > about the numbering. Writing to `/dev/console` only write to the active
> > > console.
> > 
> > So the same data to multiple console devices with just one userspace
> > call?  Why?
> 
> 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.
> 
> > >  $ more /proc/consoles # I think
> > >  tty0 -WU (EC p  )4:1
> > >  ttyS0-W- (E  p a)4:65
> > >  ttyS1-W- (E  p a)4:65
> > > 
> > > Does a device exist, or can a device be configured so you can write to
> > > all (serial) consoles from user space?
> > 
> > With one syscall, not that I know of, sorry.
> 
> Can such a device be created with udev or so?

No, a single device node can not reference multiple device nodes at the
same time, sorry.  That's just not how they work at all.

thanks,

greg k-h


Re: Device to write to all (serial) consoles

2019-08-02 Thread Paul Menzel

Dear Greg,


On 02.08.19 18:02, Greg Kroah-Hartman wrote:

On Fri, Aug 02, 2019 at 03:23:08PM +0200, Paul Menzel wrote:



On a lot of devices, like servers, you have more than one serial console,
and you do not always know, how they are numbered. Therefore, we start a
console on ttyS0 and ttyS1.

In user space, we also would like to write to both consoles to not worry
about the numbering. Writing to `/dev/console` only write to the active
console.


So the same data to multiple console devices with just one userspace
call?  Why?


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.



 $ more /proc/consoles # I think
 tty0 -WU (EC p  )4:1
 ttyS0-W- (E  p a)4:65
 ttyS1-W- (E  p a)4:65

Does a device exist, or can a device be configured so you can write to
all (serial) consoles from user space?


With one syscall, not that I know of, sorry.


Can such a device be created with udev or so?


Kind regards,

Paul


Re: Device to write to all (serial) consoles

2019-08-02 Thread Greg Kroah-Hartman
On Fri, Aug 02, 2019 at 03:23:08PM +0200, Paul Menzel wrote:
> Dear Linux folks,
> 
> 
> On a lot of devices, like servers, you have more than one serial console,
> and you do not always know, how they are numbered. Therefore, we start a
> console on ttyS0 and ttyS1.
> 
> In user space, we also would like to write to both consoles to not worry
> about the numbering. Writing to `/dev/console` only write to the active
> console.

So the same data to multiple console devices with just one userspace
call?  Why?

> $ more /proc/consoles # I think
> tty0 -WU (EC p  )4:1
> ttyS0-W- (E  p a)4:65
> ttyS1-W- (E  p a)4:65
> 
> Does a device exist, or can a device be configured so you can write to
> all (serial) consoles from user space?

With one syscall, not that I know of, sorry.

greg k-h


Device to write to all (serial) consoles

2019-08-02 Thread Paul Menzel
Dear Linux folks,


On a lot of devices, like servers, you have more than one serial console,
and you do not always know, how they are numbered. Therefore, we start a
console on ttyS0 and ttyS1.

In user space, we also would like to write to both consoles to not worry
about the numbering. Writing to `/dev/console` only write to the active
console.

$ more /proc/consoles # I think
tty0 -WU (EC p  )4:1
ttyS0-W- (E  p a)4:65
ttyS1-W- (E  p a)4:65

Does a device exist, or can a device be configured so you can write to
all (serial) consoles from user space?


Kind regards,

Paul



smime.p7s
Description: S/MIME Cryptographic Signature