Is cross-compiling an academic exercise? If not, why not just natively build it? Natively building Asterisk or FreeSWITCH is as straightforward on the Raspberry Pi as it is on more mainstream platforms. Here's how I do it: http://www.bobjectsinc.com/tinycomputers/raspberry-pi-vs-beaglebone-black-bu... It takes awhile, but doesn't require any head-scratching. Bob On Wed, Jan 1, 2014 at 11:37 AM, Dušan Dragić <dragic.dusan@gmail.com>wrote:
Happy New Year Everyone! May all your wishes come true!
Finally had some time to get back at this. After my last message I simply built freeswitch using qemu-arm-static since I needed it running on RPi. That worked just fine, except for some mod_spandsp trouble (more on that later).
Now I took another shot at cross compiling. First, I looked at config.cache differences between cross compile and native, and there where quite a few. But most where because apr disables large file support when being cross compiled. There where also some thread related but none that made any difference, freeswitch still segfaulted in the same way.
Since this was on Fedora 19 64-bit, I decided to try on a different build platform, namely Debian 7.3 64-bit. While running make on debian I ran into FS-5956 (infinite loop on build), but thankfully Seven Du's fix-loop-on-mac-2.diff patch fixed the problem.
After it was finally built I started freeswitch on RPi and what do you know, it actually runs and works!!
The build steps are the same as outlined in my first post (the env setup script was the same, only paths and build gcc's triplet were changed).
If anyone wants to try this (using --sysroot), you will probably need the patch from FS-6016 to fix esl makefile (or something along those lines). Also you may need the patch from FS-6015, but that can be sidestepped by using "export config_TARGET_LIBS=-lpthread" (Note: debian's gcc is built with "--with-sysroot=/" so sqlite configure will probably not fail to detect libpthread, but it will be testing for the build system library not the host (raspbian; rpi sysroot) one).
Minor annoyance: freeswitch version string is missing the git revision and date since ./build/print_git_revision got built for arm and didn't run on the build system (x86). This is a similar problem as with gennmtab that I mentioned before.
As mentioned earlier, spandsp doesn't work for me on rpi, but this isn't related to cross-compiling, I'm also having this problem with native compiled freeswitch (both master and stable). It hogs the cpu during module loading (while adding tone descriptors), but also elsewhere (for example sending fax with txfax). I'll start a new thread about this issue.
Well, there you have it, cross-compiled freeswitch... sorry about the long, blog like post :)
P.S. Kristian, thanks for the openwrt link. Even though I didn't go that route (for now), it's useful to see how others have dealt with some of these problems.
On 4 December 2013 03:12, Kristian Kielhofner <kris@kriskinc.com> wrote:
Your best bet to cross compile for Raspberry Pi (or anything, really) is to use OpenWRT:
http://wiki.openwrt.org/toh/raspberry_pi
with the latest OpenWRT telephony code:
http://git.nanl.de/?p=openwrt/telephony.git;a=summary
If you give it a shot let us know how it goes!
On Tue, Dec 3, 2013 at 3:21 PM, Dušan Dragić <dragic.dusan@gmail.com> wrote:
Hi all,
This weekend I tried my luck at cross-compiling freeswitch for raspberry pi (armv6). After a few bumps along the way (opened jiras for those) I managed to build it, but when running freeswitch on the target system it segfaults during startup.
I'm building on Fedora 19 x86_64 using the prebuilt toolchain from https://github.com/raspberrypi/tools (I can build a toolchain from source if anyone thinks it might be better). Raspbian debootstrap created base system is used as sysroot (also tried loop mounted raspbian image as sysroot).
My simple build environment setup script: http://pastebin.freeswitch.org/21698
The build process (source the script, configure and compile): ./bootstrap.sh . ~/fs-cc-env.sh ./configure --build=x86_64-redhat-linux --host=arm-linux-gnueabihf --with-sysroot=$SYSROOT make
make install didn't work (I guess it's kinda expected, didn't really look into it) so I just copied the binaries, libraries and modules to rpi. Also mod_spidermonkey and mod_xml_rpc were disabled. Didn't even try to build mod_spidermonkey and mod_xml_rpc failed to build (well it builds but makefile tries to run libs/xmlrpc-c/lib/expat/gennmtab/gennmtab which was compiled for arm and should have been x86, probably should create jira for this as well).
Console log when FS is started: http://pastebin.freeswitch.org/21699
and backtrace: http://pastebin.freeswitch.org/21700
Is my build environment sane? What am I missing, any hints? Has anyone successfully cross-compiled FS for raspberry pi?
Thanks, -- Dušan Dragić
Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE: http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
-- Kristian Kielhofner
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
-- Dušan Dragić
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org