I’m having problems getting Legato installed. I suspect I have a problem with git, but I’m not really sure and haven’t been able to solve it. When I run make to install legato I get the following messages:
isabel@isabel-F3Sv:~/Legato/legato-AlphaB-r1$ make
Makefile:47: AR7_TOOLCHAIN_DIR not defined. Using default.
Makefile:56: WP7_TOOLCHAIN_DIR not defined. Using default.
Makefile:65: RASPI_TOOLCHAIN_DIR not defined.
fatal: No names found, cannot describe anything.
mkdir -p build/tools && cd build/tools && cmake …/…/buildTools && make
– Flex found at /usr/bin/flex.
– Bison found at /usr/bin/bison.
– Configuring done
– Generating done
– Build files have been written to: /home/isabel/Legato/legato-AlphaB-r1/build/tools
make[1]: Entering directory /home/isabel/Legato/legato-AlphaB-r1/build/tools' make[2]: Entering directory /home/isabel/Legato/legato-AlphaB-r1/build/tools’
make[3]: Entering directory /home/isabel/Legato/legato-AlphaB-r1/build/tools' make[3]: Leaving directory /home/isabel/Legato/legato-AlphaB-r1/build/tools’
[ 35%] Built target ObjectModel
make[3]: Entering directory /home/isabel/Legato/legato-AlphaB-r1/build/tools' make[3]: Leaving directory /home/isabel/Legato/legato-AlphaB-r1/build/tools’
[ 75%] Built target Parser
make[3]: Entering directory /home/isabel/Legato/legato-AlphaB-r1/build/tools' make[3]: Leaving directory /home/isabel/Legato/legato-AlphaB-r1/build/tools’
[100%] Built target mk
make[2]: Leaving directory /home/isabel/Legato/legato-AlphaB-r1/build/tools' make[1]: Leaving directory /home/isabel/Legato/legato-AlphaB-r1/build/tools’
mkdir -p bin
ln -sf /home/isabel/Legato/legato-AlphaB-r1/build/tools/bin/mk* bin/
ln -sf mk bin/mkexe
ln -sf mk bin/mkapp
ln -sf /home/isabel/Legato/legato-AlphaB-r1/framework/tools/scripts/* bin/
ln -sf /home/isabel/Legato/legato-AlphaB-r1/framework/tools/ifgen/ifgen bin/
Configure Legato
export PATH=/usr/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/android-sdk-linux/tools:/opt/android-sdk-linux/platform-tools:/opt/android-sdk-linux:/opt/android-sdk-linux/tools:/opt/android-sdk-linux/platform-tools &&
cd dirname build/localhost/Makefile &&
cmake …/…
-DLEGATO_TARGET=localhost
-DTEST_COVERAGE=
-DINCLUDE_AIRVANTAGE=
Building Legato for target localhost
fatal: Needed a single revision
CMake Error at cmake/GetGitRevision.cmake:16 (string):
string sub-command REPLACE requires at least four arguments.
Call Stack (most recent call first):
CMakeLists.txt:97 (get_git_revision)
– Git Revision: Unknown
– Coverage reporting (TEST_COVERAGE): Disabled
– Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
CMake Warning at framework/doc/CMakeLists.txt:47 (message):
Documentation: Doxygen not found, no documentation will be produced.
– Audio Component (LEGATO_COMPONENTS_AUDIO): STUB
– Modem Component (LEGATO_COMPONENTS_MODEM): AT
– GNSS Component (LEGATO_COMPONENTS_GNSS): AT
Positioning test uses simulator.
– Configuring incomplete, errors occurred!
make: *** [build/localhost/Makefile] Error 1
Before you build the Legato toolchain, you have to (a) install the Yocto compiler distribution & (b) set the environment variables correctly.
After installing the Yocto compiler, according to the getting started (Install Legato Toolchain section) doco, you have to do the following:
cd <your legato toolchain directory>
make
. bin/configlegatoenv
make wp7; make ar7
make docs
Note that the
. bin/configlegatoenv
is critical - otherwise the makefiles can’t find the correct compiler.
And, you have to run this every time you log-on or open a new terminal. I got sick of this, and have added the following to the end of my .bashrc file:
[code]# djc: add the path to the Android toolkit and Yocto compiler
This is the path to your Legato framework directory
cd $HOME/legato-AlphaB-r1
. bin/configlegatoenv > /dev/null
cd ${MYDIR}
disable UNITY menu proxy to stop errors in DS3
UBUNTU_MENUPROXY=""
[/code]
To add this to your .bashrc file so that the environment is set up correctly, do the following:
Log into your Ubuntu dev environment
open a Terminal (from the bar down the left hand side)
type the following:
nano .bashrc
(the leading ‘.’ is important - this is a ‘hidden’ file that you’re working with
Scroll down to the end of the file and hit enter a couple of time to insert some blank lines
Copy the above shell script fragment and paste it into the editor
Save
<CTRL>-O
and exit nano
<CTRL>-X
Open ANOTHER terminal
In the new terminal, type the following:echo $AR7_TOOLCHAIN_DIR
and hit enter. You should get something like this:
/opt/swi/y14-ext/tmp/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-poky-linux-gnueabi
which is the path to your yocto GCC compiler chain. If you don’t then check that the paths in the .bashrc file are appropriate for your installation.
Now, every time you log on or open a new terminal, the environment will be correctly set up.
Thanks for your responses, but unfortunatelly it’s still not working
I discovered I hadn’t installed all packages (I think I just got the first line, and the other were lost when copy-pasting). However I installed them all now and still got the same problem.
I’m using Ubuntu 12.04.3 LTS, which I specially installed for this project.
I hadn’t installed Yocto yet, but like the packages this didn’t improve the situation.
Using
. bin/configlegatoenv
export AR7_TOOLCHAIN_DIR=/…
export WP7_TOOLCHAIN_DIR=/…
Does make the warnings on these toolchains disappear, but doesn’t change anything in the errors.
It contains the correct GCC compilers required to build applications for the WP7.
You should have a directory something like
/opt/swi/y14-ext/tmp/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-poky-linux-gnueabi
which is where the Legato WP7 gcc compiler family is installed.
Did they all install properly? From your reported errors it looks like (at least) git (source code control) and doxygen (Documentation generator) haven’t been installed correctly.
It shouldn’t hurt to re-run the above command line as it won’t modify any tools that are already installed and don’t need updating.
Check that doxygen is installed:dev@legato-dev:~$ which doxygen
/usr/bin/doxygen
Check that git is installed:dev@legato-dev:~$ which git
/usr/bin/git
If either of these commands don’t return a path similar to that given above, then you will need to install the approriate package using sudo apt-get install …
If these packages are installed, you can try making from scratch again:
Try a the following in your legato framework directory:make clean
. bin/configlegatoenv
make
make wp7
make docs
Finally, you can try the nuclear option - remove the legato framework directory completelycd ~
rm -rf legato-AlphaB-r1untar the tarball as per the getting started notes and start the make process again.
I am getting following error when i am trying to run make ar7 command.
How to install particular tool chain. I couldn’t able to get individual tool chain installable.
ubuntu@ubuntu:/dev/Legato/legato-af-master$ make ar7
No toolchain found for target ‘ar6’.
Makefile:159: AR7_TOOLCHAIN_DIR not defined. Using default.
No toolchain found for target ‘ar7’.
No toolchain found for target ‘ar86’.
No toolchain found for target ‘wp7’.
No toolchain found for target ‘wp85’.
Create the build/tools directory, run cmake in there to construct Makefiles, then run make.
ninja is called ninja-build on some distros (e.g., Fedora).
if ! which ninja ;
then
if which ninja-build ;
then
ln -s which ninja-build bin/ninja ;
else
echo “***ERROR: Ninja build tool not found.” 1>&2 ;
exit 1;
fi;
fi
/usr/bin/ninja
mkdir -p build/ar7/bin/apps
Configure Legato
export PATH=:/dev/Legato/legato-af-master/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/dev/Legato/legato-af-master/build/localhost/bin:/dev/Legato/legato-af-master/bin &&
cd dirname build/ar7/Makefile &&
cmake …/…
-DLEGATO_TARGET=ar7
-DTEST_COVERAGE=
-DINCLUDE_ECALL=1
-DUSE_CLANG=0
-DPLATFORM_SIMULATION=
-DCMAKE_TOOLCHAIN_FILE=/dev/Legato/legato-af-master/cmake/toolchain.yocto.cmake
Building Legato for target ar7
Including eCall to target ar7
CMake Error at cmake/toolchain.yocto.cmake:45 (message):
Unable to find C compiler
Call Stack (most recent call first):
/usr/share/cmake-2.8/Modules/CMakeDetermineSystem.cmake:93 (include)
CMakeLists.txt:130 (project)
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_C_COMPILER_ENV_VAR
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_C_COMPILER
CMake Error: Could not find cmake module file: /dev/Legato/legato-af-master/build/ar7/CMakeFiles/2.8.12.2/CMakeCCompiler.cmake
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_CXX_COMPILER_ENV_VAR
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_CXX_COMPILER
CMake Error: Could not find cmake module file: /dev/Legato/legato-af-master/build/ar7/CMakeFiles/2.8.12.2/CMakeCXXCompiler.cmake
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
– Configuring incomplete, errors occurred!
make: *** [build/ar7/Makefile] Error 1
please guide me where i am doing wrong. I have installed all necessary packages as suggested in Get Started doc
If you have an AR7 I presum eyou also have a support contact who should be able to supply you the correct toolchain. It is important that you are using the correct version.