JFFS и мониторинг активности wifi на роутере Linksys WRT54GL

Опубликовано admin в Втр, 24/05/2011 - 08:53

Расскажу о двух фичах, которые можно реализовать на роутере с прошивкой DD-WRT (http://www.dd-wrt.com/) на примере роутера Linksys WRT54GL.

1) Файловая система JFFS.

На роутере можно без труда организовать небольшое энергонезависимое хранилище файлов.
Для этого в веб-интерфейсе включаем поддержку jffs (по туториолу из официального вики dd-wrt (http://www.dd-wrt.info/wiki/index.php/Jffs#Enable_JFFS_when_Flash_Space_is_Available_.28i.e._Mini_on_4MB.2C_or_.3E4MB_Internal_Flash.29)):

1. Откройте вкладку "Administration".
2. Перейдите к секции "JFFS2 Support".
3. Кликаем "Enable JFFS".
4. Затем жмём "Save".
5. Ждём несколько секунд и жмём "Apply".
6. Опять ждём. Идём обратно к опции "Enable JFFS", кликаем "Clean JFFS".
7. Не кликая "Save", жмём вместо этого "Apply".

Теперь если мы приконнектимся к роутеру по ssh команда "df -h" расскажет нам о наличие новой файловой системы, смонтированной в катаалоге /jffs/, и её размере (размер очень сильно зависит от типа вашей прошивки, для получения хоть сколько-нибудь полезного свободного пространства для jffs рекомендуется установить mini-версию dd-wrt (http://www.dd-wrt.com/wiki/index.php/What_is_DD-WRT%3F#File_Versions)).

2) Индикация активности wifi по лампе на корпусе роутера.

Теперь используем возможности jffs - разместим на ней скрипт (с того же вики dd-wrt (http://www.dd-wrt.com/wiki/index.php/Useful_Scripts#WLAN_Status_.28wlan.sh.29)), который заставляет гореть лампу янтарным светом при подключенных wifi-клиентах и мигать белым при трансфере данных через WLAN.

Для установки скрипта:
1. Коннектимся по ssh.
2. Переходим в каталог /jffs/ и создаем директорию bin:
# cd /jffs/
# mkdir ./bin

3. Как видно /jffs/bin уже прописан в переменной поиска команд PATH:
# echo $PATH
/bin:/usr/bin:/sbin:/usr/sbin:/jffs/sbin:/jffs/bin:/jffs/usr/sbin:/jffs/usr/bin

4. Создаем файл скрипта (# vi ./wlan.sh) со следующим содержанием:


#!/bin/sh
I=`nvram get wl0_ifname`

while sleep 1; do
if [ "`wl assoclist`" != "" ]; then
XFER=`ifconfig $I|grep bytes`
if [ "$XFER" != "$PXFER" ]; then
LED='gpio disable 3 ; gpio disable 2'
PXFER=$XFER
else
LED='gpio disable 3 ; gpio enable 2'
fi
else
LED='gpio enable 3 ; gpio enable 2'
fi

if [ "$LED" != "$PLED" ]; then
eval $LED
PLED=$LED
fi
done

5. Делаем скрипт исполняемым:
# chmod +x ./wlan.sh

Готово!
Скрипт теперь можно запускать командой wlan.sh или прописать в автозагрузку.





Оригинал : http://damnsmallblog.blogspot.com/2008/03/jffs-wifi-linksys-wrt54gl.html

( categories: )