guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GUIX 0.7 under QEMU/KVM with virtio


From: Assaf Gordon
Subject: Re: GUIX 0.7 under QEMU/KVM with virtio
Date: Sat, 04 Oct 2014 20:15:55 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.1.2

Hi,

Thanks for the help.
Some more details (replying out of order):

On 10/04/2014 04:42 PM, Ludovic Courtès wrote:

Is there a way to fix this? force the kernel to load virto driver?

Currently all the drivers needed to mount the root partition must be
explicitly loaded in the initrd.  So yes, you would need to have the
virtio modules loaded from the initrd (info "(guix) Initial RAM Disk"):

   (operating-system
     ...
     (initrd (lambda (file-systems . rest)
               (apply base-initrd file-systems
                      #:extra-modules '("virtio.ko" "virtio_ring.ko"
                                        "virtio_blk.ko")
                      rest))))
Two more things were needed:
1. adding"virtio_pci.ko" and "virtio_net.ko"  to the list of drivers.
2. Labeling "/dev/vda1" as "gnu-disk-image" (when doing "mkfs.ext4 -L").
   This wasn't needed to boot from "/dev/sda1", but was needed to use 
"/dev/vda1".
   Perhaps some hard-coded thing ?

With these, the VM boots with virtio disk and network.

After boot (before setup), I'm trying to get a login prompt on the serial port 
(which QEMU's redirect to the terminal).
I can do the following:
    echo "hello" > /dev/ttyS0   => appears on the terminal

I can also boot with "console=ttyS0,9600n8" (in the GRUB command line), and the 
kernel messages appear on the console.
However, I can't get a login prompt on the serial console.

I tried variations of:
    agetty -L 9600 ttyS0 linux

But they all exit after a timeout of few seconds, and no prompt appears on the 
serial console.
Any ideas ?

I haven’t tried agetty, but it seems to have a hard-coded default login
program of “/bin/login”, which doesn’t exist here.  Could you try
invoking it with -l $(guix build shadow)/bin/login ?

Alternately you could try adding a mingetty service to the
configuration:

   (operating-system
     ...
     (services (cons (mingetty-service "ttyS0")
                     %base-services)))


I still can't get serial console to work, perhaps needs more fidgeting.
Trying "mingetty ttyS0" from the command line fails with:
    ttyS0: no controlling tty: Operation not permitted
So I'm not sure 'mingetty' is the way to go.

I'm not well-versed in scheme, so it will take me some more time to figure 
things out...

-Assaf




reply via email to

[Prev in Thread] Current Thread [Next in Thread]