Armadilloフォーラム

時計セット(RTC_SET_TIME)がエラーで書き込めません

ishikawa

2014年4月10日 14時18分

ishikawaです。

お世話になっております。

現在「Armadillo-440液晶開発キット」で、時計設定処理を作成中です。
サンプル「user/hwclock/src/rtc.c」や「functester/task_rtc.c」を参考にしています。

時計読み込みはできたのですが、下記時計書き込み(RTC_SET_TIME)部分で
エラーが出て書き込めません。

ret = ioctl(fd, RTC_SET_TIME, &utc_tm);

サンプルと書き込み処理は同じにしてありますが、失敗するのはなぜでしょうか?

なお「ADTE」、「Armadillo実機」ともに症状は同じです。

以上、よろしくお願いいたします。

コメント

at_ohsawa

2014年4月10日 14時51分

どのようなエラーが出力されるのか教えてもらえますか。

また、エラーが起きた時のioctlの後にerrnoは何がセットされているでしょうか。
errnoは次のようにperrorを使うと見やすいです。

ret = ioctl(fd, RTC_SET_TIME, &utc_tm);
if (ret < 0)
      perror("RTC_SET_TIME");

ishikawa

2014年4月10日 15時12分

ご連絡いただき、ありがとうございます。

確認したところ、以下のように表示されました。
RTC_SET_TIME: 許可がありません

どのような対策をすればよろしいでしょうか?

> どのようなエラーが出力されるのか教えてもらえますか。
>
> また、エラーが起きた時のioctlの後にerrnoは何がセットされているでしょうか。
> errnoは次のようにperrorを使うと見やすいです。
>

> ret = ioctl(fd, RTC_SET_TIME, &utc_tm);
> if (ret < 0)
>       perror("RTC_SET_TIME");
> 

at_ohsawa

2014年4月10日 17時07分

> RTC_SET_TIME: 許可がありません
プログラムを実行しているユーザーはrootでしょうか。
下記のように/dev/rtcへの書き込み権限はrootユーザーとrootグループの
ユーザーにしかありません。

[root@armadillo440-0 (ttymxc1) ~]# ls -l /dev/rtc 
lrwxrwxrwx    1 root     root            9 Jan  1  2000 /dev/rtc -> /dev/rtc0
 
[guest@armadillo440-0 (ttymxc1) ~]$ ls -l /dev/rtc0
crw-rw----    1 root     root     254,   0 Jan  1  2000 /dev/rtc0

ishikawa

2014年4月10日 18時15分

ありがとうございました。

おかげさまで解決しました。
無事、「ATDE」「Armadillo本体」共に時計設定することができました。

> > RTC_SET_TIME: 許可がありません
> プログラムを実行しているユーザーはrootでしょうか。
> 下記のように/dev/rtcへの書き込み権限はrootユーザーとrootグループの
> ユーザーにしかありません。
>
>

> [root@armadillo440-0 (ttymxc1) ~]# ls -l /dev/rtc 
> lrwxrwxrwx    1 root     root            9 Jan  1  2000 /dev/rtc -> /dev/rtc0
> 
> [guest@armadillo440-0 (ttymxc1) ~]$ ls -l /dev/rtc0
> crw-rw----    1 root     root     254,   0 Jan  1  2000 /dev/rtc0
>