Getting WebRTC compiled for ARM


#1

Hey fellow Maker/Explorer/Coders,

I’ve been doing lot of experiments with WebRTC. Right now I’m trying to get it to compile for the BeagleBone Black, but with no real success yet.

If we can get a stable build process running on a Vagrantfile VM there are all kinds of cool things we can start doing:
Multicast video to many endpoints without impacting the BBB
Significant reduction in latency (hello UDP in the browser!)

  • much much more

There is are active threads on the WebRTC google group, but I have not been able to recreate there success so far.

https://groups.google.com/forum/#!topic/discuss-webrtc/yzuk8wATMU8
https://groups.google.com/d/msg/discuss-webrtc/yzuk8wATMU8/IYfdFFhiWOIJ

And there is a project that has a Vagrant file that is supposed to work:
https://github.com/pristineio/webrtc-build-scripts

Finally, there is even a node WebRTC project that I really like, that only needs the libjingle library to build in order to work:

https://github.com/js-platform/node-webrtc

Let me know if you think you can help!
-Brian


#2

Trying to replicate Slim Sayadi's solution: https://groups.google.com/d/msg/discuss-webrtc/yzuk8wATMU8/IYfdFFhi...

Created a Vagrantfile (https://gist.github.com/BrianAdams/19ba000770dd1f3c1efb) that automates his steps. I have managed to run it through to the last step, the actual build where I get the following error message right now:

[4/168] CC obj/chromium/src/net/third_party/nss/ssl/bodge/libssl.secitem_array.o
FAILED: /usr/bin/arm-linux-gnueabihf-gcc -MMD -MF obj/chromium/src/net/third_party/nss/ssl/bodge/libssl.secitem_array.o.d -DV8_DEPRECATION_WARNINGS -D_FILE_OFFSET_BITS=64 -DCHROMIUM_BUILD -DTOOLKIT_VIEWS=1 -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_ASH=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_GLIB=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_LIBJPEG_TURBO=1 -DUSE_X11=1 -DUSE_CLIPBOARD_AURAX11=1 -DENABLE_ONE_CLICK_SIGNIN -DENABLE_PRE_SYNC_BACKUP -DUSE_XI2_MT=2 -DENABLE_REMOTING=1 -DENABLE_WEBRTC=1 -DENABLE_PEPPER_CDMS -DENABLE_CONFIGURATION_POLICY -DENABLE_NOTIFICATIONS -DUSE_UDEV -DENABLE_EGLIMAGE=1 -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_BACKGROUND=1 -DENABLE_GOOGLE_NOW=1 -DCLD_VERSION=2 -DCLD2_DATA_SOURCE=static -DENABLE_FULL_PRINTING=1 -DENABLE_PRINTING=1 -DENABLE_SPELLCHECK=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_MANAGED_USERS=1 -DENABLE_MDNS=1 -DENABLE_SERVICE_DISCOVERY=1 -DNO_PKCS11_BYPASS -DNSS_ENABLE_ECC -DUSE_UTIL_DIRECTLY -DUSE_NSS=1 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -Igen -I../../chromium/src/net/third_party/nss/ssl/bodge -fstack-protector --param=ssp-buffer-size=4 -pthread -fno-exceptions -fno-strict-aliasing -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -I/var/webrtc/trunk/arm-sysroot/usr/include/nss -I/var/webrtc/trunk/arm-sysroot/usr/include/nspr -Wno-format -Wno-unused-result -march=armv7-a -mtune=generic-armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -mthumb --sysroot=/var/webrtc/trunk/arm-sysroot -O2 -fno-ident -fdata-sections -ffunction-sections -funwind-tables -U_FORTIFY_SOURCE -c ../../chromium/src/net/third_party/nss/ssl/bodge/secitem_array.c -o obj/chromium/src/net/third_party/nss/ssl/bodge/libssl.secitem_array.o
../../chromium/src/net/third_party/nss/ssl/bodge/secitem_array.c:9:21: fatal error: nssutil.h: No such file or directory

The whole jumble of OpenSSL and Nestscape's version seems to be causing me a lot of problems.