Rocky Linux 9.3 cannot increase the number of serial ports

I added the serial port according to Centos 7.8, but it cannot be added on Rockylinux

Why are there only four

What do you mean “according to Centos 7.8”? Can you be specific on what you did and what you’re trying to do?

I can add a serial port on Centos 7.8 system, but I cannot add a serial port on Rocky Linux 9.3 system.

You’re not explaining what you’re trying to do to add a serial port. How are you adding the serial ports to the system? How or what are you configuring on the system? What kind of system is this? Is it a VM? On what platform?

Without enough information, we won’t be able to assist you.

My physical machine has 6 serial ports, but on the RockyLInux9.3 operating system, there are only 4 serial device files, from /dev/ttyS0 to /dev/ttyS3. Why is there no /dev/ttyS4 and /dev/ttyS5?

(Traditional) serial ports have more or less vanished from “modern” computers. Does your system have add-on cards that have those ports? Are the “missing two” on separate card? Does el9 have driver for that card? Or, are they USB-to-serial adapters?

Are the ports/devices/cards visible on lspci -nn output?

https://www.cyberciti.biz/faq/find-out-linux-serial-ports-with-setserial/ does mention /dev/ttyUSB[01] in addition to /dev/ttyS[0123]

It seems that no driver is needed.
I installed the Centos7.8 system on this physical server, modified the “/etc/default/grub” file, and then executed the “grub2-mkconfig” command. After restarting, I obtained the “/dev/ttyS4” and “/dev/ttyS5” files.
Following the above steps, I am unable to obtain the “/dev/ttyS4” and “/dev/ttyS5” files on the Rockylinux9 system.

This is a different operating system for the same physical server

Rockylinux9
[root@localhost ~]# setserial -g /dev/ttyS[012345]
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: 16550A, Port: 0x03e8, IRQ: 5
/dev/ttyS3, UART: 16550A, Port: 0x02e8, IRQ: 6

centos7
[root@localhost ~]# setserial -g /dev/ttyS[012345]
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: 16550A, Port: 0x03e8, IRQ: 5
/dev/ttyS3, UART: 16550A, Port: 0x02e8, IRQ: 6
/dev/ttyS4, UART: 16550A, Port: 0x03e0, IRQ: 10
/dev/ttyS5, UART: 16550A, Port: 0x02e0, IRQ: 11

[root@localhost ~]# lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation 11th Gen Core Processor Host Bridge/DRAM Registers [8086:9a14] (rev 01)
00:02.0 VGA compatible controller [0300]: Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics] [8086:9a49] (rev 01)
00:0a.0 Signal processing controller [1180]: Intel Corporation Tigerlake Telemetry Aggregator Driver [8086:9a0d] (rev 01)
00:0d.0 USB controller [0c03]: Intel Corporation Tiger Lake-LP Thunderbolt 4 USB Controller [8086:9a13] (rev 01)
00:11.0 Communication controller [0780]: Intel Corporation Device [8086:a0da] (rev 20)
00:11.3 Communication controller [0780]: Intel Corporation Device [8086:a0dd] (rev 20)
00:14.0 USB controller [0c03]: Intel Corporation Tiger Lake-LP USB 3.2 Gen 2x1 xHCI Host Controller [8086:a0ed] (rev 20)
00:14.2 RAM memory [0500]: Intel Corporation Tiger Lake-LP Shared SRAM [8086:a0ef] (rev 20)
00:16.0 Communication controller [0780]: Intel Corporation Tiger Lake-LP Management Engine Interface [8086:a0e0] (rev 20)
00:17.0 SATA controller [0106]: Intel Corporation Tiger Lake-LP SATA Controller [8086:a0d3] (rev 20)
00:1c.0 PCI bridge [0604]: Intel Corporation Tigerlake PCH-LP PCI Express Root Port #6 [8086:a0bd] (rev 20)
00:1c.7 PCI bridge [0604]: Intel Corporation Tiger Lake-LP PCI Express Root Port #8 [8086:a0bf] (rev 20)
00:1f.0 ISA bridge [0601]: Intel Corporation Tiger Lake-LP LPC Controller [8086:a082] (rev 20)
00:1f.3 Audio device [0403]: Intel Corporation Tiger Lake-LP Smart Sound Technology Audio Controller [8086:a0c8] (rev 20)
00:1f.4 SMBus [0c05]: Intel Corporation Tiger Lake-LP SMBus Controller [8086:a0a3] (rev 20)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Tiger Lake-LP SPI Controller [8086:a0a4] (rev 20)
00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (13) I219-LM [8086:15fb] (rev 20)
01:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller I225-V [8086:15f3] (rev 03)
02:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8822CE 802.11ac PCIe Wireless Network Adapter [10ec:c822]

Well, no, there has to be some driver providing the enumeration of the hardware so that it can be used by you and/or the system.

You are going from RHEL7 right to RHEL9 – that is not an insignificant jump, development-wise, completely skipping over the entire RHEL8 major version.

Why does that matter? Because, with each major release, Red Hat adds–and removes–various drivers in the officially-supported kernel. For instance, support for a wide variety of SAS6 HBA’s and RAID controllers was officially removed starting with RHEL8 – whereas 99% of them functioned perfectly in RHEL7 and/or CentOS 7. The difference is the removal of the needed drivers for those older cards, which is documented. Getting those devices to work again in RHEL8 requires the use of kernel modules from third-party repositories…

tldr; just because the same hardware works on one major version of RHEL does not guarantee it will continue to work on later versions.

What does that even mean? Just what modifications did you make to the grub configuration file, and why?

Please provide more details on the above steps in addition to the exact hardware being used, such as:

Machine:
*Brand/Manufacturer
*Model
*BIOS version etc.

Clarify:
*Are ALL the serial ports integrated into the system board?

  • or are some part of an add-on PCI/PCIe card, or external USB adapter etc.?

At the very least, please provide the output of the lspci command from @jlehtone in his reply and, if at all possible, provide that output both from when the machine is running CentOS 7.8 as well as Rocky Linux 9.3, as this could help us in diagnosing the issue further.

Thank you, this issue has been resolved.

I modified the conf configuration file in the /boot/loader/entries/ directory, and then restarted to obtain more /dev/tySx serial device files