linux下S3C2440更改硬件时间芯片自己保存不了,改了重启还是以前的,使用的默认usb口也改不了总是ttyusb0
发布网友
发布时间:2022-04-22 12:26
我来回答
共1个回答
热心网友
时间:2023-11-04 10:15
如果你在命令没有修改到硬件时间, 那说明你的命令没有成功操作到时钟芯片, 你可以看一下目标版的时钟芯片是哪个型号的, 找到对应的datasheet, 看看该芯片采用什么总线接口连接你的s3c2440, 一般时钟芯片都用i2c接口, 那么你可以仿照i2c总线规范写一个操作i2c从设备寄存器的程序, 直接对时钟芯片的寄存器, 比如分钟, 小时, 秒,星期,月, 年等寄存器做修改, 这样硬件时间就会改变了.这是一个可以通用的方法.
至于ttyUSB0, 这个一般是修改不了的, 因为当只有一个USB设备连接到你的系统时, linux默认是将其标记为ttyUSB0的.
你第二个问题是一个正常的现象.
第一个问题你可以这样验证一下:
先用date命令修改一下系统时间, 比如date -s "2013-4-28 10:30:00"
之后用hwclock -w 将系统时间同步为硬件时间,
如果成功后应该没有错误信息报错.
之后再用hwclock -r 读取硬件时间, 如果为刚刚你设定的时间的话, 那么说明你的时钟芯片及驱动没有问题, 而可能是的操作不对.
如果你在使用hwclock 时候, 有这样的报错:
root@juson:~# hwclock -w
hwclock: open() of /dev/rtc failed, errno=2: No such file or directory.
这是因为 hwclock 默认打开/dev/rtc 这个文件, 但是你的linux可能将时钟芯片挂载/dev/rtc0 上,
这样可以:
ln -s /dev/rtc0 /dev/rtc
之后的操作就因该没问题了, 你看下我的记录:
//修改系统时间
root@juson:~# date -s "2013-4-28 10:30:00"
Sun Apr 28 10:30:00 CST 2013
root@juson:~#
//同步为硬件时间
root@juson:~# hwclock -w
hwclock: open() of /dev/rtc failed, errno=2: No such file or directory.
//使用ln 解决这个问题
root@juson:~# ln -s /dev/rtc0 /dev/rtc
root@juson:~#
//再次同步就ok了
root@juson:~# hwclock -w
root@juson:~#
//获取硬件时间
root@juson:~# hwclock -r
Sun Apr 28 10:36:28 2013 -0.617634 seconds
以上就成功地修改了硬件时间.