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