OPNsense Forum

English Forums => Development and Code Review => Topic started by: rackg on April 20, 2016, 03:45:44 pm

Title: How to fire an arm/powerpc / mips kernel?
Post by: rackg on April 20, 2016, 03:45:44 pm
I am interested in building arm/powerpc / mips kernel. Can build "make everything" generates arm/powerpc /mips iso/img files ? 

Any help ?
Title: Re: How to fire an arm/powerpc / mips kernel?
Post by: franco on April 22, 2016, 11:03:17 am
Building from native environments (even if emulated) works automatically.

But since arm/mips are probably not the fastest you want to look into cross building. Base and kernel packages cross-build should be trivial, but requires a bit of modification to tools.git as I've not gotten around to free time for this.

Cross-building ports will be less trivial. There are also some obstacles in the form of packages that don't build on non Intel arches that either need to be removed or simply coerced into building (sometimes it's just a FreeBSD ports options that mistakenly prevents such a build), other times it's a code fix.

The current plan is to have an ARM test build, which will probably be a bit less in scope than its Intel build siblings but still good enough to be used for setting up and securing a network.

Any help here is greatly appreciated and I'll gladly pick up fixes that make it easier for others to do this in the future.

PS: I would suggest trying a native environment build first, see how far that goes and what needs to be done.
Title: Re: How to fire an arm/powerpc / mips kernel?
Post by: rackg on April 23, 2016, 03:35:03 am
Thanks franco. As you said tools.git would need lot more changes. I will try different make file to tigger kernel. But what exactly is base ? I saw it was building ZFS during a cross compile.

I will also try in native env.
Title: Re: How to fire an arm/powerpc / mips kernel?
Post by: rackg on April 27, 2016, 07:41:55 am
Do you have list of opnsense features that doesnt work in ARM/MIPS ?
Title: Re: How to fire an arm/powerpc / mips kernel?
Post by: franco on April 27, 2016, 06:07:21 pm
No, FreeBSD is perfectly fine. What doesn't always work is the ports builds, in these cases the ports can be removed from the build and then the build lacks certain features, but that's ok.

An example is the startup/shutdown beep that should not compile under anything other than i386/amd64.

Phalcon MVC is currenltly set to i386/amd64 only too, but in this case it should be trivial to make the port work.

The biggest thing here is time and collaborative progress.
Title: Re: How to fire an arm/powerpc / mips kernel?
Post by: rackg on May 01, 2016, 07:18:15 am
Thanks franco. I have an native hardware will give a try. I have issue with NFS mounted /usr compilation in native kernel. Will let u know further updates on this.
Title: Re: How to fire an arm/powerpc / mips kernel?
Post by: netrixtardis on May 08, 2016, 11:37:19 pm
interesting topic - this should apply to other non-x86 based archs supported by FreeBSD?  Example:  SPARC64.  I have a couple of Sun Netra T1s, and an Netra X1 could act has routers - the machines already have 2 NICs...
Title: Re: How to fire an arm/powerpc / mips kernel?
Post by: franco on May 09, 2016, 07:26:22 am
From the FreeBSD source side that's going to be straightforward. The ports may give a bit of trouble, not sure about endian-issues with big endian arches in several tools, e.g. the Phalcon framework.

For a pure hobby project it might be more work than worth the trouble, otherwise it's something that can be looked into with the hardware around like you said. :)