Điểm:1

Dấu thời gian PTP không chính xác

lá cờ bd

Tôi gặp sự cố khi đồng bộ hóa với hệ thống Linux bằng PTP.

Cài đặt:

Hai PCB với mô-đun BegleCore và DP83640 PHY được kết nối với nhau qua Ethernet. Một bảng nên đóng vai trò là chủ PTP, bảng còn lại là nô lệ. Debian 10, Hạt nhân: 4.19.94 Trình điều khiển cho Phy đã được tải. Sử dụng linuxptp v3.1

Trên hệ thống chính, tôi chạy lệnh:

sudo ptp4l -i eth0 -f linuxptp/configs/configMaster.cfg -m

Trên hệ thống máy khách tôi chạy:

sudo ptp4l -i eth0 -f linuxptp/configs/configslave.cfg -m

Nội dung của configMaster.cfg:

[toàn cầu]
máy chủChỉ 1
BMCA

Nội dung của configSlave.cfg:

[toàn cầu]
khách hàngChỉ 1
BMCA
bước_ngưỡng 1

Điều này dẫn đến đầu ra sau trên nô lệ:

ptp4l[438753.396]: đã chọn /dev/ptp0 làm đồng hồ PTP
ptp4l[438753.409]: cổng 1 (eth0): KHỞI TẠO thành NÔ LỆ trên INIT_COMPLETE
ptp4l[438753.414]: cổng 0 (/var/run/ptp4l): BẮT ĐẦU NGHE trên INIT_COMPLETE
ptp4l[438753.418]: cổng 0 (/var/run/ptp4lro): BẮT ĐẦU NGHE trên INIT_COMPLETE
ptp4l[438754.075]: cổng 1 (eth0): chủ nước ngoài mới 304511.fffe.0ff048-1                                                                                       
ptp4l[438758.074]: đã chọn đồng hồ chính tốt nhất 304511.fffe.0ff048
ptp4l[438762.072]: độ lệch chính 2426120726467 s0 freq -261066 độ trễ đường dẫn 15040
ptp4l[438762.074]: đã chọn đồng hồ chính tốt nhất 304511.fffe.0ff048
ptp4l[438765.074]: độ lệch chính 2426120697575 s1 freq -270698 độ trễ đường dẫn 15156
ptp4l[438767.072]: độ lệch chính 2426120678191 s0 freq -270698 độ trễ đường dẫn 15156
ptp4l[438768.075]: độ lệch chính 2426120668273 s1 freq -280618 độ trễ đường dẫn 15830
ptp4l[438769.072]: độ lệch chính 2426120658469 s0 freq -280618 độ trễ đường dẫn 15830
ptp4l[438770.073]: độ lệch chính 2426120648789 s0 freq -280618 độ trễ đường dẫn 16022
ptp4l[438771.076]: độ lệch chính 2426120639057 s1 freq -290350 độ trễ đường dẫn 16022
...

Độ lệch được báo cáo là khoảng 40 phút. Trước khi chạy ptp4l, tôi đã đặt đồng hồ PTP trong PHY với testptp -s đến thời gian hệ thống hiện tại. Do đó, các đồng hồ PTP thực sự cách nhau vài giây.

Mỗi lần ptp4l báo cáo "master offset s1 ...", nó sẽ đẩy đồng hồ PTP lùi lại 40 phút (được kiểm tra bằng testptp -g). Tuy nhiên, phần bù được báo cáo chỉ thay đổi khoảng 10 us.

Tôi cũng đã xem xét lưu lượng mạng với Wireshark và thấy rằng các thông báo Tiếp theo từ thiết bị chính chứa dấu thời gian bằng khoảng 69 phút so với đồng hồ PTP trong PHY được đặt thành. Sau khi thêm đầu ra gỡ lỗi vào ptp4l, tôi thấy rằng trên nô lệ, dấu thời gian mà nó trích ra từ cmsss được trả về từ ổ cắm được bù khoảng -27 phút so với đồng hồ PTP của máy khách thực sự là gì.

Sự khác biệt giữa dấu thời gian sai (+69 phút) do chủ gửi và dấu thời gian đọc sai (-27 phút) do máy khách dẫn đến 40 phút chênh lệch giả định giữa đồng hồ chính và đồng hồ khách.

Điểm:0
lá cờ bd

Tôi đã giải quyết vấn đề với: Vô hiệu hóa hỗ trợ CPTS trong các tùy chọn kernel và sửa đổi tệp cpsw.c theo cách sau:

diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
chỉ mục fc8e3ed383a2..d4d70706e86c 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
@@ -2490,15 +2490,22 @@ tĩnh int cpsw_ndo_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
cấu trúc cpsw_priv *priv = netdev_priv(dev);
cấu trúc cpsw_common *cpsw = priv->cpsw;
int Slave_no = cpsw_slave_index(cpsw, private);
+ int sai = 0;

nếu (!netif_running(dev))
trả về -EINVAL;

chuyển đổi (cmd) {
trường hợp SIOCSHWTSTAMP:
- trả về cpsw_hwtstamp_set(dev, req);
+ err = cpsw_hwtstamp_set(dev, req);
+ if(err != -EOPNOTSUPP)
+ trả lại lỗi;
+ nghỉ;
trường hợp SIOCGHWTSTAMP:
- trả về cpsw_hwtstamp_get(dev, req);
+ err = cpsw_hwtstamp_get(dev, req);
+ if(err != -EOPNOTSUPP)
+ trả lại lỗi;
+ nghỉ;
trường hợp SIOCSWITCHCONFIG:
trả về cpsw_switch_config_ioctl(dev, req, cmd);
}

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.