[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



2015-09-01 11:26 GMT-04:00 Ian Campbell <ian.campbell@xxxxxxxxxx>:
> 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?

I runned #stat /proc/1/exe, and it returns
 File: `/proc/1/exe' -> `/sbin/init'

According to 
http://unix.stackexchange.com/questions/196166/how-to-find-out-if-a-system-uses-sysv-upstart-or-systemd-initsystem,
if it is systemd, it will returns "File: '/proc/1/exe' ->
'/lib/systemd/systemd'"

In addition, my dom0 uses Ubuntu 12.04 LTS. According to the above
link, [quote] "the init process on my Ubuntu 14.10 box is Upstart.
Ubuntu 15.04 uses systemd." [/quote]

So I think my dom0 should uses sysVinit.

>
>> > 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.

Yes. I'm using PV VM.

If I run inside VM: # echo 1 > /dev/hvc0, it does not report error.

If I use "xl console vm1" to attach to the hvc0, I can see the output 1.

However, I still cannot find the console file under /var/log/xen.
Actually, there is no such file under /var after I run "find /var
-name console".

I'm wondering if there is any way for me to debug which configuration
is incorrect?
After I make it work, I can write a wiki to document the working approach. :-)

Thank you again for your time and help!

Best,

meng



-----------
Meng Xu
PhD Student in Computer and Information Science
University of Pennsylvania
http://www.cis.upenn.edu/~mengxu/

_______________________________________________
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®.