为 4.18.0-18-generic 编译 cdc-acm.ko

为 4.18.0-18-generic 编译 cdc-acm.ko

我正在尝试将设备连接到我的 Ubuntu 18.04 机器以及带有 Jetpack 4.2 的 Jetson Xavier。在此视频一个人解释了他在之前的版本中是如何做到的。

我收到此错误:

~$ sudo insmod /lib/modules/4.18.0-18-generic/kernel/drivers/usb/class/cdc-acm.ko 
insmod: ERROR: could not insert module /lib/modules/4.18.0-18-generic/kernel/drivers/usb/class/cdc-acm.ko: Invalid module format

因此我认为它与我的版本不兼容。(无论如何,这就是installingCDCACM.sh文件提示的警告所说的内容……)

所以我并不是 Linux 的完全初学者,但我肯定从未编译过驱动程序。我想这就是让它运行所必须做的事情,对吗?

我找到了 cdc-acm 驱动程序的 .c 和 .h 文件这里但我正在努力用这个来编译它教程。它实际上是用于树莓派交叉编译的,所以可能不太合适。编译时出现此错误:

scripts/Makefile.build:330: recipe for target '/home/auser/acm_test/cdc-acm.o' failed
make[2]: *** [/home/auser/acm_test/cdc-acm.o] Error 1
Makefile:1534: recipe for target '_module_/home/auser/acm_test' failed
make[1]: *** [_module_/home/auser/acm_test] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.18.0-18-generic'
Makefile:7: recipe for target 'all' failed
make: *** [all] Error 2

这是正确的方法吗,还是我完全迷路了?遗憾的是,该设备之前已连接到台式机上的应用程序,但仍然没有显示为 ttyACM0(无论如何也不知道它为什么会工作)。再次安装视频中的脚本后,它甚至停止工作。带有这个奇怪的 Ubuntu Jetpack 的 Xavier 根本无法连接。

答案1

解决方案是恢复原始的 cdc-acm.ko 文件。教程中的文件不适用于 4.18。安装的驱动程序完全没问题。

相关内容