I'm using cp210xmanufacturing library for Linux, why is my device not recognized when calling CP210x_GetNumDevices()?
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.
Attention: 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.