This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好:
在我们的载板上有六个 CAN 接口、但是、在系统启动时未按顺序加载 CAN 器件。
那么、我如何才能使其产生以便加载?
非常感谢!
您好、YST:
您能否说明一下加载 CAN 接口的目的是什么? 如果目的是让特定的 CAN 总线具有特定的 ID、则可以参考以下常见问题解答: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1267036/faq-am69-how-can-i-assign-interface-id-to-can-modules。
此致、
大沼市
目的是使模块探头按顺序发生还是使 CAN 接口 ID 按指定顺序发生?
如果是后者,武马发布的常见问题将会有所帮助。
此致
卡兰
您好、Takuma、
我想使用 Linux 用户 空间中的 CAN 接口 CAN0、CAN1、CAN2和 CAN3、 希望能与电路板上的数字相对应。
我尝试了上面提到的方法,但它不起作用。
那么、我如何才能使其产生以便加载?
此致、
YST
您好、YST
我仍不清楚这里的最终目标是什么?
我想从 Linux 用户 空间使用 CAN 接口 CAN0、CAN1、CAN2和 CAN3 ,希望它能对应于我电路板上的数字。
您能详细说明一下吗? 此外、您是否已查看此常见问题解答以更新 udev 规则?
此致
卡兰
Karan、您好!
当系统启动,我希望 Linux 用户空间中的 CAN0对应于电路板上的 CAN0。 但现在、CAN 驱动程序未按顺序加载。 因此、CAN0器件节点可能对应于我的电路板上的 CAN5接口。 喜欢这个:
每次系统启动时、CAN 器件以不同的顺序注册。
此致、
YST
您好、YST
您能否说明 SoC CAN 实例如何映射到 CAN0、CAN1。 有哪些实例?
SoC 可以实例为 MCAN0、MCAN1。 例如、主域以及 MCU 域中的 MCU_MCAN0和 MCU_MCAN1。
我所提到的常见问题解答正是试图按照你的要求操作。
#11-can-mylocal.rules
KERNELS==" 40528000.can"、action="add"、name="CAN1"
KERNELS==" 40568000.can"、action="add"、name="CAN0"
KERNELS==" 2771000.can"、action="add"、name="can6"
KERNELS==" 2761000.can"、action="add"、name="can7"
上面的函数会将 CAN1映射到 MCU_MCAN0、将 CAN0映射到 MCU_MCAN1、将 CAN6映射到 MCAN7和将 CAN7 YO MCAN6。
此致
卡兰
您好、Karan
我尝试了上面提到的方法、但不起作用
我希望按顺序加载 CAN 驱动程序,如下所示:
按该顺序注册 CAN 驱动程序可以对应于板上 CAN 硬件接口的序列号。
但现在、CAN 驱动程序的注册是随机的。
此致、
YST
您好、YST
您能否说明 SoC 可以什么实例映射到 CAN0、CAN1 . 您电路板上的实例?
您能回答这个问题吗?
此外、请分享您为 CAN 添加的新 udev 规则。
此致
卡兰
Karan、您好!
下面是我的电路板上的 CAN:
我希望它对应于我的 soc 上的 CAN 接口。
以下是 my udev 规则:
此致、
YST
您好、YST
我尝试使用与你相同的 udev 规则,我能够获得预期的结果。
root@am69-sk:~# cat /etc/udev/rules.d/06-can-load.rules #06-can-load.rules KERNELS=="2701000.can", ACTION=="add", NAME="can0" KERNELS=="2711000.can", ACTION=="add", NAME="can1" KERNELS=="2731000.can", ACTION=="add", NAME="can2" KERNELS=="2741000.can", ACTION=="add", NAME="can3" KERNELS=="2751000.can", ACTION=="add", NAME="can4" KERNELS=="2771000.can", ACTION=="add", NAME="can5" root@am69-sk:~# root@am69-sk:~# root@am69-sk:~# root@am69-sk:~# ls -la /sys/class/net/can*/device lrwxrwxrwx 1 root root 0 Sep 28 09:11 /sys/class/net/can0/device -> ../../../2701000.can lrwxrwxrwx 1 root root 0 Sep 28 09:11 /sys/class/net/can1/device -> ../../../2711000.can lrwxrwxrwx 1 root root 0 Sep 28 09:11 /sys/class/net/can2/device -> ../../../2731000.can lrwxrwxrwx 1 root root 0 Sep 28 09:11 /sys/class/net/can3/device -> ../../../2741000.can lrwxrwxrwx 1 root root 0 Sep 28 09:11 /sys/class/net/can4/device -> ../../../2751000.can lrwxrwxrwx 1 root root 0 Sep 28 09:11 /sys/class/net/can5/device -> ../../../2771000.can root@am69-sk:~# root@am69-sk:~# root@am69-sk:~# root@am69-sk:~# dmesg | grep -i can [ 0.563014] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page [ 0.576355] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page [ 0.589692] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page [ 0.603030] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page [ 4.681775] CAN device driver interface [ 4.699776] m_can_platform 2701000.can: m_can device registered (irq=485, version=32) [ 4.703573] m_can_platform 2711000.can: m_can device registered (irq=486, version=32) [ 4.750363] m_can_platform 2731000.can: m_can device registered (irq=489, version=32) [ 4.762294] m_can_platform 2741000.can: m_can device registered (irq=490, version=32) [ 4.774779] m_can_platform 2751000.can: m_can device registered (irq=491, version=32) [ 4.872072] m_can_platform 2771000.can: m_can device registered (irq=496, version=32) [ 5.027541] tidss 4a00000.dss: [drm] Cannot find any crtc or sizes root@am69-sk:~# root@am69-sk:~# root@am69-sk:~#
能否检查 udev 规则是否已被触发? 是否有任何其他规则覆盖此内容?
请参阅此主题- https://unix.stackexchange.com/questions/200194/how-to-debug-an-udev-rule-in-etc-udev-rules-d
此致
卡兰