openwrt wiki 为按键添加功能--简单方便

9 篇文章 2 订阅

 openwrt wiki 为按键添加功能--简单方便

 

本文转自:http://blog.chinaunix.net/uid-9688646-id-5083512.html

准备

The first step is to make Hotplug execute scripts in /etc/hotplug.d/button when a button is clicked. Modify /etc/hotplug2.rules — remove '^' before 'button' as follow:


<span class="re1">$include</span> <span class="sy0">/</span>etc<span class="sy0">/</span>hotplug2-common.rules
 
SUBSYSTEM ~~ <span class="br0">(</span>^net$|^input$|button$|^usb$|^ieee1394$|^block$|^atm$|^zaptel$|^tty$<span class="br0">)</span> <span class="br0">{</span> <span class="kw3">exec</span> <span class="sy0">/</span>sbin<span class="sy0">/</span>hotplug-call <span class="sy0">%</span>SUBSYSTEM<span class="sy0">%</span> <span class="br0">}</span> DEVICENAME == watchdog <span class="br0">{</span> <span class="kw3">exec</span> <span class="sy0">/</span>sbin<span class="sy0">/</span>watchdog <span class="re5">-t</span> <span class="nu0">5</span> <span class="sy0">/</span>dev<span class="sy0">/</span>watchdog
	next-event <span class="br0">}</span>


The second step is to find out the internal name of the button you want to use: some images use generic names such as BTN_1, BTN_2, others have more specific ones like reset, wps, etc. Run the following:


<span class="co0"># mkdir -p /etc/hotplug.d/button</span>


Create the file /etc/hotplug.d/button/buttons with your favorite text editor, paste the following:


<span class="co0">#!/bin/sh</span> logger <span class="re1">$BUTTON</span> logger <span class="re1">$ACTION</span>


Save and exit. Now press the button you want to use, then run logread.


Jan <span class="nu0">1</span> 00:01:<span class="nu0">15</span> OpenWrt user.notice root: BTN_1   
Jan <span class="nu0">1</span> 00:01:<span class="nu0">15</span> OpenWrt user.notice root: pressed   
Jan <span class="nu0">1</span> 00:01:<span class="nu0">16</span> OpenWrt user.notice root: BTN_1    
Jan <span class="nu0">1</span> 00:01:<span class="nu0">16</span> OpenWrt user.notice root: released


BTN_1 is the name of the button you want to use. If you want or need to use another button, replace every instance of BTN_1 in the rest of this document with the correct text. From now on, there are several possible approaches: the first uses the 00-button script from the atheros target, the other a simpler shell script.

notice

If you want to run programs from hotplug's scripts you need to be sure PATH and the like are initialized properly, scripts invoked by hotplug only have a default env. Especially if you install stuff into nonstandard locations like /opt/usr/bin. It's possible by adding . /etc/profile after #!/bin/sh


<span class="co0">#!/bin/sh</span> . <span class="sy0">/</span>etc<span class="sy0">/</span>profile


Using Atheros' 00-button + UCI

If you've installed the full version of wget, run the following:


<span class="co0"># wget -O /etc/hotplug.d/button/00-button <a target=_blank style="color: rgb(255, 153, 0); text-decoration: none;" href="https://dev.openwrt.org/export/36332/trunk/target/linux/atheros/base-files/etc/hotplug.d/button/00-button" target="_blank">https://dev.openwrt.org/export/36332/trunk/target/linux/atheros/base-files/etc/hotplug.d/button/00-button</a></span>


If you only have wget-nossl and don't want to or can't upgrade, create /etc/hotplug.d/button/00-button with your favorite editor, then paste the following:  (下面的内容就是上面wget下载的00-button文件)


<span class="co0">#!/bin/sh</span> . <span class="sy0">/</span>lib<span class="sy0">/</span>functions.sh
do_button <span class="br0">(</span><span class="br0">)</span> <span class="br0">{</span> <span class="kw3">local</span> button <span class="kw3">local</span> action <span class="kw3">local</span> handler <span class="kw3">local</span> min <span class="kw3">local</span> max
 
        config_get button $<span class="nu0">1</span> button
        config_get action $<span class="nu0">1</span> action
        config_get handler $<span class="nu0">1</span> handler
        config_get min $<span class="nu0">1</span> min
        config_get max $<span class="nu0">1</span> max <span class="br0">[</span> <span class="st0">"$ACTION"</span> = <span class="st0">"$action"</span> <span class="re5">-a</span> <span class="st0">"$BUTTON"</span> = <span class="st0">"$button"</span> <span class="re5">-a</span> <span class="re5">-n</span> <span class="st0">"$handler"</span> <span class="br0">]</span> <span class="sy0">&&</span> <span class="br0">{</span> <span class="br0">[</span> <span class="re5">-z</span> <span class="st0">"$min"</span> <span class="re5">-o</span> <span class="re5">-z</span> <span class="st0">"$max"</span> <span class="br0">]</span> <span class="sy0">&&</span> <span class="kw3">eval</span> <span class="re1">$handler</span> <span class="br0">[</span> <span class="re5">-n</span> <span class="st0">"$min"</span> <span class="re5">-a</span> <span class="re5">-n</span> <span class="st0">"$max"</span> <span class="br0">]</span> <span class="sy0">&&</span> <span class="br0">{</span> <span class="br0">[</span> <span class="re1">$min</span> <span class="re5">-le</span> <span class="re1">$SEEN</span> <span class="re5">-a</span> <span class="re1">$max</span> <span class="re5">-ge</span> <span class="re1">$SEEN</span> <span class="br0">]</span> <span class="sy0">&&</span> <span class="kw3">eval</span> <span class="re1">$handler</span> <span class="br0">}</span> <span class="br0">}</span> <span class="br0">}</span> config_load system
config_foreach do_button button


Please note that after r34793 /etc/functions.sh → /lib/functions.sh so if you are using an old version change it!

Save and exit, then issue these commands:


uci add system button    
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.button=BTN_1
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.action=pressed
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.handler=<span class="st0">'logger BTN_1 pressed'</span> uci commit system


button is the name as the button, action 是事件 (两个值: pressed(按下) 和released(释放)), handler 包含当按键时间发生时执行的命令,也可以用一个脚本代替

You may need to reboot the router the make the change effective (mine would work with the simple shell script just fine but wouldn't budge when using the 00-button script — Frex 2011/03/25 22:29). If this works, you can change the handler to something more useful, and add more button handlers.

Examples

Example 1: Toggle Wi-Fi radio with a button press    用按键触发wifi


uci add system button    
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.button=wps    
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.action=pressed
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.handler=<span class="st0">'uci set wireless.@<span class="search_hit">wifi</span>-device[0].disabled=1 && <span class="search_hit">wifi</span>'</span> uci commit system


Example 2: Assign two different functions to the same button: short press VS long press. This relies on tracking the released event rather than the pressed event.         用一个按键定义两个功能:短按和长按,长按也可以规定时间长度,根据时间长度来设置不同的功能。


uci add system button
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.button=BTN_1
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.action=released
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.handler=<span class="st0">'logger timed pressed: 0-3s'</span> uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.min=0
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.max=<span class="nu0">3</span> uci add system button
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.button=BTN_1
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.action=released
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.handler=<span class="st0">'logger timed pressed: 8-10s'</span> uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.min=<span class="nu0">8</span> uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.max=<span class="nu0">10</span> uci commit system


Example 3: Unmount USB storage using a long-ish press   长按卸载usb

uci add system button
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.button=BTN_1
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.action=released
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.handler=<span class="st0">"for i in <span class="es0">\$</span>(mount | awk '/dev<span class="es0">\/</span>sd[b-z]/ { print <span class="es0">\$</span>1}'); do umount <span class="es0">\$</span>i; done"     #卸载的命令,可写成脚本</span> uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.min=<span class="nu0">5</span> uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.max=<span class="nu0">10</span> uci commit system


Example 4: Restore defaults   恢复出厂设置

config button
        option button   reset
        option action   released
        option handler <span class="st0">"firstboot && reboot"</span> option min <span class="nu0">5</span> option max <span class="nu0">30</span>


Example 5: Toggle Wi-Fi using a script    使用脚本命令触发wifi

config button
        option button   wps
        option action   released
        option handler <span class="st0">"/usr/bin/<span class="search_hit">wifi</span>onoff"</span> option min      0
        option max <span class="nu0">3</span>


You'll have to create the file /usr/bin/wifionoff and paste this:

<span class="co0">#!/bin/sh</span> <span class="re2">SW</span>=$<span class="br0">(</span>uci <span class="re5">-q</span> get wireless.<span class="sy0">@</span><span class="search_hit">wifi</span>-device<span class="br0">[</span>0<span class="br0">]</span>.disabled<span class="br0">)</span> <span class="br0">[</span> <span class="st0">"$SW"</span> == <span class="st0">"1"</span> <span class="br0">]</span> <span class="sy0">&&</span> uci <span class="kw1">set</span> wireless.<span class="sy0">@</span><span class="search_hit">wifi</span>-device<span class="br0">[</span>0<span class="br0">]</span>.disabled=0   #当前是关闭就开启 <span class="br0">[</span> <span class="st0">"$SW"</span> == <span class="st0">"1"</span> <span class="br0">]</span> || uci <span class="kw1">set</span> wireless.<span class="sy0">@</span><span class="search_hit">wifi</span>-device<span class="br0">[</span>0<span class="br0">]</span>.disabled=<span class="nu0">1   #当前是开启就关闭</span> <span class="search_hit">wifi</span>


Another option for wifionoff is this script (doesn't store the state in uci, so it remains what is set in the configuration) You can also call this script eg. from cron, to switch off your wifi at night.

<span class="co0">#!/bin/sh</span> <span class="re2">STATEFILE</span>=<span class="st0">"/tmp/<span class="search_hit">wifi</span>onoff.state"</span> <span class="kw1">if</span> <span class="br0">[</span> <span class="re4">$#</span> <span class="re5">-eq</span> <span class="nu0">1</span> <span class="br0">]</span>; <span class="kw1">then   #参数总个数</span> <span class="kw1">case</span> $<span class="nu0">1</span> <span class="kw1">in</span> <span class="st0">"up"</span>|<span class="st0">"on"</span><span class="br0">)</span> <span class="re2">STATE</span>=off
      ;; <span class="st0">"down"</span>|<span class="st0">"off"</span><span class="br0">)</span> <span class="re2">STATE</span>=on
      ;; <span class="kw1">esac</span> <span class="kw1">else</span> <span class="kw1">if</span> <span class="br0">[</span> <span class="sy0">!</span> <span class="re5">-e</span> <span class="co1">${STATEFILE}</span> <span class="br0">]</span>; <span class="kw1">then</span> <span class="re2">STATE</span>=on <span class="kw1">else</span> . <span class="co1">${STATEFILE}</span> <span class="kw1">fi</span> <span class="kw1">fi</span> <span class="kw1">if</span> <span class="br0">[</span> <span class="re5">-z</span> <span class="co1">${STATE}</span> <span class="br0">]</span>; <span class="kw1">then</span> <span class="re2">STATE</span>=on <span class="kw1">fi</span> <span class="kw1">if</span> <span class="br0">[</span> <span class="co1">${STATE}</span> == <span class="st0">"on"</span> <span class="br0">]</span>; <span class="kw1">then</span> <span class="sy0">/</span>sbin<span class="sy0">/</span><span class="search_hit">wifi</span> down <span class="re2">STATE</span>=off <span class="kw1">else</span> <span class="sy0">/</span>sbin<span class="sy0">/</span><span class="search_hit">wifi</span> up <span class="re2">STATE</span>=on <span class="kw1">fi</span> <span class="kw3">echo</span> <span class="st0">"STATE=${STATE}"</span> <span class="sy0">></span> <span class="co1">${STATEFILE}</span>


Example 6: Set transmission-daemon alt-speed, enable or disable.Short press will activate alt-speed or longer press will deactivate alt-speed and also turns on qss led about speed status on tl-wr1043nd     

设置transmission-daemon alt-speed功能,短按会激活alt-speed,长按会禁用alt-speed,同时会点亮qss灯显示速度状态(tl-wr1043nd)

Edit your alt-speed limits from transmission-daemon , settings.json file.To execute script, you need to install transmission-remote package from opkg.

uci add system button    
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.button=BTN_1
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.action=pressed
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.handler=<span class="st0">'transmission-remote -as'</span> uci add system button    
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.button=BTN_1
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.action=pressed
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.handler=<span class="st0">'echo 1 > /sys/class/leds/tl-wr1043nd:green:qss/brightness'  #关灯</span> uci add system button
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.button=BTN_1
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.action=released
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.handler=<span class="st0">'transmission-remote -AS'</span> uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.min=<span class="nu0">1</span> uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.max=<span class="nu0">4</span> uci add system button
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.button=BTN_1
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.action=released
uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.handler=<span class="st0">'echo 0 > /sys/class/leds/tl-wr1043nd:green:qss/brightness'  #开灯</span> uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.min=<span class="nu0">1</span> uci <span class="kw1">set</span> system.<span class="sy0">@</span>button<span class="br0">[</span>-<span class="nu0">1</span><span class="br0">]</span>.max=<span class="nu0">4</span> uci commit system


Leftovers from a previous version  上个版本的遗留问题


<span class="kw2">mkdir</span> <span class="re5">-p</span> <span class="sy0">/</span>etc<span class="sy0">/</span>hotplug.d<span class="sy0">/</span>button <span class="kw2">touch</span> <span class="sy0">/</span>etc<span class="sy0">/</span>hotplug.d<span class="sy0">/</span>button<span class="sy0">/</span>00-button



<span class="kw1">if</span> <span class="br0">[</span> <span class="st0">"$ACTION"</span> = <span class="st0">"pressed"</span> <span class="br0">]</span>; <span class="kw1">then</span> <span class="kw1">if</span> <span class="br0">[</span> <span class="st0">"$BUTTON"</span> = <span class="st0">"BTN_0"</span> <span class="br0">]</span>; <span class="kw1">then</span> BTN_0 <span class="kw1">elif</span> <span class="br0">[</span> <span class="st0">"$BUTTON"</span> = <span class="st0">"BTN_1"</span> <span class="br0">]</span>; <span class="kw1">then</span> BTN_1 <span class="kw1">fi</span> <span class="kw1">fi</span>



<span class="kw2">mkdir</span> <span class="re5">-p</span> <span class="sy0">/</span>etc<span class="sy0">/</span>hotplug.d<span class="sy0">/</span>button <span class="kw2">wget</span> <span class="re5">-O</span> <span class="sy0">/</span>etc<span class="sy0">/</span>hotplug.d<span class="sy0">/</span>button<span class="sy0">/</span>00-button http:<span class="sy0">//</span>dev.openwrt.org<span class="sy0">/</span><span class="kw3">export</span><span class="sy0">/</span><span class="nu0">21216</span><span class="sy0">/</span>trunk<span class="sy0">/</span>target<span class="sy0">/</span>linux<span class="sy0">/</span>atheros<span class="sy0">/</span>base-files<span class="sy0">/</span>etc<span class="sy0">/</span>hotplug.d<span class="sy0">/</span>button<span class="sy0">/</span>00-button <span class="kw2">wget</span> <span class="re5">-O</span> http:<span class="sy0">//</span>dev.openwrt.org<span class="sy0">/</span><span class="kw3">export</span><span class="sy0">/</span><span class="nu0">21216</span><span class="sy0">/</span>trunk<span class="sy0">/</span>target<span class="sy0">/</span>linux<span class="sy0">/</span>atheros<span class="sy0">/</span>base-files<span class="sy0">/</span>etc<span class="sy0">/</span>hotplug.d<span class="sy0">/</span>button<span class="sy0">/</span>00-button



<span class="co0">#!/bin/sh</span> <span class="br0">[</span> <span class="st0">"$BUTTON"</span> = <span class="st0">"BTN_1"</span> <span class="br0">]</span> <span class="sy0">&&</span> <span class="br0">[</span> <span class="st0">"$ACTION"</span> = <span class="st0">"pressed"</span> <span class="br0">]</span> <span class="sy0">&&</span> <span class="br0">{</span> <span class="re2">SW</span>=$<span class="br0">(</span>uci get wireless.<span class="sy0">@</span><span class="search_hit">wifi</span>-device<span class="br0">[</span>0<span class="br0">]</span>.disabled<span class="br0">)</span> <span class="br0">[</span> <span class="re1">$SW</span> == <span class="st0">'0'</span> <span class="br0">]</span> <span class="sy0">&&</span> uci <span class="kw1">set</span> wireless.<span class="sy0">@</span><span class="search_hit">wifi</span>-device<span class="br0">[</span>0<span class="br0">]</span>.disabled=<span class="nu0">1</span> <span class="br0">[</span> <span class="re1">$SW</span> == <span class="st0">'0'</span> <span class="br0">]</span> || uci <span class="kw1">set</span> wireless.<span class="sy0">@</span><span class="search_hit">wifi</span>-device<span class="br0">[</span>0<span class="br0">]</span>.disabled=0 <span class="search_hit">wifi</span> <span class="br0">}</span>


WR1043ND

If you decide to use the wifitoggle package, you will need to change a few things on the default configuration. The following will work and make the QSS led blink "slowly" when wifi is on:

如果你决定使用wifitoggle软件,你需要修改一些默认配置,下面命令会在wifi开启的时候让qss灯慢速闪烁


uci show <span class="search_hit">wifi</span>toggle
uci <span class="kw1">set</span> <span class="search_hit">wifi</span>toggle.<span class="sy0">@</span><span class="search_hit">wifi</span>toggle<span class="br0">[</span>0<span class="br0">]</span>=<span class="search_hit">wifi</span>toggle
uci <span class="kw1">set</span> <span class="search_hit">wifi</span>toggle.<span class="sy0">@</span><span class="search_hit">wifi</span>toggle<span class="br0">[</span>0<span class="br0">]</span>.led_enable_trigger=timer
uci <span class="kw1">set</span> <span class="search_hit">wifi</span>toggle.<span class="sy0">@</span><span class="search_hit">wifi</span>toggle<span class="br0">[</span>0<span class="br0">]</span>.persistent=<span class="nu0">1</span> uci <span class="kw1">set</span> <span class="search_hit">wifi</span>toggle.<span class="sy0">@</span><span class="search_hit">wifi</span>toggle<span class="br0">[</span>0<span class="br0">]</span>.button=BTN_1
uci <span class="kw1">set</span> <span class="search_hit">wifi</span>toggle.<span class="sy0">@</span><span class="search_hit">wifi</span>toggle<span class="br0">[</span>0<span class="br0">]</span>.led_sysfs=tl-wr1043nd:green:qss
uci <span class="kw1">set</span> <span class="search_hit">wifi</span>toggle.<span class="sy0">@</span><span class="search_hit">wifi</span>toggle<span class="br0">[</span>0<span class="br0">]</span>.led_enable_delayon=<span class="nu0">2000</span> uci <span class="kw1">set</span> <span class="search_hit">wifi</span>toggle.<span class="sy0">@</span><span class="search_hit">wifi</span>toggle<span class="br0">[</span>0<span class="br0">]</span>.led_disable_default=<span class="nu0">1</span> uci <span class="kw1">set</span> <span class="search_hit">wifi</span>toggle.<span class="sy0">@</span><span class="search_hit">wifi</span>toggle<span class="br0">[</span>0<span class="br0">]</span>.led_enable_delayoff=<span class="nu0">3000</span> uci <span class="kw1">set</span> <span class="search_hit">wifi</span>toggle.<span class="sy0">@</span><span class="search_hit">wifi</span>toggle<span class="br0">[</span>0<span class="br0">]</span>.timer=0


:!: You can probably get similar behaviour with phy0tpt trigger.

triggerhappy

To manage the router buttons and also other HID buttons (i.e pad buttons of an usb device) we can use an application like triggerhappy.

First list your available buttons:   列出你的可用的按键

thd <span class="re5">--dump</span> <span class="sy0">/</span>dev<span class="sy0">/</span>input<span class="sy0">/</span>event<span class="sy0">*</span>
press your buttons   按下按键
EV_KEY KEY_WPS_BUTTON 1 /dev/input/event0
# KEY_WPS_BUTTON 1 command
EV_KEY KEY_WPS_BUTTON 0 /dev/input/event0
# KEY_WPS_BUTTON 0 command
EV_KEY KEY_VOLUMEDOWN 1 /dev/input/event1
# KEY_VOLUMEDOWN 1 command
EV_KEY KEY_VOLUMEDOWN 0 /dev/input/event1
# KEY_VOLUMEDOWN 0 command


Now associate your buttons to commands or scripts
path /etc/triggerhappy/triggers.d/example.conf

KEY_WPS_BUTTON <span class="nu0">1</span> <span class="sy0">/</span>etc<span class="sy0">/</span>my<span class="search_hit">wifi</span>script.sh
KEY_VOLUMEUP <span class="nu0">1</span> amixer <span class="re5">-q</span> <span class="kw1">set</span> Speaker <span class="nu0">3</span><span class="sy0">%</span>+
KEY_VOLUMEDOWN <span class="nu0">1</span> amixer <span class="re5">-q</span> <span class="kw1">set</span> Speaker <span class="nu0">3</span><span class="sy0">%</span>-
and run triggerhappy
<span class="sy0">/</span>etc<span class="sy0">/</span>init.d<span class="sy0">/</span>triggerhappy start


cmdpad is another simpler application to manage buttons.

再次更新,添加RGA100支持,添加LED触发器类型, 删除了按钮脚本,要自定义功能自己写脚本放在/etc/hotplud.d/button/ 下面 openwrt-RG100A_DB120-squashfs-cfe.bin http://115.com/file/c2bjz3px# 我的DB120-WG,双UBS,看着那么多的LED无法使用,于是泡论坛,看教程, 经过无数次的make, make V=99,终于修正了DB120的所有LED驱动,共9个LED, power和internet为双色LED,触发用time, 调整红色和绿色分量,可以显示绿色,橙色,红色等, 美中不足的是红灯太亮了,绿灯太弱,有条件的换下LED限流电阻 2012-2-1 增加了3个按钮 BTN_0 RESET 按住8秒后放开,系统复位 BTN_1 WLAN 无线开关 BTN_2 WPS umount 以后不要手贱,随便捅菊花了,结果你懂的 基本完美了,发挥你的想象吧 集成的软件都是我自己要用的,如motion做监控,图片保存在移动硬盘上, 当画面有变化时 mutt和ssmtp 发送邮件到139邮箱,有实时短信提醒. 通过N2N,配合视频监控软件可以随时随地查看家里状况 看到有个帖子里面用用Mplayer做网络收音机,又塞了个mplayer进去 集成USB声卡驱动,基本影音全能了 基于官方 OpenWrt Backfire 10.03.1 编译而成 软件包名称 版本 alsa-lib 1.0.24.1-1 alsa-utils 1.0.24.2-1 base-files 43.32-r29685 block-mount 0.1.0-2.2 bridge 1.4-1 busybox 1.15.3-3.4 bzip2 1.0.6-1 crda 1.1.1-1 dnsmasq 2.55-6.1 dropbear 0.53.1-5 firewall 2-34.8 gpioctl 1.0-1 hd-idle 1.03-1 hotplug2 1.0-beta-3 iptables 1.4.6-3.1 iptables-mod-conntrack 1.4.6-3.1 iptables-mod-conntrack-extra 1.4.6-3.1 iptables-mod-filter 1.4.6-3.1 iptables-mod-imq 1.4.6-3.1 iptables-mod-ipopt 1.4.6-3.1 iptables-mod-nat 1.4.6-3.1 iw 0.9.22-2 kernel 2.6.32.27-1 kmod-b43 2.6.32.27+2011-12-01-1 kmod-button-hotplug 2.6.32.27-1 kmod-cfg80211 2.6.32.27+2011-12-01-1 kmod-crc-ccitt 2.6.32.27-1 kmod-crypto-aes 2.6.32.27-1 kmod-crypto-arc4 2.6.32.27-1 kmod-crypto-core 2.6.32.27-1 kmod-fs-ext2 2.6.32.27-1 kmod-fs-ext3 2.6.32.27-1 kmod-fuse 2.6.32.27-1 kmod-i2c-core 2.6.32.27-1 kmod-input-core 2.6.32.27-1 kmod-input-gpio-buttons 2.6.32.27-1 kmod-input-polldev 2.6.32.27-1 kmod-ipt-conntrack 2.6.32.27-1 kmod-ipt-conntrack-extra 2.6.32.27-1 kmod-ipt-core 2.6.32.27-1 kmod-ipt-filter 2.6.32.27-1 kmod-ipt-imq 2.6.32.27-1 kmod-ipt-ipopt 2.6.32.27-1 kmod-ipt-nat 2.6.32.27-1 kmod-mac80211 2.6.32.27+2011-12-01-1 kmod-nls-cp437 2.6.32.27-1 kmod-nls-iso8859-1 2.6.32.27-1 kmod-nls-utf8 2.6.32.27-1 kmod-ppp 2.6.32.27-1 kmod-sched 2.6.32.27-1 kmod-scsi-core 2.6.32.27-1 kmod-sound-core 2.6.32.27-1 kmod-switch 2.6.32.27-4 kmod-textsearch 2.6.32.27-1 kmod-tun 2.6.32.27-1 kmod-usb-audio 2.6.32.27-1 kmod-usb-core 2.6.32.27-1 kmod-usb-ohci 2.6.32.27-1 kmod-usb-printer 2.6.32.27-1 kmod-usb-storage 2.6.32.27-1 kmod-usb-uhci 2.6.32.27-1 kmod-usb2 2.6.32.27-1 kmod-video-core 2.6.32.27-1 kmod-video-uvc 2.6.32.27-1 kmod-zd1211rw 2.6.32.27+2011-12-01-1 lame-lib 398-2-3 libao 1.1.0-1 libc 0.9.30.1-43.32 libevent 1.4.14b-1 libfaad2 2.7-1 libffmpeg 0.5.4-2 libfuse 2.8.3-1 libgcc 4.3.3+cs-43.32 libgsm 1.0.13-1 libiconv 5 libiconv-full 1.11.1-1 libid3tag 0.15.1b-3 libip4tc 1.4.6-3.1 libiwinfo 18 libiwinfo-lua 18 libjpeg 6b-1 libltdl 2.4-1 liblua 5.1.4-7 liblzo 2.04-1 libmad 0.15.1b-3 libncurses 5.7-2 libnl-tiny 0.1-1 libogg 1.1.4-2 libopenssl 0.9.8s-1 libpthread 0.9.30.1-43.32 librrd1 1.0.50-1 librt 0.9.30.1-43.32 libsamplerate 0.1.7-1 libsndfile 1.0.21-1 libuci 12012009.7-4 libuci-lua 12012009.7-4 libusb-1.0 1.0.8-1 libv4l 0.6.1-1 libvorbis 1.2.3-1 libvorbisidec 1.0.2+svn14261-1 libxtables 1.4.6-3.1 lua 5.1.4-7 luci 0.10.0-1 luci-app-firewall 0.10.0-1 luci-app-hd-idle 0.10.0-1 luci-app-ntpc 0.10.0-1 luci-app-qos 0.10.0-1 luci-app-samba 0.10.0-1 luci-app-voice-core 0.10.0-1 luci-i18n-chinese 0.10.0-1 luci-i18n-english 0.10.0-1 luci-lib-core 0.10.0-1 luci-lib-ipkg 0.10.0-1 luci-lib-lmo 0.10.0-1 luci-lib-lucid 0.10.0-1 luci-lib-lucid-http 0.10.0-1 luci-lib-nixio 0.10.0-1 luci-lib-px5g 0.10.0-1 luci-lib-sys 0.10.0-1 luci-lib-web 0.10.0-1 luci-mod-admin-core 0.10.0-1 luci-mod-admin-full 0.10.0-1 luci-proto-core 0.10.0-1 luci-proto-ppp 0.10.0-1 luci-sgi-cgi 0.10.0-1 luci-theme-base 0.10.0-1 luci-theme-openwrt 0.10.0-1 mjpg-streamer r136-1 motion 3.2.11.1-1 mtd 13 mutt 1.5.21-1 n2n 3875-1 ntfs-3g 2011.4.12-1-fuseext ntpclient 2007_365-4 openssl-util 0.9.8s-1 opkg 576-2 qos-scripts 1.2.1-3.2 resolveip 1 samba3 3.0.24-8 screen 4.0.3-2 sox 14.0.1-3 ssmtp 2.64-3 tc 2.6.29-1-2 uci 12012009.7-4 udevtrigger 106-1 uhttpd 28 usbutils 003-1 wireless-tools 29-4 wpad-mini 20111103-2 zlib 1.2.3-5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值