目录
2.1 如何添加trigger(所需trigger不存在时)
Timer led - 500ms ON, 2000ms OFF
LED 配置位于system uci 子系统中,并被写入 /etc/config/system 文件中。
可通过 LuCI 在“系统> LED 配置(System > LED Configuration)”页面上获得基本 LED 配置。
1、LED部分
默认leds通常包括power on, ethernet port activity, usb port activity, and wifi radio activity
下面是带有 USB 端口的 tp-link 路由器上的 LED 示例:
root@lede:/# uci show system | grep "system.led"
system.led_usb=led
system.led_usb.name='USB'
system.led_usb.sysfs='tp-link:green:usb'
system.led_usb.trigger='usbdev'
system.led_usb.interval='50'
system.led_usb.dev='1-1'
system.led_wlan=led
system.led_wlan.name='WLAN'
system.led_wlan.sysfs='tp-link:green:wlan'
system.led_wlan.trigger='phy0tpt'
root@lede:/# cat /etc/config/system
config led 'led_usb'
option name 'USB'
option sysfs 'tp-link:green:usb'
option trigger 'usbdev'
option interval '50'
option dev '1-1'
config led 'led_wlan'
option name 'WLAN'
option sysfs 'tp-link:green:wlan'
option trigger 'phy0tpt'
2、如何在此部分添加LED
所有 LED 都由 sys 文件系统中的条目表示,可以在 /sys/class/leds 目录中查看哪些 LED 可用。条目的名称通常由提供 LED 的硬件名称(路由器型号)、LED 的颜色及其名称(通常是机箱上的标签)组成。
- 查看当前可用 leds
root@lede:/# ls /sys/class/leds/
tp-link:green:qss tp-link:green:usb
tp-link:green:system tp-link:green:wlan
2.1 如何添加trigger(所需trigger不存在时)
- 查看可用 trigger
LED可由系统中的各种事件控制,该事件由trigger控制,根据trigger,必须配置其它对应选项。首先,我们需要知道哪些trigger可用于led,只需查看该LED的trigger文件即可,例:
root@lede:/# cat /sys/class/leds/tp-link:green:qss/trigger
[none] switch0 timer default-on netdev usbdev phy0rx phy0tx phy0assoc phy0radio phy0tpt
- 为 leds 分配一个 trigger
如果我们想(暂时)为 LED 分配一个默认开启的trigger,可以这样写:
root@lede: echo "default-on" > /sys/class/leds/tp-link:green:qss/trigger
通过 cat 确认是否分配成功,我们看到此处已添加 [default-on],并且所选 trigger 已突出显示。
root@lede:/# cat /sys/class/leds/tp-link:green:qss/trigger
none switch0 timer [default-on] netdev usbdev phy0rx phy0tx phy0assoc phy0radio phy0tpt
注意:此更改将在重新启动时丢失,如果要进行永久更改,则需要在uci配置文件中添加触发器。
2.2 配置led
如果在 uci 配置中已经有一个要设置的 led,则只需添加trigger即可。
例如,想将分配给tp-link:green:wlan的触发器更改为“default-on”,并且在uci show system | grep“system.led”时已经有这样的配置块。
system.led_wlan=led
system.led_wlan.name='WLAN'
system.led_wlan.sysfs='tp-link:green:wlan'
system.led_wlan.trigger='phy0tpt'
更改命令如下:
uci set system.led_wlan.trigger='default-on'
uci commit
如果没有任何配置,可以通过编辑以下示例文本(将 wps led 设置为“默认开启”,然后将其整个复制粘贴到终端窗口中)来添加led和trigger。
rule_name=$(uci add system led_wps)
uci batch <<EOF set system.$rule_name.name='WPS'
set system.$rule_name.sysfs='tp-link:green:wps'
set system.$rule_name.trigger='default-on'
EOF
uci commit
运行以下命令确认更改:
service led restart
3、LED triggers详细介绍
以下是OpenWrt默认的各种trigger形式。
3.1 None 无
指示灯始终处于默认状态。未列出的 LED 默认熄灭,因此这仅在声明 LED 始终亮起时才有用。
Name | Type | Required | Default | Description |
---|---|---|---|---|
default | integer | no | 0 | LED state before trigger: 0 means OFF and 1 means ON |
sysfs | string | yes | (none) | LED device name |
trigger | string | yes | (none) | none |
3.2 Switch Connectivity 交换机连接
如果在其中一个配置的交换机端口上建立了链路,则 LED 亮起。
Name | Type | Required | Default | Description |
---|---|---|---|---|
default | integer | no | 0 | LED state before trigger: 0 means OFF and 1 means ON |
sysfs | string | yes | (none) | LED device name |
port_mask | integer | no | 0 | Hexadecimal bit mask that encodes the regarded switch ports |
speed_mask | integer | no | (none) | Hexadecimal bit mask that filters ethernet speeds |
trigger | string | yes | (none) | switch0 |
3.3 Timer 定时器
LED 以配置的开/关频率闪烁。
Name | Type | Required | Default | Description |
---|---|---|---|---|
default | integer | no | 0 | LED state before trigger: 0 means OFF and 1 means ON |
delayoff | integer | yes | (none) | How long (in milliseconds) the LED should be off. |
delayon | integer | yes | (none) | How long (in milliseconds) the LED should be on. |
sysfs | string | yes | (none) | LED device name |
trigger | string | yes | (none) | timer |
3.4 Default-on 默认开启
已弃用,使用default=1 trigger=none代替
Name | Type | Required | Default | Description |
---|---|---|---|---|
default | integer | no | 0 | LED state before trigger: 0 means OFF and 1 means ON |
sysfs | string | yes | (none) | LED device name |
trigger | string | yes | (none) | default-on |
3.5 Heartbeat
LED 闪烁以模拟实际的心跳 thump-thump-pause。频率与 1 分钟平均 CPU 负载成正比。
Name | Type | Required | Default | Description |
---|---|---|---|---|
default | integer | no | 0 | LED state before trigger: 0 means OFF and 1 means ON |
sysfs | string | yes | (none) | LED device name |
trigger | string | yes | (none) | heartbeat |
3.6 Flash Writes
当数据写入闪存时,LED 闪烁。
Name | Type | Required | Default | Description |
---|---|---|---|---|
default | integer | no | 0 | LED state before trigger: 0 means OFF and 1 means ON |
sysfs | string | yes | (none) | LED device name |
trigger | string | yes | (none) | nand-disk |
3.7 Network Activity
LED 闪烁,显示已配置接口上的链路状态和/或发送和接收活动。
Name | Type | Required | Default | Description |
---|---|---|---|---|
default | integer | no | 0 | LED state before trigger: 0 means OFF and 1 means ON |
dev | string | yes | (none) | Name of the network interface which status should be reflected |
mode | string | yes | (none) | One or more of link, tx, or rx, seperated by spaces |
sysfs | string | yes | (none) | LED device name |
trigger | string | yes | (none) | netdev |
interval | integer | no | (none) | The duration of the LED blink in milliseconds. For example: 50 |
3.8 WiFi Activity triggers
LED 在物理接口(而不是软件网络接口)触发的事件上闪烁。除了 phy 触发器具有更多事件外,它还提供了静态 LED 设置的可能性,以防您想分别监控 2.4 GHz 无线电(通常为 phy0)和 5 GHz 无线电(通常为 phy1)。netdev 无法保证这种区分,因为 wlan0 可能指的是基于当前网络设置的 2.4 GHz 或 5 GHz 无线电。
Name | Type | Required | Default | Description |
---|---|---|---|---|
default | integer | no | 0 | LED state before trigger: 0 means OFF and 1 means ON |
sysfs | string | yes | (none) | LED device name |
trigger | string | yes | (none) | phy0rx, phy0tx, phy0assoc, phy0radio or phy0tpt |
-
PHY0RX - 接收时闪烁。
-
phy0tx - 传输时闪烁。
-
phy0assoc - 在客户端关联时闪烁。
-
phy0radio - (未知,此选项在我的 TL-WR1043nd 上没有任何作用)
-
phy0tpt - 在网络上缓慢而稳定地闪烁 activity.in 与 Tx 和 Rx 模式的高能闪烁相比
3.9 USB Device
如果连接了 USB 设备,指示灯将亮起。
Name | Type | Required | Default | Description |
---|---|---|---|---|
default | integer | no | 0 | LED state before trigger: 0 means OFF and 1 means ON |
dev | string | yes | (none) | Name of USB device to monitor (in this example 1-1). |
interval | integer | yes | (none) | Interval in ms when device is active. |
sysfs | string | yes | (none) | LED device name |
trigger | string | yes | (none) | usbdev -- This may be usbport (March 2019) |
3.10 GPIO
允许 LED 由 gpio 事件控制。
Name | Type | Required | Default | Description |
---|---|---|---|---|
default | integer | no | 0 | LED state before trigger: 0 means OFF and 1 means ON |
3.11 Net filter
当特定数据包通过您的计算机时闪烁 LED。
例如,要为传入的 SSH 流量创建 LED 触发器:
root@lede:/# iptables -A INPUT -p tcp --dport 22 -j LED --led-trigger-id ssh --led-delay 1000
然后将新触发器连接到系统上的 LED:
root@lede:/# echo netfilter-ssh > /sys/class/leds/<ledname>/trigger
Name | Type | Required | Default | Description |
---|---|---|---|---|
default | integer | no | 0 | LED state before trigger: 0 means OFF and 1 means ON |
4、举例
Heartbeat led
config 'led'
option 'sysfs' 'wrt160nl:amber:wps'
option 'trigger' 'heartbeat'
WLAN led
config 'led' 'wlan_led'
option 'name' 'WLAN'
option 'sysfs' 'tl-wr1043nd:green:wlan'
option 'trigger' 'netdev'
option 'dev' 'wlan0'
option 'mode' 'link tx rx'
3G led
config 'led'
option 'name' '3G'
option 'sysfs' 'asus:blue:3g'
option 'trigger' 'netdev'
option 'dev' '3g-wan'
option 'mode' 'link'
Timer led - 500ms ON, 2000ms OFF
config 'led'
option 'sysfs' 'wrt160nl:blue:wps'
option 'trigger' 'timer'
option 'delayon' '500'
option 'delayoff' '2000'