5

EDIT: I just ran lsmod in the terminal and this was listed

cp210x                 24576  0 

So maybe it is already installed and I don't have to do anything/something else is keeping the GPS from communicating with the program? Is there anything special that would need to be done to allow it to work with Wine?


I'm new to Linux/Ubuntu, so I'm sorry this is sort of stupid. I have a GPS for geocaching (http://www.b4adventure.com/geomatejr/) and to use it, you need the CP210x driver from Silas Labs. I saw there was a Linux driver and thought that would work, however, I'm confused by the "build notes." It doesn't have the exact code to copy into the terminal (or have a convenient installation package :) ).

Here is what the instructions say:

  1. make ( your cp210x driver )
  2. cp cp210x.ko to /lib/modules/<kernel-version>/kernel/drivers/usb/serial
  3. insmod /lib/modules/<kernel-version/kernel/drivers/usb/serial/usbserial.ko
  4. insmod cp210x.ko

Now, the download has four files, the release notes (above), cp210x.c, cp210x_gpio_example.c, and Makefile. I'm assuming the first step uses the Makefile, but I don't know enough about code stuff/Ubuntu to know exactly what I'm supposed to type/what to do.

The Makefile has this:

obj-m = cp210x.o
KVERSION = $(shell uname -r)
all:
    make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
clean:
    make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean

Is KVERSION supposed to be 4.4.0-87-generic (the newest/highest number in the lib/modules folder)? And then PWD my password, maybe? I don't want to ruin stuff by randomly typing code into the terminal so I'd appreciate some guidance! Step-by-step help would be very, very much appreciated!!!


modinfo usbserial # get info on this kernel module
filename:       /lib/modules/4.4.0-87-generic/kernel/drivers/usb/serial/usbserial.ko
license:        GPL
description:    USB Serial Driver core
author:         Greg Kroah-Hartman <gregkh@linuxfoundation.org>
srcversion:     AB3F1BFEDF75B5D214FAAD2
depends:        
intree:         Y
vermagic:       4.4.0-87-generic SMP mod_unload modversions 
parm:           vendor:User specified USB idVendor (ushort)
parm:           product:User specified USB idProduct (ushort)
modinfo cp210x # get info on this kernel module
filename:       /lib/modules/4.4.0-87-generic/kernel/drivers/usb/serial/cp210x.ko
license:        GPL
description:    Silicon Labs CP210x RS232 serial adaptor driver
srcversion:     2943505BFE400A2778D74E5
alias:          usb:v413Cp9500d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v3195pF281d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v3195pF280d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v3195pF190d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2626pEA60d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1FB9p0701d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1FB9p0700d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1FB9p0602d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1FB9p0601d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1FB9p0600d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1FB9p0404d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1FB9p0403d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1FB9p0402d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1FB9p0401d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1FB9p0400d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1FB9p0303d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1FB9p0302d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1FB9p0301d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1FB9p0300d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1FB9p0203d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1FB9p0202d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1FB9p0201d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1FB9p0200d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1FB9p0100d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1E29p0501d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1E29p0102d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1D6Fp0010d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1BE3p07A6d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1BA4p0002d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1B1Cp1C00d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1ADBp0001d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v19CFp3000d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1901p0196d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1901p0195d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1901p0194d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1901p0193d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1901p0190d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v18EFpE025d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v18EFpE00Fd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1843p0200d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v17F4pAAAAd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v17A8p0005d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v17A8p0001d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v16DCp0015d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v16DCp0012d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v16DCp0011d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v16DCp0010d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v16D6p0001d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v16C0p09B1d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v16C0p09B0d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v166Ap0101d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v166Ap0401d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v166Ap0305d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v166Ap0304d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v166Ap0303d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v166Ap0301d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v166Ap0201d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1555p0004d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v13ADp9999d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v12B8pEC62d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v12B8pEC60d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10CEpEA6Ad*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C5pEA61d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4pF004d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4pF003d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4pF002d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4pF001d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4pEA71d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4pEA70d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4pEA61d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4pEA60d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8A2Ad*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8998d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8977d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8962d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8946d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p88A5d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p88A4d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8857d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8856d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8665d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8664d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p85F8d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p85EBd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p85EAd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p84B6d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8477d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8470d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p846Ed*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8418d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8411d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p83D8d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p83A8d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8382d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8341d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p82F9d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p82F4d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8293d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8281d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p826Bd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p822Bd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8218d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p81F2d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p81E8d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p81E7d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p81E2d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p81D7d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p81C8d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p81ADd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p81ACd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p81A9d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p81A6d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p819Fd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p818Bd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p815Fd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p815Ed*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8156d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2405p0003d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p814Bd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p814Ad*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p813Fd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p813Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8115d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p80F6d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p80DDd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p80CAd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p80C4d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p807Ad*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p806Fd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8066d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8054d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8053d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p804Ed*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p8044d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p803Bd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p800Ad*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p1601d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p1101d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10C4p0F91d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10B5pAC70d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10ABp10C5d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v10A6pAA26d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0FDEpCA05d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0FCFp1006d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0FCFp1004d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0FCFp1003d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BEDp1101d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BEDp1100d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0908p01FFd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v08FDp000Ad*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v08E6p5501d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0846p1100d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0745p1000d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0489pE003d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0489pE000d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0471p066Ad*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v045Bp0053d*dc*dsc*dp*ic*isc*ip*in*
depends:        usbserial
intree:         Y
vermagic:       4.4.0-87-generic SMP mod_unload modversions 
Amber
  • 73

1 Answers1

6

In Ubuntu 17.10, these kernel modules are already there. To see if they exist on your 14.04 system, in terminal do...

ls -al /lib/modules/"$(uname -r)"/kernel/drivers/usb/serial/usbserial.ko

ls -al /lib/modules/"$(uname -r)"/kernel/drivers/usb/serial/cp210x.ko

or

modinfo usbserial # get info on this kernel module

modinfo cp210x # get info on this kernel module

To manually load them, so you can try access from Ubuntu, do:

sudo modprobe usbserial # load this kernel module

sudo modprobe cp210x # load this kernel module

Whether or not these modules will allow a Wine program to access the device is unknown. However access from Ubuntu is likely.

If those two files don't exist, then you'll need to compile your source code yourself. Assuming that a file named Linux-3-x-x-VCP-Driver-Source.zip exists on your desktop.

Note: because of this manual method of installation, this will have to be done every time the kernel gets updated via Software Updater.

In a Files (Nautilus) window, right-click on the Linux-3-x-x-VCP-Driver-Source.zip file that you downloaded, and select extract here. You'll end up with a folder named Linux-3-x-x-VCP-Driver-Source.

In terminal...

cd ~/Desktop # change directory to Desktop

cd Linux-3-x-x-VCP-Driver-Source # change directory to the cp210x folder, adjust name if necessary

make # compile the source code

cp cp210x.ko to /lib/modules/"$(uname -r)"/kernel/drivers/usb/serial/ # copy the file to the system area

sudo modprobe usbserial # load this kernel module

sudo modprobe cp210x # load this kernel module
heynnema
  • 70,711
  • I'm sorry, I totally should have included this in the original, I'm running 14.04 as I have an older computer and that is what was recommended for me. – Amber Aug 01 '17 at 17:58
  • There is no tar.gz file, which is what confused me so much. Just: cp210x.c, cp210x_gpio_example.c, Makefile, and CP210x_VCP_Linux_3.13.x_Release_Notes.txt – Amber Aug 01 '17 at 17:59
  • @Amber what you originally downloaded was a .zip file that contained those 4 files. I've updated my answer. Do the two modinfo commands give any results? Cause if they do, then you already got the kernel modules that you need, without having to worry about compiling this download. Please remember to accept my answer if it was helpful. Thanks! – heynnema Aug 01 '17 at 18:55
  • Yes, it was a zip file with those four files. I added the modinfo to the original question yesterday after I commented. – Amber Aug 02 '17 at 20:26
  • @Amber I didn't see a modinfo for cp210x. Is it not there? Then follow my instructions to compile/install it. – heynnema Aug 02 '17 at 22:02