Raspberry PiのRTCを設定

投稿日: Leave a comment

ここのつづき.

rtcの設定を/etc/rc.localに書いてあったけど,起動時の処理が

  1. fake_hwclock
  2. ntpdate (時間がかかる)
  3. ntpd (ntpdateが動いていると待たされる)
  4. rc.localでRTCを設定

とntpdateが動いてRTCの意味がない感じがするので,最初の方でhwclock.shが走るように改造した.

まずはhwclock.shの改造.I2Cバス上のRTCを認識させて時刻をとれるようにする.

root@raspberry:/etc/init.d# diff -u hwclock.sh.orig hwclock.sh
--- hwclock.sh.orig     2014-05-10 09:41:36.171639671 +0900
+++ hwclock.sh  2014-05-10 10:31:32.134145549 +0900
@@ -61,8 +61,15 @@
                printf "0.0 0 0.0\n0\nUTC" > /etc/adjtime
            fi

-           if [ -d /run/udev ] || [ -d /dev/.udev ]; then
-               return 0
+           #load i2c and RTC kernel modules
+           modprobe rtc-m41t80
+           echo m41t62 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
+
+           if [ -e /dev/$HCTOSYS_DEVICE ]
+           then
+               log_action_msg "RTC device found"
+           else
+               echo 0x68 > /sys/class/i2c-adapter/i2c-1/delete_device
            fi

            if [ "$HWCLOCKACCESS" != no ]; then

hwclock.shを有効化

# update-rc.d hwclock.sh enable

ついでに,ntpdateのパッケージを削除してこんな感じにした.

  1. fake_hwclock (RTCをつながなかったときのための保険)
  2. hwclock.sh
  3. ntpd

あとはfirewallを入れれば,常時起動のサーバーとして使えそうなのでもう少し試験したら1台買い増そうかな.

DHCPの設定を変更

投稿日: Leave a comment

家庭内LANのDHCPサーバー(IPv4)の設定を変更した.

DHCPサーバーはRTX810で動いているのでRTX810の設定.

これまでは,192.168.100.0/24 の範囲でMACアドレス指定で固定的に割り当てていたが,その範囲を有線・無線・機種等で分けて,ついでに,既知の端末と未知の端末(ゲスト)でサブネットを分けて,ゲスト用サブネットからLAN内の他のサブネットへの通信を遮断するようにした.

subnet-1 [192.168.100.0/24]:既知の端末用のネットワーク

  • 192.168.100.1: RTX810のLAN1ポート (プライマリアドレス)
  • 192.168.100.2-16: サーバー用 (固定割り当て)
  • 192.168.100.17-32: 実験用 (固定割り当て)
  • 192.168.100.33-64: DHCP (有線)
  • 192.168.100.65-128: DHCP (無線)
  • 192.168.100.129-192: DHCP (その他家電など)
  • 192.168.100.193-254: DHCP (半固定用*1)
    *1) DHCPサーバーからネットワークアドレスだけ取得して下位1octetを固定でふるやつ.最近増えてきた.

subnet-2 [192.168.1.0/24]:ひかり電話ルーター配下のサブネット (SIP用)

  • 192.168.1.1: ひかり電話のルーター
  • 192.168.1.254: RTX810のLAN2ポート

subnet-3 [192.168.255.0/24]:ゲスト用ネットワーク

  • 192.168.255.1: RTX810のLAN1ポート (セカンダリアドレス)
  • 192.168.255.2-16: 固定 (192.168.{1,100}.0/24アクセス不可)
  • 192.168.255.17-32: DHCP (192.168.{1,100}.0/24アクセス不可)

configはこんな感じ.

※100003を入れ忘れてLANからRTX810に入れなくなり,途中からシリアルコンソールで設定.
※あとからIPv6でつなげば設定できることを思い出した...

ip lan1 address 192.168.100.1/24
ip lan1 secondary address 192.168.255.1/24
ip lan2 address 192.168.1.254/24
ip filter 100001 reject-nolog 192.168.255.0/24 192.168.100.0/24 * * *
ip filter 100002 reject-nolog 192.168.255.0/24 192.168.1.0/24 * * *
ip filter 100003 pass * * * * *
ip lan1 secure filter in 100001 100002 100003
dhcp scope lease type 1 bind-only fallback=2
dhcp scope 1 192.168.100.33-192.168.100.254/24
dhcp scope bind 1 192.168.100.33 XX:XX:XX:XX:XX:XX
 : (略)
dhcp scope bind 1 192.168.100.254 XX:XX:XX:XX:XX:XX
dhcp scope 2 192.168.255.33-192.168.255.254/24

ipv4はこれでいいが,ipv6はブロードキャストされているraを拾って設定するので通信できてしまって,なんかすっきりしない.少し考えてみるか.VLAN使うしかないかな.