Attempted to build from github clone this morning. Running the install script failed with code errors in CaribouLiteCpp.hpp as there were classes not included that were required. I added the "#include " statement as suggested by the build system. Once this was added, everything loaded properly.
Prior to running the install script, I commented out line 29 which loaded headers line for raspbian and left the one for ubuntu intact.
Next I updated the config.txt file as noted both in #94 and by the output of the install script.
On running SoapySDR --find and/or SoapySDR --probe, it finds the caribou board, but is failing on reading the fpga as follows (Note: I did add the "dtoverlay=spi1-3cs" line at the end of the config.txt file to allow communications). It appears that /dev/smi is not getting set up properly, even though lsmod shows the driver is present.
~$ sudo lsmod | grep smi
bcm2835_smi 24576 0
$ sudo SoapySDRUtil --find
######################################################
## Soapy SDR -- the SDR abstraction library ##
######################################################
[INFO] SoapyCaribouliteSession, sessionCount: 0
11-30 15:05:34.809 545216 545216 I FPGA caribou_fpga_program_to_fpga@caribou_fpga.c:209 FPGA already operational - not programming (use 'force_prog=true' to force update)
11-30 15:05:34.809 545216 545216 E CARIBOU_SMI caribou_smi_init@caribou_smi.c:537 couldn't open smi driver file '/dev/smi' (No such file or directory)
11-30 15:05:34.809 545216 545216 E CARIBOULITE Setup cariboulite_init_submodules@cariboulite_setup.c:288 Error setting up smi submodule
11-30 15:05:34.810 545216 545216 I CARIBOU_PROG caribou_prog_release@caribou_prog.c:122 device release completed
11-30 15:05:34.810 545216 545216 E FPGA caribou_fpga_close@caribou_fpga.c:246 caribou_fpga_close: dev not initialized
[ERROR] cariboulite_init_driver() failed
Printing 'findCariboulite' Request:
shm_open: No such file or directory
[ERROR] sdrplay_api_Open() Error: sdrplay_api_Fail
[ERROR] Please check the sdrplay_api service to make sure it is up. If it is up, please restart it.
[INFO] [UHD] linux; GNU C++ version 11.3.0; Boost_107400; UHD_4.1.0.5-0-unknown
[ERROR] SoapySDR::Device::enumerate(sdrplay) sdrplay_api_Open() failed
Found device 0
channel = S1G
device_id = 0
driver = Cariboulite
label = CaribouLite S1G[a06d5a2e]
name = CaribouLite RPI Hat
serial = a06d5a2e
uuid = b231e8bb-581f-421a-ba18-36df20e72751
vendor = CaribouLabs LTD
version = 0x0001
Found device 1
channel = HiF
device_id = 1
driver = Cariboulite
label = CaribouLite HiF[a06d5a2f]
name = CaribouLite RPI Hat
serial = a06d5a2f
uuid = b231e8bb-581f-421a-ba18-36df20e72751
vendor = CaribouLabs LTD
version = 0x0001
11-30 15:05:36.313 545216 545216 E FPGA caribou_fpga_close@caribou_fpga.c:246 caribou_fpga_close: dev not initialized
11-30 15:05:36.313 545216 545216 E CARIBOULITE Setup cariboulite_release_submodules@cariboulite_setup.c:465 FPGA communication release failed (-1)
11-30 15:05:36.313 545216 545216 E IO_UTILS_SPI io_utils_spi_close@io_utils_spi.c:340 closing uninitialized device
Any suggestions would be greatly appreciated. Is there perhaps another repository I should be using?
Looking at the system log, I find the following:
Nov 30 15:44:28 ubuntu systemd-modules-load[355]: Failed to find module 'smi_stream_dev'
Nov 30 15:44:28 ubuntu kernel: [ 7.399340] smi-bcm2835 fe600000.smi: initialised
The module smi_stream_dev exists in the build directory, but is not being found by the system. Perhaps this is the real source of the problem??
Okay, looks like the same problem as #104
ubuntu@ubuntu:~/Projects/cariboulite/driver/build$ strings smi_stream_dev.ko | grep vermagic=
vermagic=5.15.0-1037-raspi SMP preempt mod_unload modversions aarch64
ubuntu@ubuntu:~/Projects/cariboulite/driver/build$ uname -a
Linux ubuntu 5.15.0-1043-raspi #46-Ubuntu SMP PREEMPT Mon Nov 13 15:08:58 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux
Now to figure out how to rebuild smi_stream_dev to the latest kernel version and try to understand why that did not happen when I ran the install script this morning.
Attempted to build from github clone this morning. Running the install script failed with code errors in CaribouLiteCpp.hpp as there were classes not included that were required. I added the "#include" statement as suggested by the build system. Once this was added, everything loaded properly.
Prior to running the install script, I commented out line 29 which loaded headers line for raspbian and left the one for ubuntu intact.
Next I updated the config.txt file as noted both in #94 and by the output of the install script.
On running SoapySDR --find and/or SoapySDR --probe, it finds the caribou board, but is failing on reading the fpga as follows (Note: I did add the "dtoverlay=spi1-3cs" line at the end of the config.txt file to allow communications). It appears that /dev/smi is not getting set up properly, even though lsmod shows the driver is present.
Any suggestions would be greatly appreciated. Is there perhaps another repository I should be using?
Looking at the system log, I find the following:
The module smi_stream_dev exists in the build directory, but is not being found by the system. Perhaps this is the real source of the problem??
Okay, looks like the same problem as #104
Now to figure out how to rebuild smi_stream_dev to the latest kernel version and try to understand why that did not happen when I ran the install script this morning.
Update: Following the instructions here https://github.com/cariboulabs/cariboulite/tree/main/docs/smi for rebuilding the driver (note the cmake command is wrong and should be
cmake ../../
)I then re-ran the install script and rebooted, and everything works properly.