Before saying more I want to describe something regarding the built in UARTs. This may not be the case for UARTs which go to the micro-OTG USB connector, but it does apply to UARTs on header pins.
The naming of a device special file for a UART initially depends on the driver, and this in turn depends on the chipset. A generic 16550A will have a driver that uses names like “ttyS0
”. A USB UART from Microchip will have a name at the USB end of something like “ttyUSB0
”. Jetson drivers for a 16550A which has DMA added will have a naming convention like “ttyTHS0
”. It is possible that the udev
system will rename that file or add other aliases.
On a Jetson the integrated UARTs are 16550A compatible (they can be a couple of other older compatibilities by changing firmware). In your “/proc/cmdline
” you’ll see your kernel was (upon load) told to start a serial console on ttyS0
at speed 115200
baud, 8-bit, no parity (also no stop bit by default). This excerpt says to do this:
console=ttyS0,115200n8
(this isn’t the whole story, but it is the start in Linux)
What isn’t obvious is that one of the integrated UARTs can in fact have two different drivers. As an example, the driver which produces /dev/ttyTHS0
with DMA can be the same hardware that produces /dev/ttyS0
, but that you shouldn’t use both simultaneously (you could alternate).
I would not expect ttyGS0
to also be ttyS0
, but maybe I have a misunderstanding of physical UARTs that are present. All of the UARTs going to UART header pins have two possible names. Maybe the USB OTG port does too? The point is that if something is told to add a serial console to a UART you are using, then you’ll see that traffic even if you are using a different UART device special file (a different driver) when it is the same actual underlying hardware.
When one disables the nvgetty.service
, then one is disabling all serial consoles so far as I know. Every related UART would stop being a serial console during time where Linux is loaded (prior to this in boot stages it is a different story…the boot software is its own bare metal operating system).
I am surprised that the stop
and disable
of nvgetty.service
still results in serial console running.
The lsblk -f
shows you don’t have any special partition mount setup. It’s just the eMMC. If it had been some other boot scheme, then it would have been possible for the setup to actually be on some other storage media followed by switching to a new media. This would cause some setup commands to not do as expected, but this is not the case in your setup.
The screenshot is not very useful. What would be really useful (oddly and poetically enough) is a full serial console boot log, but we’re trying to disable that. The part of the log which does show is unrelated to the issue (and for example, if you don’t have the imx219 sensor, then I’d expect the i2c to fail). Since this shows up as a console login, if you start a serial console program on another computer, and monitor that setup with settings of 115200 8N1
, do you get a boot log? If you do, then log the entire sequence and post it here. It might say something I don’t see from the given information.