Page MenuHomeVyOS Platform

ARM64 config fails to commit due to ttyS0 console
Closed, ResolvedPublic

Description

When booting a recent VyOS 1.5 rolling release from ISO on ARM64 with VMware Fusion, it will fail during VyOS config migration:

[ OK ] Finished Record Runlevel Change in UTMP.
[   6.115307] vyos-router[960]: Waiting for NICs to settle down: settled in Osec..
[   7.618934] vyos-router[960]: Mounting VyOS Config.. done.
[  10.150214] vyos-router[960]: Starting VyOS router: migrate system configure failed!
[  10.1777351 vyos-config[963]: Configuration error

I found the issue by reloading the default config and performing commit:

vyos@vyos:~$ config
WARNING: You are currently configuring a live-ISO environment, changes will not persist until installed
[edit]
vyos@vyos# load /usr/share/vyos/config.boot.default
Loading configuration from '/usr/share/uyos/config.boot.default'
Load complete. Use 'commit' to make changes effective.
[edit]
vyos@vyos# commit
[ system console ]
Traceback (most recent call last):
File "/usr/libexec/vyos/services/vyos-configd", line 146, in run_script script.apply(c)
File "/usr/libexec/vyos//conf_mode/system_console.py", line 128, in apply restart_log in_consoles(prompt_user=False, quiet=False)
File "/usr/lib/python3/dist-packages/vyos/utils/serial.py", line 113, in restart_login_consoles cnd (f' systemctl restart {unit_name}' )
File "/usr/lib/python3/dist-packages/vyos/utils/process.py", line 189, in cmd raise OSError(code, feedback)
PermissionError: [Errno 1] failed to run command: None systemctl restart serial-getty@ttyS0.service
returned:
exit code: 1
[[system console]] failed
Commit failed [edit]
vyos@vyos#

As you can see it fails to start serial-getty@ttyS0.service.
A workaround to successfully load the config is to delete the console entry in the config and then commit:

delete system console
commit

This error did not happen on VyOS 1.4 saggita, digging deeper I found it is caused by the following commits in systemd:

This comment explains a bit why it fails on ARM64: https://github.com/systemd/systemd/issues/36497#issuecomment-2686348656

If I revert that systemd commit / udev rule, it can successfully boot the VyOS config as the serial-getty@ttyS0.service will successfully start.

While now we know what causes it, i'm not sure what is best way forward to fix this issue on arm64:

  • revert the commit specifically on arm64 builds
  • don't add serial console to default boot config on arm64
  • any other option?

I opened this task for discussion and further feedback. I'm happy to test anything on arm64. I have also linked a possible related forum thread, although it's not arm64 related but to booting as a VM without a serial port.

Details

Version
VyOS 1.5-rolling-202505162021
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)
Forum thread
https://forum.vyos.io/t/disable-the-vyos-serial-port-on-vm-installation-delete-system-console-device-ttys0/15067

Event Timeline

yun created this object in space S1 VyOS Public.
yun updated the task description. (Show Details)
yun updated the task description. (Show Details)
yun updated the task description. (Show Details)

PR created: https://github.com/vyos/vyos-1x/pull/4534 welcome to any feedback and or suggestions!

c-po changed the task status from Open to In progress.Jul 31 2025, 2:05 PM
c-po added a project: VyOS 1.4 Sagitta (1.4.4).
c-po changed Is it a breaking change? from Unspecified (possibly destroys the router) to Perfectly compatible.
c-po moved this task from Backlog to Finished on the VyOS 1.4 Sagitta (1.4.4) board.
c-po moved this task from Open to Finished on the VyOS 1.5 Circinus (1.5-stream-2025-Q3) board.