【Joytag 香蕉R1学习】OpenWrt for R1:设置主机名、时区、LED

《【Joytag 香蕉R1学习】OpenWrt for R1有线路由, Telnet,SSH, LuCI》一文中,
我们为R1设置了密码,开启了SSH,并安装了web管理界面。

本文中,我们将讲述如何修改主机名,时区,以及设置R1上那个绿色的LED。
除此之外,我们还将探索一下,这些修改是如何实现的。

配置主机名、时区、LED

有了web界面,配置主机名,时区,LED那是相当的简单了。
http://192.168.1.1
登录管理界面

在System->System界面下,即可设置主机名(hostname),以及时区
在此例中,我们将默认主机名(OpenWrt)修改为(JoyWrt)
时区从UTC修改为Asia/Hong Kong (东八区,北京时间,北京和香港同为东八区)

点"Save & Apply" (保存并应用), 即可生效。是不是很简单。

按照之前系列的文章一步一步设置过来的兄弟,一定会对R1左上角的绿色LED印象深刻。
用家乡话说,那叫贼亮贼亮的,尤其是夜晚,有些刺眼恼人。
现在不必纠结了,是关掉还是让它偶尔闪烁一下,你都可以做到。

在System->LED Configuration界面,你可以自定义LED灯的行为。
其中Trigger代表如何触发, 默认是defaulton(常亮),我们可以将之关闭(none)
甚至可以让其规律闪烁(blink)。
上图既通过定时器,控制绿色LED亮一秒,暗两秒。

设置机制

通过上述内容,我们学会了如何设置主机名,时区,LED。
但是我们的本意是折腾,而不是简单应用。
那么接下来,就是探究一下这些设置是如何起作用的呢?

我们知道,大部分设置(Or 所有设置?)都是保存在/etc/config/目录下,
那么我们来看看之前这三项设置都保存到哪里呢?
/etc/config/system 这个文件看起来很贴边,打开看看:

config system
   option conloglevel '8'
   option cronloglevel '8'
   option hostname 'JoyWrt'
   option zonename 'Asia/Hong Kong'
   option timezone 'HKT-8'

config timeserver 'ntp'
   list server '0.openwrt.pool.ntp.org'
   list server '1.openwrt.pool.ntp.org'
   list server '2.openwrt.pool.ntp.org'
   list server '3.openwrt.pool.ntp.org'
   option enabled '1'

config led
   option default '0'
   option name 'TEST'
   option sysfs 'lamobo:green:usr'
   option trigger 'timer'
   option delayon '1000'
   option delayoff '2000'

是不是找到啦? 主机名,时区,LED,还有NTP设置(本例中我们没改)

通过测试,我们直接修改这些配置,并重启,也是一样的效果。
现在我们多了一种修改配置的手段了。

那么,接下来,这些设置又是被如何读取以及应用的呢?
让我们关注这个文件:
/etc/init.d/system

从这个脚本可以看出,当我们启动或者重载这个服务时,会:读取配置文件、加载配置项、遍历配置项(验证、设置)

而这个脚本
/etc/init.d/led
负责从/etc/config/system中读取led设置部分,并对其设置。
以文中配图为例,主要起作用的是这部分代码:

                "timer")
    -n "$delayon" ] && \
   echo $delayon > /sys/class/leds/${sysfs}/delay_on
    -n "$delayoff" ] && \
   echo $delayoff > /sys/class/leds/${sysfs}/delay_off
   ;;

一点困惑

对于设置时区部分,我曾尝试直接在配置文件中写入UTC+8
结果得出的时间竟然与北京时间相差16个小时。
写入UTC-8,结果正常。
对此很难理解。
http://en.wikipedia.org/wiki/Time_zone
http://en.wikipedia.org/wiki/UTC_offset
http://en.wikipedia.org/wiki/List_of_UTC_time_offsets
从维基百科的资料描述,我们无疑属于东八区UTC+8,为何要设置成UTC-8才对呢?
希望各路高手予以解答。