Difference between revisions of "User:Roirodriguez"

From PaparazziUAV
Jump to navigation Jump to search
Line 29: Line 29:


==== About Ivy versions ====
==== About Ivy versions ====
You can find the Ivy software bus homepage at [http://www2.tls.cena.fr/products/ivy/ http://www2.tls.cena.fr/products/ivy/]. There you can find documentation, svn repository location, etc.
If you take a look to the files at [http://paparazzi.enac.fr/ubuntu/dists/karmic/main/binary-i386/ http://paparazzi.enac.fr/ubuntu/dists/karmic/main/binary-i386/] you'll see two different version numbers for ivy-c packages, and 3 for ivy-ocaml packages:
* ivy-c 3.8.1-1, with no source files (.tar.gz) provided.
* ivy-c 3.11.4-1, source files provided.
* ivy-ocaml 1.1, with 3 package revisions (7, 8 and 9). Source files are provided for 1.1-7 at [http://paparazzi.enac.fr/debian/dists/lenny/main/binary-i386/ivy-ocaml_1.1-7.tar.gz http://paparazzi.enac.fr/debian/dists/lenny/main/binary-i386/ivy-ocaml_1.1-7.tar.gz].
If you take a look to the control files of each of those ivy-ocaml packages (you can do it downloading the package and then ''dpkg --info PACKAGE_DOWNLOADED'' from the command line. See the line starting with 'Depends:') you'll see all of them tell to be compatible with ivy-c versions >= 3.8.
However my experience with ivy-ocaml_1.1-7 (the only one for which source code is provided) is that it is not compatible with ivy-c 3.11.4. The ''civyloop.c'' source file in the ivy-ocaml_1.1-7 package makes use of the IvyMainLoop function (defined in the ivy-c package) in the following way:
value ivy_mainLoop(value unit)
{
  IvyMainLoop (NULL, NULL);
  return Val_unit;
}
Definitions for the IvyMainLoop function in the ivy-c package are as follows. For 3.8:
extern void IvyMainLoop(void(*BeforeSelect)(void),void(*AfterSelect)(void) );
And for 3.11:
extern void IvyMainLoop(void);
So 3.8 version of that function has 2 arguments and 3.11 has no arguments at all. So we've to use 3.8 version. We'll get an error about 'too much arguments for IvyMainLoop' if we try to compile ivy-ocaml_1.1-7 with ivy-c_3.11.4-1.
But there's no source for ivy-c_3.8.1-1 in the paparazzi repository, where did i get itn from? From the ivy-c svn repository, the svn command is the following:
svn co http://svn.tls.cena.fr/svn/ivy/ivy-c/tags/debian_version_3_8_1-1 ivy-c_3.8.1
NOTE: Don't try to get ivy-ocaml too from the main ivy svn repository at http://svn.tls.cena.fr/svn/ivy/ivy-ocaml. It's main developer Pascal Brisset told me to use that ivy-ocaml_1.1-7.tar.gz file in the paparazzi repository instead. Svn repository for ivy-ocaml seems unused.
So we'll compile ivy-c_3.8.1 coming from the main ivy-c svn repository, and ivy-ocaml_1.1-7.tar.gz in the paparazzi repository (link above).
QUESTION: Where do i find sources (tar.gz) for ivy-ocaml_1.1 revisions 8 and 9??
QUESTION: Wouldn't it be better to change ivy-ocaml_1.1-7 control file to depend strictly on ivy-c 3.8 version?


==== Ivy-c (3.8.1) ====
==== Ivy-c (3.8.1) ====

Revision as of 13:14, 4 February 2010

About me

  • Location: Santiago de Compostela (Spain).
  • Skills: 4 years working as a software developer over free software, and linux user and developer for the last 13 years. Now i'm back to the university to finish my physics studies.
  • Paparazzi status: Newbie. Just starting. I'm trying to get money to buy a plane and learn how to fly it (good start :-); after that i'll go into paparazzi. For now i'm just running some simulations and compiling it for my amd64 system.
  • Paparazzi goals:
    • Compile the sources for my ubuntu karmic amd64 platform. If possible generate deb packages to make installation on other amd64 systems easier.
    • Learn to fly a plane.
    • Learn to program AMD7 devices.
    • Study paparazzi source code, run lots of simulations... Until i've got a good overall idea of what's going on.
    • Build a paparazzi board, and install it into my plane.
    • Develope some ideas i've got, around paparazzi.

Ubuntu Karmic AMD64 Compilation log

Intro

The following explains my experience compiling all paparazzi-dev, paparazzi-arm7 and paparazzi-bin software for my amd64 machine, running an Ubuntu Karmic linux distribution.

It must be taken into account that i'm a complete newbie to paparazzi, arm7 and so. So my goal was primarly making it all compile, and patch where necessary for that, but testing on those patches was not done.

The final goal of this document is to clarify about which version of each piece of software has to be compiled, where to find that software, patches needed to make it compile on amd64... I'm making it public because i saw people tried to compile it for 64bit systems with no success, and because i need a few answers to some questions in order to make really tested and accurate deb packages.

I'm writting 'QUESTION:' at the begining of the lines that represent questions i've got, patches i'm not sure to be accurate, etc. This way everybody can find them easily...

Paparazzi-dev packages

About ivy-c, ivy-c-dev, ivy-ocaml and ivy-python packages. The rest of the software on which paparazzi-dev depends can be found in the ubuntu repositories for karmic. If you have a distribution different from ubuntu karmic which doesn't satisfy any other dependency and have instructions about compiling it, packaging it, etc, please feel free to add any reference on how here...

Ivy-python: The ivy-python package is architecture independant, so it can be downloaded from the ubuntu or debian paparazzi repository, at [1]. There you can find also the .tar.gz source package for it...

About Ivy versions

You can find the Ivy software bus homepage at http://www2.tls.cena.fr/products/ivy/. There you can find documentation, svn repository location, etc.

If you take a look to the files at http://paparazzi.enac.fr/ubuntu/dists/karmic/main/binary-i386/ you'll see two different version numbers for ivy-c packages, and 3 for ivy-ocaml packages:

If you take a look to the control files of each of those ivy-ocaml packages (you can do it downloading the package and then dpkg --info PACKAGE_DOWNLOADED from the command line. See the line starting with 'Depends:') you'll see all of them tell to be compatible with ivy-c versions >= 3.8.

However my experience with ivy-ocaml_1.1-7 (the only one for which source code is provided) is that it is not compatible with ivy-c 3.11.4. The civyloop.c source file in the ivy-ocaml_1.1-7 package makes use of the IvyMainLoop function (defined in the ivy-c package) in the following way:

value ivy_mainLoop(value unit)
{
  IvyMainLoop (NULL, NULL);
  return Val_unit;
}

Definitions for the IvyMainLoop function in the ivy-c package are as follows. For 3.8:

extern void IvyMainLoop(void(*BeforeSelect)(void),void(*AfterSelect)(void) );

And for 3.11:

extern void IvyMainLoop(void);

So 3.8 version of that function has 2 arguments and 3.11 has no arguments at all. So we've to use 3.8 version. We'll get an error about 'too much arguments for IvyMainLoop' if we try to compile ivy-ocaml_1.1-7 with ivy-c_3.11.4-1.

But there's no source for ivy-c_3.8.1-1 in the paparazzi repository, where did i get itn from? From the ivy-c svn repository, the svn command is the following:

svn co http://svn.tls.cena.fr/svn/ivy/ivy-c/tags/debian_version_3_8_1-1 ivy-c_3.8.1

NOTE: Don't try to get ivy-ocaml too from the main ivy svn repository at http://svn.tls.cena.fr/svn/ivy/ivy-ocaml. It's main developer Pascal Brisset told me to use that ivy-ocaml_1.1-7.tar.gz file in the paparazzi repository instead. Svn repository for ivy-ocaml seems unused.

So we'll compile ivy-c_3.8.1 coming from the main ivy-c svn repository, and ivy-ocaml_1.1-7.tar.gz in the paparazzi repository (link above).

QUESTION: Where do i find sources (tar.gz) for ivy-ocaml_1.1 revisions 8 and 9?? QUESTION: Wouldn't it be better to change ivy-ocaml_1.1-7 control file to depend strictly on ivy-c 3.8 version?

Ivy-c (3.8.1)

Compilation
Debian packages

Ivy-ocaml (1.1-7)

Compilation
Debian packages

Paparazzi-arm7 packages

Toolchain (binutils, gcc, newlib)

About gcc versions
Toolchain compilation
Debian packages

lpcisp

Compilation
Debian packages

Paparazzi-bin package

Compilation

Debian packages