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.

[参考译文] Linux/PROCESSOR-SDK-AM437X:可在入门套件中提供支持

Guru**** 2562830 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/612875/linux-processor-sdk-am437x-can-support-in-starter-kit

器件型号:PROCESSOR-SDK-AM437X

工具/软件:Linux

我知道默认情况下、AM437x 入门套件中不支持 DCAN 驱动程序、但我想仅出于软件目的添加此支持。

我重新配置了 Linux 内核并重新创建了 zImage、通过从 AM437X-gp-evm.dts 复制相关代码(Dcan0和 Dcan1)来修改了器件树文件 AM437X-SK-evm.dts、并将编译后的 DTB 文件复制到目标系统的引导目录中。

但是、通过上述步骤、我无法在/dev/dev 中添加 CAN0和 CAN1。 因此、我无法在 AM437X 入门套件评估板上进行任何软件测试。

我还应该做些什么来实现我的目标?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请参阅 processors.wiki.ti.com/.../Linux_Core_DCAN_User's_Guide
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我看到了链接、但它没有解决我的问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Damon:

    请执行以下命令:mknod [-m mode]/dev/name
    root@AM437X-EVM:~# mknod -m 666 /dev/can0 c 91 0
    root 用户@AM437X-EVM:~# mknod -m 666 /dev/can1 c 91 1.

    或者使用保留的42、120-127和240-254主要数字进行本地和实验。

    此致、
    Kemal

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    它可以正常工作、但后续步骤(ifconfig)和(modprobe vcan)失败。 我无法加载 vcan (它位于/lib/modules/3.14.43-g875c69b/kernel/net/can 目录中)、ifconfig 的结果未显示 CAN0和 CAN1。

    root@AM437X-EVM:~ modprobe vcan
    [126.384763] vcan:不同意符号 MODULE_LO版面 的版本
    modprobe:错误:无法插入'vCAN':Exec format 错误

    root@AM437X-EVM:/lib/modules/3.14.43-g875c69b ifconfig
    eth0 Link encap:ethernet HWaddr c4:be :84:cc:84:31
    上广播多播 MTU:1500公制:1
    RX 数据包:0错误:0丢弃:0超限:0帧:0
    TX 数据包:0错误:0丢弃:0超限:0载波:0
    冲突:0 txqueuelen:1000
    RX 字节:0 (0.0 B) TX 字节:0 (0.0 B)
    中断:72

    LO 链路环接:本地环回
    iNet addr:127.0.0.1掩码:255.0.0.0
    正在运行 MTU:65536公制:1的上环回
    RX 数据包:10错误:0丢弃:0超限:0帧:0
    TX 数据包:10错误:0丢弃:0超限:0载波:0
    冲突:0 txqueuelen:0
    RX 字节:700 (700.0 B) TX 字节:700 (700.0 B)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您收到"不同意符号 MODULE_LO版面 的版本"错误。 您的模块不是基于此内核版本构建的、也不是使用不同的配置设置构建的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢您的帮助! 我犯了一个错误。 我的 Linux 内核版本与模块不同。 现在它起作用了。
    但是、如何自动添加/dev/can0和/dev/can1而不是手动添加(在启动内核时运行脚本不是我的选择。) ? 我的设备树文件有什么问题?