2018-12-06 13:08:24 |
Dmitrii Shcherbakov |
bug |
|
|
added bug |
2018-12-06 13:19:31 |
Dmitrii Shcherbakov |
description |
I ran into a problem with the console argument handling on a physical system with a BMC (Dell R610) and also reproduced the same behavior on a QEMU/KVM VM with multiple serial ports.
The kernel documentation notes that the last entry will
https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-tty
"What: /sys/class/tty/console/active
Shows the list of currently configured console devices, like 'tty1 ttyS0'. The last entry in the file is the active device connected to /dev/console.
The file supports poll() to detect virtual console switches."
https://elixir.bootlin.com/linux/v4.15.18/source/kernel/printk/printk.c#L1960
"The last preferred console added will be used for kernel messages and stdin/out/err for init."
The actual behavior is different and the console specified in the last console argument does not become an active one. As a result, SOL functionality is not possible to use unless only one ttyS<n> argument is specified in the kernel command line arguments. Setting the arguments to only contain the right one results in a proper behavior and I can see rx counters increasing in /proc/tty/driver/serial for the relevant port after I type something via the BMC.
$ cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-4.15.0-42-generic root=UUID=580a3c58-1040-4c7d-b94f-93230874caf5 ro console=tty0 console=ttyS0,115200 console=ttyS1,115200
journalctl -k | grep ttyS
Dec 03 21:42:41 ubuntu kernel: Command line: BOOT_IMAGE=/vmlinuz-4.15.0-42-generic root=UUID=580a3c58-1040-4c7d-b94f-93230874caf5 ro console=tty0 console=ttyS0,115200 console=ttyS1,115200
Dec 03 21:42:41 ubuntu kernel: Kernel command line: BOOT_IMAGE=/vmlinuz-4.15.0-42-generic root=UUID=580a3c58-1040-4c7d-b94f-93230874caf5 ro console=tty0 console=ttyS0,115200 console=ttyS1,115200
Dec 03 21:42:41 ubuntu kernel: console [ttyS0] enabled
Dec 03 21:42:41 ubuntu kernel: 00:02: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
Dec 03 21:42:41 ubuntu kernel: 00:03: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A
Dec 03 21:42:41 ubuntu kernel: tty ttyS3: hash matches
Full dmesg: http://paste.ubuntu.com/p/bV2pDc4Hdw/
$ cat /sys/class/tty/console/active
ttyS0 tty0
$ sudo cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A port:000003F8 irq:4 tx:78 rx:0 RTS|DTR
1: uart:16550A port:000002F8 irq:3 tx:0 rx:0 CTS|DSR|CD
2: uart:unknown port:000003E8 irq:4
3: uart:unknown port:000002E8 irq:3
# ...
~~~
GRUB setttings:
# the ones that override /etc/default/grub
$ cat /etc/default/grub.d/50-curtin-settings.cfg
cat: cat: No such file or directory
GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200 console=ttyS1,115200"
# disable grub os prober that might find other OS installs.
GRUB_DISABLE_OS_PROBER=true
GRUB_TERMINAL=console
/etc/default/grub: https://paste.ubuntu.com/p/sdWQrY7JwN/
# grub.cfg: http://paste.ubuntu.com/p/zKGTqDh6sR/
# two entries, both with the proper arg and properly sent to the kernel cmdline based on /proc/cmdline
grep ttyS grub.cfg
linux /vmlinuz-4.15.0-42-generic root=UUID=580a3c58-1040-4c7d-b94f-93230874caf5 ro console=tty0 console=ttyS0,115200 console=ttyS1,115200
linux /vmlinuz-4.15.0-42-generic root=UUID=580a3c58-1040-4c7d-b94f-93230874caf5 ro console=tty0 console=ttyS0,115200 console=ttyS1,115200
~~~
I managed to reproduce the exact same behavior on a VM with multiple 8250 serial ports.
ubuntu@maas-vhost5:~$ cat /sys/class/tty/console/active
ttyS0
ubuntu@maas-vhost5:~$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS0,115200 console=ttyS2,115200 console=ttyS1,115200
ubuntu@maas-vhost5:~$ grep -RP ttyS /boot/grub/grub.cfg
linux /boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS0,115200 console=ttyS2,115200 console=ttyS1,115200
linux /boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS0,115200 console=ttyS2,115200 console=ttyS1,115200
linux /boot/vmlinuz-4.15.0-39-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS0,115200 console=ttyS2,115200 console=ttyS1,115200
# changed to the following config with only ttyS1 present:
ubuntu@maas-vhost5:~$ grep -RP ttyS /boot/grub/grub.cfg
linux /boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS1,115200
linux /boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS1,115200
linux /boot/vmlinuz-4.15.0-39-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS1,115200
# 1 tty passed only
ubuntu@maas-vhost5:~$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS1,115200
# now it's shown as active
ubuntu@maas-vhost5:~$ cat /sys/class/tty/console/active
ttyS1
ubuntu@maas-vhost5:~$ sudo cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A port:000003F8 irq:4 tx:0 rx:0 CTS|DSR|CD
1: uart:16550A port:000002F8 irq:3 tx:14763 rx:0 RTS|CTS|DTR|DSR|CD
2: uart:16550A port:000003E8 irq:4 tx:0 rx:0 CTS|DSR|CD
~~~~
Relevant code:
https://elixir.bootlin.com/linux/v4.15.18/source/kernel/printk/printk.c#L2379
https://elixir.bootlin.com/linux/v4.15.18/source/kernel/printk/printk.c#L1916
https://elixir.bootlin.com/linux/v4.15.18/source/kernel/printk/printk.c#L1961
https://elixir.bootlin.com/linux/v4.15.18/source/kernel/printk/printk.c#L1886 |
I ran into a problem with the console argument handling on a physical system with a BMC (Dell R610) and also reproduced the same behavior on a QEMU/KVM VM with multiple serial ports.
The kernel documentation notes that the last entry will be used for /dev/console
https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-tty
"What: /sys/class/tty/console/active
Shows the list of currently configured console devices, like 'tty1 ttyS0'. The last entry in the file is the active device connected to /dev/console.
The file supports poll() to detect virtual console switches."
https://elixir.bootlin.com/linux/v4.15.18/source/kernel/printk/printk.c#L1960
"The last preferred console added will be used for kernel messages and stdin/out/err for init."
The actual behavior is different and the console specified in the last console argument does not become an active one. As a result, SOL functionality is not possible to use unless only one ttyS<n> argument is specified in the kernel command line arguments. Setting the arguments to only contain the right one results in a proper behavior and I can see rx counters increasing in /proc/tty/driver/serial for the relevant port after I type something via the BMC.
$ cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-4.15.0-42-generic root=UUID=580a3c58-1040-4c7d-b94f-93230874caf5 ro console=tty0 console=ttyS0,115200 console=ttyS1,115200
journalctl -k | grep ttyS
Dec 03 21:42:41 ubuntu kernel: Command line: BOOT_IMAGE=/vmlinuz-4.15.0-42-generic root=UUID=580a3c58-1040-4c7d-b94f-93230874caf5 ro console=tty0 console=ttyS0,115200 console=ttyS1,115200
Dec 03 21:42:41 ubuntu kernel: Kernel command line: BOOT_IMAGE=/vmlinuz-4.15.0-42-generic root=UUID=580a3c58-1040-4c7d-b94f-93230874caf5 ro console=tty0 console=ttyS0,115200 console=ttyS1,115200
Dec 03 21:42:41 ubuntu kernel: console [ttyS0] enabled
Dec 03 21:42:41 ubuntu kernel: 00:02: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
Dec 03 21:42:41 ubuntu kernel: 00:03: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A
Dec 03 21:42:41 ubuntu kernel: tty ttyS3: hash matches
Full dmesg: http://paste.ubuntu.com/p/bV2pDc4Hdw/
$ cat /sys/class/tty/console/active
ttyS0 tty0
$ sudo cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A port:000003F8 irq:4 tx:78 rx:0 RTS|DTR
1: uart:16550A port:000002F8 irq:3 tx:0 rx:0 CTS|DSR|CD
2: uart:unknown port:000003E8 irq:4
3: uart:unknown port:000002E8 irq:3
# ...
~~~
GRUB setttings:
# the ones that override /etc/default/grub
$ cat /etc/default/grub.d/50-curtin-settings.cfg
cat: cat: No such file or directory
GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200 console=ttyS1,115200"
# disable grub os prober that might find other OS installs.
GRUB_DISABLE_OS_PROBER=true
GRUB_TERMINAL=console
/etc/default/grub: https://paste.ubuntu.com/p/sdWQrY7JwN/
# grub.cfg: http://paste.ubuntu.com/p/zKGTqDh6sR/
# two entries, both with the proper arg and properly sent to the kernel cmdline based on /proc/cmdline
grep ttyS grub.cfg
linux /vmlinuz-4.15.0-42-generic root=UUID=580a3c58-1040-4c7d-b94f-93230874caf5 ro console=tty0 console=ttyS0,115200 console=ttyS1,115200
linux /vmlinuz-4.15.0-42-generic root=UUID=580a3c58-1040-4c7d-b94f-93230874caf5 ro console=tty0 console=ttyS0,115200 console=ttyS1,115200
~~~
I managed to reproduce the exact same behavior on a VM with multiple 8250 serial ports.
ubuntu@maas-vhost5:~$ cat /sys/class/tty/console/active
ttyS0
ubuntu@maas-vhost5:~$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS0,115200 console=ttyS2,115200 console=ttyS1,115200
ubuntu@maas-vhost5:~$ grep -RP ttyS /boot/grub/grub.cfg
linux /boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS0,115200 console=ttyS2,115200 console=ttyS1,115200
linux /boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS0,115200 console=ttyS2,115200 console=ttyS1,115200
linux /boot/vmlinuz-4.15.0-39-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS0,115200 console=ttyS2,115200 console=ttyS1,115200
# changed to the following config with only ttyS1 present:
ubuntu@maas-vhost5:~$ grep -RP ttyS /boot/grub/grub.cfg
linux /boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS1,115200
linux /boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS1,115200
linux /boot/vmlinuz-4.15.0-39-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS1,115200
# 1 tty passed only
ubuntu@maas-vhost5:~$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS1,115200
# now it's shown as active
ubuntu@maas-vhost5:~$ cat /sys/class/tty/console/active
ttyS1
ubuntu@maas-vhost5:~$ sudo cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A port:000003F8 irq:4 tx:0 rx:0 CTS|DSR|CD
1: uart:16550A port:000002F8 irq:3 tx:14763 rx:0 RTS|CTS|DTR|DSR|CD
2: uart:16550A port:000003E8 irq:4 tx:0 rx:0 CTS|DSR|CD
~~~~
Relevant code:
https://elixir.bootlin.com/linux/v4.15.18/source/kernel/printk/printk.c#L2379
https://elixir.bootlin.com/linux/v4.15.18/source/kernel/printk/printk.c#L1916
https://elixir.bootlin.com/linux/v4.15.18/source/kernel/printk/printk.c#L1961
https://elixir.bootlin.com/linux/v4.15.18/source/kernel/printk/printk.c#L1886 |
|
2018-12-06 13:30:06 |
Ubuntu Kernel Bot |
linux (Ubuntu): status |
New |
Incomplete |
|
2018-12-06 13:30:07 |
Ubuntu Kernel Bot |
tags |
cpe-onsite |
bionic cpe-onsite |
|
2018-12-06 14:45:23 |
Dmitrii Shcherbakov |
tags |
bionic cpe-onsite |
apport-collected bionic cpe-onsite uec-images |
|
2018-12-06 14:45:24 |
Dmitrii Shcherbakov |
description |
I ran into a problem with the console argument handling on a physical system with a BMC (Dell R610) and also reproduced the same behavior on a QEMU/KVM VM with multiple serial ports.
The kernel documentation notes that the last entry will be used for /dev/console
https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-tty
"What: /sys/class/tty/console/active
Shows the list of currently configured console devices, like 'tty1 ttyS0'. The last entry in the file is the active device connected to /dev/console.
The file supports poll() to detect virtual console switches."
https://elixir.bootlin.com/linux/v4.15.18/source/kernel/printk/printk.c#L1960
"The last preferred console added will be used for kernel messages and stdin/out/err for init."
The actual behavior is different and the console specified in the last console argument does not become an active one. As a result, SOL functionality is not possible to use unless only one ttyS<n> argument is specified in the kernel command line arguments. Setting the arguments to only contain the right one results in a proper behavior and I can see rx counters increasing in /proc/tty/driver/serial for the relevant port after I type something via the BMC.
$ cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-4.15.0-42-generic root=UUID=580a3c58-1040-4c7d-b94f-93230874caf5 ro console=tty0 console=ttyS0,115200 console=ttyS1,115200
journalctl -k | grep ttyS
Dec 03 21:42:41 ubuntu kernel: Command line: BOOT_IMAGE=/vmlinuz-4.15.0-42-generic root=UUID=580a3c58-1040-4c7d-b94f-93230874caf5 ro console=tty0 console=ttyS0,115200 console=ttyS1,115200
Dec 03 21:42:41 ubuntu kernel: Kernel command line: BOOT_IMAGE=/vmlinuz-4.15.0-42-generic root=UUID=580a3c58-1040-4c7d-b94f-93230874caf5 ro console=tty0 console=ttyS0,115200 console=ttyS1,115200
Dec 03 21:42:41 ubuntu kernel: console [ttyS0] enabled
Dec 03 21:42:41 ubuntu kernel: 00:02: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
Dec 03 21:42:41 ubuntu kernel: 00:03: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A
Dec 03 21:42:41 ubuntu kernel: tty ttyS3: hash matches
Full dmesg: http://paste.ubuntu.com/p/bV2pDc4Hdw/
$ cat /sys/class/tty/console/active
ttyS0 tty0
$ sudo cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A port:000003F8 irq:4 tx:78 rx:0 RTS|DTR
1: uart:16550A port:000002F8 irq:3 tx:0 rx:0 CTS|DSR|CD
2: uart:unknown port:000003E8 irq:4
3: uart:unknown port:000002E8 irq:3
# ...
~~~
GRUB setttings:
# the ones that override /etc/default/grub
$ cat /etc/default/grub.d/50-curtin-settings.cfg
cat: cat: No such file or directory
GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200 console=ttyS1,115200"
# disable grub os prober that might find other OS installs.
GRUB_DISABLE_OS_PROBER=true
GRUB_TERMINAL=console
/etc/default/grub: https://paste.ubuntu.com/p/sdWQrY7JwN/
# grub.cfg: http://paste.ubuntu.com/p/zKGTqDh6sR/
# two entries, both with the proper arg and properly sent to the kernel cmdline based on /proc/cmdline
grep ttyS grub.cfg
linux /vmlinuz-4.15.0-42-generic root=UUID=580a3c58-1040-4c7d-b94f-93230874caf5 ro console=tty0 console=ttyS0,115200 console=ttyS1,115200
linux /vmlinuz-4.15.0-42-generic root=UUID=580a3c58-1040-4c7d-b94f-93230874caf5 ro console=tty0 console=ttyS0,115200 console=ttyS1,115200
~~~
I managed to reproduce the exact same behavior on a VM with multiple 8250 serial ports.
ubuntu@maas-vhost5:~$ cat /sys/class/tty/console/active
ttyS0
ubuntu@maas-vhost5:~$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS0,115200 console=ttyS2,115200 console=ttyS1,115200
ubuntu@maas-vhost5:~$ grep -RP ttyS /boot/grub/grub.cfg
linux /boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS0,115200 console=ttyS2,115200 console=ttyS1,115200
linux /boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS0,115200 console=ttyS2,115200 console=ttyS1,115200
linux /boot/vmlinuz-4.15.0-39-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS0,115200 console=ttyS2,115200 console=ttyS1,115200
# changed to the following config with only ttyS1 present:
ubuntu@maas-vhost5:~$ grep -RP ttyS /boot/grub/grub.cfg
linux /boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS1,115200
linux /boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS1,115200
linux /boot/vmlinuz-4.15.0-39-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS1,115200
# 1 tty passed only
ubuntu@maas-vhost5:~$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS1,115200
# now it's shown as active
ubuntu@maas-vhost5:~$ cat /sys/class/tty/console/active
ttyS1
ubuntu@maas-vhost5:~$ sudo cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A port:000003F8 irq:4 tx:0 rx:0 CTS|DSR|CD
1: uart:16550A port:000002F8 irq:3 tx:14763 rx:0 RTS|CTS|DTR|DSR|CD
2: uart:16550A port:000003E8 irq:4 tx:0 rx:0 CTS|DSR|CD
~~~~
Relevant code:
https://elixir.bootlin.com/linux/v4.15.18/source/kernel/printk/printk.c#L2379
https://elixir.bootlin.com/linux/v4.15.18/source/kernel/printk/printk.c#L1916
https://elixir.bootlin.com/linux/v4.15.18/source/kernel/printk/printk.c#L1961
https://elixir.bootlin.com/linux/v4.15.18/source/kernel/printk/printk.c#L1886 |
I ran into a problem with the console argument handling on a physical system with a BMC (Dell R610) and also reproduced the same behavior on a QEMU/KVM VM with multiple serial ports.
The kernel documentation notes that the last entry will be used for /dev/console
https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-tty
"What: /sys/class/tty/console/active
Shows the list of currently configured console devices, like 'tty1 ttyS0'. The last entry in the file is the active device connected to /dev/console.
The file supports poll() to detect virtual console switches."
https://elixir.bootlin.com/linux/v4.15.18/source/kernel/printk/printk.c#L1960
"The last preferred console added will be used for kernel messages and stdin/out/err for init."
The actual behavior is different and the console specified in the last console argument does not become an active one. As a result, SOL functionality is not possible to use unless only one ttyS<n> argument is specified in the kernel command line arguments. Setting the arguments to only contain the right one results in a proper behavior and I can see rx counters increasing in /proc/tty/driver/serial for the relevant port after I type something via the BMC.
$ cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-4.15.0-42-generic root=UUID=580a3c58-1040-4c7d-b94f-93230874caf5 ro console=tty0 console=ttyS0,115200 console=ttyS1,115200
journalctl -k | grep ttyS
Dec 03 21:42:41 ubuntu kernel: Command line: BOOT_IMAGE=/vmlinuz-4.15.0-42-generic root=UUID=580a3c58-1040-4c7d-b94f-93230874caf5 ro console=tty0 console=ttyS0,115200 console=ttyS1,115200
Dec 03 21:42:41 ubuntu kernel: Kernel command line: BOOT_IMAGE=/vmlinuz-4.15.0-42-generic root=UUID=580a3c58-1040-4c7d-b94f-93230874caf5 ro console=tty0 console=ttyS0,115200 console=ttyS1,115200
Dec 03 21:42:41 ubuntu kernel: console [ttyS0] enabled
Dec 03 21:42:41 ubuntu kernel: 00:02: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
Dec 03 21:42:41 ubuntu kernel: 00:03: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A
Dec 03 21:42:41 ubuntu kernel: tty ttyS3: hash matches
Full dmesg: http://paste.ubuntu.com/p/bV2pDc4Hdw/
$ cat /sys/class/tty/console/active
ttyS0 tty0
$ sudo cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A port:000003F8 irq:4 tx:78 rx:0 RTS|DTR
1: uart:16550A port:000002F8 irq:3 tx:0 rx:0 CTS|DSR|CD
2: uart:unknown port:000003E8 irq:4
3: uart:unknown port:000002E8 irq:3
# ...
~~~
GRUB setttings:
# the ones that override /etc/default/grub
$ cat /etc/default/grub.d/50-curtin-settings.cfg
cat: cat: No such file or directory
GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200 console=ttyS1,115200"
# disable grub os prober that might find other OS installs.
GRUB_DISABLE_OS_PROBER=true
GRUB_TERMINAL=console
/etc/default/grub: https://paste.ubuntu.com/p/sdWQrY7JwN/
# grub.cfg: http://paste.ubuntu.com/p/zKGTqDh6sR/
# two entries, both with the proper arg and properly sent to the kernel cmdline based on /proc/cmdline
grep ttyS grub.cfg
linux /vmlinuz-4.15.0-42-generic root=UUID=580a3c58-1040-4c7d-b94f-93230874caf5 ro console=tty0 console=ttyS0,115200 console=ttyS1,115200
linux /vmlinuz-4.15.0-42-generic root=UUID=580a3c58-1040-4c7d-b94f-93230874caf5 ro console=tty0 console=ttyS0,115200 console=ttyS1,115200
~~~
I managed to reproduce the exact same behavior on a VM with multiple 8250 serial ports.
ubuntu@maas-vhost5:~$ cat /sys/class/tty/console/active
ttyS0
ubuntu@maas-vhost5:~$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS0,115200 console=ttyS2,115200 console=ttyS1,115200
ubuntu@maas-vhost5:~$ grep -RP ttyS /boot/grub/grub.cfg
linux /boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS0,115200 console=ttyS2,115200 console=ttyS1,115200
linux /boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS0,115200 console=ttyS2,115200 console=ttyS1,115200
linux /boot/vmlinuz-4.15.0-39-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS0,115200 console=ttyS2,115200 console=ttyS1,115200
# changed to the following config with only ttyS1 present:
ubuntu@maas-vhost5:~$ grep -RP ttyS /boot/grub/grub.cfg
linux /boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS1,115200
linux /boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS1,115200
linux /boot/vmlinuz-4.15.0-39-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS1,115200
# 1 tty passed only
ubuntu@maas-vhost5:~$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS1,115200
# now it's shown as active
ubuntu@maas-vhost5:~$ cat /sys/class/tty/console/active
ttyS1
ubuntu@maas-vhost5:~$ sudo cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A port:000003F8 irq:4 tx:0 rx:0 CTS|DSR|CD
1: uart:16550A port:000002F8 irq:3 tx:14763 rx:0 RTS|CTS|DTR|DSR|CD
2: uart:16550A port:000003E8 irq:4 tx:0 rx:0 CTS|DSR|CD
~~~~
Relevant code:
https://elixir.bootlin.com/linux/v4.15.18/source/kernel/printk/printk.c#L2379
https://elixir.bootlin.com/linux/v4.15.18/source/kernel/printk/printk.c#L1916
https://elixir.bootlin.com/linux/v4.15.18/source/kernel/printk/printk.c#L1961
https://elixir.bootlin.com/linux/v4.15.18/source/kernel/printk/printk.c#L1886
---
ProblemType: Bug
AlsaDevices:
total 0
crw-rw---- 1 root audio 116, 1 Dec 6 14:38 seq
crw-rw---- 1 root audio 116, 33 Dec 6 14:38 timer
AplayDevices: Error: [Errno 2] No such file or directory: 'aplay': 'aplay'
ApportVersion: 2.20.9-0ubuntu7.5
Architecture: amd64
ArecordDevices: Error: [Errno 2] No such file or directory: 'arecord': 'arecord'
AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/seq', '/dev/snd/timer'] failed with exit code 1:
DistroRelease: Ubuntu 18.04
IwConfig: Error: [Errno 2] No such file or directory: 'iwconfig': 'iwconfig'
Lsusb:
Bus 001 Device 002: ID 0627:0001 Adomax Technology Co., Ltd
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
MachineType: QEMU Standard PC (Q35 + ICH9, 2009)
Package: linux (not installed)
PciMultimedia:
ProcFB: 0 qxldrmfb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.15.0-42-generic root=UUID=a60217c2-6752-4c69-afb9-55f86a2b6c1d ro console=ttyS0,115200 console=ttyS1,115200
ProcVersionSignature: User Name 4.15.0-42.45-generic 4.15.18
RelatedPackageVersions:
linux-restricted-modules-4.15.0-42-generic N/A
linux-backports-modules-4.15.0-42-generic N/A
linux-firmware 1.173.2
RfKill: Error: [Errno 2] No such file or directory: 'rfkill': 'rfkill'
Tags: bionic uec-images
Uname: Linux 4.15.0-42-generic x86_64
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups: adm audio cdrom dialout dip floppy lxd netdev plugdev sudo video
_MarkForUpload: True
dmi.bios.date: 04/01/2014
dmi.bios.vendor: SeaBIOS
dmi.bios.version: 1.10.2-1ubuntu1
dmi.chassis.type: 1
dmi.chassis.vendor: QEMU
dmi.chassis.version: pc-q35-2.11
dmi.modalias: dmi:bvnSeaBIOS:bvr1.10.2-1ubuntu1:bd04/01/2014:svnQEMU:pnStandardPC(Q35+ICH9,2009):pvrpc-q35-2.11:cvnQEMU:ct1:cvrpc-q35-2.11:
dmi.product.name: Standard PC (Q35 + ICH9, 2009)
dmi.product.version: pc-q35-2.11
dmi.sys.vendor: QEMU |
|
2018-12-06 14:45:25 |
Dmitrii Shcherbakov |
attachment added |
|
CRDA.txt https://bugs.launchpad.net/bugs/1807140/+attachment/5219754/+files/CRDA.txt |
|
2018-12-06 14:45:27 |
Dmitrii Shcherbakov |
attachment added |
|
CurrentDmesg.txt https://bugs.launchpad.net/bugs/1807140/+attachment/5219755/+files/CurrentDmesg.txt |
|
2018-12-06 14:45:28 |
Dmitrii Shcherbakov |
attachment added |
|
Lspci.txt https://bugs.launchpad.net/bugs/1807140/+attachment/5219756/+files/Lspci.txt |
|
2018-12-06 14:45:29 |
Dmitrii Shcherbakov |
attachment added |
|
ProcCpuinfo.txt https://bugs.launchpad.net/bugs/1807140/+attachment/5219757/+files/ProcCpuinfo.txt |
|
2018-12-06 14:45:31 |
Dmitrii Shcherbakov |
attachment added |
|
ProcCpuinfoMinimal.txt https://bugs.launchpad.net/bugs/1807140/+attachment/5219758/+files/ProcCpuinfoMinimal.txt |
|
2018-12-06 14:45:32 |
Dmitrii Shcherbakov |
attachment added |
|
ProcEnviron.txt https://bugs.launchpad.net/bugs/1807140/+attachment/5219759/+files/ProcEnviron.txt |
|
2018-12-06 14:45:32 |
Dmitrii Shcherbakov |
attachment added |
|
ProcInterrupts.txt https://bugs.launchpad.net/bugs/1807140/+attachment/5219760/+files/ProcInterrupts.txt |
|
2018-12-06 14:45:33 |
Dmitrii Shcherbakov |
attachment added |
|
ProcModules.txt https://bugs.launchpad.net/bugs/1807140/+attachment/5219761/+files/ProcModules.txt |
|
2018-12-06 14:45:34 |
Dmitrii Shcherbakov |
attachment added |
|
UdevDb.txt https://bugs.launchpad.net/bugs/1807140/+attachment/5219762/+files/UdevDb.txt |
|
2018-12-06 14:45:36 |
Dmitrii Shcherbakov |
attachment added |
|
WifiSyslog.txt https://bugs.launchpad.net/bugs/1807140/+attachment/5219763/+files/WifiSyslog.txt |
|
2018-12-06 14:46:19 |
Dmitrii Shcherbakov |
linux (Ubuntu): status |
Incomplete |
Confirmed |
|
2019-07-24 21:32:41 |
Brad Figg |
tags |
apport-collected bionic cpe-onsite uec-images |
apport-collected bionic cpe-onsite cscc uec-images |
|