|
From: | Zamrath Nizam |
Subject: | Re: [Discuss-gnuradio] UHD error: _ZN3uhd6device4findERKNS_13device_addr_tENS0_15device_filter_tE |
Date: | Thu, 19 Mar 2015 11:24:34 +0530 |
On Wed, Mar 18, 2015 at 9:29 AM, Marcus Müller <address@hidden> wrote:Pybombs can't solve a lack of RAM -- it just offers an automated build procedure.
Search google to find information how to add swap to your system. However, swap is just RAM that is temporarily exiled to permanent storage. Now, a microSD card is several orders of magnitude slower than RAM, so whilst that might allow your build process to work, it will make it slow.
Best regards,
MarcusCross-compiling would be better.We have information on embedded systems here:Debian also comes with support for cross compilers itself, though we have no direct information on how to use those for building GNU Radio.TomOn 03/18/2015 01:39 PM, Zamrath Nizam wrote:
Yes, RAM seems to be not up for the compiler's asking rate. I used 'watch' command to observe it. At peak, free memory drops down to zero.
BTW, I am interesting to know how to extend RAM in Bananapi (capacity of Micro SD card is 16 GB), in case pyBOMBS method does not give me a hand.
Thanks,Best,
Zamrath Nizam
On Wed, Mar 18, 2015 at 5:54 PM, Marcus Müller <address@hidden> wrote:
If it hangs, that just sounds like the poor ARM is busy; compiling is hard! You can check your CPU usage by running "top" in another console.
If building aborts, you might need to add some swap space, to "extend" your RAM (start with 4GB). That will be horribly, horribly slow.
Greetings,
Marcus
On 03/18/2015 01:12 PM, Zamrath Nizam wrote:
Hi Müller,
Thank you for the detailed answer you provided. I will surely try one of the method you have given above. Meantime, the reason why I went for the debian GNURadio was, when GNURadio is built, it halts at around 50%. It has been run for 15-20 times. As you have pointed out, it was due to the low RAM (1 GB). Sounds first method would be handy to cope with. I will let you know after trying above methods.
Thank you again.
Best,Zamrath
On Wed, Mar 18, 2015 at 4:55 PM, Marcus Müller <address@hidden> wrote:
Hi Zamrath,
now you're mixing different versions of the same library (UHD).
The debian GNU Radio was built and linked against the debian UHD, but now you're using the Ettus UHD package, so the symbols that the debian GNU Radio thought it knew are now unavailable.
You should uninstall debian's UHD version, when installing the Ettus one. You also must uninstall debian's GNU Radio.
You will have to build GNU Radio against the UHD library version you're using. You *can* in theory, do that on the bananapi itself, but I don't think that is going to be fun (or short) -- after all, it's an embedded device, and not a development workstation, so CPU and RAM are sparse.
There are three ways you can go from here: (1) build GNU Radio on the bananapi, (2) cross-compile it for the debian armhf port and (3) rolling out openembedded and treating your bananapi as a cool embedded device rather than a boring slow PC.
Method (1)
=======
This should be the easiest path: use pyBOMBS, as it should do everything for you[0], and take roughly veeeeeery long.
Method (2)
=======
I think that in the long run, if you want to do software development for the bananapi, anyway, setting up a cross-compilation environment will be what you want to do.
However, I'm not really used to doing cross-builds myself; I can only outline what you will have to do:
On your (easiest case: debian) workstation:
* Install the appropriate cross toolchain[2], and all the libraries[1] lists as necessary in their development version and target-arch (armhf) compatible version. I think that will be the hardest part, as it's a bit debian specific.
* Follow [3] . Replace the oe-sdk-toolchain.cmake file with a debian/armhf one -- you can have a look at the existing arm toolchain file[4], copy and modify it, replacing all compiler names with their gcc-armhf-... or similar pendants. Trick: use your currently installed "gnuradio-config-info --cflags" to get appropriate CMAKE_CXX_FLAGS, in addition to the right -m*** flags, that might be omitted in the output.
Method (3)
=======
Alternativile, follow [5] and replace the debian on your bananapi with an openembedded self-rolled system.
OpenEmbedded allows you to deploy your own application-specific system, including everything from OS to application (but not much more).
No matter what you do, we'd like to hear of your success (and/or struggle). If you generate any useful build script / toolchain files / tips and tricks / blog posts ... we'd love to hear of them!
Greetings,
Marcus
[0] http://gnuradio.org/redmine/projects/pybombs/wiki/QuickStart
[1] http://gnuradio.org/doc/doxygen/build_guide.html
[2] https://wiki.debian.org/CrossToolchains
[3] https://gnuradio.org/redmine/projects/gnuradio/wiki/Cross_compile_GNU_Radio_and_install_on_target
[4] https://github.com/gnuradio/gnuradio/blob/master/cmake/Toolchains/arm_cortex_a8_native.cmake
[5] https://gnuradio.org/redmine/projects/gnuradio/wiki/OE_PyBOMBS
On 03/18/2015 11:51 AM, Zamrath Nizam wrote:
Hi all,
I have recently installed UHD and GNURadio on Bananapi (armhf) board adding "deb http://ftp.de.debian.org/debian jessie main" in "/etc/apt/sources.list".
Downloaded GNURadio from "https://packages.debian.org/jessie/armhf/gnuradio/download"dpkg -i gnuradio_3.7.5-5_armhf.debapt-get update
Downloaded UHD from "https://packages.debian.org/wheezy/armhf/uhd-host/download"dpkg -i uhd-host_3.4.2-1_armhf.debapt-get -f install
When I install OpenBTS, built was errored since UHD was not picked up. (uhd.pc was not in "/usr/local/lib/pkgconfig").Therefore, I had to install uhd-master from ettus research git repo and built. And then OpenBTS was built without a problem.
After connecting USRP N210, even though ping process is also okay,
"uhd_find_devices" gives,linux; GNU C++ version 4.9.1; Boost_105500; UHD_003.007.003-0-unknownuhd_find_devices: symbol lookup error: uhd_find_devices: undefined symbol: _ZN3uhd6device4findERKNS_13device_addr_tENS0_15device_filter_tE
"uhd_usrp_probe" gives,linux; GNU C++ version 4.9.1; Boost_105500; UHD_003.007.003-0-unknownuhd_usrp_probe: symbol lookup error: uhd_usrp_probe: undefined symbol: _ZN3uhd6device4makeERKNS_13device_addr_tENS0_15device_filter_tEj
When running './OpenBTS'",ALERT 3069485584 10:17:51.9 TRXManager.cpp:434:powerOff: POWEROFF failed with status -1linux; GNU C++ version 4.9.1; Boost_105500; UHD_003.007.003-0-unknownUsing internal clock reference./transceiver: symbol lookup error: ./transceiver: undefined symbol: _ZN3uhd6device4findERKNS_13device_addr_tENS0_15device_filter_tEEMERG 3065672784 10:17:52.5 OpenBTS.cpp:156:startTransceiver: Transceiver quit with status 32512. Exiting.
I have erased the memory and proceeded again with caution but the result was same. Could anyone please suggest me a resolution?
Thanks.
Best,Zamrath Nizam
_______________________________________________ Discuss-gnuradio mailing list address@hidden https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________ Discuss-gnuradio mailing list address@hidden https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________ Discuss-gnuradio mailing list address@hidden https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
[Prev in Thread] | Current Thread | [Next in Thread] |