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

Re: [Xen-devel] Question: Redirect guest kernel's message via serial port to a file on dom0



On Tue, 2015-09-01 at 11:15 -0400, Meng Xu wrote:
> 2015-09-01 6:52 GMT-04:00 Ian Campbell <ian.campbell@xxxxxxxxxx>:
> > On Tue, 2015-08-25 at 09:04 -0400, Meng Xu wrote:
> > > 2015-08-25 3:42 GMT-04:00 Andrew Cooper <andrew.cooper3@xxxxxxxxxx>:
> > > > On 25/08/2015 03:48, Meng Xu wrote:
> > > > > Hi Andrew,
> > > > > 
> > > > > Thank you so much for your suggestion! I tried but have some
> > > > > questions.
> > > > > 
> > > > > 2015-08-24 4:10 GMT-04:00 Andrew Cooper <
> > > > > andrew.cooper3@xxxxxxxxxx>:
> > > > > > On 24/08/2015 04:01, Meng Xu wrote:
> > > > > > 
> > > > > > Hi,
> > > > > > 
> > > > > > I'm trying to use a PV guest VM on Xen to help debug Linux.
> > > > > > I was using VirtualBox to help debug Linux kernel by 
> > > > > > redirecting
> > > > > > the output of the serial port of the VM to a file in the host. 
> > > > > > I
> > > > > > can do it in VirtualBox.
> > > > > > 
> > > > > > [Why do I want to achieve this?]
> > > > > > It is much faster to reboot a VM than rebooting the physical
> > > > > > machine.
> > > > > > I don't need another machine to physically connect to the 
> > > > > > serial
> > > > > > port of the development machine.
> > > > > > I want to use Xen for as many things as possible. ;-)
> > > > > > 
> > > > > > I tried to google a tutorial or manual about how to configure 
> > > > > > it,
> > > > > > but didn't find any. :-(
> > > > > > 
> > > > > > In my understanding, I need to do the following things:
> > > > > > 1) I need to add a line (something like "serial=") in the 
> > > > > > guest's
> > > > > > configuration file to specify the serial port device to the VM;
> > > > > > 2) I need some configuration to redirect the output of the 
> > > > > > serial
> > > > > > device to a file in domU;
> > > > > > 3) After that, I can configure the kernel command line in the 
> > > > > > VM to
> > > > > > dump the kernel message via the serial port of the VM. (I know 
> > > > > > how
> > > > > > to do this step.)
> > > > > > 
> > > > > > Did anyone have tried this before and have some configuration I 
> > > > > > can
> > > > > > refer to? or
> > > > > > Could anyone give me some references that describes how to
> > > > > > configure the above three steps?
> > > > > > 
> > > > > > I really appreciate any help or suggestion or comment.
> > > > > > 
> > > > > > 
> > > > > > Configure xenconsoled to log guest consoles to file "-
> > > > > > -log=guest"
> > > > > > at which point anything sent to hvc0 will be logged to files in
> > > > > > /var/log/xen/guest/console (configurable with "--log-dir=")
> > > > > 
> > > > > I set "XENCONSOLED_TRACE=guest" under /etc/default/xencommons ,
> > > > > because in /etc/init.d/xencommons, it has: test -z
> > > > > "$XENCONSOLED_TRACE" || XENCONSOLED_ARGS=" -
> > > > > -log=$XENCONSOLED_TRACE"
> > > > > 
> > > > > So I think this is what you mean by "--log=guest"; After I set 
> > > > > this
> > > > > variable and restart the xencommons by "service xencommons 
> > > > > restart"
> > > > > on
> > > > > dom0 (Ubuntu 12.04LTS), I still couldn't find the file in
> > > > > /var/log/xen/guest/console when I reboot the VM.
> > > > > Actually, "find /var -name console" returns no result.
> > > > > 
> > > > > **My question is:**
> > > > > Is there anything else I need to configure to get the
> > > > > /var/log/xen/guest/console?
> > > > > 
> > > > > I don't see the folder under /var/log/xen. :-(
> > > > 
> > > > You probably need to mkdir it then, or extend the args list with
> > > > --log-dir=/var/log/xen
> > > 
> > > I tried both, but neither of them works. :-(
> > > 
> > > I'm wondering if anyone has some document about how to do this?
> > > If there is some document about how to debug this configuration 
> > > issue,
> > > it could also be helpful...
> > > But I didn't find it after googling and trying for 2 hours...:-(
> > > 
> > > Below is the detail of what I tried:
> > > 
> > > I tried to mkdir /var/log/xen/guest
> > 
> > The correct (default) path is /var/log/xen/console I think.
> > 
> > >  and restart the xencommons by
> > > "service xencommons restart",
> > 
> > Are you using sysvinit or systemd?
> 
> I'm using sysvinit, since "pidof /sbin/init " shows that init process
> has pid = 1.

What if systemd were /sbin/init?

> > If the latter are you using the systemd
> > units of the sysvinit scripts via systemd's LSB compat mode?
> > 
> > If you are using the systemd units then I think they might be 
> > configured
> > elsewhere.
> 
> Do I have to explicitly configure a virtual serial device to the PV
> VM, in order to make Xen  create the /var/log/xen/console file?
> 
> Right now, when I ssh into the PV VM and issue the command #echo 1 >
> /dev/ttyS0, it returns error "echo: write error: Input/output error".
> I'm guessing maybe it's because the VM has no serial port configured?
> 
> Thank you very much for your time and help in this issue!

Are we talking about HVM guests or PV guests here? I had assumed PV...

A PV guest doesn't have /dev/ttyS0, it has no serial devices. Such guests
have /dev/hvc0 as their console.

An HVM guest needs to be told where the serial device (ttyS0) goes via the
guest config, serial = 'pty' is the magic rune to cause it to be logged by
xenconsoled. There are other possibilities, check xl.cfg(5).

Ian.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.