среда, 16 ноября 2011 г.

Настройка Роутера D'LINK DIR 620 Ver. A1

Приведу скрины настроек dlink dir 620 rev.A1, ver. 1.02.
Если у вас такая прошивка, рекомендую обновить ее до
DIR_620-1.2.26-20110222.fwz, а затем до DIR_620-1.2.102-20110518.fwz

и настраивать в привычном интерфейсе (аля dlink dir300 rev.B5).
Добавятся некоторые опции (например mppe для vpn подключения), не доступные в этой прошивке.

Также его прошивают другими прошивками: DD-WRT, и прошивкой от keenetik'a.

Доступ к web интерфейсу:

  • 192.168.0.1
  • логин: admin, 
  • пароль: admin


воскресенье, 13 ноября 2011 г.

Настройка Zyxel Keenetic lite

Доступ к web интерфейсу.
В браузере вбиваем: 192.168.1.1
логин: admin
пароль: 1234.

Заходим в web интерфейс, и первое что видим, это системный монитор:
Настройка Интернет соединения VPN (PPTP, L2TP )

воскресенье, 6 ноября 2011 г.

Одни комбинации клавиш для управления разными плеерами


Часто пользуюсь разными плеерами, vlc для видео, audacious и mpd для музыки, и хочется управлять ими с клавиатуры одинаковыми комбинациями клавиш.

Используя утилиту qdbus, (примеры для разных плееров описал здесь ) можно написать скрипты управления, и привязать их к комбинациям клавиш.

Для плеера audacious можно использовать audtool, описанный в этой статье

Пример скрипта управления громкостью плееров (mpd, audacious, vlc). остальные объединяются аналогично:
#!/bin/bash
if ps aux | grep audacious | grep -v grep > /dev/null
then
volume=`audtool get-volume`
let "vol=$volume $1";
audtool set-volume $vol;
else
if ps aux | grep vlc | grep -v grep > /dev/null
then
volume=`qdbus org.mpris.vlc /Player org.freedesktop.MediaPlayer.VolumeGet`
let "vol=$volume $1"
qdbus org.mpris.vlc /Player org.freedesktop.MediaPlayer.VolumeSet $vol
else
if `mpc | grep ' - '` | cut -d '-' -f1 > /dev/null
then
mpc volume $1
fi
fi
fi
Пример управление перемоткой:
#!/bin/bash
if ps aux | grep audacious | grep -v grep > /dev/null
then
audtool playback-seek-relative 10
else
if ps aux | grep vlc | grep -v grep > /dev/null
then
pos=`qdbus org.mpris.vlc /Player org.freedesktop.MediaPlayer.PositionGet`
let pos1=$pos +10000
qdbus org.mpris.vlc /Player org.freedesktop.MediaPlayer.PositionSet $pos1
else
if `mpc | grep ' - '` | cut -d '-' -f1 > /dev/null
then
mpc seek +10
fi
fi
fi
Следующий трек:

#!/bin/bash
if ps aux | grep audacious | grep -v grep > /dev/null
then
dbus-send --dest=org.mpris.audacious /Player org.freedesktop.MediaPlayer.Next
else
if ps aux | grep foobnix | grep -v grep > /dev/null
then
foobnix --next
else
if ps aux | grep banshee | grep -v grep > /dev/null
then
banshee --next
else
if ps aux | grep vlc | grep -v grep > /dev/null
then
qdbus org.mpris.vlc /Player org.freedesktop.MediaPlayer.Next
else
if `mpc | grep ' - '` | cut -d '-' -f1 > /dev/null
then
mpc next
fi
fi
fi
fi
fi
Пример Плей/Пауза:

 #!/bin/bash
if ps aux | grep audacious | grep -v grep > /dev/null
then
audtool playback-playpause
else
if ps aux | grep foobnix | grep -v grep > /dev/null
then
foobnix --play-pause
else
if ps aux | grep banshee | grep -v grep > /dev/null
then
banshee --pause
else
if ps aux | grep vlc | grep -v grep > /dev/null
then
qdbus org.mpris.vlc /Player org.freedesktop.MediaPlayer.Pause
else
if `mpc | grep ' - '` | cut -d '-' -f1 >> /dev/null
then
mpc play
fi
fi
fi
fi
fi
Теперь вешаем эти скрипты на комбинации клавиш. Для openbox это делается так:
Открываем файл ~/.config/openbox/rc.xml
и в секцию  <keyboard>  пишем:

<keybind key="C-Up">
      <action name="execute">
        <execute>/home/user/scripts/player/volume +10</execute>
      </action>
    </keybind>
    <keybind key="C-Down">
      <action name="execute">
        <execute>/home/user/scripts/player/volume -10</execute>
      </action>
    </keybind>
<keybind key="C-A-N">
      <action name="execute">
        <execute>/home/user/scripts/player/next</execute>
      </action>
    </keybind>
    <keybind key="C-A-B">
      <action name="execute">
        <execute>/home/user/scripts/player/prev</execute>
      </action>
    </keybind>
    <keybind key="C-A-P">
      <action name="execute">
        <execute>/home/user/scripts/player/playpause</execute>
      </action>
    </keybind>
    <keybind key="C-S-Left">
      <action name="execute">
        <execute>/home/user/scripts/player/seek +10</execute>
      </action>
    </keybind>
    <keybind key="C-S-Right">
      <action name="execute">
        <execute>/home/user/scripts/player/seek -10</execute>
      </action>
    </keybind>

Сохраняем, перезапускаем  DE и можно управлять любым плеером одними и теми же комбинациями.

Управление VLC, Amarok, Kaffine, Clementine, qmmp, guayadeque из консоли


В этом поможет консольная утилита qdbus

Для VLC qdbus org.mpris.vlc /Player
Для Amarok qdbus org.kde.amarok
Для Kaffeine qdbus org.mpris.kaffeine
Для guayadeque qdbus org.mpris.guayadeque
Для Clementine qdbus org.mpris.clementine
Для qmmp qdbus org.mpris.qmmp
Для audacious qdbus org.mpris.audacious

Для xmms2 qdbus org.mpris.xmms2



Пишем в консоле qdbus org.mpris.vlc /Player и получаем:
$ qdbus org.mpris.vlc /Player
Service 'org.mpris.vlc' does not exist.

Ага, забыли запустить плеер, запускаем плеер, и повторяем
userhome@debian:~$ qdbus org.mpris.vlc /Player
method QString org.freedesktop.DBus.Introspectable.Introspect()
signal void org.freedesktop.MediaPlayer.CapsChange(int)
method int org.freedesktop.MediaPlayer.GetCaps()
method void org.freedesktop.MediaPlayer.Next()
method void org.freedesktop.MediaPlayer.Pause()
method void org.freedesktop.MediaPlayer.Play()
method int org.freedesktop.MediaPlayer.PositionGet()
method void org.freedesktop.MediaPlayer.PositionSet(int)
method void org.freedesktop.MediaPlayer.Prev()
method void org.freedesktop.MediaPlayer.Repeat(bool)
method void org.freedesktop.MediaPlayer.Stop()
method int org.freedesktop.MediaPlayer.VolumeGet()
method void org.freedesktop.MediaPlayer.VolumeSet(int)
Как видно есть все для управления. 

Как этот можно использовать?
Например привязать скрипт к комбинации клавиш, и управлять например громкостью в активном плеере:

Перемотка:

 if ps aux | grep vlc | grep -v grep > /dev/null
then
pos=`qdbus org.mpris.vlc /Player org.freedesktop.MediaPlayer.PositionGet`
let "pos1=$pos 10000"
qdbus org.mpris.vlc /Player org.freedesktop.MediaPlayer.PositionSet $pos1
fi
Или остановить проигрывание

 if ps aux | grep vlc | grep -v grep > /dev/null
then
qdbus org.mpris.xmms2 /Player org.freedesktop.MediaPlayer.Stop
fi


А может уменьшить громкость одним движением мыши ?
Написать скрипт ~/scripts/volume

if ps aux | grep vlc | grep -v grep > /dev/null
then
volume=`qdbus org.mpris.vlc /Player org.freedesktop.MediaPlayer.VolumeGet`
let "vol=$volume $1"
qdbus org.mpris.clementine /Player org.freedesktop.MediaPlayer.VolumeSet $vol
fi

Установить brightside, и привязать этот скрипт к левому верхнему углу.
Теперь при перемещении курсора в левый верхний угол экрана, громкость уменьшится)

Также можно получать Метаданные проигрываемого трека
qdbus org.mpris.vlc /Player GetMetadata
Что можно использовать например в conky 

Conky VLC

Добавляем информацию из VLC плеера в conky.
(Поддерживает http трансляцию, локальные аудио и видео файлы)
Пишем небольшой скрипт ~/scripts/echovlc:


if ps aux | grep vlc | grep -v grep >> /dev/null
then
    vvv1=`qdbus org.mpris.vlc /Player GetMetadata | grep artist: | cut -d : -f2`
    vvv2=`qdbus org.mpris.vlc /Player GetMetadata | grep title: | cut -d : -f2`
    vvv3=`qdbus org.mpris.vlc /Player GetMetadata | grep nowplaying | cut -d : -f2`
   
    if [[ "$vvv3" == "" ]]
      then
if [[ "$vvv1" == "" ]]
 then
vvv=`qdbus org.mpris.vlc /Player GetMetadata | grep location | cut -d : -f3- | cut -d \/ -f3- | cut -d . -f1-5`
v5="Смотрю - $vvv"
else
v5="Слушаю $vvv1 - $vvv2"
fi
   else
v5="Слушаю радио - $vvv3"
   fi
   echo $v5
 fi
Результат:
 

Небольшое описание:
Проверяем, запущен ли vlc
Получаем информацию о файле
Проверяем, есть ли в выводе строчка nowplaying, если есть, значит проигрывается радио,
выводим
слушаю композицию
Сверяем, если есть метаданные artist и title,  значит это аудио файл, следовательно выводим: слушаю трек
Если метаданных нет, то выводим имя файла, и видимо это видео файл, а значит выводим:
смотрю файл


В конфиг коньков (~/.conkyrc) пишем:
{execi 40 bash ~/scripts/echovlc | cut -d ":" -f 2 | cut -d "-" -f1 }
{execi 40 bash ~/scripts/echovlc | cut -d ":" -f 2 | cut -d "-" -f2 }
Получится как то так:





Значек  ▶  или ■  выводится другим скриптом (~/scripts/playstopconky):
 if [ -n "`~/scripts/echovlc | cut -d ":" -f2 | grep ' - '`" ]
then
     echo "▶";
else
     echo "■";
fi
В ~/.conkyrc этот скрипт подключается так:
${execi 10 /home/userhome/scripts/playstopconky}

пятница, 4 ноября 2011 г.

Настройка Dlink DIR 300 Rev B1

Настройка PPTP
Выбираем Manual Internet connection Setup


Настройка Dlink DIR 300 NRU Rev.B5

В адресной строке браузера 192.168.0.1
Логин: admin,
Пароль: admin

После входа в настройки, нужно сменить пароль администратора, и перезайти. 
Первое что мы видим - это общая информация роутера, можно увидеть версию прошивки, и если она старее чем на офсайте, рекомендую обновить.


среда, 2 ноября 2011 г.

Ограничение скорости по ip


Была задача ограничить скорость интернета одного пользователя в сети.
Нашел решение тут: http://www.tangarus.ru/61/linux/ogranichenie-skorosti-kanalashaping-v-linux/
 
eth1 - Интерфейс на в локальную сеть
192.168.200.31 - ip пользователя в локальной сети

#!/bin/bash
#Обнуляем корневой класс
tc qdisc del dev eth1 root
tc qdisc del dev eth1 handle ffff: ingress
 
#Создаём корневой класс исходя из скорости канала в Интернет 10Мбит для входящего трафика...
tc qdisc add dev eth1 root handle 1: cbq avpkt 1000 bandwidth 10mbit
#... и для исходящего
tc qdisc add dev eth1 handle ffff: ingress
 
#Пользователь 1
USR1IP=192.168.200.31
USR1ID=1 #код потока пользователя, д.б. уникальный для каждого
USR1DOWNSPD=1024 #Ограничение входящей скорости
USR1UPSPD=512 #Ограничение исходящей скорости
let USR1UPSPDBSRT=$USR1UPSPD*1024
#Режим входящий трафик
tc class add dev eth1 parent 1: classid 1:$USR1ID cbq rate $USR1DOWNSPD\kbit allot 1500 prio 5 bounded isolated
tc filter add dev eth1 parent 1: protocol ip prio 16 u32 match ip dst $USR1IP flowid 1:$USR1ID
tc qdisc add dev eth1 parent 1:$USR1ID sfq perturb 10
#Режим исходящий трафик
tc filter add dev eth1 parent ffff: protocol ip prio 50 u32 match ip src $USR1IP/32 police rate $USR1UPSPD\Kbit burst $USR1UPSPDBSRT drop flowid :$USR1ID


Другая реализация ограничение скорости интернета для пользователей в сети
http://sudouser.com/nastrojka-ogranicheniya-i-raspredeleniya-kanala-htb-shaper.html

Установка и настройка биллинговой системы Stargazer

http://notes.ghost.dn.ua/node/66