Cross-compilation (yet again, sorry...)

Request a package to be made here. Make sure you have searched before requesting.

Cross-compilation (yet again, sorry...)

Postby DavidYon » Sun Aug 14, 2011 9:16 pm

Back again. I've gotten my black plug working as a basic rsync backup for tertiary backups. Or so I think---we'll see how the first rsync goes tonight.

I've still got my Pink plug lying around, and I was hoping to use that as a USB device server. There is a third-party software vendor that provides a free Linux version, but all the user-space binaries are just that---binaries. They have a number of builds that cover a pretty wide spectrum of architectures, ARM included.

But no joy on the Plug. Running any of the pre-built ARM binaries results in a locked-up Plug that needs to be power-cycled.

The vendor offered to port to the Plug if I could provide a tool chain that correctly targets the Plug. They do not have a Plug in-house.

The supported configuration for cross-compiling seems to be distcc with a Plug running the top-level build. But in this case I'm going to either want to (a) build a tool chain on an x86 machine and send them instructions, or (b) build an x86 VM with the proper tool chain and send that to them.

Is there any way to do compiles without a Plug?
DavidYon
 
Posts: 19
Joined: Thu May 19, 2011 11:34 am

Re: Cross-compilation (yet again, sorry...)

Postby WarheadsSE » Sun Aug 14, 2011 9:30 pm

Seriously: READ THE DAMN GUIDES.
Core Developer
Remember: Arch Linux ARM is entirely community donation supported!
WarheadsSE
Developer
 
Posts: 6807
Joined: Mon Oct 18, 2010 2:12 pm

Re: Cross-compilation (yet again, sorry...)

Postby DavidYon » Mon Aug 15, 2011 1:00 am

$this->bbcode_second_pass_quote('WarheadsSE', 'S')eriously: READ THE DAMN GUIDES.


Been there, done that. But I guess you need proof. Ok:

http://archlinuxarm.org/developers/abs is a general overview of the repo's, the build tools, etc. Assumes you are building on a plug. READ MY DAMN POST, I WANT TO BUILD AN ARM BINARY ON AN x86 MACHINE.

http://archlinuxarm.org/developers/building-kernels tells us you how to build kernels. ON A PLUG. And I'm not building a kernel.

http://archlinuxarm.org/developers/building-packages tells us how to build packages. ON A PLUG. See above.

http://archlinuxarm.org/developers/distcc-cross-compiling tells us how to use distcc to cross-compile. BUT THE MASTER IS A PLUG. See my first post find out that I read this already, and knew that it REQUIRES A PLUG.

http://archlinuxarm.org/developers/distributed-compiling looks incomplete. It talks about how to set up distributed compiling. Doesn't explicitly mention whether the build system is hosted on a plug or not. I would assume so given all the other information on the site.

http://archlinuxarm.org/developers/downloads tells us where to get the source for the current Arch Linux ARM releases. Nothing mentioned here about cross-compilation.

http://archlinuxarm.org/developers/github is more of the same, except it tells us how to use github.

So that about covers it in the "Developers" section of the main web site. Now, how about those links in the "Support" section. Let's see:

http://archlinuxarm.org/support/guides is just basic how-to-install-stuff. Nothing here to answer my original question.

http://archlinuxarm.org/support/faq is the FAQ. Apparently my question isn't asked frequently enough.

http://archlinuxarm.org/support/irc links to the IRC channel. Maybe I'd have better luck there than the forum?

Huh. That's wierd. Nothing helpful there either.

Oh, maybe you meant "The Guides" in the forum. Well, let's check those out (can't link to them directly since I'll use up my 10-URL limit)...

"Community Guides" doesn't answer my question.

"User Questions" has many more threads, the only one that mentions cross-compilation points back to the page that says I have to have a Plug as a master build node.

I'll stop there, since nothing else has anything obviously relevant by casual inspection. When I search the forums, the closest thing I find is references to Qemu, but also that it (a) sucks, and (b) is deprecated.

So, oh wise yet impatient one, where is this Guide that you speak of? It is neither linked from the top-level of the web site, nor the forums, nor can it be easily found by search.
DavidYon
 
Posts: 19
Joined: Thu May 19, 2011 11:34 am

Re: Cross-compilation (yet again, sorry...)

Postby DavidYon » Mon Aug 15, 2011 1:04 am

So, in short, the answer of "you need a plug to build something for a plug", is perfectly valid. It's the conclusion I came to after perusing every relevant page I could find on the site. But, since it's always possible that I missed something, I figured I'd just ask the question.

But the bar is pretty high on what get's a straight answer I guess.
DavidYon
 
Posts: 19
Joined: Thu May 19, 2011 11:34 am

Re: Cross-compilation (yet again, sorry...)

Postby WarheadsSE » Mon Aug 15, 2011 1:08 am

I assume this is by the way, in reference to the following: http://www.incentivespro.com/forum/viewtopic.php?t=545

It's not a Sheeva, by the way. It's an ARM11 MPCore, ARMv6K (to be extremely specific), capable of upwards of 1Ghz/core, but clocked at 700Mhz in the Cloud Engines Pogoplug configuration.

Please google 'ct-ng' or 'crosstool linux', as many many documents exist on what, how and why. It's what we use, and we mention it specifically.
Core Developer
Remember: Arch Linux ARM is entirely community donation supported!
WarheadsSE
Developer
 
Posts: 6807
Joined: Mon Oct 18, 2010 2:12 pm

Re: Cross-compilation (yet again, sorry...)

Postby kmihelich » Mon Aug 15, 2011 1:35 am

Our guides on building, guides that I wrote, detail how to duplicate the system we use for building packages for this distribution. I don't go over other scenarios because we don't use them, and I'm not going to maintain documentation for them. We run the top-level builds on the ARM device itself and distcc for compilation to a ct-ng toolchain. The two guides in respect to these operations cover the relevant information for their specific topic. The distcc guide goes over establishing distcc from an ARM device to an x86 computer. The cross-compiling guide covers building the ct-ng toolchain to use with distcc. Both guides imply a certain level of technical proficiency; I don't hand-hold for these subjects. Failure to understand them does not mean they are incomplete, nor require extraneous explicit information. Many developers have made use of these guides to great success with no further information.

We do things this way because it's been proven to result in stable and predictable binaries. It also allows us to build using the native tools, and make use of true file locations and other expectations that come with building packages for a specific distribution. There is no guesswork, it just works.

If you don't want to do things this way for your specific situation, then that falls out of the realm of our support. There are many ways to accomplish builds for ARM on x86, as a simple Google search would provide for you. You might try looking at ScratchBox.
Arch Linux ARM exists and continues to grow through community support, please donate today!
kmihelich
Developer
 
Posts: 1133
Joined: Tue Jul 20, 2010 6:55 am
Location: aka leming #archlinuxarm

Re: Cross-compilation (yet again, sorry...)

Postby DavidYon » Mon Aug 15, 2011 1:55 am

$this->bbcode_second_pass_quote('kmihelich', '
')We do things this way because it's been proven to result in stable and predictable binaries. It also allows us to build using the native tools, and make use of true file locations and other expectations that come with building packages for a specific distribution. There is no guesswork, it just works.

If you don't want to do things this way for your specific situation, then that falls out of the realm of our support. There are many ways to accomplish builds for ARM on x86, as a simple Google search would provide for you. You might try looking at ScratchBox.


Thank you. That's a perfectly valid position to take.

My question did not arise out of lack of technical proficiency, nor for lack of research on this site. I was just looking for confirmation that, in fact, there is no turnkey procedure for the type of cross-compilation that I was looking to accomplish.

Thanks also for the pointers to the outside resources. While I could probably deep-drill that enough to get something working, I can't justify the time investment for the outcome (duplicating what a $60 product will do) nor can I justify it as furthering my professional development.

But thanks again for all the work that you guys do.
DavidYon
 
Posts: 19
Joined: Thu May 19, 2011 11:34 am

Re: Cross-compilation (yet again, sorry...)

Postby DavidYon » Mon Aug 15, 2011 2:09 am

$this->bbcode_second_pass_quote('WarheadsSE', 'I') assume this is by the way, in reference to the following: http://www.incentivespro.com/forum/viewtopic.php?t=545

It's not a Sheeva, by the way. It's an ARM11 MPCore, ARMv6K (to be extremely specific), capable of upwards of 1Ghz/core, but clocked at 700Mhz in the Cloud Engines Pogoplug configuration.

Please google 'ct-ng' or 'crosstool linux', as many many documents exist on what, how and why. It's what we use, and we mention it specifically.


Yes, that is indeed my post. And as you can see, I haven't hung out in the embedded ARM community enough to get some of the nuances right. And back when I did the post, I was even less up to speed.

So as I mention in my earlier reply, thanks for the more detailed response. But I will have to find something more suited to the plug that doesn't require that level of time investment.

But the two Pogo's and the Sheeva I acquired did serve the purpose as a proof of concept for a client that has under-spec'd the core architecture for their embedded product. Not sure I convinced them, but they now have at least a concrete example of what can be done for surprisingly little money.
DavidYon
 
Posts: 19
Joined: Thu May 19, 2011 11:34 am
Top

Re: Cross-compilation (yet again, sorry...)

Postby DavidYon » Mon Aug 15, 2011 2:53 am

$this->bbcode_second_pass_quote('crimsonredmk', 'I')t all depends on how much time you want to invest in maintaining it as well. Libraries change, kernels change, and you have to account for that in a cross-compiler, so it takes time to maintain and make sure everything works as time passes. You also do have to spend quite a bit of time getting it working in the first place. Or, you could install ALARM and have a working, slower compiler. Most people just want to compile "that one package" or a few, so there isn't much sense in setting up a cross-compiler and taking out a few hours to get it working instead of just letting makepkg work by itself on a plug.


I hear ya. If it were just me involved, then just using the plug as a build controller makes a world of sense.

The problem at hand is that I'm dealing with a 3rd-party software vendor who doesn't have a plug and likely won't invest in one. So my only sure-fire way to lower the barrier is to have a cross-compilation configuration that doesn't require it.

Maybe they'll figure it out on their own. Maybe someday they'll invest in a plug. But I can't justify my time to do it for them.
DavidYon
 
Posts: 19
Joined: Thu May 19, 2011 11:34 am
Top


Return to Package Requests

Who is online

Users browsing this forum: No registered users and 4 guests