Hi Stefan, Am 02.01.2017 um 10:53 schrieb Stefan Seyfried:
On 02.01.2017 10:43, Roger Oberholtzer wrote:
On Mon, Jan 2, 2017 at 10:00 AM, Stefan Seyfried
wrote: If you want to cross-compile easily, use a distribution that's designed to do so -- I can heartily recommend openembedded / The Yocto Project.
Let's be very clear that Yocto is _not_ a distribution but a toolkit for building your own distribution. Which we should not be advertising on an opensuse-* mailinglist, as all benefits of our distro that users may rely on then vanish.
I looked at this. But having all the packages available as RPMS managed by zypper is a handy thing.
Which is absolutely possible with The Yocto Project: zypper as package management, rpm as package format. I personally use opkg, but just because I'm using it on embedded platforms where space matters.
And the killerfeature of openembedded for me: you can easily build a reloacatable SDK which allows for easy and painless crosscompilation, targeted for your exact target configuration.
Please remember the original question, cross-compiling userspace software (for openSUSE). Advising people against using openSUSE is not a solution to that question and highly questionable on an openSUSE mailing list! I will also add that I published a paper on why openSUSE can be a better option for not too constrained embedded systems compared to Yocto or BuildRoot. They may seem more convenient at first, but they are either insecure if done lazily or quite work-intensive if done responsibly.
I have ideas how to do it. I already do this type of thing with a number of other pieces of hardware. What I was exploring was if there was something I had missed for ARM and openSUSE. Like maybe there was a build like the Windows build that puts everything in a separate tree and all packages are noarch. One never knows what one may find somewhere on OBS.
Basically you'd need to do some kinde of chroot'ed install of an ARM root and use that as --sysroot for a suitable cross-compiler (if you find one).
Roger, just loosely follow https://en.opensuse.org/HCL:Chroot to setup an aarch64 chroot instead of armv7hl, using `aarch64-suse-linux-gcc-6 -print-sysroot` instead of a local "rootfs" dir. You can then chroot into it to update and to add libjpeg etc. packages as necessary. rpm can install packages into a sysroot (using qemu-linux-user where necessary for %post etc. hooks), but zypper seems to lack support for that. So cross-compiling is possible theoretically, but ...
I suspect I will go the real hardware routs and just keep a Raspberry PI 3 on the local network. It is already working fine.
Probably the easiest / most reliable way to do this.
Native or qemu-linux-user are the two build options we recommend, cross-compiling is mainly used for kernels. Both can be done manually, with osc tool or with an OBS server. Regards, Andreas -- SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org