Brian-

As a further test I moved the whole OOT module directory over to the device and 
cmake/make/install right on the device to see if it had some special sauce but 
no luck.

OK maybe this is a real problem that Ettus is not going to resolve for custom 
C++ work?

OOT RFNoC Block not propagating action in UHD4 · Issue #406 · EttusResearch/uhd 
· GitHub<https://github.com/EttusResearch/uhd/issues/406>

The solution according to this issue is to use gr-ettus etc.

I don’t use GNU radio and hoped to finally try RFNOC for real but it seems to 
still not be fully functional.
I am guessing that since my controller is looking for the real name or 
something its getting confused?

I have seen work arounds posted related to naming your OOT module “block” 
instead of something custom which seems limited. Also something about building 
the block controller in-tree. I suppose I could do that but I guess I would 
have to rebuild UHD and move it over.

What’s funny is that even in their OOT example on getting started with UHD 4.0 
their gain block shows up generically as “block”. Somehow they did not notice 
that?

This is disappointing because I saw that press release where they claimed it’s 
the most tested release ever.

Jeff

From: Jeffrey P Long <jpl...@mitre.org>
Sent: Saturday, May 15, 2021 6:07 PM
To: Brian Padalino <bpadal...@gmail.com>
Cc: usrp-users@lists.ettus.com
Subject: [USRP-users] Re: [EXT] Re: RFNOC block name?

Brian-

Ok I made sure I compiled for the ARM and to be honest I lost track of which 
terminal window I had sourced the SDK in so I was not sure and decided to redo 
it.
But you can see the cmake and make seem successful  further down below.

Then I moved it to /usr/share/uhd/modules since I saw somewhere that it should 
load it from there but just in case I also set the module path for that.
root@ni-e320-31DCD15:/usr/share/uhd/modules# export 
UHD_MODULE_PATH=/usr/share/uhd/modules

and this time I got more info back about it not finding the block ID. I noticed 
in /usr/share/uhd there is a rfnoc directory with yml files for the blocks.
Do I need to put my blocks yml in there or something?

By the way is there an ettus tutorial on how to do OOT modules for an embedded 
target like the E320?

Thanks for your help on this.
Jeff


root@ni-e320-31DCD15:/usr/share/uhd/modules# uhd_usrp_probe
[INFO] [UHD] linux; GNU C++ version 9.2.0; Boost_107100; UHD_4.0.0.0-0-g90ce6062
[INFO] [MPMD] Initializing 1 device(s) in parallel with args: 
mgmt_addr=127.0.0.1,type=e3xx,product=e320,serial=31DCD15,claimed=False
[INFO] [MPM.PeriphManager] init() called with device args 
`mgmt_addr=127.0.0.1,product=e320'.
[INFO] [0/Radio#0] Performing CODEC loopback test on channel 0 ...
[INFO] [0/Radio#0] CODEC loopback test passed
[INFO] [0/Radio#0] Performing CODEC loopback test on channel 1 ...
[INFO] [0/Radio#0] CODEC loopback test passed
[INFO] [0/DmaFIFO#0] BIST passed (Estimated Minimum Throughput: 1361 MB/s)
[INFO] [0/DmaFIFO#0] BIST passed (Estimated Minimum Throughput: 1361 MB/s)
[WARNING] [RFNOC::BLOCK_FACTORY] Could not find block with Noc-ID 0xde30, 0xffff


--------------------------------------------------------------------------------------------------------------------------------------------------------------
jplong@mm241897-pc:~/proj/ettus_e320/rfnoc-txcore/build-e320$ cmake 
-DUHD_FPGA_DIR=~/proj/uhd/fpga/ ../
-- Toolchain file defaulted to 
'/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/share/cmake/OEToolchainConfig.cmake'
-- The CXX compiler identification is GNU 9.2.0
-- The C compiler identification is GNU 9.2.0
-- Check for working CXX compiler: 
/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-g++
-- Check for working CXX compiler: 
/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-g++
 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: 
/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-gcc
-- Check for working C compiler: 
/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-gcc
 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Found UnixCommands: /usr/bin/bash
-- Found bash interpreter: /usr/bin/bash
-- Found PkgConfig: 
/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/bin/pkg-config (found 
version "0.29.2")
-- Found UHD: 
/usr/local/oecore-x86_64/sysroots/cortexa9t2hf-neon-oe-linux-gnueabi/usr/lib/libuhd.so
-- Found UHD:
--  * INCLUDES = 
/usr/local/oecore-x86_64/sysroots/cortexa9t2hf-neon-oe-linux-gnueabi/usr/include
--  * LIBS = 
/usr/local/oecore-x86_64/sysroots/cortexa9t2hf-neon-oe-linux-gnueabi/usr/lib/libuhd.so
--  * rfnoc_image_builder = /usr/local/bin/rfnoc_image_builder
-- Checking FPGA source directory...
-- Using FPGA source directory: /home/jplong/proj/uhd/fpga
-- Registering RFNoC block: rfnoc_block_txcore
-- Adding testbench target: rfnoc_block_txcore_tb
-- Adding image core target: e320_rfnoc_image_core
-- Found Boost: 
/usr/local/oecore-x86_64/sysroots/cortexa9t2hf-neon-oe-linux-gnueabi/usr/lib/cmake/Boost-1.71.0/BoostConfig.cmake
 (found suitable version "1.71.0", minimum required is "1.58") found 
components:  program_options system
-- Configuring done
-- Generating done
-- Build files have been written to: 
/home/jplong/proj/ettus_e320/rfnoc-txcore/build-e320
jplong@mm241897-pc:~/proj/ettus_e320/rfnoc-txcore/build-e320$ make -j8
Scanning dependencies of target rfnoc-txcore
[ 25%] Building CXX object 
lib/CMakeFiles/rfnoc-txcore.dir/txcore_block_control.cpp.o
[ 50%] Linking CXX shared library librfnoc-txcore.so
[ 50%] Built target rfnoc-txcore
Scanning dependencies of target txcore_block
[ 75%] Building CXX object apps/CMakeFiles/txcore_block.dir/txcore_block.cpp.o
[100%] Linking CXX executable txcore_block
[100%] Built target txcore_block


From: Brian Padalino <bpadal...@gmail.com<mailto:bpadal...@gmail.com>>
Sent: Friday, May 14, 2021 6:04 PM
To: Jeffrey P Long <jpl...@mitre.org<mailto:jpl...@mitre.org>>
Cc: usrp-users@lists.ettus.com<mailto:usrp-users@lists.ettus.com>
Subject: Re: [EXT] Re: [USRP-users] RFNOC block name?


On Fri, May 14, 2021 at 5:48 PM Jeffrey P Long 
<jpl...@mitre.org<mailto:jpl...@mitre.org>> wrote:
Ok I had it up in /usr/lib but I moved it down to the root folder and it 
basically gave the same thing with additional errors:
Kind of look like it is still not finding it. Did I set it wrong?

root@ni-e320-31DCD15:/usr/lib# export UHD_MODULE_PATH=~/
root@ni-e320-31DCD15:/usr/lib# uhd_find_devices
Error: EnvironmentError: OSError: dlopen failed to load "/home/root/.viminfo"
Error: EnvironmentError: OSError: dlopen failed to load "/home/root/e320.bit"
Error: EnvironmentError: OSError: dlopen failed to load 
"/home/root/librfnoc-txcore.so"
Error: EnvironmentError: OSError: dlopen failed to load 
"/home/root/.bash_history"
[INFO] [UHD] linux; GNU C++ version 9.2.0; Boost_107100; UHD_4.0.0.0-0-g90ce6062
--------------------------------------------------
-- UHD Device 0
--------------------------------------------------
Device Address:
    serial: 31DCD15
    claimed: False
    mgmt_addr: 127.0.0.1
    product: e320
    type: e3xx

Maybe looks like it's compiled for a different architecture?

Specifically looking at:

  Error: EnvironmentError: OSError: dlopen failed to load 
"/home/root/librfnoc-txcore.so"

Guessing that .so is x86 and not arm?

Compile it for the target architecture it runs on?

Brian
_______________________________________________
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com

Reply via email to