failing console access on s390x, ppc64el
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
autopkgtest (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
Hi,
as discussed on IRC a bit I wanted to create an s390x ADT environment but failed to do so.
It seems the extra consoles are not created correctly.
This dumps that state so far to be debugged and fixed later on - or for whoever runs into the same to find it via searching.
Creating a new image works as long as one specifies the alternative ports mirror
sudo ~/autopkgtest-
But then running a test fails like this:
(yes I know old syntax)
sudo ~/autopkgtest-
adt-run: WARNING: "adt-run" is deprecated, please use "autopkgtest" (see manpage)
adt-run: DBG: Parsed options: Namespace(
adt-run: DBG: Remaining arguments: ['--no-
adt-run: DBG: Interpreted actions: ['--no-
adt-run: DBG: Virt runner arguments: ['adt-virt-qemu', '--cpus', '4', '--ram-size=2048', '/home/
adt-run: DBG: testbed init
adt-run [04:29:22]: version @version@
adt-run [04:29:22]: host s1lp5; command line: /home/ubuntu/
adt-run: DBG: got reply from testbed: ok
adt-run: DBG: testbed open, scratch=None
adt-run: DBG: sending command to testbed: open
adt-run: DBG: got reply from testbed: Using SCSI scheme.
adt-run: DBG: TestbedFailure sent `open', got `Using SCSI scheme.', expected `ok...'
adt-run: DBG: testbed stop
adt-run: DBG: testbed close, scratch=None
adt-run: DBG: sending command to testbed: quit
qemu-system-s390x: terminating on signal 15 from pid 53355
<VirtSubproc>: failure: timed out waiting for "login prompt on ttyS0"
After discussing on IRC I understood that it checks for a loginn on ttyS0 or as fallback a root shell on ttyS1.
But it seems none of those get spawned.
I was able to boot the image just fine with:
sudo qemu-system-s390x -m 2048 -smp 4 -nographic -net nic,model=virtio -net user,hostfwd=
But one has to note that in this case the default console is automatically connected to stdio (due to -nographics) and the mode it a sclp console.
I can add a virtio-serial console and get a valid non sclp console by appending:
-chardev socket,
I can add more serial consoles on unix sockets as autopkgttest does, but nothing appears on these sockets (only monitor gets some content).
-serial unix:/tmp/
In the guest no device appears for any of those, so no tty can spawn on them:
ll /dev/tty*
crw-rw-rw- 1 root tty 5, 0 Oct 6 00:18 /dev/tty
crw------- 1 ubuntu tty 4, 65 Oct 6 05:16 /dev/ttysclp0
I feel I should know how to configure it further to get valid consoles, but I'd read some docs first so documenting the current state for now.
The root cause seems to be that I miss something to properly add the console to the guest.
As listed above it has no /dev/ttyS0 or any such.
Usually adt would set console=ttyS0 for the kernel parmline which it doesn't on s390x yet.
But obviously if doing so it only ends in failing to spawn anything on there as the tty device doesn't exist.
[...]
[*** ] A start job is running for dev-ttyS0.device (6s / 1min 30s)
[ TIME ] Timed out waiting for device dev-ttyS0.device.
The main console still survives (falls back?) to sclp0 autopkgtest: ~$ tty
ubuntu@
/dev/ttysclp0
Whatever I miss I expect it to start with getting more than just:
ll /dev/tty*
crw-rw-rw- 1 root tty 5, 0 Oct 6 00:18 /dev/tty
crw------- 1 ubuntu tty 4, 65 Oct 6 05:16 /dev/ttysclp0