更新Raspberry Pi上的产品/供应商ID(CP210X)

问题描述:

在我的Raspberry Pi上运行“uname -a”将产生以下结果: Linux tm-gw 4.4.14-v7 +#896 SMP Sat Jul 2 15:09:43 BST 2016 armv7l GNU/Linux更新Raspberry Pi上的产品/供应商ID(CP210X)

我的问题是,我有一个USB设备哪个供应商和产品ID没有注册在CP210x.c文件中,这又意味着即使可以找到,树莓将不允许与它通信(/ dev/ttyUSB0不存在)。

我试图下载内核,将ID对添加到cp210x.c文件,重新生成并安装,这是可行的。 (dmesg将显示“usb 1-1.4:cp210x转换器现在连接到ttyUSB0”)

由于我必须在多个树莓上安装此程序,所以需要太长的时间,所以我想知道是否有可能在不重新编译内核的情况下注入USB ID?

我确实尝试从内核中创建cp210x.ko文件,并通过键入“sudo insmod cp210x.ko”将其安装到新的树莓上,但是没有成功。

/Karsten

+0

只有在模块版本编号完全匹配时才能加载内核模块。如果你使用你建立的内核启动树莓派,insmod cp210x.ko应该可以工作。如果你想保留旧的内核,但是加载了根据你所做的修改的内核源代码生成的模块,它将无法工作。 – Sanchayan

+0

我还没有尝试过,但你应该能够执行'echo VEND PROD>/sys/bus/usb-serial/cp210x/new_id'其中'VEND'和'PROD'是4位十六进制供应商和产品新设备的ID。在这之前你可能必须先做一个'modprobe cp210x'。如果有效,请将这些命令放在本地启动脚本中。 –

+0

@Sanchayan:我试图在旧的内核中加载新的.ko模块,你是对的:它没有工作:-D –

感谢Ian Abbott的解决方案。

运行 “须藤modprobe的CP210X” 然后

须藤SH -c '回波10C4 84cc>/SYS /总线/ USB串行/驱动器/ CP210X/NEW_ID'

当在设备插入它作品:-)

+0

很高兴你有它的工作。这个设备究竟是什么?如果您愿意,我可以将修补程序提交给相应的Linux维护人员和邮件列表。 –

+0

@Ian Abbott,它是一个生物质锅炉系统的控制器,我们正在与RP进行接口连接,因此如果它可以成为已批准设备列表的一部分,那将是一件好事。其实我想知道如何申请更改,因为我们还有一些应该实施的ID。 –

+0

留意“Documentation/SubmittingPatches”中的建议。基本上是通过适当的总结,描述和“Signed-off-by:”行来创建针对当前“linux-next”内核的补丁。有关cp210x驱动程序的示例补丁,请参阅Linux git存储库中'git show --format = email 6627ae19'的输出。最好在git中工作,因为它可以生成补丁('git format-patch'),甚至通过电子邮件发送它们('git send-email')。有关发送补丁的位置,请参阅kernel MAINTAINERS文件中的“USB SERIAL SUBSYSTEM”。 –