ARM-software / arm-systemready

Arm SystemReady
Apache License 2.0
46 stars 59 forks source link

No prompt available in graphic mode but serial console #191

Open anncheng-arm opened 3 weeks ago

anncheng-arm commented 3 weeks ago

Failure/Symptom

No prompt available after booting into ACS via graphic mode but working fine in serial console. Unplug/plug external USB device, the USB messages were output properly in graphic mode/serial mode which means vga driver works properly, looks more like inittab/init script issues.

Booting logs from serial console: acs_console.zip

image

Configuration

anncheng-arm commented 3 weeks ago

I cannot find root.sh in entire file system which is used by initab, is this set correctly?

https://github.com/ARM-software/arm-systemready/blob/fd9e41c9551372ef0ed749963a17ca5c897e2dff/common/ramdisk/inittab#L33

chetan-rathore commented 2 weeks ago

Hello @anncheng-arm,

Omitting console=ttys0 and tty=AMA0 from the command line worked on rpi4, can you please check if it works on the DUT.

Thanks, ACS team

anncheng-arm commented 2 weeks ago

@chetan-rathore

Here is Linux Kernel document to explain how /dev/console binds to getty (tty0 – graphic mode, ttyS0 – Serial console for 16550, ttyAMA0 – ARM UART PL011). serial-console

I've also tested this on my RPi4 and Ampere system. Removing ttyS0 and ttyAMA0 results in /dev/console binding to tty0, which is why you can see output and prompts on the graphical interface. However, this also means there is no init.sh output and prompt from the serial port anymore. You can simply move tty0 to be the last parameter, and the output/prompt will then go to the graphical mode.

I reported this issue because ODMs typically check from the graphical interface first. If there is no prompt, they might think the system has hung during testing. However, I am guessing if ACS is designed intentionally to direct all tests and prompts to the serial console only, it prevents accidental resets or test terminations from the different shell session of graphical interface(tty0).

We may not need to address this issue if this design is intentional. Or we may just need to init the getty tty0 properly in /etc/inittab to get it to prompt which is good enough.