- Library source from AN721SW (cp210xmanufacturing_1.0.tar.gz) - Manufacturing tool source (cp210xsmt) - Builds 64-bit shared library with: make LIB_ARCH=64 - Datasheets and app notes in docs/
97 lines
3.0 KiB
Plaintext
97 lines
3.0 KiB
Plaintext
cp210xmanufacturing library and Linux FAQ
|
|
==================================================
|
|
|
|
This document provides information on how to build and use the
|
|
CP210xManufacturing library for linux.
|
|
|
|
This document describes procedures that apply to Ubuntu Linux distributions.
|
|
Exact procedures and commands may differ for your specific distribution.
|
|
|
|
FAQ
|
|
---
|
|
|
|
Q?: How do I link to the cp210xmanufacturing library?
|
|
|
|
A?: The library is installed (by default) in /usr/local/lib. Therefore you can add
|
|
these two flags to your compiler command:
|
|
-L/usr/local/lib -lcp210xmanufacturing
|
|
|
|
This will link your executable with the cp210xmanufacturing library
|
|
and will allow g++ to find the library.
|
|
|
|
Q?: Why is my device not recognized when calling CP210x_GetNumDevices()?
|
|
|
|
A?: It could be a permissions problem. Try running your program as root.
|
|
If the device is recognized when your program is run as root but not when
|
|
run with normal permissions, the SiliconLabs.rules file may not be
|
|
installed properly.
|
|
|
|
root should always have read/write permissions to USB device files.
|
|
|
|
To automatically grant global read/write permissions to all USB devices with the
|
|
Silicon Labs Vendor ID (0x10c4), copy the SiliconLabs.rules file to
|
|
/etc/udev/rules.d/:
|
|
|
|
$ sudo cp SiliconLabs.rules /etc/udev/rules.d/
|
|
|
|
Refer to SiliconLabs.rules for more information. Also it may be necessary to
|
|
create your own udev rules file by modifying SiliconLabs.rules to include
|
|
your own Vendor ID and optionally Product ID.
|
|
|
|
A8:3 The udev rules file may not have been applied. udev should monitor the
|
|
/etc/udev/rules.d/ directory for new rules file, but this does not always work.
|
|
You may need to unplug/replug your device and possibly reboot for the udev
|
|
rule to take affect.
|
|
|
|
Q1: Why does the
|
|
|
|
|
|
Q?: Why do I get the following error when trying to build libcp210xmanufacturing?
|
|
|
|
Package libusb-1.0 was not found in the pkg-config search path.
|
|
|
|
A2: The libslabhidtouart library requires libusb-1.0-0.dev to be installed.
|
|
This will copy the libusb-1.0 library and include files and register the
|
|
package with pkg-config.
|
|
|
|
On Ubuntu, install libusb-1.0-0-dev:
|
|
$ sudo apt-get install libusb-1.0-0-dev
|
|
|
|
|
|
Q3: Why do I get the following error when trying to build libcp210xmanufacturing?
|
|
|
|
g++: not found
|
|
|
|
A3: The libslabhidtouart library requires gcc, g++, and ld to compile and build
|
|
the library.
|
|
|
|
On Ubuntu, install g++:
|
|
$ sudo apt-get install g++
|
|
|
|
- or -
|
|
|
|
To install a g++ package with support for 32-bit and 64-bit builds:
|
|
$ sudo apt-get install g++-multilib
|
|
|
|
|
|
Q12: How can I tell if a binary is built for 32-bit or 64-bit?
|
|
|
|
To specify which x86 architecture to build, use the following:
|
|
make LIB_ARCH=32
|
|
- or -
|
|
make LIB_ARCH=64
|
|
|
|
A12: Use the file command to display the binary format
|
|
|
|
$ file libslabhidtouart.so.1.0
|
|
|
|
|
|
Q13: I've done everything here and I still can't build using make
|
|
|
|
A13: Sometimes you might need to rebuild the project after installing new
|
|
header files and libraries or to rebuild object files.
|
|
|
|
$ make clean
|
|
$ make
|
|
|