Installing CP210x Driver?
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
Amber
Updated on September 18, 2022Comments
-
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:
- make ( your cp210x driver )
- cp cp210x.ko to
/lib/modules/<kernel-version>/kernel/drivers/usb/serial
insmod /lib/modules/<kernel-version/kernel/drivers/usb/serial/usbserial.ko
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
-
George Udosen over 6 yearsPlease provide the link to the steps!
-
Amber over 6 yearsThe steps are in a download file from here - silabs.com/products/development-tools/software/…
-
Amber over 6 yearsI'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 over 6 yearsThere 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 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 over 6 yearsYes, it was a zip file with those four files. I added the modinfo to the original question yesterday after I commented.
-
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.