strelok-ac DD-WRT Novice
Joined: 04 Aug 2011 Posts: 2
|
Posted: Thu Aug 04, 2011 12:30 Post subject: How I made script for action by pressing a button. |
|
Intro:
I need make script for USB-Drive mount led indication and unmount drive by pressing button. So i find this page: and read it. But the way about unmount by button that I’m find at this page not work for me, because by pressing any button just no action. On my router have 2 programmable buttons+1reset+poweroff, and i want have different action on it . So I spend 6hours and at finally find some simple way to resolve my problem!
What going not right?
I don’t know why "myscript.sesbutton" script not working, i put it at folder and correct permission to executable with command Quote: | chmod +x /jffs/etc/config/myscript.sesbutton |
but in my situation this way is not right because i need action for fixed button. So i find other way at this site.
Let's begin!
1.Find GPIO's
Enable Telnet Management at Administration=>Management
At first we need find address of our programmable button (GPIO), so open terminal(for example putty), login, and detect button address with command:
Quote: | gpio poll /number/ |
(try numbers from 0 to 8 for example(how many gpio's have your router can find at Google)).
And press the button, if address is right, you will see this for example:
Quote: | gpio poll 7
01
00
01
00
01 |
if not right, just:
Terminate this command by pressing Ctrl+C.
My gpio's is:
Quote: | wlan button gpio 4
wps button gpio 7 |
And better detect your led, how-too?
2. Turn on jffs, share /jffs volume(for example by ftp)
3.Install patched gpio program
Download the package archive at attach, put "gpio" program to some directory for example:
and correct permission with command at terminal:
Quote: | chmod +x /jffs/opt/sbin/gpio |
Why? DDWR already have build-in gpio?
Because build-in gpio i cannot use with code:
Quote: | $gpio poll $button | while read value;do |
build-in just freeze and cannot output anything.
4.The script
Extract scripts from attach, correct it for your gpio’s, for example:
At unmount.startup:
Quote: |
#!/bin/sh
mp="/`nvram get usb_mntpoint`"
proftpd_enable="`nvram get proftpd_enable`"
smbd_enable="`nvram get samba3_enable`"
gpio=/jffs/opt/sbin/gpio
button=7 |
correct your button gpio at button=7 string;
At mounted_status.startup:
Quote: |
#!/bin/sh
mp="/`nvram get usb_mntpoint`"
RED_ON='gpio disable 3'
RED_OFF='gpio enable 3'
|
Correct 'gpio disable 3' and 'gpio enable 3' to your led’s gpio,
Save it and put at:
Correct permissions with command at terminal:
Quote: | chmod +x /jffs/etc/config/mounted_status.startup |
Quote: | chmod +x /jffs/etc/config/unmount.startup |
Go to router's Web-GUI, services=>USB, at the Run-on-mount Script Name form paste:
Quote: | /jffs/etc/config/unmount.startup |
Save changes, and reboot your router!
If all make right, when you insert your USB Drive at port and router successfully mount it, the LED must turn on, when you press the button, your drive must unmount, and led must turn off! |
|