我正在尝试在 arm 嵌入式目标设备上实现 linuxptp。得到源文件并编译它。当我尝试运行 ptp4l 命令时,我得到以下结果。
root@analog:/home/analog/Documents/linuxptp-2.0# ./ptp4l -i eth0 -m
ptp4l[1165.106]: selected /dev/ptp0 as PTP clock
ptp4l[1165.107]: Failed to open /dev/ptp0: No such file or directory
failed to create a clock
检查 /dev 目录,我发现没有 ptp 相关的时钟文件。在网上搜索,我知道有时我们必须使用 mknod 及其主要编号手动创建设备文件。在我的特定设备上,主要编号是 250。因此,我以以下方式创建了节点文件。
root@analog:/dev# mknod ptp0 c 250 0
现在当我尝试运行 ptp4l 命令时,我仍然得到 ptp0 不可用的错误。接下来我尝试使用不同的名称制作节点文件并指定它。
root@analog:/dev# mknod ptp1 c 250 0
root@analog:/home/analog/Documents/linuxptp-2.0# ./ptp4l -i eth0 -p /dev/ptp1 -m
ptp4l[1409.116]: selected /dev/ptp1 as PTP clock
ptp4l[1409.126]: Failed to open /dev/ptp1: No such device or address
failed to create a clock
使用 mknod 制作 ptp 时钟文件的源码:https ://sourceforge.net/p/linuxptp/mailman/message/32687321/
进一步搜索,建议不要这样做,获取udev制作ptp时钟文件。我不确定我将如何让 udev 为我做这件事。搜索它也不会产生任何有用的资源。谁能建议/指导我如何解决这个问题?