【问题标题】:updating product/vendor id on Raspberry Pi (CP210X)在 Raspberry Pi (CP210X) 上更新产品/供应商 ID
【发布时间】:2016-11-14 18:29:58
【问题描述】:

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

我的问题是我有一个 USB 设备,其供应商和产品 ID 未在 CP210x.c 文件中注册,这再次意味着即使可以找到它,覆盆子也不允许与之通信(/ dev/ttyUSB0 不存在)。

我已尝试下载内核,将 ID 对添加到 cp210x.c 文件中,重新构建并安装,它可以工作。 (dmesg 将显示“usb 1-1.4:cp210x 转换器现在连接到 ttyUSB0”)

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

我确实尝试从我构建的内核中获取 cp210x.ko 文件,然后通过键入“sudo insmod cp210x.ko”将其安装到新的树莓派中,但没有奏效。

/卡斯滕

【问题讨论】:

  • 内核模块只有在模块版本号完全匹配时才能加载。如果您使用您构建的内核启动树莓派,那么 insmod cp210x.ko 应该可以工作。如果您想保留旧内核但加载针对您进行更改的内核源构建的模块,它将无法工作。
  • 我没试过,但你应该可以echo VEND PROD > /sys/bus/usb-serial/cp210x/new_id,其中VENDPROD是新设备的4位十六进制供应商和产品ID。在此之前,您可能必须执行modprobe cp210x。如果可行,请将命令放入本地启动脚本中。
  • @Sanchayan:我试图在旧内核中加载新的 .ko 模块,你是对的:它不起作用:-D
  • @Ian Abbott:我尝试了您的解决方案,但是当我运行“sudo echo 10c4 84cc > /sys/bus/usb/cp210x/new_id”时出现错误“-bash: /sys/bus /usb/cp210x/new_id:没有这样的文件或目录”。 (我先运行“sudo modprobe cp210x”)。我做错什么了吗?
  • @KarstenL 这是/sys/bus/usb-serial/cp210x/new_id,而不是/sys/bus/usb/cp210x/new_id。此外,> 重定向无法按您对sudo 的预期工作,因为重定向的输出文件是由 shell 作为当前用户打开的。您可以在运行命令之前运行 sudo -s 以使用超级用户权限打开交互式 shell,或者执行类似sudo sh -c 'echo 10c4 84cc > /sys/bus/usb-serial/cp210x/new_id' 的操作以在具有超级用户权限的非交互式 shell 中运行带有重定向的命令。

标签: linux linux-kernel raspberry-pi usb raspbian


【解决方案1】:

感谢 Ian Abbott 提供的解决方案。

运行“sudo modprobe cp210x” 那么

sudo sh -c 'echo 10c4 84cc > /sys/bus/usb-serial/drivers/cp210x/new_id'

插入设备时它可以工作:-)

【讨论】:

  • 很高兴你能成功。这个设备到底是什么?如果您愿意,我可以向相应的 Linux 维护人员和邮件列表提交补丁。
  • @Ian Abbott,它是用于生物质锅炉系统的控制器,我们正在与 RP 连接,因此如果它可以成为批准设备列表的一部分,那就太好了。实际上我想知道如何申请更改,因为我们还有一些 ID 需要实施。
  • 注意“文档/提交补丁”中的建议。这基本上是一个针对当前“linux-next”内核创建补丁的案例,其中包含适当的摘要、描述和“Signed-off-by:”行。有关 cp210x 驱动程序的示例补丁,请参阅 Linux git 存储库中git show --format=email 6627ae19 的输出。最好在 git 中工作,因为它可以生成补丁 (git format-patch) 甚至可以通过电子邮件发送 (git send-email)。请参阅内核 MAINTAINERS 文件中的“USB SERIAL SUBSYSTEM”以了解将补丁发送到何处。
猜你喜欢
  • 2022-01-22
  • 1970-01-01
  • 2019-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多