Kar*_*ška 6 usb kernel drivers
当前 Ubuntu 版本中的 usbserial 内核模块有何处理?我无法安装任何依赖于 usbserial.ko 的驱动程序。
我是如何做到这一点的:
当我将 CP2102 虚拟 COM 端口 (VCP) 适配器连接到 USB 时,我得到以下输出:
[ 1893.942663] usb 1-1.1.4.2: new full-speed USB device number 12 using ehci-pci
[ 1894.052823] usb 1-1.1.4.2: New USB device found, idVendor=10c4, idProduct=ea60
[ 1894.052826] usb 1-1.1.4.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1894.052828] usb 1-1.1.4.2: Product: CP2102 USB to UART Bridge Controller
[ 1894.052829] usb 1-1.1.4.2: Manufacturer: Silicon Labs
[ 1894.052831] usb 1-1.1.4.2: SerialNumber: 0001
[ 1895.067552] cp210x: Unknown symbol usb_serial_generic_open (err 0)
[ 1895.067565] cp210x: Unknown symbol usb_serial_generic_close (err 0)
[ 1895.067579] cp210x: Unknown symbol usb_serial_deregister_drivers (err 0)
[ 1895.067595] cp210x: Unknown symbol usb_serial_register_drivers (err 0)
Run Code Online (Sandbox Code Playgroud)
$ lsmod | grep 210x并$ lsmod | grep usbserial没有输出任何内容
然后我尝试重建驱动程序。从http://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers下载新的 CP210x 驱动程序
$ make
$ cp ./cp210x.ko /lib/modules/4.8.0-58-generic/kernel/drivers/usb/serial/cp210x.ko
$ insmod /lib/modules/4.8.0-58-generic/kernel/drivers/usb/serial/cp210x.ko
insmod: ERROR: could not insert module /lib/modules/4.8.0-58-generic/kernel/drivers/usb/serial/cp210x.ko: Unknown symbol in module
Run Code Online (Sandbox Code Playgroud)
还$ modinfo usbserial输出
filename: /lib/modules/4.8.0-58-generic/kernel/drivers/usb/serial/usbserial.ko
modinfo: ERROR: could not get modinfo from 'usbserial': No such file or directory
Run Code Online (Sandbox Code Playgroud)
我的系统信息:4.8.0-58-generic #63~16.04.1-Ubuntu SMP Mon Jun 26 18:08:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
这里发生了什么以及如何修复它?以及如何让驱动程序启动并运行?
先感谢您!!
我的乐鑫基于 SiLabs CP2102 的 ESP32-DevKitC 板也遇到了与您提到的完全相同的问题。你没有提到你正在使用的环境,但我正在将 Ubuntu 作为 VirtualBox 虚拟机运行,结果这就是我的问题的根源。
问题在于,在专为虚拟机和云使用而设计的 Ubuntu 映像中,默认情况下不会安装 USB 串行驱动程序。
要解决该问题,请linux-image-extra-virtual运行以下命令来安装该软件包:
sudo apt-get install linux-image-extra-virtual
Run Code Online (Sandbox Code Playgroud)
安装该软件包后,将/dev/ttyUSB0USB 设备连接到我的(主机)Mac 后不久,我就得到了一个串行设备。