/dev/rtcのリンク先を変更するには?

/dev/rtcのリンク先を変更するには?

私のBeaglebone Black Iに乗るI2Cリアルタイムクロックの追加正確なタイミングを維持するためにntpdに依存しません。その結果、.txtファイルには2つの特別なデバイスファイルがあります/dev。彼らは/dev/rtc0、しかし、というシンボリックリンク/dev/rtc1もあります。/dev/rtc/dev/rtc0

ここに画像の説明を入力してください。

/dev/rtc0ボード上のARM SOCのリアルタイムクロックであり、/dev/rtc1I2Cデバイスです。現在私はI2C時計に時間を手動で読み書きするスクリプトを使用していますが、シンボリックリンク/dev/rtc/dev/rtc1

それで、質問はこれがどのように達成できるかということです。私のbeaglebone blackのLinuxディストリビューションは、すべての管理タスクにsystemdを使用するArch Linuxです。

シンボリックリンクを削除して新しいシンボリックリンクを作成すると、次の再/dev/rtc1起動後にシンボリックリンクがリセットされ、これまで設定ファイルまたはシステムデバイスが見つかりませんでした。

助けてくれてありがとう。

ベストアンサー1

udevルールのヒントが私に正しい方向を教えてくれました。簡単なレビューの後udevルールの作成私は次のことをしました。

udevadm info -a -p /sys/class/rtc/rtc1

出力(省略)は、udevルールを定義するいくつかの便利なプロパティを示しています。

looking at device '/devices/platform/ocp/4802a000.i2c/i2c-1/1-0068/rtc/rtc1':
KERNEL=="rtc1"
SUBSYSTEM=="rtc"
DRIVER==""
ATTR{date}=="2015-12-04"
ATTR{hctosys}=="0"
ATTR{max_user_freq}=="64"
ATTR{name}=="ds1307"
ATTR{since_epoch}=="1449230817"
ATTR{time}=="12:06:57"
...

/etc/udev/rules.d/したがって、ルールファイルは99-rtc1.rules

ファイルの内容は

KERNEL=="rtc1", SUBSYSTEM=="rtc", DRIVER=="", ATTR{name}=="ds1307", SYMLINK="rtc", MODE="0666"

実行できるルールをテストするには

udevadm test /sys/class/rtc/rtc1

出力の重要な行は次のとおりです。

...
creating link '/dev/rtc' to '/dev/rtc1'
atomically replace '/dev/rtc'
...

結果/devは望ましい設定です。

ここに画像の説明を入力してください。

おすすめ記事