您尚未登录。

楼主 #1 2019-10-24 09:36:54

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

请问:
全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致相差8个小时。无法使用hwclock -w命令写入时间,写不进去。

date.png

断电一段时间后,可能会出现下面的情况:

hwclock.png

这是什么情况?
求教!

最近编辑记录 yuanlwjt (2019-10-24 09:52:55)

离线

楼主 #3 2019-10-24 10:13:17

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

/usr/bin/ntpdate ntp1.aliyun.com  && /sbin/hwclock -w >/dev/null 2>&1   做了crond定时,目前调试是隔1分钟从时间服务器更新时间。系统时间更新

后,使用hwclock -w 更新硬件时间,大概一分钟后就不能同步了,差了8个小时,是不是crond间隔时间太短了?

重新上电可能会出现hwclock: RTC_RD_TIME: Operation not permitted 这个错误,不能读取硬件时间。

离线

楼主 #4 2019-10-24 10:17:24

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

V3S设备重新上电,会出现hwclock: RTC_RD_TIME: Operation not permitted 这个错误,读不到硬件时钟,但是执行reboot命令重启,这个过程不断电,
hwclock -r就又能正常工作了,很奇怪

离线

楼主 #6 2019-10-24 10:24:52

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

我觉得也是这个问题,但不知道去哪里更改时区,尤其是RTC驱动,里面是否有时区设置?

离线

楼主 #8 2019-10-24 10:27:59

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

好的,我也再找找,谢谢你了

离线

楼主 #10 2019-10-24 10:32:31

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

我试一下

离线

楼主 #11 2019-10-24 10:38:52

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

/usr/bin/ntpdate ntp1.aliyun.com  && /sbin/hwclock -w -l>/dev/null 2>&1   
这样子也不行

离线

楼主 #12 2019-10-24 10:51:49

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

V3S上电打印的信息:
[    1.432392] [RTC] WARNING: Rtc time will be wrong!!
[    1.438099] sunxi-rtc sunxi-rtc: rtc core: registered sunxi-rtc as rtc0

[    1.578346] sunxi-rtc sunxi-rtc: hctosys: unable to read the hardware clock

是不是驱动有问题?

离线

楼主 #14 2019-10-24 11:01:36

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

我之前也看过一些资料,V3S的RTC好像确实有点问题,别人都用外带的RTC芯片解决问题的。

离线

楼主 #15 2019-10-24 11:04:57

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

离线

楼主 #18 2019-10-24 11:19:59

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

两个问题都没有找到办法解决

离线

楼主 #20 2019-10-24 11:25:49

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

目前就这两个问题,一个问题是时间相差8小时,另一个问题是重新上电无法读取RTC,必须reboot

离线

楼主 #21 2019-10-24 11:39:30

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

# devmem 0x01c20414
0x0003250E
这样能读到RTC寄存器的时间

离线

楼主 #23 2019-10-24 12:10:28

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

hwclock能读到时间吗

离线

楼主 #25 2019-10-24 12:29:16

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

dmesg | grep rtc 打印什么出来?
reboot一下,是否能读到,不要断电

离线

楼主 #28 2019-10-24 14:45:53

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

# dmesg | grep rtc
[    1.438131] sunxi-rtc sunxi-rtc: rtc core: registered sunxi-rtc as rtc0
[    1.578354] sunxi-rtc sunxi-rtc: hctosys: unable to read the hardware clock

我的是这样的,查看驱动:
err = rtc_read_time(rtc, &tm);
    if (err) {
        dev_err(rtc->dev.parent,
            "hctosys: unable to read the hardware clock\n");
        goto err_read;

    }

继续跟踪rtc_read_time:
static int __rtc_read_time(struct rtc_device *rtc, struct rtc_time *tm)
{
    int err;
    if (!rtc->ops)
        err = -ENODEV;
    else if (!rtc->ops->read_time)
        err = -EINVAL;
    else {
        memset(tm, 0, sizeof(struct rtc_time));
        err = rtc->ops->read_time(rtc->dev.parent, tm);
    }
    return err;
}

int rtc_read_time(struct rtc_device *rtc, struct rtc_time *tm)
{
    int err;

    err = mutex_lock_interruptible(&rtc->ops_lock);
    if (err)
        return err;

    err = __rtc_read_time(rtc, tm);
    mutex_unlock(&rtc->ops_lock);
    return err;
}

(!rtc->ops) 这里ops 是结构体变量:
struct rtc_device
{
    struct device dev;
    struct module *owner;

    int id;
    char name[RTC_DEVICE_NAME_SIZE];

    const struct rtc_class_ops *ops;
...........................
};

struct rtc_class_ops {
    int (*open)(struct device *);
    void (*release)(struct device *);
    int (*ioctl)(struct device *, unsigned int, unsigned long);
    int (*read_time)(struct device *, struct rtc_time *);
    int (*set_time)(struct device *, struct rtc_time *);
    int (*read_alarm)(struct device *, struct rtc_wkalrm *);
    int (*set_alarm)(struct device *, struct rtc_wkalrm *);
    int (*proc)(struct device *, struct seq_file *);
    int (*set_mmss)(struct device *, unsigned long secs);
    int (*read_callback)(struct device *, int data);
    int (*alarm_irq_enable)(struct device *, unsigned int enabled);
};
ENODEV  19  表示无此设备
EINVAL   22  表示无效的参数

看到这里到底是哪里引起unable to read the hardware clock,还是没找到原因

离线

楼主 #30 2019-10-24 15:36:00

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

我试试看

离线

楼主 #31 2019-10-25 12:16:27

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

终于解决系统时间和硬件时间差8小时问题,原因是时区造成的。

在我的嵌入式项目中,usr/share下没有/zoneinfo/Asia目录,所以需要从ubuntu系统中拷贝zoneinfo文件夹到嵌入式下usr/share目录下,

并在etc目录下 使用sudo ln -s ../usr/share/zoneinfo/Asia/Shanghai localtime  指定时区为上海并命名为localtime

离线

楼主 #33 2019-10-25 13:13:01

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

剩下一个问题,我自己的设备上没有电池,每次上电启动设备,使用hwclock  hwclock: RTC_RD_TIME: Operation not permitted就出现这,查了资料,很可能是说linux上电时没有初始化RTC,所以只能带电reboot,再想想还有什么办法可以解决

离线

楼主 #36 2019-10-25 14:00:20

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

hwclock 不能设置,不起作用。我这边主要是想上电后通过ntpddate更新系统时间,然后更新硬件时间

离线

楼主 #37 2019-10-25 14:01:59

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

shaoxi2010 说:
yuanlwjt 说:

剩下一个问题,我自己的设备上没有电池,每次上电启动设备,使用hwclock  hwclock: RTC_RD_TIME: Operation not permitted就出现这,查了资料,很可能是说linux上电时没有初始化RTC,所以只能带电reboot,再想想还有什么办法可以解决

不上电池时间很乱套的,里面的时间可能还比1970年还要小,然后设置系统时间就失败了。不晓得你用的那个版本的linux,新版的linux设置RTC时间是不能小于已经运行时间的。

也就是说,最好外部加电池是吧,我是想通过ntpdate 更新系统时间,然后更新硬件时间

离线

楼主 #39 2019-10-25 14:55:18

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

我也好好想了一下,也没必要校准硬件时间,因为我们的设备使用网络同步时间。那这样应该就可以了

离线

楼主 #40 2019-10-25 14:56:40

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

设备下,使用ls -al命令,为什么文件夹都是1970年?

离线

楼主 #42 2019-10-26 10:53:41

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

这个改不了是吧?

离线

楼主 #44 2019-10-26 11:25:46

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

能不能一次性把所有文件的修改时间改掉?

离线

楼主 #46 2019-10-26 11:47:33

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

好的,谢谢。我研究一下。顺便问一下,SD能够实现热插拔,目前上电前插入SD卡能识别,能正常读写,但上电后再插入,就不能识别了,也就是不支持热插拔?要实现热插拔具体应该怎么实现?

离线

楼主 #48 2019-10-26 12:52:57

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

好的,谢谢。我研究一下

离线

楼主 #49 2019-10-26 15:47:54

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

上电后插上SD卡  fdisk -l  有出现sd卡
Device       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size
Id Type
/dev/mmcblk0p1    0,32,33     244,227,47        2048    3934207    3932160 1920M
  e Win95 FAT16 (LBA)
Partition 1 has different physical/logical start (non-Linux?):
     phys=(0,32,33) logical=(0,43,28)
Partition 1 has different physical/logical end:
     phys=(244,227,47) logical=(367,30,26)

但 df -h
/dev/mtdblock3            3.0M    484.0K      2.5M  16% /app
没有出现SD卡,我更改脚本挂载到app/sd01 目录下了

离线

楼主 #50 2019-10-26 15:49:25

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

想挂载到app/sd01下,该怎么更改脚本?

离线

楼主 #51 2019-10-26 18:45:50

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

自动挂载sd卡成功,根据下面网站的经验
https://whycan.cn/t_643.html
由于系统只读
需要在etc/init.d/rcS中添加
chmod 777 /etc/hotplug/insert.sh
chmod 777 /etc/hotplug/remove.sh
更改文件权限即可

离线

楼主 #53 2019-10-27 11:39:36

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

在只读文件系统中,不更改权限,设备下面没有权限执行.sh文件。

离线

楼主 #55 2019-10-27 15:18:13

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

就是想把文件系统做成只读,这样不容易被别人修改

离线

楼主 #57 2019-10-27 16:38:15

yuanlwjt
会员
注册时间: 2019-10-23
已发帖子: 129
积分: 109

Re: 全志V3S RTC调试出现问题,date命令和hwclock命令得到的时间不一致

没有说表达问题,就说之前的问题差不多解决了

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn