I don’t know if anyone has attempted it but I thought I’d have a go on
Ubuntu 12.10 on an ODROID-X.
Main problem it reports is a known bad version of boost that prohibits
it building gnuradio-core and other components.
I downloaded boost 1.53 and I’ll have another go when it’s built and
installed.
– WARNING: Found a known bad version of Boost (v104601). Disabling.
–
Sid B. … Hamradio License G3VBV, Licensed Private Pilot
Emeritus IBM/Amdahl Mainframes and Sun/Fujitsu Servers Tech Support
Senior Staff Specialist, Cricket Coach
Microsoft Windows Free Zone - Linux used for all Computing Tasks
– * gruel
– * gr-pager
– * gr-comedi
Principal Investigator
Shirleys Bay Radio Astronomy Consortium http://www.sbrac.org
Discuss-gnuradio mailing list [email protected] Discuss-gnuradio Info Page
It chokes on x86 assembler. I about to try using “-mfpu=neon” to see if
it will avoid the x86 assembler.
Linking CXX executable _blocks_swig_swig_tag
[ 24%] Building C object
gnuradio-core/src/lib/CMakeFiles/gnuradio-core.dir/filter/dotprod_fff_armv7_a.c.o
[ 24%] Built target _pmt_swig_swig_tag
[ 24%] [ 24%] Built target _blocks_swig_swig_tag
Building C object
gnuradio-core/src/lib/CMakeFiles/gnuradio-core.dir/filter/dotprod_ccf_armv7_a.c.o
/tmp/ccLw2kCh.s: Assembler messages:
/tmp/ccLw2kCh.s:31: Error: selected FPU does not support instruction – vmov.f32 q8,#0.0' /tmp/ccLw2kCh.s:32: Error: selected FPU does not support instruction -- vmov.f32 q9,#0.0’
/tmp/ccLw2kCh.s:37: Error: selected FPU does not support instruction – vmla.f32 q8,q0,q2' /tmp/ccLw2kCh.s:38: Error: selected FPU does not support instruction -- vmla.f32 q9,q1,q3’
/tmp/ccLw2kCh.s:40: Error: selected FPU does not support instruction – vadd.f32 q8,q8,q9' /tmp/ccLw2kCh.s:41: Error: selected processor does not support Thumb mode vpadd.f32 d0,d16,d17’
make[2]: ***
[gnuradio-core/src/lib/CMakeFiles/gnuradio-core.dir/filter/dotprod_fff_armv7_a.c.o]
Error 1
make[2]: *** Waiting for unfinished jobs…
/tmp/cczuRQxp.s: Assembler messages:
/tmp/cczuRQxp.s:30: Error: selected FPU does not support instruction – vmov.f32 q14,#0.0' /tmp/cczuRQxp.s:31: Error: selected FPU does not support instruction -- vmov.f32 q15,#0.0’
/tmp/cczuRQxp.s:36: Error: selected FPU does not support instruction – vmla.f32 q14,q0,q2' /tmp/cczuRQxp.s:37: Error: selected FPU does not support instruction -- vmla.f32 q15,q1,q2’
/tmp/cczuRQxp.s:39: Error: selected processor does not support Thumb
mode vpadd.f32 d0,d28,d29' /tmp/cczuRQxp.s:40: Error: selected processor does not support Thumb mode vpadd.f32 d1,d30,d31’
/tmp/cczuRQxp.s:41: Error: selected processor does not support Thumb
mode `vpadd.f32 d0,d0,d1’
Scanning dependencies of target pygen_gr_atsc_src_lib_0d7f1
make[2]: ***
[gnuradio-core/src/lib/CMakeFiles/gnuradio-core.dir/filter/dotprod_ccf_armv7_a.c.o]
Error 1
make[1]: *** [gnuradio-core/src/lib/CMakeFiles/gnuradio-core.dir/all]
Error 2
make[1]: *** Waiting for unfinished jobs…
[ 24%] Built target _filter_swig_swig_tag
[ 24%] Generating atsc.tag
[ 24%] Swig source
[ 24%] [ 24%] Generating fft_swig.pyc
Generating fft_swig.pyo
[ 24%] Built target pygen_gr_fft_swig_29d48
[ 24%] [ 24%] Generating atsc.pyc
Generating atsc.pyo
[ 24%] Built target pygen_gr_atsc_src_lib_0d7f1
make: *** [all] Error 2
73 … Sid.
Got much further this time:-
Linking CXX executable gnuradio-config-info
/3/ODROID-X/gnuradio/build/gnuradio-core/src/lib/swig/gnuradio_core_filterPYTHON_wrap.cxx:
In function ‘void init_gnuradio_core_filter()’:
/3/ODROID-X/gnuradio/build/gnuradio-core/src/lib/swig/gnuradio_core_filterPYTHON_wrap.cxx:119048:21:
warning: variable ‘md’ set but not used [-Wunused-but-set-variable]
[ 59%] Building CXX object
gnuradio-core/src/lib/CMakeFiles/test-gnuradio-core.dir/runtime/qa_gr_hier_block2.cc.o
[ 59%] Built target gnuradio-config-info
Scanning dependencies of target _gnuradio_core_gengen
[ 59%] Building CXX object
gnuradio-core/src/lib/swig/CMakeFiles/_gnuradio_core_gengen.dir/gnuradio_core_gengenPYTHON_wrap.cxx.o
c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.6/README.Bugs> for instructions.
make[2]: ***
[gnuradio-core/src/lib/swig/CMakeFiles/_gnuradio_core_general.dir/gnuradio_core_generalPYTHON_wrap.cxx.o]
Error 4
make[1]: ***
[gnuradio-core/src/lib/swig/CMakeFiles/_gnuradio_core_general.dir/all]
Error 2
make[1]: *** Waiting for unfinished jobs…
[ 59%] [ 59%] Building CXX object
gnuradio-core/src/lib/CMakeFiles/test-gnuradio-core.dir/runtime/qa_gr_hier_block2_derived.cc.o
Building CXX object
gnuradio-core/src/lib/CMakeFiles/test-gnuradio-core.dir/runtime/qa_gr_buffer.cc.o
[ 59%] Building CXX object
gnuradio-core/src/lib/CMakeFiles/test-gnuradio-core.dir/runtime/qa_gr_flowgraph.cc.o
[ 59%] Building CXX object
gnuradio-core/src/lib/CMakeFiles/test-gnuradio-core.dir/runtime/qa_gr_top_block.cc.o
/3/ODROID-X/gnuradio/build/gnuradio-core/src/lib/swig/gnuradio_core_gengenPYTHON_wrap.cxx:
In function ‘void init_gnuradio_core_gengen()’:
/3/ODROID-X/gnuradio/build/gnuradio-core/src/lib/swig/gnuradio_core_gengenPYTHON_wrap.cxx:290936:21:
warning: variable ‘md’ set but not used [-Wunused-but-set-variable]
c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.6/README.Bugs> for instructions.
make[2]: ***
[gnuradio-core/src/lib/swig/CMakeFiles/_gnuradio_core_filter.dir/gnuradio_core_filterPYTHON_wrap.cxx.o]
Error 4
make[1]: ***
[gnuradio-core/src/lib/swig/CMakeFiles/_gnuradio_core_filter.dir/all]
Error 2
[
73 … Sid.
You don’t have enough RAM … SWIG that generates the python wrapper
will generate C++ source of like 20-30Mo, which when compilin will
require like > 1Go of RAM !!!
I ended up disabling python to build only the C++ core of gnuradio …
that went much smoother.
/tmp/ccLw2kCh.s:31: Error: selected FPU does not support instruction –
`vmov.f32 q8,#0.0’
Thanks,
I thought I had 2G of swap, now realised I didn’t make it for the 32GB
SD card.
73 … Sid.
On 24/03/13 22:04, Sylvain M. wrote:
I ended up disabling python to build only the C++ core of gnuradio …
Cheers,
Sylvain
–
Sid B. … Hamradio License G3VBV, Licensed Private Pilot
Emeritus IBM/Amdahl Mainframes and Sun/Fujitsu Servers Tech Support
Senior Staff Specialist, Cricket Coach
Microsoft Windows Free Zone - Linux used for all Computing Tasks
I don’t know if anyone has attempted it but I thought I’d have a go on
Ubuntu 12.10 on an ODROID-X.
Main problem it reports is a known bad version of boost that prohibits it
building gnuradio-core and other components.
I just compiled on Arndale (Cortex-A15) and Linaro 12.12 with the
following options and cmake file.
I have discovered an odd happening on the ODROID-X that I’ll have to
take up with them.
root@G3VBV:~# swapon -a
swapon: /swapfile: swapon failed: Function not implemented
root@G3VBV:~# swapon /swapfile
swapon: /swapfile: swapon failed: Function not implemented
73 … Sid.
On 24/03/13 22:04, Sylvain M. wrote:
I ended up disabling python to build only the C++ core of gnuradio …
Cheers,
Sylvain
–
Sid B. … Hamradio License G3VBV, Licensed Private Pilot
Emeritus IBM/Amdahl Mainframes and Sun/Fujitsu Servers Tech Support
Senior Staff Specialist, Cricket Coach
Microsoft Windows Free Zone - Linux used for all Computing Tasks
Hi,
I ended up disabling python to build only the C++ core of gnuradio …
Cheers,
Sylvain
Hey Sid,
Did you ever get past that? I don’t think it’s an issue with the
ODROID-X,
rather the kernel shipped on the Linaro image doesn’t have swap support
built in. We’ve been trying to build gnuradio on an odroid-x too and ran
in
to the same problem. The solutions appear to be corss compiling or
getting
a new kernel. If you’ve (or anyone else) made any progress I’d
appreciate
hearing about it. Any tips on kernel replacements or tool chains would
be
great.
I tried using the Toolchain file arm_cortex_a8_native.cmake with a naive
replacement for mtune=cortex-a9, but it complains g++ is broken. Using
the
cmake flags you gave does make some progress (until the swig files of
death):
root@G3VBV:/3/ODROID-X/
gnuradio/build# cmake -DCMAKE_CXX_FLAGS:STRING=“-mfpu=neon
-fno-tree-vectorize -flto -fopenmp -mfloat-abi=hard”
-DCMAKE_C_FLAGS:STRING=“-mfpu=neon -fno-tree-vectorize -flto -fopenmp
-mfloat-abi=hard” -DCMAKE_INSTALL_PREFIX=/usr
-DCMAKE_BUILD_TYPE=“Release”
-DENABLE_GR_CORE=ON -DENABLE_GRC=ON -DENABLE_GR_FFT=ON
-DENABLE_GR_FILTER=ON -DENABLE_GR_AUDIO=ON -DENABLE_BAD_BOOST=ON …
Side comment: are you really building as root?
On a related note, there’s an arch linux image for the odroid-x that has
a
kernel with support for swap, but arch has it’s own head aches mostly
associated with the rolling release (aka bad boost and pacman is obtuse
compared to apt).
Did you ever get past that? I don’t think it’s an issue with the ODROID-X,
rather the kernel shipped on the Linaro image doesn’t have swap support built
in. We’ve been trying to build gnuradio on an odroid-x too and ran in to the
same
problem. The solutions appear to be corss compiling or getting a new kernel.
If you’ve (or anyone else) made any progress I’d appreciate hearing about it.
Any tips on kernel replacements or tool chains would be great.
I’m building for a different ARM target, but a workaround that helped
with the
compiler failing (presumably due to lack of RAM) was to change the
optimization
level for the specific large swig file(s) to “-O0” instead of “-O3” that
goes with a
release build.
Use “make -n” to see the compiler command that will be used for the
file(s), then
manually run that command and change the optimization level. Then resume
the
make.
You don’t have enough RAM … SWIG that generates the python wrapper
will generate C++ source of like 20-30Mo, which when compilin will
require like > 1Go of RAM !!!
Does anyone know of a good swap file size? I had success with 4M for
v3.6.4.1,
but I don’t want to be greedy.
On Wed, Apr 17, 2013 at 9:55 AM, Monahan-Mitchell, Tim < [email protected]> wrote:
You don’t have enough RAM … SWIG that generates the python wrapper
will generate C++ source of like 20-30Mo, which when compilin will
require like > 1Go of RAM !!!
Does anyone know of a good swap file size? I had success with 4M for
v3.6.4.1,
but I don’t want to be greedy.
Tom R. made a change to the build to break the SWIG generation for
gr-blocks into three steps. While it doesn’t help with the compile time
as
much, it does knock down the memory requirements for g++ on the
generated
SWIG wrappers.
This change, though is on the master branch, and won’t make it to a
stable
release until 3.6.5.
I notice that ‘neon’ is enabled in your compilations. If your device
does
not have a neon cpu then you must disable this option. Also, check your
CmakeCache.txt file to make sure ‘neon’ is not enabled.
Scan way down the file until you find:
//Test have_mfpu_neon
have_mfpu_neon:INTERNAL=1
Delete the “1” and save the file.
Run make. It will appear that cmake is being run again and might change
your
edit, but it doesn’t.
Hopefully this will help some of you to resolve this issue.