[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 9:07 AM, George Dunlap <george.dunlap@xxxxxxxxxx> wrote: > On 15/09/16 14:59, Brett Stahlman wrote: >> 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.) > > "make debball" takes exactly what's in xen.git/dist/install (i.e., > installing it should be equivalent to doing "make install"). The > xen.git build process will put binaries and libraries in /usr/local > unless you specify something else via configure --prefix=. (The stuff > in /etc and /boot will always go to /etc and /boot). Understood. So ldconfig with no args should be sufficient for me, as /usr/local/lib is in my /etc/ld.so.conf. Thanks for all your help. Brett S. > > -George _______________________________________________ Xen-users mailing list Xen-users@xxxxxxxxxxxxx https://lists.xen.org/xen-users
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |