Thanks for this timely update! I just got this R820T based device and just tried to receive local radio stations to no avail.
I live about 70 miles from town, and get only a few stations here with a cheap little transistor radio. With the device and rtl_fm, I am lucky to make out voices in the static.
So, I sent one down to a server I manage that is _under_ a tower. Of course, I can receive the two stations that broadcast from the tower. They come in loud and clear! But nothing else. My goal was to be able to listen to radio stations in town by remote using the server in town, so I'm limited to shell based applications like rtl_fm. My next step was going to be GNURadio, if I can make it work headless, but I found this update last night! Very good timing for me!
Now for the problem(s). What I did on the server was:
git clone https://github.com/keenerd/rtl-sdr rtl-sdr-beta cd rtl-sdr-beta/ autoreconf -i ./configure make
and I get this (I cut out the largely irrelevant parts, but can supply full console output if needed):
rtl_sdr.o: In function `main': /home/deron/rtl-sdr-beta/src/rtl_sdr.c:128: undefined reference to `verbose_device_search' /home/deron/rtl-sdr-beta/src/rtl_sdr.c:202: undefined reference to `verbose_set_sample_rate' /home/deron/rtl-sdr-beta/src/rtl_sdr.c:205: undefined reference to `verbose_set_frequency' /home/deron/rtl-sdr-beta/src/rtl_sdr.c:209: undefined reference to `verbose_auto_gain' /home/deron/rtl-sdr-beta/src/rtl_sdr.c:216: undefined reference to `verbose_ppm_set' /home/deron/rtl-sdr-beta/src/rtl_sdr.c:212: undefined reference to `nearest_gain' /home/deron/rtl-sdr-beta/src/rtl_sdr.c:213: undefined reference to `verbose_gain_set' /home/deron/rtl-sdr-beta/src/rtl_sdr.c:232: undefined reference to `verbose_reset_buffer' /home/deron/rtl-sdr-beta/src/rtl_sdr.c:178: undefined reference to `verbose_device_search'
I see where you have defined verbose_* in convenience.c, but configuration must not be correctly building/linking it in. I am very much out of my water with autoconf etal. I suspect you are using some other method to compile this, so might not be in any better footing than I.
Thanks for you assistance,
Deron
Wrote too soon. I found alternate build instructions, and:
mkdir build cd build cmake ../ make
Works fine. Now for some testing...
Thanks,
Deron
Hi,
On 12.12.2013 18:01, Deron wrote:
git clone https://github.com/keenerd/rtl-sdr rtl-sdr-beta cd rtl-sdr-beta/ autoreconf -i ./configure make /home/deron/rtl-sdr-beta/src/rtl_sdr.c:128: undefined reference to `verbose_device_search'
keenerd added a new sublibrary, but only added it to the cmake build system as it seems, so you'll have to use cmake to build it.
Regards, Steve
Some very basic observations, hope they are useful. Some may be a result of my (lack of) understanding.
- Control-c will not stop it. It catches the signal, and reports "Signal caught, exiting!" but does not. I had to kill -9 to stop it...
- When first run, I get 30 logged errors of "xhci_hcd 0000:00:14.0: ERROR no room on ep ring".
- fm was much better than the old version, but -fmwb was the same. I narrowed it down to -o 4. That alone destroyed all improvements. By using:
./rtl_fm -f 95.1M -M fm -s 170k -A fast -r 32k -l 0 -E deemp - | aplay -r 32k -f S16_LE
It was much better. I'll play around more this weekend when I have more time.
Overall, very good. Night and day compared to before. Also, cpu usage seemed less. Top reports about 3% vs 6% from before.
Deron
Hello Kyle,
I had a chance to place with it this weekend, and again last night, and the only additional problems I had:
- After 20-30 forced quits, the device will go completely bonkers. Ok, not very technical and hopefully related to the inability to stop it in general.
- I have no idea how to make scanning work. Is there something I am missing to force it to continue scanning at the next frequency? Also, when it finds something that breaks squelch, could it dump to shell the frequency using stderr?
- I'm using an R820T based device. As I understand it, the offset tuning is unnecessary. Looking at the code, "-E offset" should do just what I want. It disables the offset/90deg shift in rtl_fm, and the library recognizes that is unnecessary and returns -2 or some such. The (very minor) bug is that it reports it as an error that it is unable to set the offset.
So what can I do to help find/fix the quit problem?
Thanks!
Deron
Some very basic observations, hope they are useful. Some may be a result of my (lack of) understanding.
- Control-c will not stop it. It catches the signal, and reports "Signal caught, exiting!" but does not. I had to kill -9 to stop it...
- When first run, I get 30 logged errors of "xhci_hcd 0000:00:14.0: ERROR no room on ep ring".
- fm was much better than the old version, but -fmwb was the same. I narrowed it down to -o 4. That alone destroyed all improvements. By using:
./rtl_fm -f 95.1M -M fm -s 170k -A fast -r 32k -l 0 -E deemp - | aplay -r 32k -f S16_LE
It was much better. I'll play around more this weekend when I have more time.
Overall, very good. Night and day compared to before. Also, cpu usage seemed less. Top reports about 3% vs 6% from before.
Deron
New feature! If your eeprom serial looks like "ABC 115p" it'll automatically apply a ppm correction of 115. (The start of the string can be anything you want, it checks the end for a ppm value.)
The important part is that the ppm value starts with a space and ends with "p". Works in rtl_fm, rtl_power and rtl_tcp. The automatic value can be overridden with the command line switch.
Once again, this is in my experimental github repo: https://github.com/keenerd/rtl-sdr
On 12/18/13, Deron deron@pagestream.org wrote:
- After 20-30 forced quits, the device will go completely bonkers. Ok,
not very technical and hopefully related to the inability to stop it in general.
You are the only person to have this problem. More people (myself included) have found the new code to exit much more gracefully and consistently. Given that you were getting a bunch of xhci errors it really sounds like the fault is in libusb or your hardware. What libc and version of libusb are you using?
To be safe I've added some explicit clean up code that I was letting the OS handle on exit.
- I have no idea how to make scanning work. Is there something I am
missing to force it to continue scanning at the next frequency?
As it says in the --help: "use multiple -f for scanning (requires squelch), ranges supported, -f 118M:137M:25k" If you'd like something other than rtfm, please provide the exact command you are using.
Also, when it finds something that breaks squelch ...
This is a little more complicated to be useful, but I'm working on it.
- I'm using an R820T based device. As I understand it, the offset tuning
is unnecessary. Looking at the code, "-E offset" should do just what I want. It disables the offset/90deg shift in rtl_fm, and the library recognizes that is unnecessary and returns -2 or some such. The (very minor) bug is that it reports it as an error that it is unable to set the offset.
You've got some things confused. "-E offset" should only be used with E4000 chips. The 90 degree shift (in software) is different from dongle offset tuning. But I understand what you want to accomplish and will add support for that.
-Kyle http://kmkeen.com