-
-
Save germanviscuso/30cfa7dfb041c12e6ba3 to your computer and use it in GitHub Desktop.
INDEX | |
----- | |
- BUILD IT YOURSELF | |
- BUILD THE AUDIO SERVICE | |
- BUILDING FOR ANDROID | |
- INSTALL WITHOUT BUILDING | |
BUILD IT YOURSELF | |
----------------- | |
# make sure you have installed the latest Raspbian OS | |
# similar instructions for Ubuntu are available here: https://allseenalliance.org/docs-and-downloads/documentation/configuring-build-environment-linux-platform | |
sudo apt-get install build-essential | |
sudo apt-get install maven | |
sudo apt-get install scons | |
sudo apt-get install git | |
sudo apt-get install curl | |
sudo apt-get install openssl | |
sudo apt-get install libssl-dev | |
sudo apt-get install libjson0 | |
sudo apt-get install libjson0-dev | |
mkdir ~/bin | |
echo "export PATH=$PATH:~/bin" >> ~/.bashrc | |
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo | |
chmod a+x ~/bin/repo | |
source ~/.bashrc | |
mkdir -p ~/WORKING_DIRECTORY/alljoyn | |
cd ~/WORKING_DIRECTORY/alljoyn | |
git config --global user.name "YOUR_NAME_HERE" | |
git config --global user.email "YOUR_EMAIL_HERE" | |
repo init -u https://git.allseenalliance.org/gerrit/devtools/manifest | |
repo sync | |
export AJ_ROOT=$(pwd) | |
sudo ln -s /usr/bin/g++ /usr/bin/arm-angstrom-linux-gnueabi-g++ | |
sudo ln -s /usr/bin/gcc /usr/bin/arm-angstrom-linux-gnueabi-gcc | |
cd ~/WORKING_DIRECTORY/alljoyn/core/alljoyn | |
scons OS=linux CPU=arm WS=off OE_BASE=/usr BINDINGS=cpp,c,java,js,objc,unity #please check the IMPORTANT comments below before running | |
sudo ln -sf ~/WORKING_DIRECTORY/alljoyn/core/alljoyn/build/linux/arm/debug/dist/cpp/lib/liballjoyn.so /lib/arm-linux-gnueabihf/liballjoyn.so | |
cd ~/WORKING_DIRECTORY/alljoyn/core/alljoyn/build/linux/arm/debug/dist/cpp/bin | |
ldd alljoyn-daemon #daemon not available in latest versions of alljoyn, use BR=on with scons for embedded daemon | |
./alljoyn-daemon --version | |
After executing alljoyn-daemon --version, you should see something like the following: | |
AllJoyn Message Bus Daemon version: v0.0.1 | |
Copyright (c) 2009-2014 AllSeen Alliance. | |
Build: AllJoyn Library v0.0.1 (Built Fri Aug 22 05:36:57 UTC 2014 by pi - Git: alljoyn branch: '(no branch)' tag: 'v14.06' (+146 changes) commit ref: d611c623c14fb4d404253f39a4641bee518708b9) | |
IMPORTANT: | |
In the line: | |
scons OS=linux CPU=arm WS=off OE_BASE=/usr BINDINGS=cpp,c,java,js,objc,unity | |
the BINDINGS determine which platforms you build for (options are cpp, c, objc, java js and unity). | |
CPP, C: For running the deamon you'll only need to build for cpp but maybe you also want the other platforms. | |
JAVA: don't use OpenJDK, set Java to oracle-java7-jdk as explained below: | |
sudo apt-get install oracle-java7-jdk | |
export JAVA_HOME="/usr/lib/jvm/jdk-7-oracle-armhf" | |
echo "export PATH=$PATH:$JAVA_HOME/bin" >> ~/.bashrc | |
JS: If you also want to compile for js you need to add js to the bindings but you'll have to download xulrunner from here: | |
http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.2/sdk/xulrunner-1.9.2.en-US.mac-i386.sdk.tar.bz2 | |
and set the GECKO_HOME variable to point to that uncompressed directory (only the headers are used). | |
UNITY: to compile for Unity you'll have to install the Mono runtime and gcms: | |
sudo apt-get install mono-runtime | |
sudo apt-get install mono-gmcs | |
GTEST: If you want to build all the unit tests please follow the section googletest in this document: | |
https://allseenalliance.org/sites/default/files/resources/config_build_environment_linux.pdf | |
and export GTEST_DIR with your path to the uncompressed file | |
BULLSEYE: References to missing variable BULLSEYE_BIN can be safely ignored. | |
Bullseye is code coverage analysis tool used by the alljoyn team but unfortunately it's not free or open source so I couldn't download it: http://www.bullseye.com | |
SERVICES: you can specify which alljoyn services to build as a scons parameter ( eg. SERVICES=about,audio ) | |
Thanks to Mike Young whose initial setup description helped create this updated guide: | |
http://wildernessvoice.com/2014/07/building-allseen-alliances-alljoyn-core-on-raspberry-pi/ | |
BUILD THE AUDIO SERVICE | |
----------------------- | |
Once you're all set up with the previous section you can also build AllJoyn audio service (enables audio streaming): | |
cd ~/WORKING_DIRECTORY/alljoyn/core/alljoyn/services/audio | |
scons OS=linux CPU=arm WS=off SERVICES=about,audio BUILD_SERVICES_SAMPLES=off BINDINGS=core,cpp OE_BASE=/usr | |
If you get a compilation error in the AudioMixerThread method (in file src/posix/ALSADevice.cc) locate the line with the error and remove the 3rd parameter (false) in the source code (leave the first 2 parameters only). | |
BUILDING FOR ANDROID | |
-------------------- | |
Please follow the instructions here: | |
https://allseenalliance.org/developers/develop/building/android/build-source | |
and apply this patch if you need Android 5 support: | |
https://jira.allseenalliance.org/browse/ASACORE-1208 | |
INSTALL WITHOUT BUILDING | |
------------------------ | |
This is how you install the js version of AllJoyn without building it yourself (thx to oskarhane http://oskarhane.com/raspberry-pi-install-node-js-and-npm/ for the original instructions): | |
#!/bin/bash | |
#Make a new dir where you'll put the binary | |
sudo mkdir /opt/node | |
#Get it | |
wget http://nodejs.org/dist/v0.10.28/node-v0.10.28-linux-arm-pi.tar.gz | |
#unpack | |
tar xvzf node-v0.10.28-linux-arm-pi.tar.gz | |
#Copy to the dir you made as the first step | |
sudo cp -r node-v0.10.28-linux-arm-pi/* /opt/node | |
#Add node to your path so you can call it with just "node" | |
cd ~ | |
nano .bashrc | |
#Add these lines to the file you opened | |
PATH=$PATH:/opt/node/bin | |
export PATH | |
#Save and exit | |
#Install npm package of AllJoyn contributed by octoblu https://github.com/octoblu/alljoyn https://www.youtube.com/watch?v=OpjVzKeLpEQ | |
npm install -g alljoyn | |
#Warning: only discovery, messaging and notifications supported as of this writing | |
Important: | |
If node is not found even after adding it to the path maybe you're sudoing and the environment variables are not being passed. Try adding the path /opt/node/bin to the /etc/sudoers file |
CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf-
Hello germanviscuso,
After I did avobe steps, I can not found ~/WORKGOUP/core/alljoyn/build/linux/arm/debug/dist/ directory.
I can found only ~/WORKGOUP/core/alljoyn/build/linux/arm/debug/obj directory.
Could you let me know how to make missing directory?
Best Regards,
ShigeMaeda
Tip here for the armv7 peeps: https://ask.allseenalliance.org/question/788/how-to-compile-suite-140600-on-beaglebone-black/
The goofy defaults in the build are for raspi but they won't work for other platforms like the BBB.
I do not have the ~/WORKING_DIRECTORY/alljoyn/core/alljoyn/services/audio directory. The only thing in the services directory is about. I looked at the source tar balls and none of the recent ones have the audio directory either.
Thoughts?
I had to run
sudo apt-get update
sudo apt-get install libssl-dev
before as I was getting errors saying that it could not find some openssl header file.
gpg: keybox '/root/.repoconfig/gnupg/pubring.kbx' created
gpg: /root/.repoconfig/gnupg/trustdb.gpg: trustdb created
gpg: key 16530D5E920F5C65: public key "Repo Maintainer <[email protected]>" imported
gpg: key 67B7E448692B382C: public key "Conley Owens <[email protected]>" imported
gpg: Total number processed: 2
gpg: imported: 2
Get https://gerrit.googlesource.com/git-repo/clone.bundle
Get https://gerrit.googlesource.com/git-repo
From https://gerrit.googlesource.com/git-repo
35d2221..259f165 master -> origin/master
Traceback (most recent call last):
File "/root/repo", line 883, in <module>
main(sys.argv[1:])
File "/root/repo", line 871, in main
os.execv(sys.executable, me)
TypeError: execv() arg 2 must contain only strings
The command '/bin/sh -c /root/repo init -u https://git.allseenalliance.org/gerrit/devtools/manifest' returned a non-zero code: 1
The repo line should be repo init -u https://git.allseenalliance.org/gerrit/devtools/manifest.git
Hi germanviscuso,
I am trying to do these steps and after executing this command:
scons OS=linux CPU=arm WS=off OE_BASE=/usr BINDINGS=cpp,c
the ubuntu terminal displayed these:
scons: Reading SConscript files ...
CROSS_COMPILE variable is required for Linux/ARM builds
when I tried to update my last command to this:
scons OS=linux CPU=arm WS=off OE_BASE=/usr BINDINGS=cpp,c CROSS_COMPILE=on
the terminal displayed an error:
scons: done reading SConscript files.
scons: Building targets ...
[CC] alljoyn_c/test/bbcclient.c
sh: 1: ongcc: not found
Please let me know what needs to be done with this issue.
Thank you very much,
Darrell