[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |