1. installation environment
Operating System: ubuntu14.04
Xen version: xen4.4
2. Install dependency packages
Install the dependency package before installing xen. After constantly trying, summarize the following dependency packages to be installed.
Suso apt-Get install GCC make binutils zlib1g-dev Python-Dev
Sudo apt-Get install libncurses5-dev libcurl4-openssl-dev libx11-dev
Sudo apt-Get install UUID-dev libyajl-dev libaio-dev libglib2.0-dev libpixman-1-dev
Sudo apt-Get install PKG-config bridge-utils iproute udev bison flex gettext
Sudo apt-Get install bin86 bcc iasl ocaml-NOx ocaml-findlib cmake markdown figlet git libc6-dev-i386
Sudo apt-Get install texinfo texlive-latex-base texlive-latex-recommended texlive-fonts-extra
Sudo apt-Get install texlive-fonts-recommended pciutils-dev mercurial
The above dependency packages are mainly used to successfully compile and install xen4.4.
3. xen Source File Download
Xen4.4 source file address http://www.xenproject.org/downloads-list/xen-archives/xen-44-series/xen-440.html
The source file is downloaded as a tar package, which can be first downloaded to Windows and then copied to the virtual machine using winscp, or directly downloaded from the virtual machine.
Note: The Tar package must be decompressed in Ubuntu. If it is decompressed in windows and then copied to Ubuntu, the file execution level will be changed, compilation errors may occur.
4. xen source file Compilation
Decompress the source file to a directory, CD it to the directory where the source file is located, and perform the steps according to the steps described in readme in the source file.
#./Configure
# Make World
# Make install
However, after executing make world, an error is displayed as follows:
Tpmback. C: In function 'tpmif _ change_state ':
Tpmback. c: 350: 4: Error: Format '% d' expects argument of Type 'int *', but argument 3 has type 'enum xenbus_state * '[-werror = format =]
If (sscanf (value, "% d", & readst )! = 1 ){
After this error occurs, the compilation of the source file cannot be executed. After finding the relevant information, we will find a discussion:
From: Dushyant behl <myselfdushyantbehl <at> gmail.com> subject: Re: compilation error in extras/mini-OS/tpmback. c newsgroups: gmane. comp. emulators. xen. devel Date: 2014-07-18 10:01:50 GMT (2 weeks, 3 days, 2 hours and 27 minutes ago)
Sure, I‘ll be happy to do it.On Fri, Jul 18, 2014 at 3:25 PM, Ian Campbell <Ian.Campbell <at> citrix.com> wrote:> On Thu, 2014-07-17 at 20:21 +0200, Samuel Thibault wrote:>> Ian Campbell, le Wed 16 Jul 2014 10:13:31 +0100, a écrit :>> > On Wed, 2014-07-16 at 11:25 +0530, Dushyant Behl wrote:>> > > I‘m trying to compile xen from the source and i‘m getting this>> > > compilation error while running a make world.>> > >>> > > tpmback.c: In function ‘tpmif_change_state’:>> > > tpmback.c:350:4: error: format ‘%d’ expects argument of type ‘int *’,>> > > but argument 3 has type ‘enum xenbus_state *’ [-Werror=format=]>> > > if(sscanf(value, "%d", &readst) != 1) {>> > > ^>> > > cc1: all warnings being treated as errors>> > > make[3]: *** [/home/corvo/gsoc/code/xen/stubdom/mini-os-x86_64-vtpm/tpmback.o]>> > > Error 1>> > >>> > > Could anyone explain that if this is just problem on my side or this>> > > is not fixed in the git tree.>> >>> > It looks like a legitimate issue to me. I expect you are just the first>> > person to use a compiler which picks up in this particular issue.>> >>> > I‘m not sure what the correct fix is since C doesn‘t mandate very much>> > about the storage size of an enum, so casting is probably not the right>> > answer.>>>> Indeed, C99 apparently says “The choice of type is>> implementation-defined”, so>>>> > Probably the value needs to be read into an actual int variable and then>> > assigned to the enum.>>>> that seems like the proper solution.>> Great. Dushyant, are you able to rustle up a patch?>> http://wiki.xen.org/wiki/Submitting_Xen_Patches has some guidance on the> procedure.>> Ian.>
Address of the discussion: http://thread.gmane.org/gmane.comp.emulators.xen.devel/207530/focus=207948
The result of the discussion seems to be a bug and a patch is required.
Ian checked it. It should be a member of the hypervisor project team.
5. Summary
So far, the installation block of xen4.4 has been installed, and the installation method in Ubuntu should be available, and the test will continue later.