Summary: What is 'usb.h'?

  • Is this a system specific file that should be installed with my OS?
  • Is it a software specific file that should be included with the source code I'm compiling?
  • Is it generically replaceable by download?
  • Can I write this file from scratch?

Expansion: Very new to Ubuntu. Working my way through installations of my desired software (GNU-RADIO and GNSS-SDR).
While trying to configure a certain piece of hardware (SiGe GN3S Sampler v2 usb device) as an RF-Front End for the software, I received the following errors:

dsradin@dsradin-HP-Pavilion-dv6-Notebook-PC:~/gnss-sdr/drivers/gr-gn3s/build$ make
Scanning dependencies of target gr-gn3s
[ 6%] Building CXX object lib/CMakeFiles/gr-gn3s.dir/gn3s_source_cc.cc.o
In file included from /home/dsradin/gnss-sdr/drivers/gr-gn3s/include/fusb.h:26:0,
                 from /home/dsradin/gnss-sdr/drivers/gr-gn3s/include/gn3s.h:40,
                 from /home/dsradin/gnss-sdr/drivers/gr-gn3s/include/gn3s_source.h:30,
                 from /home/dsradin/gnss-sdr/drivers/gr-gn3s/include/gn3s_source_cc.h:35,
                 from /home/dsradin/gnss-sdr/drivers/gr-gn3s/lib/gn3s_source_cc.cc:34:
/home/dsradin/gnss-sdr/drivers/gr-gn3s/include/libusb_types.h:32:17: fatal error: usb.h: No such file or directory
 #include <usb.h>
compilation terminated.
make[2]: *** [lib/CMakeFiles/gr-gn3s.dir/gn3s_source_cc.cc.o] Error 1
make[1]: *** [lib/CMakeFiles/gr-gn3s.dir/all] Error 2
make: *** [all] Error 2

I tried looking through the system to find the files with no joy:

dsradin@dsradin-HP-Pavilion-dv6-Notebook-PC:~/gnss-sdr/drivers/gr-gn3s/build$ whereis usb.h
dsradin@dsradin-HP-Pavilion-dv6-Notebook-PC:~/gnss-sdr/drivers/gr-gn3s/build$ whereis libusb


The excerpt from the readme I am following with the instructions say:

  • Build GN3S V2 Custom firmware and driver (OPTIONAL)

Go to GR-GN3S root directory, compile and install the driver: (read the drivers/gr-gn3s/README for more information)

$ cd gnss-sdr/drivers/gr-gn3s
$ cd build
$ cmake ../
$ make
$ sudo make install
$ sudo ldconfig

Set the environment variable GN3S_DRIVER=1 in order to enable the GN3S_Signal_Source in GNSS-SDR (OPTIONAL)

$ export GN3S_DRIVER=1

In order to gain access to USB ports, gnss-sdr should be used as root.
In addition, the driver requires access to the GN3S firmware binary file.
It should be available in the same path where the application is called.
GNSS-SDR comes with a pre-compiled custom GN3S firmware available at gnss-sdr/firmware/GN3S_v2/bin/gn3s_firmware.ihx.
Please copy this file to the application path. The GNSS-SDR default path is gnss-sdr/install

(in order to disable the GN3S_Signal_Source compilation, you should remove the GN3S_DRIVER variable and build again GNSS-SDR)

I have uninstalled all packages related and re-cloned the GIT repositories that house all the relevant source codes and scoured the internet but without more information about what exactly I'm looking for I'm stuck.

Any suggestions?? Thank you for your help!

1 Answer 1


GNU radio uses libusb.

$ apt-file search /usr/include/usb.h
libusb-dev: /usr/include/usb.h

That is probably the file you need, to install the package do sudo apt-get install libusb-dev

  • Perfect. Thanks for the question edit too! I was trying to fix it when you got it before me. Worked like a charm, everything installed correctly. SOLVED.
    – DSRadin
    Jul 29, 2014 at 1:27
  • For whatever reason I tought usb.h missing was from the linux-header but fail to realized i was in fact missing libusb-dev!
    – ROunofF
    Nov 5, 2016 at 17:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .