Archív

Autorův archiv

Připojení USB modemu

17.05.2009 Bez komentářů

Jedním z důvodů, proč uživatelé instalují modifikovaný firmware od Koppel.cz, je podpora USB modemů a následné sdílení takového připojení. Původně byly podporovány pouze CDMA modemy, v dnešní době je podporována většina modemů dostupných v České republice. Ve spojení s 12V napájením, lze modem a tedy internet provozovat mobilně či tzv. „na kolech“, takové řešení využívá většina dálkových autobusových dopravců.

Většinu modemů stačí připojit do USB portu a nastavit v příslušné sekci webového rozhraní přihlašovací údaje. Některé modemy vyžadují pokročilejší nastavení, pro které poskytuje fórum uživatelů firmware podporu.

Categories: Asus WL-500gP Tags:

Server pro přehrávání hudby

16.05.2009 komentáře 2

Vzhledem k tomu, že k routeru se dá připojit pomocí USB téměř cokoliv nic nebrání připojení USB zvukové karty. Hudba může být přehrávána z připojeného flashdisku, streamována z internetu, přímo generována routerem, případně nahrávána.[1]

  • zapněte podporu waveserveru ve webové administraci: System Setup – Services – Enable WaveServer: yes (funguje pouze v oleg firmware, v koppel byl odebrán kvůli úspoře místa na vnitřní flash)
  • proveďte následující příkazy pro instalací ovládání hudebního serveru a stažení potřebných knihoven: ipkg update && ipkg install mpd && ipkg install libiconv && ipkg install mpc
  • vytvořte konfigurační soubor pro mpd: nano /opt/etc/mpd.conf cesty jsou samozřejmě volitelné
  • port "6600"
    music_directory "/opt/MP3"
    playlist_directory "/opt/Mpd/Playlists"
    db_file "/opt/Mpd/mpddb"
    log_file "/opt/Mpd/mpd.log"
    error_file "/opt/Mpd/errors.log"
    state_file "/opt/Mpd/state"
    # pro pripad ze by nefungovalo volume
    mixer_type "software"

  • vytvořte potřebné adresáře podle konfiguračního souboru: mkdir /opt/MP3 && mkdir /opt/Mpd && mkdir /opt/Mpd/Playlists
  • spusťte Music Player Daemon-a /opt/bin/mpd /opt/etc/mpd.conf

Pokud chcete spouštět MPD po startu přidáme tento příkaz do souboru /opt/init.usb

K ovládání hudebního serveru můžete použít příkazovou řádku. Seznam příkazů je dostupný příkazem mpc help, nebo je ovládejte mnohem pohodlnější rozšířením Music Player Minion[2], případně lze doinstalovat webového PHP klienta do routeru.

cd /opt/tmp/
wget http://mercury.chem.pitt.edu/~shank/phpMp-0.11.0.tar.gz
tar -xvf /opt/tmp/phpMp-0.11.0.tar.gz -C /opt/share/www/lighttpd/

[1]Podporována je většina USB zvukových adaptérů. Konkrétně byl použit adaptér i-tec usb 5.1 audio.

[2]Doplněk Music Player Minion pro prohlížeč Mozilla Firefox https://addons.mozilla.org/

syslog.log pro audioadaptér i-tec usb 5.1 audio

pokud při startu MPD dostanete mpd: can't load library 'libssp.so.0' přihrajte si tuto knihovnu do adresáře /opt/lib libssp.so.0

cd /opt/lib
wget http://cooper.regionaliste.cz/wp-content/uploads/2009/05/libssp.so.0

Spoustu klientů můžete nalézt na stránce mpd.wikia.com/wiki/Clients, doporučuji začít s klasickým phpMP – phpMp-0.11.0.tar

Využití CRONu

Pokud se chcete nechat budit rádiem, není nic jednoduššího než využit CRON. Do něj vložte dva řádky, jeden pro spuštění přehrávání hudby v 6:35 a druhý pro zastavení v 7:00 a to jen v pracovní dny:

35 06 * * 1,2,3,4,5 admin /opt/etc/vstavat
00 07 * * 1,2,3,4,5 admin mpc stop

pro buzení jsem použil samostatný skript vstavat, kvůli jednodušší editaci, ten může vypadat takto:

#!/bin/sh
#vstávací skript co zapne rádia
#nastaví volume na 100%
mpc volume 100
#vyčistí playlist
mpc clear
#natáhne playlist Rádia (nebo cokoliv jiného)
mpc load radios
#začne hrát
mpc play

příkaz mpc load radios natáhne playlist radios.m3u uložený ve složce Playlists.

Pokud se dočkáte hlášky:

/opt/bin/mpd: can’t load library ‚libsqlite3.so.0‘

je třeba dohrát nainstalovat ještě sqlite: ipkg install sqlite případně dohrát do /opt/lib soubor libsqlite3.so.0

Categories: Asus WL-500gP Tags:

Webcamera

16.05.2009 Bez komentářů

Router je již od výrobce připraven pro připojení USB kamery. Podporovány jsou pouze již nevyráběné kamery s ovladači PWC 9.0.2 a OV51x 1.65-1.12. Většina současných kamer včetně těch levných spolupracuje s ovladačem SPCA5xx.[1]

1. vypněte podporu USB webových kamer v administraci: USB Application – Web Camera – Enable Web Camera? – Disabled

2. telnet my.router (192.168.1.1)

3. ipkg install palantir

4. cd /opt/usr/lib

5. wget http://koppel.cz/cdmawifi/postupy/USBwebcam/spca5xx.o

6. wget http://koppel.cz/cdmawifi/postupy/USBwebcam/spcadecoder.o

7. přidejte následující do init.usb nano /opt/init.usb

insmod videodev
insmod /opt/usr/lib/spcadecoder.o
insmod /opt/usr/lib/spca5xx.o
sleep 5
/opt/bin/palantir -C /opt/etc/palantir.conf >/dev/null&

8. případně upravte konfigurační soubor kamery /opt/etc/palantir.conf a restartujte router: reboot

9. po restartu je steam videa dostupný na adrese my.router:8000

10. nahrajte do root složky www serveru /opt/share/www/lighttpd balíček[2] s nástroji pro zobrazení kamery ve www stránách.

Možné problémy: pokud se dočkáte v systémovém logu chybového hlášení „…DEALLOC error on init_Isoc“ je problém s propustností sběrnice USB. Nejčastějším řešením je připojení kamery přímo do USB portu routeru, nikoliv přes USB rozbočovač. A to i přesto, že má externí napájení[3].


[1]Konkrétně byla použita webová kamera Logitech QuickCam Express podporována ovladačem SPCA561A. Aktualizovaný seznam podporovaných kamer je dostupný na internetové adrese http://mxhaard.free.fr/spca5xx.html

[2]HTML verze pohledu na kameru, Java applet a Win32 aplikace ke stažení na počítač http://koppel.cz/cdmawifi/postupy/USBwebcam/www.zip

[3]Odzkoušeno s rozbočovačem MAXXTRO/ GEMBIRD USB2.0 Hub UHB-C247

Categories: Asus WL-500gP Tags:

Zprovoznění měření teploty

Další z možností, jak využít router s OS Linux je například ke sledování teploty. Výborně použitelná jsou digitálních čidla DS18B20 připojená přes rozhraní RS232 a pomocí redukce USB/RS232 připojená k routeru. Čidla DS18B20 jsou jednoznačně adresovatelná a lze jich tak použít velké množství.

K sestavení měřícího řetězce budete potřebovat:

  • redukce USB/RS232 (vzhledem k tomu, že na routeru běží jádro / kernel 2.4.20 je důležité dát pozor při výběru této redukce, obecně jsou doporučovány redukce s čipem Prolific PL2303)
  • čidla DS18B20 (digitální teploměr Dallas 9-12bit +/-0,5°C -55/+125°C TO92 (rozlišení 0,5; 0,25; 0,125; 0,0625°C)) – lze použít i identické DS1820/DS18S20/DS1920
  • 2x zenerova dioda 5V1 (BZX83V005.1 – DO35 0.5W ZPD 5.1V)
  • 2x schottky BAT46 (schottky dioda 100V/150mA/6pF DO-35)
  • 1x odpor 1k5 (Rezistor s kovovou vrstvou 0,6W 1% 50ppm, velikost 0207)
  • 1x Canon konektor 9 pinů samice
  • 1x pouzdro velikosti krabičky od zápalek

Pořizovací cena součástek je při koupi 2 čidel cca 200Kč. Počet čidel je libovolný, další čidla se zapojují paralelně k prvnímu. Každé čidlo má vlastní sériové číslo a je ovladačem přímo adresováno. Schéma zapojení je v příloze.

zapojení

zapojení

Nezapomeňte spojit konektory čidla GND a V. Ukázka konkrétního zapojení je v galerii teploměr.

Připojte kabel USB/RS232 do routeru a zavedeme ovladače např. v telnetu: insmod usbserial a insmod pl2303

Překontrolujete log routeru /usr/tmp/syslog.log  , zda se v něm objevili následující řádky:

kernel: usb.c: registered new driver serial
kernel: usbserial.c: USB Serial support registered for Generic
kernel: usbserial.c: USB Serial Driver core v1.4
kernel: usbserial.c: USB Serial support registered for PL-2303
kernel: usbserial.c: PL-2303 converter detected
kernel: usbserial.c: PL-2303 attached to ttyUSB0 (or usb/tts/0 for devfs)
kernel: pl2303.c: Prolific PL2303 USB to serial adaptor driver v0.11

tímto se ubezpečíte, že adaptér byl bezpečně rozeznán a bude spolupracovat. V opačném případě adaptér obsahuje nerozpoznaný čip a je nepoužitelný.

Pokud chcete inicializovat adaptér ihned po startu, zapište do opt/init.usb následující:

insmod usbserial
insmod pl2303

Nainstalujte software, který umí komunikovat s čidly: ipkg install digitemp

Po instalaci se rovnou dotážeme čidel: /opt/bin/digitemp_DS9097 -i -s /dev/usb/tts/0 -o "%b %d %H:%M:%S Sensor %s C: %.2C F: %.2F" -c /opt/etc/digitemp.conf

Pokud jsou čidla správně detekována, vygeneruje se konfigurační soubor s parametry měření a sériovými čísly čidel. Následné měření již může být podstatně rychlejší: /opt/bin/digitemp_DS9097 -aq -c /opt/etc/digitemp.conf

Program vrátí následující výsledek:
Aug 14 23:28:03 Sensor 0 C: 25.88 F: 78.57
Aug 14 23:28:04 Sensor 1 C: 18.44 F: 65.19
Aug 14 23:28:05 Sensor 2 C: 24.69 F: 76.44

Zabezpečte automatické měření pomocí CRONu, proto do souboru /opt/etc/crontab vložte řádek s úlohou, která každou minutu provede měření, výsledek uloží do souboru a ten přesune do jiného souboru. Přesouvá se z důvodu zpoždění zápisu hodnot do souboru a některé hodnoty mohou být nekompletní.

*/1 * * * * admin /opt/bin/digitemp_DS9097 -aq -c /opt/etc/digitemp.conf > /opt/var/log/temperature.log && mv /opt/var/log/temperature.log /opt/var/log/digitemp.txt

Vytvořte potřebné adresáře:

mkdir /opt/etc/tempsensor && mkdir /opt/share/www/lighttpd/temperature && mkdir /opt/var/log/digitemp_rrd && chmod 777 /opt/var/log/digitemp_rrd

Následně upravte konfigurační soubor /opt/etc/tempsensor/config.php dle průvodce, ukázkový soubor naleznete v příloze

Do souboru /opt/etc/crontab přidejte řádky pro načítání dat do databáze a vykreslení grafu každých 5 minut:

*/5 * * * * admin php /opt/etc/tempsensor/logdata.php
*/5 * * * * admin php /opt/etc/tempsensor/graphdata.php

Pro otestování a odladění můžeme spustit načtení dat ručně: php /opt/etc/tempsensor/logdata.php

Překontrolujte vytvoření souborů v adresáři /opt/share/www/lighttpd/temperature/. Tímto je ověřena funkčnost měření a zápisu do databáze. Grafy, nebo jiné výstupy jsou již na dalším vlastním vývoji.

Je nutné mít nainstalované obslužné nástroje rrdtool (API pro generování grafů),bc (balíček pro přesné výpočty) a bash (shell): ipkg install rrdtool && ipkg install bc && ipkg install bash

Soubory digitemp – ukázka načtení parametrů senzorů a lite.php, který používám jako osekaný graphdata.php aby se ulevilo procesoru a kreslil jen krátkodobé grafy, měsíční a roční se kreslí jen jednou denně.

Pokud nefunguje připojení RS232-USB převodníku, zkuste přidat příkaz rmmod ehci-hcd

Optimalizace CRONu:
Vzhledem k tomu, že měření, zápis a vykreslení nám zbytečně zaplňuje syslog -který můžeme průběžně sledovat příkazem tail -f /tmp/syslog.log, je dobré optimalizovat nastavení CRONu a to tak, že stávající pravidla přesuneme do samostatného skriptu a jeho celé spouštění zabezpečíme jedním řádkem v cronu a následně i v logu.
*/5 * * * * admin /opt/etc/tempsensor/teplota
skript /opt/etc/tempsensor/teplota s parametry 0755 (spustitelný chmod +x 0755 /opt/etc/tempsensor/teplota) pak obsahuje přenesené řádky:
#!/bin/sh
#merici skript na mereni teploty
#mereni
/opt/bin/digitemp_DS9097 -aq -c /opt/etc/digitemp.conf > /opt/var/log/temperature.log && mv /opt/var/log/temperature.log /opt/var/log/digitemp.txt
#zapsani do DB
php /opt/etc/tempsensor/logdata.php
#vykresleni jednoducheho grafu
php /opt/etc/tempsensor/lite.php
#kopie souboru s obrazkem
cp /opt/share/www/lighttpd/temperature/all_day.png /opt/share/www/lighttpd/temperature/all_day_graph.png

Kopii obrázku provádím kvůli zajištění jeho neustálé dostupnosti.

Jsou sice součástí instalace a v adresáři /opt/etc/tempsensor, ale pro jistotu uvádím graphdata.php a logdata.php. A po úpravách jejich současné verze jako zálohu komplet adresáře /opt/etc/tempsensor/.

Zabezpečení chodu systému

15.05.2009 Bez komentářů

Může nastat stav, kdy z neznámého důvodu nenastartují některé služby. Pokud považujeme za nejvíce kritickou službu webového serveru s PHP, můžete zjištění jejího stavu a případný restart zabezpečit následovným způsobem:

Vytvořte soubor /opt/share/www/lighttpd/testweb.php s jednoduchým kódem:

<?php
$info = gd_info();
echo $info[„GD Version“];
?>

Dále budete potřebovat konzolový prohlížeč webových stránek lynx

ipkg install lynx

vytvořte soubor /opt/usr/local/testweb/testweb.sh s kódem, který kontroluje funkčnost php skriptu testweb.php a v případě chyby 500 – Internal server Error router restartuje. Výsledky zapisuje do vlastního logu.

#!/bin/sh
if lynx -dump 192.168.1.1/testweb.php | grep "500 - Internal Server Error" > /opt/usr/local/testweb/nullx
then
date >> /opt/usr/local/testweb/web_err.log
echo "Test PHP serveru - nedostupny.....REBOOT" >> /opt/usr/local/testweb/web_err.log
/sbin/reboot
fi;
date >> /opt/usr/local/testweb/web.log && echo "Test PHP serveru - OK" >> /opt/usr/local/testweb/web.log

Použitím jednoho znaménka > v posledním řádku zajistíte přepisování logu úspěšných kontrol.

Nastavte souboru testweb.sh spustitelný příznak:
chmod +x /opt/usr/local/testweb/testweb.sh

zajistěte zápisem do CRONu – /opt/etc/crontab spouštění kontroly například každou hodinu 30 minut po celé: 30 * * * * admin /opt/usr/local/testweb/testweb.sh

Přesunutí www serveru na jiný port

14.05.2009 Bez komentářů

Administrační webové rozhraní routeru běží standardně na portu 80, pokud jej potřebujete pro vlastní www server je třeba port administrace změnit. To se provádí nastavením nvram routeru.

Do souboru /opt/init.usb přidejte iptables -I INPUT -j ACCEPT -p tcp –dport 80, tímto zpřístupníme port 80 z internetu. Druhá možnost je vypnout firewall ve webové administraci, ale toto řešení je nebezpečné. Změňte port pro administraci z 80 na 8111 případně jakýkoliv jiný nepoužívaný port) nvram set http_lanport=8111 Proveďte změnu nastavení www serveru, který chceme mít na portu 80. Editujeme soubor /opt/etc/lighttpd/lighttpd.conf hodnotu server.port na 80 [11]

Zapíšeme do paměti a restartujeme router: flashfs save && flashfs commit && flashfs enable && reboot

Categories: software Tags:

Monitorování provozu a statistiky

Dalším krokem je zajištění monitorování provozu na routeru pomocí statistik. Použijeme nástroj IP Accounting, jedná se o BASH[1] skript, který využívá data z IPTABLES[2], které jsou základní součástí routeru. [13]

Nainstalujte obslužné nástroje rrdtool (API pro generování grafů),bc (balíček pro přesné výpočty) a bash (shell): ipkg install rrdtool && ipkg install bc && ipkg install bash

Stáhněte archiv ipaccounting-1.2.0.tar, obsah archivu nakopírujte do složek /opt (user) a /opt/share/www/lighttpd (statistika).

Souborům ipaccounting.sh, backup.sh a add_iptables.sh nastavte příznak spustitelný: chmod +x /opt/usr/local/ipaccounting.sh && chmod +x /opt/usr/local/backup.sh && chmod +x /opt/usr/local/add_iptables.sh && chmod +x /opt/usr/bin/rrdtool.sh

V adresáři /opt/share/www/lighttpd/statistika se nachází soubor ipaddress.txt, který slouží pro zadání IP adres, které chcete sledovat.

V souboru /opt/etc/crontab definujte pravidelné spouštění skriptu ipaccounting.sh

*/5 * * * * admin /opt/usr/local/ipaccounting.sh
*/30 * * * * admin /opt/usr/bin/rrdtool.sh

Po restartu se každých 5 minut vytvoří záznam o IP adresách, stavu načtených dat a rozhraní routeru. Každou půlhodinu se vytvoří graf. Výstup statistik najdete na adrese http://my.router/statistika


[1] Bash (Bourne again shell) je unixový příkazový shell interpreter. [1]

[2] Iptables je mocný nástroj, který umožňuje linuxovému nebo unixovému systému plně pracovat se síťovou komunikací. Pomocí něj je možné snadno řídit síťový provoz na serveru. [23]

Categories: Asus WL-500gP Tags:

Příklady nastavení CRONu

13.05.2009 Bez komentářů

Formát zápisu v souboru crontab: mm hh M D den v týdnu uživatel aplikace/skript

30 06 * * 1,2,3,4,5 /cesta/skript

Tento zápis zařídí, že se od pondělí do pátku každé ráno v 06:30 pro uživatele User1 spustí odkazovaný příkaz.

Využití cronu je široké, můžeme jej použít třeba k preventivnímu automatickému restartu routeru, například každou noc ve 3 ráno: 00 03 * * * reboot

nebo skript každých 10 minut: */10 * * * * admin php /cesta/skript.php

Categories: Asus WL-500gP Tags:

CRON a statistiky

13.05.2009 1 komentář

Abyste dokázali načasovat spouštění různých, nebo opakujících se úloh potřebujete aplikaci cron, která zabezpečuje automatické spouštění úloh, jako jsou statistiky, zálohování a podobně.

ipkg install cron

Jedna z možností jak řídit CRON je pomocí konfiguračního souboru /opt/etc/crontab.

Poté můžete crontab prohlížet příkazem crontab -l , případně editovat crontab -e . Pokud stále používáte editor vi, opusťte jej bez uložení příkazem a :q a editujte pomocí editoru nano.

Pokud budete potřebovat spouštět příkazy i pod účty jiných uživatelů, je třeba jim v souboru/var/cron.allow povolit spouštění příkazů:
echo user1 > /etc/cron.allow
crontab -u user1 /opt/etc/crontab

Categories: Linux návody, software Tags:

Redakční systému s databází SQLITE

13.05.2009 Bez komentářů

Vzhledem k tomu, že router není nijak výkonné zařízení, jsou možnosti nasazení redakčního systému poněkud omezené. Velmi nenáročný a jednoduchý redakční systém, který lze na routeru bez problémů provozovat se nazývá K:CMS[1].

Stáhněte archiv redakčním systémem a obsah složky nakopírujte do složky /opt/share/www/lighttpd/kcms/.

Povolte zápis do potřebných adresářů příkazem: chmod 777 /opt/share/www/lighttpd/kcms/gallery && chmod 777 /opt/share/www/lighttpd/kcms/gallery/thumbs && chmod 777 /opt/share/www/lighttpd/kcms/files && chmod 777 /opt/share/www/lighttpd/kcms/backups && chmod 666 /opt/share/www/lighttpd/kcms/config.php

Otevřete webovou stránku http://my.router/kcms/install.php a projděte jednoduchým instalačním procesem.


[1] Redakční systém K:CMS http://kcms.matl-soft.cz/ doporučená verze pro použití s SQLITE je 1.53

Categories: Linux návody, software Tags: