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

Re: [Xen-users] Wrong version of xen-utils after building xen from source causes xen to exit with error



On Thu, Sep 15, 2016 at 5:53 AM, George Dunlap <george.dunlap@xxxxxxxxxx> wrote:
> On 14/09/16 15:40, Brett Stahlman wrote:
>> On Wed, Sep 14, 2016 at 5:32 AM, George Dunlap <george.dunlap@xxxxxxxxxx> 
>> wrote:
>>> On Thu, Sep 8, 2016 at 8:43 PM, Brett Stahlman <brettstahlman@xxxxxxxxx> 
>>> wrote:
>>>> ** Update **
>>>> Following recommendations on a page dealing with the installation of
>>>> multiple versions of Xen side-by-side, I re-ran configure like this...
>>>>
>>>> configure --prefix=/home/bstahlman/install/xen \
>>>> --sysconfdir=/home/bstahlman/install/xen/etc \
>>>> --enable-rpath
>>>>
>>>> ...and was then able to run xl by specifying the path to the sbin/xl
>>>> under the directory specified with --prefix.
>>>>
>>>> Aside: I also had to add this line to /etc/fstab...
>>>>
>>>> none /proc/xen xenfs defaults 0 0
>>>>
>>>> ...and I have to start the xencommons service manually like so:
>>>>
>>>> sudo ~/install/xen/etc/init.d/xencommons start
>>>>
>>>> But now I'm able to run xen-create-image to create an ubuntu guest:
>>>> sudo xen-create-image --hostname ubuntu-test --dhcp --dir
>>>> ~/xen/images/ --size=4G --role=udev
>>>>
>>>> (Note that I had to use the script installed by package manager, as I
>>>> don't see a version of xen-create-image under my custom install
>>>> directory). Strangely, xen-create-image gives what looks like an
>>>> error...
>>>>
>>>> ERROR: Can't find version 4.8 of xen utils, bailing out!
>>>>
>>>> ...but the command appears to work, and I'm able to start the guest by
>>>> running xl on the resulting config file:
>>>> sudo ./install/xen/sbin/xl create /etc/xen/ubuntu-test.cfg -c
>>>>
>>>> The problem occurs when I attempt to create an HVM guest:
>>>> $ sudo ~/install/xen/sbin/xl create ~/cfg/xen/xl-ubuntu-hvmloader.cfg -c
>>>> Parsing config from /home/bstahlman/cfg/xen/xl-ubuntu-hvmloader.cfg
>>>> libxl: error: libxl_create.c:562:libxl__domain_make: domain creation
>>>> fail: Invalid argument
>>>> libxl: error: libxl_create.c:904:initiate_domain_create: cannot make 
>>>> domain: -3
>>>>
>>>> I initially assumed the error must be due to the options in the config
>>>> file (pasted at the end), but when I ran the xl create command in gdb,
>>>> I discovered that the option parsing was successful: the error occurs
>>>> because the ioctl() call in the following function returns -1:
>>>
>>> ioctl returns -1 on failure and then sets the global variable 'errno'.
>>> If you see above, libxl itself gives you the appropriate
>>> interpretation of errno -- "Invalid argument".
>>>
>>> Given that your config file doesn't seem to have anything strange in
>>> it, I would suspect that you're still having some sort of issue where
>>> you're running the wrong set of tools (or perhaps the wrong library)
>>> for the Xen version that you're running.
>>>
>>> As an aside, another useful trick if you want to build from source is
>>> to use "make debball".  That will create a .deb package you can
>>> install and remove easily.  The key thing is this debball is NOT A
>>> COMPLETE PACKAGE -- you still need to run ldconfig and everything
>>> manually, just as you would if you'd run "make install".  It's just a
>>> lot easier to remove and/or update than "make install", since dpkg
>>> keeps track of all the files for you.
>>
>> Hmm... I never ran ldconfig after the `make install', so perhaps that
>> could have been the issue?
>
> Potentially; but normally if that's the issue then running the resulting
> binary will give you linking errors.
>
> If you had previously built the full Debian package with Xen 4.8, it's
> *possible* that you had the old libraries in your ld.so.cache, so that
> stuff worked even without running ldconfig.
>
> You could try running "ldd /path/to/your/new/xl" to verify which version
> of the library you're actually using when running it.
>
>> Just yesterday, I was able to build the package obtained with `apt-get
>> source' using the following command:
>>
>> sudo dpkg-buildpackage -us -uc
>>
>> But this is a bit tedious because each time I want to tweak a file
>> (e.g., to put in some debug printf's), I have to run the debian
>> "quilt" utility to make a patch. I would prefer to just modify source
>> and rebuild. Wasn't aware of the "debball" target. Also, didn't
>> realize it was necessary to run ldconfig after installing a package
>> with dpkg. What's the standard way to run ldconfig in this case? If I
>> built package without using configure to change default paths, which
>> directory(s) need to be passed to ldconfig (or are the defaults
>> sufficient)?
>
> Fully-functional packages do the ldconfig for you (along with dependency
> tracking, starting system services, &c).  The output of
> dpkg-buildpackage will be a fully-functional package with all those bits
> handled already.
>
> The reason the "debball" makefile target is called that is because it's
> essentially just a tarball which uses dpkg for file-tracking, not a
> fully functional package.  We don't want to be burdened with doing all
> the work of maintaining a package -- our downstreams (Debian, Fedora,
> &c) are doing a good job of that and there's no need to duplicate their
> work.  We just want an easy way to install and remove the files while
> doing development, hence "debball" (and the corresponding "rpmball").
>
>> When I built with dkpg-buildpackage, I got a handful of .debs: e.g.,
>> xen-hypervisor, xenstore, xen-utils, xen-system. Would it be best to
>> run `dpkg -i' on these files individually, or drop them all in a
>> directory and run dpkg on that? (I haven't used dpkg standalone much,
>> and want to be sure the dependencies are handled properly.)
>
> dpkg will handle dependencies in the sense that it will refuse to
> install something if there are dependencies that aren't there.  So
> normally installing xen-*.deb is the best thing.
>
> But the output of "make debball" has *no* dependency tracking -- it is
> the exact equivalent of "tar xfz [blah]", but easier to remove.  :-)

I think I understand. So if I use `make debball' instead of
dkpg-buildpackage, I would need to do something like...
    sudo dpkg -i xen-*.deb
    sudo ldconfig
...and then start services manually after I've booted into Xen: e.g.,
    sudo /etc/init.d/xencommons start
(I'm assuming that the .deb's produced by the debball package will put
things in the normal system directories unless I override with
configure: hence, no need to specify directories to ldconfig.)

Thanks,
Brett S.

>
>  -George

_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxx
https://lists.xen.org/xen-users

 


Rackspace

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