Bug in rtl-sdr / libusb / usbfs

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/osmocom-sdr@lists.osmocom.org/.

Nikos Balkanas nikos.balkanas at eyeonix.com
Sat Jan 11 12:25:31 UTC 2014


I am sorry, my mistake. You are right, it tunes to 2.2 GHz. Mixing up my
Ghz with Mhz :-(

I am not using, however, rtl-sdr, just librtlsdr with my program. I tune to
2.1 Ghz with no problems ;-)

Just to make sure I ran your command line:

rtl_sdr -f 100000000 -
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000074

Using device 0: Generic RTL2832U OEM
Found Elonics E4000 tuner
Tuned to 100000000 Hz.
Reading samples in async mode...
<Binary data deleted>...

The only problem I noticed is giving me a core-dump when I kill it with
<ctrl>-C.

I have a 64x Ubuntu 12.04 using latest rtl_sdr sources ;-)

BR,
Nikos


On Sat, Jan 11, 2014 at 12:56 PM, Gonzalo José Carracedo Carballal <
batchdrake at gmail.com> wrote:

> Hello!
>
> This is my first time using this mailing list, hope it's the right
> place to post this.
>
> I compiled rtl-sdr under Debian 7.2 (32 bits x86) it detects my ezcap
> e4k properly but it's unable to read samples. When running rtl_sdr
> like this, it just hangs:
>
>
> ---8<--------------------------------------------------------------------------------------------
> % rtl_sdr -f 100000000 -
> Found 1 device(s):
>   0:  Realtek, RTL2838UHIDIR, SN:
>
> Using device 0: Generic RTL2832U OEM
> Found Elonics E4000 tuner
> Tuned to 100000000 Hz.
> Reading samples in async mode...
>
> ---8<--------------------------------------------------------------------------------------------
>
> Pressing Ctrl+C only makes rdl_sdr say "Signal caught, exiting!", but
> it won't exit unless you kill it explicitly with SIGKILL. If I run it
> in synchronous mode, I get this output instead:
>
>
> ---8<--------------------------------------------------------------------------------------------
> % rtl_sdr -f 100000000 -S -
> Found 1 device(s):
>   0:  Realtek, RTL2838UHIDIR, SN:
>
> Using device 0: Generic RTL2832U OEM
> Found Elonics E4000 tuner
> Tuned to 100000000 Hz.
> Reading samples in sync mode...
> WARNING: sync read failed.
>
> Library error -8, exiting...
> rtlsdr_demod_write_reg failed with -1
>
> ---8<--------------------------------------------------------------------------------------------
>
> I tried to reinstall libusb, recompiling it from a newer version (I'm
> currently using 1.0-16rc10)  and got the same output. As -8 means
> overflow for libusb, I decided to increase the output block size. I
> had to edit rtl_sdr.c to read as much as 30M, and that was the only
> way I could get some output. Block sizes below 10M just won't do the
> trick:
>
>
> ---8<--------------------------------------------------------------------------------------------
>  % rtl_sdr -b 30000000 -f 100000000 -S -
> Found 1 device(s):
>   0:  Realtek, RTL2838UHIDIR, SN:
>
> Using device 0: Generic RTL2832U OEM
> Found Elonics E4000 tuner
> Tuned to 100000000 Hz.
> Reading samples in sync mode...
> Short read, samples lost, exiting!
>
> Library error 0, exiting...
> (here be messy bytes of 64 bytes sampled by RTL)
>
> ---8<--------------------------------------------------------------------------------------------
>
> That's why I recompiled libusb with logging, and I got this output
> (now, with 3M blocks):
>
>
> ---8<--------------------------------------------------------------------------------------------
> [...]
> Reading samples in sync mode...
> libusb: 1.079895 debug [submit_bulk_transfer] need 184 urbs for new
> transfer with length 3000000
> libusb: 1.080660 debug [libusb_handle_events_timeout_completed] doing
> our own event handling
> libusb: 1.080692 debug [handle_events] poll() 4 fds with timeout in 60000ms
> libusb: 1.083056 debug [handle_events] poll() returned 1
> libusb: 1.083082 debug [reap_for_handle] urb type=3 status=-75
> transferred=64
> libusb: 1.083104 debug [handle_bulk_completion] handling completion
> status -75 of bulk urb 1/184
> libusb: 1.083125 debug [handle_bulk_completion] overflow, actual_length=64
> libusb: 1.083146 debug [disarm_timerfd]
> libusb: 1.083161 debug [usbi_handle_transfer_completion] transfer
> 0x97a0424 has callback 0xb775c7f0
> libusb: 1.083182 debug [bulk_transfer_cb] actual_length=64
> WARNING: sync read failed.
>
> Library error -8, exiting...
> [...]
>
> ---8<--------------------------------------------------------------------------------------------
>
> Status -75 (overflow) made me think about a limitation on the URB size
> in my system, but it looks that in Linux that's a standard (16K), so I
> ran out of ideas. I don't know where the problem is anymore, whether
> in rtl-sdr, libusb, usbfs or even in my system; because I've compiled
> it in two different systems already (my laptop - Ubuntu 12.04 - and my
> home computer - Debian Sid -) and it works fine in both of them.
>
> Regards,
> --
> >> Gonzalo José Carracedo Carballal
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/osmocom-sdr/attachments/20140111/bb0b0311/attachment.htm>


More information about the osmocom-sdr mailing list