FQ
Francois Quitin
Thu, Oct 26, 2017 2:07 PM
Dear Philip, EJ,
Thanks a lot for your replies. To keep things simple, I'm tying to
manually cross-compile the Armadillo library. Unfortunately, there are a
few dependencies that are not available on the default E310 image
(OpenBLAS, LAPACK, ATLAS, SuperLU).
We've made quite a few changes to the E310 FPGA, so I'm a bit frisky at
re-installing UHD using pybombs... I'd rather just include the libraries
and dependencies I need to my current UHD version.
Anyway, with the clues you gave me I should be able to figure something
out.
Thanks!
François
On 26.10.2017 15:27, EJ Kreinar wrote:
Hi Francois,
I see Balister beat me to reply... I'm not a cross-compile expert, so
he probably has better recommendations, but I'll add a couple
thoughts. There's probably three feasible options:
- Manual cross compile: Manually compile the project of interest,
sourcing the SDK environment and then building with cmake or whatever
the project's build system is (armadillo looks like cmake). This is a
decent introduction to using the SDK
(http://www.yoctoproject.org/docs/2.1/sdk-manual/sdk-manual.html [3]).
Then deploy the generated code to the E310. It's feasible, but could
be a headache if the external project has other dependencies.
- Pybombs cross compile: I just checked, and there's an armadillo
recipe in gr-recipes... Assuming you're using the E310 SDK inside a
pybombs prefix, it might be an easy solution to just pybombs install
armadillo. Worth a shot! And if it doesnt work, it would be good to
share how to fix this :D
- Open-embedded build: Because the E310 distro is built using
openembedded (https://github.com/EttusResearch/meta-ettus/tree/jethro
[4] -- the jethro branch is, I believe, the most recent build), you
could bake the projects of interest into the rootfs from scratch. The
good news is that it seems there's already an armadillo recipe
available: http://layers.openembedded.org/layerindex/recipe/58748/
[5] If the image you build installs the armadillo recipe, it will
automatically include any dependencies into the rootfs. Then, you can
export the SDK and use that for your cross compile.
If you're already using pybombs, it could be easy to do #2. If you
roll your own rootfs and SDK using openembedded, then you have to
maintain your personal SD image/SDK for everything, which has its own
downsides.
EJ
On Thu, Oct 26, 2017 at 9:01 AM, Francois Quitin via USRP-users
usrp-users@lists.ettus.com wrote:
Francois QUITIN
Assistant Professor
BEAMS Dpt. – Embedded Electronics
Brussels School of Engineering
Université Libre de Bruxelles (ULB)
Web https://sites.google.com/site/fquitin2/
Phone +32 2 650 2829
Dear Philip, EJ,
Thanks a lot for your replies. To keep things simple, I'm tying to
manually cross-compile the Armadillo library. Unfortunately, there are a
few dependencies that are not available on the default E310 image
(OpenBLAS, LAPACK, ATLAS, SuperLU).
We've made quite a few changes to the E310 FPGA, so I'm a bit frisky at
re-installing UHD using pybombs... I'd rather just include the libraries
and dependencies I need to my current UHD version.
Anyway, with the clues you gave me I should be able to figure something
out.
Thanks!
François
On 26.10.2017 15:27, EJ Kreinar wrote:
> Hi Francois,
>
> I see Balister beat me to reply... I'm not a cross-compile expert, so
> he probably has better recommendations, but I'll add a couple
> thoughts. There's probably three feasible options:
>
> 1. Manual cross compile: Manually compile the project of interest,
> sourcing the SDK environment and then building with cmake or whatever
> the project's build system is (armadillo looks like cmake). This is a
> decent introduction to using the SDK
> (http://www.yoctoproject.org/docs/2.1/sdk-manual/sdk-manual.html [3]).
> Then deploy the generated code to the E310. It's feasible, but could
> be a headache if the external project has other dependencies.
> 2. Pybombs cross compile: I just checked, and there's an armadillo
> recipe in gr-recipes... Assuming you're using the E310 SDK inside a
> pybombs prefix, it might be an easy solution to just pybombs install
> armadillo. Worth a shot! And if it doesnt work, it would be good to
> share how to fix this :D
> 3. Open-embedded build: Because the E310 distro is built using
> openembedded (https://github.com/EttusResearch/meta-ettus/tree/jethro
> [4] -- the jethro branch is, I believe, the most recent build), you
> could bake the projects of interest into the rootfs from scratch. The
> good news is that it seems there's already an armadillo recipe
> available: http://layers.openembedded.org/layerindex/recipe/58748/
> [5] If the image you build installs the armadillo recipe, it will
> automatically include any dependencies into the rootfs. Then, you can
> export the SDK and use that for your cross compile.
>
> If you're already using pybombs, it could be easy to do #2. If you
> roll your own rootfs and SDK using openembedded, then you have to
> maintain your personal SD image/SDK for everything, which has its own
> downsides.
>
> EJ
>
> On Thu, Oct 26, 2017 at 9:01 AM, Francois Quitin via USRP-users
> <usrp-users@lists.ettus.com> wrote:
>
>> Dear all,
>>
>> I'm writing code for the USRP E310 using the SDK from
>> http://files.ettus.com/e3xx_images/e3xx-release-4/ [1] I've been
>> able to write code, cross-compile it and execute it without any
>> problems on the E310.
>>
>> I'm trying to include external libraries (open-source ones, such as
>> Armadillo) to my cross-compiling project. How can I "cleanly"
>> include these libraries in my cross-compiling project?
>>
>> Thanks,
>> François
>>
>> ---
>>
>> _______________________________________________
>> USRP-users mailing list
>> USRP-users@lists.ettus.com
>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>> [2]
>
>
>
> Links:
> ------
> [1] http://files.ettus.com/e3xx_images/e3xx-release-4/
> [2] http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
> [3] http://www.yoctoproject.org/docs/2.1/sdk-manual/sdk-manual.html
> [4] https://github.com/EttusResearch/meta-ettus/tree/jethro
> [5] http://layers.openembedded.org/layerindex/recipe/58748/
---
Francois QUITIN
Assistant Professor
BEAMS Dpt. – Embedded Electronics
Brussels School of Engineering
Université Libre de Bruxelles (ULB)
Web https://sites.google.com/site/fquitin2/
Phone +32 2 650 2829
PB
Philip Balister
Thu, Oct 26, 2017 2:15 PM
On 10/26/2017 04:07 PM, Francois Quitin via USRP-users wrote:
Dear Philip, EJ,
Thanks a lot for your replies. To keep things simple, I'm tying to
manually cross-compile the Armadillo library. Unfortunately, there are a
few dependencies that are not available on the default E310 image
(OpenBLAS, LAPACK, ATLAS, SuperLU).
Yes, I'm aware that pain. I do need to look over what the gnss sdr guys
have done and see what I can do to make it easier for people in your
position.
Philip
We've made quite a few changes to the E310 FPGA, so I'm a bit frisky at
re-installing UHD using pybombs... I'd rather just include the libraries
and dependencies I need to my current UHD version.
Anyway, with the clues you gave me I should be able to figure something
out.
Thanks!
François
On 26.10.2017 15:27, EJ Kreinar wrote:
Hi Francois,
I see Balister beat me to reply... I'm not a cross-compile expert, so
he probably has better recommendations, but I'll add a couple
thoughts. There's probably three feasible options:
- Manual cross compile: Manually compile the project of interest,
sourcing the SDK environment and then building with cmake or whatever
the project's build system is (armadillo looks like cmake). This is a
decent introduction to using the SDK
(http://www.yoctoproject.org/docs/2.1/sdk-manual/sdk-manual.html [3]).
Then deploy the generated code to the E310. It's feasible, but could
be a headache if the external project has other dependencies.
- Pybombs cross compile: I just checked, and there's an armadillo
recipe in gr-recipes... Assuming you're using the E310 SDK inside a
pybombs prefix, it might be an easy solution to just pybombs install
armadillo. Worth a shot! And if it doesnt work, it would be good to
share how to fix this :D
- Open-embedded build: Because the E310 distro is built using
openembedded (https://github.com/EttusResearch/meta-ettus/tree/jethro
[4] -- the jethro branch is, I believe, the most recent build), you
could bake the projects of interest into the rootfs from scratch. The
good news is that it seems there's already an armadillo recipe
available: http://layers.openembedded.org/layerindex/recipe/58748/
[5] If the image you build installs the armadillo recipe, it will
automatically include any dependencies into the rootfs. Then, you can
export the SDK and use that for your cross compile.
If you're already using pybombs, it could be easy to do #2. If you
roll your own rootfs and SDK using openembedded, then you have to
maintain your personal SD image/SDK for everything, which has its own
downsides.
EJ
On Thu, Oct 26, 2017 at 9:01 AM, Francois Quitin via USRP-users
usrp-users@lists.ettus.com wrote:
On 10/26/2017 04:07 PM, Francois Quitin via USRP-users wrote:
> Dear Philip, EJ,
>
> Thanks a lot for your replies. To keep things simple, I'm tying to
> manually cross-compile the Armadillo library. Unfortunately, there are a
> few dependencies that are not available on the default E310 image
> (OpenBLAS, LAPACK, ATLAS, SuperLU).
Yes, I'm aware that pain. I do need to look over what the gnss sdr guys
have done and see what I can do to make it easier for people in your
position.
Philip
>
> We've made quite a few changes to the E310 FPGA, so I'm a bit frisky at
> re-installing UHD using pybombs... I'd rather just include the libraries
> and dependencies I need to my current UHD version.
>
> Anyway, with the clues you gave me I should be able to figure something
> out.
>
> Thanks!
> François
>
>
>
> On 26.10.2017 15:27, EJ Kreinar wrote:
>> Hi Francois,
>>
>> I see Balister beat me to reply... I'm not a cross-compile expert, so
>> he probably has better recommendations, but I'll add a couple
>> thoughts. There's probably three feasible options:
>>
>> 1. Manual cross compile: Manually compile the project of interest,
>> sourcing the SDK environment and then building with cmake or whatever
>> the project's build system is (armadillo looks like cmake). This is a
>> decent introduction to using the SDK
>> (http://www.yoctoproject.org/docs/2.1/sdk-manual/sdk-manual.html [3]).
>> Then deploy the generated code to the E310. It's feasible, but could
>> be a headache if the external project has other dependencies.
>> 2. Pybombs cross compile: I just checked, and there's an armadillo
>> recipe in gr-recipes... Assuming you're using the E310 SDK inside a
>> pybombs prefix, it might be an easy solution to just pybombs install
>> armadillo. Worth a shot! And if it doesnt work, it would be good to
>> share how to fix this :D
>> 3. Open-embedded build: Because the E310 distro is built using
>> openembedded (https://github.com/EttusResearch/meta-ettus/tree/jethro
>> [4] -- the jethro branch is, I believe, the most recent build), you
>> could bake the projects of interest into the rootfs from scratch. The
>> good news is that it seems there's already an armadillo recipe
>> available: http://layers.openembedded.org/layerindex/recipe/58748/
>> [5] If the image you build installs the armadillo recipe, it will
>> automatically include any dependencies into the rootfs. Then, you can
>> export the SDK and use that for your cross compile.
>>
>> If you're already using pybombs, it could be easy to do #2. If you
>> roll your own rootfs and SDK using openembedded, then you have to
>> maintain your personal SD image/SDK for everything, which has its own
>> downsides.
>>
>> EJ
>>
>> On Thu, Oct 26, 2017 at 9:01 AM, Francois Quitin via USRP-users
>> <usrp-users@lists.ettus.com> wrote:
>>
>>> Dear all,
>>>
>>> I'm writing code for the USRP E310 using the SDK from
>>> http://files.ettus.com/e3xx_images/e3xx-release-4/ [1] I've been
>>> able to write code, cross-compile it and execute it without any
>>> problems on the E310.
>>>
>>> I'm trying to include external libraries (open-source ones, such as
>>> Armadillo) to my cross-compiling project. How can I "cleanly"
>>> include these libraries in my cross-compiling project?
>>>
>>> Thanks,
>>> François
>>>
>>> ---
>>>
>>> _______________________________________________
>>> USRP-users mailing list
>>> USRP-users@lists.ettus.com
>>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>>> [2]
>>
>>
>>
>> Links:
>> ------
>> [1] http://files.ettus.com/e3xx_images/e3xx-release-4/
>> [2] http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>> [3] http://www.yoctoproject.org/docs/2.1/sdk-manual/sdk-manual.html
>> [4] https://github.com/EttusResearch/meta-ettus/tree/jethro
>> [5] http://layers.openembedded.org/layerindex/recipe/58748/
>
> ---
> Francois QUITIN
> Assistant Professor
>
> BEAMS Dpt. – Embedded Electronics
> Brussels School of Engineering
> Université Libre de Bruxelles (ULB)
>
> Web https://sites.google.com/site/fquitin2/
> Phone +32 2 650 2829
>
> _______________________________________________
> USRP-users mailing list
> USRP-users@lists.ettus.com
> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com