Installing CP210x Driver?

42,502

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
Share:
42,502
Amber
Author by

Amber

Updated on September 18, 2022

Comments

  • Amber
    Amber over 1 year

    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 <[email protected]>
    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
    Amber over 6 years
    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
    Amber over 6 years
    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
  • Boris Hamanov
    Boris Hamanov over 6 years
    @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!
  • Amber
    Amber over 6 years
    Yes, it was a zip file with those four files. I added the modinfo to the original question yesterday after I commented.
  • Boris Hamanov
    Boris Hamanov over 6 years
    @Amber I didn't see a modinfo for cp210x. Is it not there? Then follow my instructions to compile/install it.