Closed piranha32 closed 11 years ago
Please see issue #91
Of course, feel free to reopen if you think you have found a different issue.
I'm not sure if it deserves reopening, I'm aware of the bandwidth issues, but the "'fcd_source_c': output 0 is not connected internally" message looks different enough from the other issues that I thought it deserves own case. I haven't seen any BW related messages. You know the program better, so if you think that it's just another manifestation of the bandwidth hydra, I'm fine with closing it.
The "not enough bandwidth" messages appear in the syslog either when you plug the dongle in or when you start DSP. Type dmesg in a terminal to see the messages.
If you don't see the bandwidth messages we can take a closer look at it, but I am going to need much more info than this generic error message, e.g. which version of gqrx this is and how did you installed it, the same for gr-fcdproplus.
No "Not enough bandwidth", but I see ALSA complaining about inability to get freq:
Aug 5 12:16:29 dragon32 kernel: [1089863.864475] usb 2-1.2.2: new full-speed USB device number 51 using ehci-pci
Aug 5 12:16:29 dragon32 kernel: [1089863.951670] usb 2-1.2.2: New USB device found, idVendor=04d8, idProduct=fb31
Aug 5 12:16:29 dragon32 kernel: [1089863.951674] usb 2-1.2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Aug 5 12:16:29 dragon32 kernel: [1089863.951676] usb 2-1.2.2: Product: FUNcube Dongle V2.0
Aug 5 12:16:29 dragon32 kernel: [1089863.951678] usb 2-1.2.2: Manufacturer: Hanlincrest Ltd.
Aug 5 12:16:29 dragon32 kernel: [1089863.986667] ALSA sound/usb/clock.c:237 51:1:1: cannot get freq at ep 0x81
Aug 5 12:16:29 dragon32 kernel: [1089863.989811] hid-generic 0003:04D8:FB31.000D: hiddev0,hidraw2: USB HID v1.11 Device [Hanlincrest Ltd. FUNcube Dongle V2.0 ] on usb-0000:00:1d.7-1.2.2/input2
Aug 5 12:16:29 dragon32 mtp-probe: checking bus 2, device 51: "/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.2/2-1.2.2"
Aug 5 12:16:29 dragon32 mtp-probe: bus: 2, device: 51 was not an MTP device
Aug 5 12:16:29 dragon32 kernel: [1089864.061846] ALSA sound/usb/clock.c:237 51:1:1: cannot get freq at ep 0x81
Aug 5 12:16:29 dragon32 kernel: [1089864.095208] ALSA sound/usb/clock.c:237 51:1:1: cannot get freq at ep 0x81
Aug 5 12:16:29 dragon32 kernel: [1089864.134328] ALSA sound/usb/clock.c:237 51:1:1: cannot get freq at ep 0x81
Aug 5 12:16:29 dragon32 kernel: [1089864.167669] ALSA sound/usb/clock.c:237 51:1:1: cannot get freq at ep 0x81
Aug 5 12:16:29 dragon32 kernel: [1089864.207183] ALSA sound/usb/clock.c:237 51:1:1: cannot get freq at ep 0x81
Aug 5 12:16:29 dragon32 kernel: [1089864.240502] ALSA sound/usb/clock.c:237 51:1:1: cannot get freq at ep 0x81
gqrx, gnuradio, and gr-osmosdr pulled from git. Latest commits:
gqrx:
commit 1ee3d787bc5564b6fac8f06d3c0dbd09b3d5e8cf
Author: Alexandru Csete <oz9aec@gmail.com>
Date: Sun Aug 4 10:00:03 2013 +0200
Also catch boost::program_options::unknown_option exception.
gnuradio:
commit 888c07f2510c49b5100223121ee02d9faea287d9
Merge: 6834e1d 9b47ed5
Author: Tom Rondeau <trondeau@vt.edu>
Date: Mon Apr 1 12:36:14 2013 -0400
Merge remote-tracking branch 'm0mik/uhd_usrp_spectrum_sense_freq_readout'
gr-osmosdr:
commit 9dfe3a635481139a61256d810989dee425d41e10
Author: Dimitri Stolnikov <horiz0n@gmx.net>
Date: Sun Jul 28 16:35:48 2013 +0200
bladerf: update common sample rate values
ldd for gqrx:
[jacek@dragon32 gqrx]$ ldd ./gqrx
linux-vdso.so.1 => (0x00007fff7a0b9000)
libboost_system.so.1.53.0 => /lib64/libboost_system.so.1.53.0 (0x0000003558400000)
libboost_program_options.so.1.53.0 => /lib64/libboost_program_options.so.1.53.0 (0x00007fc57b16b000)
librt.so.1 => /lib64/librt.so.1 (0x0000003688800000)
libpulse-simple.so.0 => /lib64/libpulse-simple.so.0 (0x00000037a0800000)
libpulse.so.0 => /lib64/libpulse.so.0 (0x00000037a3200000)
libgnuradio-analog-3.7.0.so.0.0.0 => /opt/gnuradio.git/lib64/libgnuradio-analog-3.7.0.so.0.0.0 (0x00007fc57aef2000)
libgnuradio-filter-3.7.0.so.0.0.0 => /opt/gnuradio.git/lib64/libgnuradio-filter-3.7.0.so.0.0.0 (0x00007fc57ac30000)
libgnuradio-fft-3.7.0.so.0.0.0 => /opt/gnuradio.git/lib64/libgnuradio-fft-3.7.0.so.0.0.0 (0x00007fc57aa17000)
libgnuradio-osmosdr-0.1.1git.so.0.0.0 => /opt/gnuradio.git/lib64/libgnuradio-osmosdr-0.1.1git.so.0.0.0 (0x00007fc57a7a5000)
libgnuradio-blocks-3.7.0.so.0.0.0 => /opt/gnuradio.git/lib64/libgnuradio-blocks-3.7.0.so.0.0.0 (0x00007fc57a3af000)
libgnuradio-runtime-3.7.0.so.0.0.0 => /opt/gnuradio.git/lib64/libgnuradio-runtime-3.7.0.so.0.0.0 (0x00007fc57a100000)
libgnuradio-pmt-3.7.0.so.0.0.0 => /opt/gnuradio.git/lib64/libgnuradio-pmt-3.7.0.so.0.0.0 (0x00007fc579eb9000)
libQtSvg.so.4 => /lib64/libQtSvg.so.4 (0x0000003eca000000)
libQtGui.so.4 => /lib64/libQtGui.so.4 (0x0000003ec8e00000)
libQtCore.so.4 => /lib64/libQtCore.so.4 (0x0000003692800000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003687c00000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x0000003688c00000)
libm.so.6 => /lib64/libm.so.6 (0x0000003687400000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003688400000)
libc.so.6 => /lib64/libc.so.6 (0x0000003687000000)
/lib64/ld-linux-x86-64.so.2 (0x0000003686c00000)
libjson.so.0 => /lib64/libjson.so.0 (0x00000036ab600000)
libpulsecommon-3.0.so => /usr/lib64/pulseaudio/libpulsecommon-3.0.so (0x00000037a3600000)
libX11-xcb.so.1 => /lib64/libX11-xcb.so.1 (0x0000003ecce00000)
libX11.so.6 => /lib64/libX11.so.6 (0x0000003ec6000000)
libxcb.so.1 => /lib64/libxcb.so.1 (0x000000368a000000)
libICE.so.6 => /lib64/libICE.so.6 (0x000000368b400000)
libSM.so.6 => /lib64/libSM.so.6 (0x000000368b800000)
libXtst.so.6 => /lib64/libXtst.so.6 (0x0000003ec9c00000)
libwrap.so.0 => /lib64/libwrap.so.0 (0x00000037a3a00000)
libsndfile.so.1 => /lib64/libsndfile.so.1 (0x00000036a6e00000)
libasyncns.so.0 => /lib64/libasyncns.so.0 (0x00000036ab200000)
libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x0000003690000000)
libcap.so.2 => /lib64/libcap.so.2 (0x00000036a1c00000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003687800000)
libvolk.so.0.0.0 => /opt/gnuradio.git/lib64/libvolk.so.0.0.0 (0x00007fc579b70000)
libboost_date_time-mt.so.1.53.0 => /lib64/libboost_date_time-mt.so.1.53.0 (0x0000003558c00000)
libboost_program_options-mt.so.1.53.0 => /lib64/libboost_program_options-mt.so.1.53.0 (0x0000003559000000)
libboost_filesystem-mt.so.1.53.0 => /lib64/libboost_filesystem-mt.so.1.53.0 (0x00007fc579958000)
libboost_system-mt.so.1.53.0 => /lib64/libboost_system-mt.so.1.53.0 (0x000000355da00000)
libboost_thread-mt.so.1.53.0 => /lib64/libboost_thread-mt.so.1.53.0 (0x000000355d600000)
liborc-0.4.so.0 => /lib64/liborc-0.4.so.0 (0x00000036ace00000)
libfftw3f.so.3 => /lib64/libfftw3f.so.3 (0x0000003690800000)
libfftw3f_threads.so.3 => /lib64/libfftw3f_threads.so.3 (0x00000033af800000)
libgnuradio-fcd-3.7.0.so.0.0.0 => /opt/gnuradio.git/lib64/libgnuradio-fcd-3.7.0.so.0.0.0 (0x00007fc579742000)
librtlsdr.so.0 => /usr/local/lib/librtlsdr.so.0 (0x00007fc579528000)
libbladeRF.so.0 => /lib64/libbladeRF.so.0 (0x00007fc57931f000)
libz.so.1 => /lib64/libz.so.1 (0x0000003688000000)
libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x000000368d800000)
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x000000368a800000)
libpng15.so.15 => /lib64/libpng15.so.15 (0x000000368c400000)
libfreetype.so.6 => /lib64/libfreetype.so.6 (0x000000368d000000)
libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x000000368c000000)
libXi.so.6 => /lib64/libXi.so.6 (0x0000003ec6800000)
libXrender.so.1 => /lib64/libXrender.so.1 (0x0000003ec6c00000)
libXrandr.so.2 => /lib64/libXrandr.so.2 (0x0000003ec7800000)
libXfixes.so.3 => /lib64/libXfixes.so.3 (0x0000003ec7400000)
libXcursor.so.1 => /lib64/libXcursor.so.1 (0x0000003ec7c00000)
libXinerama.so.1 => /lib64/libXinerama.so.1 (0x0000003ec7000000)
libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x000000368d400000)
libXext.so.6 => /lib64/libXext.so.6 (0x0000003ec6400000)
libjson-c.so.2 => /lib64/libjson-c.so.2 (0x00000036aa600000)
libXau.so.6 => /lib64/libXau.so.6 (0x0000003689c00000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x000000368b000000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00000036a0000000)
libgsm.so.1 => /lib64/libgsm.so.1 (0x00000036a7600000)
libFLAC.so.8 => /lib64/libFLAC.so.8 (0x00000036a7200000)
libvorbisenc.so.2 => /lib64/libvorbisenc.so.2 (0x00000036a5400000)
libvorbis.so.0 => /lib64/libvorbis.so.0 (0x00000036a1400000)
libogg.so.0 => /lib64/libogg.so.0 (0x000000369b600000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x0000003689800000)
libattr.so.1 => /lib64/libattr.so.1 (0x0000003693600000)
libgnuradio-audio-3.7.0.so.0.0.0 => /opt/gnuradio.git/lib64/libgnuradio-audio-3.7.0.so.0.0.0 (0x00007fc5790e9000)
libusb-1.0.so.0 => /lib64/libusb-1.0.so.0 (0x00000036a9600000)
libasound.so.2 => /lib64/libasound.so.2 (0x00000037a2e00000)
libportaudio.so.2 => /lib64/libportaudio.so.2 (0x000000346f400000)
libffi.so.6 => /lib64/libffi.so.6 (0x000000368bc00000)
libexpat.so.1 => /lib64/libexpat.so.1 (0x000000368c800000)
libjack.so.0 => /lib64/libjack.so.0 (0x000000346d600000)
libcelt0.so.2 => /lib64/libcelt0.so.2 (0x000000368dc00000)
libopus.so.0 => /lib64/libopus.so.0 (0x000000346c600000)
[jacek@dragon32 gqrx]$
Output from gqrx:
[jacek@dragon32 gqrx]$ ./gqrx
Controlport disabled
No user supplied config file. Using "default.conf"
gr-osmosdr v0.1.0-6-g93ad959d (0.1.1git) gnuradio 3.7.0
built-in source types: file fcd rtl rtl_tcp bladerf
Using Volk machine: sse4_2_64_orc
IQ DCR alpha: 1.04166e-05
New filter offset: 0 Hz
Loading configuration from: "default.conf"
Configuration file: "/home/jacek/.config/gqrx/default.conf"
Crash guard triggered!
Launching I/O device editor
Configure I/O devices.
CIoConfig : Available input devices:
0 : "FUNcube Dongle V2.0"
1 : "RTL-SDR Spectrum Server"
2 : "Complex Sampled (IQ) File"
CIoConfig : Available output devices:
0 : "HDA NVidia Digital Stereo (HDMI)"
1 : "Built-in Audio Analog Stereo"
saveConfig
saveSettings *** FIXME_ SQL on/off
New FFT rate: 15 Hz
Loading configuration from: "/home/jacek/.config/gqrx/default.conf"
Configuration file: "/home/jacek/.config/gqrx/default.conf"
gr-osmosdr v0.1.0-6-g93ad959d (0.1.1git) gnuradio 3.7.0
built-in source types: file fcd rtl rtl_tcp bladerf
Using FUNcube Dongle V2.0 (hw:3)
New antenna selected: "RX"
No change in output device:
old:
new:
IQ DCR samp_rate: 192000
IQ DCR alpha: 5.20831e-06
Changing NB_RX quad rate: 96000 -> 192000
Requested sample rate: 192000
Actual sample rate : "192000.000000"
setFreqCorr : 0 ppm
New LNB LO: 0 Hz
"New frequnecy range: 0.15 - 2050 MHz (step is 0 Hz but we use 1 Hz)."
"New frequnecy range: 0.15 - 2050 MHz (step is 0 Hz but we use 1 Hz)."
Gain start/stop/rel/abs:0/59/0.5/29.5
qtgui/dockrxopt.cpp currentMaxdev FIXME
Filter preset for mode 3 LO: -5000 HI: 5000
Genrating taps for new filter LO:-5000 HI:5000 TW:1000
Required number of taps: 159
setFftRate to "15 fps"
New FFT rate: 15 Hz
setFftSize to "4096"
Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt. You must
reimplement QApplication::notify() and catch all exceptions there.
terminate called after throwing an instance of 'std::runtime_error'
what(): resolve_port: hierarchical block 'fcd_source_c': output 0 is not connected internally
Aborted (core dumped)
[jacek@dragon32 gqrx]$
Distro: Fedora 19 Kernel :Linux dragon32.piranet.org 3.9.9-302.fc19.x86_64 #1 SMP Sat Jul 6 13:41:07 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
Please let me know what other information I could provide.
Ok, thanks. Sounds like a different issue so I reopen the issue but I will first be able to look at it after 2.2 is released.
Just to be sure, you do have an udev rule for the Pro+? It has different product ID than the Pro and needs its own entry.
I didn't have rules for Funcubes, but adding them (from https://raw.github.com/csete/qthid/fcdpp/funcube-dongle.rules) did not help. Still "cannot get freq" and gqrx crashes.
If you download this .tar.gz file: https://launchpad.net/~gqrx/+archive/snapshots/+files/gr-fcdproplus_0.0.1%2B1git20130802-g2ba97709-0ubuntu0%7Egqrx%7Eraring9.debian.tar.gz you will find a libgnuradio-fcdproplus.udev file in. Please try that rule as it may work better.
PS: I don't know if necessary, but you better rename the file to have .rules extension.
I added the rule and commented out FCDP+ from the old file, but gqrx still crashes. The link in /dev is created, so the new rule has been applied. Gqrx also crashes when started from root account, so it doesn't look like a problem with permissions.
It looks that the problem is with gr-osmosdr. From my experiments with gnuradio-companion:
Which version of gr-osmosdr do you use?
for the official gqrx release I have packaged git version from 20130728 g9dfe3a63. You should get an error message when you configure gr-osmosdr with FCDPv1 since it has differetn product ID than the v2 (you shouldn't be able to set frequency and such).
osmocom does not detect properly FCD when I provide 'device=' parameter. Then FCD is assumed to be v1. When 'device' is omitted FCD is detected properly, but the block crashes. When I enforce device and FCD type the block crashes as well. The flow graph is very simple: source + null sink, so there is not much else to crash. Log from grc. Run as root, to avoid potential problems with permissions:
gr-osmosdr v0.1.0-7-g9dfe3a63 (0.1.1git) gnuradio 3.7.0
built-in source types: file fcd rtl rtl_tcp bladerf
Using FUNcube Dongle V2.0 (hw:1)
Traceback (most recent call last):
File "/root/top_block.py", line 65, in <module>
tb.Start(True)
File "/opt/gnuradio.git/lib64/python2.7/site-packages/grc_gnuradio/wxgui/top_block_gui.py", line 73, in Start
self.start()
File "/opt/gnuradio.git/lib64/python2.7/site-packages/gnuradio/gr/top_block.py", line 103, in start
top_block_start_unlocked(self._tb, max_noutput_items)
File "/opt/gnuradio.git/lib64/python2.7/site-packages/gnuradio/gr/runtime_swig.py", line 4297, in top_block_start_unlocked
return _runtime_swig.top_block_start_unlocked(*args, **kwargs)
RuntimeError: resolve_port: hierarchical block 'fcd_source_c': output 0 is not connected internally
>>> Done
Device configuration string for osmocom source:
fcd=0
Still a problem, but it's not a problem with gqrx so I'm closing the issue. Feel free to reopen if you think that you can do something to fix it.
FWIW I usually use device string like this:
fcd,device=hw:2,type=2
With fcd,device=hw:1 even a microphone is detected as FCDv1. Adding type=2 always crashes the application. Can you post somewhere statically linked version of gqrx, so I wouldn't have to depend on my libraries?
I have uploaded a binary package to sourceforge: https://sourceforge.net/projects/gqrx/files/2.2.0/ I hope you can use it.
I'm missing some libs. Could you please add them to the package?
[jacek@dragon32 gqrx-2.2.0-x86_64]$ ldd ./gqrx |grep "not found"
libIce.so.34 => not found
libIceUtil.so.34 => not found
libicuuc.so.48 => not found
libicui18n.so.48 => not found
[jacek@dragon32 gqrx-2.2.0-x86_64]$
Can you try to install zeroc ice 3.4 package?
Works. For the record:
sudo yum localinstall ice-libs-3.4.2-1.rhel6.x86_64.rpm ./ice-3.4.2-1.rhel6.noarch.rpm ./db48-4.8.30-1ice.rhel6.x86_64.rpm
cp libicudata.so* libicuuc.so* libicui18n.so* <gqrx dir>/lib
LD_LIBRARY_PATH=lib ./gqrx
Strange... it should work without copying the libraries to lib/ and without doing the LD_LIBRARY_PATH thing.
I copied libraries to lib because thy were not packaged in rpm and I didn't want to copy them to /usr/local/lib64. LD_LIBRARY_PATH is not really necessary, but at some point linker didn't want to see one of the libraries, so I added it to be safe. Otherwise everything works fine. I posted the recipe as a reference for people who would like to run your binary on a system which does not provide proper versions of ice and icu4c.
gqrx crashes on starting DSP. Output from the program:
Problem does not occur with FCDP v1